Sto analizzando i dati GPS NMEA da un dispositivo che invia timestamp senza millisecondi. Per quanto ho sentito, questi dispositivi useranno uno specifico trigger point quando inviano la frase con il timestamp .000 - dopo il $ nella frase GGA.Sincronizzazione GPS ora
Quindi sto analizzando la frase GGA e prendo il timestamp quando viene ricevuto $ (compenso per eventuali altri caratteri letti nella stessa operazione usando il baud rate della porta seriale).
Da queste informazioni calcolo l'offset per correggere il tempo di sistema, ma quando si confronta il tempo impostato su alcuni server NTP, otterrò una differenza costante di 250 ms - quando correggo manualmente, sono all'interno di una deviazione di 20 ms, che è ok per la mia applicazione.
Ma ovviamente non sono sicuro da dove viene questo offset e se è in qualche modo specifico per il mouse GPS che sto usando o il mio sistema. Sto usando il carattere $ sbagliato, o qualcuno sa come esattamente questo dovrebbe essere gestito? So che questa domanda è molto confusa, ma qualsiasi suggerimento su cosa potrebbe causare questo offset sarebbe molto utile!
Ecco alcuni dati di esempio dal mio dispositivo, con il carattere $ prenderò come offset tempo segnato:
$GPGSA,A,3,17,12,22,18,09,30,14,,,,,,2.1,1.5,1.6*31
$GPRMC,003538.000,A,5046.8555,N,00606.2913,E,0.00,22.37,160209,,,A*58
-> $ <- GPGGA,003539.000,5046.8549,N,00606.2922,E,1,07,1.5,249.9,M,47.6,M,,0000*5C
$GPGSA,A,3,17,12,22,18,09,30,14,,,,,,2.1,1.5,1.6*31
$GPGSV,3,1,10,09,77,107,17,12,63,243,30,05,51,249,16,14,26,315,20*7E
$GPGSV,3,2,10,30,24,246,25,17,23,045,22,15,15,170,16,22,14,274,24*7E
$GPGSV,3,3,10,04,08,092,22,18,07,243,22*74
$GPRMC,003539.000,A,5046.8549,N,00606.2922,E,0.00,22.37,160209,,,A*56
-> $ <- GPGGA,003540.000,5046.8536,N,00606.2935,E,1,07,1.5,249.0,M,47.6,M,,0000*55
$GPGSA,A,3,17,12,22,18,09,30,14,,,,,,2.1,1.5,1.6*31
$GPRMC,003540.000,A,5046.8536,N,00606.2935,E,0.00,22.37,160209,,,A*56
-> $ <- GPGGA,003541.000,5046.8521,N,00606.2948,E,1,07,1.5,247.8,M,47.6,M,,0000*5E
Ok, quindi ho letto che l'abilitazione di un segnale PPS è una funzione proprietaria in alcuni dispositivi GPS, il che darebbe accuratezza msec - nel caso generale l'offset di 0,25 sec, come suggerito nella carta che hai postato, sembra essere un buona congettura :) Grazie! – VolkA