예제
list-menu피드백이 있습니까?

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

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

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

1

SSH에서 Cisco 장치에 로그인합니다. 로컬 관리 사용자가 필요합니다.

2

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

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

 

다음 명령을 사용하여 구성이 On 또는 Off인지 확인할 수 있습니다.

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

피드백을 등록하면 리모컨 버튼을 눌렀다 뗄 때 알림을 받을 수 있습니다.

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

 

이 명령을 사용하여 디바이스가 등록된 피드백을 확인할 수 있습니다.

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

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

이 작업은 Pressed Released 라는 두 개의 이벤트를 생성합니다. 단추를 누르고 있으면 단추를 놓을 때까지 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(); 
이 문서가 도움이 되었습니까?
이 문서가 도움이 되었습니까?