Deze functie is bedoeld om de functies van de aanraakcontroller of de gebruikersinterface voor aanraking aan te vullen . Het is niet bedoeld om ze te vervangen .

Voorbeelden van toepassingen:

  • In klaslokalen en tijdens colleges kan een kleine afstandsbediening worden gebruikt om een apparaat uit stand-bymodus te halen. Het kan ook handig zijn om een afstandsbediening te gebruiken om te selecteren welke invoerbron moet worden gepresenteerd.

  • De cameraweergave beheren (pannen, kantelen en zoomen) in situaties waarin u de aanraakcontroller niet mag gebruiken. Bijvoorbeeld in besturingssystemen in een ziekenhuis.

Functioneel overzicht

Wanneer er op een knop wordt gedrukt op het USB-invoerapparaat, wordt een actie binnen de API van het Cisco-apparaat geactiveerd. Macro's of externe besturingsapparaten van derden kunnen worden ingesteld om deze acties te detecteren en dienovereenkomstig te reageren. Deze functionaliteit is vergelijkbaar met de werking van de bedieningsknoppen in de ruimte. Daarnaast is het haalbaar om deze acties te volgen via webhooks of rechtstreeks binnen een SSH-sessie.

Er is geen bestaande bibliotheek met acties om uit te kiezen. U moet de specifieke acties definiëren en vaststellen die moeten worden uitgevoerd als reactie op de gebeurtenissen. Bijvoorbeeld:

  • Verhoog het volume van het Cisco-apparaat wanneer er op de toets Volume omhoog wordt gedrukt.

  • Zet het Cisco-apparaat in de stand-bymodus wanneer er op de toets Slapen wordt gedrukt.

Configuraties, gebeurtenissen en status

De configuraties en status waarnaar in dit artikel wordt verwezen, zijn zowel beschikbaar vanaf de lokale webinterface van het apparaat als vanaf de API's. Lees het artikel Apparaatconfiguraties voor meer informatie over de toegang tot de webinterface en het gebruik van de API.

Wanneer de webinterface van het apparaat is geopend, klikt u op Instellingen . Onder Configuraties wijzigt u Randapparaten > Invoerapparaatmodus in Aan. De ondersteuning voor USB-invoerapparaten van derden is standaard uitgeschakeld.

Door op een knop te drukken en uit te brengen, wordt een geperstste en vrijgegeven gebeurtenis gegenereerd:

 *e UserInterface InputDevice Key Action Key:  *e UserInterface InputDevice Key Action Code:  *e UserInterface InputDevice Key Action Type: Ingedrukt op ** einde *e UserInterface InputDevice Key Action Key:  *e UserInterface InputDevice Key Action Code:  *e UserInterface InputDevice Key Action Type: Vrijgegeven ** einde 

Als u wilt luisteren naar gebeurtenissen, moet u feedback registreren vanuit de InputDevice-gebeurtenissen :

 xFeedback registreren /event/UserInterface/InputDevice ** einde 

Wanneer het Cisco-apparaat het randapparaat van derden detecteert, wordt het weergegeven onder Status en in Randapparaten > ConnectedDevice . Het apparaat van een derde partij kan worden gerapporteerd als meerdere apparaten.

Meer informatie

Meer informatie over het gebruik van een invoerapparaat van derden vindt u in de handleiding Aanpassen . Kies de nieuwste versie.

Cisco-ondersteuning (TAC) ondersteunt geen oplossingen voor het debugging van code van derden, inclusief macro's. Raadpleeg Cisco RoomOS voor samenwerkingsapparaten als u hulp nodig hebt met macro's en code van een derde partij. Bekijk deze pagina voor meer voorbeelden van macro's en toestellen.

Voorbeeld

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

We laten u zien hoe u de knoppen op een Bluetooth-afstandsbediening (verbonden via een USB-dongle) kunt gebruiken om functies als stand-by, volumeregeling en bediening van een Cisco-camera-apparaat te beheren. U kunt een macro ontwikkelen die naar relevante gebeurtenissen luistert en bijbehorende acties uitvoert via de API van het Cisco-apparaat.

In het volgende voorbeeld moet u de tekst invoeren die in het normale lettertype is geschreven. De tekst in cursief is het antwoord dat is ontvangen van het Cisco-apparaat.

1

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

2

Configureer het apparaat om het gebruik van een USB-poort van een derde extern beheer.

 xConfiguration Peripherals InputDevice Mode: Op ** einde OK  

 

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

 xConfiguratie randapparatuur InputDevice Mode  *c xConfiguratie randapparatuur InputDevice Mode: Op ** einde OK  
3

Registreer u voor feedback, zodat we een melding krijgen wanneer de extern beheer knoppen worden ingedrukt en vrijgegeven.

 xFeedbackregister /gebeurtenis/gebruikersinterface/inputdevice  ** einde OK  

 

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

 xFeedbacklijst /gebeurtenis/gebruikersinterface/inputdevice ** einde OK  
4

Druk op een knop en laat een knop op de extern beheer controleren of feedbackregistratie werkt.

Deze handeling genereert twee gebeurtenissen: Ingedrukt en Vrijgegeven. Als u op een knop drukt en ingedrukt houdt, ziet u de gebeurtenis Ingedrukt totdat u de knop los laat. Vervolgens wordt de vrijgegeven gebeurtenis gegenereerd.

Deze gebeurtenissen worden uitgegeven wanneer u op de Enter-toets drukt en de Enter-toets uitkomt:

  *e UserInterface InputDevice Key actiesleutel: SLEUTEL_VOER *e actiecode UserInterface InputDevice sleutel in: 28 *e UserInterface InputDevice Key Action Type: Druk op de actiesleutel UserInterface InputDevice op ** einde *e: SLEUTEL_VOER *e actiecode UserInterface InputDevice sleutel in: 28 *e UserInterface InputDevice Key Action Type: Vrijgegeven ** einde  
5

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

  • Breng de stand-by- en volumeknoppen omhoog en volume omlaag tot stand. Wanneer de macro een gebeurtenis ziet met KEY_VOLUMEUP, KEY_VOLUMEDOWN of KEY_SLEEP, voert deze de verwante opdrachten uit.

  • Maak een camerabedieningsfunctie voor de pijltjestoetsen. We willen de camera blijven bewegen zolang op de knop wordt geklikt. Wanneer de knop wordt vrijgegeven, stopt de camerabeweging. Wanneer de macro een gebeurtenis ziet met DE TOETSEN LINKS_,_SLEUTEL RECHTS,_OMHOOG of OMLAAG_, voert deze 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', { Text: bericht, duur: 3 }); } functie cameraControl (motor, richting, cameraId='1') { com('Camera Ramp', { 'CameraId': cameraId, [motor]: direction }); } function init() { let standbyState; xapi.status.get('Standby').then((state) => {standbyState = state.State === 'Uit' ? false : true; }); xapi.status.on('Standby', status => { standbyState = state.State === 'Uit' ? false : true; }); xapi.event.on('UserInterface InputDevice Key Action', druk op => { if (druk op.Type == "Ingedrukt") { switch (druk op.Key) { case "KEY_LEFT": cameraControl('Pan', 'Links'); break; case "KEY_RIGHT": cameraControl('Pan', 'Right'); break; case "KEY_UP": cameraControl ('Kantelen', 'Omhoog'); break; case "KEY_DOWN": cameraControl ('Kantelen', 'Omlaag'); onderbreking; standaard: break; } } anders indien (druk op.Type == "Vrijgegeven") { switch (druk op.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('Verhoging audiovolume'); break; case 'KEY_VOLUMEDOWN': com('Audiovolume verlagen'); break; case 'KEY_SLEEP': com(standbyState? 'Stand-by deactiveren': 'Stand-by activeren'); pauze; standaard: break; } } }); } init();