diff options
author | Reinhard Arlt <reinhard.arlt@t-online.de> | 2013-05-13 20:24:24 +0300 |
---|---|---|
committer | Reinhard Arlt <reinhard.arlt@t-online.de> | 2013-05-13 20:24:24 +0300 |
commit | a6146e897cba80a72a005e444a470c8747e38b06 (patch) | |
tree | c016888806ad93a1973182f89fba260cc9616960 /driver_nmea2000.c | |
parent | d64afb745c825bd9e3644f638bee47d549535063 (diff) | |
download | gpsd-a6146e897cba80a72a005e444a470c8747e38b06.tar.gz |
Allow sat report for pseudonmea and nmea2000
Diffstat (limited to 'driver_nmea2000.c')
-rw-r--r-- | driver_nmea2000.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/driver_nmea2000.c b/driver_nmea2000.c index 2fa9d61d..9cf24f1c 100644 --- a/driver_nmea2000.c +++ b/driver_nmea2000.c @@ -88,13 +88,17 @@ static void print_data(unsigned char *buffer, int len, PGN *pgn) static gps_mask_t get_mode(struct gps_device_t *session) { - if (session->driver.nmea2000.mode_valid) { + if (session->driver.nmea2000.mode_valid & 1) { session->newdata.mode = session->driver.nmea2000.mode; } else { session->newdata.mode = MODE_NOT_SEEN; } - - return MODE_SET; + + if (session->driver.nmea2000.mode_valid & 2) { + return MODE_SET | USED_IS; + } else { + return MODE_SET; + } } @@ -247,7 +251,7 @@ static gps_mask_t hnd_129539(unsigned char *bu, int len, PGN *pgn, struct gps_de mask = 0; session->driver.nmea2000.sid[1] = bu[0]; - session->driver.nmea2000.mode_valid = 1; + session->driver.nmea2000.mode_valid |= 1; req_mode = (unsigned int)((bu[1] >> 0) & 0x07); act_mode = (unsigned int)((bu[1] >> 3) & 0x07); @@ -315,6 +319,7 @@ static gps_mask_t hnd_129540(unsigned char *bu, int len, PGN *pgn, struct gps_de l2 += 1; } } + session->driver.nmea2000.mode_valid |= 2; return SATELLITE_SET | USED_IS; } |