title: NMEA 0183
text: # NMEA 0183
  
  NMEA 0183 è uno standard utilizzato soprattutto in nautica e nella comunicazione di dati satellitari GPS. L'ente che sviluppa e gestisce il protocollo è la National Marine Electronics Association.
  
  ## Struttura generale delle sentences
  
  Tutte le sentences hanno una struttura del tipo:
  
  La frase inizia sempre con $ e termina sempre con CR LF. Ogni frase è lunga al massimo 80 caratteri.
  
  ### Prefisso
  
  Il prefisso è la prima parte della stringa, che serve a specificare di che tipo è il talker, ad esempio, autopilota, dispositivo GPS, controllo velocità, controllo direzione, ecc.
  
  In caso dell'utilizzo di un dispositivo GPS, il prefisso è GP seguito dal tipo della frase. Tutte le frasi vengono identificate con 3 lettere (es: RMC,RMB, ecc.). Un dispositivo GLONASS utilizza il prefisso GL, mentre un ricevitore GNSS utilizza il prefisso GN
  
  ### Checksum
  
  Il Checksum viene calcolato escludendo il carattere di inizio stringa e il carattere *. L'algoritmo usato è l'exclusive OR 8bit, componendo il risultato in 2 lettere o numeri. La cifra più significativa delle due verrà inviata per prima.
  
  Esempio di funzione per il calcolo del checksum di una stringa NMEA in Python:
  
  ## Le frasi
  
  Le frasi sono in totale più di 50, la maggior parte proprietarie di ciascun dispositivo. Le frasi standard e più comuni del protocollo sono:
  
  * $GPRMC
  * $GPRMB
  * $GPGGA
  * $GPGSA
  * $GPGLL
  * $GPGSV
  * $GPRTE
  