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

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

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

1

Во войти в устройство комнаты или аппаратное устройство на SSH. Вам необходим локальный пользователь-администратор .

2

Настройте устройство так, чтобы устройство позволяло использовать usb-порты сторонних удаленное управление.


       xConfiguration Peripherals InputDevice Mode: On 
      ** end OK  
               

 

Можно проверить, включит ли конфигурация или выключается, используя эту команду:


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

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


       xFeedback Register /event/userinterface/inputdevice 
       ** end OK  
               

 

Можно проверить, какие отзывы зарегистрированы на устройство с помощью этой команды:


        xFeedback list 
       /event/userinterface/inputdevice ** end OK  
                  
4

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

Это действие генерирует два события: Нажатие и освобождено . При нажатии и удержании кнопки нажатие кнопки будет от конференции «Нажатие» (Pressed ) до ее выпуска. Затем будет сформировано событие "Освобождено".

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

 
                   *e UserInterface InputDevice Key Action Key: KEY_ENTER *e UserInterface InputDevice Key Action Code: 28 *e UserInterface InputDevice Key Action Type: Pressed ** end *e UserInterface InputDevice Key Action Key: KEY_ENTER *e UserInterface InputDevice Key Action Code: 28 *e UserInterface InputDevice Key Action Type: Released ** end  
               
5

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

  • Привнесите кнопки для режимов ожидания, громкости и громкости. Когда макрос видит событие, содержащее ГРОМКОСТЬ_КЛЮЧА, ГРОМКОСТЬ_КЛЮЧА или КЛЮЧЕВОЙ_СПЯЩИЙ, он выполняет соответствующие команды.

  • Создайте функцию управления камерой для клавиш со стрелками. Мы движемся камерой до тех пор, пока кнопка не будет нажата. После сброса кнопки перемещение камеры прекращается. Когда макрос видит событие, содержащее КЛАВИШУ ВЛЕВО_,_КЛЮЧ ВПРАВО, 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 = 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'); 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 (press.Type == "Released") { switch (press.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('Audio Volume Increase'); break; case 'KEY_VOLUMEDOWN': com('Audio Volume Decrease'); break; case 'KEY_SLEEP': com(standbyState ? 'Standby Deactivate' : 'Standby Activate'); break; default: break; } } }); } init();