이 기능은 터치 컨트롤러 또는 터치 사용자 인터페이스의 기능을 보완 하기 위한 것입니다. 이를 대체 하기 위한 것이 아닙니다.

적용 사례:

  • 강의실과 강의 중에 작은 리모컨을 사용하여 대기 모드에서 장치를 깨울 수 있습니다. 리모컨을 사용하여 표시할 입력 소스를 선택하는 것도 편리할 수 있습니다.

  • 터치 컨트롤러를 사용할 수 없는 상황에서 카메라 보기(이동(상하/좌우), 기울임 및 확대/축소) 조정 병원의 수술실이 한 예입니다.

기능 개요

USB 입력 장치의 단추를 누르면 Cisco 장치의 API 내에서 동작이 트리거됩니다. 타사의 매크로 또는 외부 제어 장치를 설정하여 이러한 동작을 감지하고 그에 따라 대응할 수 있습니다. 이 기능은 회의실 내 제어 단추가 작동하는 방식과 유사합니다. 또한 웹후크를 통해 또는 SSH 세션 내에서 직접 이러한 작업을 모니터링할 수 있습니다.

선택할 수 있는 기존 작업 라이브러리는 제공되지 않습니다. 이벤트에 대한 응답으로 발생해야 하는 특정 작업을 정의하고 설정해야 합니다. 예:

  • 볼륨 크게 키를 누를 때 Cisco 장치의 볼륨을 높입니다.

  • 절전 키를 눌렀을 때 Cisco 장치를 대기 모드로 전환합니다.

구성, 이벤트 및 상태

이 문서에서 참조하는 구성 및 상태는 디바이스의 로컬 웹 인터페이스와 API 모두에서 사용할 수 있습니다. 웹 인터페이스에 액세스하고 API 사용하는 방법에 대한 자세한 내용은 장치 구성 문서를 참조하십시오.

장치의 웹 인터페이스가 열리면 설정을 클릭합니다 . Configurations(구성) 에서 Peripherals> InputDevice Mode(주변 장치 입력 장치 모드 )를 On(켜기 )으로 변경합니다 . 타사 USB 입력 장치에 대한 지원은 기본적으로 비활성화되어 있습니다.

버튼을 눌렀다 놓으면 PressedReleased 이벤트가 생성됩니다.

 *e UserInterface InputDevice 키 동작 키: <키 이름> *e UserInterface InputDevice 키 동작 코드: <키의 ID> *e UserInterface InputDevice 키 동작 유형: 누름 ** 끝 *e UserInterface InputDevice 키 동작 키: <키 이름> *e UserInterface InputDevice 키 동작 코드: <키의 ID> *e UserInterface InputDevice 키 동작 유형: 출시 ** 끝 

이벤트를 수신하려면 InputDevice 이벤트의 피드백을 등록해야 합니다.

 x피드백 레지스터 /event/UserInterface/InputDevice ** 끝 

Cisco 장치가 타사 주변 장치를 감지하면 상태 아래 및 주변 장치 > ConnectedDevice 나열됩니다. 타사 장치는 여러 장치로 보고될 수 있습니다.

추가 정보

사용자 지정 가이드에서 타사 입력 장치 사용에 대한 자세한 내용을 참조하십시오. 최신 버전을 선택합니다.

Cisco 지원(TAC)은 매크로를 비롯한 타사 코드의 디버깅을 지원하지 않습니다. 매크로 및 타사 코드에 대한 도움말이 필요한 경우 Cisco RoomOS for Collaboration Devices 를 확인하십시오 . 이 페이지에서 매크로 및 확장의 추가 예를 확인하십시오 .

예제

이 예에서는 타사 USB 입력 장치(이 경우 리모컨)의 키를 사용하여 Cisco 장치의 특정 기능을 제어하는 방법을 보여 드리고자 합니다.

USB 동글을 통해 연결된 Bluetooth 리모컨의 단추를 사용하여 대기, 볼륨 조절 및 Cisco 카메라 장치 제어와 같은 기능을 관리하는 방법을 보여 드립니다. Cisco 장치의 API 통해 관련 이벤트를 수신하고 해당 작업을 실행하는 매크로를 개발할 수 있습니다.

다음 예제에서는 일반 글꼴로 작성된 텍스트를 입력해야 합니다. 기울임꼴로 표시된 텍스트는 Cisco 장치에서 받은 응답입니다.

1

SSH에서 Cisco 장치에 로그인합니다. 로컬 관리자 사용자로 로그인해야 합니다.

2

타사 USB 리모컨을 사용할 수 있도록 장치를 구성합니다.

 xConfiguration 주변 장치 입력 장치 모드: 켜기 ** 끝 확인  

 

다음 명령을 사용하여 구성이 켜져 있는지 꺼져 있는지 확인할 수 있습니다.

 xConfiguration 주변 장치 입력 장치 모드  *c xConfiguration 주변 장치 입력 장치 모드: 켜기 ** 끝 확인  
3

리모컨 버튼을 눌렀다 놓을 때 알림을 받을 수 있도록 피드백에 등록합니다.

 xFeedback 레지스터 /event/userinterface/inputdevice  ** 끝 확인  

 

다음 명령을 사용하여 장치가 등록된 피드백을 확인할 수 있습니다.

 xFeedback 목록  / 이벤트 / 사용자 인터페이스 / 입력 장치 ** 끝 확인  
4

피드백 등록이 작동하는지 확인하려면 리모컨의 버튼을 눌렀다가 놓습니다.

이 동작은 PressedReleased의 두 이벤트를 생성합니다. 버튼을 길게 누르면 버튼을 놓을 때까지 Pressed 이벤트가 표시됩니다. 그런 다음 Released 이벤트가 생성됩니다.

이러한 이벤트는 Enter 키를 눌렀다 놓을 때 발생합니다.

  *e 사용자 인터페이스 입력 장치 키 동작 키: KEY_ENTER *e 사용자 인터페이스 입력 장치 키 동작 코드: 28 *e 사용자 인터페이스 입력 장치 키 동작 유형: 누름 ** 끝 *e 사용자 인터페이스 입력 장치 키 동작 키: KEY_ENTER *e 사용자 인터페이스 입력 장치 키 동작 코드: 28 *e 사용자 인터페이스 입력 장치 키 동작 유형: 해제됨 ** 끝  
5

관련 InputDevice 이벤트를 수신하는 매크로를 만들고, 장치의 API를 사용하여 관련 작업을 수행합니다.

  • 대기 모드, 볼륨 높이기 및 볼륨 낮추기 버튼을 활성화합니다. 매크로는 KEY_VOLUMEUP, KEY_VOLUMEDOWN 또는 KEY_SLEEP을 포함하는 이벤트를 확인하면 관련 명령을 실행합니다.

  • 화살표 키에 대한 카메라 제어 기능을 만듭니다. 버튼을 누르고 있는 동안 카메라를 계속 움직이게 하려고 합니다. 버튼에서 손을 떼면 카메라 이동이 멈춥니다. 매크로가 KEY_LEFT, KEY_RIGHT, KEY_UP 또는 KEY_DOWN을 포함하는 이벤트를 확인하면 관련 명령을 실행합니다.

 const xapi = require('xapi'); function com(command, args='') { xapi.command(명령, 인수); log(명령 + ' ' + JSON.stringify(args)); } function log(event) { console.log(event); } function notify(message) { xapi.command('사용자 인터페이스 메시지 TextLine Display', { 텍스트: 메시지, 기간: 3 }); } function cameraControl(모터, 방향, cameraId='1') { com('카메라 램프', { 'CameraId': cameraId, [모터]: 방향 }); } function init() { let standbyState; xapi.status.get('Standby').then((상태) => {standbyState = 상태. 상태 === '꺼짐'? 거짓: 참; }); xapi.status.on('Standby', state => { standbyState = 상태. 상태 === '꺼짐'? 거짓: 참; }); xapi.event.on('UserInterface InputDevice Key Action', press => { if (press. 유형 == "누름") { 스위치 (누름. Key) { case "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; } } 그렇지 않으면 (. 유형 == "해제됨") { 스위치(누름. 키) { 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('오디오 볼륨 증가'); break; case 'KEY_VOLUMEDOWN': com('오디오 볼륨 감소'); break; case 'KEY_SLEEP': com(standbyState? '대기 비활성화' : '대기 활성화'); 휴식; 기본값: break; } } }); } init();