OpenCPN,  selon Shoreline
Plan du site   --->  Configurer  --->   Options : Connexions sous Linux
CFG_13_B Options : Connexions sous Linux, Debian / Ubuntu
Validité :  4.4
Introduction
Créer ou modifier une connexion
Exemples de mise en oeuvre
Up
Attention :
Pour comprendre et mettre en œuvre cette page :
  • Pour ouvrir un terminal sous Linux, encore appelé "Console", il faut taper :  Ctrl + Alt + t
    • Un terminal apparait sous forme d'une fenêtre à fond noir
    • Une ligne comme celle ci s'affiche : "XXXX@YYYYY:~$" où XXXX est le nom de l'ordinateur.
Up
  • Vous n'avez besoin d'un terminal que si vous ressentez le besoin d'executer les commandes qui figurent dans cette page.
  • Dans cette page :
    • Les textes en rouge sont des commandes Linux à copier/coller dans un terminal.
    • Les textes en bleu sont les réponses système.
  • En dehors d'une phase de configuration, pour le fonctionnement normal d'OpenCPN, vous n'aurez absolument pas besoin d'ouvrir un terminal.
  • Vous aurez très certainement besoin, à un moment ou un autre, d'utiliser le mot de passe qui permet à Linux de vérifier que vous êtes le superutilisateur du PC.
  • Les copie d'écran ci dessous, correspondent pour beaucoup d'entre elles à la version en Anglais d'OpenCPN. Si vous utilisez la version en Français d'OpenCPN, rappelez vous que vous pouvez facilement passer du français à l'Anglais, et vice-versa,  en allant dans les "Options" d'OpenCPN puis "Personnaliser".  Eventuellement, lisez ou relisez cette page à ce sujet :
  • Pas d'affolement, "connection", en Anglais, = "connexion", en Français. N'y voyez pas de faute d'orthographe, ainsi que dans quelques autres mots Anglais qui ressemblent, peu ou prou, aux même mots en Français et qui sont employés dans cette page.
Up
Préalable :
  • Avant toute chose, il faut que votre utilisateur fasse impérativement partie du groupe utilisateur dialout. Il s'ajoute en tapant les commandes suivantes :
    • sudo addgroup dialout
      sudo adduser nom_utilisateur dialout
    • Taper votre mot de passe en tant que superutilisateur du PC et cliquer retour chariot
  • Aussi à faire :
    • Taper sudo usermod -a -G dialout nom-utilisteur
    • Taper votre mot de passe et cliquer retour chariot.
Up
Linux et la gestion des ports série :
  • Les ports série USB sous Linux sont stockés sous le répertoire /dev et obéissent à l’ordre d'insertion du périphérique.
  • Il prennent automatiquement le nom /dev/ttyUSB(n) ( n=0 pour le premier et s'incrémentent au fur et à mesure de la connexion d'un nouveau périphérique).
  • La vitesse de transmission des phrases NMEA est traditionnellement de 4800 bauds pour un GPS classique et 38400 bauds pour l'AIS pour permettre une transmission fluide des données complexes des phrases AIVDM.
  • Pour vérifier qu' un périphérique connecté à un port est bien détecté taper la commande :
    • lsusb
  • Pour connaître son numéro, on peut lister les ports USB par la commande
    • ls/dev/ttyUSB*
  • Dans le cas de la photo ci dessous, le système montre qu'un GPS prolific PL 2303 est détecté sur un port série . Le nom du port USB est /dev/ttyUSB0

Up
  • Passer à l'étape suivante

Créer ou modifier une connexion dans OpenCPN :
Les deux sortes de connexions sous Linux
  • Sous Linux, il y a deux sortes de connexions :
    • Statique: l'utilisateur doit impérativement identifier le port par son numéro et sa vitesse de transmission
    • Dynamique: en utilisant les données NMEA qui transitent sur le réseau de la machine Linux, c'est un logiciel appelé gpsd qui identifie les paramètres des connections, quelque soit le Numéro de port / Vitesse / langage.
Up
Cas d'une connexion série statique:
Paramétrage dans OpenCPN :
  • Ouvrir OpenCPN et aller dans l'onglet parametres /connections
  • Dans l'ordre cliquer sur :
    • Add Connection / Serial
    • DataPort / la flèche du menu déroulant, à droite de cette zone, donne accès au nom complet du port choisi
    • Baudrate / menu déroulant qui permet de choisir la vitesse (dans ce cas 4800 pour le GPS et 38400 pour l'AIS )
    • Puis cliquer sur le bouton de la colonne "enable" dans la fenêtre "data Connections"
    • Validez avec le bouton Apply

Up
Visualisation du flux NMEA :
  • Notez que dans ce cas :
    • Le port fonctionne en réception / émission les phrases RMC, GGA ..
    • C'est un GPS prolific BU-353 USB
    • Le port utilisé est le port serie /dev/ttyUSB0 en réception et émission
    • L'heure est 15 h 32 mn 08 s

Up
Cas d'une connection série dynamique:
Le logiciel "sniffer" de ports GPSD :

Linux utilise un logiciel spécialisé appelé gpsd.

  • gpsd est un automate qui examine tous les ports USB de la machine et qui détecte tous ceux qui envoient des trames NMEA quelque soit la vitesse et l'origine , GPS ou AIS et le protocole de transmission. Il les retransmet sur le réseau interne de la machine Linux.
  • Il se lance automatiquement au bootup de Linux.
  • gpsd est capable :
    • d'identifier , d'interroger, et d'interpréter le protocole texte standard NMEA 0183
    • d'identifier , d'interroger, et d'interpréter certains dialectes NMEA maison utilisés par:
      • MKT-3301, iTrax, Motorola OnCore, Sony CXD2951, Ashtech/Thales devices.
    • d'interpréter les protocoles binaires utilisés par  les périphériques :
      • EverMore, Garmin, Navcom, Rockwell/Zodiac, SiRF, Trimble,ANTARIS .
    • de lire les paquets NMEA2000 à travers du "socket"  CAN .
    • de lire le cap et l'altitude émanant des compas Oceanserver 5000 or TNT
    • de reconfigurer, au travers d'un "socket", certains périphériques au niveau du langage, de la vitesse de transmission (cas du BU-353 par exemple).
Quel lien entre OpenCPN et gpsd ?
  • OpenCPN est capable :
    • de scruter le réseau à travers gpsd
    • de lire les trames envoyées par gpsd
Comment exploiter gpsd :
  • En plus des manipulations de la méthode manuelle, il faut avoir préalablement installé gpsd et mettre en place l'environnement pour le faire fonctionner correctement.
  • Pour cela :
    • On vérifie d'abord que gpsd est installé en tapant la commande :
      • which gpsd
    • gpsd est déjà installé si le système répond :
      •  /usr/sbin/gpsd
      • Sinon il convient alors de procéder à son installation par la commande :
        • sudo apt-get install gpsd gpsd-clients xgps
      • Nota bene :  Jusqu'en version 15-04 Ubuntu, le contrôle de gpsd s'effectue avec la commande :
        • sudo dpkg-reconfigure gpsd
    • Dans toutes les versions Linux UBUNTU/Debian le fichier de configuration de gpsd est :
      • /etc/default/gpsd
      • Si on n'utilise pas dpkg-reconfigure, il faut vérifier et éditer le fichier, au besoin pour changer les paramètres de gpsd au bootup,
      • Notez que dans la liste de parametres de GPSD_OPTIONS ="-n -G" :
        • -n  permet à gpsd de ne pas attendre qu'un périphérique identifié se réveille et émétte,
        • G fait systématiquement l'examen en boucle de tous les périphériques qui émettent sur le réseau.

    • Après configuration, si le systeme renvoie un message ressemblant en réponse en bleu à la commande :
      • ps -axu | grep gpsd
      • gpsd       636  0.0  0.3   6620  3700 ?        S<s  11:24   0:00 /usr/sbin/gpsd -N -n -G /dev/ttyUSB0
        alain     5526  0.0  0.0   5128   848 pts/0    S+   11:39   0:00 grep --color=auto gpsd
    • On peut alors passer à l'étape suivante
    • Pour vérifier que votre GPS et gpsd fonctionnent, xgps doit vous montrer les satellites et les données NMEA émises sur le(s) ports USB.
      • Pour cela il faut lancer dans un terminal :
        • xgps
      • Cette fenêtre s'ouvre :
      • Si vous voyez les satellites et les messages, c'est que gpsd est actif  et fonctionne correctement. 

    Up



































    Up
    • Le manuel (en anglais) utilisateur se lance par la commande:
      • man gpsd
    Up
    Paramétrage dans OpenCPN :
    
    • Ouvrir OpenCPN et aller dans Options  puis  Connections
    • Dans l'ordre cliquer sur :
      • Add Connection : cliquer sur le bouton Network /
      • Protocol : cliquer sur le bouton GPSD
      • Adress : entrer "localhost" ou "127.0.0.1"
      • Puis cliquer sur le bouton de la colonne enable dans la fenêtre data Connections
      • Valider en cliquant sur Apply

    • Surtout ne pas changer le numéro du Dataport, c'est le défaut de gpsd



    On peut visualiser les données NMEA émises sur le port en cliquant sur le bouton Show NMEA Debug Window



    • Il n'y a rien d'autre à faire tout nouveau périphérique émettant du NMEA, sonde, anémo, capteur de température sur les ports série USB sera automatiquement détecté. Mais pas forcément exploité par plugins d'OpenCPN.
    • Il n'y a plus besoin se s'occuper de numéro de port ni de sa vitesse

    • On peut toutefois mixer des entrées /dev/USB(n) avec une entrée gpsd mais ce sera le mode gpsd qui l'emporte sur la connection série statique car il les rend muets a cause de ses droit "root".
    Up




































    Up
    Ordre de priorité :
    • Que ce soit pour les connexions séries ou réseaux, il y a une case "Priorité" à documenter.
    • Si deux connexions, ont des priorités différentes, les phrases NMEA qui proviennent de celle ayant la plus forte priorité seront prioritaires sur les phrases NMEA provenant de l'autre connexion.
    • Il est possible en s'y prenant bien, avec les filtres, de trier les phrases NMEA pour éviter les doublons.
      • Lire ou relire cette page pour plus d'informations sur le contenu des phrases NMEA  : DT_31_NMEA
    Up
    Les différents protocoles en mode réseau :
    Le protocole TCP :
    • Il est utilisé plus spécialement pour recevoir des données sur le web (ou en envoyer).
    • Dans son fonctionnement, chaque envoi est suivi d'un accusé de réception. De ce fait, les pertes de données sont théoriquement nulles.
    Up
    Le protocole UDP :
    • Il est utilisé plus souvent en mode local soit entre deux logiciels d'une même machine, soit entre deux machines d'un même réseau local.
    • Dans son fonctionnement, aucun accusé de réception n'est attendu après un envoi de données.
    Up
    Le protocole GPSD :
    • Il est spécifique aux machines fonctionnant sous Linux utilise le protocole TCP.
    • Mais les machines fonctionnant sous Windows peuvent exploiter les données issues d'une machine sous Linux, présentes dans un réseau local.
    Up
    Exemples de mise en oeuvre d'une connexion et fenêtre de débugage :
    Connexion série en entrée :

    Up
    • Pour une connexion "Série" de base en entrée :
      • Cliquez sur le bouton "Série",
      • Sélectionnez le numéro du port,
      • Cochez "Contrôle du checksum", (facultatif, voir son rôle : DT_31_NMEA ),
      • Choisissez la vitesse selon les caractéristiques de la vitesse de l'appareil ou du réseau NMEA branché sur le port,
      • Ne cochez pas la case "Sortie sur ce port",
      • Filtrez selon vos besoins en entrée,
      • Filtrez par élimination en sortie.
    Up
    Connexion série en sortie :

    Up
    • Pour une connexion "série" de base en sortie :
      • Cliquez sur le bouton "Série",
      • Sélectionnez le numéro du port,
      • Cochez "Contrôle du checksum", (facultatif, voir son rôle : DT_31_NMEA ),
      • Choisissez la vitesse selon les caractéristiques de la vitesse de l'appareil ou du réseau NMEA qui est branché sur le port,
      • Cochez pas la case "Sortie sur ce port",
      • Filtrez selon vos besoins en sortie,
      • Filtrez par élimination en entrée.
    Up
    Connexion réseau en entrée :

    Up
    • Pour une connexion "Réseau" de base en entrée :
      • Cliquez le bouton "Réseau",
      • Choisissez le type de réseau (TCP ou UDP ou GPSD),
      • Entrez l'adresse IP,
      • Entrez le numéro du port de communication,
      • Cochez la case "Contrôle du checksum" (facultatif, voir son rôle : DT_31_NMEA),
      • Ne cochez pas la case "Sortie sur ce port",
      • Laissez les deux zones de filtrage vierge ou filtrez selon vos besoins.

    Affichage des phrases NMEA dans la fenêtre de débugage :
    • Une connexion série simple avec juste un GPS.
    Up
    • Ici une connexion réseau TCP/IP provenant d'un site web envoyant en permanence les messages émis par les émetteurs AIS des bateaux situés dans une zone donnée.
    • Notez que les phrases de type GPRMC sont rejetées. Pour cela, seule les phrases du type AIVDM et les phrases du type AIVDO, sont acceptées en entrée, dans la définition de cette connexion.
    Up
    • Ci dessous, un cas d'école avec un melting pot de connexions :
      • en entrée,
      • en sortie,
      • avec des phrases non triées,
      • et des connexions 
        • réseau :
          • mode GPSD, en entrée
          • mode UDP. en émission
    Up

    Up
    • Si vous utilisez le plug-in "VDR" pour lire un fichier préenregistré contenant des phrases NMEA, voici le genre de chose que vous aurez .
     
    • Notez que dans ce cas, vous n'avez pas besoin de créer une connexion spécifique.
    Up
    Des choses à comprendre :
    • Conflit d'utilisation des ports :
      •  Si vous avez déjà une application connectée à votre GPS , un port série, OpenCPN ne sera pas en mesure de se connecter au même port.
      • Sous Linux, l'utilisation de gpsd empêche la connection d'une application, car il est lancé par les services linux au boot et a la priorité et les droits "root".
      • Alternative : vous pouvez utiliser des pseudo-terminaux ( " ports série virtuels " ) pour partager des données NMEA entre les applications.
    • Filtrage :
      • Une phrase NMEA, filtrée sur une connexion d'entrée , reste disponible dans le multiplexeur interne. Ainsi, elle sera disponible pour les connexions de sortie , sauf si elle est filtrée là aussi. Cela ne concerne que les connexions série .
    • Connexion en sortie en UDP :
      • Faites des essais et regardez avec la fenêtre d'affichage des flux NMEA pour voir comment cela fonctionne, en particulier en sortie.
    • Adresse des ports UDP :
      • L'adresse UDP est nécessaire uniquement pour les connexions de sortie, et peut-être xxx255 pour la diffusion. En entrée , il est recommandé de spécifier une adresse . Le port, nécessaire en entrée et en sortie , par défaut est 10110 .
    • Phrases émises par le complément VDR :
      • Les phrases NMEA provenant du plugin VDR sont étiquetées comme telles dans la fenêtre de débogage et ont la priorité "0".
    • Envoi d'un itinéraire actif à un pilote automatique
      • Lors de l'activation de la Route , OpenCPN envoie les phrases NMEA "ECRMB", "ECRMC" et "ECAPB" à un pilote automatique , s'il est connecté à un port.
    • Envoi de routes et waypoint à un GPS
      • La fonction "Envoyer vers GPS », qui apparaît dans les menus du clic droit pour les waypoint et les routes et dans le gestionnaire de la route , n'est pas liée aux connexions . Le port de téléchargement n'a même pas besoin d'apparaître dans la liste des connexions Datastream. C'est un concept à part entière. Pour cette raison, les utilisateurs doivent définir un port téléchargement séparé, qui est rappelé par OpenCPN. Le port peut être modifié en cliquant sur le bouton dans le gestionnaire de la route.
    • Protocole d'envoi de routes et waypoint :
      • La norme NMEA ne fournit pas de protocole d'envoi vers un pilote ou un autre appareil. Ainsi, les données (waypoint, routes) sont envoyées sans aucun "handshake", c'est à dire sans qu'il soit possible de savoir si les données ont été correctement reçues.
      • Le protocole Garmin exige que l'appareil soit un Garmin, sinon, l'envoi échouera.
      • Une réponse du type " Route téléchargée avec succès" ne signifie pas que le waypoint ou la route ait été reçu correctement ! Cela signifie seulement que le port a été trouvé et que les données ont été envoyées.
      • Dans le cas, d'un simple GPS  récepteur,  qui ignore la notion de route et de waypoint, ces informations n'ont d'ailleurs aucune utilité.
    • L' essentiel à retenir est que le processus d'envoi d'une route ou d'un waypoint est complètement indépendant du fonctionnement du flux de données NMEA. Il s'agit de deux sous- systèmes distincts.
    • On peut sans problème assigner le port du flux de données en sortie et en entrée. Certains utilisateurs peuvent raisonnablement s'attendre à ce que ce soit nécessaire pour les routes et les waypoint. La plupart des récepteurs GPS ne tiendront pas compte des données autre que celles correspondant à des routes ou des waypoint.
    Up
















    Up
















    Up
      Aller au plan du site
      Retour Haut de page
    Moteur de recherche.
        
    Recherche sur le web          Recherche sur opencpn.shoreline.fr

    Copyright : Ce site web est protégé contre toute utilisation commerciale.
    Dernière modification de cette page :