Nmea0183Parser/Tst/Src/test.c

69 lines
1.9 KiB
C

//
// 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;
}