Skip to content

Commit

Permalink
Allow NMEA 4.1 GSVs in the NMEA0183 driver.
Browse files Browse the repository at this point in the history
  • Loading branch information
eric-s-raymond committed Jun 1, 2015
1 parent f0dcc98 commit 25a4dfb
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 1 deletion.
2 changes: 2 additions & 0 deletions NEWS
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
GPSD project news
Repository head:
Fix a rarte crash bug related to devices becomin inaccessible while timed out.
Accept NMEA 4.1 GSV sententences with the trailing signal-ID field.
Fixed incorrect decode of south latitudes in AIS Type 17 messages.
splint has been retired; this removes almost 2KLOC of annotations.
chrpath is no longer a build dependency. Corrected Beidou/QZNSS display
Expand Down
9 changes: 8 additions & 1 deletion driver_nmea0183.c
Original file line number Diff line number Diff line change
Expand Up @@ -613,6 +613,9 @@ static gps_mask_t processGSV(int count, char *field[],
* emit a GPGSV set followed by a GLGSV set. We have also seen a
* SiRF-IV variant that emits GPGSV followed by BDGSV. We need to
* combine these.
*
* NMEA 4.1 adds a signal-ID field just before the checksum. First
* seen in May 2015 on a u-blox M8,
*/

int n, fldnum;
Expand All @@ -624,7 +627,11 @@ static gps_mask_t processGSV(int count, char *field[],
session->gpsdata.satellites_visible = 0;
return ONLINE_SET;
}
if (count % 4 != 0) {
/*
* This check used to be !=0, but we have loosen it a little to let by
* NMEA 4.1 GSVs with an extra signal-ID field at the end.
*/
if (count % 4 > 1) {
gpsd_log(&session->context->errout, LOG_WARN,
"malformed GPGSV - fieldcount %d %% 4 != 0\n",
count);
Expand Down

0 comments on commit 25a4dfb

Please sign in to comment.