Primer
list-menuPovratne informacije?

V tem primeru vam želimo pokazati, kako uporabljati tipke vhodne naprave USB tretje osebe (v tem primeru daljinskega upravljalnika) za nadzor določenih funkcij na napravi Cisco.

Pokažemo vam, kako uporabljati gumbe na daljinskem upravljalniku Bluetooth (povezan prek ključa USB) za upravljanje funkcij, kot so stanje pripravljenosti, nastavitev glasnosti in nadzor naprave Cisco kamere. Lahko razvijete makro, ki posluša ustrezne dogodke in izvaja ustrezna dejanja prek API-ja naprave Cisco.

V naslednjem primeru morate vnesti besedilo, ki je napisano z običajno pisavo. Besedilo v poševnem pismu je odgovor, ki ga prejme naprava Cisco.

1

Prijavite se v napravo Cisco na SSH. Potrebujete lokalnega skrbniškega uporabnika.

2

Konfigurirajte napravo tako, da omogoča uporabo daljinskega upravljalnika USB drugih proizvajalcev.


       xConfiguration Peripherals InputDevice Mode: On 
      ** end OK  
               

 

S tem ukazom lahko preverite, ali je konfiguracija vklopljena ali izklopljena:


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

Registrirajte se za povratne informacije, tako da bomo obveščeni, ko pritisnete in sprostite gumbe daljinskega upravljalnika.


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

 

Z uporabo tega ukaza lahko preverite, za katere povratne informacije je naprava registrirana:


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

Pritisnite in spustite gumb na daljinskem upravljalniku, da preverite, ali registracija povratnih informacij deluje.

To dejanje ustvari dva dogodka: pritisnjeno in izdano. Če pritisnete in držite gumb, se prikaže dogodek Pritis njen, dokler ga ne spustite. Nato se ustvari do godek Izpuščeni.

Ti dogodki se izdajo ob pritisku in sprostitvi 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 makro, ki posluša ustrezne dogodke InputDevice in izvaja povezana dejanja z uporabo API-ja naprave.

  • Oživite gumbe za pripravljenost, povečanje glasnosti in zmanjšanje glasnosti. Ko makro vidi dogodek, ki vsebuje KEY_VOLUMEUP, KEY_VOLUMEDOWN ali KEY_SLEEP, izvede ustrezne ukaze.

  • Ustvarite funkcijo nadzora kamere za puščične tipke. Kamero želimo premikati, dokler pritisnete gumb. Ko se gumb sprosti, se gibanje kamere ustavi. Ko makro vidi dogodek, ki vsebuje KEY_LEFT, KEY_RIGHT, KEY_UP ali KEY_DOWN, izvede ustrezne ukaze.


       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(); 
     
Ali je bil ta članek koristen?
Ali je bil ta članek koristen?