Данная функция призвана дополнить функциональные возможности сенсорного контроллера или пользовательского интерфейса touch. Он не должен их заменить .

Примеры областей применения:

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

  • Управление изображением камеры (поворот, наклон и изменение масштаба) в ситуациях, когда использование сенсорного контроллера запрещено. Например, в операционных в больнице.

Обзор функциональных возможностей

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

Ранее существующая библиотека действий на выбор не предоставляется. От вас требуется определить и определить конкретные действия, которые должны произойти в ответ на эти события. Пример:

  • Увеличить громкость устройства Cisco при нажатии клавиши увеличения громкости.

  • Переведите устройство Cisco в режим ожидания при нажатии клавиши спящего режима.

Конфигурация, события и состояние

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

Когда веб-интерфейс устройства открыт, щелкните « Настройки ». В разделе « Конфигурации » измените режим периферийных шлюзов > на «Вкл .» По умолчанию поддержка сторонних устройств ввода USB отключена.

При нажатии кнопки и ее отпускании создается событие Нажата и Отпущена:

 *e UserInterface inputDevice клавиша действия клавиши: < имя ключа> *e UserInterface inputDevice код действия клавиши: <id ключа> *e UserInterface InputDevice Тип действия клавиши: нажато *нажато ** конец *e UserInterface InputDevice ключ действия клавиши: < имя ключа> *e UserInterface inputDevice код действия ключа: <id ключа> *e UserInterface inputDevice Тип действия ключа: Освобождено ** на конце 

Для прослушивания событий необходимо регистрировать обратную связь от событий УстройствоВвода:

 Регистрация xFeedback /событие/UserInterface/InputDevice ** заканчивается 

Когда устройство Cisco обнаруживает периферийное устройство стороннего производителя, оно будет указано в разделе « Состояние» и « Периферийные устройства> ConnectedDevice ». О устройстве стороннего производителя могут сообщаться как несколько устройств.

Дополнительная информация

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

Служба поддержки Cisco (TAC) не оказывает помощь в отладке стороннего кода, включая макросы. Проверьте Cisco RoomOS для устройств для совместной работы, если вам нужна помощь с макросами и кодом сторонних разработчиков. Просмотрите эту страницу для получения дополнительных примеров макросов и добавок.

Пример

В этом примере мы хотим показать вам, как использовать клавиши стороннего usb-устройства ввода (в данном случае пульта ду) для управления определенными функциями устройства Cisco.

Мы показываем вам, как использовать кнопки на Bluetooth пульте ДИСТАНЦИОННОГО управления (подключенном через аппаратный ключ USB) для управления такими функциями, как ожидание, регулировка громкости и управление устройством камеры Cisco. С помощью API устройства Cisco можно разработать макрос, который прослушивает соответствующие события и выполняет соответствующие действия.

В следующем примере текст, который необходимо ввести, напечатан обычным шрифтом. Курсивом отображается ответ, полученный от устройства Cisco.

1

выполните вход на устройство Cisco по SSH. Потребуется учетная запись локального администратора.

2

На устройстве разрешите использование стороннего пульта дистанционного управления USB.

 Режим ввода периферийных шлюзов xConfiguration: вкл .** на конце OK  

 

Чтобы проверить, включена ли соответствующая конфигурация, воспользуйтесь следующей командой:

 Режим   ввода периферийных устройств xConfiguration Периферийные шлюзы Режим ввода* c Режим ввода конфигурации периферийных шлюзов: на конце ** на конце OK  
3

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

 Регистрация xFeedback /событие/userinterface/inputdevice  ** заканчивается ОК  

 

Чтобы проверить, какая обратная связь регистрируется, воспользуйтесь следующей командой:

 список  xFeedback/событие/userinterface/inputdevice ** заканчивается ОК  
4

Нажмите и отпустите кнопку на пульте дистанционного управления, чтобы проверить, что регистрация обратной связи работает.

Это действие генерирует два события: Нажата и Отпущена. Если нажать и удерживать кнопку, событие Нажата будет отображаться до тех пор, пока вы не отпустите кнопку. После этого генерируется событие Отпущена.

Ниже указаны события, которые создаются при нажатии и отпускании клавиши Enter:

  *e UserInterface InputDevice Клавиша действия клавиши нажатия клавиши: KEY_ENTER *e UserInterface inputDevice Код действия ключа: 28 *e UserInterface inputDevice Тип действия клавиши: нажатая конец ** конец *e UserFace InputDevice ключ действия клавиши: KEY_ENTER *e UserInterface inputDevice Код действия клавиши: 28 *е UserInterface inputDevice Тип действия ключа: освобожден *конец **  
5

Создайте макрос, который прослушивает соответствующие события УстройствоВвода и выполняет связанные с ними действия с помощью API устройства.

  • Переведите устройство в режим ожидания, нажмите кнопки увеличения и уменьшения уровня громкости. Когда макрос обнаруживает событие, содержащее параметры KEY_VOLUMEUP, KEY_VOLUMEDOWN или KEY_SLEEP, он выполняет соответствующие команды.

  • Создайте функцию управления камерой для клавиш со стрелками. Необходимо обеспечить перемещение камеры в течение всего времени, пока нажата кнопка. При отпускании кнопки перемещение камеры должно прекратиться. Когда макрос обнаруживает событие, содержащее параметры KEY_LEFT, KEY_RIGHT, KEY_UP или KEY_DOWN, он выполняет соответствующие команды.

 const копипи = require('копипи'); функция com(command, args=') { 4pi.command(command, args); log(command + ' ' + '+ API.stringify(args)); } function log(event) { console.log(event); } function notify(message) { 9pi.command('UserInterface Message Message Display', { Текст: сообщение, длительность: 3 }); } функция cameraControl(двигатель, направление, cameraId='1') { com('Camera Ramp', { 'CameraId:cameraId: cameraId, [motor]: направление }); } function init() { let standbyState; statpi.status.get('Standby').then(state) => {standbyState = state. Состояние === 'Выкл'? false: истина; }); xapi.status.on('Standby', state => { standbyState = state. Состояние === 'Выкл'? false: истина; }); жатая.event.on('UserInterface InputDevice Key Action', нажмите => { if (нажмите. Type == "Pressed") { переключатель (нажмите. Ключ) { случай "KEY_LEFT": cameraControl('Pan', 'Влево'); перерыв; случай "KEY_RIGHT": cameraControl('Pan', 'Right'); перерыв; случай "KEY_UP": cameraControl('Наклон,'Вверх'); перерыв; случай "KEY_DOWN": cameraControl('Наклон,'Вниз);перерыв; по умолчанию: перерыв; } else если (нажмите. Type == "Освобожден") { переключатель (нажмите. Ключ) { случай "KEY_LEFT": cameraControl('Pan', 'Стоп'); перерыв; случай "KEY_RIGHT": cameraControl('Панорама', 'Stop'); перерыв; случай "KEY_UP": cameraControl('Tilt,'Stop'; перерыв; случай "KEY_DOWN": cameraControl('Tilt,'Stop'); перерыв; случай 'KEY_VOLUMEUP': com('Увеличение громкости аудио); перерыв; случай "KEY_VOLUMEDOWN': com('Уменьшение громкости аудио); перерыв; случай "KEY_SLEEP:com(standbyState? «Деактивация режима ожидания»: «Активация режима ожидания»); Перерыв; значение по умолчанию: перерыв; } } }); } init();