Örnek
list-menuGeri Bildirim?

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

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

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

1

SSH üzerinden Cisco cihazında oturum açın. Yerel bir yönetici kullanıcısına ihtiyacınız var.

2

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


       xConfiguration Peripherals InputDevice Mode: On 
      ** end OK  
               

 

Yapılandırmanın Açık veya Kapalı olup olmadığını şu komutu kullanarak kontrol edebilirsiniz:


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

Geri bildirim için kaydolun, böylece uzaktan kumanda düğmelerine basıldığında ve serbest bırakıldığında bilgilendiriliriz.


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

 

Bu komutu kullanarak cihazın hangi geri bildirimleri için kayıtlı olduğunu kontrol edebilirsiniz:


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

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

Bu eylem iki olay oluşturur: Basıldı ve Ser best Bır akıldı. Bir düğmeyi basılı tutarsanız, düğmeyi bırakana kadar Pressed olayını görürsünüz. Ardından Yay ınlanan olayı oluşturulur.

Enter tuşuna basılıp bırakıldığında bu olaylar verilir:

 
                   *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 InputDevice olaylarını dinleyen ve cihazın API'sini kullanarak ilişkili eylemleri gerçekleştiren bir makro yazın.

  • Bekleme, ses açma ve ses kısma düğmelerini hayata geçirin. 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 bir kamera kontrol işlevi oluşturun. Düğmeye basıldığı sürece kamerayı hareket ettirmeye devam etmek 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(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(); 
     
ody>
Bu makale yararlı oldu mu?
Bu makale yararlı oldu mu?