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

アプリケーションの例:

  • 教室や講義中に、小さなリモートコントロールを使用して、スタンバイモードからデバイスをウェイクアップできます。また、リモートコントロールを使用して、提示する入力ソースを選択すると便利です。

  • タッチコントローラを使用できない状況でのカメラビュー(パン、チルト、およびズーム)の制御。例えば、病院のオペレーティング ルームなどです。

機能の概要

USB 入力デバイスでボタンが押されると、シスコ デバイスの API 内でアクションがトリガーされます。 サードパーティのマクロ または外部制御デバイスを設定して、これらのアクションを検出し、それに応じて反応させることができます。この機能は、会議室内制御ボタンの動作に似ています。さらに、Webhook を通じて、または SSH セッション内で直接、これらのアクションを監視することも可能です。

選択するアクションの既存のライブラリは提供されません。イベントに応じて発生する特定のアクションを定義し、確立する必要があります。たとえば、次のようなものです。

  • [音量アップ(Volume Up)] キーを押すと、シスコデバイスの音量を上げます。

  • スリープキーを押すと、Cisco デバイスがスタンバイモードになります。

設定、イベント、ステータス

この記事で説明されている設定とステータスは、デバイスのローカル Web インターフェイスと API の両方から利用できます。Web インターフェイスにアクセスし、API を使用する方法については、 デバイス設定の記事 を参照してください。

デバイスの Web インターフェイスが開いたら、 [設定] をクリックします。 [構成] で、 [ペリフェラル] > [InputDevice モード][オン] に変更します。サードパーティの USB 入力デバイスのサポートは、デフォルトで無効になっています。

ボタンを押してリリースすると、Pressed および Released イベント生成 されます。

 *e UserInterface InputDevice キーアクションキー:  *e UserInterface InputDevice キーアクションコード:  *e UserInterface InputDevice キーアクションタイプ: 押された ** end *e UserInterface InputDevice キーアクションキー:  *e UserInterface InputDevice キーアクションコード:  *e UserInterface InputDevice キーアクションタイプ: リリース ** 終了 

イベントを聞く場合、InputDevice イベントからフィードバックを 登録する必要 があります。

 xFeedback 登録 /event/UserInterface/InputDevice ** end 

Cisco デバイスがサードパーティの周辺機器を検出すると、 [ステータス] [周辺機器] > [接続済みデバイス] にリストされます。サードパーティ デバイスは、複数のデバイスとして報告される場合があります。

詳細情報

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

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

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

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

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

1

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

2

サードパーティ USB 接続システムの使用を許可するデバイスをリモート コントロール。

 xConfiguration Peripherals InputDevice モード:** 終了時 OK  

 

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

 xConfiguration Peripherals InputDevice モード  *c xConfiguration Peripherals InputDevice モード: ** 終了 OK  
3

[デバイス] ボタンが押され、リリースしたときに通知リモート コントロール、フィードバックに登録してください。

 xFeedback 登録 /event/userinterface/inputdevice  ** end OK  

 

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

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

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

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

これらのイベントは、Enter キーを押してリリースする際に発行されます。

  *e UserInterface InputDevice キー アクション キー: キー_ENTER *e UserInterface InputDevice キー アクション コード: 28 *e UserInterface InputDevice キーアクションタイプ: 押された ** end *e ユーザ インターフェイス InputDevice キー アクション キー: キー_ENTER *e UserInterface InputDevice キー アクション コード: 28 *e UserInterface InputDevice キーアクションタイプ: リリース ** 終了  
5

関連する InputDevice イベントを リスンし、デバイスの API を使用して関連するアクションを処理するマクロを記述します。

  • スタンバイ状態の音量を上げ、音量を下げ、ボタンを寿命を切る。マクロで KEY_VOLUMEUP、KEY VOLUMEDOWN、KEY__SLEEP を含むイベントが表示される場合、関連するコマンドが実行されます。

  • 矢印キーのカメラコントロール機能を作成します。ボタンが押される限り、カメラを移動し続ける必要があります。ボタンがリリースされると、カメラの動きは停止します。マクロで KEY_LEFT、KEY_RIGHT、KEY UP、KEY__DOWN を含むイベントが表示される場合、関連するコマンドが実行されます。

 { 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: メッセージ、継続時間: cameraControl(motor, direction, cameraId='1') { com('Camera Ramp', {'CameraId': cameraId、[motor]: {{standbyState; xapi.status.get('Standby').then((state) => {standbyState = state.State === 'Off'? false : true; }); xapi.status.on('Standby', state => { standbyState = state.State === 'Off' ? false : 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; } 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? 「スタンバイ非アクティブ化」: 「スタンバイアクティベート」); break; デフォルト: ////////////////////////////////////////