Příklad
list-menuZpětná vazba?

V tomto příkladu vám chceme ukázat, jak používat klávesy vstupního zařízení USB jiného výrobce (v tomto případě dálkového ovladače) k ovládání určitých funkcí na zařízení Cisco.

Ukážeme vám, jak používat tlačítka na dálkovém ovladači Bluetooth (připojeném přes hardwarový klíč USB) pro správu funkcí, jako je pohotovostní režim, nastavení hlasitosti a ovládání zařízení fotoaparátu Cisco. Můžete vytvořit makro, které naslouchá relevantním událostem a provádí odpovídající akce prostřednictvím API zařízení Cisco.

V následujícím příkladu je nutné zadat text, který je napsán normálním písmem. Text psaný kurzívou je odpověď přijatá ze zařízení Cisco.

1

Přihlaste se k zařízení Cisco na SSH. Potřebujete místního správce .

2

Nakonfigurujte zařízení tak, aby umožňovalo použití dálkového ovládání USB jiného výrobce.

 Periferní zařízení xConfiguration Režim vstupního zařízení: Zapnuto ** konec OK  

 

Můžete zkontrolovat, zda je konfigurace zapnuta nebo vypnuta pomocí tohoto příkazu:

 Periferní zařízení xConfiguration Režim   vstupního zařízení*c xPeriferní zařízení konfigurace Režim vstupního zařízení: Zapnuto ** konec OK  
3

Zaregistrujte se pro zpětnou vazbu, abychom byli upozorněni, když jsou tlačítka dálkového ovládání stisknuta a uvolněna.

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

 

Pomocí tohoto příkazu můžete zkontrolovat, pro které zpětné vazby je zařízení registrováno:

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

Stisknutím a uvolněním tlačítka na dálkovém ovládání zkontrolujte, zda registrace zpětné vazby funguje.

Tato akce generuje dvě události: Stisknuto a Uvolněno . Pokud stisknete a podržíte tlačítko, zobrazí se událost Stisknuto , dokud tlačítko neuvolníte. Poté se vygeneruje událost Release .

Tyto události jsou vydávány při stisknutí a uvolnění klávesy Enter:

  *e Klíč akce klávesy InputDevice uživatelského rozhraní: KEY_ENTER *e Kód akce klávesy InputDevice uživatelského rozhraní: 28 *e Typ akce klávesy InputDevice uživatelského rozhraní: Stisknutý ** konec *e Klávesa akce InputDevice uživatelského rozhraní: KEY_ENTER *e Kód akce klávesy InputDevice uživatelského rozhraní: 28 *e Typ akce klávesy InputDevice uživatelského rozhraní: Uvolněno ** konec  
5

Napište makro, které naslouchá příslušným událostem InputDevice a provádí přidružené akce pomocí API zařízení.

  • Oživte tlačítka pro pohotovostní režim, zvýšení a snížení hlasitosti. Když makro zjistí událost obsahující KEY_VOLUMEUP, KEY_VOLUMEDOWN nebo KEY_SLEEP, provede související příkazy.

  • Vytvořte funkci ovládání kamery pro klávesy se šipkami. Chceme pokračovat v pohybu fotoaparátu tak dlouho, dokud je tlačítko stisknuto. Po uvolnění tlačítka se pohyb kamery zastaví. Když makro zjistí událost obsahující KEY_LEFT, KEY_RIGHT, KEY_UP nebo KEY_DOWN, provede související pří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. Stav === 'Vypnuto' ? false: pravda; }); xapi.status.on('Pohotovostní režim', state => { standbyState = state. Stav === 'Vypnuto' ? false: pravda; }); xapi.event.on('UserInterface InputDevice Key Action', stiskněte => { if (stiskněte klávesu 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; } } jinak, pokud (stiskněte tlačítko. Type == "Uvolněno") { switch (stiskněte klávesu . 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 Reduction"); přestávka; případ "KEY_SLEEP": com (standbyState? "deaktivace v pohotovostním režimu": "aktivace v pohotovostním režimu"); Přestávce; výchozí hodnota: přerušení; } } }); } init(); 
Byl tento článek užitečný?
Byl tento článek užitečný?