Приклад
list-menuНадіслати відгук?

У цьому прикладі ми хочемо показати, як використовувати ключі стороннього пристрою введення USB (у цьому випадку дистанційного керування) для керування певними функціями на пристрої Cisco.

Ми показуємо, як користуватися кнопками пульта Bluetooth (підключеним через USB донгл) для керування функціями, такими як режим очікування, регулювання гучності та керування камерою Cisco. Ви можете розробити макрос, який прослуховує релевантні події та виконує відповідні дії через Cisco пристрою API.

У наступному прикладі потрібно ввести текст, написаний звичайним шрифтом. Текст, виділений курсивом, — це відповідь, отримана від пристрою Cisco.

1

Увійдіть на пристрій Cisco через SSH. Потрібен місцевий адміністратор .

2

Налаштуйте пристрій так, щоб він дозволяв користуватися стороннім пультом USB.

 xКонфігурація периферійних пристроїв ВхідРежим пристрою: On ** end OK  

 

Ви можете перевірити, чи конфігурація увімкнена або вимкнена, використовуючи цю команду:

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

Зареєструйтеся для отримання зворотного зв'язку, щоб ми отримували сповіщення, коли кнопки дистанційного керування натискаються і відпускаються.

 xFeedback Register /event/userinterface/inputdevice  ** кінець OK  

 

Ви можете перевірити, для яких зворотних зв'язків пристрій зареєстрований, використовуючи цю команду:

 xСписок  зворотного зв'язку/події/інтерфейсу користувача/вхідного пристрою ** кінець OK  
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 }); } function cameraControl(motor, direction, cameraId='1') { com('Camera Ramp', { 'CameraId': cameraId, [motor]: direction }); } function init() { let standbyState; xapi.status.get('Standby').then((state) => {standbyState = стан. Стан === 'Вимкнено'? неправда: правда; }); xapi.status.on('Standby', state => { standbyState = стан. Стан === 'Вимкнено'? неправда: правда; }); xapi.event.on('Дія клавіші UserInterface InputDevice', натисніть => { 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(standbyState? 'Деактивація в режимі очікування' : 'Активація в режимі очікування'); перерва; за замовчуванням: розрив; } } }); } init(); 
Чи була ця стаття корисною?
Чи була ця стаття корисною?