From a13588f97ff01f26a29e0f42411b23f521c2c61e Mon Sep 17 00:00:00 2001 From: Wolfgang Hottgenroth Date: Tue, 3 Nov 2020 10:24:03 +0100 Subject: [PATCH] first use of libmbus --- cube/User/Src/mbusComm.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/cube/User/Src/mbusComm.c b/cube/User/Src/mbusComm.c index 92b51cf..1bd0cda 100644 --- a/cube/User/Src/mbusComm.c +++ b/cube/User/Src/mbusComm.c @@ -12,6 +12,7 @@ #include #include +#include typedef enum { MBCS_IDLE, @@ -52,7 +53,37 @@ static t_mbusCommHandle mbusCommHandle = { .state = MBCS_IDLE, .retryCnt = 0, .c +static void parseAndPrintFrame(t_longframe *frame) { + mbus_frame reply; + + memset(&reply, 0, sizeof(reply)); + //mbus_parse(&reply, buf, len); + reply.start1 = frame->start1; + reply.length1 = frame->length1; + reply.length2 = frame->length2; + reply.start2 = frame->start2; + reply.control = frame->c; + reply.address = frame->a; + reply.control_information = frame->ci; + memcpy(reply.data, frame->userdata, frame->length1 - 3); + reply.checksum = frame->chksum; + reply.stop = frame->stop; + reply.type = MBUS_FRAME_TYPE_LONG; + reply.data_size = frame->length1 - 3; + + int r = mbus_frame_verify(&reply); + logMsg("papf verify: %d", r); + + + // memset(&frame_data, 0, sizeof(frame_data)); + // mbus_frame_data_parse(&reply, &frame_data); + // mbus_frame_print(&reply); + +} + static void printFrame(t_longframe *frame) { + parseAndPrintFrame(frame); + logMsg("frame: %02x %02x %02x %02x", frame->start1, frame->length1, frame->length2, frame->start2); logMsg("frame: C:%02x A:%02x CI:%02x",