Voorbeeld
list-menuFeedback?

In dit voorbeeld willen we u laten zien hoe u de toetsen van een USB-invoerapparaat van derden kunt gebruiken (in dit geval een externe besturing) om bepaalde functies op een Cisco-apparaat te bedienen.

Wij laten u zien hoe u de knoppen van een Bluetooth afstandsbediening kunt gebruiken (verbonden via een USB aan de ene kant) om functies als stand-by, volume aanpassen en bedienen van een Cisco camera apparaat te beheren. U kunt een macro ontwikkelen die naar relevante gebeurtenissen luistert en bijbehorende acties uitvoert via de Cisco van het apparaat nr. API.

In het volgende voorbeeld moet u de tekst invoeren die in een normaal lettertype is geschreven. Cursief is het antwoord dat is ontvangen van apparaat Cisco.

1

Meld u aan bij Cisco-apparaat op SSH. U hebt een lokale beheerder nodig.

2

Configureer het apparaat zo dat het gebruik van een afstandsbediening van USB van derden mogelijk is.

 Modus Invoer xConfiguratierandapparatuur:  Aan** ok  

 

U kunt met de volgende opdracht controleren of de configuratie is in- of uitgeschakeld:

 xConfiguratie randapparaten InputDevice Modus  *c x-configuratierandapparatuur InputDevice Modus: Aan ** einde OK  
3

Registreren voor feedback, zodat we op de hoogte worden gesteld wanneer de knoppen voor de afstandsbediening worden ingedrukt en losgelaten.

 xFeedback register /gebeurtenis/userinterface/invoerapparaat  ** end OK  

 

U kunt met de volgende opdracht controleren voor welke feedback het apparaat is geregistreerd:

 xFeedback-lijst /gebeurtenis/gebruikersinterface/invoerapparaat ** einde OK  
4

Druk op de afstandsbediening op een knop om te controleren of feedbackregistratie ook werkt.

Deze bewerking genereert twee gebeurtenissen: Pressed en Vrijgegeven. Als u een knop ingedrukt houdt, wordt de gebeurtenis Ingedrukt weergegeven totdat u de knop loslaat. Vervolgens wordt de gebeurtenis Vrijgegeven gegenereerd.

Deze gebeurtenissen worden uitgegeven wanneer u de Enter-toets indrukt en losgeeft:

  *E Gebruikersinterface Sleutelbewerkingssleutel inputDevice: KEY_ENTER *e Gebruikersinterface Sleutelbewerkingscode InvoerDevice: 28 *e Gebruikersinterface Sleutelbewerkingstype InputDevice: Gedrukt ** einde *e Gebruikersinterface invoerSleutel: KEY_ENTER *e Gebruikersinterface InvoerSleutel Bewerking: 28 *e Gebruikersinterface-invoerSleutelactie: 28 *e Gebruikersinterface-invoerSleuteltoets: Vrijgegeven ** einde  
5

Schrijf een macro die luistert naar de relevante InputDevice-gebeurtenissen en voert de bijbehorende acties uit met de API van het apparaat.

  • Breng de knoppen stand-by, volume omhoog en Volume omlaag tot leven. Wanneer de macro een gebeurtenis ziet die KEY_VOLUMEUP, KEY_VOLUMEDOWN of KEY_SLEEP bevat, voert de macro de gerelateerde opdrachten uit.

  • Maak een camerabediening voor de pijltoetsen. We willen de camera blijven bewegen zolang de knop wordt ingedrukt. Wanneer de knop loskomt, stopt de beweging van de camera. Wanneer de macro een gebeurtenis ziet met KEY_LEFT, KEY_RIGHT, KEY_UP of KEY_DOWN, voert de macro de gerelateerde opdrachten uit.

 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', { Tekst: message, duration: 3 }); function cameraControl(motor, direction, cameraId='1') { com('Camera Ramp', { 'CameraId': cameraId, [motor]: richting }); } function init() { stand-byStatus; xapi.status.get('Stand-by').then(status) => {stand-byState = status. Staat === 'Uit' ? onwaar: waar; }); xapi.status.on('Stand-by', status => { stand-byStatus = status. Staat === 'Uit' ? onwaar: waar; }); xapi.event.on('UserInterface InputDevice Key Action', druk op => { if (druk op. Type == "Pressed") { switch (press. Toets) { case "KEY_LEFT": cameraControle('Pan', 'Links'), pauze; case "KEY_RIGHT": cameraControle('Pan', 'Rechts'); pauze; case "KEY_UP": cameraControle('Kantelen', 'Omhoog'), pauze; case "KEY_DOWN": cameraControl('Kantelen', 'Omlaag'); pauze; standaard: pauze; } else if (druk op. Type == "Vrijgegeven") { switch (druk op. Sleutel) { case "KEY_LEFT": cameraControle('Pan', 'Stop'); break; case "KEY_RIGHT": cameraControle('Pan', 'Stop'); break; case "KEY_UP": cameraControl('Tilt', 'Stop'), break; case "KEY_DOWN": cameraControl('Tilt', 'Stop'); break; case 'KEY_VOLUMEUP': com('Audio Volume Verhogen'), pauze; case 'KEY_VOLUMEDOWN': com('Audio Volume Verlagen'); pauze; case 'KEY_SLEEP': com(stand-byStatus? 'Stand-by Deactiveren' : 'Stand-by geactiveerd'); Breken; standaardwaarde: pauze; } } }); } init(); 
Vond u dit artikel nuttig?
Vond u dit artikel nuttig?