Primjer
list-menuŽelite li poslati povratne informacije?

U ovom primjeru želimo vam pokazati kako koristiti tipke USB ulaznog uređaja treće strane (u ovom slučaju daljinskog upravljača) za upravljanje određenim funkcijama na Cisco uređaju.

Pokazujemo vam kako koristiti gumbe na Bluetooth daljinskom upravljaču (povezanom putem USB ključa) za upravljanje funkcijama kao što su stanje pripravnosti, podešavanje glasnoće i kontrola uređaja Cisco kamere. Možete razviti makronaredbu koja sluša relevantne događaje i izvršava odgovarajuće radnje putem API-ja Cisco uređaja.

U sljedećem primjeru morate unijeti tekst koji je napisan normalnim fontom. Tekst kurzivom je odgovor primljen s Cisco uređaja.

1

Prijavite se na Cisco uređaj na SSH. Potreban vam je lokalni administratorski korisnik.

2

Konfigurirajte uređaj tako da dopušta upotrebu USB daljinskog upravljača treće strane.


       xConfiguration Peripherals InputDevice Mode: On 
      ** end OK  
               

 

Pomoću ove naredbe možete provjeriti je li konfiguracija Uključena ili Isključena:


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

Registrirajte se za povratne informacije kako bismo bili obaviješteni kada se pritisnu i otpuste tipke daljinskog upravljača.


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

 

Možete provjeriti za koje je povratne informacije uređaj registriran pomoću ove naredbe:


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

Pritisnite i otpustite gumb na daljinskom upravljaču kako biste provjerili radi li registracija povratnih informacija.

Ova radnja generira dva događaja: Pritisnu to i Pu šteno. Ako pritisnete i držite gumb, vidjet ćete događaj Pri tisnut dok ga ne otpustite. Tada se gener ira Objavljeni događaj.

Ovi se događaji izdaju pritiskom i otpuštanjem tipke 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: KEY_ENTER *e UserInterface InputDevice Key Action Code: 28 *e UserInterface InputDevice Key Action Type: Released ** end  
               
5

Napišite makronaredbu koja sluša relevantne događaje InputDevice i provodi povezane radnje pomoću API-ja uređaja.

  • Oživite tipke za čekanje, povećanje glasnoće i smanjivanje glasnoće. Kada makronaredbi vidi događaj koji sadrži KEY_VOLUMEUP, KEY_VOLUMEDOWN ili KEY_SLEEP, izvršava povezane naredbe.

  • Stvorite funkciju kontrole kamere za tipke sa strelicama. Želimo nastaviti pomicati kameru sve dok se pritisne gumb. Kada se gumb otpusti, kretanje kamere se zaustavlja. Kada makronaredbi vidi događaj koji sadrži KEY_LEFT, KEY_RIGHT, KEY_UP ili KEY_DOWN, izvršava povezane naredbe.


       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.State === 'Off' ? false : true; }); xapi.status.on('Standby', state => { standbyState = state.State === 'Off' ? false : true; }); 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 == "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('Audio Volume Increase'); break; case 'KEY_VOLUMEDOWN': com('Audio Volume Decrease'); break; case 'KEY_SLEEP': com(standbyState ? 'Standby Deactivate' : 'Standby Activate'); break; default: break; } } }); } init(); 
     
Je li taj članak bio koristan?
Je li taj članak bio koristan?