// // Created by xemon on 02.09.22. // #include "printf.h" #include "Nmea0183Parser.h" #include "stdio.h" void testRmc(char *rmcStr, size_t rmcStrLen) { printf("string %*s\n", (int) rmcStrLen, rmcStr); if (bNmea0183IsValidString(rmcStr, rmcStrLen)) { printf("it's valid nmea string\n"); if (bNmea0183IsRmcString(rmcStr, rmcStrLen)) { printf("it's rmc string\n"); tNmeaRmc rmc; if (bNmea0183ParseRMC(rmcStr + 7, rmcStrLen - 7, &rmc)) { printf("RMC string parsed OK!\n"); if (rmc.location.ewIndicator) { printf("lat %c %f\n", rmc.location.ewIndicator, rmc.location.latitude); } else { printf("no lat\n"); } if (rmc.location.nsIndicator) { printf("lon %c %f\n", rmc.location.nsIndicator, rmc.location.longitude); } else { printf("no lon\n"); } printf("time %02i:%02i:%02i [%03i]\n", rmc.time.hour, rmc.time.minute, rmc.time.second, rmc.time.millisecond ); printf("date %i %i 20%02i\n", rmc.date.day, rmc.date.month, rmc.date.year ); } else { printf("Can't parse rmc string!\n"); } } else { printf("it's not rmc string\n"); } } else { printf("it's invalid nmea string\n"); } } int main() { char gprmc0[] = "$GPSACP: 115235.000,5244.8321N,04126.7108E,0.6,201.7,3,0.0,0.0,0.0,121022,05,08"; char gprmc1[] = "$GPRMC,125504.049,A,5542.2389,N,03741.6063,E,0.06,25.82,200906,,,*17"; printf("\n"); // testAcp(gprmc0, sizeof(gprmc0) - 1); printf("\n"); testRmc(gprmc1, sizeof(gprmc1) - 1); return 0; }