تهدف هذه الميزة إلى استكمال وظائف وحدة التحكم التي تعمل باللمس أو واجهة مستخدم اللمس. ليس المقصود من استبدالها .

أمثلة على التطبيقات:

  • في الفصول الدراسية وأثناء المحاضرات، يمكن استخدام جهاز تحكم عن بُعد صغير لتنشيط الجهاز من وضع الاستعداد. قد يكون من المناسب أيضًا استخدام جهاز تحكم عن بُعد لتحديد مصدر الإدخال المراد تقديمه.

  • التحكم في عرض الكاميرا (التنقل والاماله والتكبير/التصغير) في المواقف التي لا يُسمح لك باستخدام وحدة التحكم في اللمس. على سبيل المثال، في غرف العمليات في المستشفى.

نظرة عامة على الوظائف

عند الضغط على زر على جهاز إدخال USB، فإنه يقوم بتشغيل إجراء داخل واجهة برمجة التطبيقات الخاصة بجهاز Cisco. يمكن إعداد وحدات الماكرو أو أجهزة التحكم الخارجية من جهات خارجية لاكتشاف هذه الإجراءات والتفاعل وفقًا لذلك. تتشابه هذه الوظيفة مع كيفية تصرف أزرار التحكم داخل الغرفة. بالإضافة إلى ذلك، من الممكن مراقبة هذه الإجراءات من خلال خطاف الويب أو مباشرةً داخل جلسة SSH.

لا يتم توفير مكتبة موجودة مسبقًا تضم الإجراءات للاختيار من بينها. أنت مطالب بتحديد وإنشاء الإجراءات المحددة التي يجب أن تحدث استجابةً للأحداث. على سبيل المثال:

  • قم بزيادة مستوى صوت جهاز Cisco عند الضغط على مفتاح رفع مستوى الصوت.

  • ضع جهاز Cisco في وضع الاستعداد عند الضغط على مفتاح Sleep.

التكوينات والأحداث والحالة

تتوفر التكوينات والحالة المشار إليها في هذه المقالة من واجهة الويب المحلية للجهاز وواجهات API. تفضل بقراءة مقالة تكوينات الأجهزة لمعرفة معلومات عن كيفية الوصول إلى واجهة الويب واستخدام API.

عند فتح واجهة الويب الخاصة بالجهاز، انقر على إعدادات . ضمن التكوينات ، قم بتغيير الأجهزة الطرفية > وضع InputDevice إلى قيد التشغيل. يتم تعطيل دعم أجهزة إدخال USB التابعة لجهات خارجية افتراضيًا.

يؤدي الضغط على الزر وتحريره إلى إنشاء حدث مضغوط وتم إصداره :

 *e UserInterface InputDevice مفتاح الإجراء:  *e UserInterface InputDevice مفتاح الإجراء:  *e UserInterface InputDevice نوع الإجراء: اضغط على ** إنهاء *e UserInterface InputDevice Key Action Key:  *e UserInterface InputDevice Key Action Code:  *e UserInterface InputDevice Key Action Type: تم التحرير ** إنهاء 

للاستماع إلى الأحداث، يجب عليك تسجيل الملاحظات من أحداث InputDevice :

 تسجيل xFeedback/حدث/UserInterface/InputDevice ** النهاية 

عندما يكتشف جهاز Cisco الجهاز الطرفي التابع لجهة خارجية، سيتم إدراجه ضمن الحالة وفي الأجهزة الطرفية > ConnectedDevice . يمكن الإبلاغ عن جهاز الجهة الخارجية على أنه أجهزة متعددة.

المزيد من المعلومات

ابحث عن مزيد من المعلومات حول استخدام جهاز إدخال جهة خارجية في دليل التخصيص . اختر أحدث إصدار.

لا يدعم دعم Cisco (TAC) تصحيح أخطاء رمز الطرف الثالث، بما في ذلك وحدات الماكرو. يرجى التحقق من Cisco RoomOS لأجهزة التعاون إذا كنت تحتاج إلى مساعدة بشأن وحدات الماكرو ورمز جهة خارجية. ارجع إلى هذه الصفحة لمعرفة المزيد من الأمثلة على وحدات الماكرو والامتدادات.

المثال

في هذا المثال، نود أن نعرض لك كيفية استخدام مفاتيح جهاز إدخال USB التابع لجهة خارجية (في هذه الحالة جهاز تحكم عن بُعد) للتحكم في وظائف معينة على جهاز Cisco.

نوضح لك كيفية استخدام الأزرار الموجودة على جهاز تحكم عن بُعد بتقنية Bluetooth (متصل من خلال دونجل USB) لإدارة وظائف مثل وضع الاستعداد وضبط مستوى الصوت والتحكم في جهاز كاميرا Cisco. يمكنك تطوير ماكرو يستمع إلى الأحداث ذات الصلة وينفذ الإجراءات المقابلة من خلال واجهة API لجهاز Cisco.

في المثال التالي، يجب إدخال النص المكتوب بخط عادي. النص المكتوب بخط مائل هو الاستجابة التي تم تلقيها من جهاز Cisco.

1

سجّل الدخول إلى جهاز Cisco على SSH. أنت بحاجة إلى مستخدم مسؤول محلي.

2

قم بتكوين الجهاز للسماح باستخدام جهاز تحكم عن بُعد USB تابع لجهة خارجية.

 وضع InputDevice الطرفية لـ xConfiguration: في ** إنهاء موافق  

 

يمكنك التحقق مما إذا كان التكوين في وضع تشغيل أو إيقاف تشغيل باستخدام هذا الأمر:

وضع
 xConfiguration peripherals InputDevice  *c xConfiguration peripherals InputDevice: في ** إنهاء موافق  
3

قم بالتسجيل للحصول على الملاحظات، حتى يتم إعلامنا عند الضغط على أزرار التحكم عن بُعد وإصدارها.

سجل
 xFeedback/حدث/userinterface/inputdevice  ** إنهاء OK  

 

يمكنك التحقق من الملاحظات التي يتم تسجيلها على الجهاز باستخدام هذا الأمر:

قائمة
 xFeedback /الحدث/userinterface/inputdevice ** إنهاء موافق  
4

اضغط وقم بتحرير زر في وحدة التحكم عن بُعد للتحقق من عمل تسجيل الملاحظات.

ينشئ هذا الإجراء حدثين اثنين: تم الضغط عليه وتم إطلاقه. إذا ضغطت مع الاستمرار على أحد الأزرار، فسترى الحدث مضغوط حتى تقوم بتحرير الزر. ثم يتم إنشاء الحدث الذي تم تحريره .

يتم إصدار هذه الأحداث عند الضغط على مفتاح Enter وإصداره:

  *e UserInterface InputDevice مفتاح إجراء: المفتاح_ENTER *e رمز إجراء مفتاح UserInterface InputDevice: 28 *e نوع إجراء مفتاح UserInterface InputDevice: تم الضغط على ** end *e UserInterface InputDevice Key Action Key: المفتاح_ENTER *e رمز إجراء مفتاح UserInterface InputDevice: 28 *e نوع إجراء مفتاح UserInterface InputDevice: تم التحرير ** إنهاء  
5

اكتب وحدة ماكرو تستمع إلى أحداث InputDevice ذات الصلة، ويقوم بتنفيذ الإجراءات ذات الصلة باستخدام واجهة API الخاصة بالجهاز.

  • اجعل أزرار وضع الاستعداد ورفع مستوى الصوت وخفض مستوى الصوت مدى الحياة. عندما يرى الماكرو حدثًا يحتوي على مفتاح _VOLUME UP أو KEY_VOLUME DOWN أو KEY_SLEEP، فإنه ينفذ الأوامر ذات الصلة.

  • قم بإنشاء وظيفة التحكم في الكاميرا لمفاتيح الأسهم. نرغب في الاستمرار في تحريك الكاميرا طالما تم الضغط على الزر. عند تحرير الزر، تتوقف حركة الكاميرا. عندما يرى الماكرو حدثًا يحتوي على المفتاح _لليسار أو المفتاح_لليمين أو المفتاح_لأعلى أو المفتاح_لأسفل، فإنه ينفذ الأوامر ذات الصلة.

 const xapi = require('xapi'); function com(command, args='') { xapi.command(command, args); log(command + ' ' + JSON.stringify(args)); } function log(event) { console.log(event); } function notify(message) { xapi.command('UserInterface Message TextLine Display', { Text: رسالة، المدة: 3 }); } وظيفة cameraControl(المحرك، الاتجاه، cameraId='1') { com('Camera Ramp', { 'CameraId': معرف الكاميرا، [المحرك]: direction }); } الدالة init() { let standbyState; xapi.status.get('Standby').then((state) => {standbyState = state.State === 'إيقاف' ? false : true; })؛ xapi.status.on('Standby', state => { standbyState = state.State === 'Off' ? false : true; })؛ xapi.event.on('UserInterface InputDevice Key Action', اضغط => { if (press.Type == "تم الضغط عليه") { switch (press.Key) { case "KEY_LEFT": cameraControl('Pan'، 'left')؛ كسر؛ الحالة "KEY_RIGHT": cameraControl ('Pan', 'Right')؛ كسر؛ الحالة "KEY_UP": cameraControl ('Tilt', 'Up'); كسر; الحالة "KEY_DOWN": cameraControl ('إمالة', 'لأسفل'); كسر; القيمة الافتراضية: break; } } else إذا (press.Type == "تم التحرير") { switch (press.Key) { case "KEY_LEFT": cameraControl ('Pan', 'Stop'); كسر; الحالة "KEY_RIGHT": cameraControl ('Pan'، 'Stop')؛ كسر؛ الحالة "KEY_UP": cameraControl ('Tilt', 'Stop'); كسر; الحالة "KEY_DOWN": cameraControl ('Tilt', 'Stop'); كسر; الحالة 'KEY_VOLUMEUP': com ('زيادة مستوى الصوت')؛ انقطاع؛ الحالة 'KEY_VOLUMEDOWN': com ("انخفاض مستوى الصوت")؛ كسر؛ الحالة "KEY_SLEEP": com(standbyState؟ 'إلغاء التنشيط في وضع الاستعداد': "تنشيط على وضع الاستعداد")؛ إيقاف؛ الإعدادات الافتراضية: break؛ } } })؛ } init()؛