diff options
author | Eric S. Raymond <esr@thyrsus.com> | 2009-03-04 18:03:32 +0000 |
---|---|---|
committer | Eric S. Raymond <esr@thyrsus.com> | 2009-03-04 18:03:32 +0000 |
commit | af0806a57ae3e5a4c95f8429e0acc2c02664f519 (patch) | |
tree | f86dd6f73ffe6e6d55fc3311efbece645b09b81e /driver_rtcm3.c | |
parent | 56764b0b48fdcfbe32df1294306bd6982e274b75 (diff) | |
download | gpsd-af0806a57ae3e5a4c95f8429e0acc2c02664f519.tar.gz |
Another RTCM3 message (1013).
Diffstat (limited to 'driver_rtcm3.c')
-rw-r--r-- | driver_rtcm3.c | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/driver_rtcm3.c b/driver_rtcm3.c index 19090b52..6a6202fe 100644 --- a/driver_rtcm3.c +++ b/driver_rtcm3.c @@ -349,7 +349,7 @@ void rtcm3_unpack(/*@out@*/struct rtcm3_t *rtcm, char *buf) } break; - case 1012: + case 1012: /* GLONASS Extended RTK, L1 & L2 */ rtcm->rtcmtypes.rtcm3_1012.header.station_id = (unsigned short)ugrab(12); rtcm->rtcmtypes.rtcm3_1012.header.tow = (time_t)ugrab(27); rtcm->rtcmtypes.rtcm3_1012.header.sync = (bool)ugrab(1); @@ -386,7 +386,17 @@ void rtcm3_unpack(/*@out@*/struct rtcm3_t *rtcm, char *buf) } break; - case 1013: + case 1013: /* System Parameters */ + rtcm->rtcmtypes.rtcm3_1013.station_id =(unsigned short)ugrab(12); + rtcm->rtcmtypes.rtcm3_1013.mjd = (unsigned short)ugrab(16); + rtcm->rtcmtypes.rtcm3_1013.sod = (unsigned short)ugrab(17); + rtcm->rtcmtypes.rtcm3_1013.ncount = (unsigned long)ugrab(5); + rtcm->rtcmtypes.rtcm3_1013.leapsecs = (unsigned char)ugrab(8); + for (i = 0; i < rtcm->rtcmtypes.rtcm3_1013.ncount; i++) { + rtcm->rtcmtypes.rtcm3_1013.announcements[i].id = (unsigned short)ugrab(12); + rtcm->rtcmtypes.rtcm3_1013.announcements[i].sync = (bool)ugrab(1); + rtcm->rtcmtypes.rtcm3_1013.announcements[i].interval = (unsigned short)ugrab(16); + } break; case 1014: @@ -672,6 +682,19 @@ void rtcm3_dump(struct rtcm3_t *rtcm, FILE *fp) break; case 1013: + (void)fprintf(fp, + " station_id=%u, mjd=%u sec=%u leapsecs=%u ncount=%u\n", + rtcm->rtcmtypes.rtcm3_1013.station_id, + rtcm->rtcmtypes.rtcm3_1013.mjd, + rtcm->rtcmtypes.rtcm3_1013.sod, + rtcm->rtcmtypes.rtcm3_1013.leapsecs, + rtcm->rtcmtypes.rtcm3_1013.ncount); + for (i = 0; i < rtcm->rtcmtypes.rtcm3_1013.ncount; i++) + (void)fprintf(fp, + " id=%u sync=%c interval=%u\n", + rtcm->rtcmtypes.rtcm3_1013.announcements[i].id, + BOOL(rtcm->rtcmtypes.rtcm3_1013.announcements[i].sync), + rtcm->rtcmtypes.rtcm3_1013.announcements[i].interval); break; case 1014: |