この機能は、タッチ コントローラまたはタッチ ユーザ インターフェイスの 機能を補完する 機能を提供します。 代替 を目的としたものではありません。

アプリケーションの例:

  • 教室や講義中に、小さなリモート コントロールを使用して、デバイスをスタンバイ モードから復帰させることができます。また、リモートコントロールを使用して、表示する入力ソースを選択すると便利な場合もあります。

  • タッチコントローラーの使用が許可されていない状況でのカメラビューのコントロール (パン、チルト、ズーム)。 たとえば、病院の手術室などです。

機能の概要

USB 入力デバイスのボタンが押されると、Cisco デバイスの API 内のアクションをトリガーします。 サードパーティのマクロ または外部コントロールデバイスをセットアップすることで、これらのアクションを検出し、適切に対応することができます。 この機能は、室内コントロール ボタンの動作と似ています。 さらに、これらのアクションは、webhook を介して、または SSH セッション内で直接監視できます。

既存のアクションライブラリから選択することはできません。 イベントに応答して発生する特定のアクションを定義し、確立する必要があります。 次に例を示します。

  • 音量アップキーが押されたとき、Cisco デバイスの音量を上げます。

  • スリープ キーが押されたときに、Cisco デバイスをスタンバイ モードにします。

設定、イベント、およびステータス

この記事で参照されている構成とステータスは、デバイスのローカル ウェブ インターフェイスと API の両方から入手できます。 ウェブ インターフェースへのアクセス方法と API コマンドの使用方法については、 端末設定の記事 を参照してください。

端末のウェブインタフェースが開いたら、 設定 をクリックします。 [ 構成 ] の下で、[ Peripherals ] を [ InputDevice Mode ] に変更します。 オンまで。 他社製 USB 入力デバイスのサポートは、デフォルトでは無効になっています。

ボタンを押して放すと、押されたそしてリリースされたイベントになります。

 *e ユーザインタフェース入力デバイスキーアクションキー: <キーの名前> *e ユーザインタフェース入力デバイスキーアクションコード: <キーの ID> *e UserInterface InputDevice Key アクションタイプ: 押されました ** end *e UserInterface InputDevice Key アクションキー: <キーの名前> *e ユーザインタフェース入力デバイスキーアクションコード: <キーの ID> *e UserInterface InputDevice Key アクションタイプ: リリース済み ** end 

イベントをリッスンするには、 InputDevice イベントからのフィードバックを登録する必要があります。

 xFeedback の登録 /event/UserInterface/inputDevice ** 終了 

Cisco デバイスがサードパーティの周辺機器を検出すると、それが [ ステータス ] および [ 周辺機器 ] に表示されます。 ConnectedDevice です。 サードパーティのデバイスは、複数のデバイスとして報告される場合があります。

詳細情報

サードパーティ製の入力デバイスの使用に関する詳細については、カスタマイズガイドを参照してください。 最新バージョンを選択します。

Ciscoサポート(TAC)は、マクロを含むサードパーティコードのデバッグに対応していません。 マクロやサードパーティコードに関するヘルプが必要な場合は、 コラボレーションデバイス用 Cisco RoomOS を確認してください。 マクロと拡張機能の例については、 このページ を確認してください。

この例では、サードパーティの USB 入力デバイス (この場合はリモートコントロール) のキーを使用して、Cisco デバイスの特定の機能をコントロールする方法を示します。

Bluetooth リモコン (USB ドングルで接続) のボタンを使用して、Cisco カメラ デバイスのスタンバイ、音量調整、コントロールなどの機能を管理する方法を紹介します。 関連イベントをリッスンし、Cisco デバイスの API を通じて対応するアクションを実行するマクロを開発できます。

次の例では、通常のフォントで書かれているテキストを入力する必要があります。 イタリック体のテキストは、Cisco デバイスから受信した応答です。

1

SSH で Cisco デバイスにログインします。 ローカル管理者ユーザが必要です。

2

サードパーティ製の USB リモートコントロールを使用できるようにデバイスを設定します。

 xConfiguration Peripherals InputDevice モード: オン ** end OK  

 

このコマンドを使用して、設定がオンかオフかを確認できます。

 xConfiguration Peripherals InputDevice Mode  *c xConfiguration Peripherals InputDevice Mode: オン ** end OK  
3

フィードバックを登録して、リモコンのボタンが押されて放されたときに通知されるようにします。

 xFeedback 登録 /event/user Interface/inputdevice  ** 終了 OK  

 

このコマンドを使用して、デバイスがどのフィードバックを登録しているかを確認できます。

 x フィードバックリスト /event/user Interface/inputdevice ** 終了 OK  
4

フィードバック登録が機能していることを確認するには、リモコンのボタンを押して放します。

このアクションは 2 つのイベントを生成します。押されたそしてリリースした。 ボタンを長押しすると、ボタンをリリースするまでイベントは押されたままです。 次にリリースされたイベントが生成されます。

Enter キーを押して放すと、これらのイベントが発行されます。

  *e UserInter face InputDevice Key アクションキー: KEY_ENTER *e UserInter face InputDevice Key アクションコード: 28 *e UserInter face InputDevice Key アクションタイプ: 押す ** end *e UserInter face InputDevice Key アクションキー: KEY_ENTER *e UserInter face InputDevice Key アクションコード: 28 *e ユーザインタフェース InputDevice Key アクションタイプ: リリース済み ** end  
5

関連する InputDevice イベントをリッスンするマクロを書き、デバイスの API を使用して関連するアクションを実行します。

  • スタンバイボタン、音量を上げるボタン、音量を下げるボタンを有効にします。 マクロが KEY_VOLUMEUP、KEY_VOLUMEDOWN、または KEY_SLEEP を含むイベントを検出すると、関連するコマンドを実行します。

  • 矢印キー用のカメラ制御機能を作成します。 ボタンが押されている限り、カメラを動かし続けます。 ボタンを離すと、カメラの動きが止まります。 マクロが KEY_LEFT、KEY_RIGHT、KEY_UP、または KEY_DOWN を含むイベントを検出すると、関連コマンドを実行します。

 const xapi = need('xapi'); Function com(command, args='') { xapi.command(command, args); log(command + ' ' + JSON.stringify(args)); } 関数ログ (イベント) { Console.log(イベント); } 関数通知 (メッセージ) { xapi.command('UserInterface Message TextLine Display', { テキスト: メッセージ, 継続時間: 3 }); Function CameraControl(Motor,Direction, CameraId='1') { com('Camera Ramp', { 'CameraId': CameraId, [Motor]:方向 }); } 関数 init() { 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; デフォルト: Break; } } Elseif (press.Type == "Released") { Switch (press.Key) { case "KEY_LEFT": CameraControl('Pan', '停止') ; 中断; case "KEY_RIGHT": CameraControl('Pan', '停止'); Break; case "KEY_UP": CameraControl('Tilt', '停止'); Break; case "KEY_DOWN": CameraControl('Tilt', '停止'); 中断; case 'KEY_VOLUMEUP': com('Audio 音量増加'); 中断; case 'KEY_VOLUMEDOWN': com('音声ボリューム減少'); 中断; case 'KEY_SLEEP': com( StandbyState? 'スタンバイのアクティベート解除' : 'スタンバイのアクティベート');休憩;デフォルト: 中断; } } }); } init();