Pour illustrer ce que permettra de faire la très proche version 0.16 et le système de scripts, voici un petit exemple : On cherche à faire un scanner de la bande FM, on va balayer de 88 à 108 Mhz, au pas de 100 KHz et s’arrêter à chaque fois qu’on trouve un signal assez fort.
Voici le script associé :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
/*--------------------------------------------*/ /* Exemple de script pour scanner la bande FM */ /* demo gkSDR - (c) F4GKR */ /*--------------------------------------------*/ var i=0 ; var f = 0.0 ; var level = 0 ; // mettre le rxA en marche gksdr.startRX(); // laisser le temps au récepteur de s'initialiser - attendre 300 millisecondes gksdr.waitFor(300) ; // en fonction de la fréquence actuelle, on regarde s'il faut retuner ou pas f = gksdr.getRxFrequency(); if( (f>108.0) || (f<88.0)) { // on se positionne sur 88 MHz gksdr.setRxFrequency( 88.0 ); } // on fixe le pas en fréquence à 100 KHz = 100 000 Hz gksdr.setStepSize( 100000.0 ); // on se met en wfm ... en demandant le démodulateur NBFM // mais on positionne la bande sur 100 Khz = 2*50 gksdr.setDemodulator( 'NBFM',0,50000); // scan for( ;; ) { gksdr.stepUp() ; gksdr.waitFor( 300 ); level = gksdr.getSMeter(); if( level > -75 ) break ; f = gksdr.getRxFrequency(); if( f > 108.0 ) { gksdr.setRxFrequency( 88.0 ); } } |
Le script est sauvegardé dans le fichier “scripts/scanfm.js”. Le fichier de configuration gkSDR.conf est modifié en conséquence comme suit :
1 2 3 4 5 |
[Interface] ... ACTION_2=./scripts/scann_fm.js TEXT_2=Scanner FM ... |
Le programme affiche alors un bouton (le bouton numéro 2) :
Il n’y a plus qu’à cliquer sur le bouton pour enclencher le scanner, qui s’arrêtera quand le S-mètre dépassera le seuil fixé ligne 30 et suivantes :
1 2 3 |
level = gksdr.getSMeter(); if( level > -75 ) break ; |