Em-Track B100 : Exploitation enregistrement carte SD

L'Em-Track B100 est l'un des (trop ?) rares transpondeurs AIS qui permettent l'enregistrement du flux AIS reçu sur une carte SD.
Cela permet d'avoir la trace des 'autres' par exemple.
Le problème, c'est que lorsque l'on rejoue ce flux, par exemple sur Open CPN pour en extraire les traces, l'heure affectée à chaque point est celle du moment où l'on rejoue le flux et non celle pouvant être retrouvée à partir des données GPS qui contiennent l'heure. Du coup, la vitesse est fausse si l'on ne rejoue pas le flux à la même vitesse que l'enregistrement.
La solution serait un petit bout de code qui analyse le fichier sur la carte et reconstitue une trace au format GPX par exemple, pour chaque MMSI.
Qui a déjà réalisé cela ?

L'équipage
23 fév. 2016
27 fév. 2016

Visiblement personne !
Il me faudra donc développer qcq chose.
Bon, histoire de motiver les trop rares d'entre nous que cela intéresse, voici un extrait d'un journal :
La trame $GPRMC (GPS) donne l'heure, la position, la vitesse
La trame !AIVDO (AIS) donne la position, la vitesse, mais pas l'heure complète
Une des questions à laquelle je n'ai pas la réponse, c'est :
faut-il prendre la trame $GPRMC précédente ou suivante par rapport à la trame !AIVDO ?
$GPRMC semble être systématiquement suivi de $GPGGA.
Les secondes (0..59) de l'heure sont transmises dans la trame !AIVDO.
C'est déjà pas mal. Mais si pas de trame $G* à proximité ?

Voici un extrait (épuré des trame AIS des autres navires) :
$GPRMC,104141.00,A,4741.84553,N,00322.88057,W,7.369,43.41,210216,,,A4A
$GPGGA,104141.00,4741.84553,N,00322.88057,W,1,10,0.88,-0.3,M,49.6,M,,
63
$GPGLL,4741.84553,N,00322.88057,W,104141.00,A,A72
!AIVDO,1,1,,,B3Hd`b00Bgt8Eu6lceLK;wlUoP06,0
74
$GPGBS,104141.00,1.4,0.9,2.8,,,,46
$GPRMC,104142.00,A,4741.84708,N,00322.87837,W,7.804,44.22,210216,,,A
46
$GPGGA,104142.00,4741.84708,N,00322.87837,W,1,10,0.88,-0.2,M,49.6,M,,6C
$GPGLL,4741.84708,N,00322.87837,W,104142.00,A,A
7C
$GPGBS,104142.00,1.3,0.9,2.7,,,,4D
$GPRMC,104143.00,A,4741.84867,N,00322.87599,W,8.263,45.35,210216,,,A
4B
$GPGGA,104143.00,4741.84867,N,00322.87599,W,1,10,0.88,-0.2,M,49.6,M,,62
$GPGLL,4741.84867,N,00322.87599,W,104143.00,A,A
72
!AIVDO,1,1,,,B3Hd`b00Dwt8FD6lcgLLKwmUoP06,024
$GPGBS,104143.00,1.3,0.9,2.7,,,,
4C
$GPRMC,104144.00,A,4741.85025,N,00322.87350,W,8.402,46.44,210216,,,A*44

Mon but est de réaliser un extracteur de traces qui pourront par la suite être importées.

27 fév. 2016

Je me suis déjà amusé à transformer mes pasttracks de mon logiciel sobvmax pour les relire sous Google earth.
Vu que je vient d'acheter le même ais, je vais me plonger aussi la dessus.

27 fév. 2016

Ces infos sont une mine d'or !
Et dire que dans les années 80, on pouvait faire çà en BASIC !
Malheureusement ma dernière machine sous DOS est morte il y a 15 ans. Faut dire qu'au niveau sécurité c'était un peu léger les instruction PEEK et POOK permettait l'accès et l'écriture a la mémoire. Impensable aujourd'hui.
Maintenant faut des usines à gaz si on veut faire le moindre petit programme utilitaires.

27 fév. 2016

Lord-M : non non, il y a depuis longtemps des langages interprétés comme Perl, plus récemment Python. Et quelques "trucs", comme AutoIt, même si, perso, je suis plutôt Java (désolé pour ceux qui ne liraient pas ce que je viens d'écrire)

27 fév. 201627 fév. 2016

Je suis développeur depuis 30 ans.
A l'époque, on développait des moteurs de base de données sous Unix en C pur et dur.
Je développe maintenant sous visual studio en c# ou sinon en Java.
S'il fallait refaire en BASIC ce que je fais maintenant en C#, je passerais environ 200 à 300 fois plus de temps.

Je fais un petit programme utilitaire avec affichage graphique, gestion de la souris, gestion de données entrées par le port série en moins d'une heure. Vive les usines à gaz.

27 fév. 2016

Félicitations, pour ma part j'ai commencé avec un PET de commodore, et je revendique mon statut d'amateur. j'ai fait des miracles avec le Basic et j'ai toujours subit le mépris des pros persuadés que le fait d'utiliser des usines a gaz rajoutait des points a leur QI. C'est quand même dommage de ne plus pouvoir réaliser des utilitaires simple comme ce que demande ODECLAV, voir de les faire sois-même.....

27 fév. 2016

Lord-M : Tu retrouveras presque ce que tu as connu en Basic, mais en mieux, avec VBScript.
Les interfaces graphiques ne sont (vraiment) pas nécessaires pour ce type d'outil.

27 fév. 2016

Lord-M: Du temps du Basic, on faisait en effet des miracles et mépriser quelqu'un qui développe en amateur est d'une stupidité totale.
Ca n'empêche pas que les outils de développement actuels sont plus adaptés aux environnement actuels. Mode graphique, langage événementiel.
Mais comme le dit si bien bmayer, VBScript, Delphi ou autres langages de ce type restent simples à utiliser et très puissant quand même.

27 fév. 2016

La trame !AIVDO contient en effet toutes les informations de la cible AIS, ses coordonnées et surtout, dans le cas qui nous intéresse, le nombre de secondes (visiblement de 2 à 3 secondes entre deux trames)
Il suffit de vérifier la trame GPS GPRMC précédente et suivante et de voir laquelle est logiquement rattachée à la traime AIS.

Si tu as une trace plus longue que l'exemple fourni, je peux regarder ça.

27 fév. 2016

La trame !AIVDO comporte exactement les mêmes infos que la trame $GPRMC immédiatement précédente (Lat/Long, vitesse, cap).
On peut donc supposer que l'heure de la position est celle de $GPRMC. La seconde correspond.
Par contre, pour une trame !AIVDM, on peut la trouver avant la trame $GPRMC de la même seconde.

27 fév. 2016

Entièrement d'accord, mais j'ai abandonné Windows et j'ai donc changé d'époque. Mon dernier basic était VisualBasic, l'ancêtre de VBS. Très structuré un bon produit. Mais c'est un monde ou si tu loupes un épisode, tu es foutu !
Le problème soulevé est pourtant très simple à résoudre, lire de l'ASCII, le restructurer, reformater les infos utiles, est en effet réalisable en très peu de temps.
J'avais envisagé il y a cinq ans de construire les polaires de mon bateau à partir des infos NMEA du réseau avec COCA. J'ai vite abandonné. Monsieur Apple m'a dit qu'il y avait une application pour ça.

27 fév. 2016

Monsieur Apple t'a t-il dit que son système est un Unix ?
Je n'y connais RIEN en Apple, mais il doit bien y avoir des outils similaires, non ?

28 fév. 2016

Quels seraient vos souhaits pour quelques outils autour de ce type de trace ?

Voici par exemple une partie des transpondeurs AIS qui permettent l'enregistrement sur une SD card :
Em-Track B100
Mc murdo Smartfind M5
Mc murdo Smartfind M10
Mc murdo Smartfind M10W
Transpondeur AIS classe B AMEC Camino 108
Transpondeur AIS classe B AMEC Camino 108W
AIS RAYMARINE AIS650
(Liste non limitative : appel aux contributions pour la compléter).

Spécifications d'un outil permettant d'exploiter le fichier trace :
Ouverture du fichier avec l'outil.
Affichage résumé :
date/heure début & fin.
nom du navire ,
nombre de cibles AIS, la liste des MMSI,nom de navire, date/heure début & fin, range mini/maxi
Export trace de n'importe quel navire sous plusieurs formats
Affichage graphe nombre de satellites visibles, précision du point GPS
Diffusion pour tester des outils de navigation sans naviguer ...
(Liste non limitative : appel à vos contributions).

28 fév. 2016

J'avoue que l'utilisation de la carte SD sur mon EM B100 m'a laissé perplexe jusqu'à présent. L'été dernier, je n'y ai même pas mis de cartes SD.

Pour faire le lien avec OpenCPN : Pour rejouer un flux de données issues de la carte SD du EM B100, je suppose que c'est avec l'outil VDR que cela est fait. Et effectivement, VDR ne tient pas compte des dates et heures contenues dans le fichier. VDR utilise systématiquement l'heure actuelle du PC. Comme personne ne fait évoluer l'outil VDR .....

28 fév. 2016

Je viens de regarder dans mes fichiers VDR. J'ai regardé le contenu d'un de mes fichiers datant de l'année 2013. Il ne contient que les phrases GLL et VDM. Or tant GLL que VDM ne contiennent pas de date. Juste l'heure.

Question : Un fichier issu de la carte SD de l'EM B100 (par exemple) contient il quelque part l'information date ?

28 fév. 2016

Evolution Plugin VDR : je serais assez partisan de le faire évoluer.
Par exemple rejouer le flux à un ratio de vitesse pré-déterminé et avec l'heure correspondant à la trace.
Faire une pause, revenir en arrière ...
Oui, pour répondre à ta question, chaque trame AIVDO ou AIVDM ne contient que la seconde.
Le B100 (constat empirique par examen du flux sur ma carte SD) génère la date et l'heure toutes les secondes via une trame $GPRMC.
On peux ajuster la seconde avec l'info dans la trame AIVDO ou AIVDM qui suit.

01 mars 201616 juin 2020

Bon, j'ai avancé sur le sujet.
J'ai fait un petit programme qui arrive à sortir les traces d'une cible MMSI choisie ainsi que la trace du bateau sur lequel l'AIS est en place.
Il faut ouvrir le fichier sur Google Earth pour voir la trace apparaître.

S'il y en a que ça amuse, un exemple du fichier est joint en document attaché.


01 mars 201616 juin 2020

@Entre-Cotes :

Fichier lisible avec VDR dans OpenCPN Mais,. apparemment, rien ne se passe. le bateau ne bouge pas et reste gris.

D'ailleurs, les trames NMEA obtenues présentent manifestement des anomalies.

01 mars 2016

Pb de jeu de caractères.
0d0a, c'est la fin de ligne des systèmes Windows

01 mars 201601 mars 2016

Oui, en effet, mais pour le moment, je développe uniquement sous Windows, le temps de mettre le truc au point.
On verra ensuite pour Linux.
Pour le tester, Google Earth est pratique.

01 mars 201616 juin 2020

@Gilletarom:
Un fichier sans caractères de fin de ligne pour tester avec VDR.


02 mars 2016

@Entre-Côtes :

Pas vraiment mieux.

Le fichier semble être lu comme s'il y avait une seule trame. Le bateau reste gris.

Normalement, une fois ouvert avec Notepad, le contenu doit ressembler à ça :

!AIVDM,1,1,,A,177iUr001lP;foJMdU304h6L0<h3000PEq?JNCJWMAR4L0p8m,072
$GPGLL,5258.9335,N,00448.0554,E,064814,A,A
42
!AIVDM,2,1,5,A,53as<@00000105H:221`DDh4pB2222222222220S5I1:60@P0=CchH888888,03E
!AIVDM,2,2,5,A,88888888880,2
21

!AIVDM,1,1,,A,13bIIn0000PEqAPNC7?L0VpR04k0,0*0F

Autrement dit, une trame par ligne.

02 mars 2016

Le fichier est un fichier gpx, il ne contient aucune trame NMEA.
Il s'ouvre parfaitement sous Google Earth et Google Map.

Je ne sais pas comment fonctionne le plugin VDR. Il est sensé transformer un fichier au format gpx en trames NMEA? dans ce cas, je ne vois pas l'intérêt, autant lire directement le fichier trace de l'AIS.

02 mars 2016

VDR est un magnétophone. Il enregistre toutes les trames NMEA qui traine dans le réseau NMEA. Le résultat est un fichier texte, enregistré au fur et à mesure de la navigation, qui est sauvegardé sans l'extention ".txt".
Et comme tout magnétophone, il peut relire ce qu'il a enregistré. Et du coup on "revit" la navigation.

Comme ce complément n'a jamais été modifié, il est resté aussi naïf depuis 4 ou 5 ans.

Dommage, il faudrait pouvoir, en mode lecture, filtrer les phrases qu'il contient pour ne relire que ce qui concerne l'AIS ou le GPS ou l'anémomètre, ou le speedo ou le compas électronique , ou Etc ...

Autant de choses qu'il ne fait pas.

Et si on lui donne, un enregistrement bien fait, même avec un autre logiciel, en principe, il doit pouvoir le relire.

02 mars 2016

Compris.
Ce que je suis en train de faire (en dehors de VDR), c'est de lire en entrée le fichier enregistré au format NMEA et en sortie, je génère un fichier gpx qui retrace une cible AIS sélectionnée.
C'est différent de VDR mais il peut être facilement adapté pour faire ce genre de filtre et sortir un nouveau fichier NMEA filtré.
Je vais essayer de faire un exemple.

02 mars 2016

Le fichier ci-joint est un fichier qui ne contient que des trames NMEA AIS
Ces trames sont obtenues à partir d'un fichier de 165865 lignes de trames mixtes GPS et AIS
J'ai filtré sur un MMSI.
A tester....Merci :-)

02 mars 2016

Hum ... Ah ... Ces foutus pièces jointes ... y faut toujours qu'elles refusent d'entrer !

02 mars 201616 juin 2020
02 mars 201602 mars 2016

Lorient ---> Port Tudy ---> Lorient ---> Port Tudy ---> etc ...

Ben voila. ça marche.

Quand même, il manque des infos car le bateau ne vire jamais au vert. MMSI : Oui, Nom : Non, Vitesse : Entre 9,5 et 11 Knts, Positions : oui

02 mars 2016

Il manque les infos qui ne sont pas dans le fichier d'origine.
Le nom du bateau par exemple. Il n'est nul part dans le fichier, aucune des trames AIS ne sont du type permettant de stocker le nom du bateau, mais c'est spécifique au fichier généré par l'EM- track.
Par contre, dans le programme de génération de fichier gpx, je retrouve le nom du bateau via un web service norvégien grâce au MMSI.
Si le fichier des trames NMEA contient les messages AIS du bon type, on récupére le nom dans la trame.
Pour le bateau, c'est le ferry qui fait la navette.

02 mars 2016

J'avais regardé mes fichiers quand j'ai installé mon B100 et j'avais découvert que le nom du bateau était présent mais crypté.

02 mars 2016

J'ai vérifié, le nom du navire est bien présent dans une trame AIS de id 24.
Par exemple dans le fichier fourni :
!AIVDM,2,1,6,A,53IN1842BeItHTIJ221=@Dhh4l58U>222222220Q;P;694bg0?C3lRACU888,00F
!AIVDM,2,2,6,A,88888888880,2
22
!AIVDM,1,1,,B,E>jCJa240a2h82W6RW00000000?outH=Ln@50```>B0,4*34
!AIVDM,1,1,,A,H3Hfp14k3?=7@FE612qqoo0
0110,04D
!AIVDM,2,1,4,A,53IgVr000000II4R220JuJ0l584pDhhv2222220N1Pl02jBiAC8888,0
2A
!AIVDM,2,2,4,A,88888888880,220

!AIVDM,1,1,,A,H3Hfp11<q?G7000000000000000,2
33
!AIVDM,1,1,,B,H3Ha0<PJuJ0<hDu05A840000000,2*71
Mais ce type d'infos, ainsi que les dimensions, l'indicatif radio etc ... est transmis moins fréquemment que la position car ce sont des informations statiques. Le protocole de transmission est bien défini et déterministe.

03 mars 2016

On est pas les seuls :
www.arundale.com[...]er.html
Ce lien est très intéressant......Et le travail est déjà fait !

03 mars 2016

Oui, c'est d'ailleurs avec leur aide que j'ai implémenté mon code.
Mais ce que je cherchais à faire avant tout, c'est une trace au format gpx pour une cible sélectionnée, pas un affichage à un moment donné d'une cible.
Cette trace permet, sous google earth, de faire une vraie animation du bateau et ça, j'y suis enfin arrivé ;-)
Pour ce qui est du nom du navire, j'en retrouve en effet dans le fichier fourni par Olivier mais assez rarement car les phrases de type 5 et 24 sont envoyées beaucoup plus rarement.
Donc quand j'ai extrait les données du ferry SAINT TUDY, aucune trame ais n'est présente avec son nom, au moins dans le fichier en question.
Par contre, j'arrive à le retrouver en utilisant un web service Norvégien qui renvoie le nom quand on lui fourni le MMSI.
Une fois le fichier GPX créé, il s'anime sur Google Earth et on peut l'exporter en KMZ ou KML.

03 mars 2016

Je me demande si le B100 enregistre bien sur la carte SD tout ce qu'il reçoit.
Normalement, la trame avec le nom devrait être émise toutes les 6 minutes.

04 mars 2016

Aux temps pour moi! J'ai trouvé tous les noms, il y avait un petit bug qui empêchait certaines trames d'être analysées. J'aurais un truc présentable d'ici la fin du weekend.

04 mars 201616 juin 2020

Pour ceux que ça intéresse, voici un petit pdf qui explique ce que j'obtiens actuellement


Lever de soleil sur la rance pleurtuit anse du montmarin

Phare du monde

  • 4.5 (144)

Lever de soleil sur la rance pleurtuit anse du montmarin

2022