Această caracteristică este menită să completeze funcționalitățile controlerului tactil sau ale interfeței tactile cu utilizatorul. Nu este menit să le înlocuiască .

Exemple de aplicații:

  • În sălile de clasă și în timpul prelegerilor, o mică telecomandă poate fi utilizată pentru a activa un dispozitiv din modul standby. De asemenea, poate fi convenabil să utilizați o telecomandă pentru a selecta ce sursă de intrare să prezentați.

  • Controlarea vizualizării camerei (panoramare, înclinare și zoom) în situațiile în care nu aveți permisiunea de a utiliza controlerul tactil. De exemplu, în sălile de operație din spital.

Prezentare generală funcțională

Atunci când un buton este apăsat pe dispozitivul de intrare USB, acesta declanșează o acțiune în API dispozitivului Cisco. Macrocomenzile sau dispozitivele de control externe de la terți pot fi configurate pentru a detecta aceste acțiuni și pentru a reacționa în consecință. Această funcționalitate este similară cu modul în care se comportă butoanele de control din sală. În plus, este posibil să monitorizați aceste acțiuni prin webhooks sau direct în cadrul unei sesiuni SSH.

Nu este furnizată o bibliotecă preexistentă de acțiuni din care să alegeți. Vi se cere să definiți și să stabiliți acțiunile specifice care ar trebui să aibă loc ca răspuns la evenimente. De exemplu:

  • Măriți volumul dispozitivului Cisco atunci când este apăsată tasta de creștere a volumului.

  • Treceți dispozitivul Cisco în modul standby atunci când este apăsată tasta Repaus.

Configurații, evenimente și stare

Configurațiile și starea menționate în acest articol sunt disponibile atât din interfața web locală a dispozitivului, cât și din API-uri. Citiți articolul Configurațiile dispozitivului pentru informații despre cum să accesați interfața web și să utilizați API.

Când interfața web a dispozitivului este deschisă, faceți clic pe Setări . Sub Configurații , schimbați modul Periferice > InputDevice la Activat. Asistența pentru dispozitivele de intrare USB terțe este dezactivată în mod implicit.

Apăsarea și eliberarea unui buton generează un eveniment de Apăsatși un eveniment Eliberat:

 *e UserInterface InputDevice Key Action Key: <numele cheii> *e UserInterface InputDevice Key Action Code: <id of the key> *e UserInterface InputDevice Key Action Type: Pressed ** end *e UserInterface InputDevice Key Action Key: <numele cheii> *e UserInterface InputDevice Key Action Code: <id-ul cheii> *e UserInterface InputDevice Key Action Type: Lansat ** sfârșit 

Pentru a monitoriza evenimente, trebuie să vă înregistrați feedbackul de la evenimentele DispozitivIntrare:

 xFeedback Register / event / UserInterface/InputDevice ** sfârșit 

Atunci când dispozitivul Cisco detectează perifericul terț, acesta va fi listat în Stare și în Periferice > DispozitivConectat . Este posibil ca dispozitivul terț să fie raportat ca mai multe dispozitive.

Informații suplimentare

Găsiți mai multe informații despre utilizarea unui dispozitiv de intrare terț în Ghidul de personalizare. Alegeți cea mai recentă versiune.

Asistența Cisco (TAC) nu acceptă depanarea codurilor terțe, inclusiv a macrocomenzilor. Verificați Cisco RoomOS pentru dispozitive de colaborare dacă aveți nevoie de ajutor cu macrocomenzile și codurile terțe. Consultați această pagină pentru mai multe exemple de macrocomenzi și extensii.

Exemplul xxx

În acest exemplu, dorim să vă arătăm cum să utilizați tastele unui dispozitiv de intrare USB terț (în acest caz o telecomandă) pentru a controla anumite funcții pe un dispozitiv Cisco.

Vă arătăm cum să utilizați butoanele de pe o telecomandă Bluetooth (conectată printr-un dongle USB) pentru a gestiona funcții precum modul standby, reglarea volumului și controlul unui dispozitiv de cameră Cisco. Puteți dezvolta o macrocomandă care ascultă evenimentele relevante și execută acțiunile corespunzătoare prin intermediul API dispozitivului Cisco.

În exemplul următor, trebuie să introduceți textul care este scris cu font normal. Textul scris cu caractere cursive reprezintă răspunsul primit de la dispozitivul Cisco.

1

conectați-vă la dispozitivul Cisco prin SSH. Aveți nevoie de un utilizator admin local.

2

Configurați dispozitivul pentru a permite utilizarea unei telecomenzi USB terțe.

 xConfiguration Peripherals InputDevice Mode: On ** end OK  

 

Puteți verifica dacă configurația este activată sau dezactivată utilizând această comandă:

 xConfiguration Peripherals InputDevice Mode  *c xConfiguration Peripherals InputDevice Mode: On ** end OK  
3

Înregistrați-vă pentru feedback, astfel încât să fim informați când sunt apăsate și eliberate butoanele telecomenzii.

 xFeedback Înregistrare / eveniment / interfață utilizator / dispozitiv   de intrare ** sfârșit OK  

 

Puteți verifica pentru ce feedback-uri este înregistrat dispozitivul pentru utilizarea acestei comenzi:

 xFeedback listă /eveniment/interfață utilizator/dispozitiv de intrare ** sfârșit OK  
4

Apăsați și eliberați un buton de pe telecomandă pentru a verifica dacă funcționează înregistrarea de feedback.

Această acțiune generează două evenimente: Apăsat și Eliberat. Dacă apăsați și mențineți apăsat un buton, vedeți evenimentul Apăsat până când eliberați butonul. Apoi este generat evenimentul Eliberat.

Aceste evenimente sunt generate atunci când apăsați și eliberați tasta Enter:

  *e UserInterface InputDevice Key Action Key: KEY_ENTER *e UserInterface InputDevice Key Action Code: 28 *e UserInterface InputDevice Key Action Type: Pressed ** end *e UserInterface InputDevice Key Action Key: KEY_ENTER *e UserInterface InputDevice Key Action Code: 28 *e UserInterface InputDevice Key Action Type: Released ** end  
5

Scrieți o macrocomandă care urmărește evenimentele InputDevice relevante și efectuează acțiunile asociate utilizând API-ul dispozitivului.

  • Aduceți la viață butoanele de pauză, de creștere și de reducere a volumului. Când macrocomanda observă un eveniment care conține KEY_VOLUMEUP, KEY_VOLUMEDOWN sau KEY_SLEEP, execută comenzile corespunzătoare.

  • Creați o funcție de control al camerei pentru tastele săgeată. Dorim să menținem camera în mișcare atâta timp cât este apăsat butonul. Când butonul este eliberat, mișcarea camerei se oprește. Când macrocomanda observă un eveniment care conține KEY_LEFT, KEY_RIGHT, KEY_UP sau KEY_DOWN, execută comenzile corespunzătoare.

 const xapi = require('xapi'); funcția 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, durata: 3 }); } funcția cameraControl(motor, direcție, cameraId='1') { com('Camera Ramp', { 'CameraId': cameraId, [motor]: direcție }); } funcție init() { let standbyState; xapi.status.get('Standby').then((state) => {standbyState = state. Stare === 'Off' ? fals: adevărat; }); xapi.status.on('Standby', stare => { standbyState = stare. Stare === 'Off' ? fals: adevărat; }); xapi.event.on('UserInterface InputDevice Key Action', apăsați => { if (apăsați. Tastați == "Apăsat") { comutator (apăsați. Key) { cazul "KEY_LEFT": cameraControl('Pan', 'Left'); break; case "KEY_RIGHT": cameraControl('Pan', 'Right'); break; cazul "KEY_UP": cameraControl('Tilt', 'Up'); break; cazul "KEY_DOWN": cameraControl('Tilt', 'Down'); break; default: break; }} altfel dacă (apăsați. Tastați == "Eliberat") { comutator (apăsați. Cheie) { cazul "KEY_LEFT": cameraControl('Pan', 'Stop'); pauză; cazul "KEY_RIGHT": cameraControl('Pan', 'Stop'); pauză; cazul "KEY_UP": cameraControl('Tilt', 'Stop'); pauză; cazul "KEY_DOWN": cameraControl('Tilt', 'Stop'); pauză; cazul 'KEY_VOLUMEUP': com('Creștere volum audio'); pauză; caz 'KEY_VOLUMEDOWN': com('Scădere volum audio'); pauză; caz 'KEY_SLEEP': com(standbyState? "Dezactivare în așteptare": "Activare în așteptare"); Pauză; implicit: pauză; } } }); } init();