|
@@ -41,6 +41,7 @@ static const char *valid_sentences_checksum[] = {
|
|
|
"$GPVTG,,T,,M,0.016,N,0.030,K,A*27",
|
|
|
"$GPGST,024603.00,3.2,6.6,4.7,47.3,5.8,5.6,22.0*58",
|
|
|
"$GPZDA,160012.71,11,03,2004,-1,00*7D",
|
|
|
+ "$GNGBS,170556.00,3.0,2.9,8.3,,,,*5C",
|
|
|
NULL,
|
|
|
};
|
|
|
|
|
@@ -465,6 +466,27 @@ START_TEST(test_minmea_scan_complex3)
|
|
|
}
|
|
|
END_TEST
|
|
|
|
|
|
+START_TEST(test_minmea_parse_gbs1)
|
|
|
+{
|
|
|
+ const char *sentence = "$GNGBS,170556.00,3.0,2.9,8.3,,,,";
|
|
|
+ struct minmea_sentence_gbs frame = {};
|
|
|
+ static const struct minmea_sentence_gbs expected = {
|
|
|
+ .time = { 17, 5, 56, 0 },
|
|
|
+ .err_latitude = { 30, 10 },
|
|
|
+ .err_longitude = { 29, 10 },
|
|
|
+ .err_altitude = { 83, 10 },
|
|
|
+ .svid = 0,
|
|
|
+ .prob = { 0, 0 },
|
|
|
+ .bias = { 0, 0 },
|
|
|
+ .stddev = { 0, 0 },
|
|
|
+ };
|
|
|
+ ck_assert(minmea_check(sentence, false) == true);
|
|
|
+ ck_assert(minmea_check(sentence, true) == false);
|
|
|
+ ck_assert(minmea_parse_gbs(&frame, sentence) == true);
|
|
|
+ ck_assert(!memcmp(&frame, &expected, sizeof(frame)));
|
|
|
+}
|
|
|
+END_TEST
|
|
|
+
|
|
|
START_TEST(test_minmea_parse_rmc1)
|
|
|
{
|
|
|
const char *sentence = "$GPRMC,081836.75,A,3751.65,S,14507.36,E,000.0,360.0,130998,011.3,E";
|
|
@@ -1062,6 +1084,7 @@ static Suite *minmea_suite(void)
|
|
|
suite_add_tcase(s, tc_scan);
|
|
|
|
|
|
TCase *tc_parse = tcase_create("minmea_parse");
|
|
|
+ tcase_add_test(tc_parse, test_minmea_parse_gbs1);
|
|
|
tcase_add_test(tc_parse, test_minmea_parse_rmc1);
|
|
|
tcase_add_test(tc_parse, test_minmea_parse_rmc2);
|
|
|
tcase_add_test(tc_parse, test_minmea_parse_gga1);
|