Bekleme, ses ayarı ve Cisco kamera cihazının kontrolü gibi işlevleri yönetmek için Bluetooth uzaktan kumandasındaki (bir USB donanım kilidi aracılığıyla bağlanan) düğmeleri nasıl kullanacağınızı gösteriyoruz. İlgili olayları dinleyen ve ilgili eylemleri Cisco cihazının API aracılığıyla yürüten bir makro geliştirebilirsiniz.

Üçüncü taraf USB giriş cihazı özelliği bu makalede açıklanmıştır .

Aşağıdaki örnekte, normal yazı tipiyle yazılmış olan metni girmeniz gerekir. İtalik metin, Cisco cihazından alınan yanıttır.

1

SSH üzerinden Cisco cihazında oturum açın. Yerel yönetici kullanıcıya ihtiyacınız vardır.

2

Cihazı, üçüncü taraf USB uzaktan kumandanın kullanımına izin verecek şekilde yapılandırın.

 xConfiguration Çevre Birimleri Giriş Aygıtı Modu: Açık ** sonlandır Tamam  

 

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

 xYapılandırma Çevre Birimleri Giriş Aygıtı Modu  *c xYapılandırma Çevre Birimleri Giriş Aygıtı Modu: Açık ** son Tamam  
3

Geri bildirim için kaydolun, böylece uzaktan kumanda düğmeleri basıldığında ve serbest bırakıldığında bildirim alırız.

 xFeedback Kaydı /event/userinterface/inputdevice  ** end OK  

 

Cihazın hangi geri bildirimler için kayıtlı olduğunu aşağıdaki komutu kullanarak kontrol edebilirsiniz:

 xFeedback list /event/userinterface/inputdevice ** sonlandır Tamam  
4

Geri bildirim kaydının çalıştığından emin olmak için uzaktan kumandada bir düğmeye basın ve serbest bırakın.

Bu eylem iki olay oluşturur: Basılı ve Serbest. Bir düğmeyi basılı tutarsanız düğmeyi serbest bırakana kadar Basılı olayını görürsünüz. Ardından Serbest olayı oluşturulur.

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

  *e Kullanıcı Arayüzü Giriş Cihazı Tuşu İşlem Tuşu: KEY_ENTER *e Kullanıcı Arayüzü Giriş Cihazı Tuşu İşlem Kodu: 28 *e Kullanıcı Arayüzü Giriş Cihazı Tuşu İşlem Türü: Basıldı ** end *e Kullanıcı Arayüzü Giriş Cihazı Tuşu İşlem Tuşu: KEY_ENTER *e Kullanıcı Arayüzü Giriş Cihazı Tuşu İşlem Kodu: 28 *e Kullanıcı Arayüzü Giriş Cihazı Tuşu Eylem Türü: Yayınlandı ** son  
5

İlgili GirişAygıtı olaylarını takip edip cihazın API'sini kullanarak ilgili eylemleri gerçekleştiren bir makro yazın.

  • Bekleme, ses açma ve ses kısma düğmelerinin çalışmalarını sağlayın. Makro; KEY_VOLUMEUP, KEY_VOLUMEDOWN veya KEY_SLEEP içeren bir olay gördüğünde ilgili komutları yürütür.

  • Ok tuşları için kamera kontrol işlevi oluşturun. Düğme basılı tutulduğu sürece kameranın hareket etmeye devam etmesini istiyoruz. Düğme bırakıldığında kamera hareketi durur. Makro; KEY_LEFT, KEY_RIGHT, KEY_UP veya KEY_DOWN içeren bir olay gördüğünde ilgili komutları yürütür.

 const xapi = require('xapi'); function com(komut, args='') { xapi.command(komut, args); log(command + ' ' + JSON.stringify(args)); } function log(olay) { console.log(olay); } function notify(message) { xapi.command('Kullanıcı Arayüzü Mesajı TextLine Display', { Text: message, sure: 3 }); } function kameraKontrol(motor, yön, kameraId='1') { com('Kamera Rampası', { 'KameraId': kameraId, [motor]: yön }); } function init() { let standbyState; xapi.status.get('Bekleme').then((durum) => {standbyState = state.State === 'Kapalı' ? false: true; }); xapi.status.on('Bekleme', durum => { beklemeDurumu = durum.Durum === 'Kapalı' ? false: true; }); xapi.event.on('Kullanıcı Arayüzü Giriş Aygıtı Tuş Eylemi', basın => { if (press.Type == "Basılı") { switch (press.Key) { case "KEY_LEFT": kameraKontrol('Pan', 'Sol '); ara; durum "KEY_RIGHT": kameraKontrol('Pan', 'Sağ'); ara; durum "KEY_UP": kameraKontrol('Eğim', 'Yukarı'); ara; durum "KEY_DOWN": kameraKontrol('Eğim) ', 'Aşağı'); break; default: break; } } else if (press.Type == "Released") { switch (press.Key) { case "KEY_LEFT": kameraKontrol('Pan', 'Stop') ; ara; durum "KEY_RIGHT": kameraKontrol('Pan', 'Durdur'); ara; durum "KEY_UP": kameraKontrol('Eğme', 'Durdur'); ara; durum "KEY_DOWN": kameraKontrol('Eğme', 'Durdur'); ara; durum 'KEY_VOLUMEUP': com('Ses Sesi Artışı'); ara; durum 'KEY_VOLUMEDOWN': com('Ses Sesi Azalması'); ara; durum 'KEY_SLEEP': com(standbyState? 'Beklemeyi Devre Dışı Bırak' : 'Beklemeyi Etkinleştir'); kırmak; varsayılan: ara; } } }); } içinde();