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

Exemple pour le 2018/12/06
$ 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.

Exemple pour le 2018/12/06
$ 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…)

Exemple pour les temperatures
$ cl /home/solar/solar_iabg_temperatures.cl

Raffraichissement automatique

Caution
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.
Note

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