Skip to content

Commit 2aa5b34

Browse files
authored
Merge pull request #476 from tekka007/WaitEnhancement
Add return value to wait()
2 parents 385d441 + f1319fc commit 2aa5b34

File tree

2 files changed

+7
-3
lines changed

2 files changed

+7
-3
lines changed

libraries/MySensors/core/MySensorCore.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -388,16 +388,19 @@ void wait(unsigned long ms) {
388388
}
389389
}
390390

391-
void wait(unsigned long ms, uint8_t cmd, uint8_t msgtype) {
391+
bool wait(unsigned long ms, uint8_t cmd, uint8_t msgtype) {
392392
unsigned long enter = hwMillis();
393393
// invalidate msg type
394394
_msg.type = !msgtype;
395-
while ( (hwMillis() - enter < ms) && !(mGetCommand(_msg)==cmd && _msg.type==msgtype) ) {
395+
bool expectedResponse = false;
396+
while ( (hwMillis() - enter < ms) && !expectedResponse ) {
396397
_process();
397398
#if defined(MY_GATEWAY_ESP8266)
398399
yield();
399400
#endif
401+
expectedResponse = (mGetCommand(_msg) == cmd && _msg.type == msgtype);
400402
}
403+
return expectedResponse;
401404
}
402405

403406

libraries/MySensors/core/MySensorCore.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,8 +177,9 @@ void wait(unsigned long ms);
177177
* @param ms Number of milliseconds to sleep.
178178
* @param cmd Command of incoming message.
179179
* @param msgtype Message type.
180+
* @return True if specified message received
180181
*/
181-
void wait(unsigned long ms, uint8_t cmd, uint8_t msgtype);
182+
bool wait(unsigned long ms, uint8_t cmd, uint8_t msgtype);
182183

183184
/**
184185
* Sleep (PowerDownMode) the MCU and radio. Wake up on timer.

0 commit comments

Comments
 (0)