From f1319fc3922a3bcd3d9d84d3024a52a6645d8e30 Mon Sep 17 00:00:00 2001 From: Olivier Date: Wed, 15 Jun 2016 21:19:02 +0200 Subject: [PATCH] Add return value to wait() --- libraries/MySensors/core/MySensorCore.cpp | 7 +++++-- libraries/MySensors/core/MySensorCore.h | 3 ++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/libraries/MySensors/core/MySensorCore.cpp b/libraries/MySensors/core/MySensorCore.cpp index 847b9ec..79e6509 100644 --- a/libraries/MySensors/core/MySensorCore.cpp +++ b/libraries/MySensors/core/MySensorCore.cpp @@ -388,16 +388,19 @@ void wait(unsigned long ms) { } } -void wait(unsigned long ms, uint8_t cmd, uint8_t msgtype) { +bool wait(unsigned long ms, uint8_t cmd, uint8_t msgtype) { unsigned long enter = hwMillis(); // invalidate msg type _msg.type = !msgtype; - while ( (hwMillis() - enter < ms) && !(mGetCommand(_msg)==cmd && _msg.type==msgtype) ) { + bool expectedResponse = false; + while ( (hwMillis() - enter < ms) && !expectedResponse ) { _process(); #if defined(MY_GATEWAY_ESP8266) yield(); #endif + expectedResponse = (mGetCommand(_msg) == cmd && _msg.type == msgtype); } + return expectedResponse; } diff --git a/libraries/MySensors/core/MySensorCore.h b/libraries/MySensors/core/MySensorCore.h index 87957cd..ed7ec97 100644 --- a/libraries/MySensors/core/MySensorCore.h +++ b/libraries/MySensors/core/MySensorCore.h @@ -177,8 +177,9 @@ void wait(unsigned long ms); * @param ms Number of milliseconds to sleep. * @param cmd Command of incoming message. * @param msgtype Message type. + * @return True if specified message received */ -void wait(unsigned long ms, uint8_t cmd, uint8_t msgtype); +bool wait(unsigned long ms, uint8_t cmd, uint8_t msgtype); /** * Sleep (PowerDownMode) the MCU and radio. Wake up on timer.