From c7efee31dd33bc00dc1bd091dabb042f873e483e Mon Sep 17 00:00:00 2001 From: Henrik Ekblad Date: Thu, 18 Feb 2016 17:02:21 +0100 Subject: [PATCH] Fix protocol parse and validity check back --- .../MySensors/core/MyGatewayTransportSerial.cpp | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/libraries/MySensors/core/MyGatewayTransportSerial.cpp b/libraries/MySensors/core/MyGatewayTransportSerial.cpp index f1d1701..c67f1a9 100644 --- a/libraries/MySensors/core/MyGatewayTransportSerial.cpp +++ b/libraries/MySensors/core/MyGatewayTransportSerial.cpp @@ -43,18 +43,18 @@ bool gatewayTransportInit() { bool gatewayTransportAvailable() { - bool available = false; - while (MY_SERIALDEVICE.available()) { // get the new byte: char inChar = (char) MY_SERIALDEVICE.read(); // if the incoming character is a newline, set a flag // so the main loop can do something about it: - if (_serialInputPos < MY_GATEWAY_MAX_RECEIVE_LENGTH - 1 && !available) { + if (_serialInputPos < MY_GATEWAY_MAX_RECEIVE_LENGTH - 1) { if (inChar == '\n') { _serialInputString[_serialInputPos] = 0; - available = true; - return true; + bool ok = protocolParse(_serialMsg, _serialInputString); + if (ok) + _serialInputPos = 0; + return ok; } else { // add it to the inputString: _serialInputString[_serialInputPos] = inChar; @@ -65,12 +65,7 @@ bool gatewayTransportAvailable() { _serialInputPos = 0; } } - if (available) { - // Parse message and return parse result - available = protocolParse(_serialMsg, _serialInputString); - _serialInputPos = 0; - } - return available; + return false; } MyMessage & gatewayTransportReceive() {