Beispiel
list-menuFeedback?

In diesem Beispiel möchten wir Ihnen zeigen, wie Sie mit den Tasten eines USB-Eingabegeräts eines Drittanbieters (in diesem Fall einer Fernbedienung) bestimmte Funktionen auf einem Cisco-Gerät steuern.

Wir zeigen Ihnen, wie Sie die Tasten auf einer Bluetooth-Fernbedienung (die über einen USB-Dongle angeschlossen ist) verwenden, um Funktionen wie Standby, Lautstärkeanpassung und Steuerung eines Cisco-Kamerageräts zu verwalten. Sie können ein Makro entwickeln, das auf relevante Ereignisse lauscht und entsprechende Aktionen über die API des Geräts Cisco ausführt.

Im folgenden Beispiel müssen Sie den Text eingeben, der in normaler Schriftart geschrieben ist. Der kursiv dargestellte Text ist die vom Gerät Cisco empfangene Antwort.

1

Melden Sie sich beim Gerät Cisco über SSH an. Sie benötigen einen lokalen Administratorbenutzer .

2

Konfigurieren Sie das Gerät, um die Verwendung einer USB Fernbedienung eines Drittanbieters zuzulassen.

 xConfiguration Peripheriegeräte InputDevice-Modus: Ein ** und OK  

 

Mit dem folgenden Befehl können Sie überprüfen, ob die Konfiguration aktiviert oder deaktiviert ist:

 xKonfiguration Peripheriegeräte InputDevice-Modus  *c xKonfiguration Peripheriegeräte InputDevice-Modus: Ein ** Ende OK  
3

Registrieren Sie sich für Feedback, damit wir benachrichtigt werden, wenn die Tasten der Fernbedienung gedrückt und losgelassen werden.

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

 

Mit diesem Befehl können Sie überprüfen, für welche Rückmeldungen das Gerät registriert ist:

 xFeedback-Liste /Ereignis/Benutzeroberfläche/Eingabegerät ** Ende OK  
4

Drücken Sie eine Taste auf der Fernbedienung, und lassen Sie sie wieder los, um zu überprüfen, ob die Feedback-Registrierung funktioniert.

Diese Aktion generiert zwei Ereignisse: "Gedrückt " und "Losgelassen". Wenn Sie eine Taste gedrückt halten, wird das Gedrückt-Ereignis so lange angezeigt, bis Sie die Taste loslassen. Anschließend wird das Released-Ereignis generiert.

Diese Ereignisse werden ausgegeben, wenn die Eingabetaste gedrückt und losgelassen wird:

  *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: Freigegeben ** end  
5

Schreiben Sie ein Makro, das auf die relevanten InputDevice-Ereignisse lauscht und die zugeordneten Aktionen mit dem API des Geräts ausführt.

  • Erwecken Sie die Standby-, Lauter- und Leiser-Tasten zum Leben. Wenn das Makro ein Ereignis erkennt, das KEY_VOLUMEUP, KEY_VOLUMEDOWN oder KEY_SLEEP enthält, führt es die zugehörigen Befehle aus.

  • Erstellen Sie eine Kamerasteuerungsfunktion für die Pfeiltasten. Wir wollen die Kamera so lange bewegen, wie die Taste gedrückt wird. Wenn die Taste losgelassen wird, stoppt die Kamerabewegung. Wenn das Makro ein Ereignis erkennt, das KEY_LEFT, KEY_RIGHT, KEY_UP oder KEY_DOWN enthält, führt es die zugehörigen Befehle aus.

 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 Rampe', { 'CameraId': cameraId, [Motor]: direction }); } function init() { let StandbyState; xapi.status.get('Standby').then((state) => {StandbyState = state. Status === 'Aus' ? false: true; }); xapi.status.on('Standby', state => { StandbyState = state. Status === 'Aus' ? false: true; }); xapi.event.on('UserInterface InputDevice Key Action', press => { if (press. Typ == "Gedrückt") { Switch (drücken. Schlüssel) { 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; } } sonst, wenn (drücken. Typ == "Freigegeben") { Switch (drücken. Schlüssel) { 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('Lautstärke erhöhen'); break; case 'KEY_VOLUMEDOWN': com('Audiolautstärke verringern'); break; case 'KEY_SLEEP': com(StandbyState? 'Standby Deactivate' : 'Standby aktivieren'); Brechen; Standardwert: Pause; } } }); } init(); 
War dieser Artikel hilfreich für Sie?
War dieser Artikel hilfreich für Sie?