Eksempel
list-menuHar du feedback?

I dette eksempel vil vi vise dig, hvordan du bruger tasterne til en tredjeparts USB-indgangsenhed (i dette tilfælde en fjernbetjening) til at styre bestemte funktioner på en Cisco-enhed.

Vi viser dig, hvordan du bruger knapperne på en Bluetooth-fjernbetjening (tilsluttet via en USB-dongle) til at administrere funktioner som standby, lydstyrkejustering og kontrol af en Cisco-kameraenhed. Du kan udvikle en makro, der lytter til relevante begivenheder og udfører tilsvarende handlinger via Cisco-enhedens API.

I det følgende eksempel skal du indtaste den tekst, der er skrevet med normal skrifttype. Teksten i kursiv er svaret modtaget fra Cisco-enheden.

1

Log ind på Cisco-enheden på SSH. Du har brug for en lokal administr atorbruger.

2

Konfigurer enheden til at tillade brug af en tredjeparts USB-fjernbetjening.


       xConfiguration Peripherals InputDevice Mode: On 
      ** end OK  
               

 

Du kan kontrollere, om konfigurationen er Til eller Fra ved hjælp af denne kommando:


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

Tilmeld dig feedback, så vi får besked, når fjernbetjeningsknapperne trykkes og slippes.


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

 

Du kan kontrollere, hvilke tilbagemeldinger enheden er registreret til ved hjælp af denne kommando:


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

Tryk og slip en knap på fjernbetjeningen for at kontrollere, at feedbackregistrering fungerer.

Denne handling genererer to begivenheder: Pres set og Fri givet. Hvis du trykker på en knap og holder den nede, vises hændelsen Pres sed, indtil du slipper knappen. Derefter gener eres begivenheden Release.

Disse begivenheder udstedes, når du trykker på og slipper Enter-tasten:

 
                   *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

Skriv en makro, der lytter til de relevante InputDev ice-begivenheder, og udfører de tilknyttede handlinger ved hjælp af enhedens API.

  • Gør standby-, lydstyrke op- og lydstyrkeknapperne levende. Når makroen ser en begivenhed, der indeholder KEY_VOLUMEUP, KEY_VOLUMEDOWN eller KEY_SLEEP, udfører den de relaterede kommandoer.

  • Opret en kamerastyringsfunktion til piletasterne. Vi vil fortsætte med at bevæge kameraet, så længe der trykkes på knappen. Når knappen slippes, stopper kamerabevægelsen. Når makroen ser en begivenhed, der indeholder KEY_LEFT, KEY_RIGHT, KEY_UP eller KEY_DOWN, udfører den de relaterede kommandoer.


       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(); 
     
Var denne artikel nyttig?
Var denne artikel nyttig?