From 6bc7601e8f6c83c8def86aa7ae7cf06f51593771 Mon Sep 17 00:00:00 2001 From: James McKenzie Date: Sat, 18 Feb 2023 18:48:42 +0000 Subject: remove all use of FP in printf as it's not thread safe --- app/gps.c | 53 ++++++++++++++++++++++++++++------------------------- 1 file changed, 28 insertions(+), 25 deletions(-) (limited to 'app/gps.c') diff --git a/app/gps.c b/app/gps.c index a8b8099..e87167d 100644 --- a/app/gps.c +++ b/app/gps.c @@ -120,25 +120,25 @@ static int ubx_recv_aid_eph (uint8_t *ptr, unsigned len) ptr += ubx_get_u32 (ptr, &sv); len -= 4; - if ((sv<1) ||( sv>32)) return 0; + if ((sv < 1) || (sv > 32)) return 0; + + i = sv - 1; - i=sv-1; - ptr += ubx_get_u32 (ptr, &ephemeris[i].how); len -= 4; - printf("Received %d bytes of ephemeris for SV%d\r\n",len,(int) sv); + printf ("Received %d bytes of ephemeris for SV%d\r\n", len, (int) sv); - if ((!len) ||( !ephemeris[i].how)) return 0 ; + if ((!len) || (!ephemeris[i].how)) return 0 ; - memcpy(&ephemeris[i].sf1,ptr,32); - len-=32; - ptr+=32; - memcpy(&ephemeris[i].sf2,ptr,32); - len-=32; - ptr+=32; - memcpy(&ephemeris[i].sf3,ptr,32); + memcpy (&ephemeris[i].sf1, ptr, 32); + len -= 32; + ptr += 32; + memcpy (&ephemeris[i].sf2, ptr, 32); + len -= 32; + ptr += 32; + memcpy (&ephemeris[i].sf3, ptr, 32); return 0; } @@ -170,9 +170,9 @@ ubx_recv_nav_posllh (uint8_t *ptr, unsigned len) gps_lon = 1.e-7 * (double) ilon; - printf ("POS: %.4f %.4f\r\n", gps_lat, gps_lon); + printf ("POS: %s %s\r\n", fd1 (gps_lat, 0, 1, 4), fd2 (gps_lon, 0, 1, 4)); - snprintf (gps_pos, sizeof (gps_pos) - 1, "location: %.4f %.4f", gps_lat, gps_lon); + snprintf (gps_pos, sizeof (gps_pos) - 1, "location: %s %s", fd1 (gps_lat, 0, 1, 4), fd2 (gps_lon, 0, 1, 4)); return 0; } @@ -636,6 +636,7 @@ ubx_recv (uint8_t class, uint8_t id, uint8_t *payload, unsigned len) } break; + case 0xd: switch (id) { case 0x4: @@ -669,9 +670,10 @@ ubx_recv (uint8_t class, uint8_t id, uint8_t *payload, unsigned len) case 0x30: ubx_recv_almanac (payload, len); break; - case 0x31: - ubx_recv_aid_eph(payload,len); - break; + + case 0x31: + ubx_recv_aid_eph (payload, len); + break; case 0x50: printf ("xfer ack\r\n"); @@ -900,20 +902,21 @@ ubx_send (uint8_t class, uint8_t id, const void *_payload, unsigned len) void gps_dispatch (void) { -static uint32_t last_eph; -uint32_t t ; + static uint32_t last_eph; + uint32_t t ; ubx_dispatch_search (-1, -1, NULL); gps_pps_dispatch(); -t=ticks-last_eph; -if (t>60000) { - printf("Requesting ephemeris data\r\n"); - gps_dump_eph(); - last_eph=ticks; -} + t = ticks - last_eph; + + if (t > 60000) { + printf ("Requesting ephemeris data\r\n"); + gps_dump_eph(); + last_eph = ticks; + } } -- cgit v1.2.3