jeudi 1 octobre 2009

Projet ADS-B: Firmware V0.7

Le mécanisme de vérification de l'intégrité des trames - option CRC activée - est désormais totalement fonctionnel.


Quelques minutes de trafic suffisent pour renseigner la table avec les codes ICAO extraits des trames DF17 (code certain) et DF11 (code probablement bon), et ainsi vérifier l'extraction du code du champ AP des autres trames.



Cette table contient 50 entrées, chaque entrée étant purgée après 5mn d'inactivité constatée sur le code ICAO associé.



Une nouvelle option permet de surveiller l'apparition d'un code ICAO préalablement enregistré en mémoire. Un message spécifique est émis lors de l'apparition de ce code sous réserve que l'option ait été activée.

Les commandes gérées par cette version sont les suivantes:
- 'CTRL-Q': XON
- 'CTRL-S': XOFF
- '?': Identification de la version
- 'o': Etat des options
- 'R': Reset à chaud
- 'S': Remise à 0 des compteurs
- 's': Envoi des compteurs
- 'C': Effacement de la table des codes ICAO
- 'c': Envoi du contenu de la table
- 'E': Effacement du code ICAO à surveiller
- 'e': Entrée du code ICAO à surveiller
- 'i': Envoi du code ICAO surveillé
- 'A': Activation de l'option surveillance
- 'a': Désactivation de l'option surveillance
- 'F': Activation de l'option surveillance
- 'f': Désactivation de l'option surveillance
- 'X': Activation de l'option 'Données étendues'
- 'x': Désactivation de l'option 'Données étendues'

Il me reste un problème à résoudre, la gestion des commandes est réalisée dans la même boucle que la boucle d'acquisition des trames. Cette boucle étant actuellement bloquante en l'absence de trames, aucune commande ne peut être transmise. Je vais donc devoir passer la gestion des commandes sous interruption en priorité basse, la priorité haute étant réservée à la gestion du cycle de vie de la table de codes, ceci uniquement lorsque l'option de contrôle des CRC est activée.

Les meilleures performances seront obtenues en désactivant les modes 'CRC' et 'Données étendues', le microcontrôleur n'ayant aucun autre traitement à effectuer que d'attendre une trame et de la retransmettre codée sus la forme d'un chaîne hexadécimale sur la liaison série à 115200 Bauds.

Aucun commentaire: