블루투스 장치(USB 동그라미)의 키를 사용하여 원격 제어 기능을 제어하고, 볼륨을 높이거나 낮출 수 있으며, Room 또는 데스크 장치의 카메라를 제어하는 방법을 안내합니다. 관련된 이벤트를 수신하는 매크로를 만들고, 룸 또는 데스크 장치의 API를 사용하여 연계된 작업을 실시합니다.

제3자 USB 입력 장치 기능은 이 문서에 설명되어 있습니다 .

다음 예제에서는 보통 글꼴로 쓰여진 텍스트를 입력해야 합니다. 이탈ics의 텍스트는 룸 또는 데스크 장치에서 수신하는 응답입니다.

1

SSH에서 룸 또는 데스크 장치에 로그인합니다. 로컬 관리 사용자가 필요합니다.

2

타사의 USB 장치 사용을 허용하도록 장치를 원격 제어.


       xConfiguration Peripherals InputDevice Mode: On 
      ** end OK  
               

 

다음 명령어를 사용하여 구성이 On 또는 Off로 설정되어 있는지 확인할 수 있습니다.


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

피드백에 등록하십시오. 이벤트 버튼을 원격 제어 때 알림을 보내드립니다.


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

 

이 명령어를 사용하기 위해 장치가 등록된 피드백을 확인할 수 있습니다.


        xFeedback list 
       /event/userinterface/inputdevice ** end OK  
                  
4

피드백 등록이 작동하는지 확인 원격 제어 버튼을 누르고 릴리즈합니다.

이 작업은 두 개의 이벤트를 생성합니다. 을(를) 누르 고 릴리스 합니다. 버튼을 누르고 홀드하면 버튼을 릴리즈할 때까지 누르는 이벤트가 표시됩니다. 그러면 1 의 이벤트가 생성됩니다.

해당 이벤트는 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

관련된 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(command, args); log(command + ' ' + JSON.stringify(args)); } function log(event) { console.log(event); } function notify(message) { xapi.command('UserInterface Message TextLine Display', { Text: message, duration: 3 }); } function cameraControl(motor, direction, cameraId='1') { com('Camera Ramp', { 'CameraId': cameraId, [motor]: direction }); } function init() { let standbyState; 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('UserInterface InputDevice Key Action', press => { if (press.Type == "Pressed") { switch (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; } } else if (press.Type == "Released") { switch (press.Key) { 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('Audio Volume Increase'); break; case 'KEY_VOLUMEDOWN': com('Audio Volume Decrease'); break; case 'KEY_SLEEP': com(standbyState ? 'Standby Deactivate' : 'Standby Activate'); break; default: break; } } }); } init();