summaryrefslogtreecommitdiff
path: root/driver_nmea2000.c
diff options
context:
space:
mode:
authorReinhard Arlt <reinhard.arlt@t-online.de>2013-05-13 20:24:24 +0300
committerReinhard Arlt <reinhard.arlt@t-online.de>2013-05-13 20:24:24 +0300
commita6146e897cba80a72a005e444a470c8747e38b06 (patch)
treec016888806ad93a1973182f89fba260cc9616960 /driver_nmea2000.c
parentd64afb745c825bd9e3644f638bee47d549535063 (diff)
downloadgpsd-a6146e897cba80a72a005e444a470c8747e38b06.tar.gz
Allow sat report for pseudonmea and nmea2000
Diffstat (limited to 'driver_nmea2000.c')
-rw-r--r--driver_nmea2000.c13
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;
}