Pokazujemy, jak używać przycisków pilota Bluetooth (podłączonego za pomocą klucza USB) do zarządzania funkcjami, takimi jak tryb gotowości, regulacja głośności i sterowanie kamerą Cisco. Można opracować makro, które nasłuchuje odpowiednich zdarzeń i wykonuje odpowiednie działania za pośrednictwem API urządzenia Cisco.

Funkcję urządzenia wejściowego USB innej firmy opisano w tym artykule .

W poniższym przykładzie należy wprowadzić tekst napisany normalną czcionką. Tekst zapisany kursywą oznacza odpowiedź otrzymaną z urządzenia Cisco.

1

Zaloguj się do urządzenia Cisco na SSH. Potrzebujesz lokalnego użytkownika admin.

2

Skonfiguruj urządzenie, aby umożliwić korzystanie z pilota zdalnego sterowania USB innej firmy.

 xConfiguration Peryferia Tryb urządzenia wejściowego: Włącz ** koniec OK  

 

Za pomocą tego polecenia można sprawdzić, czy konfiguracja jest włączona, czy wyłączona:

 xConfiguration Peripherals Tryb urządzenia wejściowego  *c xConfiguration Peripherals Tryb urządzenia wejściowego: Wł. ** koniec OK  
3

Zarejestruj się w celu otrzymywania informacji zwrotnych, abyśmy byli powiadamiani o naciśnięciu i zwolnieniu przycisków pilota.

 xFeedback Zarejestruj /event/userinterface/inputdevice  ** end OK  

 

Za pomocą tego polecenia można sprawdzić, dla jakich informacji zwrotnych urządzenie jest zarejestrowane:

 xFeedbacklist /event/userinterface/inputdevice ** koniec OK  
4

Naciśnij i zwolnij przycisk na pilocie, aby sprawdzić, czy działa rejestracja sprzężenia zwrotnego.

Ta akcja generuje dwa zdarzenia: Wciśnięty i Zwolniony. Jeśli naciśniesz i przytrzymasz przycisk, zobaczysz zdarzenie Wciśnięty do momentu zwolnienia przycisku. Następnie generowane jest zdarzenie Zwolniony.

Zdarzenia te są wywoływane podczas naciskania i zwalniania klawisza Enter:

  *e Klawisz akcji klawisza urządzenia wejściowego interfejsu użytkownika: KEY_ENTER *e Kod akcji klawisza urządzenia wejściowego interfejsu użytkownika: 28 *e Typ akcji klawisza urządzenia wejściowego interfejsu użytkownika: Wciśnięty ** end *e Klawisz akcji klawisza urządzenia wejściowego interfejsu użytkownika: KEY_ENTER *e Kod akcji klawisza urządzenia wejściowego interfejsu użytkownika: 28 *e Typ akcji klawisza UserInterface InputDevice: Zwolniony ** koniec  
5

Tworzymy makro, które nasłuchuje odpowiednich zdarzeń InputDevice i wykonuje związane z nimi akcje, korzystając z API urządzenia pokojowego lub biurkowego.

  • Ożywiaj przyciski trybu gotowości, zwiększania i zmniejszania głośności. Kiedy makro widzi zdarzenie zawierające KEY_VOLUMEUP, KEY_VOLUMEDOWN, lub KEY_SLEEP, to wykonuje odpowiednie komendy.

  • Utwórz funkcję sterowania kamerą dla klawiszy strzałek. Chcemy, aby kamera poruszała się tak długo, jak długo przycisk jest wciśnięty. Po zwolnieniu przycisku ruch kamery zostaje zatrzymany. Kiedy makro widzi zdarzenie zawierające KEY_LEFT, KEY_RIGHT, KEY_UP, lub KEY_DOWN, to wykonuje odpowiednie komendy.

 const xapi = wymagaj('xapi'); funkcja com(polecenie, args='') { xapi.command(polecenie, argumenty); log(polecenie + ' ' + JSON.stringify(args)); } funkcja log(zdarzenie) { konsola.log(zdarzenie); } funkcja notify(wiadomość) { xapi.command('Wyświetlanie wiadomości tekstowej interfejsu użytkownika', { Tekst: wiadomość, czas trwania: 3 }); } funkcja CameraControl(silnik, kierunek, CameraId='1') { com('Camera Ramp', { 'CameraId': CameraId, [motor]: kierunek }); } funkcja init() { niechstan gotowości; xapi.status.get('Standby').then((state) => {standbyState = state.State === 'Off' ? false: true; }); xapi.status.on('Standby', state => { standbyState = state.State === 'Off' ? false: true; }); xapi.event.on('Akcja klawisza urządzenia wejściowego interfejsu użytkownika', naciśnij => { if (press.Type == "Naciśnięty") { przełącznik (naciśnij.Key) { case "KEY_LEFT": kameraControl('Przesuń', 'W lewo '); break; case "KEY_RIGHT": kameraControl('Pan', 'Prawo'); break; case "KEY_UP": CameraControl('Tilt', 'Up'); break; case "KEY_DOWN": CameraControl('Tilt ', 'W dół'); przerwa; domyślnie: przerwa; } } else if (press.Type == "Zwolniony") { przełącznik (naciśnij.Key) { case "KEY_LEFT": kameraControl('Pan', 'Stop') ; break; case "KEY_RIGHT": kameraControl('Pan', 'Stop'); przerwa; case "KEY_UP": CameraControl('Tilt', 'Stop'); break; case "KEY_DOWN": CameraControl('Tilt', „Stop”); przerwa; case „KEY_VOLUMEUP”: com („Zwiększenie głośności dźwięku”); przerwa; case „KEY_VOLUMEDOWN”: com („Zmniejszenie głośności dźwięku”); przerwa; case „KEY_SLEEP”: com (stan gotowości? „Wyłącz tryb gotowości” : „Włącz tryb gotowości”); przerwa; domyślnie: przerwa; } } }); } w tym();