Bluetooth リモート コントロール (USB ドングル) のキーを使用してスタンバイ機能をコントロールし、音量を大きくまたは小さいとき、Room デバイスまたは Desk デバイスのカメラをコントロールする方法を示します。 関連するイベントをリッスンし、Room または Desk デバイスの API を使用して関連するアクションを削除するマクロを作成します。

サードパーティの USB 入力デバイスの機能は、この記事で説明 されています

次の例では、文字が通常のフォントで書かれているか入力する必要があります。 の文字は、Room デバイスまたは Desk デバイスから受け取った応答です。

1

SSH で Room または Desk デバイスにサインインします。 ローカル管理者ユーザーが 必要 です。

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

フィードバック登録が機能リモート コントロールボタンを押してリリースします。

このアクションにより 2 つのイベントが生成されます: 押してリリース されました。 ボタンを長押しすると、ボタンを離 すまで [ 押された] イベントが表示されます。 次に、 リリース済 みイベントが生成されます。

これらのイベントは、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_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, 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();