Vi viser deg hvordan du bruker knappene på en Bluetooth fjernkontroll (tilkoblet via en USB-dongle) for å administrere funksjoner som standby, volumjustering og kontroll av en Cisco-kameraenhet. Du kan utvikle en makro som lytter til relevante hendelser og utfører tilsvarende handlinger gjennom Cisco-enhetens API.

Tredjeparts USB-inngangsenhetsfunksjon er beskrevet i denne artikkelen .

I følgende eksempel må du skrive inn teksten som er skrevet med normal skrift. Teksten i kursiv er svaret mottatt fra Cisco-enheten.

1

Logg på Cisco-enheten på SSH. Du trenger en lokal admin bruker.

2

Konfigurer enheten til å tillate bruk av en tredjeparts USB-fjernkontroll.

 xConfiguration Periferals InputDevice Mode: On ** slutt OK  

 

Du kan sjekke om konfigurasjonen er På eller Av ved å bruke denne kommandoen:

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

Registrer deg for tilbakemelding, slik at vi får beskjed når fjernkontrollknappene trykkes og slippes.

 xFeedback Registrer /event/userinterface/inputdevice  ** slutt OK  

 

Du kan sjekke hvilke tilbakemeldinger enheten er registrert for ved å bruke denne kommandoen:

 xTilbakemeldingsliste /event/userinterface/inputdevice ** slutt OK  
4

Trykk og slipp en knapp på fjernkontrollen for å sjekke at tilbakemeldingsregistreringen fungerer.

Denne handlingen genererer to hendelser: Presset og Utgitt. Hvis du trykker og holder en knapp, ser du Trykt hendelsen til du slipper knappen. Deretter genereres Released hendelsen.

Disse hendelsene utstedes når du trykker og slipper Enter-tasten:

  *e Brukergrensesnitt InputDevice Key Action Key: KEY_ENTER *e User Interface InputDevice Key Action Code: 28 *e User Interface InputDevice Key Action Type: Trykket ** end *e User Interface InputDevice Key Action Key: KEY_ENTER *e Brukergrensesnitt InputDevice Key Action Code: 28 *e UserInterface InputDevice Key Action Type: Utgitt ** end  
5

Skriv en makro som lytter etter de relevante InputDevice hendelsene, og utfører de tilknyttede handlingene ved å bruke API på enheten.

  • Gjør standby-, volum opp og volum ned-knappene til live. Når makroen ser en hendelse som inneholder KEY_VOLUMEUP, KEY_VOLUMEDOWN eller KEY_SLEEP, utfører den de relaterte kommandoene.

  • Lag en kamerakontrollfunksjon for piltastene. Vi ønsker å fortsette å bevege kameraet så lenge knappen holdes nede. Når knappen slippes, stopper kamerabevegelsen. Når makroen ser en hendelse som inneholder KEY_LEFT, KEY_RIGHT, KEY_UP eller KEY_DOWN, utfører den de relaterte kommandoene.

 const xapi = require('xapi'); function com(command, args='') { xapi.command(command, args); log(kommando + ' ' + JSON.stringify(args)); } funksjon logg(hendelse) { console.log(hendelse); } funksjon varsle(melding) { xapi.command('Brukergrensesnittmelding Tekstlinjevisning', { Tekst: melding, varighet: 3 }); } function cameraControl(motor, direction, cameraId='1') { com('Camera Ramp', { 'CameraId': cameraId, [motor]: direction }); } funksjon init() { la standbyState; xapi.status.get('Standby').then((state) => {standbyState = state.State === 'Av' ? false: true; }); xapi.status.on('Standby', state => { standbyState = state.State === 'Av' ? usant: sant; }); xapi.event.on('UserInterface InputDevice Key Action', trykk => { 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 ', 'Ned'); break; default: break; } } else if (press.Type == "Released") { 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('Lydvolumøkning'); break; case 'KEY_VOLUMEDOWN': com('Audio Volume Decrease'); break; case 'KEY_SLEEP': com(standbyState? 'Standby Deactivate' : 'Standby Activate'); gå i stykker; standard: pause; } } }); } i det();