Príklad
list-menuSpätná väzba?

V tomto príklade vám chceme ukázať, ako používať kľúče vstupného zariadenia USB tretej strany (v tomto prípade diaľkového ovládača) na ovládanie určitých funkcií zariadenia Cisco.

Ukážeme vám, ako používať tlačidlá na diaľkovom ovládači Bluetooth (pripojené cez USB dongle) na správu funkcií, ako je pohotovostný režim, nastavenie hlasitosti a ovládanie fotoaparátu Cisco. Môžete vytvoriť makro, ktoré počúva relevantné udalosti a vykonáva zodpovedajúce akcie prostredníctvom rozhrania API zariadenia Cisco.

V nasledujúcom príklade musíte zadať text, ktorý je napísaný normálnym písmom. Text kurzívou je odpoveď prijatá zo zariadenia Cisco.

1

Prihláste sa do zariadenia Cisco v systéme SSH. Potrebujete lokálneho administrá tora.

2

Nakonfigurujte zariadenie tak, aby umožnilo používanie diaľkového ovládača USB tretej strany.


       xConfiguration Peripherals InputDevice Mode: On 
      ** end OK  
               

 

Pomocou tohto príkazu môžete skontrolovať, či je konfigurácia zapnutá alebo vypnutá:


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

Zaregistrujte sa pre spätnú väzbu, aby sme boli upozornení na stlačenie a uvoľnenie tlačidiel diaľkového ovládača.


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

 

Pomocou tohto príkazu môžete skontrolovať, na ktoré spätné väzby je zariadenie zaregistrované:


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

Stlačením a uvoľnením tlačidla na diaľkovom ovládači skontrolujte, či registrácia spätnej väzby funguje.

Táto akcia generuje dve udalosti: st lačené a uvoľnené. Ak stlačíte a podržíte tlačidlo, zobrazí sa udalosť St lačen á, kým tlačidlo neuvoľníte. Potom sa vy gener uje udalosť Related.

Tieto udalosti sa vydávajú pri stlačení a uvoľnení klávesu 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

Napíšte makro, ktoré počúva príslušné udalosti InputDevice a vykoná súvisiace akcie pomocou rozhrania API zariadenia.

  • Oživte tlačidlá pohotovostného režimu, zvyšovania hlasitosti a zníženia hlasitosti. Keď makro vidí udalosť obsahujúcu KEY_VOLUMEUP, KEY_VOLUMEDOWN alebo KEY_SLEEP, vykoná príslušné príkazy.

  • Vytvorte funkciu ovládania fotoaparátu pre klávesy so šípkami. Chceme pokračovať v pohybe fotoaparátu, pokiaľ je stlačené tlačidlo. Po uvoľnení tlačidla sa pohyb fotoaparátu zastaví. Keď makro vidí udalosť obsahujúcu KEY_LEFT, KEY_RIGHT, KEY_UP alebo KEY_DOWN, vykoná súvisiace príkazy.


       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(); 
     
Bol tento článok užitočný?
Bol tento článok užitočný?