Cette fonctionnalité est destinée à compléter les fonctionnalités du contrôleur tactile ou de l'interface utilisateur tactile. Elle n’est pas destinée à les remplacer .

Exemples d’applications :

  • Dans les salles de classe et pendant les conférences, une petite télécommande peut être utilisée pour faire sortir un périphérique du mode veille. Il peut également être pratique d'utiliser une télécommande pour sélectionner la source d'entrée à présenter.

  • Contrôle de la vue de la caméra (panoramique, inclinaison et zoom) dans les situations où vous n'êtes pas autorisé à utiliser le contrôleur tactile. Par exemple, dans les salles d’exploitation dans un hôpitaux.

Aperçu fonctionnel

Lorsqu'un bouton est pressé sur le périphérique d'entrée USB, il déclenche une action dans l'API du périphérique Cisco. Des macros ou des périphériques de contrôle externes de tiers peuvent être configurés pour détecter ces actions et réagir en conséquence. Cette fonctionnalité est similaire au comportement des boutons de contrôle de la salle. De plus, il est possible de surveiller ces actions via des webhooks ou directement dans une session SSH.

Aucune bibliothèque préexistante d'actions parmi lesquelles choisir n'est fournie. Il vous est demandé de définir et d'établir les actions spécifiques qui doivent se produire en réponse aux événements. par exemple

  • Augmentez le volume du périphérique Cisco lorsque vous appuyez sur la touche Augmenter le volume.

  • Mettez le périphérique Cisco en mode veille lorsque vous appuyez sur la touche Mise en veille.

Configurations, Événements et Statut

Les configurations et l'état mentionnés dans cet article, sont disponibles à la fois à partir de l'interface Web locale du périphérique et des API. Lisez l’article Configurations des périphériques pour plus d’informations sur comment accéder à l’interface Web et utiliser l’API.

Lorsque l’interface web du périphérique est ouverte, cliquez sur Paramètres . Sous Configurations, remplacez Périphériques > Mode InputDevice par Activé. La prise en charge des périphériques d’entrée USB tiers est désactivée par défaut.

Appuyer et publier un bouton génère un événement sur appuyez sur et sortant :

 *e UserInterface InputDevice Key Action Key :  *e UserInterface InputDevice Key Action Code :  *e UserInterface InputDevice Key Action Type : Appuyez sur ** fin *e UserInterface InputDevice Key Action Key :  *e UserInterface InputDevice Key Action Code :  *e UserInterface InputDevice Key Action Type : Fin de la publication ** 

Pour écouter les événements, vous devez enregistrer les commentaires à partir des événements EntréeDevice :

 xFeedback Register /event/UserInterface/InputDevice ** fin 

Lorsque le périphérique Cisco détecte un périphérique tiers, il est répertorié sous Statut et dans Périphériques > Périphérique connecté. Le périphérique tiers peut être signalé en tant que plusieurs périphériques.

Informations complémentaires

Vous trouverez des informations complémentaires sur l’utilisation d’un périphérique d’entrée tiers dans le Guide de personnalisation . Sélectionnez la dernière version.

L’assistance Cisco (CAT) ne prend pas en charge le débogage des codes tiers, y compris les macros. Veuillez consulter Cisco RoomOS pour les périphériques de collaboration si vous avez besoin d’aide avec les macros et le code de fabricants tiers. Consultez cette page pour plus d’exemples de macros et d’extensions.

Exemple

Dans cet exemple, nous voulons vous montrer comment utiliser les touches d'un périphérique de saisie USB tiers (dans ce cas, une télécommande) pour contrôler certaines fonctions sur un périphérique Cisco.

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

Dans l’exemple suivant, vous devez entrer le texte qui est écrit dans une 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 avez besoin d’un utilisateur administrateur local.

2

Configurez le périphérique pour permettre l’utilisation d’un port USB tiers contrôle à distance.

 Mode de saisie des périphériques xConfiguration : Le ** fin OK  

 

Vous pouvez vérifier si la configuration est Sur ou Off (On/ Off) en utilisant cette commande :

 xConfiguration Peripherals InputDevice Mode  *c xConfiguration Peripherals InputDevice Mode : Le ** fin OK  
3

Enregistrez-vous pour les commentaires, afin d’être avertis lorsque les boutons contrôle à distance sont lancés.

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

 

Vous pouvez vérifier les commentaires pour lesquels le périphérique est enregistré en utilisant cette commande :

 xListe des commentaires /event/userinterface/inputdevice ** end OK  
4

Appuyez sur et relâchez un bouton sur le contrôle à distance pour vérifier que l’inscription des commentaires fonctionne.

Cette action génère deux événements : Pressé(s) et Relâché(s). Si vous appuyez et maintenez enfoncé un bouton, vous voyez l’événement Appuyez jusqu’à ce que vous relâchez le bouton. L’événement publié est alors généré.

Ces événements sont publiés lors de la publication de la touche Entrée :

  *e UserInterface InputDevice Key Action Key : CLÉ_SAISISSEZ *e UserInterface InputDevice Key Action Code : 28 *e UserInterface InputDevice Key Action Type : Pressé ** end *e UserInterface InputDevice Key Action Key : CLÉ_SAISISSEZ *e UserInterface InputDevice Key Action Code : 28 *e UserInterface InputDevice Key Action Type : Fin de la publication **  
5

Écrivez une macro qui écoute les événements du périphérique de saisie appropriés et qui exécute les actions associées en utilisant l’API du périphérique.

  • Tenez le veille, le volume et le volume à niveau. Lorsque la macro voit un événement contenant_LE VOLUME DES CLÉS,_LE VOLUME DES TOUCHES OU LE VEILLE_DE LA CLÉ, elle exécute les commandes connexes.

  • Créer une fonction de contrôle de la caméra pour les touches fléchées. Nous souhaitons continuer le déplacement de la caméra tant que le bouton est enfoncé. Lorsque le bouton est relâche, le mouvement de la caméra s’arrête. Lorsque la macro voit un événement contenant_KEY LEFT, KEY_RIGHT, KEY_UP, ou KEY_DOWN (BAS), il exécute les commandes connexes.

 const xapi = require('xapi'); fonction com(command, args='') { xapi.command(command, args); log(command + '' + JSON.stringify(args)); } fonction journal(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('Camera Ramp', { 'CameraId': ID de la caméra, [moteur] : direction }); } fonction init() { let standbyState; xapi.status.get('Standby').then((state) => {standbyState = state.State === 'Off' ? false : true ; }) ; xapi.status.on('Standby', état => { standbyState = state.State === 'Off' ? false : true; }); xapi.event.on('UserInterface InputDevice Key Action', appuyer => { if (appuyer sur.Type == "Pressé") { switch (appuyer sur.Key) { case "KEY_LEFT": cameraControl('Pan', 'Gauche') ; pause ; cas "TOUCHE_DROITE" : cameraControl('Pan', 'Right') ; pause ; cas "KEY_UP" : Control de la caméra (« Inclinaison », « Haut ») ; casse ; cas « KEY_DOWN » : cameraControl('Tilt', 'Down') ; break ; par défaut : break ; }} autre si (appuyer sur.Type == "Released") { switch (appuyer sur.Key) { case "KEY_LEFT": cameraControl('Pan', 'Stop') ; pause ; case "KEY_RIGHT" : cameraControl('Pan', 'Stop') ; pause ; cas "KEY_UP" : Control de la caméra (« Inclinaison », « Stop ») ; casse ; cas « KEY_DOWN » : cameraControl(« Tilt », « Stop ») ; cassure ; cas « KEY_VOLUMEUP » : com (« Audio Volume Increase ») ; break ; case « KEY_VOLUMEDOWN » : com (« Audio Volume Decrease ») ; pause ; cas « KEY_SLEEP » : com(standbyState ? « Désactiver le mode veille » : « Activation du mode veille ») ; pause ; par défaut : break; } }}); } init();