X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fao_gps_skytraq.c;h=2392dacfb6d8947fcdff3aa31e19c7b8e72f852b;hb=28346736a7799c0767e54511d9949cd61d35e471;hp=bf192f28e4f0f0e4d8a0eef3e0fcaa688b328ba5;hpb=b0d7e3f9c9322542e9b649bb6ad7f7e5bb99dffa;p=fw%2Faltos diff --git a/src/ao_gps_skytraq.c b/src/ao_gps_skytraq.c index bf192f28..2392dacf 100644 --- a/src/ao_gps_skytraq.c +++ b/src/ao_gps_skytraq.c @@ -271,7 +271,15 @@ ao_gps(void) __reentrant ao_gps_next.flags |= i; ao_gps_lexchar(); - ao_gps_skip_field(); /* Horizontal dilution */ + ao_gps_next.hdop = ao_gps_decimal(0xff); + if (ao_gps_next.hdop <= 50) { + ao_gps_next.hdop = (uint8_t) 5 * ao_gps_next.hdop; + if (ao_gps_char == '.') + ao_gps_next.hdop = (ao_gps_next.hdop + + ((uint8_t) ao_gps_decimal(1) >> 1)); + } else + ao_gps_next.hdop = 255; + ao_gps_skip_field(); ao_gps_next.altitude = ao_gps_decimal(0xff); ao_gps_skip_field(); /* skip any fractional portion */ @@ -406,16 +414,15 @@ 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); + 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); } __code struct ao_cmds ao_gps_cmds[] = { - { 'g', gps_dump, "g Display current GPS values" }, - { 0, gps_dump, NULL }, + { 'g', gps_dump, "g Display current GPS values" }, + { 0, gps_dump, NULL }, }; void