diff options
-rw-r--r-- | cgps.c | 6 | ||||
-rw-r--r-- | driver_evermore.c | 15 | ||||
-rw-r--r-- | driver_garmin.c | 4 | ||||
-rw-r--r-- | driver_italk.c | 4 | ||||
-rw-r--r-- | driver_navcom.c | 4 | ||||
-rw-r--r-- | driver_nmea.c | 26 | ||||
-rw-r--r-- | driver_oncore.c | 6 | ||||
-rw-r--r-- | driver_sirf.c | 2 | ||||
-rw-r--r-- | driver_superstar2.c | 2 | ||||
-rw-r--r-- | driver_tsip.c | 6 | ||||
-rw-r--r-- | driver_ubx.c | 2 | ||||
-rw-r--r-- | driver_zodiac.c | 4 | ||||
-rw-r--r-- | gps.h | 2 | ||||
-rw-r--r-- | gpsd.c | 10 | ||||
-rw-r--r-- | gpsd_json.c | 6 | ||||
-rw-r--r-- | libgps.c | 12 | ||||
-rw-r--r-- | libgps_json.c | 2 | ||||
-rw-r--r-- | libgpsd_core.c | 4 | ||||
-rw-r--r-- | monitor_nmea.c | 2 | ||||
-rw-r--r-- | pseudonmea.c | 10 | ||||
-rw-r--r-- | www/protocol-transition.txt | 4 | ||||
-rw-r--r-- | xgps.c | 8 |
22 files changed, 73 insertions, 68 deletions
@@ -470,10 +470,10 @@ static void update_gps_panel(struct gps_data_t *gpsdata, xgps.c. Note that the satellite list may be truncated based on available screen size, or may only show satellites used for the fix. */ - if (gpsdata->satellites!=0) { + if (gpsdata->satellites_visible!=0) { if (display_sats >= MAX_POSSIBLE_SATS) { for (i = 0; i < MAX_POSSIBLE_SATS; i++) { - if (i < gpsdata->satellites) { + if (i < gpsdata->satellites_visible) { (void)snprintf(scr, sizeof(scr), " %3d %02d %03d %02d %c", gpsdata->PRN[i], @@ -488,7 +488,7 @@ static void update_gps_panel(struct gps_data_t *gpsdata, n=0; for (i = 0; i < MAX_POSSIBLE_SATS; i++) { if (n < display_sats) { - if ((i < gpsdata->satellites) && ((gpsdata->used[i]!=0) || (gpsdata->satellites <= display_sats))) { + if ((i < gpsdata->satellites_visible) && ((gpsdata->used[i]!=0) || (gpsdata->satellites_visible <= display_sats))) { (void)snprintf(scr, sizeof(scr), " %3d %02d %03d %02d %c", gpsdata->PRN[i], diff --git a/driver_evermore.c b/driver_evermore.c index 240e2050..79fb4e64 100644 --- a/driver_evermore.c +++ b/driver_evermore.c @@ -267,16 +267,17 @@ gps_mask_t evermore_parse(struct gps_device_t *session, unsigned char *buf, size case 0x06: /* Channel Status Output */ session->gpsdata.fix.time = session->gpsdata.sentence_time = gpstime_to_unix((int)getleuw(buf2, 2), getleul(buf2, 4)*0.01) - session->context->leap_seconds; - session->gpsdata.satellites = (int)getub(buf2, 8); + session->gpsdata.satellites_visible = (int)getub(buf2, 8); session->gpsdata.satellites_used = 0; memset(session->gpsdata.used, 0, sizeof(session->gpsdata.used)); - if (session->gpsdata.satellites > 12) { + if (session->gpsdata.satellites_visible > 12) { gpsd_report(LOG_WARN, "Warning: EverMore packet has information about %d satellites!\n", - session->gpsdata.satellites); + session->gpsdata.satellites_visible); } - if (session->gpsdata.satellites > EVERMORE_CHANNELS) session->gpsdata.satellites = EVERMORE_CHANNELS; + if (session->gpsdata.satellites_visible > EVERMORE_CHANNELS) + session->gpsdata.satellites_visible = EVERMORE_CHANNELS; satcnt = 0; - for (i = 0; i < (size_t)session->gpsdata.satellites; i++) { + for (i = 0; i < (size_t)session->gpsdata.satellites_visible; i++) { int prn; // channel = getub(buf2, 7*i+7+2) prn = (int)getub(buf2, 7*i+7+3); @@ -301,13 +302,13 @@ gps_mask_t evermore_parse(struct gps_device_t *session, unsigned char *buf, size satcnt++; } - session->gpsdata.satellites = (int)satcnt; + session->gpsdata.satellites_visible = (int)satcnt; /* that's all the information in this packet */ mask = TIME_SET | SATELLITE_SET | USED_SET; gpsd_report(LOG_DATA, "CSO 0x06: time=%.2f used=%d reported=%d mask=TIME|SATELLITE|USED\n", session->gpsdata.fix.time, session->gpsdata.satellites_used, - session->gpsdata.satellites); + session->gpsdata.satellites_visible); return mask; case 0x08: /* Measurement Data Output */ diff --git a/driver_garmin.c b/driver_garmin.c index de5dfe34..6259100e 100644 --- a/driver_garmin.c +++ b/driver_garmin.c @@ -552,7 +552,7 @@ gps_mask_t PrintSERPacket(struct gps_device_t *session, unsigned char pkt_id session->gpsdata.used[session->gpsdata.satellites_used++] = (int)sats->svid; } - session->gpsdata.satellites++; + session->gpsdata.satellites_visible++; j++; } @@ -560,7 +560,7 @@ gps_mask_t PrintSERPacket(struct gps_device_t *session, unsigned char pkt_id // FIXME: should dump skyview here as well gpsd_report(LOG_DATA, "SAT_DATA: reported=%d used=%d mask=%s\n", - session->gpsdata.satellites, + session->gpsdata.satellites_visible, session->gpsdata.satellites_used, gpsd_maskdump(mask)); break; diff --git a/driver_italk.c b/driver_italk.c index 2ade35a1..919037ee 100644 --- a/driver_italk.c +++ b/driver_italk.c @@ -158,7 +158,7 @@ static gps_mask_t decode_itk_prnstatus(struct gps_device_t *session, unsigned ch session->gpsdata.used[nsv++] = session->gpsdata.PRN[i]; } } - session->gpsdata.satellites = (int)st; + session->gpsdata.satellites_visible = (int)st; session->gpsdata.satellites_used = (int)nsv; mask = USED_SET | SATELLITE_SET | TIME_SET;; @@ -166,7 +166,7 @@ static gps_mask_t decode_itk_prnstatus(struct gps_device_t *session, unsigned ch gpsd_report(LOG_DATA, "PRN_STATUS: time=%.2f reported%d used=%d mask=USED|SATELLITE|TIME\n", session->gpsdata.fix.time, - session->gpsdata.satellites, + session->gpsdata.satellites_visible, session->gpsdata.satellites_used); } diff --git a/driver_navcom.c b/driver_navcom.c index a2880719..8a0ebba9 100644 --- a/driver_navcom.c +++ b/driver_navcom.c @@ -723,7 +723,7 @@ static gps_mask_t handle_0x86(struct gps_device_t *session) //session->gpsdata.dop.pdop = (int)pdop / 10.0; /* Satellite count */ - session->gpsdata.satellites = (int)sats_visible; + session->gpsdata.satellites_visible = (int)sats_visible; session->gpsdata.satellites_used = (int)sats_used; /* Fix mode */ @@ -793,7 +793,7 @@ static gps_mask_t handle_0x86(struct gps_device_t *session) gpsd_report(LOG_DATA, "CS 0x86: reported=%d, used=%d, mask=SATELLITE|STATUS\n", - session->gpsdata.satellites, session->gpsdata.satellites_used); + session->gpsdata.satellites_visible, session->gpsdata.satellites_used); return SATELLITE_SET | STATUS_SET; } diff --git a/driver_nmea.c b/driver_nmea.c index 370258fc..286ac2a6 100644 --- a/driver_nmea.c +++ b/driver_nmea.c @@ -446,13 +446,13 @@ static gps_mask_t processGPGSV(int count, char *field[], struct gps_device_t *se int n, fldnum; if (count <= 3) { gpsd_zero_satellites(&session->gpsdata); - session->gpsdata.satellites = 0; + session->gpsdata.satellites_visible = 0; return ERROR_SET; } if (count % 4 != 0){ gpsd_report(LOG_WARN, "malformed GPGSV - fieldcount %d %% 4 != 0\n", count); gpsd_zero_satellites(&session->gpsdata); - session->gpsdata.satellites = 0; + session->gpsdata.satellites_visible = 0; return ERROR_SET; } @@ -464,27 +464,27 @@ static gps_mask_t processGPGSV(int count, char *field[], struct gps_device_t *se gpsd_zero_satellites(&session->gpsdata); for (fldnum = 4; fldnum < count; ) { - if (session->gpsdata.satellites >= MAXCHANNELS) { + if (session->gpsdata.satellites_visible >= MAXCHANNELS) { gpsd_report(LOG_ERROR, "internal error - too many satellites!\n"); gpsd_zero_satellites(&session->gpsdata); break; } - session->gpsdata.PRN[session->gpsdata.satellites] = atoi(field[fldnum++]); - session->gpsdata.elevation[session->gpsdata.satellites] = atoi(field[fldnum++]); - session->gpsdata.azimuth[session->gpsdata.satellites] = atoi(field[fldnum++]); - session->gpsdata.ss[session->gpsdata.satellites] = (float)atoi(field[fldnum++]); + session->gpsdata.PRN[session->gpsdata.satellites_visible] = atoi(field[fldnum++]); + session->gpsdata.elevation[session->gpsdata.satellites_visible] = atoi(field[fldnum++]); + session->gpsdata.azimuth[session->gpsdata.satellites_visible] = atoi(field[fldnum++]); + session->gpsdata.ss[session->gpsdata.satellites_visible] = (float)atoi(field[fldnum++]); /* * Incrementing this unconditionally falls afoul of chipsets like * the Motorola Oncore GT+ that emit empty fields at the end of the * last sentence in a GPGSV set if the number of satellites is not * a multiple of 4. */ - if (session->gpsdata.PRN[session->gpsdata.satellites] != 0) - session->gpsdata.satellites++; + if (session->gpsdata.PRN[session->gpsdata.satellites_visible] != 0) + session->gpsdata.satellites_visible++; } - if (session->driver.nmea.part == session->driver.nmea.await && atoi(field[3]) != session->gpsdata.satellites) + if (session->driver.nmea.part == session->driver.nmea.await && atoi(field[3]) != session->gpsdata.satellites_visible) gpsd_report(LOG_WARN, "GPGSV field 3 value of %d != actual count %d\n", - atoi(field[3]), session->gpsdata.satellites); + atoi(field[3]), session->gpsdata.satellites_visible); /* not valid data until we've seen a complete set of parts */ if (session->driver.nmea.part < session->driver.nmea.await) { @@ -500,7 +500,7 @@ static gps_mask_t processGPGSV(int count, char *field[], struct gps_device_t *se * elevations). This behavior was observed under SiRF firmware * revision 231.000.000_A2. */ - for (n = 0; n < session->gpsdata.satellites; n++) + for (n = 0; n < session->gpsdata.satellites_visible; n++) if (session->gpsdata.azimuth[n] != 0) goto sane; gpsd_report(LOG_WARN, "Satellite data no good (%d of %d).\n", @@ -801,7 +801,7 @@ static gps_mask_t processPASHR(int c UNUSED, char *field[], struct gps_device_t } } else if (0 == strcmp("SAT", field[1])){ /* Satellite Status */ int i, n, p, u; - n = session->gpsdata.satellites = atoi(field[2]); + n = session->gpsdata.satellites_visible = atoi(field[2]); u = 0; for (i = 0; i < n; i++){ session->gpsdata.PRN[i] = p = atoi(field[3+i*5+0]); diff --git a/driver_oncore.c b/driver_oncore.c index f9d00acf..dd7577cc 100644 --- a/driver_oncore.c +++ b/driver_oncore.c @@ -185,7 +185,7 @@ oncore_msg_navsol(struct gps_device_t *session, unsigned char *buf, size_t data_ } /*@ +boolops @*/ session->gpsdata.satellites_used = (int)nsv; - session->gpsdata.satellites = (int)st; + session->gpsdata.satellites_visible = (int)st; mask |= SATELLITE_SET | USED_SET; @@ -206,7 +206,7 @@ oncore_msg_navsol(struct gps_device_t *session, unsigned char *buf, size_t data_ session->gpsdata.fix.mode, session->gpsdata.status, session->gpsdata.satellites_used, - session->gpsdata.satellites, + session->gpsdata.satellites_visible, gpsd_maskdump(mask)); return mask; } @@ -268,7 +268,7 @@ oncore_msg_svinfo(struct gps_device_t *session, unsigned char *buf, size_t data_ session->driver.oncore.elevation[i] = el; session->driver.oncore.azimuth[i] = az; /* If it has an entry in the satellite list, update it! */ - for (j = 0; j < session->gpsdata.satellites; j++) + for (j = 0; j < session->gpsdata.satellites_visible; j++) if (session->gpsdata.PRN[j] == sv) { session->gpsdata.elevation[j] = el; session->gpsdata.azimuth[j] = az; diff --git a/driver_sirf.c b/driver_sirf.c index 3bf356d1..af2df68e 100644 --- a/driver_sirf.c +++ b/driver_sirf.c @@ -395,7 +395,7 @@ static gps_mask_t sirf_msg_svinfo(struct gps_device_t *session, unsigned char *b if (good!=0) st += 1; } - session->gpsdata.satellites = st; + session->gpsdata.satellites_visible = st; #ifdef NTPSHM_ENABLE if (st > 3) { if ((session->driver.sirf.time_seen & TIME_SEEN_GPS_1)==0) diff --git a/driver_superstar2.c b/driver_superstar2.c index 1cc7d638..1dadde13 100644 --- a/driver_superstar2.c +++ b/driver_superstar2.c @@ -272,7 +272,7 @@ superstar2_msg_svinfo(struct gps_device_t *session, st++; } session->gpsdata.satellites_used = nsv; - session->gpsdata.satellites = st; + session->gpsdata.satellites_visible = st; return SATELLITE_SET | USED_SET | ONLINE_SET; } diff --git a/driver_tsip.c b/driver_tsip.c index 41220963..8544e02b 100644 --- a/driver_tsip.c +++ b/driver_tsip.c @@ -341,10 +341,10 @@ static gps_mask_t tsip_analyze(struct gps_device_t *session) = session->gpsdata.azimuth[i] = 0; session->gpsdata.ss[i] = 0.0; } - if (++i == session->gpsdata.satellites) + if (++i == session->gpsdata.satellites_visible) mask |= SATELLITE_SET; /* last of the series */ - if (i > session->gpsdata.satellites) - session->gpsdata.satellites = i; + if (i > session->gpsdata.satellites_visible) + session->gpsdata.satellites_visible = i; } break; case 0x6d: /* All-In-View Satellite Selection */ diff --git a/driver_ubx.c b/driver_ubx.c index c5b808d2..19f9559b 100644 --- a/driver_ubx.c +++ b/driver_ubx.c @@ -209,7 +209,7 @@ ubx_msg_nav_svinfo(struct gps_device_t *session, unsigned char *buf, size_t data /*@ +predboolothers */ j++; } - session->gpsdata.satellites = (int)st; + session->gpsdata.satellites_visible = (int)st; session->gpsdata.satellites_used = (int)nsv; return SATELLITE_SET | USED_SET; } diff --git a/driver_zodiac.c b/driver_zodiac.c index f7c45b99..20d14df0 100644 --- a/driver_zodiac.c +++ b/driver_zodiac.c @@ -283,10 +283,10 @@ static gps_mask_t handle1003(struct gps_device_t *session) session->gpsdata.dop.hdop = (unsigned int)getzword(11) * 1e-2; session->gpsdata.dop.vdop = (unsigned int)getzword(12) * 1e-2; session->gpsdata.dop.tdop = (unsigned int)getzword(13) * 1e-2; - session->gpsdata.satellites = n; + session->gpsdata.satellites_visible = n; for (i = 0; i < ZODIAC_CHANNELS; i++) { - if (i < session->gpsdata.satellites) { + if (i < session->gpsdata.satellites_visible) { session->gpsdata.PRN[i] = (int)getzword(15 + (3 * i)); session->gpsdata.azimuth[i] = (int)(((short)getzword(16 + (3 * i))) * RAD_2_DEG * 1e-4); if (session->gpsdata.azimuth[i] < 0) @@ -936,7 +936,7 @@ struct gps_data_t { double epe; /* spherical position error, 95% confidence (meters) */ /* satellite status -- valid when satellites > 0 */ - int satellites; /* # of satellites in view */ + int satellites_visible; /* # of satellites in view */ int PRN[MAXCHANNELS]; /* PRNs of satellite */ int elevation[MAXCHANNELS]; /* elevation of satellite */ int azimuth[MAXCHANNELS]; /* azimuth */ @@ -1470,7 +1470,7 @@ static bool handle_oldstyle(struct subscriber_t *sub, char *buf, (void)strlcpy(phrase, ",X=?", sizeof(phrase)); break; case 'Y': - if ((channel=mandatory_assign_channel(sub, GPS, NULL))!= NULL && channel->device->gpsdata.satellites > 0) { + if ((channel=mandatory_assign_channel(sub, GPS, NULL))!= NULL && channel->device->gpsdata.satellites_visible > 0) { int used, reported = 0; (void)strlcpy(phrase, ",Y=", sizeof(phrase)); if (channel->device->gpsdata.tag[0] != '\0') @@ -1485,13 +1485,13 @@ static bool handle_oldstyle(struct subscriber_t *sub, char *buf, else (void)strlcat(phrase, " ? ", sizeof(phrase)); /* insurance against flaky drivers */ - for (i = 0; i < channel->device->gpsdata.satellites; i++) + for (i = 0; i < channel->device->gpsdata.satellites_visible; i++) if (channel->device->gpsdata.PRN[i]) reported++; (void)snprintf(phrase+strlen(phrase), sizeof(phrase)-strlen(phrase), "%d:", reported); - for (i = 0; i < channel->device->gpsdata.satellites; i++) { + for (i = 0; i < channel->device->gpsdata.satellites_visible; i++) { used = 0; for (j = 0; j < channel->device->gpsdata.satellites_used; j++) if (channel->device->gpsdata.used[j] == channel->device->gpsdata.PRN[i]) { @@ -1508,9 +1508,9 @@ static bool handle_oldstyle(struct subscriber_t *sub, char *buf, used); } } - if (channel->device->gpsdata.satellites != reported) + if (channel->device->gpsdata.satellites_visible != reported) gpsd_report(LOG_WARN,"Satellite count %d != PRN count %d\n", - channel->device->gpsdata.satellites, reported); + channel->device->gpsdata.satellites_visible, reported); } else (void)strlcpy(phrase, ",Y=?", sizeof(phrase)); break; diff --git a/gpsd_json.c b/gpsd_json.c index e2945edb..a1cadb19 100644 --- a/gpsd_json.c +++ b/gpsd_json.c @@ -213,7 +213,7 @@ void json_sky_dump(const struct gps_data_t *datap, replylen-strlen(reply), "\"pdop\":%.2f,", datap->dop.pdop); /* insurance against flaky drivers */ - for (i = 0; i < datap->satellites; i++) + for (i = 0; i < datap->satellites_visible; i++) if (datap->PRN[i]) reported++; (void)snprintf(reply+strlen(reply), @@ -245,9 +245,9 @@ void json_sky_dump(const struct gps_data_t *datap, if (reply[strlen(reply)-1] == ',') reply[strlen(reply)-1] = '\0'; /* trim trailing comma */ (void)strlcat(reply, "}\r\n", replylen-strlen(reply)); - if (datap->satellites != reported) + if (datap->satellites_visible != reported) gpsd_report(LOG_WARN,"Satellite count %d != PRN count %d\n", - datap->satellites, reported); + datap->satellites_visible, reported); } void json_device_dump(const struct gps_device_t *device, @@ -369,7 +369,7 @@ int gps_unpack(char *buf, struct gps_data_t *gpsdata) break; case 'Y': if (sp[2] == '?') { - gpsdata->satellites = 0; + gpsdata->satellites_visible = 0; } else { int j, i1, i2, i3, i5; int PRN[MAXCHANNELS]; @@ -379,17 +379,17 @@ int gps_unpack(char *buf, struct gps_data_t *gpsdata) char tag[MAXTAGLEN+1], timestamp[21]; (void)sscanf(sp, "Y=%8s %20s %d ", - tag, timestamp, &gpsdata->satellites); + tag, timestamp, &gpsdata->satellites_visible); (void)strncpy(gpsdata->tag, tag, MAXTAGLEN); if (timestamp[0] != '?') { gpsdata->sentence_time = atof(timestamp); gpsdata->set |= TIME_SET; } - for (j = 0; j < gpsdata->satellites; j++) { + for (j = 0; j < gpsdata->satellites_visible; j++) { PRN[j]=elevation[j]=azimuth[j]=used[j]=0; ss[j]=0.0; } - for (j = 0, gpsdata->satellites_used = 0; j < gpsdata->satellites; j++) { + for (j = 0, gpsdata->satellites_used = 0; j < gpsdata->satellites_visible; j++) { if ((sp != NULL) && ((sp = strchr(sp, ':')) != NULL)) { sp++; (void)sscanf(sp, "%d %d %d %lf %d", &i1, &i2, &i3, &f4, &i5); @@ -627,8 +627,8 @@ static void data_dump(struct gps_data_t *collect, time_t now) if (collect->set & SATELLITE_SET) { int i; - printf("Y: satellites in view: %d\n", collect->satellites); - for (i = 0; i < collect->satellites; i++) { + printf("Y: satellites in view: %d\n", collect->satellites_visible); + for (i = 0; i < collect->satellites_visible; i++) { printf(" %2.2d: %2.2d %3.3d %3.0f %c\n", collect->PRN[i], collect->elevation[i], collect->azimuth[i], collect->ss[i], collect->used[i]? 'Y' : 'N'); } } diff --git a/libgps_json.c b/libgps_json.c index 31c00fc6..90ae9f6d 100644 --- a/libgps_json.c +++ b/libgps_json.c @@ -149,7 +149,7 @@ static int json_sky_read(const char *buf, {"satellites", array, .addr.array.element_type = object, .addr.array.arr.objects.subtype=json_attrs_2_1, .addr.array.maxlen = MAXCHANNELS, - .addr.array.count = &gpsdata->satellites}, + .addr.array.count = &gpsdata->satellites_visible}, {NULL}, }; /*@ +fullinitblock @*/ diff --git a/libgpsd_core.c b/libgpsd_core.c index ae58ea84..8b961a97 100644 --- a/libgpsd_core.c +++ b/libgpsd_core.c @@ -569,7 +569,7 @@ gps_mask_t gpsd_poll(struct gps_device_t *session) */ if (session->gpsdata.fix.mode > MODE_NO_FIX && (session->gpsdata.set & SATELLITE_SET) != 0 - && session->gpsdata.satellites > 0) { + && session->gpsdata.satellites_visible > 0) { dopmask = fill_dop(&session->gpsdata, &session->gpsdata.dop); session->gpsdata.epe = NAN; } @@ -611,6 +611,6 @@ void gpsd_zero_satellites(/*@out@*/struct gps_data_t *out) (void)memset(out->elevation, 0, sizeof(out->elevation)); (void)memset(out->azimuth, 0, sizeof(out->azimuth)); (void)memset(out->ss, 0, sizeof(out->ss)); - out->satellites = 0; + out->satellites_visible = 0; } diff --git a/monitor_nmea.c b/monitor_nmea.c index 883e2d5a..db136fbe 100644 --- a/monitor_nmea.c +++ b/monitor_nmea.c @@ -218,7 +218,7 @@ static void nmea_update(void) if (strcmp(fields[0], "GPGSV") == 0) { int i; - int nsats = (session.gpsdata.satellites < MAXSATS) ? session.gpsdata.satellites : MAXSATS; + int nsats = (session.gpsdata.satellites_visible < MAXSATS) ? session.gpsdata.satellites_visible : MAXSATS; for (i = 0; i < nsats; i++) { (void)wmove(satwin, i+2, 3); diff --git a/pseudonmea.c b/pseudonmea.c index 462f3a3f..fe9b04c6 100644 --- a/pseudonmea.c +++ b/pseudonmea.c @@ -127,25 +127,25 @@ static void gpsd_binary_satellite_dump(struct gps_device_t *session, char *bufp2 = bufp; bufp[0] = '\0'; - for( i = 0 ; i < session->gpsdata.satellites; i++ ) { + for( i = 0 ; i < session->gpsdata.satellites_visible; i++ ) { if (i % 4 == 0) { bufp += strlen(bufp); bufp2 = bufp; len -= snprintf(bufp, len, "$GPGSV,%d,%d,%02d", - ((session->gpsdata.satellites-1) / 4) + 1, + ((session->gpsdata.satellites_visible-1) / 4) + 1, (i / 4) + 1, - session->gpsdata.satellites); + session->gpsdata.satellites_visible); } bufp += strlen(bufp); - if (i < session->gpsdata.satellites) + if (i < session->gpsdata.satellites_visible) len -= snprintf(bufp, len, ",%02d,%02d,%03d,%02.0f", session->gpsdata.PRN[i], session->gpsdata.elevation[i], session->gpsdata.azimuth[i], session->gpsdata.ss[i]); - if (i % 4 == 3 || i == session->gpsdata.satellites-1) { + if (i % 4 == 3 || i == session->gpsdata.satellites_visible-1) { nmea_add_checksum(bufp2); len -= 5; } diff --git a/www/protocol-transition.txt b/www/protocol-transition.txt index 6a26c63c..cf29e028 100644 --- a/www/protocol-transition.txt +++ b/www/protocol-transition.txt @@ -292,6 +292,10 @@ DEVICELIST_SET is on in the top-level set member. Storage for pathnames is no longer dynamically allocated, but static; to save space, it lives in a union with several other substructures. +The top-level member "satellites" has been changed to +"satellites_visible". The ambiguity in that name had actually induced +a bug or two. + There is a new substructure, dop, which holds the dilution-of-precision factors that were previously individual members of the gpsdata structure. Two new DOPs, xdop and ydop, are available; @@ -161,7 +161,7 @@ draw_graphics(struct gps_data_t *gpsdata) int i, x, y; char buf[20]; - if (gpsdata->satellites != 0) { + if (gpsdata->satellites_visible != 0) { i = (int)min(width, height); set_color("White"); @@ -197,7 +197,7 @@ draw_graphics(struct gps_data_t *gpsdata) (void)XDrawString(dpy, pixmap, drawGC, x - 5, y, "W", 1); /* Now draw the satellites... */ - for (i = 0; i < gpsdata->satellites; i++) { + for (i = 0; i < gpsdata->satellites_visible; i++) { pol2cart((double)gpsdata->azimuth[i], (double)gpsdata->elevation[i], &x, &y); if (gpsdata->ss[i] < 10) @@ -889,11 +889,11 @@ update_panel(struct gps_data_t *gpsdata, char *message, size_t len UNUSED) XmTextFieldSetString(status, message); /* This is for the satellite status display */ - if (gpsdata->satellites) { + if (gpsdata->satellites_visible) { string[0] = XmStringCreateSimple( "PRN: Elev: Azim: SNR: Used:"); for (i = 0; i < MAXCHANNELS; i++) { - if (i < (unsigned int)gpsdata->satellites) { + if (i < (unsigned int)gpsdata->satellites_visible) { (void)snprintf(s, sizeof(s), " %3d %2d %3d %2.0f %c", gpsdata->PRN[i], gpsdata->elevation[i], |