Denne funksjonen er ment å utfylle funksjonene til berøringskontrolleren eller berøringsbrukergrensesnittet. Det er ikke ment å erstatte dem.

Eksempler på bruksområder:

  • I klasserom og under forelesninger kan en liten fjernkontroll brukes til å vekke en enhet fra standby-modus. Det kan også være praktisk å bruke en fjernkontroll til å velge hvilken inngangskilde som skal presenteres.

  • Kontrollere kameravisningen (panorere, vippe og zoome) i situasjoner der du ikke har lov til å bruke berøringskontrolleren. For eksempel i operasjonsstuer på et sykehus.

Funksjonell oversikt

Når du trykker på en knapp på USB-inngangsenheten, utløser den en handling innenfor Cisco-enhetens API. Makroer eller eksterne kontrollenheter fra tredjeparter kan settes opp til å oppdage disse handlingene og reagere deretter. Denne funksjonaliteten er på samme måte som knappene for kontroll i rommet fungerer. I tillegg er det mulig å overvåke disse handlingene gjennom webhooks eller direkte i en SSH-økt.

Et eksisterende bibliotek med handlinger å velge mellom er ikke angitt. Du må definere og etablere de spesifikke handlingene som skal skje som svar på hendelsene. Eksempel:

  • Øk volumet på Cisco-enheten når du trykker på Volum opp-tasten.

  • Sett Cisco-enheten i hvilemodus når du trykker på Dvale-tasten.

Konfigurasjoner, hendelser og status

Konfigurasjonene og statusen som refereres til i denne artikkelen, er tilgjengelige både fra det lokale nettgrensesnittet til enheten og APIene. Les artikkelen om enhetskonfigurasjoner for informasjon om hvordan du får tilgang til webgrensesnittet og bruker API.

Når webgrensesnittet til enheten åpnes, klikker du på Innstillinger . Under Konfigurasjoner endrer du Peripherals >InputDevice-modus til . Støtten for USB-inngangsenheter fra tredjeparter er deaktivert som standard.

Når du trykker på og slipper en knapp, genereres en Trykket og en Frigitt-hendelse :

 *e UserInterface InputDevice Key Action Key: <navn på nøkkelen> *e UserInterface InputDevice Key Action Code: <id av nøkkelen> *e UserInterface InputDevice Key Handlingstype: Trykket ** end *e UserInterface InputDevice Key Action Key: <navn på nøkkelen> *e UserInterface InputDevice Key Action Code: <id av nøkkelen> *e UserInterface InputDevice Key Handlingstype: Utgitt ** slutt 

Hvis du vil lytte etter hendelser, må du registrere tilbakemelding fra InputDevice-hendelsene :

 xFeedback Register / event / UserInterface / InputDevice ** slutt 

Når Cisco-enheten oppdager den eksterne tredjepartsenheten, vises den under Status og i Peripherals > ConnectedDevice . Tredjepartsenheten kan rapporteres som flere enheter.

Ytterligere informasjon

Du finner mer informasjon om bruken av en inndataenhet fra en tredjepart i veiledningen for tilpassing . Velg den nyeste versjonen.

Ciscos kundestøtte (TAC) støtter ikke feilsøking av tredjepartskode, inkludert makroer. Se Cisco RoomOS for samarbeidsenheter hvis du trenger hjelp med makroer og tredjepartskode. Sjekk denne siden for flere eksempler på makroer og utvidelser.

Eksempel

I dette eksemplet vil vi vise deg hvordan du bruker tastene til en tredjeparts USB-inngangsenhet (i dette tilfellet en fjernkontroll) til å kontrollere visse funksjoner på en Cisco-enhet.

Vi viser deg hvordan du bruker knappene på en Bluetooth fjernkontroll (koblet til via en USB-dongle) for å administrere funksjoner som ventemodus, volumjustering og kontroll av en Cisco-kameraenhet. Du kan utvikle en makro som lytter til relevante hendelser og utfører tilsvarende handlinger via Cisco-enhetens API.

I eksemplet nedenfor må du skrive inn teksten som er skrevet med vanlig skrift. Teksten i kursiv er svaret du mottar fra Cisco-enheten.

1

Logge på Cisco-enheten på SSH. Du trenger en lokal administratorbruker .

2

Konfigurer enheten til å tillate bruk av en tredjeparts USB-fjernkontroll.

 xConfiguration Peripherals InputDevice Mode: På ** slutt OK  

 

Du kan sjekke om konfigurasjonen er på eller av ved å bruke denne kommandoen:

 xConfiguration Eksterne enheter InputDevice-modus  *c xKonfigurasjon Eksterne enheter InputDevice-modus: På ** slutt OK  
3

Registrer deg for tilbakemelding, slik at vi blir varslet når fjernkontrollknappene trykkes inn og slippes.

 xFeedback Registrer / event / userinterface / inputdevice   ** slutt OK  

 

Du kan sjekke hvilke tilbakemeldinger enheten er registrert for ved hjelp av denne kommandoen:

 xFeedback liste  / hendelse / brukergrensesnitt / inputdevice ** slutt OK  
4

Trykk og slipp en knapp på fjernkontrollen for å kontrollere at tilbakemeldingsregistrering fungerer.

Denne handlingen genererer to hendelser: Trykket og Frigitt. Hvis du trykker og holder inne en knapp, ser du Trykket-hendelsen til du slipper knappen. Deretter genereres hendelsen Frigitt .

Disse hendelsene utstedes når du trykker og slipper Enter-tasten:

  *e UserInterface InputDevice Key Handlingsnøkkel: KEY_ENTER *e UserInterface InputDevice Key Handlingskode: 28 *e UserInterface InputDevice Key Handlingstype: Trykket ** end *e UserInterface InputDevice Key Handlingstast: KEY_ENTER *e UserInterface InputDevice Key handlingskode: 28 *e UserInterface InputDevice Key Handlingstype: Utgitt ** slutt  
5

Skriv en makro som lytter etter de relevante InputDevice-hendelsene , og utfører de tilknyttede handlingene ved hjelp av enhetens API.

  • Gi liv til knappene for ventemodus, volum opp og volum ned. Når makroen ser en hendelse som inneholder KEY_VOLUMEUP, KEY_VOLUMEDOWN eller KEY_SLEEP, utføres de relaterte kommandoene.

  • Opprett en kamerakontrollfunksjon for piltastene. Vi ønsker å fortsette å bevege kameraet så lenge du trykker på knappen. Når knappen slippes, stopper kamerabevegelsen. Når makroen ser en hendelse som inneholder KEY_LEFT, KEY_RIGHT, KEY_UP eller KEY_DOWN, utføres de relaterte kommandoene.

 const xapi = require('xapi'); funksjon com (kommando, args = '') { xapi.command (kommando, args); log (kommando + ' ' + JSON.stringify (args)); } funksjonslogg (hendelse) { console.log (hendelse); } funksjon notify (melding) { xapi.command ('UserInterface Message TextLine Display', { Tekst: melding, varighet: 3 }); } funksjon cameraControl (motor, retning, cameraId = '1') { com ('Camera Ramp', { 'CameraId': cameraId, [motor]: retning }); } funksjon init () { let standbyState; xapi.status.get ('Standby').then ((tilstand) = > {standbyState = tilstand. Stat === 'Av'? Usant: sant; }); xapi.status.on('Ventemodus', tilstand => { standbyState = tilstand. Stat === 'Av'? Usant: sant; }); xapi.event.on('UserInterface InputDevice Key Action', trykk => { if (trykk. Skriv == "Trykket") { bryter (trykk. Nøkkel) { tilfelle "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; } } else if (trykk. Type == "Utgitt") { bryter (trykk. Nøkkel) {tilfelle "KEY_LEFT": cameraControl('Pan', 'Stop'); break; tilfelle "KEY_RIGHT": cameraControl('Pan', 'Stop'); break; tilfelle "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? 'Standby Deaktiver': 'Standby Activate'); pause; standard: pause; } } }); } init();