more receiving

This commit is contained in:
Wolfgang Hottgenroth 2020-11-02 17:14:11 +01:00
parent 29f28bb51d
commit eab39ff9d3
Signed by: wn
GPG Key ID: 6C1E5E531E0D5D7F

View File

@ -41,6 +41,11 @@ static void timeoutHandler(void *handle) {
handleRequestEngine(handle);
}
static void receiveNext(t_mbusCommHandle *localMbusCommHandle) {
localMbusCommHandle->receiving = true;
HAL_UART_Receive_IT(&mbusUart, &(localMbusCommHandle->receivedOctet), 1);
}
static void handleRequestEngine(void *handle) {
t_mbusCommHandle *localMbusCommHandle = (t_mbusCommHandle*) handle;
@ -87,21 +92,15 @@ static void handleRequestEngine(void *handle) {
frontendEnable();
schAdd(timeoutHandler, handle, 2500, 0);
localMbusCommHandle->state = RECEIVING;
localMbusCommHandle->receiving = false;
localMbusCommHandle->receiveCnt = 0;
// no break
receiveNext(localMbusCommHandle);
break;
case RECEIVING:
// logMsg("hre state RECEIVING");
if (! localMbusCommHandle->receiving) {
localMbusCommHandle->receiving = true;
HAL_UART_Receive_IT(&mbusUart, &(localMbusCommHandle->receivedOctet), 1);
} else {
localMbusCommHandle->receiving = false;
logMsg("hre received octet: 0x%02x: 0x%02x", localMbusCommHandle->receiveCnt, localMbusCommHandle->receivedOctet);
localMbusCommHandle->receiveCnt += 1;
schAdd(handleRequestEngine, handle, 0, 0);
}
logMsg("hre received octet: 0x%02x: 0x%02x", localMbusCommHandle->receiveCnt, localMbusCommHandle->receivedOctet);
localMbusCommHandle->receiveCnt += 1;
receiveNext(localMbusCommHandle);
break;
case DISABLE_FRONTEND:
@ -124,6 +123,7 @@ void mbusCommTxCpltCallback(UART_HandleTypeDef *huart) {
void mbusCommRxCpltCallback(UART_HandleTypeDef *huart) {
if (mbusCommHandle.receiving) {
schAdd(handleRequestEngine, (void*) &mbusCommHandle, 0, 0);
mbusCommHandle.receiving = false;
} else {
logMsg("mcrx: received 0x%02x but not expected", mbusCommHandle.receivedOctet);
}