Jeg dekoder NMEA GPRMC setninger fra en GPS-enhet. Datofeltformatet er ddmmyy. Så 191194 er 19. november 1994. Dette gjør det umulig å representere år større enn 1999. Har spesifikasjonen blitt endret for å komme rundt dette problemet?

Svar

Disse meldingene tilsvarer det gamle NMEA 0183 spesifikasjon. Som mer enn endret ble erstattet av NMEA 2000 , det er veldig annerledes og er ikke en ascii seriell kommunikasjon, det er i utgangspunktet et helt annet dyr. Imidlertid er NMEA 0183 fortsatt i bruk og støttes av mange enheter. Og det tosifrede året bare ruller over. Derfor er år 2000 representert som 00 og 2018 som 18. Her er et eksempel på en del av NMEA-produksjon registrert av meg selv for noen år siden:

$SDMTW,8.8,C*34 $SDVHW,,,,,0.00,N,0.00,K*5B $GPRMC,190430,A,4812.3038,S,07330.7690,W,3.7,3.8,090210,13.7,E,D*26 $GPRMB,A,,,,,,,,,,,,A,D*0E $GPGGA,190430,4812.3038,S,07330.7690,W,2,06,2.5,4.9,M,12.4,M,,*42 $GPGLL,4812.3038,S,07330.7690,W,190430,A,D*4A 

Du kan se at tidsstemplet er 090210, som faktisk var 9. februar 2010.

Heldigvis er det ingen tvetydighet i dataene fordi det ikke var GPS eller NMEA tilbake i 1910. Den første NMEA-protokollen var NMEA 0180, med » 80 «i» 0180 «som betyr 1980 ( 3 ), så du kan være trygg på at en verdi under 80 tilsvarer dette århundret. Problemene kommer til å starte i 2080, men heldigvis er det fremdeles langt fremme.

Svar

Siden GPS bare startet i 1978 du kan antagelig anta at en dato mindre enn 78 er i dette århundret.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *