Példa
list-menuVisszajelzés?

Ebben a példában azt szeretnénk megmutatni, hogyan használhatja egy harmadik féltől származó USB beviteli eszköz (ebben az esetben egy távirányító) billentyűit bizonyos funkciók vezérlésére egy Cisco eszközön.

Megmutatjuk, hogyan használhatja a Bluetooth távirányító gombjait (USB hardverkulccsal csatlakoztatva) olyan funkciók kezeléséhez, mint a készenléti állapot, a hangerő beállítása és a Cisco kameraeszköz vezérlése. Fejleszthet olyan makrót, amely figyeli a releváns eseményeket, és végrehajtja a megfelelő műveleteket a Cisco eszköz API használatával.

A következő példában normál betűtípussal írt szöveget kell beírnia. A dőlt betűvel szedett szöveg a Cisco eszköztől kapott válasz.

1

Jelentkezzen be a Cisco eszközre SSH-n. Szüksége lesz egy helyi rendszergazdai felhasználóra.

2

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

 xConfiguration Peripherals InputDevice mód: Be ** end OK  

 

A következő paranccsal ellenőrizheti, hogy a konfiguráció be vagy ki van-e kapcsolva:

 xConfiguration perifériák InputDevice mód  *c xConfiguration perifériák InputDevice mód: Be ** end OK  
3

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

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

 

Ezzel a paranccsal ellenőrizheti, hogy az eszköz mely visszajelzésekhez van regisztrálva:

 xFeedback lista /esemény/felhasználói felület/inputdevice ** end OK  
4

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

Ez a művelet két eseményt hoz létre: Megnyomva és Felengedve. Ha nyomva tart egy gombot, addig a Megnyomva esemény jelenik meg, amíg fel nem engedi a gombot. Ezután létrejön a Kiadott esemény.

Ezek az események az Enter billentyű lenyomásakor és felengedésekor jelennek meg:

  *e UserInterface InputDevice Key Action Key: KEY_ENTER *e UserInterface InputDevice Key Action Code: 28 *e UserInterface InputDevice Key Action Type: Megnyomva ** end *e UserInterface InputDevice Key Action Key: KEY_ENTER *e UserInterface InputDevice Key Action Code: 28 *e UserInterface InputDevice Key Action Type: Release ** end  
5

Írjon egy makrót, amely figyeli a releváns InputDevice eseményeket, és végrehajtja a kapcsolódó műveleteket az eszköz API használatával.

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

  • Hozzon létre egy kameravezérlő funkciót a nyílbillentyűkhöz. Addig akarjuk mozgatni a kamerát, amíg a gombot megnyomják. A gomb felengedésekor a kamera mozgása leáll. Ha a makró KEY_LEFT, KEY_RIGHT, KEY_UP vagy KEY_DOWN tartalmazó eseményt lát, végrehajtja a kapcsolódó parancsokat.

 const xapi = require('xapi'); function com(parancs, args='') { xapi.command(parancs, args); log(command + ' ' + JSON.stringify(args)); } function log(event) { console.log(event); } function notify(message) { xapi.command('UserInterface Message TextLine Display', { Szöveg: üzenet, időtartam: 3 }); } function cameraControl(motor, irány, cameraId='1') { com('Camera Ramp', { 'CameraId': cameraId, [motor]: irány }); } function init() { let standbyState; xapi.status.get('Standby').then((state) => {standbyState = state. Állapot === 'Ki' ? hamis: igaz; }); xapi.status.on('Készenlét', állapot => { standbyState = állapot. Állapot === 'Ki' ? hamis: igaz; }); xapi.event.on('UserInterface InputDevice Key Action', nyomja meg a => { if (nyomja meg a gombot. Type == "Megnyomva") { switch (nyomja meg. 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 (nyomja meg a gombot. Type == "Release") { switch (nyomja meg a gombot. 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 Decline'); break; case 'KEY_SLEEP': com(standbyState? "Készenlét deaktiválása": "Készenlét aktiválása"); Szünet; alapértelmezett: break; } } }); } init(); 
Hasznos volt ez a cikk?
Hasznos volt ez a cikk?