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);
|
||||
|
||||
cmtTxLength = 15;
|
||||
cmtTxTimeout = 100;
|
||||
_txTimeout.set(100);
|
||||
|
||||
cmtNextState = CMT_STATE_TX_START;
|
||||
|
||||
@ -250,7 +250,7 @@ enumCMTresult HoymilesRadio_CMT::cmtProcess(void)
|
||||
cmtNextState = CMT_STATE_TX_WAIT;
|
||||
}
|
||||
|
||||
cmtTxTimeCount = CMT2300A_GetTickCount();
|
||||
_txTimeout.reset();
|
||||
|
||||
break;
|
||||
|
||||
@ -260,7 +260,7 @@ enumCMTresult HoymilesRadio_CMT::cmtProcess(void)
|
||||
cmtNextState = CMT_STATE_TX_DONE;
|
||||
}
|
||||
|
||||
if ((CMT2300A_GetTickCount() - cmtTxTimeCount) > cmtTxTimeout) {
|
||||
if (_txTimeout.occured()) {
|
||||
cmtNextState = CMT_STATE_TX_TIMEOUT;
|
||||
}
|
||||
|
||||
@ -476,7 +476,7 @@ void HoymilesRadio_CMT::sendEsbPacket(CommandAbstract* cmd)
|
||||
|
||||
memcpy(cmtTxBuffer, cmd->getDataPayload(), cmd->getDataSize());
|
||||
cmtTxLength = cmd->getDataSize();
|
||||
cmtTxTimeout = 100;
|
||||
_txTimeout.set(100);
|
||||
|
||||
cmtNextState = CMT_STATE_TX_START;
|
||||
|
||||
|
||||
@ -53,6 +53,7 @@ private:
|
||||
|
||||
std::queue<fragment_t> _rxBuffer;
|
||||
TimeoutHelper _rxTimeout;
|
||||
TimeoutHelper _txTimeout;
|
||||
|
||||
bool _ChipConnected = false;
|
||||
|
||||
@ -69,9 +70,7 @@ private:
|
||||
uint8_t cmtTxLength = 0;
|
||||
|
||||
uint32_t cmtRxTimeout = 200;
|
||||
uint32_t cmtTxTimeout = 200;
|
||||
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 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