[vz-dev] vzlogger d0 auf Fritzbox. [Patch]

bernd.leibing at uni-ulm.de bernd.leibing at uni-ulm.de
Fri Jul 20 23:26:38 CEST 2012


Eine zwischen zwei D0 Datentelegrammen vorhandene Leerzeile wird vom Parser
in der Funktion meter_read_d0 bisher nicht richtig erkannt und führt  
immer noch
zu einem

"Something unexpected happened: meter_read_d0:279!"

Fehler. Folgender Patch behebt dies bei mir.

diff --git a/src/protocols/d0.c b/src/protocols/d0.c
index 52bb2bd..bf1ebdc 100644
--- a/src/protocols/d0.c
+++ b/src/protocols/d0.c
@@ -180,8 +180,10 @@ size_t meter_read_d0(meter_t *mtr, reading_t  
rds[], size_t max_readings) {
  		else if (byte == '!') context = END;	/* "!" is the identifier for  
the END */
  		switch (context) {
  			case START:			/* strip the initial "/" */
-				byte_iterator = number_of_tuples = 0;	/* start */
-				context = VENDOR;	/* set new context: START -> VENDOR */
+				if  (byte != '\r' &&  byte != '\n') { /*allow extra new line at  
the start */
+					byte_iterator = number_of_tuples = 0;	/* start */
+					context = VENDOR;	/* set new context: START -> VENDOR */
+				}
  				break;

  			case VENDOR:			/* VENDOR has 3 Bytes */


Gruß
Bing



More information about the volkszaehler-dev mailing list