Bekleme işlevini kontrol etmek, sesi artırmak ve uzaktan kontrol azaltmak ve bir oda veya masa cihazının kamerasını kontrol etmek için Bluetooth bağlantı cihazının (USB dongle'lı) tuşlarını (USB dongle ile) nasıl kullanabileceğimi göstermektedir. İlgili etkinlikleri dinleyen ve odanın veya masa cihazınızın API'sini kullanarak ilişkili işlemleri özetlerken bir makro oluştururuz.

Bu makalede Üçüncü Taraf USB Giriş Cihazı özelliği açıklanmıştır .

Aşağıdaki örnekte, normal yazı tipiyle yazılan metni girmeniz gerekir. Italik metni, oda veya masa cihazından alınan yanıttır.

1

SSH üzerinde oda veya masa cihazında oturum açın. Yerel bir yönetici kullanıcıya ihtiyacınız var.

2

Cihazı, üçüncü taraf bir USB bağlantı cihazının kullanımına izin verecek uzaktan kontrol.


       xConfiguration Peripherals InputDevice Mode: On 
      ** end OK  
               

 

Bu komutu kullanarak yapılandırmanın Kapalı veya Kapalı olup olduğunu kontrol edin:


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

Geri bildirim için kaydolmanız gerekir, bu nedenle uzaktan kontrol düğmesine basıldığında ve yayınıldığında bildirim alalarız.


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

 

Bu komutu kullanarak cihazın hangi geri bildirime kayıtlı olduğunu kontrol edebilirsiniz:


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

Geri bildirim kaydının çalıştığını kontrol etmek için uzaktan kontrol düğmesine basın ve bırakın.

Bu eylem iki etkinlik oluşturmaktadır: Basıldı ve Bırakıldı. Bir düğmeye bastığınızda ve basılı tutarsanız, düğmeyi serbest bırakana kadar Basılmış olay'a basın. Ardından Sürüm etkinliği oluşturulur.

Bu etkinlikler, Enter tuşuna basılarak ve bırakılarak verilen etkinliklerdir:

 
                   *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

İlgili GirişCihaz olaylarını dinleyen ve cihazın API'sini kullanan ilişkili işlemleri kullanan bir makro yazın.

  • Bekleme, ses seviyesi ve ses kısma düğmelerini ömrüne getirin. Makro, KEY_VOLUMEUP,_KEY VOLUMEDOWN veya KEY_SLEEP içeren bir etkinlik görüyorsa ilgili komutları yürütür.

  • Ok tuşları için kamera kontrol işlevi oluşturun. Düğmeye basıldığında kamerayı hareket ettirin. Düğme yayınıldığında kamera hareket durur. Makro, ANAHTAR SOL, ANAHTAR SAĞ_, KEY_UP veya KEY__DOWN içeren bir etkinlik görüyorsa ilgili komutları yürütür.


       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();