Primer
list-menuPovratne informacije?

U ovom primeru želimo da vam pokažemo kako da koristite tastere nezavisnog USB ulaznog uređaja (u ovom slučaju daljinskog upravljača) za kontrolu određenih funkcija na Cisco uređaju.

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

U sledećem primeru morate da unesete tekst koji je napisan normalnim fontom. Tekst kurzivom je odgovor primljen sa Cisco uređaja.

1

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

2

Konfigurišite uređaj tako da dozvoli upotrebu USB daljinskog upravljača treće strane.


       xConfiguration Peripherals InputDevice Mode: On 
      ** end OK  
               

 

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


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

Registrujte se za povratne informacije, tako da budemo obavešteni kada se pritisnu i otpuste tasteri daljinskog upravljača.


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

 

Možete da proverite koje povratne informacije je uređaj registrovan za korišćenje ove naredbe:


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

Pritisnite i otpustite dugme na daljinskom upravljaču da biste proverili da li registracija povratnih informacija funkcioniše.

Ova akcija generiše dva događaja: Pritisnu to i Pu šteno. Ako pritisnete i držite dugme, videćete događaj Pritisan o dok ne otpustite dugme. Tada se gen eriše Objavljeni događaj.

Ovi događaji se izdaju pritiskom i otpuštanjem tastera 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 izvršava povezane radnje pomoću API-ja uređaja.

  • Oživite tastere za stanje pripravnosti, pojačavanje jačine zvuka i smanjivanje jačine zvuka. Kada makro vidi događaj koji sadrži KEI_VOLUMEUP, KEI_VOLUMEDOWN ili KEI_SLEEP, izvršava povezane komande.

  • Napravite funkciju kontrole kamere za tastere sa strelicama. Želimo da nastavljamo da pomeramo kameru sve dok se pritisne dugme. Kada se dugme otpusti, kretanje kamere se zaustavlja. Kada makro vidi događaj koji sadrži KEI_LEFT, KEI_RIGHT, KEI_UP ili KEI_DOVN, izvršava povezane komande.


       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(); 
     
Da li je ovaj članak bio koristan?
Da li je ovaj članak bio koristan?