Accueil > Documentation technique > télécommunications > faire un serveur ntrip avec un récepteur Topcon



Rechercher

sur ce site

sur web cnrs


faire un serveur ntrip avec un récepteur Topcon

par Olivier Charade - 9 octobre 2015

La station PAT0 est un récepteur NETGA3 mis sur le réseau IP de l’Université de Patras. Un pc sous Linux (Suse) communique avec le récepteur par IP.

Le récepteur crée déjà des fichiers bruts d’une heure à une seconde qui sont récupérés par le pc, qui les traduit en rinex et les transmet à EUREF.

Il s’agissait donc de rajouter un flux de données temps réel du récepteur vers EUREF.

En explorant les paramètres du récepteur sous GRIL, on s’aperçoit qu’il connaît ntrip.

print,/par/ntrip:on
RE02A/par/ntrip={mode=off,state=off,timeout=30,
RE047 caster={addr=0.0.0.0,port=0,mountpt="",user="",nmea=0,protocol=ntrip1,
RE013  mask="",init=all,
RE01F  proxy={addr=0.0.0.0,port=0}},
RE01D server={addr=0.0.0.0,port=0,
RE00B  mountpt={
RE015   name="",descr=""},
RE024  user="",passwd="",protocol=ntrip1,
RE01F  proxy={addr=0.0.0.0,port=0}},
RE02C data={port=/dev/ser/b,imode=cmd,omode=std},
RE00E error="none"}

Comme le support Topcon a mis un peu de temps à me répondre, je suis parti sur une solution où le flux de données passe par le pc qui gère déjà les données en temps différé.
J’ai donc procédé de façon similaire à ce que je décris dans temps reel sur IP

Il me fallait d’abord vérifier quels étaient les messages RTCM3 connus du récepteur :

print,/msg/rtcm3:on
RE023/msg/rtcm3={1003={1.00,0.00,0,0x0},
RE018 1004={1.00,0.00,0,0x0},
RE018 1011={1.00,0.00,0,0x0},
RE018 1012={1.00,0.00,0,0x0},
RE019 1005={10.00,0.00,0,0x0},
RE019 1006={10.00,0.00,0,0x0},
RE019 1007={10.00,0.00,0,0x0},
RE019 1008={10.00,0.00,0,0x0},
RE018 1019={0.00,0.00,0,0x2},
RE018 1020={0.00,0.00,0,0x2},
RE019 4087G={0.00,0.00,0,0x2},
RE019 4087N={0.00,0.00,0,0x2},
RE019 1033={10.00,0.00,0,0x0},
RE019 4091i={1.00,0.00,0,0x0},
RE01A 4091t={10.00,0.00,0,0x0}}

Un document ntrip indique que les messages nécessaires pour du RTCM3 sont les 1004, 1007, 1008 et 1009. Nous n’avons que les trois premiers.
J’active donc l’émission à 1 seconde de ces trois messages sur le port e
em,/dev/tcp/e,/msg/rtcm3{/1004,/1007,/1008}:1.0

Ensuite côté pc linux :

Je sais que pour les paramètres d’entrée, il faut que j’indique à la commande ntripserver
-M 2 -H 150.140.182.13 -P 8002 -x e -y T225122
traduire : connexion par IP sur l’adresse du récepteur, port 8002 comme d’habitude chez Topcon, avec la session e et son mot de passe.

Pour la sortie j’ai demandé au BKG comment on testait son serveur. Ils ont un caster de test sur lequel ils m’ont créé un point de montage et j’ai ainsi eu tous les paramètres de sortie pour la commande ntrip :
-O 1 -a www.euref-ip.net -p 80 -m OLIVER -n DUMMY -c nsp-euref

On peut alors aller voir sur une page web les résultats de sa liaison

Pour avoir des statistiques en lecture, j’ai téléchargé le client ntrip le plus simple sur mon pc windows à Meudon, j’ai ouvert une fenêtre DOS et j’ai lancé la commande
C:\Users\charade\Downloads>ntripclient.exe -M 1 -s www.euref-ip.net -r 80 -m OLIVER -u DUMMY -p nsp-euref
Et j’ai vu arriver chaque seconde ce que je suppose être des messages RTCM3

Quand le support Topcon m’a répondu, j’ai essayé de mettre en place un flux direct entre le récepteur et EUREF.

Voici les commandes que m’a communiquées le support Topcon pour faire du récepteur un serveur ntrip. La commande« disable message » permet de repartir à zéro si on avait déjà fait des essais avant. On notera que les différents messages rtcm3 sont activés individuellement et pourraient avoir des périodes d’émission différentes :

set,dev/ntrip/a/imode,cmd
dm,/dev/ntrip/a
em,/dev/ntrip/a,rtcm3/1004:{1.000000,0.000000,0,0x0}
em,/dev/ntrip/a,rtcm3/1012:{1.000000,0.000000,0,0x0}
em,/dev/ntrip/a,rtcm3/1006:{1.000000,0.000000,0,0x0}
em,/dev/ntrip/a,rtcm3/1008:{1.000000,0.000000,0,0x0}
em,/dev/ntrip/a,rtcm3/4091t:{1.000000,0.000000,0,0x0}
em,/dev/ntrip/a,rtcm3/1033:{1.000000,0.000000,0,0x0}

A noter que ntrip n’a qu’un seul port sur ce récepteur et qu’il ne peut donc pas servir plusieurs casters.

set,/par/ntrip/data/port,/dev/ntrip/a
set,/par/ntrip/caster/addr,"www.euref-ip.net"
set,/par/ntrip/caster/port,80
set,/par/ntrip/caster/mountpt,OLIVER
set,/par/ntrip/caster/user,DUMMY
set,/par/ntrip/caster/passwd,nsp-euref
set,/par/ntrip/mode,server

Le mot de passe n’apparaît jamais dans la liste des paramètres par mesure de sécurité.

Malheureusement l’affichage des paramètres, qui se termine par un éventuel message d’erreur montre que ça ne fonctionne pas. Si quelqu’un trouve mon erreur, je corrigerai cet article.

RE02E/par/ntrip={mode=server,state=wait,timeout=30,
RE045 caster={addr=www.euref-ip.net,port=80,mountpt="OLIVER",user="DUMMY",
RE02A  nmea=0,protocol=ntrip1,mask="",init=all,
RE01F  proxy={addr=0.0.0.0,port=0}},
RE01D server={addr=0.0.0.0,port=0,
RE00B  mountpt={
RE015   name="",descr=""},
RE024  user="",passwd="",protocol=ntrip1,
RE01F  proxy={addr=0.0.0.0,port=0}},
RE02E data={port=/dev/ntrip/a,imode=cmd,omode=std},
RE024 error="Socket connect failed 125 "}