L'application Aqua Map, tout comme d'autres applications sur le marché de la navigation de plaisance, est capable de se connecter aux instruments du bateau et d'afficher les informations reçues.
Il est possible d'obtenir la position GPS reçue d'un GPS externe et de l'utiliser à la place du GPS intégré de votre appareil, d'afficher la valeur de la profondeur reçue de votre sonar, d'afficher la direction du compas et de l'utiliser pour orienter vos cartes dans l'application, de voir les informations sur le vent reçues par l'anémomètre, de voir la cible AIS reçue par votre appareil AIS.
Les réalisations de cette fonction sont basées sur différentes technologies superposées et sur des normes définies au fil des ans par différentes organisations de normalisation.
Avec cet article, nous voulons offrir aux personnes curieuses un aperçu des technologies sur lesquelles la fonction est basée, sans prétendre à une discussion technique exhaustive et approfondie.
Etape 1 - Les appareils doivent être visibles par l'application : le réseau du bateau et la connexion WiFi
Tout d'abord, il est nécessaire que vos appareils soient "connectés" au même réseau pour pouvoir se voir et échanger des données. Votre tablette ou smartPhone peut se connecter à un point d'accès WiFi du réseau.
Dans la configuration la plus courante, le réseau du bateau dispose d'une passerelle WiFi qui fonctionne comme point d'accès WiFi et transmet les informations au SmartPone/Tablette. Il est également possible d'avoir une configuration plus simple dans laquelle un seul appareil, tel qu'un récepteur AIS, transmet directement ses données par WiFi et fait également office de point d'accès.
La connexion peut être établie dans les paramètres WiFi de la tablette/du smartphone (voir l'exemple ci-dessous d'une page de paramètres de l'iPad)
Le réseau WiFi doit être celui offert par le point d'accès du réseau de votre bateau.
D'un point de vue technique, la norme IEEE 802.11 définit les protocoles qui permettent de communiquer avec les appareils sans fil actuels compatibles Wi-Fi, y compris les routeurs sans fil et les points d'accès sans fil.
Wi-Fi est l'abréviation de "wireless fidelity" (fidélité sans fil). Le berceau technique du Wi-Fi se trouve aux Pays-Bas. En 1991, NCR-Corporation et AT&T Corporation ont inventé le précurseur de la norme 802.11. La première version du protocole 802.11 a été publiée en 1997 et offrait des vitesses de liaison allant jusqu'à 2 Mbit/s. En 1999, la WiFi-Alliance s'est constituée en association commerciale pour détenir la marque Wi-Fi sous laquelle la plupart des produits sont vendus. Aujourd'hui, on trouve partout des points d'accès WiFi et tous les smartphones sont dotés d'une fonction WiFi intégrée.
Étape 2 - Les appareils doivent pouvoir transporter des données vers l'application : TCP/IP et UDP
Le SmartPhone/Tablette et le getway ou tout autre appareil du réseau du bateau doivent avoir un moyen de communiquer entre eux, de s'identifier et de commencer un échange de données.
Lorsque vous souhaitez créer une connexion dans Aqua Map, vous devez définir un protocole TCP ou UDP. Cette sélection informe l'application du type de bibliothèque logicielle à utiliser pour se connecter à l'appareil qui envoie l'information. Les protocoles TCP et UDP font partie de la suite de protocoles Internet et définissent la façon dont les appareils "parlent" entre eux pour échanger des paquets de données.
Les protocoles TCP et UDP font partie de la couche transport de la suite de protocoles Internet. Cette couche établit une connectivité d'hôte à hôte sous la forme de services de transfert de messages de bout en bout, indépendants du réseau sous-jacent, de la structure des données utilisateur et de la logistique de l'échange d'informations. La connectivité au niveau de la couche transport peut être catégorisée comme étant soit orientée vers la connexion, mise en œuvre dans le protocole TCP, soit sans connexion, mise en œuvre dans le protocole UDP.
Le protocole TCP nécessite l'indication de l'adresse IP (par exemple 192.168.1.10) de l'appareil à connecter et du numéro de port (ID du canal de communication pour l'application). Le protocole TCP est plus robuste et protégé contre les erreurs de transmission, tandis que le protocole UPD peut souffrir d'erreurs de communication et de pertes de paquets, mais peut être plus rapide dans la communication et est plus adapté à des applications telles que la diffusion en continu de médias (audio, vidéo)
La suite de protocoles Internet est le modèle conceptuel et l'ensemble des protocoles de communication utilisés sur Internet. Elle est communément appelée TCP/IP car les protocoles fondamentaux de la suite sont le protocole de contrôle de transmission (TCP) et le protocole internet (IP). Au cours de son développement, certaines versions étaient connues sous le nom de modèle du ministère de la défense (DoD), car le développement de la méthode de mise en réseau était financé par le ministère de la défense des États-Unis par l'intermédiaire de l'agence DARPA (Defense Advanced Research Projects Agency)
La suite de protocoles Internet permet une communication de données de bout en bout, en spécifiant comment les données doivent être organisées en paquets, adressées, transmises, acheminées et reçues. Les normes techniques qui sous-tendent la suite de protocoles Internet et ses protocoles constitutifs sont maintenues par l'IETF (Internet Engineering Task Force).
La suite de protocoles Internet est le fruit de travaux de recherche et de développement menés par la Defense Advanced Research Projects Agency à la fin des années 1960. En 1975, un essai de communication TCP/IP à deux réseaux a été réalisé entre Stanford et l'University College London. En novembre 1977, un test TCP/IP à trois réseaux a été réalisé entre des sites aux États-Unis, au Royaume-Uni et en Norvège. Plusieurs autres prototypes TCP/IP ont été développés dans plusieurs centres de recherche entre 1978 et 1983.
En mars 1982, le ministère américain de la défense a déclaré que TCP/IP était la norme pour tous les réseaux informatiques militaires
La diffusion de TCP/IP s'est accélérée en juin 1989, lorsque l'Université de Californie à Berkeley a accepté de placer dans le domaine public le code TCP/IP développé pour BSD Unix.
Aujourd'hui, il s'agit de la norme pour les communications internet.
Étape 3 - Envoi et réception d'informations significatives : NMEA 0183
Maintenant que votre Smartphone/Tablette est capable de se connecter au point d'accès et dispose d'un "langage" pour échanger des données avec l'appareil émetteur, il doit disposer d'un moyen de transférer le flux d'octets reçus sous forme d'informations significatives pour l'application en cours (par exemple Aqua Map).
L'application peut s'appuyer sur une "norme" utilisée par tous les instruments de bord pour l'envoi de données. Cette norme est la NMEA 0183.
NMEA 0183 est une spécification combinée électrique et de données pour la communication entre les appareils électroniques marins tels que les échosondeurs, les sonars, les anémomètres, les gyrocompas, les pilotes automatiques, les récepteurs GPS et de nombreux autres types d'instruments. Elle a été définie et est contrôlée par la National Marine Electronic Association. Dans les applications de navigation de plaisance, elle est progressivement abandonnée au profit de la nouvelle norme NMEA 2000, bien que les systèmes conformes à la norme NMEA 2000 envoient également des informations sous forme de chaînes NMEA0183.
La norme NMEA 0183 utilise un simple protocole de communication série ASCII qui définit la manière dont les données sont transmises dans une "phrase" d'un "locuteur" à plusieurs "auditeurs" à la fois.
Au niveau de l'application, la norme définit également le contenu de chaque type de phrase (message), afin que tous les auditeurs (par exemple l'application) puissent analyser les messages avec précision.
Le flux d'octets reçu est interprété comme une série de phrases NMEA, comme dans l'image ci-dessous
Chaque appareil transmet un type de phrase différent. Toutes les phrases ont la forme suivante
$PREFIX,data1,data2,...,dataN*checksum
Le PREFIX est un mot de la forme YYXXX
Où YY est le type de locuteur, par exemple GP signifie que la phrase provient d'un dispositif GPS, tandis que XXX est le type de phrase.
Par exemple, la phrase RMC donne les "informations de navigation minimales recommandées" :
$GPRMC, 092750.000, A, 5321.6802, N, 00630.3372, W, 0.02, 31.66, 280511, , , A*43
Les données fournies sous forme d'informations séparées par des virgules sont les suivantes :
- Heure (UTC),
- Statut,
- Latitude,
- N ou S,
- longitude,
- E ou W,
- Vitesse au sol (noeuds)
- Trajectoire bonne (degrés vrais),
- Date, ddmmyy
- Variation magnétique, degrés
- E ou W
- Statut A - Données valides, V - Données invalides, Indicateur de mode FAA (NMEA 2.3 et ultérieur)
Voyons d'autres phrases importantes :
Du GPS :
GGA - Global Positioning System Fix Data (données de positionnement global)
GSV - Satellites en vue
De la boussole :
HDT - Cap, Vrai
HDM - Cap magnétique
A partir de l'AIS :
AIVDM & AIVDO - Système d'information automatique (AIS)
De l'échosondeur :
DBT - Profondeur sous le transducteur
DPT - Profondeur de l'eau
De l'anémomètre :
MWD - Direction et vitesse du vent
MWV - Vitesse et angle du vent
Maintenant nous avons tous les éléments en place et l'application peut afficher les données des capteurs sur votre écran :)
Il est vraiment impressionnant de penser au nombre de personnes, d'organisations et de connaissances qu'il a fallu pour créer une fonction facile à utiliser dans nos produits de tous les jours. Nous sommes très fiers d'apporter notre petite contribution à cette histoire en utilisant les résultats de tous ces efforts au service de nos plaisanciers.
Enrico Valle, équipe Aqua Map.