diff --git a/minmea.c b/minmea.c index 59379f1..b702e57 100644 --- a/minmea.c +++ b/minmea.c @@ -335,63 +335,56 @@ bool minmea_parse_gpgga(struct minmea_gpgga *frame, const char *sentence) return true; } -bool minmea_parse_gpgsa(struct minmea_gpgsa *frame, const char *sentence){ - // $GPGSA,A,3,04,05,,09,12,,,24,,,,,2.5,1.3,2.1*39 - char type[6]; +bool minmea_parse_gpgsa(struct minmea_gpgsa *frame, const char *sentence) +{ + // $GPGSA,A,3,04,05,,09,12,,,24,,,,,2.5,1.3,2.1*39 + char type[6]; - if (!minmea_scan(sentence, "tciiiiiiiiiiiiifff", - type, - &frame->mode, - &frame->fix_type, - &frame->sat1, - &frame->sat2, - &frame->sat3, - &frame->sat4, - &frame->sat5, - &frame->sat6, - &frame->sat7, - &frame->sat8, - &frame->sat9, - &frame->sat10, - &frame->sat11, - &frame->sat12, - &frame->pdop, - &frame->pdop_scale, - &frame->hdop, - &frame->hdop_scale, - &frame->vdop, - &frame->vdop_scale - )){ - return false; - } - if (strcmp(type, "GPGSA")){ - return false; - } + if (!minmea_scan(sentence, "tciiiiiiiiiiiiifff", + type, + &frame->mode, + &frame->fix_type, + &frame->sat1, + &frame->sat2, + &frame->sat3, + &frame->sat4, + &frame->sat5, + &frame->sat6, + &frame->sat7, + &frame->sat8, + &frame->sat9, + &frame->sat10, + &frame->sat11, + &frame->sat12, + &frame->pdop, + &frame->pdop_scale, + &frame->hdop, + &frame->hdop_scale, + &frame->vdop, + &frame->vdop_scale + )){ + return false; + } + if (strcmp(type, "GPGSA")) + return false; - if(frame->mode == 'A'){ - frame->mode = GPGSA_MODE_AUTO; - } - else if(frame->mode == 'M'){ - frame->mode = GPGSA_MODE_FORCED; - } - else{ - return false; - } + if (frame->mode == 'A') + frame->mode = GPGSA_MODE_AUTO; + else if (frame->mode == 'M') + frame->mode = GPGSA_MODE_FORCED; + else + return false; - if(frame->fix_type == 1){ - frame->fix_type = GPGSA_FIX_NONE; - } - else if(frame->fix_type == 2){ - frame->fix_type = GPGSA_FIX_2D; - } - else if(frame->fix_type == 3){ - frame->fix_type = GPGSA_FIX_3D; - } - else{ - return false; - } + if (frame->fix_type == 1) + frame->fix_type = GPGSA_FIX_NONE; + else if (frame->fix_type == 2) + frame->fix_type = GPGSA_FIX_2D; + else if (frame->fix_type == 3) + frame->fix_type = GPGSA_FIX_3D; + else + return false; - return true; + return true; } int minmea_gettimeofday(struct timeval *tv, const struct minmea_date *date, const struct minmea_time *time) diff --git a/minmea.h b/minmea.h index cd2e03e..2c3fd5e 100644 --- a/minmea.h +++ b/minmea.h @@ -67,31 +67,31 @@ struct minmea_gpgga { }; enum minmea_gpgsa_mode { - GPGSA_MODE_AUTO, - GPGSA_MODE_FORCED + GPGSA_MODE_AUTO, + GPGSA_MODE_FORCED }; enum minmea_gpgsa_fix_type { - GPGSA_FIX_NONE, - GPGSA_FIX_2D, - GPGSA_FIX_3D + GPGSA_FIX_NONE, + GPGSA_FIX_2D, + GPGSA_FIX_3D }; struct minmea_gpgsa { - int mode; - int fix_type; - int sat1; - int sat2; - int sat3; - int sat4; - int sat5; - int sat6; - int sat7; - int sat8; - int sat9; - int sat10; - int sat11; - int sat12; + int mode; + int fix_type; + int sat1; + int sat2; + int sat3; + int sat4; + int sat5; + int sat6; + int sat7; + int sat8; + int sat9; + int sat10; + int sat11; + int sat12; int pdop, pdop_scale; int hdop, hdop_scale; int vdop, vdop_scale; diff --git a/tests.c b/tests.c index 0312742..76c47ac 100644 --- a/tests.c +++ b/tests.c @@ -337,26 +337,26 @@ START_TEST(test_minmea_parse_gpgsa1) const char *sentence = "$GPGSA,A,3,04,05,,09,12,,,24,,,,,2.5,1.3,2.1*39"; struct minmea_gpgsa frame = {}; struct minmea_gpgsa expected = { - .mode = GPGSA_MODE_AUTO, - .fix_type = GPGSA_FIX_3D, - .sat1 = 4, - .sat2 = 5, - .sat3 = 0, - .sat4 = 9, - .sat5 = 12, - .sat6 = 0, - .sat7 = 0, - .sat8 = 24, - .sat9 = 0, - .sat10 = 0, - .sat11 = 0, - .sat12 = 0, - .pdop = 25, - .pdop_scale = 10, - .hdop = 13, - .hdop_scale = 10, - .vdop = 21, - .vdop_scale = 10 + .mode = GPGSA_MODE_AUTO, + .fix_type = GPGSA_FIX_3D, + .sat1 = 4, + .sat2 = 5, + .sat3 = 0, + .sat4 = 9, + .sat5 = 12, + .sat6 = 0, + .sat7 = 0, + .sat8 = 24, + .sat9 = 0, + .sat10 = 0, + .sat11 = 0, + .sat12 = 0, + .pdop = 25, + .pdop_scale = 10, + .hdop = 13, + .hdop_scale = 10, + .vdop = 21, + .vdop_scale = 10 }; ck_assert(minmea_check(sentence) == true); ck_assert(minmea_parse_gpgsa(&frame, sentence) == true);