2-Fonctions

Chaque paquet transféré d'un processeur à l'autre est destiné à une des 'fonction' décrites ici. Le code fonction est un byte souvent en minuscule.

Processeurs
...

Les fonctions sont regroupées par processeur et les lettres majuscules sont réservées aux processeurs et les lettres minuscules aux fonctions.

  • T le centre de tri des messages
  • S le hardware de l'émetteur (parfois S et T sont réunis dans un seul processeur)
  • C le calcul des positions de gouverne et la communication avec U
  • R le hardware de transmission , par exemple Jeti TU2 ou un module Lora
  • U est l'interface utilisateur et comporte des fonctions lourdes mais avec un temps de réponse à échelle humaine. C'est un processeur Linux.
    La façon de regrouper est très libre: toute fonction en développement qui n'a pas besoin du hardware d'un microprocesseur est assignée à 'U' qui est lui-même dans le laptop

Fonctions destinées à 'S' ou 'T'
...

Cette façon de diviser les traitements par fonction permet de bien structurer le programme.

code 'a', 'h', 's' : demande pour le hardware 'S'
...

contenu : le premier byte définit le traitement demandé pour le processeur qui a accès au hardware (T ou séparé S)

  • b'a' = demande de lecture des organes de commande (DIO,ADC, horloge....par SPI ou I2C) et envoi du message 'c' au calcul, qui renvoie périodiquement cette demande
  • b'h' demande d'arrêt par coupure de l'alimentation après un délai (qui dépend du processeur U : si c'est Linux il faut attendre 20 secondes) (provient de U)
  • b's' message à afficher sur le lcd (qui est optionnel) (provient de U)

noter que le démarrage de chaque processeur est automatique dès la mise sous tension. La mise sous tension se fait par un bouton d'allumage et ensuite le processeur T maintient cette tension par une pin

Fonctions destinées à 'C'
...

code 'c' :Calcul des gouvernes
...

input : toutes les lectures du hardware
traitement:

  • convertir les données du hardware en mesures calibrées et en format adapté à Python
  • calculer les positions des gouvernes
  • pour chaque paramètre une valeur est disponible en fonction de la phase de vol ou d'autres variables logiques
    output:
  • paquet code 'v' , contient la durée de l'impulsion pour chaque canal ppm
  • paquet code 'm' = les messages à dicter, les 'bips' ...
  • paquet 'd' = données qui ont été demandées par le processeur 'U' (voir la fonction q)
  • paquet 'z' = logging, erreur pour 'U'

code 'p' : valeur d'un paramètre
...

Après modification d'un ou plusieurs paramètres par 'U'.
voir 4.1-Organisation-Calcul

code 'q' : query
...

Au cours d'un dialogue, le processeur 'U' a besoin de données et interroge 'C' qui répond par un paquet 'd'

Fonctions destinées à 'R'
...

code 'v' Module de transmission
...

  • le message comporte les valeurs ppm
  • traitement : remplacer les valeurs dans la boucle perpétuelle qui recharge le PIO ppm
  • le processeur de transmission lit également en permanence le signal de télémétrie , lorsqu'il est reçu il envoie au processeur U
    • le message EX
    • le message JetiBox SI il est modifié

Fonctions destinées à 'U'
...

'U' réalise tous les dialogues, les confirmations vocales pour tout changement de switch , d'une façon générale tout ce qui se passe au rythme 'humain'

code 'm' messages
...

Le programme de calcul transfère à 'U' toutes les données reçues de 'S' et les quelques variables logiques qu'il a calculé.

code 'd' data
...

Le dialogue par lcd ou par le browser interroge 'C' (code 'q') pour obtenir certaines données , par exemple des variables de calcul.

code 'z' logging
...

Un code distingue les diverses espèces :
0 = tout message d'erreur