From c7677e7c792ee8b6ca3e0f8046b50e015e1e820a Mon Sep 17 00:00:00 2001 From: Wolfgang Hottgenroth Date: Mon, 2 Nov 2020 16:54:15 +0100 Subject: [PATCH] more receiving --- cube/User/Src/mbusComm.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/cube/User/Src/mbusComm.c b/cube/User/Src/mbusComm.c index 559c12f..17f1a5a 100644 --- a/cube/User/Src/mbusComm.c +++ b/cube/User/Src/mbusComm.c @@ -86,13 +86,18 @@ static void handleRequestEngine(void *handle) { frontendEnable(); schAdd(timeoutHandler, handle, 500, 0); // 500ms timeout localMbusCommHandle->state = RECEIVING; - localMbusCommHandle->receiving = true; - // now waiting for the response, transitions are triggered by interrupt callback - break; + localMbusCommHandle->receiving = false; + // no break case RECEIVING: logMsg("hre state RECEIVING"); - logMsg("hre received octet: 0x%02x", localMbusCommHandle->receivedOctet); + if (! localMbusCommHandle->receiving) { + localMbusCommHandle->receiving = true; + HAL_UART_Receive_IT(&mbusUart, &(localMbusCommHandle->receivedOctet), 1); + } else { + localMbusCommHandle->receiving = false; + logMsg("hre received octet: 0x%02x", localMbusCommHandle->receivedOctet); + } break; case DISABLE_FRONTEND: @@ -115,7 +120,6 @@ void mbusCommTxCpltCallback(UART_HandleTypeDef *huart) { void mbusCommRxCpltCallback(UART_HandleTypeDef *huart) { logMsg("mcrx: mbus received something"); - HAL_UART_Receive_IT(huart, &(mbusCommHandle.receivedOctet), 1); if (mbusCommHandle.receiving) { schAdd(handleRequestEngine, (void*) &mbusCommHandle, 0, 0); } else {