Пример
list-menuОбратна връзка?

В този пример искаме да ви покажем как да използвате ключовете на въвходно устройство на трета страна USB (в случая дистанционно управление), за да управлявате определени функции на Cisco устройство.

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

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

1

Влезте в устройството Cisco на SSH. Трябва ти локален администратор .

2

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

 xConfiguration Peripherals InputDevice Mode: On ** end OK  

 

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

 xКонфигурация Периферни устройства ВходУстройство Режим  *c xКонфигурация Периферни устройства ВходРежим на устройството: На ** край OK  
3

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

 xFeedback Register /event/userinterface/inputdevice  ** край OK  

 

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

 xСписък /събития/потребителски интерфейс/входно устройство ** край ОК  
4

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

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

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

  *e Потребителски интерфейс Вход Ключ за устройство Клавиш за действие: KEY_ENTER *e Потребителски интерфейс Вход Код за действие на ключ на устройство: 28 *e Вход за потребителски интерфейс Клавиш на устройството Тип действие на устройство: Натиснат ** край * e Потребителски интерфейс Вход Ключ за устройство Действие Клавиш: KEY_ENTER *e Потребителски интерфейс Вход Устройство Код на действие: 28 *e Потребителски интерфейс Вход Устройство Тип действие на устройство: Освободен ** край  
5

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

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

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

 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: message, duration: 3 }); } функция cameraControl(мотор, посока, cameraId='1') { com('Camera Ramp', { 'CameraId': cameraId, [motor]: direction }); } function init() { let standbyState; xapi.status.get('Standby').then((състояние) => {standbyState = състояние. Състояние === 'Изключено'? невярно: вярно; }); xapi.status.on('Standby', състояние => { standbyState = състояние. Състояние === 'Изключено'? невярно: вярно; }); xapi.event.on('UserInterface InputDevice Key Action', натиснете => { 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', 'Down'); break; default: break; } } Иначе ако (натиснете. Тип == "Освободено") { превключвател (натисни. 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('Увеличаване на звука на звука'); break; case 'KEY_VOLUMEDOWN': com('Намаляване на звука'); break; case 'KEY_SLEEP': com(standbyСъстояние? 'Деактивирай в готовността' : 'Активирай в готовността'); прекъсване; по подразбиране: прекъсване; } } }); } init(); 
Беше ли полезна тази статия?
Беше ли полезна тази статия?