altos: Add 'g' command to ublox GPS code.
authorKeith Packard <keithp@keithp.com>
Tue, 14 May 2013 16:12:29 +0000 (09:12 -0700)
committerKeith Packard <keithp@keithp.com>
Tue, 14 May 2013 16:12:29 +0000 (09:12 -0700)
This should be moved to a common file

Signed-off-by: Keith Packard <keithp@keithp.com>
src/drivers/ao_gps_ublox.c

index 22300df3100f636753aa90d4de39519bb0474f21..2774619a053e87db599e47a7309b4c9ea8c9bdf6 100644 (file)
@@ -695,10 +695,35 @@ ao_gps(void) __reentrant
        }
 }
 
+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", (long) ao_gps_data.latitude, (long) 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[] = {
+       { gps_dump,     "g\0Display GPS" },
+       { 0, NULL },
+};
+
 __xdata struct ao_task ao_gps_task;
 
 void
 ao_gps_init(void)
 {
+       ao_cmd_register(&ao_gps_cmds[0]);
        ao_add_task(&ao_gps_task, ao_gps, "gps");
 }