tomojitakasu / RTKLIB

2.5k stars 1.59k forks source link

rtcm3 glonass ephemeris message 1020 date error #548

Open GHolk opened 3 years ago

GHolk commented 3 years ago

I am running rtkrcv for severial days positioning in real-time ppp mode to monitoring landslide. I did not send the ephemeris which rover received back, but using the rtcm3 broadcast ephemeris from igs. ( http://products.igs-ip.net/BCEP00BKG0 )

I notice that after days, glonass satellites ephemeris's date always stay at first day, while the time of glonass ephemeris is correct. maybe the qzss's date is error, too?

following is the navidata command and its result in rtkrcv's console, and I remove most other gnss constellation or it will be too long.

rtkrcv> navidata
SAT   S IOD IOC FRQ A/A SVH                 Toe                 Toc             Ttr/Tof L2C L2P
G01   -  45  45   0   0 000 2020/10/06 06:00:00 2020/10/06 06:00:00 2020/10/04 15:43:54   1   0
G02   -  15  15   0   2 000 2020/10/06 06:00:00 2020/10/06 06:00:00 2020/10/04 15:43:54   0   0
...
G31   -  80  80   0   1 000 2020/10/06 06:00:00 2020/10/06 06:00:00 2020/10/04 15:43:54   1   0
G32   -  55  55   0   0 000 2020/10/06 06:00:00 2020/10/06 06:00:00 2020/10/04 15:43:54   1   0
E01   -  61   0   0 107 000 2020/10/06 04:50:00 2020/10/06 04:50:00 2020/10/04 15:43:54 513   0
E02   -  66   0   0 107 000 2020/10/06 05:40:00 2020/10/06 05:40:00 2020/10/04 15:43:54 513   0
...
E33   -  66   0   0 107 000 2020/10/06 05:40:00 2020/10/06 05:40:00 2020/10/04 15:43:54 513   0
E36   -  66   0   0 107 000 2020/10/06 05:40:00 2020/10/06 05:40:00 2020/10/04 15:43:54 513   0
J01   -  61 829   0   1 000 2020/10/02 08:00:00 2020/10/02 08:00:00                   -   2   0
J02   -  61 829   0   1 000 2020/10/02 08:00:00 2020/10/02 08:00:00                   -   2   0
J03   -  61 829   0   1 000 2020/10/02 08:00:00 2020/10/02 08:00:00                   -   2   0
...
J07   -  61 829   0   1 000 2020/10/02 08:00:00 2020/10/02 08:00:00                   -   2   0
C01   -   1   0   0   0 000 2020/10/06 05:00:14 2020/10/06 05:00:14 2020/10/04 15:43:54   0   0
C02   -   1   0   0   0 000 2020/10/06 05:00:14 2020/10/06 05:00:14 2020/10/04 15:43:54   0   0
C03   -   1   0   0   0 000 2020/10/06 05:00:14 2020/10/06 05:00:14 2020/10/04 15:43:54   0   0
...
C34   -  25  25   0   0 000 2020/10/06 05:00:14 2020/10/06 05:00:14 2020/10/04 15:43:54   0   0
C35   -   1   1   0   0 000 2020/10/06 05:00:14 2020/10/06 05:00:14 2020/10/04 15:43:54   0   0
C36   -   1   1   0   0 000 2020/10/06 05:00:14 2020/10/06 05:00:14 2020/10/04 15:43:54   0   0
C37   -  25  25   0   0 000 2020/10/06 05:00:14 2020/10/06 05:00:14 2020/10/04 15:43:54   0   0
R01   -  35   0   1   0  00 2020/10/04 05:45:18                   - 2020/10/04 05:30:18   0   0
R02   -  35   0  -4   0  00 2020/10/04 05:45:18                   - 2020/10/04 05:30:18   0   0
R03   -  35   0   5   0  00 2020/10/04 05:45:18                   - 2020/10/04 05:30:18   0   0
R04   -  35   0   6   0  00 2020/10/04 05:45:18                   - 2020/10/04 05:30:18   0   0
R05   -  35   0   1   0  00 2020/10/04 05:45:18                   - 2020/10/04 05:30:18   0   0
R06   -  35   0  -4   0  00 2020/10/04 05:45:18                   - 2020/10/04 05:30:18   0   0
R07   -  35   0   5   0  00 2020/10/04 05:45:18                   - 2020/10/04 05:30:18   0   0
R08   -  35   0   6   0  00 2020/10/04 05:45:18                   - 2020/10/04 05:30:18   0   0
R09   -  35   0  -2   0  00 2020/10/04 05:45:18                   - 2020/10/04 05:30:18   0   0
R10   -  35   0  -7   0  00 2020/10/04 05:45:18                   - 2020/10/04 05:30:18   0   0
R11   -  35   0   0   0  00 2020/10/04 05:45:18                   - 2020/10/04 05:30:18   0   0
R12   -  35   0  -1   0  00 2020/10/04 05:45:18                   - 2020/10/04 05:30:18   0   0
R13   -  35   0  -2   0  00 2020/10/04 05:45:18                   - 2020/10/04 05:30:18   0   0
R14   -  35   0  -7   0  00 2020/10/04 05:45:18                   - 2020/10/04 05:30:18   0   0
R15   -  35   0   0   0  00 2020/10/04 05:45:18                   - 2020/10/04 05:30:18   0   0
R16   -  35   0  -1   0  00 2020/10/04 05:45:18                   - 2020/10/04 05:30:18   0   0
R17   -  35   0   4   0  00 2020/10/04 05:45:18                   - 2020/10/04 05:30:18   0   0
R18   -  35   0  -3   0  00 2020/10/04 05:45:18                   - 2020/10/04 05:30:18   0   0
R19   -  35   0   3   0  00 2020/10/04 05:45:18                   - 2020/10/04 05:30:18   0   0
R20   -  35   0   2   0  00 2020/10/04 05:45:18                   - 2020/10/04 05:30:18   0   0
R21   -  35   0   4   0  00 2020/10/04 05:45:18                   - 2020/10/04 05:30:18   0   0
R22   -  35   0  -3   0  00 2020/10/04 05:45:18                   - 2020/10/04 05:30:18   0   0
R23   -  35   0   3   0  00 2020/10/04 05:45:18                   - 2020/10/04 05:30:18   0   0
R24   -  35   0   2   0  00 2020/10/04 05:45:18                   - 2020/10/04 05:30:18   0   0
R26   -  35   0  -6   0  00 2020/10/04 05:45:18                   - 2020/10/04 05:30:18   0   0
ION:  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
UTC:  0.00E+00  0.00E+00  0.00E+00  0.00E+00  LEAPS: 0
GHolk commented 3 years ago

I believe that this bug is cause by rtcm->time does not change. In the branch trace-rtcm-time, I log the rtcm->time.time to level 2 log. then one can see that rtcm->time never got update.

GPS does not suffer this problem, because decode_rtcm1019 extract gps second from rtcm message rather than rtcm->time.

Maybe I can fix this bug, but I am not sure where should add code to update rtcm->time. therefore, currently I just ignore rtcm->time but get a new time tag from timeget() in hot fix monkey-fix-rtcm-time , or anyone who familar with this project give me some hint about where should I update rtcm->time?

GHolk commented 3 years ago

it seem that rtcm->time will not get update unless the rtcm->opt has -RT_INP flag. rtkrcv init that flag as empty string array ropts in line 480 in commit 2ca7f95 . i add a option and global variable on branch 6aaa4f5dab7414 , so one can add -RT_INP flag with command rtkrcv -opt -RT_INP .