Procédure de traitement en temps réel
Acquisition de la TM
$ GET_TM_RT yyyy-mm-dd [hh:mm:ss]
Sur un premier terminal, on lance l’acquisition de la TM en temps-réel.
Il faut fournir la date de la journée, sous la forme yyyy-mm-dd, pour créer un fichier L0 :
/DATA/SOLAR/DATA/L0/yyyymmdd/solo_L0_swa-pas-tm_yyyymmdd_V00.bin
On peut spécifier un temps hh:mm:ss afin de ne commencer l’acquisition à cette heure
$ GET_TM_RT 2018-12-06
$ GET_TM_RT 2018-12-06 10:00:00
Production des CDF L1
$ RUN_RT yyyy-mm-dd
Sur un second terminal, lancer le traitement de niveau 1 en boucle.
Là-aussi, il faut fournir la date de la journée à traiter.
$ RUN_RT 2018-12-06
Boucle infinie :
-
production des CDF L1 pour la journée spéficiée
-
affichage statistiques enregistrements fichiers CDF
-
délai d’attente (qlq secondes)
Visualisation des données CDF
$ cl nom-vue.cl
Sur un troisième terminal, lancer le logiciel de visualisation.
On peut ouvrir une vue par défaut en le spécifiant sur la ligne de commande.
On peut ensuite ouvrir plusieurs fenêtres : File>Open…)
$ cl /home/solar/solar_iabg_temperatures.cl
Raffraichissement automatique
Obsolete
Il suffit maintenant de lancer cl -rt |
$ pythom - m refresh
Sur un quatrième terminal, on peut optionnellement lancer un utilitaire qui permet de vérifier si les fichiers L1 ont été modifiés et demander le raffraichissement automatique des vues cl.
Là-aussi, une boucle infinie qui vérifie si les fichiers utilisés par cl ont été modifiés.
Description des outils
Récupération données sur serveur
Script
software/python/get_socket.py
Command usage
$ python -m get_socket [option] <host>
With [option] from :
-h, --help show this help message and exit
--hex Create hexadecimal output file
--bin Create binary output file
-o OUTPUT_FILE, --output=OUTPUT_FILE
Set output file name
-s START_TIME, --start=START_TIME
Select only data after a given start-time
Where <host> should be the IP address or alias of the server to connect to.
Default port used to connect to the server is 2355. Defined in GLOBAL_PORT variable When using -s option, connect to the port 2366 Defined in SELECT_PORT variable |
Example of use
Connect to localhost and create binary file output.bin :
$ python -m get_soket localhost
Connect to a given IP and create hexadecimal file output.bin :
$ python -m get_socket --hex 10.121.12.1
Change the name of binary output file :
$ python -m get_socket
--output=/DATA/SOLAR/DATA/L0/20180808/SO_SWA_PAS_L0_TLM_20180806.bin
Download data starting at a given date and time :
$ python -m get_socket
--start=20181129T120000Z
--output=/DATA/SOLAR/DATA/L0/solo_L0_swa-tm_20181119_V00.bin
192.168.100.100
Simulation du serveur de test
Pour tester le fonctionnement, une simulation a été mise en place.
Envoi des trames CSSDS
Utilisation de la commande netcat (nc) pour simuler le serveur de données.
$ cat /DATA/SOLAR/DATA/L0/20180806/solo_L0_iswa-pas-tm_20180806_V00.bin | nc -l -p 2355
Cette commande va etablir un socket sur le port 2355 ed localhost, et attendre des connexions pour envoyer ensuite le contenu du fichier L0 sur ce socket.
Ajout d’un délai entre l’envoi de chaque paquets :
$ cat solo_L0_swa-pas-tm_20180806_V00.bin | nc -l -p 2355 -d 10ms
Réception des données
Cote client, un script python se charge de la lecture sur le port 2355 de localhost, et reconstitue des paquets CCSDS en lisant les entetes H1 et H2, qui contiennent la taille du paquet.
Il fait un flush apres l’ecriture de chaque paquet, et genere un fichier L0 coherent.
$ python -m get_socket localhost