diff --git a/src/didacticNet.cpp b/src/didacticNet.cpp index f14ace21992e70b7d533ffd00d95831966f92b66..1596147e02361336adcdb927e9bd048d1bf8b8a8 100644 --- a/src/didacticNet.cpp +++ b/src/didacticNet.cpp @@ -43,10 +43,10 @@ bool DidacticPSNet::handleNetwork(){ handleData(); } } - _waitingTime = millis()+ random(CSMA_MIN_DELAY_MS, CSMA_MAX_DELAY_MS); + _waitingTimeCSMA = millis()+ random(CSMA_MIN_DELAY_MS, CSMA_MAX_DELAY_MS); } //else if(_dataToSend){ - if(_dataToSend && _waitingTime <= millis()){ + if(_dataToSend && _waitingTimeSend <= millis() && _waitingTimeCSMA <= millis()){ //send data to network //TODO: test added CSMA_CHECKDELAY + 2nd checkData() delayMicroseconds(CSMA_CHECK_DELAY_US); @@ -57,7 +57,7 @@ bool DidacticPSNet::handleNetwork(){ else{ _dataToSend = false; //_waitingTime = millis()+ random(CSMA_MID_DELAY_MS, CSMA_MAX_DELAY_MS); - _waitingTime = millis()+ _intervalTime;//random(CSMA_MID_DELAY_MS, CSMA_MAX_DELAY_MS); + _waitingTimeSend = millis() + _intervalTime;//random(CSMA_MID_DELAY_MS, CSMA_MAX_DELAY_MS); } } } diff --git a/src/didacticNet.h b/src/didacticNet.h index 596db882857b225191ab1d86fa05712d91df8856..cf3b998c828dbbf53e5c6d77ffff7976f40ccad3 100644 --- a/src/didacticNet.h +++ b/src/didacticNet.h @@ -110,7 +110,8 @@ class DidacticPSNet char _sendBufferMessage[MAX_LEN_TOPICS + MAX_LEN_PAYLOAD + LEN_OVERHEAD +1]; bool _dataToSend = false; // int Data to send for queue? - unsigned long _waitingTime = 0L; + unsigned long _waitingTimeSend = 0L; + unsigned long _waitingTimeCSMA = 0L; unsigned long _intervalTime = 0L; int _currentTopicLength = 0; int _currentPayloadLength = 0;