Показваме ви как да използвате бутоните на Bluetooth дистанционно управление (свързано чрез USB донгъл), за да управлявате функции като режим на готовност, регулиране на силата на звука и управление на устройство с камера на Cisco. Можете да разработите макрос, който слуша съответните събития и изпълнява съответните действия чрез API на устройството Cisco.

Функцията за USB входно устройство на трета страна е описана в тази статия .

В следващия пример трябва да въведете текста, който е написан с нормален шрифт. Текстът в курсив е отговорът, получен от устройството Cisco.

1

влезте в устройството Cisco на SSH. Имате нужда от локален admin потребител.

2

Конфигурирайте устройството, за да разрешите използването на USB дистанционно управление на трета страна.

 xConfiguration Peripherals InputDevice Mode: On ** end OK  

 

Можете да проверите дали конфигурацията е включена или изключена, като използвате тази команда:

 xConfiguration Peripherals InputDevice Mode  *c xConfiguration Peripherals InputDevice Mode: On ** end OK  
3

Регистрирайте се за обратна връзка, за да бъдем уведомявани при натискане и отпускане на бутоните на дистанционното управление.

 xFeedback Register /event/userinterface/inputdevice  ** end OK  

 

Можете да проверите за кои обратни връзки е регистрирано устройството, като използвате тази команда:

 xFeedback list /event/userinterface/inputdevice ** end OK  
4

Натиснете и отпуснете бутон на дистанционното управление, за да проверите дали регистрацията на обратна връзка работи.

Това действие генерира две събития: Pressed и Released. Ако натиснете и задържите бутон, виждате събитието Pressed докато не пуснете бутона. След това се генерира събитието Released .

Тези събития се издават при натискане и отпускане на клавиша Enter:

  *e UserInterface InputDevice Key Action Key: KEY_ENTER *e UserInterface InputDevice Key Action Key: 28 *e UserInterface InputDevice Key Action Key: Натиснат ** end *e UserInterface InputDevice Key Action Key: KEY_ENTER *e UserInterface InputDevice Key Action Key: 28 *e UserInterface InputDevice Ключ Действие Тип: Освободен ** край  
5

Напишете макрос, който слуша за съответните InputDevice събития и извършва свързаните действия, използвайки API на устройството.

  • Вдъхнете живот на бутоните за режим на готовност, увеличаване и намаляване на звука. Когато макросът види събитие, съдържащо KEY_VOLUMEUP, KEY_VOLUMEDOWN или KEY_SLEEP, той изпълнява съответните команди.

  • Създайте функция за управление на камерата за клавишите със стрелки. Искаме да продължим да движим камерата, докато бутонът е натиснат. Когато бутонът бъде освободен, движението на камерата спира. Когато макросът види събитие, съдържащо KEY_LEFT, KEY_RIGHT, KEY_UP или KEY_DOWN, той изпълнява съответните команди.

 const xapi = изискване ('xapi'); функция com(command, args='') { xapi.command(command, args); log(command + ' ' + JSON.stringify(args)); } функция log(event) {console.log(event); } function notify(message) { xapi.command('UserInterface Message TextLine Display', { Text: message, duration: 3 }); } функция cameraControl(motor, direction, cameraId='1') { com('Camera Ramp', { 'CameraId': cameraId, [motor]: direction }); } функция 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 '); break; case "KEY_RIGHT": cameraControl('Pan', 'Right'); break; case "KEY_UP": cameraControl('Tilt', 'Up'); break; case "KEY_DOWN": cameraControl('Tilt ', 'Надолу'); break; default: break; } } else if (press.Type == "Released") { switch (press.Key) { case "KEY_LEFT": cameraControl('Pan', 'Stop') ; break; case "KEY_RIGHT": cameraControl('Pan', 'Stop'); break; case "KEY_UP": cameraControl('Tilt', 'Stop'); break; case "KEY_DOWN": cameraControl('Tilt', 'Stop'); break; case 'KEY_VOLUMEUP': com('Audio Volume Increase'); break; case 'KEY_VOLUMEDOWN': com('Audio Volume Decrease'); break; case 'KEY_SLEEP': com(standbyState? 'Standby Deactivate' : 'Standby Activate'); прекъсване; по подразбиране: прекъсване; } } }); } в него();