jeudi 24 septembre 2009

Projet ADS-B: Vérification des CRC - 2

Le taux d'erreur constaté lors de mes essais d'hier avait pour origine une erreur dans le calcul, lequel ne tenait pas compte de la possibilité que les champs CL et IC puissent ne pas être nuls. Ajoutons à cela une erreur dans le calcul du contrôle d'une trame DF17. Après correction le taux d'erreur tombe presque à zéro !

Framing ErrorsReceivedCRC KODF17
17728881101023
338461757512150
407352144722666
503352796933394
515992906933524

Le compteur 'CRC OK' a été modifié pour désormais compter les valeurs de contrôle probablement erronées, c'est-à-dire, celles ne passant pas le crible d'une distance inférieure à 128. Les trames ne comportant pas de champ de contrôle sont considérées toujours bonnes.

Je n'ai toujours pas finalisé le format de sortie. Pour l'instant, les trames sont transmises comme suit:

 [Indicateur][Message][Terminateur]CRLF

    avec

IndicateurMessageTerminateurCommentaires
=Version du logiciel;Transmis en réponse à la commande?CRLF
#Compteurs internes;Transmis en réponse à la commande sCRLF
+Trame CRC valide;Transmis en hexadécimal. La somme de contrôle est a priori valide.
-Trame CRC invalide;Transmis en hexadécimal. La somme de contrôle est a priori invalide.
*CRC non calculé(able);Transmis en hexadécimal. La somme de contrôle n'est pas calculée(able)

Les compteurs sont transmis séparés par une virgule, avec dans l'ordre:
1- le nombre de trames erronées,
2- le nombre de trames reçus en entier,
3- le nombre d'erreurs de CRC,
4- le nombre de trames de 112µs
5- le nombre de trames non transmises durant les pauses de transmission dues au contrôle de flux.
Ces compteurs (32bits) sont  remis à zéro lorsque le nombre de trames erronées repasse à 0. Le contrôle de flux n'influence pas les réponses aux commandes.

Aucun commentaire: