From 363f59a149627ba53dbfbcd8558ed72fe4931968 Mon Sep 17 00:00:00 2001 From: Jakob Skov-Pedersen Date: Mon, 11 Mar 2013 09:22:52 +0100 Subject: [PATCH] Ignore filler DIF (= 0x2F) --- mbus/mbus-protocol.c | 6 ++++++ test/test-frames/wmbus-converted.hex | 1 + test/test-frames/wmbus-converted.xml | 21 +++++++++++++++++++++ 3 files changed, 28 insertions(+) create mode 100644 test/test-frames/wmbus-converted.hex create mode 100644 test/test-frames/wmbus-converted.xml diff --git a/mbus/mbus-protocol.c b/mbus/mbus-protocol.c index 69917ca..b0c537d 100755 --- a/mbus/mbus-protocol.c +++ b/mbus/mbus-protocol.c @@ -2677,6 +2677,12 @@ mbus_data_variable_parse(mbus_frame *frame, mbus_data_variable *data) while (i < frame->data_size) { + // Skip filler dif=2F + while (((frame->data[i] & 0xFF) == 0x2F) && (i < frame->data_size)) { + i++; + } + if (i == frame->data_size) break; + if ((record = mbus_data_record_new()) == NULL) { // clean up... diff --git a/test/test-frames/wmbus-converted.hex b/test/test-frames/wmbus-converted.hex new file mode 100644 index 0000000..c6a6996 --- /dev/null +++ b/test/test-frames/wmbus-converted.hex @@ -0,0 +1 @@ +68 1f 1f 68 08 00 72 31 77 67 17 2d 2c 01 02 00 00 00 00 2f 2f 04 83 3b 88 13 00 00 2f 2f 2f 2f 2f 2f 2f 00 16 diff --git a/test/test-frames/wmbus-converted.xml b/test/test-frames/wmbus-converted.xml new file mode 100644 index 0000000..ec235a9 --- /dev/null +++ b/test/test-frames/wmbus-converted.xml @@ -0,0 +1,21 @@ + + + + 17677731 + KAM + 1 + Kamstrup 382 (6850-005) + Electricity + 0 + 00 + 0000 + + + + Instantaneous value + Energy (Wh) + 5000 + 1970-01-01T00:00:00 + + +