more receiving

This commit is contained in:
Wolfgang Hottgenroth 2020-11-02 16:54:15 +01:00
parent fd05813cdf
commit c7677e7c79
Signed by: wn
GPG Key ID: 6C1E5E531E0D5D7F

View File

@ -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 {