此功能旨在补充 触摸控制器或触摸用户界面的功能。它不是为了替代 它们。

应用程序示例:

  • 在教室和讲座期间,可以使用小型遥控器从待机模式唤醒设备。使用遥控器也可以方便地选择要呈现的输入源。

  • 在不允许使用触摸控制器的情况下,控制摄像头视图(平面、倾斜和缩放)。例如,在医院的手术室中。

功能概述

按USB输入设备上的按钮时,会在Cisco设备的API中触发操作。可设置来自第三方的宏 或外部控制设备 ,以检测这些操作并做出相应反应。此功能与“客房控制”按钮的操作方式类似。此外,通过网络钩子或直接在SSH会话中监控这些操作也是可行的。

未提供要选择的已存在的操作库。您需要定义和建立响应事件时应发生的具体操作。例如:

  • 按下Volume Up键时增加Cisco设备的音量。

  • 按下Sleep键时,将Cisco设备置于待机模式。

配置、事件和状态

本文中提到的配置和状态可从设备的本地Web接口和API获得。阅读 设备配置文章 ,了解如何访问Web接口和使用API的信息。

打开设备的网络接口时,单击 设置。在 配置下,将 外设 > 输入设备模式 更改为打开。缺省情况下,不支持第三方 USB 输入设备。

按下和发布按钮将生成已 按下和 已发布的 事件:

 *e UserInterface InputDevice Key Action Key:  *e UserInterface InputDevice Key Action Code:  *e UserInterface InputDevice Key Action Type:按下** end *e UserInterface InputDevice Key Action Key:  *e UserInterface InputDevice Key Action Code:  *e UserInterface InputDevice Key Action Type:已发布**结束 

要收听活动,您必须注册 InputDevice 活动的反馈:

 xFeedback Register /event/UserInterface/InputDevice ** end 

当Cisco设备检测到第三方外围设备时,它将在 状态 外设 > 连接设备中列出。第三方设备可报告为多台设备。

其他信息

有关使用第三方输入设备的信息,请参阅 自定义指南 。请选择最新版本。

Cisco 支持 (TAC) 不支持调试第三方代码,包括宏。如果您需要宏和第三方代码方面的帮助,请查看 Cisco RoomOS for Collaboration Devices 。有关宏和扩展的更多示例,请查看 此页

示例

在此示例中,我们想向您演示如何使用第三方USB输入设备的密钥(在本例中为远程控制)来控制Cisco设备上的某些功能。

我们将向您演示如何使用蓝牙遥控器(通过USB电子dongle连接)上的按钮来管理备用、音量调整和控制Cisco摄像头设备的功能。您可以开发宏来倾听相关事件并通过Cisco设备的API执行相应操作。

在下面的示例中,您必须输入以正常字体写的文本。斜体文本是从Cisco设备收到的响应。

1

在SSH上登录Cisco设备。您需要本地管理员 用户。

2

将设备配置为允许使用第三方 USB 远程控制。

 x配置外围输入设备模式:在 **结束,确定  

 

您可以使用以下命令检查配置是打开还是关闭:

 x配置外围输入设备模式 *c x配置外围输入设备模式:在**结束OK  
3

注册反馈,以便当按下和远程控制按钮时通知我们。

 xFeedback Register /event/user interface/inputdevice  **结束OK  

 

您可以使用该命令检查设备注册了哪些反馈:

 x反馈列表 /事件/用户界面/输入设备**结束OK  
4

按下并放开按钮,远程控制反馈注册是否有效。

此操作将生成两个事件:按压释放。如果您按住按钮,将看到 已按下 的活动,直到您放开该按钮。然后, 将生成发布 事件。

按下并发布 Enter 键时,将发出以下事件:

  *e用户界面输入设备密钥操作密钥:密钥_输入*e UserInterface InputDevice密钥操作代码:28 *e用户界面输入设备密钥操作类型:按下**结束*e UserInterface InputDevice Key Action Key:密钥_输入*e UserInterface InputDevice密钥操作代码:28 *e用户界面输入设备密钥操作类型:已发布**结束  
5

编写侦听相关 InputDevice 事件,然后使用设备的 API 执行相关操作的宏。

  • 使待机模式、音量调节和音量降低按钮恢复运行。当宏看到包含 KEY VOLUMEUP、KEY__VOLUMEDOWN 或 KEY_SLEEP 的事件时,它会执行相关命令。

  • 为箭头键创建摄像机控制功能。只要按下按钮,我们希望继续移动摄像头。按钮释放后,摄像机移动会停止。当宏看到包含 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:消息,持续时间:3 }); }功能cameraControl(电机、方向、cameraId='1') { com('Camera Ramp', { 'CameraId':相机ID,[电机]:direction }); }函数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”);断开;案例“_右键”:cameraControl('Pan','Right');断开;案例“Key_UP”:cameraControl(“Tilt”、“Up”);断开;案例“Key_DOWN”:cameraControl(“tilt”、“down”);中断;默认:break; } } else if (press.Type == "Released") { switch (press.Key) { case "KEY_LEFT":cameraControl(“Pan”、“Stop”);Break;Case“KEY_RIGHT”:cameraControl(“Pan”、“Stop”);中断;案例“Key_UP”:cameraControl(“Tilt”、“Stop”);Break;Case“Key_DOWN”:cameraControl(“tilt”、“Stop”);Break;Case“KEY_VOLUMEUP”:com(“音频音量增加”);中断;案例“关键_音量下降”:com(“音量减少”);休息;案例“关键_睡眠”:com(待机状态? '待机停用':“待机激活”);中断;默认:break; } } }); } init();