Esempio
list-menuFeedback?

In questo esempio, vogliamo mostrarti come utilizzare i tasti di un dispositivo di input USB di terze parti (in questo caso un telecomando) per controllare determinate funzioni su un dispositivo Cisco.

Ti mostriamo come utilizzare i pulsanti su un telecomando Bluetooth (collegato tramite un dongle USB) per gestire funzioni come standby, regolazione del volume e controllo di un dispositivo fotocamera Cisco. È possibile sviluppare una macro che ascolti gli eventi rilevanti ed esegua le azioni corrispondenti tramite il API del dispositivo Cisco.

Nell'esempio seguente è necessario immettere il testo scritto in caratteri normali. Il testo in corsivo è la risposta ricevuta dal dispositivo Cisco.

1

Accedi al dispositivo Cisco su SSH. È necessario un utente amministratore locale .

2

Configurare il dispositivo per consentire l'uso di un telecomando USB di terze parti.

 Periferiche xConfiguration Modalità dispositivo: On ** end OK  

 

È possibile verificare se la configurazione è attivata o disattivata utilizzando questo comando:

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

Registrati per ricevere feedback, in modo da ricevere una notifica quando i pulsanti del telecomando vengono premuti e rilasciati.

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

 

È possibile verificare per quali feedback il dispositivo è registrato utilizzando questo comando:

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

Premere e rilasciare un pulsante sul telecomando per verificare che la registrazione del feedback funzioni.

Questa azione genera due eventi: Premuto e Rilasciato. Se si tiene premuto un pulsante, viene visualizzato l'evento Pressed finché non si rilascia il pulsante. Viene quindi generato l'evento Released .

Questi eventi vengono emessi quando si preme e si rilascia il tasto Invio:

  *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: KEY_ENTER *e UserInterface InputDevice Key Action Code: 28 *e UserInterface InputDevice Key Action Type: Released ** end  
5

Scrivere una macro che ascolti gli eventi InputDevice rilevanti ed esegua le azioni associate utilizzando il API del dispositivo.

  • Dai vita ai pulsanti di standby, aumento del volume e riduzione del volume. Quando la macro rileva un evento contenente KEY_VOLUMEUP, KEY_VOLUMEDOWN o KEY_SLEEP, esegue i comandi correlati.

  • Creare una funzione di controllo della fotocamera per i tasti freccia. Vogliamo continuare a muovere la fotocamera finché viene premuto il pulsante. Quando il pulsante viene rilasciato, il movimento della videocamera si arresta. Quando la macro rileva un evento contenente KEY_LEFT, KEY_RIGHT, KEY_UP o KEY_DOWN, esegue i comandi correlati.

 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. Stato === 'Off' ? falso: vero; }); xapi.status.on('Standby', state => { standbyState = state. Stato === 'Off' ? falso: vero; }); xapi.event.on('UserInterface InputDevice Key Action', premere => { 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 (premere. Type == "Rilasciato") { switch (press. Key) { 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 Reduction'); break; case 'KEY_SLEEP': com(standbyState? «Standby Deactivate» : «Standby Activate»); Pausa; Valore predefinito: interruzione; } } }); } init(); 
Questo articolo è stato utile?
Questo articolo è stato utile?