Ця функція призначена для доповнення функціональних можливостей сенсорного контролера або сенсорного інтерфейсу користувача. Він не призначений для того, щоб їх замінити .

Приклади застосувань:

  • В аудиторіях і під час лекцій можна використовувати невеликий пульт дистанційного керування, щоб вивести пристрій з режиму очікування. Також може бути зручно використовувати пульт дистанційного керування, щоб вибрати, яке джерело вхідного сигналу представити.

  • Керування виглядом камери (панорамування, нахил і масштабування) у ситуаціях, коли вам заборонено використовувати сенсорний контролер. Наприклад, в операційних в лікарні.

Функціональний огляд

Коли натискається кнопка на пристрої введення USB, вона запускає дію в API пристрою Cisco. Макроси або зовнішні пристрої керування від третіх сторін можуть бути налаштовані для виявлення цих дій і відповідної реакції. Ця функція подібна до того, як поводяться кнопки керування в номері. Крім того, можна відстежувати ці дії за допомогою вебхуків або безпосередньо в сеансі SSH.

Вже існуюча бібліотека дій на вибір не надається. Від вас вимагається визначити і встановити конкретні дії, які повинні відбутися у відповідь на події. Наприклад:

  • Збільште гучність пристрою Cisco при натисканні клавіші збільшення гучності.

  • Переведіть пристрій Cisco в режим очікування, коли натиснута клавіша сну.

Конфігурації, події та статус

Конфігурації та стан, про які йдеться в цій статті, доступні як з локального веб-інтерфейсу пристрою, так і з API. Прочитайте статтю Конфігурації пристроїв, щоб дізнатися, як отримати доступ до веб-інтерфейсу та використовувати API.

Коли відкриється веб-інтерфейс пристрою, натисніть « Налаштування ». У розділі «Конфігурації» змініть параметр «Периферійні пристрої > Режим пристрою введення» на «Увімк.». Підтримка сторонніх USB-пристроїв введення за замовчуванням вимкнена.

Натискання та відпускання кнопки генерує подію «Натиснуто» та « Відпущено »:

 *e Інтерфейс користувача Клавіша дії клавіші InputDevice: <назва ключа> *e UserInterface Код дії клавіші InputDevice: <ідентифікатор ключа> *e Інтерфейс користувача Тип дії клавіші InputDevice: Натиснуто ** кінець *e Інтерфейс користувача Клавіша дії клавіші InputDevice: <назва ключа> *e Інтерфейс користувача Код дії клавіші InputDevice: <ідентифікатор ключа> *e Інтерфейс користувача Тип дії клавіші InputDevice: Випущено ** кінець 

Для прослуховування подій необхідно зареєструвати зворотний зв'язок від подій InputDevice :

 xFeedback Register /event/UserInterface/InputDevice ** кінець 

Коли пристрій Cisco виявить сторонній периферійний пристрій, він з'явиться в розділі «Стан » і в розділі «Периферійні пристрої > підключений пристрій ». Пристрій стороннього виробника може бути позначено як кілька пристроїв.

Додаткова інформація

Дізнайтеся більше про використання стороннього пристрою введення в посібнику з настроювання. Виберіть останню версію.

Підтримка Cisco (TAC) не підтримує налагодження стороннього коду, зокрема макросів. Будь ласка, перевірте Cisco RoomOS на наявність пристроїв для співпраці, якщо вам потрібна допомога з макросами та стороннім кодом. Перегляньте цю сторінку , щоб отримати більше прикладів макросів і розширень.

Приклад

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

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

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

1

увійдіть на пристрій Cisco за допомогою SSH. Вам потрібен локальний адміністратор .

2

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

 xConfiguration Периферійні пристрої InputDevice Mode: Увімк. ** кінець OK  

 

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

 xConfiguration Периферійні пристрої InputDevice Mode  *c xConfiguration Peripherals InputDevice Mode: On ** кінець OK  
3

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

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

 

Перевірити, за якими відгуками зареєстрований пристрій, можна за допомогою цієї команди:

 xСписок  відгуків/подія/інтерфейс користувача/пристрій введення ** кінець OK  
4

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

Ця дія генерує дві події: Натиснуто та Відпущено. Якщо натиснути й утримувати кнопку, з'явиться подія Натиснуто , доки ви не відпустите кнопку. Потім генерується подія Release .

Ці події видаються при натисканні та відпусканні клавіші Enter:

  *e UserInterface InputDevice Key Action Key: KEY_ENTER *e UserInterface InputDevice Key Код дії: 28 *e UserInterface InputDevice Key Тип дії: Натиснутий ** кінець *e Інтерфейс користувача Клавіша введення пристрою: KEY_ENTER *e UserInterface InputDevice Key Код дії: 28 *e Інтерфейс користувача Тип дії клавіші InputDevice: Випущено ** кінець  
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, тривалість: 3 }); } function cameraControl(motor, direction, cameraId='1') { com('Camera Ramp', { 'CameraId': cameraId, [motor]: напрямок }); } function init() { let standbyState; xapi.status.get('Standby').then((state) => {standbyState = state. Стан === 'Вимк.' ? false: істина; }); xapi.status.on('Режим очікування', стан => { standbyState = стан. Стан === 'Вимк.' ? false: істина; }); xapi.event.on('UserInterface InputDevice Key Action', натисніть => { if (натисніть. Type == "Pressed") { switch (натисніть. Key) { case "KEY_LEFT": cameraControl('Панорамування', 'Ліворуч'); break; case "KEY_RIGHT": cameraControl('Панорамування', 'Праворуч'); break; регістр "KEY_UP": cameraControl('Нахил', 'Вгору'); break; випадок "KEY_DOWN": cameraControl('Нахил', 'Вниз'); break; типове значення: break; } } else if (натисніть. Type == "Звільнено") { switch (натисніть. Key) { case "KEY_LEFT": cameraControl('Панорамування', 'Стоп'); break; case "KEY_RIGHT": cameraControl('Панорамування', 'Стоп'); break; випадок "KEY_UP": cameraControl('Нахил', 'Стоп'); break; case "KEY_DOWN": cameraControl('Нахил', 'Стоп'); break; case 'KEY_VOLUMEUP': com('Збільшення гучності звуку'); break; case 'KEY_VOLUMEDOWN': com('Зменшення гучності звуку'); break; case 'KEY_SLEEP': com(standbyState? 'Standby Deactivate' : 'Активація режиму очікування'); Перерва; типове значення: break; } } }); } init();