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

Приклади додатків:

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

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

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

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

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

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

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

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

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

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

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

 *e Клавіша дії клавіші InputDevice UserInterface: <назва ключа> *e Код дії ключа UserInterface InputDevice: <id ключа> *e Тип дії клавіші InputDevice UserInterface: Натиснуто ** кінець *e Клавіша дії клавіші UserInterface InputDevice: <назва ключа> *e Код дії ключа UserInterface InputDevice: <id ключа> *e Тип дії ключа UserInterface 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 Peripherals InputDevice Mode: On ** кінець OK  

 

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

 xConfiguration Peripherals 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 Клавіша дії UserInterface InputDevice: KEY_ENTER *e UserInterface InputDevice Key Код дії: 28 *e UserInterface InputDevice Key Тип дії: Відпущено ** кінець  
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 = стан. Стан === 'Вимкнено' ? false: істина; }); xapi.status.on('Режим очікування', стан => { standbyState = стан. Стан === 'Вимкнено' ? false: істина; }); xapi.event.on('Дія ключа UserInterface InputDevice', натисніть => { if (натисніть. Type == "Pressed") { switch (натисніть. 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; } } else if (натисніть. Введіть == "Відпущено") { switch (натисніть. 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? 'Standby Deactivate' : 'Активація в режимі очікування'); Перерва; За замовчуванням: break; } } }); } init();