Use TimeoutHelper for TX timeout
This commit is contained in:
parent
3e1b778565
commit
06cc19fc70
@ -115,7 +115,7 @@ bool HoymilesRadio_CMT::cmtSwitchInvAndDtuFreq(const uint64_t inv_serial, const
|
|||||||
dumpBuf(cmtTxBuffer, 15);
|
dumpBuf(cmtTxBuffer, 15);
|
||||||
|
|
||||||
cmtTxLength = 15;
|
cmtTxLength = 15;
|
||||||
cmtTxTimeout = 100;
|
_txTimeout.set(100);
|
||||||
|
|
||||||
cmtNextState = CMT_STATE_TX_START;
|
cmtNextState = CMT_STATE_TX_START;
|
||||||
|
|
||||||
@ -250,7 +250,7 @@ enumCMTresult HoymilesRadio_CMT::cmtProcess(void)
|
|||||||
cmtNextState = CMT_STATE_TX_WAIT;
|
cmtNextState = CMT_STATE_TX_WAIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
cmtTxTimeCount = CMT2300A_GetTickCount();
|
_txTimeout.reset();
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -260,7 +260,7 @@ enumCMTresult HoymilesRadio_CMT::cmtProcess(void)
|
|||||||
cmtNextState = CMT_STATE_TX_DONE;
|
cmtNextState = CMT_STATE_TX_DONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((CMT2300A_GetTickCount() - cmtTxTimeCount) > cmtTxTimeout) {
|
if (_txTimeout.occured()) {
|
||||||
cmtNextState = CMT_STATE_TX_TIMEOUT;
|
cmtNextState = CMT_STATE_TX_TIMEOUT;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -476,7 +476,7 @@ void HoymilesRadio_CMT::sendEsbPacket(CommandAbstract* cmd)
|
|||||||
|
|
||||||
memcpy(cmtTxBuffer, cmd->getDataPayload(), cmd->getDataSize());
|
memcpy(cmtTxBuffer, cmd->getDataPayload(), cmd->getDataSize());
|
||||||
cmtTxLength = cmd->getDataSize();
|
cmtTxLength = cmd->getDataSize();
|
||||||
cmtTxTimeout = 100;
|
_txTimeout.set(100);
|
||||||
|
|
||||||
cmtNextState = CMT_STATE_TX_START;
|
cmtNextState = CMT_STATE_TX_START;
|
||||||
|
|
||||||
|
|||||||
@ -53,6 +53,7 @@ private:
|
|||||||
|
|
||||||
std::queue<fragment_t> _rxBuffer;
|
std::queue<fragment_t> _rxBuffer;
|
||||||
TimeoutHelper _rxTimeout;
|
TimeoutHelper _rxTimeout;
|
||||||
|
TimeoutHelper _txTimeout;
|
||||||
|
|
||||||
bool _ChipConnected = false;
|
bool _ChipConnected = false;
|
||||||
|
|
||||||
@ -69,9 +70,7 @@ private:
|
|||||||
uint8_t cmtTxLength = 0;
|
uint8_t cmtTxLength = 0;
|
||||||
|
|
||||||
uint32_t cmtRxTimeout = 200;
|
uint32_t cmtRxTimeout = 200;
|
||||||
uint32_t cmtTxTimeout = 200;
|
|
||||||
uint32_t cmtRxTimeCount = 0;
|
uint32_t cmtRxTimeCount = 0;
|
||||||
uint32_t cmtTxTimeCount = 0;
|
|
||||||
|
|
||||||
uint8_t cmtBaseChOff860; // offset from initalized CMT base frequency to Hoy base frequency in channels
|
uint8_t cmtBaseChOff860; // offset from initalized CMT base frequency to Hoy base frequency in channels
|
||||||
uint8_t cmtCurrentCh; // current used channel, should be stored per inverter und set before next Tx, if hopping is used
|
uint8_t cmtCurrentCh; // current used channel, should be stored per inverter und set before next Tx, if hopping is used
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user