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

Функция стороннего USB-устройства ввода описана в этой статье .

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

1

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

2

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

 xConfiguration Peripherals InputDevice Mode: On ** end OK  

 

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

 xConfiguration Peripherals InputDevice Mode  *c xConfiguration Peripherals InputDevice Mode: On ** end OK  
3

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

 xFeedback Регистрация /event/userinterface/inputdevice  ** конец ОК  

 

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

 Список xFeedback /event/userinterface/inputdevice ** конец ОК  
4

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

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

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

  *e Клавиша действия клавиши UserInterface InputDevice: KEY_ENTER *e Код действия клавиши UserInterface InputDevice: 28 *e Тип действия клавиши UserInterface InputDevice: нажата ** end *e Клавиша действия клавиши UserInterface InputDevice: KEY_ENTER *e Код действия клавиши UserInterface InputDevice: 28 *e Тип действия клавиши UserInterface InputDevice: выпущено ** конец  
5

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

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

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

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