Den här funktionen är avsedd att komplettera funktionerna i pekkontrollen eller användargränssnittet. Det är inte meningen att ersätta dem.

Exempel på tillämpningar:

  • I klassrum och under föreläsningar kan en liten fjärrkontroll användas för att väcka en enhet från vänteläge. Det kan också vara praktiskt att använda en fjärrkontroll för att välja vilken ingångskälla som ska presenteras.

  • Styra kameravyn (panorera, vinkla och zooma) i situationer där du inte får använda pekkontrollen. Exempelvis i operationssalar på sjukhus.

Funktionell översikt

När du trycker på en knapp på USB-inmatningsenheten utlöser den en åtgärd i Cisco-enhetens API. Makron eller externa kontrollenheter från tredje part kan ställas in för att upptäcka dessa åtgärder och reagera därefter. Den här funktionen fungerar på samma sätt som knapparna i rumskontrollen. Dessutom är det möjligt att övervaka dessa åtgärder via webhooks eller direkt i en SSH-session.

Det finns inget befintligt bibliotek med åtgärder att välja mellan. Du måste definiera och fastställa de specifika åtgärder som ska utföras som svar på händelserna. Till exempel:

  • Öka volymen på Cisco-enheten när du trycker på volym upp-knappen.

  • Sätt Cisco-enheten i vänteläge när du trycker på viloknappen.

Konfigurationer, händelser och status

De konfigurationer och den status som refereras i den här artikeln är tillgängliga både från enhetens lokala webbgränssnitt och API:erna. Läs artikeln Enhetskonfigurationer för information om hur du kommer åt webbgränssnittet och använder API.

När enhetens webbgränssnitt öppnas klickar du på Inställningar . Under Konfigurationer ändrar du Kringutrustning> InputDevice-läge till . Stöd för USB-inmatningsenheter från tredje part är inaktiverat som standard.

Att trycka ned och släppa en knapp genererar en nedtryckt-händelse och en släppt-händelse:

 *e UserInterface InputDevice Key Action Key: <namn på nyckeln> *e UserInterface InputDevice Key Action Code: <id för nyckeln> *e UserInterface InputDevice Key Action Type: Tryckt ** slut *e UserInterface InputDevice Key Action Key: <namn på nyckeln> *e UserInterface InputDevice Key Action Code: <id för nyckeln> *e UserInterface InputDevice Key Action Type: Släppt ** slut 

Om du vill lyssna efter händelser måste du registrera feedback från inmatningsenhet-händelser:

 xFeedback Registrera /event/UserInterface/InputDevice ** slut 

När Cisco-enheten upptäcker kringutrustning från tredje part visas den under Status och i Kringutrustning> Anslutenenhet . Enheten från tredje part kan rapporteras som flera enheter.

Ytterligare information

Du hittar mer information om hur du använder en inmatningsenhet från tredje part i användarhandboken om anpassning. Välj den senaste versionen.

Cisco support (TAC) har inte stöd för felsökning av kod från tredje part, inklusive makron. Kontrollera Cisco RoomOS för samarbetsenheter om du behöver hjälp med makron och tredjepartskod. På den här sidan finns fler exempel på makron och tillägg.

Exempel

I det här exemplet vill vi visa dig hur du använder knapparna på en USB-inmatningsenhet från tredje part (i det här fallet en fjärrkontroll) för att styra vissa funktioner på en Cisco-enhet.

Vi visar hur du använder knapparna på en Bluetooth fjärrkontroll (ansluten via en USB-dongel) för att hantera funktioner som standby, volymjustering och kontroll av en Cisco-kameraenhet. Du kan utveckla ett makro som lyssnar på relevanta händelser och utför motsvarande åtgärder via Cisco-enhetens API.

I följande exempel ska du skriva in den text som skrivs i normal stil. Texten i kursiv stil är svaret från Cisco-enheten.

1

Logga in på Cisco-enheten på SSH. Du behöver en lokal admin-användare.

2

Konfigurera enheten för att tillåta användning av en USB-fjärrkontroll från tredje part.

 xConfiguration Kringutrustning InputDevice-läge: På ** slut OK  

 

Du kan kontrollera om konfigurationen är aktiv eller inaktiv genom att använda det här kommandot:

 xKonfigurationskringutrustning InputDevice-läge  *c xConfiguration Kringutrustning InputDevice-läge: På ** slut OK  
3

Registrera dig för feedback, så att du aviseras när knapparna på fjärrkontrollen trycks ned och släpps.

 xFeedback Registrera /event/userinterface/inputdevice  ** slut OK  

 

Du kan kontrollera vilka typer av feedback enheten är registrerad för med det här kommandot:

 xFeedback-lista /händelse/användargränssnitt/inputdevice ** slut OK  
4

Tryck på och släpp en knapp på fjärrkontrollen för att kontrollera att feedbackregistrering fungerar.

Den här åtgärden genererar två händelser: Nedtryckt och Släppt. Om du trycker på och håller ned en knapp, visas händelsen Nedtryckt tills du släpper knappen. Då genereras händelsen Släppt.

Dessa händelser genereras när du trycker ned och släpper Enter-tangenten:

  *e Användargränssnitt InputDevice Nyckel Åtgärd Nyckel: KEY_ENTER *e Användargränssnitt IngångEnhet Nyckel Åtgärdskod: 28 *e Användargränssnitt InputDevice Nyckel Åtgärdstyp: Pressad ** slut *e Användargränssnitt InputDevice Nyckel Åtgärdsknapp: KEY_ENTER *e Användargränssnitt InputDevice Nyckel Åtgärdskod: 28 *e Användargränssnitt InputDevice Nyckel Åtgärdstyp: Släppt ** slut  
5

Skriv ett makro som avlyssnar relevanta inmatningsenhet-händelser och utför de tillhörande åtgärderna med hjälp av API för enheten.

  • Ge liv åt knapparna för standby, höj volym och sänk volym. Relaterade kommandon utförs när makrot ser en händelse som innehåller KEY_VOLUMEUP, KEY_VOLUMEDOWN eller KEY_SLEEP.

  • Skapa en kamerakontrollfunktion för piltangenterna. Vi vill att kameran ska fortsätta att röra sig så länge knappen hålls nedtryckt. När knappen släpps ska kamerarörelsen upphöra. Relaterade kommandon utförs när makrot ser en händelse som innehåller KEY_LEFT, KEY_RIGHT, KEY_UP eller KEY_DOWN.

 const xapi = kräv ('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 Ramp', { 'CameraId': cameraId, [motor]: direction }); } function init() { let standbyState; xapi.status.get('Standby').then((state) => {standbyState = state. Tillstånd === 'Av'? falskt: sant; }); xapi.status.on('Vänteläge', tillstånd => { standbyState = tillstånd. Tillstånd === 'Av'? falskt: sant; }); xapi.event.on('UserInterface InputDevice Key Action', tryck => { if (tryck på. Skriv == "Pressad") { switch (tryck på. Key) { skiftläge "KEY_LEFT": cameraControl('Panorera', 'Left'); break; skiftläge "KEY_RIGHT": cameraControl('Pan', 'Right'); break; skiftläge "KEY_UP": cameraControl('Tilt', 'Up'); break; skiftläge "KEY_DOWN": cameraControl('Tilt', 'Down'); break; standard: break; } } else if (tryck. Skriv == "Släppt") { switch (tryck på. 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('Audio Volume Increase'); break; case 'KEY_VOLUMEDOWN': com('Audio Volume Reduction'); break; case "KEY_SLEEP": com(standbyState? "Avaktivera standby": "Aktivera standby"); Bryta; standard: paus; } } }); } init();