Esta característica está destinada a complementar las funcionalidades del controlador táctil o la interfaz de usuario táctil. No está destinado a reemplazarlos .

Ejemplos de aplicaciones:

  • En las aulas y durante las conferencias, se puede usar un pequeño control remoto para activar un dispositivo desde el modo de espera. También puede ser conveniente usar un control remoto para seleccionar qué fuente de entrada presentar.

  • Controlar la vista de la cámara (panorámica, inclinación y zoom) en situaciones en las que no se le permite usar el controlador táctil. por ejemplo, en las salas de operación de un hospital.

Visión general funcional

Cuando se presiona un botón en el dispositivo de entrada USB, se activa una acción dentro del API del dispositivo Cisco. Se pueden configurar macros o dispositivos de control externo de terceros para detectar estas acciones y reaccionar en consecuencia. Esta funcionalidad es similar a cómo se comportan los botones de control en la sala. Además, es factible monitorear estas acciones a través de webhooks o directamente dentro de una sesión SSH.

No se proporciona una biblioteca preexistente de acciones para elegir. Debe definir y establecer las acciones específicas que deben ocurrir en respuesta a los eventos. Por ejemplo:

  • Aumente el volumen del dispositivo Cisco cuando se presione la tecla para subir el volumen.

  • Ponga el dispositivo Cisco en modo de espera cuando se presione la tecla de suspensión.

Configuración, eventos y estado

Las configuraciones y el estado a los que se hace referencia en este artículo están disponibles tanto en la interfaz web local del dispositivo como en las API. Lea el artículo Configuraciones de dispositivos para obtener información sobre cómo acceder a la interfaz web y usar el API.

Cuando se abra la interfaz web del dispositivo, haga clic en Configuración . En Configuraciones , cambie Peripherals > InputDevice Mode a Activado. La compatibilidad con dispositivos de entrada USB de terceros se encuentra desactivada de forma predeterminada.

Si presiona y suelta un botón, se genera un evento de Pressed (Presionado) y Released (Liberación):

 *e UserInterface InputDevice Key Action Key: <nombre de la clave> *e UserInterface InputDevice Key Action Code: <id de la clave> *e UserInterface InputDevice Key Action Type: Presionado ** end *e UserInterface InputDevice Key Action Key: <nombre de la clave> *e UserInterface InputDevice Key Action Code: <id de la clave> *e UserInterface InputDevice Tipo de acción: Liberado ** fin 

Para escuchar eventos, debe registrar los comentarios de los eventos del InputDevice (Dispositivo de entrada):

 xFeedback Register /event/UserInterface/InputDevice ** end 

Cuando el dispositivo Cisco detecte el periférico de terceros, aparecerá en Estado y en Periféricos > ConnectedDevice . El dispositivo de terceros puede ser reportado como varios dispositivos.

Más información

Para obtener más información sobre el uso de un dispositivo de entrada de terceros, consulte la guía de personalización. Seleccione la versión más reciente.

La asistencia de Cisco (TAC) no admite la depuración de código de terceros, incluyendo las macros. Consulte Cisco RoomOS para dispositivos de colaboración si necesita ayuda con macros y código de terceros. Consulte esta página para obtener más ejemplos de macros y extensiones.

Ejemplo

En este ejemplo, queremos mostrarle cómo usar las teclas de un dispositivo de entrada USB de terceros (en este caso, un control remoto) para controlar ciertas funciones en un dispositivo Cisco.

Le mostramos cómo usar los botones de un control remoto Bluetooth (conectado a través de un dongle USB) para administrar funciones como el modo de espera, el ajuste de volumen y el control de un dispositivo de cámara Cisco. Puede desarrollar una macro que escuche los eventos relevantes y ejecute las acciones correspondientes a través del API del dispositivo Cisco.

En el siguiente ejemplo, debe introducir el texto escrito en una fuente normal. El texto en cursiva es la respuesta recibida del dispositivo Cisco.

1

Inicie sesión en el dispositivo Cisco en SSH. Necesitará un usuario local de administrador.

2

Configure el dispositivo para permitir el uso de un control remoto USB de terceros.

 xConfiguration Peripherals InputDevice Mode: On ** end OK  

 

Puede comprobar si la configuración se encuentra activada o desactivada mediante este comando:

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

Regístrese para recibir comentarios, de forma que reciba notificaciones cuando se presionen o suelten los botones del control remoto.

 xFeedback Registrar /event/userinterface/inputdevice  ** end OK  

 

Puede verificar a qué comentarios se registró el dispositivo mediante este comando:

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

Presione y suelte un botón en el control remoto para comprobar que el registro de comentarios funciona.

Esta acción genera dos eventos: Pressed (Presionado) y Released (Liberación). Si mantiene presionado un botón, verá el evento Pressed (Presionado) hasta que suelte el botón. Luego, se generará el evento Released (Liberación).

Estos eventos se emiten cuando se presiona y libera la tecla Intro:

  *e UserInterface InputDevice Key Action Key: KEY_ENTER *e UserInterface InputDevice Key Action Code: 28 *e UserInterface InputDevice Key Action Type: Presionado ** end *e UserInterface InputDevice Key Action Key: KEY_ENTER *e UserInterface InputDevice Key Action Code: 28 *e UserInterface InputDevice Key Action Type: Released ** end  
5

Escriba una macro que escuche los eventos pertinentes del InputDevice (Dispositivo de entrada) y lleve a cabo las acciones relacionadas mediante la API del dispositivo.

  • Active los botones de espera, de subir el volumen y de bajar el volumen. Cuando la macro detecta un evento que contiene KEY_VOLUMEUP, KEY_VOLUMEDOWN o KEY_SLEEP, ejecuta los comandos relacionados.

  • Cree una función de control de la cámara para las teclas de dirección. Queremos seguir moviendo la cámara mientras el botón esté presionado. Cuando se suelta el botón, se detiene el movimiento de la cámara. Cuando la macro detecta un evento que contiene KEY_LEFT, KEY_RIGHT, KEY_UP o KEY_DOWN, ejecuta los comandos relacionados.

 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: 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. ¿Estado === 'Off' ? falso: verdadero; }); xapi.status.on('Standby', state => { standbyState = state. ¿Estado === 'Off' ? falso: verdadero; }); 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; default: break; } } else if (press. Type == "Release") { switch (press. Clave) { 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? 'Desactivación en espera' : 'Activación en espera'); Romper; predeterminado: descanso; } } }); } init();