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

Funkcija USB ulaznog uređaja nezavisnog proizvođača opisana je u ovom članku.

U sledećem primeru morate uneti tekst koji je napisan normalnim fontom. Tekst u kurzivu je odgovor primljen sa Cisco uređaja.

1

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

2

Konfigurišite uređaj tako da dozvoli korišćenje USB daljinskog upravljača nezavisnog proizvođača.

 xConfiguration Peripherals InputDevice Mode: On ** end OK  

 

Pomoću ove komande možete da proverite da li je konfiguracija isključ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 dugmad daljinskog upravljača pritisnu i oslane.

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

 

Možete proveriti koje povratne informacije je uređaj registrovan za korišćenje ove komande:

 xFeedback lista /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 radnja generiše dva događaja:Pressed and Released. Ako pritisnete i držite dugme, videćete pritisnuti događaj dok ne otpustite dugme. Onda se generiše objavljeni događaj.

Ovi događaji se izdaju prilikom pritiskanja i otpuštanja tastera Enter:

  *e UserInterface InputDevice Ključ radnje: KEY_ENTER *e UserInterface InputDevice Ključni kôd radnje: 28 *e UserInterface InputDevice Tip radnje ključa: Presovan ** kraj *e UserInterface InputDevice Ključ radnje: KEY_ENTER *e UserInterface InputDevice Ključni kôd radnje: 28 *e UserInterface InputDevice Tip radnje ključa: Izdat ** kraj  
5

Napišite makro koji osluškuje relevantne InputDevice događaje i izvršava povezane radnje koristeći API korisnika uređaja.

  • Osvestite dugmad za stanje pripravnosti, jačinu zvuka i spustite jačinu zvuka. Kada makro vidi događaj koji sadrži KEY_VOLUMEUP, KEY_VOLUMEDOWN ili KEY_SLEEP, izvršava povezane komande.

  • Kreirajte funkciju kontrole fotoaparata za tastere sa strelicama. Želimo da nastavimo da pomeramo kameru sve dok je dugme pritisnuto. Kada se dugme oslobodi, pokret kamere se zaustavlja. Kada makro vidi događaj koji sadrži KEY_LEFT, KEY_RIGHT, KEY_UP ili KEY_DOWN, 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. Stanje === 'Isključeno' ? netačno: tačno; }); xapi.status.on('Stanje pripravnosti', stanje => { stanje pripravnosti = stanje. Stanje === 'Isključeno' ? netačno: tačno; }); xapi.event.on('UserInterface InputDevice Key Action', pritisnite => { 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; 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'); razbiti; podrazumevano: prekid; } } }); } init();