PDR/1.Software/PDR 1.02/3rdparty/NMEAParser-master/extra/test/testNMEA.cpp

64 lines
1.3 KiB
C++

#include "../../src/NMEAParser.h"
#include <string.h>
NMEAParser<4> commandNMEA;
int errorCount = 0;
void error()
{
printf("=================================================\n");
int err = commandNMEA.error();
printf("*** ERROR %d ",err);
switch (err) {
case NMEA::UNEXPECTED_CHAR:
printf("(UNEXPECTED CHAR)\n");
break;
case NMEA::BUFFER_FULL:
printf("(BUFFER FULL)\n");
break;
case NMEA::CRC_ERROR:
printf("(CRC ERROR)\n");
break;
case NMEA::INTERNAL_ERROR:
printf("(INTERNAL ERROR)\n");
break;
default:
printf("(?)\n");
break;
}
commandNMEA.printBuffer();
printf("=================================================\n");
errorCount++;
}
void defaultHandler()
{
printf("------------\n");
char buf[82];
if (commandNMEA.getType(buf)) {
printf("%s\n", buf);
for (int i = 0; i < commandNMEA.argCount(); i++) {
if (commandNMEA.getArg(i, buf)) {
printf(" %s\n", buf);
}
}
}
}
int main()
{
printf("Debut du test\n");
commandNMEA.setErrorHandler(error);
commandNMEA.setDefaultHandler(defaultHandler);
int count = 0;
int v;
while ((v = getchar()) != EOF) {
commandNMEA << v;
if (v == '\n') count++;
}
printf("*** Processed %d NMEA sentences\n", count);
printf("*** Got %d error(s)\n", errorCount);
}