Nous vous montrerons comment utiliser les boutons d'un Bluetooth télécommande (connectée via une clé USB) pour gérer les fonctions telles que la mise en veille, le réglage du volume et le contrôle d'un périphérique de caméra Cisco. Vous pouvez développer une macro qui écoute des événements pertinents et exécuter des actions correspondantes via le API du périphérique Cisco.

La fonctionnalité de périphérique d'entrée USB tiers est décrite dans cet article.

Dans l'exemple suivant, vous devez saisir le texte qui a été écrit dans la police normale. Le texte en italique est la réponse reçue du périphérique Cisco.

1

Connectez-vous au périphérique Cisco sur SSH. Vous devez avoir un utilisateur Administrateur local.

2

Configurez le périphérique pour permettre l'utilisation d'une télécommande USB de fabricant tiers.

 Périphérique xConfiguration mode InputDevice : activé   * * fin OK  

 

Vous pouvez vérifier si la configuration active ou non à l'aide de cette commande :

 Périphériques xConfiguration mode    InputDevice * c XConfiguration périphériques InputDevice mode : activé * * fin OK  
3

Inscrivez-vous pour activer les retours d'information, afin que nous soyons avertis lorsque les boutons de la télécommande sont enfoncés et relâchés.

 xFeedback Register/Event/userinterface/InputDevice    * * end OK  

 

Vous pouvez vérifier pour quels retours d'information l'appareil est enregistré en utilisant cette commande :

 liste   de xFeedback/Event/userinterface/InputDevice * * fin OK  
4

Appuyez et relâchez un bouton de la télécommande pour vérifier que l'enregistrement des retours d'information fonctionne.

Cette action génère deux événements : Appuyé et Relâché. Si vous appuyez et maintenez la pression sur un bouton, vous voyez l'événement Appuyé jusqu'à ce que vous relâchiez le bouton. Puis l'événement Relâché est généré.

Ces événements sont émis en appuyant sur la touche Entrée et en la relâchant :

  * e UserInterface InputDevice touche d'action clé : KEY_ENTER * e UserInterface InputDevice code d'action de la clé : 28 * e UserInterface InputDevice type d'action de clé : a été appuyé * * fin * e UserInterface touche d'action clé : KEY_ENTER * e InputDevice userinterface code d'action de la touche : 28 * e InputDevice userinterface type d'action  
5

Écrire une macro qui écoute les événements InputDevice pertinents et effectue les actions associées à l'aide de l'API du périphérique.

  • Donnez vie aux boutons de mise en veille, d'augmentation et de réduction du volume. Lorsque la macro voit un événement contenant KEY_VOLUMEUP, KEY_VOLUMEDOWN ou KEY_SLEEP, elle exécute les commandes associées.

  • Créer une fonction de contrôle de la caméra pour les touches fléchées. Vous souhaitez continuer à déplacer la caméra tant que le bouton est enfoncé. Lorsque vous relâchez le bouton, le déplacement de la caméra s'arrête. Lorsque la macro voit un événement contenant KEY_LEFT, KEY_RIGHT, KEY_UP, ou KEY_DOWN, elle exécute les commandes associées.

 const XAPI = nécessite ('XAPI') ; function com (commande, args = ' ') {XAPI. Command (Command, args) ; log (Command + ' ' + JSON. stringify (args));} Journal de la fonction (Event) {Console. log (Event);} fonction Notify (message) {XAPI. Command ('UserInterface message TextLine Display', {Text : message, durée : 3});} fonction cameraControl (moteur, direction, cameraId = ' 1 ') {com ("rampe de la caméra", {'CameraId' : cameraId, [moteur] : direction});} Function init () {laisser standbyState ; XAPI. Status. get ('Standby'). puis (État) = > {standbyState = État État = = = 'OFF' ? faux : vrai ; }) ; XAPI. Status. on ('Standby', State = > {standbyState = État. État = = = 'OFF' ? faux : vrai ; }) ; XAPI. Event. on ('UserInterface InputDevice Key action', appuyez sur = > {if (appuyez sur. Tapez = = "appuyé") {switch (appuyez sur. Key) {case "KEY_LEFT" : cameraControl ('Pan', 'Left') ; Pause ; case "KEY_RIGHT" : cameraControl ('Pan', 'Right') ; break ; case "KEY_UP" : cameraControl ("Tilt", "up") ; Pause ; case "KEY_DOWN" : cameraControl ('Tilt', 'bas') ; Pause ; par défaut : saut ;}} else if (appuyez sur. Tapez = = "libéré") {switch (appuyez sur. Key) {case "KEY_LEFT" : cameraControl ('Pan', 'Stop') ; Pause ; case "KEY_RIGHT" : cameraControl ('Pan', 'Stop') ; break ; case "KEY_UP" : cameraControl ('Tilt', 'Stop') ; Pause ; case "KEY_DOWN" : cameraControl ('Tilt', 'Stop') ; break ; case’KEY_VOLUMEUP' : com ("volume audio-augmentation") ; Pause ; case’KEY_VOLUMEDOWN' : com (diminution du volume audio) ; break ; case’KEY_SLEEP' : com (standbyState ? "Désactivation de veille" : "activation de secours") ; dissoci valeur par défaut : pause ; } } }) ; } init ();