From b696d854e3bd1f2c09cb5f95816c61aa8a229d62 Mon Sep 17 00:00:00 2001 From: Wolfgang Hottgenroth Date: Mon, 2 Nov 2020 20:59:52 +0100 Subject: [PATCH] free --- cube/User/Src/main2.c | 4 +++- cube/User/Src/mbusComm.c | 8 ++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/cube/User/Src/main2.c b/cube/User/Src/main2.c index 0cdefd6..fddc8e0 100644 --- a/cube/User/Src/main2.c +++ b/cube/User/Src/main2.c @@ -25,7 +25,9 @@ void my_errorHandler() { } void helloMeterbus(void *handle) { - logMsg("*** NEW REQUEST ***"); + static uint32_t cnt = 0; + logMsg("*** NEW REQUEST %d ***", cnt); + cnt++; mbusCommRequest(0x5b, 80); // static char msg[] = "Hello"; // HAL_UART_Transmit_IT(&mbusUart, &msg, strlen(msg)); diff --git a/cube/User/Src/mbusComm.c b/cube/User/Src/mbusComm.c index 92d579c..f5b0bea 100644 --- a/cube/User/Src/mbusComm.c +++ b/cube/User/Src/mbusComm.c @@ -254,6 +254,10 @@ static void handleRequestEngine(void *handle) { case MBCS_DONE: logMsg("hre state DONE"); printFrame(&(localMbusCommHandle->frame)); + if (localMbusCommHandle->frame.userdata != NULL) { + free(localMbusCommHandle->frame.userdata); + localMbusCommHandle->frame.userdata = NULL; + } localMbusCommHandle->result = MBCR_SUCCESS; localMbusCommHandle->state = MBCS_DISABLE_FRONTEND; schDel(timeoutHandler, handle); @@ -270,6 +274,10 @@ static void handleRequestEngine(void *handle) { case MBCS_TIMEOUT: logMsg("hre state TIMEOUT"); localMbusCommHandle->receiving = false; + if (localMbusCommHandle->frame.userdata != NULL) { + free(localMbusCommHandle->frame.userdata); + localMbusCommHandle->frame.userdata = NULL; + } HAL_UART_AbortReceive(&mbusUart); uint8_t kitchenSink[16]; memset(kitchenSink, 0, 16);