L'applicazione Aqua Map, come altre applicazioni presenti sul mercato nautico, è in grado di collegarsi alla strumentazione dell'imbarcazione e di visualizzare le informazioni ricevute.
È possibile ottenere la posizione GPS ricevuta da un GPS esterno e utilizzarla al posto del GPS integrato nel dispositivo, visualizzare il valore di profondità ricevuto dal sonar, visualizzare la direzione della bussola e utilizzarla per orientare le mappe nell'app, vedere le informazioni sul vento ricevute dall'anemometro, vedere il target AIS ricevuto dal dispositivo AIS.
I risultati di questa funzione si basano su diverse tecnologie stratificate l'una sull'altra e su standard definiti da molti anni in diverse organizzazioni di standardizzazione.
Con questo articolo vogliamo offrire ai curiosi una panoramica delle tecnologie su cui si basa la funzione, senza pretendere una discussione tecnica esaustiva e approfondita.
Fase 1 - I dispositivi devono essere visibili all'app: la rete di navigazione e la connessione WiFi
Innanzitutto è necessario che i dispositivi siano "connessi" alla stessa rete per potersi vedere e scambiare dati. Il tablet o lo smartphone possono collegarsi a un punto di accesso WiFi della rete.
Nella configurazione più utilizzata, la rete dell'imbarcazione dispone di un gateway WiFi che funziona come punto di accesso WiFi e trasmette le informazioni allo SmartPone/Tablet. È anche possibile avere una configurazione più semplice in cui un singolo dispositivo, come un ricevitore AIS, trasmette direttamente i suoi dati tramite WiFi fungendo anche da punto di accesso.
La connessione può essere stabilita nelle impostazioni WiFi del tablet/smartphone (si veda l'esempio seguente, tratto dalla pagina delle impostazioni dell'iPad)
La rete WiFi deve essere quella offerta dal punto di accesso alla rete dell'imbarcazione.
Dal punto di vista tecnico, lo standard IEEE 802.11 definisce i protocolli che consentono la comunicazione con gli attuali dispositivi wireless abilitati al Wi-Fi, tra cui router e punti di accesso wireless.
Wi-Fi è l'acronimo di "wireless fidelity". Il luogo di nascita tecnico del Wi-Fi è l'Olanda. Nel 1991, NCR-Corporation e AT&T Corporation hanno inventato il precursore di 802.11. La prima versione del protocollo 802.11 è stata rilasciata nel 1997 e forniva velocità di collegamento fino a 2 Mbit/s. Nel 1999, la WiFi-Alliance si è costituita come associazione commerciale per detenere il marchio Wi-Fi con il quale viene venduta la maggior parte dei prodotti. Oggi si trovano ovunque hot spot WiFi e tutti gli smartphone sono dotati di funzionalità WiFi integrate.
Fase 2 - I dispositivi devono essere in grado di trasportare i dati all'applicazione: TCP/IP e UDP
Lo SmartPhone/Tablet e il getway o altro dispositivo della rete nautica devono avere un modo per comunicare tra loro, identificarsi e avviare uno scambio di dati.
Quando si desidera creare una connessione in Aqua Map è necessario definire tra un protocollo TCP o UDP. Questa selezione informa l'applicazione sul tipo di libreria software da utilizzare per connettersi al dispositivo che invia le informazioni. TCP e UDP fanno parte della suite di protocolli Internet e definiscono il modo in cui i dispositivi "parlano" tra loro per scambiare i pacchetti di dati.
I protocolli TCP e UDP fanno parte del livello di trasporto della suite di protocolli Internet. Questo livello stabilisce la connettività da host a host sotto forma di servizi di trasferimento di messaggi end-to-end che sono indipendenti dalla rete sottostante e dalla struttura dei dati dell'utente e dalla logistica dello scambio di informazioni. La connettività al livello di trasporto può essere classificata come orientata alla connessione, implementata in TCP, o senza connessione, implementata in UDP.
Il protocollo TCP richiede l'indicazione dell'indirizzo IP (ad esempio 192.168.1.10) del dispositivo da connettere e del numero di porta (ID del canale di comunicazione per l'applicazione); il protocollo TCP è più robusto e protetto contro gli errori di trasmissione, mentre il protocollo UPD può soffrire di errori di comunicazione e perdita di pacchetti, ma può essere più veloce nella comunicazione ed è più adatto per applicazioni come lo streaming multimediale (audio, video)
La suite di protocolli Internet è il modello concettuale e l'insieme dei protocolli di comunicazione utilizzati in Internet. È comunemente nota come TCP/IP perché i protocolli fondamentali della suite sono il Transmission Control Protocol (TCP) e l'Internet Protocol (IP). Durante il suo sviluppo, alcune versioni erano note come modello del Dipartimento della Difesa (DoD) perché lo sviluppo del metodo di rete era finanziato dal Dipartimento della Difesa degli Stati Uniti attraverso la DARPA (Defense Advanced Research Projects Agency)
La suite di protocolli Internet fornisce una comunicazione di dati end-to-end, specificando come i dati devono essere pacchettizzati, indirizzati, trasmessi, instradati e ricevuti. Gli standard tecnici alla base della suite di protocolli Internet e dei protocolli che la compongono sono gestiti dall'Internet Engineering Task Force (IETF).
La suite di protocolli Internet è nata dalla ricerca e dallo sviluppo condotti dalla Defense Advanced Research Projects Agency alla fine degli anni '60. Nel 1975 è stato eseguito un test di comunicazione TCP/IP a due reti tra Stanford e l'University College di Londra. Nel novembre 1977 è stato condotto un test TCP/IP a tre reti tra siti negli Stati Uniti, nel Regno Unito e in Norvegia. Tra il 1978 e il 1983 sono stati sviluppati numerosi altri prototipi TCP/IP presso diversi centri di ricerca.
Nel marzo 1982, il Dipartimento della Difesa degli Stati Uniti dichiarò TCP/IP lo standard per tutte le reti di computer militari
La diffusione del TCP/IP è stata ulteriormente alimentata nel giugno 1989, quando l'Università della California, Berkeley, ha accettato di rendere di pubblico dominio il codice TCP/IP sviluppato per BSD Unix.
Oggi è lo standard per le comunicazioni via Internet.
Fase 3 - Invio e ricezione di informazioni significative: NMEA 0183
Ora che lo smartphone/tablet è in grado di connettersi al punto di accesso e dispone di un "linguaggio" per scambiare dati con il dispositivo di invio, deve avere un modo per trasferire il flusso di byte ricevuti in informazioni significative per l'applicazione in esecuzione (ad esempio Aqua Map).
L'applicazione può fare affidamento su uno "standard" utilizzato da tutti gli strumenti dell'imbarcazione per l'invio dei dati. Questo standard è l'NMEA 0183.
NMEA 0183 è una specifica elettrica e di dati combinata per la comunicazione tra strumenti elettronici marini quali ecoscandaglio, sonar, anemometro, autopilota con girobussola, ricevitori GPS e molti altri tipi di strumenti. È stata definita e controllata dalla National Marine Electronic Association. Nelle applicazioni nautiche da diporto è stato lentamente abbandonato a favore del nuovo standard NMEA 2000, anche se i sistemi conformi a NMEA 2000 inviano informazioni in stringhe NMEA0183.
Lo standard NMEA 0183 utilizza un semplice protocollo di comunicazione seriale ASCII che definisce le modalità di trasmissione dei dati in una "frase" da un "parlante" a più "ascoltatori" alla volta.
A livello di applicazione, lo standard definisce anche il contenuto di ciascun tipo di frase (messaggio), in modo che tutti gli ascoltatori (ad esempio l'App) possano analizzare i messaggi con precisione.
Il flusso di byte ricevuto viene interpretato come una serie di frasi NMEA, come nell'immagine seguente
Ogni dispositivo trasmette frasi di tipo diverso, tutte le frasi hanno la forma di
$PREFIX,dati1,dati2,...,datiN*checksum
Il PREFIX è una parola della forma YYXXX
Dove YY è il tipo di parlante, ad esempio GP significa che la frase proviene da un dispositivo GPS, mentre XXX è il tipo di frase.
Ad esempio, la frase RMC fornisce le "Informazioni minime di navigazione raccomandate":
$GPRMC, 092750.000, A, 5321.6802, N, 00630.3372, W, 0.02, 31.66, 280511, , , A*43
I dati forniti come informazioni separate da virgole sono:
- Ora (UTC),
- Stato,
- Latitudine,
- N o S,
- longitudine,
- E o W,
- Velocità al suolo (nodi)
- Traccia fatta bene (gradi veri),
- Data, ddmmyy
- Variazione magnetica, gradi
- E o W
- Stato A - Dati validi, V - Dati non validi, indicatore modalità FAA (NMEA 2.3 e successivi)
Vediamo altre frasi importanti:
Da GPS:
GGA - Dati Fix del Sistema di Posizionamento Globale
GSV - Satelliti in vista
Da Bussola:
HDT - Direzione, vera
HDM - Direzione, magnetica
Da AIS:
AIVDM e AIVDO - Sistema informativo automatico (AIS)
Da ecoscandaglio:
DBT - Profondità sotto il trasduttore
DPT - Profondità dell'acqua
Da anemometro:
MWD - Direzione e velocità del vento
MWV - Velocità e angolo del vento
Ora abbiamo tutti i pezzi al loro posto e l'applicazione può mostrare i dati dei sensori sullo schermo :)
È davvero impressionante pensare a quante persone, organizzazioni e conoscenze siano state necessarie per creare una funzione facile da usare nei nostri prodotti di uso quotidiano. Siamo molto orgogliosi di dare il nostro piccolo contributo a questa storia, utilizzando i risultati di tutti questi sforzi per servire i nostri diportisti.
Enrico Valle, team Aqua Map.