ao_gps_skip_field(); /* azimuth */
c = ao_gps_decimal(2); /* C/N0 */
if (i < AO_MAX_GPS_TRACKING) {
- if (!(ao_gps_tracking_next.sats[i].c_n_1 = c))
- ao_gps_tracking_next.sats[i].svid = 0;
- ao_gps_tracking_next.channels = i + 1;
+ if ((ao_gps_tracking_next.sats[i].c_n_1 = c) != 0)
+ ao_gps_tracking_next.channels = i + 1;
}
}
if (ao_gps_char == '*') {
static void
gps_dump(void) __reentrant
{
+ uint8_t i;
ao_mutex_get(&ao_gps_mutex);
printf ("Date: %02d/%02d/%02d\n", ao_gps_data.year, ao_gps_data.month, ao_gps_data.day);
printf ("Time: %02d:%02d:%02d\n", ao_gps_data.hour, ao_gps_data.minute, ao_gps_data.second);
printf ("Lat/Lon: %ld %ld\n", ao_gps_data.latitude, ao_gps_data.longitude);
printf ("Alt: %d\n", ao_gps_data.altitude);
printf ("Flags: 0x%x\n", ao_gps_data.flags);
+ printf ("Sats: %d", ao_gps_tracking_data.channels);
+ for (i = 0; i < ao_gps_tracking_data.channels; i++)
+ printf (" %d %d",
+ ao_gps_tracking_data.sats[i].svid,
+ ao_gps_tracking_data.sats[i].c_n_1);
+ printf ("\ndone\n");
ao_mutex_put(&ao_gps_mutex);
}
__code struct ao_cmds ao_gps_cmds[] = {
- { 'g', gps_dump, "g Display current GPS values" },
- { 0, gps_dump, NULL },
+ { gps_dump, "g\0Display GPS" },
+ { 0, NULL },
};
void