Bug fixed for

http://forum.mysensors.org/topic/37/sensor-readmessage
This commit is contained in:
Henrik Ekblad
2014-04-15 19:38:39 +02:00
parent b27735a94a
commit 43d74e2083
2 changed files with 5 additions and 4 deletions
+4 -3
View File
@@ -454,7 +454,10 @@ boolean Sensor::readMessage() {
uint8_t len = RF24::getDynamicPayloadSize(); uint8_t len = RF24::getDynamicPayloadSize();
RF24::read(&msg, len); RF24::read(&msg, len);
if (!(msg.header.messageType==M_INTERNAL && msg.header.type == I_PING_ACK)) { uint8_t valid = validate(len-sizeof(header_s));
boolean ok = valid == VALIDATE_OK;
if (ok && !(msg.header.messageType==M_INTERNAL && msg.header.type == I_PING_ACK)) {
delay(ACK_SEND_DELAY); // Small delay here to let other side switch to reading mode delay(ACK_SEND_DELAY); // Small delay here to let other side switch to reading mode
RF24::stopListening(); RF24::stopListening();
RF24::openWritingPipe(TO_ADDR(msg.header.last)); RF24::openWritingPipe(TO_ADDR(msg.header.last));
@@ -463,8 +466,6 @@ boolean Sensor::readMessage() {
RF24::startListening(); RF24::startListening();
debug(PSTR("Sent ack msg to %d\n"), msg.header.last); debug(PSTR("Sent ack msg to %d\n"), msg.header.last);
} }
uint8_t valid = validate(len-sizeof(header_s));
boolean ok = valid == VALIDATE_OK;
// Make sure string gets terminated ok for full sized messages. // Make sure string gets terminated ok for full sized messages.
msg.data[len - sizeof(header_s) ] = '\0'; msg.data[len - sizeof(header_s) ] = '\0';
@@ -50,7 +50,7 @@ void loop()
} }
void setRelayStatus(message_s message) { void setRelayStatus(message_s message) {
if (message.header.messageType=M_SET_VARIABLE && if (message.header.messageType==M_SET_VARIABLE &&
message.header.type==V_LIGHT) { message.header.type==V_LIGHT) {
int incomingRelayStatus = atoi(message.data); int incomingRelayStatus = atoi(message.data);
// Change relay state // Change relay state