pud: hook up the nmea library error callback
authorFerry Huberts <ferry.huberts@pelagic.nl>
Mon, 16 Jul 2012 09:25:47 +0000 (11:25 +0200)
committerFerry Huberts <ferry.huberts@pelagic.nl>
Mon, 16 Jul 2012 10:32:43 +0000 (12:32 +0200)
Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
lib/pud/src/receiver.c

index e17f5e5..30e492a 100644 (file)
@@ -17,6 +17,7 @@
 #include <nmea/parser.h>
 #include <nmea/gmath.h>
 #include <nmea/sentence.h>
+#include <nmea/context.h>
 #include <OlsrdPudWireFormat/wireFormat.h>
 
 /*
@@ -748,6 +749,15 @@ bool receiverUpdateGpsInformation(unsigned char * rxBuffer, size_t rxCount) {
        return retval;
 }
 
+/**
+ * Log nmea library errors as plugin errors
+ * @param str
+ * @param str_size
+ */
+static void nmea_errors(const char *str, int str_size __attribute__((unused))) {
+       pudError(false, "NMEA library error: %s", str);
+}
+
 /**
  Start the receiver
 
@@ -764,6 +774,9 @@ bool startReceiver(void) {
                return false;
        }
 
+       /* hook up the NMEA library error callback */
+       nmea_context_set_error_func(&nmea_errors);
+
        if (positionFile) {
                readPositionFile(positionFile, &transmitGpsInformation.txPosition.nmeaInfo);
        } else {