此功能旨在 補充 觸摸控制器或觸摸使用者介面的功能。 它不是要 取代 它們。

應用範例:

  • 在教室和講座期間,可以使用小型遙控器將設備從待機模式喚醒。使用遙控器選擇要呈現的輸入源也可能很方便。

  • 在不允許使用 Touch 控制器的情況下控制攝影機檢視(平移、傾斜和縮放)。 例如,在醫院的手術室內。

功能概述

按下 USB 輸入裝置上的按鈕時,它會觸發 Cisco 裝置 API 中的動作。 可以設置來自第三方的 宏或外部控制設備來檢測這些操作並做出相應的反應。 此功能類似於「會議室中控制」按鈕的行為方式。 此外,可以通過 Webhook 或直接在 SSH 工作階段中監視這些操作。

不提供預先存在的操作庫供您選擇。 您需要定義和建立回應事件時應執行的特定操作。 例如:

  • 在按下「音量調高」按鍵時,增加 Cisco 裝置的音量。

  • 在按下「睡眠」按鍵時,將 Cisco 裝置置於待機模式。

組態、事件和狀態

此文章參考組態和狀態,可同時從裝置的本機 Web 介面和 API 組態使用。 有關如何訪問 Web 介面和使用 API 的資訊,請閱讀設備配置一文

打開設備的 Web 介面後,按兩下 設置 。 在「組態 」下 ,將「周邊設備 > 輸入裝置模式 」變更 「開」。 第三方 USB 輸入裝置的支援預設為停用。

按下並放開按鈕會產生已按下已放開事件:

 *e 使用者介面輸入裝置按鍵鍵:<鍵的名稱> *e 使用者介面 InputDevice 按鍵操作代碼:<鍵的 id> *e 使用者介面 InputDevice 按鍵操作類型:按下 ** 結束 *e 使用者介面輸入裝置按鍵按鍵鍵:<鍵的名稱> *e 使用者介面 InputDevice 按鍵操作代碼:< 鍵的 id> *e 使用者介面 InputDevice 按鍵操作類型:發佈 ** 結束 

若要聽取事件,您必須註冊 InputDevice 事件回饋:

 x 反饋寄存器 /事件/使用者介面/輸入裝置 ** 結束 

當 Cisco 裝置偵測到第三方周邊設備時,它會列在「狀態 」及 「周邊設備 > 已連接裝置 」下 。 第三方設備可能會被報告為多台設備。

更多資訊

請在自訂指南中尋找關於使用第三方輸入裝置的資訊。 請選擇最新版本。

Cisco 支援 (TAC) 不支援第三方程式碼(包括巨集)的偵錯。 如果您需要巨集與第三方程式碼方面的協助,請檢查 適用於協作裝置 的 Cisco RoomOS。 查看 此頁面 以獲取宏和擴展的更多範例。

範例

在此範例中,我們將向您展示如何使用第三方 USB 輸入裝置的按鍵(在此案例中是遠端控制)來控制 Cisco 裝置上的某些功能。

我們將為您示範如何使用 Bluetooth 遙控器(透過 USB 適配器連接)上的按鈕來管理待機、音量調節及 Cisco 攝影機裝置控制等功能。 您可以開發一個宏,該宏偵聽相關事件並通過 Cisco 裝置的 API 執行相應的動作。

在下列範例中,您必須輸入以一般字型寫入的文字。 斜體文字是從 Cisco 裝置收到的回應。

1

在 SSH 上登入 Cisco 裝置。 您需要本機管理使用者。

2

設定裝置以允許使用第三方 USB 遙控器。

 xConfiguration 周邊設備輸入裝置模式:開 ** 結束 OK  

 

您可以使用此指令檢查組態是開或關:

 x 組態周邊設備輸入裝置模式  *c x 組態周邊設備輸入裝置模式:開 ** 端確定  
3

請註冊回饋,以便讓我們在按下及放開遙控器按鈕時收到通知。

 x 反饋寄存器 /事件/使用者介面/輸入設備  ** 結束確定  

 

您可以使用此指令檢查註冊回饋的裝置:

 x 反饋清單 /事件/使用者介面/輸入裝置 ** 結束確定  
4

按下並放開遙控器的按鈕,以檢查回饋註冊是否作用中。

此動作會產生兩個事件:已按下已放開。 若按住按鈕,在放開之前,您會看到已按下事件。 然後會產生已放開事件。

按下並放開 Enter 鍵時,會發出這些事件:

  *e 使用者介面輸入設備鍵操作鍵:KEY_ENTER *e 使用者介面輸入設備鍵操作代碼:28 *e 使用者介面輸入設備鍵操作類型:按下**結束 *e 使用者介面輸入設備鍵操作鍵:KEY_ENTER *e 使用者介面輸入設備鍵操作代碼:28 *e 使用者介面輸入設備鍵操作類型:已發佈**結束  
5

寫入用於聆聽相關InputDevice的巨集,並使用裝置 API 執行相關的動作。

  • 喚起待命、音量調高和調低按鈕。 當巨集發現包含 KEY_VOLUMEUP、KEY_VOLUMEDOWN 或 KEY_SLEEP 的事件時,會執行相關的指令。

  • 為方向鍵建立攝影機控制功能。 我們需要使攝影機在按下按鈕時不斷移動。 當放開按鈕時,攝影機會停止移動。 當巨集發現包含 KEY_LEFT、KEY_RIGHT、KEY_UP 或 KEY_DOWN 的事件時,會執行相關的指令。

 常量 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.狀態 === '關閉'?假:真;});xapi.status.on('Standby',state => { standbyState = state.狀態 === '關閉'?假:真;});xapi.event.on('UserInterface InputDevice Key Action',按 => { if(press.鍵入 ==“按下”){ 開關(按。鍵){ 案例“KEY_LEFT”:cameraControl('平移','左'); 中斷; 案例“KEY_RIGHT”:cameraControl('平移','右'); 中斷; 案例“KEY_UP”:cameraControl('傾斜','向上'); 中斷; 案例“KEY_DOWN”:cameraControl('Tilt','Down'); 中斷; 預設:中斷; } }否則如果(按。類型 ==“已釋放”){ 開關(按。key){ 案例“KEY_LEFT”:cameraControl('平移','停止'); 中斷; 案例“KEY_RIGHT”:cameraControl('平移','停止'); 中斷; 案例“KEY_UP”:cameraControl('傾斜','停止'); 中斷; 案例“KEY_DOWN”:cameraControl('傾斜','停止'); 中斷; 案例 'KEY_VOLUMEUP':com('音訊音量增加'); 中斷; 案例 'KEY_VOLUMEDOWN':com('音訊音量降低'); 中斷; 案例 'KEY_SLEEP':com(standbyState? “待機停用”:“待機啟動”);休息;默認值:中斷;} } });} 初始化();