Esimerkki
list-menuOnko sinulla palautetta?

Tässä esimerkissä haluamme näyttää sinulle, kuinka kolmannen osapuolen USB-syöttölaitteen (tässä tapauksessa kaukosäätimen) näppäimiä käytetään tiettyjen Cisco-laitteen toimintojen ohjaamiseen.

Näytämme sinulle, kuinka voit käyttää Bluetooth-kaukosäätimen painikkeita (kytketty USB-sovittimen kautta) hallitsemaan toimintoja, kuten valmiustilaa, äänenvoimakkuuden säätöä ja Cisco-kameralaitteen hallintaa. Voit kehittää makron, joka kuuntelee asiaankuuluvia tapahtumia ja suorittaa vastaavat toiminnot Cisco-laitteen sovellusliittymän kautta.

Seuraavassa esimerkissä sinun on syötettävä teksti, joka on kirjoitettu normaalilla kirjasimella. Kursivoitu teksti on Cisco-laitteelta saatu vastaus.

1

Kirjaudu sisään Cisco-laitteeseen SSH: llä. Tarvitset paikallisen järjestel mänvalvo jan käyttäjän.

2

Määritä laite sallimaan kolmannen osapuolen USB-kaukosäätimen käyttö.


       xConfiguration Peripherals InputDevice Mode: On 
      ** end OK  
               

 

Voit tarkistaa, onko kokoonpano Päällä vai Ei käytössä, käyttämällä tätä komentoa:


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

Rekisteröidy saadaksesi palautetta, jotta meille ilmoitetaan, kun kaukosäätimen painikkeita painetaan ja vapautetaan.


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

 

Voit tarkistaa, mihin palautteisiin laite on rekisteröity tämän komennon avulla:


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

Paina ja vapauta kaukosäätimen painiketta tarkistaaksesi, että palautteen rekisteröinti toimii.

Tämä toiminto luo kaksi tapahtumaa: Pain ettu ja Vapautettu. Jos pidät painiketta painettuna, näet Painettu-tapahtum an, kunnes vapautat painikkeen. Sitten lu odaan Rel ease -tapahtuma.

Nämä tapahtumat annetaan, kun painat ja vapautat Enter-näppäintä:

 
                   *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

Kirjoita makro, joka kuuntelee asiaan kuuluvia InputDev ice-tapahtumia ja suorittaa niihin liittyvät toiminnot laitteen sovellusliittymän avulla.

  • Herätä valmius-, äänenvoimakkuuden lisäys- ja äänenvoimakkuuden vähennyspainikkeet eloon. Kun makro näkee tapahtuman, joka sisältää KEY_VOLUMEUP, KEY_VOLUMEDOWN tai KEY_SLEEP, se suorittaa siihen liittyvät komennot.

  • Luo kameran ohjaustoiminto nuolinäppäimille. Haluamme jatkaa kameran liikuttamista niin kauan kuin painiketta painetaan. Kun painike vapautetaan, kameran liike pysähtyy. Kun makro näkee tapahtuman, joka sisältää KEY_LEFT, KEY_RIGHT, KEY_UP tai KEY_DOWN, se suorittaa siihen liittyvät komennot.


       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(); 
     
Oliko tästä artikkelista apua?
Oliko tästä artikkelista apua?