#endif
__xdata uint8_t ao_gps_mutex;
+__xdata uint16_t ao_gps_tick;
__xdata struct ao_gps_data ao_gps_data;
__xdata struct ao_gps_tracking_data ao_gps_tracking_data;
switch (i) {
case 41:
ao_mutex_get(&ao_gps_mutex);
+ ao_gps_tick = ao_time();
ao_gps_data.hour = ao_sirf_data.utc_hour;
ao_gps_data.minute = ao_sirf_data.utc_minute;
ao_gps_data.second = ao_sirf_data.utc_second / 1000;
ao_gps_data.course = ao_sirf_data.course / 200;
ao_gps_data.hdop = ao_sirf_data.hdop;
ao_gps_data.climb_rate = ao_sirf_data.climb_rate;
+ ao_gps_data.flags |= AO_GPS_COURSE_VALID;
if (ao_sirf_data.h_error > 6553500)
ao_gps_data.h_error = 65535;
else
__xdata struct ao_task ao_gps_task;
-static void
-gps_dump(void) __reentrant
-{
- ao_mutex_get(&ao_gps_mutex);
- ao_gps_print(&ao_gps_data);
- putchar('\n');
- ao_gps_tracking_print(&ao_gps_tracking_data);
- putchar('\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 },
-};
-
void
ao_gps_init(void)
{
ao_add_task(&ao_gps_task, ao_gps, "gps");
- ao_cmd_register(&ao_gps_cmds[0]);
}