Példa
list-menuVisszajelzés?

Ebben a példában meg akarjuk mutatni, hogyan kell használni egy harmadik féltől származó USB-bemeneti eszköz (ebben az esetben távirányító) kulcsait a Cisco eszköz bizonyos funkcióinak vezérléséhez.

Megmutatjuk, hogyan használhatja a Bluetooth távirányító gombjait (USB-hardverrel csatlakoztatva) olyan funkciók kezeléséhez, mint a készenléti állapot, a hangerőbeállítás és a Cisco kameraeszköz vezérlése. Olyan makrót fejleszthet ki, amely meghallgatja a releváns eseményeket, és végrehajtja a megfelelő műveleteket a Cisco eszköz API-ján keresztül.

A következő példában meg kell adnia a normál betűtípussal írt szöveget. A dőlt betűs szöveg a Cisco eszközről kapott válasz.

1

Jelentkezzen be a Cisco eszközbe SSH rendszeren. Szüksége van egy helyi adminisztrátori felhasználóra.

2

Konfigurálja az eszközt úgy, hogy lehetővé tegye egy harmadik féltől származó USB távirányító használatát.


       xConfiguration Peripherals InputDevice Mode: On 
      ** end OK  
               

 

Ellenőrizheti, hogy a konfiguráció be- vagy kikapcsolva van-e a következő paranccsal:


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

Regisztráljon visszajelzéshez, hogy értesítést kapjunk, amikor a távirányító gombjait megnyomják és engedik.


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

 

Ellenőrizheti, hogy az eszköz mely visszajelzésekre van regisztrálva ezzel a paranccsal:


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

Nyomja meg és engedje meg a távirányító gombját, hogy ellenőrizze, hogy működik-e a visszajelzés regisztrációja.

Ez a művelet két eseményt generál: megnyom va és kiad va. Ha lenyomja és tartja lenyomva egy gombot, addig jelenik meg a Pressed esemény, amíg el nem engedi a gombot. Ezután létrejön a Related esemény.

Ezek az események az Enter billentyű megnyomásakor és elengedésekor jelennek meg:

 
                   *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

Írjon egy makrót, amely meghallgatja a releváns InputDevice eseményeket, és végrehajtja a kapcsolódó műveleteket az eszköz API-ja segítségével.

  • Tegye életre a készenléti, a hangerőnövelő és a hangerő-csökkentő gombokat. Amikor a makró olyan eseményt lát, amely KEY_VOLUMEUP, KEY_VOLUMEDOWN vagy KEY_SLEEP tartalmaz, végrehajtja a kapcsolódó parancsokat.

  • Hozzon létre egy kameravezérlő funkciót a nyílbillentyűkhöz. A fényképezőgépet addig akarjuk mozgatni, amíg meg van nyomva a gombot. Amikor a gomb felszabadul, a kamera mozgása leáll. Amikor a makró olyan eseményt lát, amely KEY_LEFT, KEY_RIGHT, KEY_UP vagy KEY_DOWN tartalmaz, végrehajtja a kapcsolódó parancsokat.


       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(); 
     
Hasznos volt ez a cikk?
Hasznos volt ez a cikk?