Jeg afkoder NMEA GPRMC -sætninger fra en GPS-enhed. Datofeltformatet er ddmmyy
. Så 191194
er den 19. november 1994. Dette gør det umuligt at repræsentere år større end 1999. Har specifikationen blevet ændret for at løse dette problem?
Svar
Disse meddelelser svarer til det gamle NMEA 0183 specifikation. Hvilken mere end ændret blev erstattet af NMEA 2000 , det er meget forskelligt og er ikke en ascii seriel kommunikation, det er dybest set et helt andet dyr. Imidlertid er NMEA 0183 stadig i brug og understøttet af mange enheder. Og det tocifrede år bare vælter. Derfor er år 2000 repræsenteret som 00 og 2018 som 18. Her er et eksempel på et stykke af NMEA-output optaget af mig selv for nogle å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 det tidsstemplet er 090210, hvilket faktisk var 9. februar 2010.
Heldigvis er der ingen tvetydighed i dataene, fordi der ikke var nogen GPS eller NMEA tilbage i 1910. Den første NMEA-protokol var NMEA 0180 med ” 80 “i” 0180 “betyder 1980 ( 3 ), så du kan være sikker på, at enhver værdi under 80 svarer til dette århundrede. Problemerne starter i 2080, men heldigvis er det stadig langt fremme.
Svar
Da GPS kun startet i 1978 du kan sandsynligvis antage, at enhver dato, der er mindre end 78, er i dette århundrede.