Funkcja ta ma na celu uzupełnienie funkcjonalności kontrolera dotykowego lub interfejsu użytkownika dotykowego. Nie ma na celu ich zastąpienia .

Przykładowe zastosowania:

  • W salach lekcyjnych i podczas wykładów, mały pilot zdalnego sterowania może być użyty do wybudzenia urządzenia z trybu czuwania. Wygodnym rozwiązaniem może być również użycie pilota zdalnego sterowania do wyboru źródła wejścia, które ma być prezentowane.

  • Sterowanie widokiem z kamery (obrót, pochylenie i powiększanie) w sytuacjach, w których nie można korzystać z kontrolera dotykowego. Na przykład na salach operacyjnych w szpitalu.

Przegląd funkcji

Naciśnięcie przycisku na urządzeniu wejściowym USB powoduje uruchomienie akcji w interfejsie API urządzenia Cisco. Można skonfigurować makra lub zewnętrzne urządzenia sterujące innych firm w celu wykrywania tych działań i odpowiedniego reagowania. Funkcja ta działa podobnie do zachowania przycisków sterowania w pokoju. Dodatkowo możliwe jest monitorowanie tych czynności za pomocą żądań Webhook lub bezpośrednio w sesji SSH.

Nie jest udostępniona istniejąca wcześniej biblioteka działań do wyboru. Musisz zdefiniować i ustanowić konkretne działania, które powinny wystąpić w odpowiedzi na zdarzenia. Na przykład:

  • Zwiększ głośność urządzenia Cisco po naciśnięciu klawisza zwiększania głośności.

  • Przełącz urządzenie Cisco w tryb gotowości po naciśnięciu klawisza uśpienia.

Konfiguracje, zdarzenia i stan

Konfiguracje i stany, o których mowa w tym artykule, są dostępne zarówno z lokalnego interfejsu WWW urządzenia, jak i interfejsów API. Przeczytaj artykuł Konfiguracje urządzeń , aby dowiedzieć się, jak uzyskać dostęp do interfejsu WWW i korzystać z interfejsu API.

Po otwarciu interfejsu internetowego urządzenia kliknij Ustawienia. W sekcji Konfiguracje zmień kolejno opcje Peripherals > InputDevice Mode na Wł. Obsługa urządzeń wejściowych USB innych firm jest domyślnie wyłączona.

Naciśnięcie i zwolnienie przycisku powoduje wygenerowanie zdarzenia Naciśnięcie i Zwolnienie :

 *e UserInterface InputDevice Key Action Key:  *e UserInterface InputDevice Key Action Code:  *e UserInterface InputDevice Key Action Type: Naciśnięto ** end *e UserInterface InputDevice Key Action Key:  *e UserInterface InputDevice Key Action Code:  *e UserInterface InputDevice Key Action Type: Zwolniono ** Koniec 

Aby nasłuchiwać zdarzeń, musisz zarejestrować informacje zwrotne ze zdarzeń InputDevice :

 xFeedback Rejestracja /event/UserInterface/InputDevice ** koniec 

Gdy urządzenie Cisco wykryje urządzenie peryferyjne innej firmy, będzie ono wyświetlane w obszarze Stan oraz w obszarze Urządzenia peryferyjne > ConnectedDevice. Urządzenie innej firmy może być zgłaszane jako wiele urządzeń.

Dodatkowe informacje

Więcej informacji na temat korzystania z urządzenia wejściowego innej firmy można znaleźć w Przewodniku dostosowywania . Wybierz najnowszą wersję.

Obsługa Cisco (TAC) nie obsługuje debugowania kodu innych firm, w tym makr. Jeśli potrzebujesz pomocy z makrami i kodem innej firmy, sprawdź Cisco RoomOS dla urządzeń do współpracy . Więcej przykładów makr i numerów wewnętrznych znajdziesz na tej stronie .

Przykład

W tym przykładzie chcemy pokazać, jak używać klawiszy urządzenia wejściowego USB innej firmy (w tym przypadku pilota zdalnego sterowania) do sterowania niektórymi funkcjami urządzenia Cisco.

Pokazujemy, jak korzystać z przycisków na pilocie zdalnego sterowania Bluetooth (podłączonym za pomocą klucza sprzętowego USB) do zarządzania funkcjami takimi jak czuwanie, regulacja głośności i sterowanie kamerą Cisco. Istnieje możliwość opracowania makra, które nasłuchuje odpowiednich zdarzeń i wykonuje odpowiednie działania za pośrednictwem interfejsu API urządzenia Cisco.

W poniższym przykładzie należy wprowadzić tekst napisany zwykłą czcionką. Tekst pisany kursywą to odpowiedź otrzymana z urządzenia Cisco.

1

Zaloguj się do urządzenia Cisco za pomocą protokołu SSH. Potrzebujesz lokalnego użytkownika administratora .

2

Skonfiguruj urządzenie tak, aby zezwalało na korzystanie z pilota USB innej firmy.

 Tryb InputDevice urządzeń peryferyjnych xConfiguration: W dniu ** zakończ OK  

 

Możesz sprawdzić, czy konfiguracja jest włączona lub wyłączona, używając tego polecenia:

 xConfiguration Peripherals InputDevice Mode  *c xConfiguration Peripherals InputDevice Mode: Włącz ** zakończ OK  
3

Zarejestruj się, aby uzyskać informacje zwrotne, abyśmy otrzymywali powiadomienia o naciśnięciu i zwolnieniu przycisków pilota zdalnego sterowania.

 xFeedback Rejestracja /wydarzenie/userinterface/inputdevice  ** koniec OK  

 

Możesz sprawdzić, które opinie urządzenie jest zarejestrowane do korzystania z tego polecenia:

 xLista opinii /wydarzenie/userinterface/inputdevice ** zakończenie OK  
4

Naciśnij i zwolnij przycisk na pilocie zdalnego sterowania, aby sprawdzić, czy rejestracja opinii działa.

Ta akcja generuje dwa zdarzenia: Naciśnięte i Zwolnione. Jeśli naciśniesz i przytrzymasz przycisk, zobaczysz zdarzenie Wciśnięte , dopóki nie zwolnisz przycisku. Następnie generowane jest zdarzenie Released .

Te zdarzenia są wyświetlane po naciśnięciu i zwolnieniu Enter:

  *e UserInterface InputDevice Key Action Key: KLUCZ_WPROWADŹ *e kod działania klawisza UserInterface InputDevice: 28 *e UserInterface InputDevice Key Action Type: Naciśnięto ** end *e UserInterface InputDevice Key Action Key: KLUCZ_WPROWADŹ *e kod działania klawisza UserInterface InputDevice: 28 *e UserInterface InputDevice Key Action Type: Zwolniono ** Koniec  
5

Napisz makro, które nasłuchuje odpowiednich zdarzeń InputDevice i wykonuje skojarzone z nimi akcje za pomocą interfejsu API urządzenia.

  • Ożyw przyciski czuwania, zwiększania głośności i zmniejszania głośności. Gdy makro widzi zdarzenie zawierające KEY_VOLUMEUP, KEY_VOLUMEDOWN lub KEY_SLEEP, wykonuje powiązane polecenia.

  • Utwórz funkcję sterowania kamerą dla strzałek. Chcemy poruszać kamerą tak długo, jak długo przycisk jest naciśnięty. Po zwolnieniu przycisku ruch kamery zatrzymuje się. Gdy makro widzi zdarzenie zawierające KEY_LEFT, KEY_RIGHT, KEY_UP lub KEY_DOWN, wykonuje powiązane polecenia.

 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: wiadomość, czas trwania: 3 }); } funkcja cameraControl(silnik, kierunek, cameraId='1') { com('Camera Ramp', { 'CameraId': cameraId, [silnik]: kierunek }); } function init() { let standbyState; xapi.status.get('Standby').then((state) => {standbyState = state.State === 'Wył.' ? false : true; }); xapi.status.on('Stan gotowości', state => { standbyState = state.State === 'Wył.' ? false : true; }); xapi.event.on('UserInterface InputDevice Key Action', press => { if (press.Type == "Naciśnięty") { switch (press.Key) { case "KEY_LEFT": cameraControl('Pan', 'W lewo'); break; wielkość „KLAWISZ_W PRAWO”: cameraControl('Pan', 'W prawo'); break; wielkość liter „KEY_UP”: cameraControl('Tilt', 'Up'); break; wielkość „KEY_DOWN”: cameraControl ('Tilt', 'Down'); break; domyślnie: break; } } else if (press.Type == "Zwolniono") { switch (press.Key) { case "KEY_LEFT": cameraControl('Pan', 'Stop'); break; KLAWISZ_PRAWY': cameraControl('Pan', 'Stop'); break; wielkość liter „KEY_UP”: cameraControl('Tilt', 'Stop'); break; wielkość „KEY_DOWN”: cameraControl ('Tilt', 'Stop'); break; case 'KEY_VOLUMEUP': com („Zwiększanie głośności dźwięku”); break; case „KEY_VOLUMEDOWN”: com („Zmniejszenie głośności dźwięku”); break; case „KEY_SLEEP”: com(standbyState? „Dezaktywuj tryb czuwania”: 'Aktywowanie trybu gotowości'); break; wartość domyślna: break; } }}); } init();