diff --git a/src/Module.cpp b/src/Module.cpp index 512d6852..1959739f 100644 --- a/src/Module.cpp +++ b/src/Module.cpp @@ -73,7 +73,7 @@ bool Module::ATsendData(uint8_t* data, uint32_t len) { } bool Module::ATgetResponse() { - String data; + String data = ""; uint32_t start = millis(); while (millis() - start < _ATtimeout) { while(ModuleSerial->available() > 0) { @@ -83,6 +83,7 @@ bool Module::ATgetResponse() { #endif data += c; } + if(data.indexOf("OK") != -1) { #ifdef DEBUG Serial.println(); @@ -94,6 +95,7 @@ bool Module::ATgetResponse() { #endif return(false); } + } #ifdef DEBUG Serial.println(); diff --git a/src/modules/XBee.cpp b/src/modules/XBee.cpp index fef28323..f85393be 100644 --- a/src/modules/XBee.cpp +++ b/src/modules/XBee.cpp @@ -12,9 +12,11 @@ XBee::XBee(Module* module) { uint8_t XBee::begin(long speed) { pinMode(A4, OUTPUT); pinMode(A5, OUTPUT); - pinMode(3, INPUT); + //pinMode(3, INPUT); + pinMode(3, OUTPUT); digitalWrite(A4, LOW); digitalWrite(A5, LOW); + digitalWrite(3, HIGH); _mod->AtLineFeed = "\r"; @@ -133,6 +135,15 @@ bool XBee::enterCmdMode() { Serial.println(" of 10 tries)"); #endif + pinMode(3, OUTPUT); + delay(10); + digitalWrite(3, HIGH); + delay(500); + digitalWrite(3, LOW); + delay(500); + pinMode(3, INPUT); + delay(500); + _mod->ATsendCommand("ATCN"); if(i == 9) {