Lancement script GNU Radio au boot

Auto démarrage de GNU Radio

Avec une application GNU Radio (3.7) tournant sur un Raspberry PI ou un Orange PI, il peut être intéressant de lancer le script Python généré par GNU Radio Companion au boot. Si vous mettez le lancement du programme python dans une tache crontab ou le fichier /etc/rc.local , le programme démarrera et s’arrêtera immédiatement. Vous perdrez des heures à comprendre pourquoi….

Structure du fichier Python

Editez le script généré par GNU Radio companion. Il comprend une ‘class’ portant le nom du fichier et en fin la fonction principale de lancement main(). Exemple pour le fichier ‘remote_rx_ssb_v1.py’.

La source du problème vient que le programme une fois lancé attend un ‘Enter’ pour s’arrêter. Celui-ci apparait au lancement dans un Crontab.
Voir le message ‘Press Enter to Quit’.

Afin de s’en affranchir, il ya deux solutions:

  • modifier le bloc option en remplaçant ‘Prompt for Exit’ par ‘Run to Completion’.
  • ne pas modifier le fichier généré par GNU Radio Companion afin de pouvoir le modifier si on veut faire évoluer le traitement. On va créer un script python de lancement qui reprendra la ‘class’. Dans le même dossier ou se trouve le fichier python de gnu radio créer le fichier ‘gnu_radio_launcher.py’. qui l’importera.
import remote_rx_ssb_v1

def my_main(top_block_cls=remote_rx_ssb_v1.remote_rx_ssb_v1, options=None):
    tb = top_block_cls()
    tb.start()
    tb.wait()
if __name__ == '__main__':
    my_main()

Appelez ce fichier dans un crontab au lancement et le GNU-Radio sera lancé.

Articles traitant de GNU Radio

F1ATB André

Radio Amateur - Domotique - Photovoltaïque

Vous aimerez aussi...