diff options
author | Fred Wright <fw@fwright.net> | 2016-04-20 20:01:03 -0700 |
---|---|---|
committer | Fred Wright <fw@fwright.net> | 2016-04-21 15:32:09 -0700 |
commit | 387431a8f84d009444f66195e3327662714143d6 (patch) | |
tree | f55e2a2a6439e48300341d9b38eb99dc8b9352ec /test/daemon/navika-100-fix.log | |
parent | 1a82f23ce925d509a190b5f98ffaaaee3659d163 (diff) | |
download | gpsd-387431a8f84d009444f66195e3327662714143d6.tar.gz |
Fixes phantom satellites from xxGSVs with a real signal ID.
The change to permit the new signal ID in the GSV sentences broke the
loop end test, causing an extra "satellite" to be processed when the
signal ID is present. The signal ID itself is misinterpreted as a
satellite ID, with the other three values coming from indexing off the
end of the buffer (typically getting zeroes). For receivers
(incorrectly) reporting a signal ID of zero, this would typically get
filtered out by the zero-ID filter (but not in non-GPS cases prior to
fixing another bug), so it often didn't matter. But for receivers
reporting a value of 1 (L1 C/A), this resulted in multiple phantom
satellites with "PRN" 1. If the real PRN 1 was in use, it also
screwed up the "active" count.
The fix is just to round the field count down to a multiple of 4 prior
to using it as the loop's end test.
Also removes an incorrect comment about there being no more than three
GSV sentences in a group.
TESTED:
Ran "scons build-all check". Also verified that, with the Navika
receiver that reports the signal ID as 1, gpsmon and xgps no longer
report phantom PRN 1 satellites, and cgps no longer misbehaves in some
other (uninvestigated) way due to the confusion.
Diffstat (limited to 'test/daemon/navika-100-fix.log')
0 files changed, 0 insertions, 0 deletions