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

تم توضيح ميزة جهاز إدخال USB التابع لجهة خارجية في هذه المقالة .

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

1

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

2

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

 وضع جهاز إدخال الأجهزة الطرفية xConfiguration: تشغيل ** ينتهي بموافقة  

 

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

 xوضع الأجهزة الطرفية للتكوين  *cوضع الأجهزة الطرفية للتكوين: On ** end OK  
3

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

 xFeedback تسجيل /event/userinterface/inputdevice  ** النهاية موافق  

 

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

 قائمة التعليقات x /event/userinterface/inputdevice ** النهاية موافق  
4

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

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

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

  * مفتاح إجراء مفتاح UserInterface InputDevice: KEY_ENTER * رمز إجراء مفتاح UserInterface InputDevice: 28 * نوع إجراء مفتاح UserInterface InputDevice: مضغوط ** نهاية * مفتاح إجراء مفتاح UserInterface InputDevice: KEY_ENTER * رمز إجراء مفتاح UserInterface InputDevice: 28 *e نوع إجراء مفتاح UserInterface InputDevice: تم إصداره ** end  
5

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

  • قم بإضفاء الحيوية على أزرار الاستعداد ورفع الصوت وخفض الصوت. عندما يرى الماكرو حدثًا يحتوي على KEY_VOLUMEUP، أو KEY_VOLUMEDOWN، أو KEY_SLEEP، فإنه ينفذ الأوامر ذات الصلة.

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

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