Örnek
list-menuGeri Bildirim?

Bu örnekte, üçüncü taraf bir USB giriş cihazının tuşlarını (bu durumda uzaktan kontrol) bir Cisco aygıtındaki belirli işlevleri kontrol etmek için nasıl kullanacağınızı göstermek istiyoruz.

Bekleme, ses düzeyi ayarlama ve Cisco kamera cihazının kontrolü gibi işlevleri yönetmek için bir Bluetooth uzaktan kontroldeki (USB dongle'a bağlı) düğmelerin nasıl kullanılacağını gösteririz. İlgili olayları dinleyen ve Cisco aygıtının API aracılığıyla ilgili eylemleri yürüten bir makro geliştirebilirsiniz.

Aşağıdaki örnekte, normal yazı tipiyle yazılmış metni girmeniz gerekir. Italik metin, Cisco aygıtından alınan yanıttır.

1

SSH'de Cisco aygıtında oturum açın. Bir yerel yönetici kullanıcıya ihtiyacınız vardır.

2

Aygıtı, üçüncü taraf bir USB uzaktan kontrol kullanımına izin verecek şekilde yapılandırın.

 xConfiguration Periferler Giriş Hizmeti Modu: Açık ** bitiş Tamam  

 

Bu komutu kullanarak yapılandırmanın Açık veya Kapalı olup olmadığını kontrol edebilirsiniz:

 xConfiguration Periferler GirişDevice Modu  *c xConfiguration Periferler GirişDevice Modu: Açık ** uç Tamam  
3

Uzaktan kontrol düğmelerine basıldığında ve serbest bırakıldığında bildirim alabilmeniz için geri bildirim için kaydolun.

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

 

Bu komutu kullanarak cihazın kayıtlı olduğu geri bildirimleri kontrol edebilirsiniz:

 xFeedback listesi /olay/userinterface/inputdevice ** bitiş Tamam  
4

Geri bildirim kaydının çalışıp çalışmadığını kontrol etmek için uzaktan kontroldeki bir düğmeye basın ve bırakın.

Bu eylem iki olay oluşturur: Basılmış ve Serbest Bırakılmış. Bir düğmeye basılı tutunsanız, düğmeyi serbest bırakıncaya kadar Basılan olayı görürsünüz. Sonra Serbest Bırakıldı olayı oluşturulur.

Bu olaylar Enter tuşuna basıldığında ve serbest bırakıldığında verilir:

  *e UserInterface InputDevice Key Action Key: KEY_ENTER *e UserInterface InputDevice Key Action Code: 28 *e UserInterface InputDevice Key Action Type: Pressed ** end *UserInterface InputDevice Key Action Key: KEY_ENTER *e UserInterface InputDevice Anahtar Eylem Kodu: 28 *e KullanıcıInterface InputDevice Anahtar Eylem Türü: Serbest ** bitiş  
5

İlgili InputDevice olaylarını dinleyen ve aygıtın API öğesini kullanarak ilişkili eylemleri gerçekleştiren bir makro yazın.

  • Bekleme, ses artırma ve ses azaltma düğmelerini hayata getirin. Makro KEY_VOLUMEUP, KEY_VOLUMEDOWN veya KEY_SLEEP içeren bir olay gördüğü zaman, ilgili komutları yürütür.

  • Ok tuşları için bir kamera kontrol işlevi oluşturun. Düğmeye basıldığı sürece kamerayı hareket ettirmeye devam etmek istiyoruz. Düğme serbest bırakıldığında kamera hareketi durur. Makro KEY_LEFT, KEY_RIGHT, KEY_UP veya KEY_DOWN içeren bir olay görürse, ilgili komutları çalıştırır.

 const xapi = require('xapi'); function com(command, args=') { xapi.command(command, args), log(command + ' ' + JSON.stringify(args)); } işlev günlüğü(olay) { console.log(olay), } function notify(message) { xapi.command('UserInterface Message TextLine Display', { Metin: mesaj, süre: 3 }); } işlev cameraControl(motor, yön, cameraId='1') { com('Camera Ramp', { 'CameraId': cameraId, [motor]: direction }); function init() { let standbyState; xapi.status.get('Standby').then(state) => {standbyState = durum. Durum === 'Kapalı' mı? yanlış: doğru; }); xapi.status.on('Beklemede', durum => { bekleme Durumu = durum. Durum === 'Kapalı' mı? yanlış: doğru; }); xapi.event.on('UserInterface InputDevice Tuş Eylemi', => { tuşuna basın (basın. Tür == "Basıldı") { anahtar (basın. Anahtar) { case "KEY_LEFT": cameraControl('Pan', 'Sol'); break; case "KEY_RIGHT": cameraControl('Pan', 'Sağ'); break; case "KEY_UP": cameraControl('Tilt', 'Up'); break; case "KEY_DOWN": cameraControl('Tilt', 'Down'); break; varsayılan: break; } } } değilse (basın. Tür == "Serbest Bırakıldı") { anahtar (basın. Anahtar) { case "KEY_LEFT": cameraControl('Pan', 'Stop'); break; case "KEY_RIGHT": cameraControl('Pan', 'Durdur'), "KEY_UP": cameraControl('Tilt', 'Stop'); break; case "KEY_DOWN": cameraControl('Tilt', 'Stop'); break; case 'KEY_VOLUMEUP': com('Ses Ses Düzeyi Artışı'); 'KEY_VOLUMEDOWN': com('Ses Düzeyi Azaltma'); break; case 'KEY_SLEEP': com(standbyState? 'Beklemede Devre Dışı Bırak' : 'Yedek Etkinleştirme'); Mola; varsayılan: kesme; } } }); } init(); 
Bu makale yararlı oldu mu?
Bu makale yararlı oldu mu?