Exemplo
list-menuComentários?

Neste exemplo, queremos mostrar a você como usar as teclas de um dispositivo de entrada USB de terceiros (nesse caso um controle remoto) para controlar certas funções em um dispositivo Cisco.

Mostramos como usar os botões em um controle remoto Bluetooth (conectado por meio de um adaptador USB) para gerenciar funções como reserva, ajuste de volume e controle de um dispositivo de câmera Cisco. Você pode desenvolver uma macro que ouça eventos relevantes e execute ações correspondentes por meio do Cisco API do dispositivo.

No exemplo a seguir, você deve inserir o texto escrito em fonte normal. O texto em itálico é a resposta recebida do dispositivo Cisco.

1

Inicie a sessão no dispositivo Cisco no SSH. Você precisa de um usuário de administração local .

2

Configure o dispositivo para permitir o uso de um USB controle remoto de terceiros.

 Modo InputDevice de Periféricos de XConfiguração: On ** end OK  

 

Você pode verificar se a configuração está ativada ou desativada usando este comando:

 Modo xConfiguração de Periféricos InputDevice  *c xConfiguração Periféricos Modo InputDevice: On ** end OK  
3

Registre-se para feedback para ser notificado quando os botões de controle remoto forem pressionados e liberados.

 Registro xFeedback /evento/usuário/inputdevice  ** final OK  

 

Você pode verificar quais comentários o dispositivo está registrado para uso deste comando:

 lista /evento/evento do xFeedback/usuário/inputdevice ** end OK  
4

Pressione e solte uma tecla no controle remoto para verificar se o registro de feedback funciona.

Essa ação gera dois eventos: Pressionado e Liberado. Se você pressionar e segurar uma tecla, verá o evento pressionado até liberar a tecla. Em seguida, o evento Liberado é gerado.

Esses eventos são emitidos ao pressionar e liberar a tecla Enter:

  *e UserInterface InputDevice Key Action Key: KEY_ENTER *e UserInterface InputDevice Key Action Code: 28 *e UserInterface InputDevice Key Action Type: Pressed ** end *e UserInterface InputDevice Key Action Key( Tecla de ação da KEY_ENTER tecla DoInterface InputDevice): 28 *e Tipo de ação de tecla do InputDevice de Usuário: Liberado ** final  
5

Escreva uma macro que ouça os eventos inputdevice relevantes e realize as ações associadas usando a opção API do dispositivo.

  • Dar vida aos botões de reserva, aumentar volume e diminuir volume. Quando a macro vir um evento que contém KEY_VOLUMEUP, KEY_VOLUMEDOWN ou KEY_SLEEP, ela executa os comandos relacionados.

  • Crie uma função de controle de câmera para as teclas de seta. Queremos continuar movendo a câmera enquanto o botão estiver pressionado. Quando o botão é liberado, o movimento da câmera é interrompido. Quando a macro vir um evento contendo KEY_LEFT, KEY_RIGHT, KEY_UP ou KEY_DOWN, ela executará os 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', { Texto: mensagem, duração: 3 }); } câmera de função Controle(motor, direção, cameraId='1') { com('Camera Ramp', { 'CameraId': cameraId, [motor]: direção }); } função init() { let standbyState; xapi.status.get('Standby').then(estado) => {standbyState = estado. Estado === 'Desligado' ? falso: verdadeiro; }); xapi.status.on('Standby', estado => { standbyState = estado. Estado === 'Desligado' ? falso: verdadeiro; }); xapi.event.on('UserInterface InputDevice Key Action', pressione => { if (pressione. Tipo == "Pressionado") { comutador (pressione. Key) { caso "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; } } caso contrário, se (pressione. Tipo == "Liberado") { switch (pressione. Chave) { caso "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; caso 'KEY_VOLUMEDOWN': com('Diminuir volume de áudio');; intervalo; caso 'KEY_SLEEP': com(standbyState? 'Desativação de espera' : 'Ativar espera'); Quebrar; padrão: pausa; } } }); } init(); 
Este artigo foi útil?
Este artigo foi útil?