En este artículo
Ejemplo
Uso de dispositivos de entrada USB de terceros con Board, Desk y Room Series
list-menuEn este artículo
list-menu¿Comentarios?

Puede usar un periférico USB de terceros para controlar ciertas funciones en su dispositivo, como un teclado USB o un control remoto Bluetooth® con un dongle USB.

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 quirófanos de un hospital.

Visión general funcional

Cuando se presiona un botón en el dispositivo de entrada USB, se desencadena 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.

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

Configuraciones, 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 está deshabilitada de forma predeterminada.

Al presionar y soltar un botón se genera un evento Presionado y un Liberado :

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

Para escuchar eventos, debe registrar los comentarios de los eventos InputDevice :

 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

Encontrará más información sobre el uso de un dispositivo de entrada de terceros en la Guía de personalización. Elija la versión más reciente.

Cisco support (TAC) no admite la depuración de código de terceros, incluidas 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 eventos relevantes y ejecute las acciones correspondientes a través del API del dispositivo Cisco.

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

1

Inicie sesión en el dispositivo Cisco en SSH. Necesita un usuario administrador local .

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 está 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 modo que se nos notifique cuando se presionen y liberen los botones del control remoto.

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

Puede comprobar para qué comentarios está registrado el dispositivo con este comando:

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

Pulse y suelte un botón del mando a distancia para comprobar que el registro de comentarios funciona.

Esta acción genera dos eventos: Presionado y Liberado . Si mantiene presionado un botón, verá el evento Presionado hasta que suelte el botón. A continuación, se genera el evento Release .

Estos eventos se emiten al presionar y soltar 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 InputDevice relevantes y lleve a cabo las acciones asociadas utilizando el API del dispositivo.

  • Da vida a los botones de modo de espera, subir y bajar volumen. Cuando la macro ve un evento que contiene KEY_VOLUMEUP, KEY_VOLUMEDOWN o KEY_SLEEP, ejecuta los comandos relacionados.

  • Cree una función de control de cámara para las teclas de flecha. Queremos seguir moviendo la cámara mientras se presione el botón. Cuando se suelta el botón, el movimiento de la cámara se detiene. Cuando la macro ve 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'); descanso; predeterminado: descanso; } } }); } init(); 
¿Ha encontrado este artículo útil?
¿Ha encontrado este artículo útil?