我们向您展示如何使用 Bluetooth 遥控器(通过 USB 加密狗连接)上的按钮来管理待机、音量调节和思科摄像头设备控制等功能。 您可以开发一个宏,通过 Cisco 设备的 API 监听相关事件并执行相应操作。

本文介绍了第三方 USB 输入设备功能

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

1

通过 SSH 登录 Cisco 设备。 必须有一个本地 Admin 用户。

2

配置设备以允许使用第三方 USB 遥控器。

 x 配置外设输入设备模式:开启 **结束 OK  

 

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

 xConfiguration Peripherals InputDevice Mode  *c xConfiguration Peripherals InputDevice Mode:On ** end OK  
3

注册接收反馈,以便在遥控器按钮按下和松开时能收到通知。

 xFeedback 注册 /event/userinterface/inputdevice  ** 结束 OK  

 

您可以使用此命令检查设备注册的反馈:

 xFeedback 列表 /event/userinterface/inputdevice **结束 OK  
4

按下并松开遥控器上的按钮以检查反馈注册是否有效。

此操作会生成两个事件:按下松开。 如果您按住按钮,会看到按下事件;松开之后 会生成松开事件。

按下并松开 Enter 键时,这些事件会发布:

  *e 用户界面输入设备按键操作键:KEY_ENTER *e 用户界面输入设备按键操作代码:28 *e 用户界面输入设备按键操作类型:按下 ** 结束 *e 用户界面输入设备按键操作按键:KEY_ENTER *e 用户界面输入设备按键操作代码:28 *e 用户界面输入设备按键操作类型:已释放**结束  
5

编写侦听相关输入设备事件的宏,并使用设备的 API 执行关联操作。

  • 启动待机、音量增大和音量减小按钮。 当宏看到包含 KEY_VOLUMEUP、KEY_VOLUMEDOWN 或 KEY_SLEEP 的事件时,会执行相关命令。

  • 为箭头键创建摄像机控制功能。 在按下按钮时,我们想要摄像机保持移动。 松开按钮时,摄像机停止移动。 当宏看到包含 KEY_LEFT、KEY_RIGHT、KEY_UP 或 KEY_DOWN 的事件时,会执行相关命令。

 const xapi = require('xapi');函数 com(command, args=''){ xapi.command(command, args);日志(命令 + ' ' + JSON.stringify(args)); } 函数日志(事件){ console.log(事件); } function notification(message){ xapi.command('用户界面消息文本行显示', { Text:message,uration: 3 }); } functioncameraControl(电机,方向,cameraId ='1'){com('相机斜坡',{'CameraId':cameraId,[电机]:方向}); } 函数 init() { 让 standbyState; xapi.status.get('待机').then((state)=> {standbyState = state.State === '关闭' ? false:true; }); xapi.status.on('待机', state => {standbyState = state.State === '关闭' ? false:true; }); xapi.event.on('UserInterface InputDevice Key Action', press => { if(press.Type == "Pressed"){ switch(press.Key){ case "KEY_LEFT":cameraControl('平移', '向左'); 中断; 案例“KEY_RIGHT”:cameraControl('平移', '右'); 中断; 案例“KEY_UP”:cameraControl('倾斜', '向上'); 中断; 案例“KEY_DOWN”:cameraControl('倾斜', 'Down'); break; 默认:break; } } else if(press.Type == "Released"){ switch(press.Key){ case "KEY_LEFT":cameraControl('Pan', 'Stop'); 打破; 案例“KEY_RIGHT”:cameraControl('平移','停止'); 打破; 案例“KEY_UP”:cameraControl('倾斜','停止'); 打破; 案例“KEY_DOWN”:cameraControl('倾斜','停止');break;case 'KEY_VOLUMEUP':com('音频音量增大');break;case 'KEY_VOLUMEDOWN':com('音频音量减小');break;case 'KEY_SLEEP':com(standbyState? '待机停用' :'待机激活');休息;默认:中断;} } }); } 在里面();