Browse Source

Added extra responses for AI for XBee

v_master
Sara Damiano 6 years ago
parent
commit
2423b9fdf2
5 changed files with 23 additions and 19 deletions
  1. BIN
      extras/doc/u-blox SARA-G3 DataSheet (UBX-13000993).pdf
  2. +0
    -0
      extras/doc/u-blox SARA-R4 AT Commands Manual r5 (UBX-17003787).pdf
  3. BIN
      extras/doc/u-blox SARA-R4 SARA-N4 AT Commands Manual r10 (UBC-17003787).pdf
  4. BIN
      extras/doc/u-blox SARA-U2 DataSheet (UBX-13005287).pdf
  5. +23
    -19
      src/TinyGsmClientXBee.h

BIN
extras/doc/u-blox SARA-G3 DataSheet (UBX-13000993).pdf View File


extras/doc/u-blox SARA-R4 AT Commands Manual (UBX-17003787).pdf → extras/doc/u-blox SARA-R4 AT Commands Manual r5 (UBX-17003787).pdf View File


BIN
extras/doc/u-blox SARA-R4 SARA-N4 AT Commands Manual r10 (UBC-17003787).pdf View File


BIN
extras/doc/u-blox SARA-U2 DataSheet (UBX-13005287).pdf View File


+ 23
- 19
src/TinyGsmClientXBee.h View File

@ -229,10 +229,7 @@ public:
if (ret_val) guardTime = 125;
sendAT(GF("HS")); // Get the "Hardware Series";
String res = readResponse();
char buf[4] = {0,}; // Set up buffer for response
res.toCharArray(buf, 4);
int intRes = strtol(buf, 0, 16);
int intRes = readResponseInt();
beeType = (XBeeType)intRes;
exitCommand();
@ -299,7 +296,7 @@ public:
if (!commandMode()) return modemInf; // Try up to 10 times for the init
sendAT(GF("HS")); // Get the "Hardware Series"
modemInf += readResponse();
modemInf += readResponseString();
exitCommand();
return modemInf;
@ -402,7 +399,7 @@ public:
String getSimCCID() {
if (!commandMode()) return ""; // Return immediately
sendAT(GF("S#"));
String res = readResponse();
String res = readResponseString();
exitCommand();
return res;
}
@ -410,7 +407,7 @@ public:
String getIMEI() {
if (!commandMode()) return ""; // Return immediately
sendAT(GF("IM"));
String res = readResponse();
String res = readResponseString();
exitCommand();
return res;
}
@ -423,10 +420,7 @@ public:
if (!commandMode()) return REG_UNKNOWN; // Return immediately
sendAT(GF("AI"));
String res = readResponse();
char buf[3] = {0,}; // Set up buffer for response
res.toCharArray(buf, 3);
int intRes = strtol(buf, 0, 16);
int intRes = readResponseInt();
RegStatus stat = REG_UNKNOWN;
switch (beeType){
@ -475,13 +469,18 @@ public:
writeChanges();
stat = REG_UNKNOWN;
}
else if(intRes == 0x2B) { // 0x2B USB Direct active.
stat = REG_UNKNOWN;
}
else if(intRes == 0x2C) // 0x2C Cellular component is in PSM (power save mode).
stat = REG_UNKNOWN;
else if(intRes == 0x2F) { // 0x2F Bypass mode active.
sendAT(GF("AP0")); // Set back to transparent mode
waitResponse();
writeChanges();
stat = REG_UNKNOWN;
}
else if(intRes == 0xFF) // 0xFF Device is currently scanning for the configured SSID.
else if(intRes == 0xFF) // 0xFF Initializing.
stat = REG_SEARCHING;
else stat = REG_UNKNOWN;
break;
@ -495,7 +494,7 @@ public:
String getOperator() {
if (!commandMode()) return ""; // Return immediately
sendAT(GF("MN"));
String res = readResponse();
String res = readResponseString();
exitCommand();
return res;
}
@ -508,11 +507,8 @@ public:
if (!commandMode()) return 0; // Return immediately
if (beeType == XBEE_S6B_WIFI) sendAT(GF("LM")); // ask for the "link margin" - the dB above sensitivity
else sendAT(GF("DB")); // ask for the cell strength in dBm
String res = readResponse(); // it works better if we read in as a string
int intRes = readResponseInt();
exitCommand();
char buf[3] = {0,}; // Set up buffer for response
res.toCharArray(buf, 3);
int intRes = strtol(buf, 0, 16);
if (beeType == XBEE_S6B_WIFI) return -93 + intRes; // the maximum sensitivity is -93dBm
else return -1*intRes; // need to convert to negative number
}
@ -576,7 +572,7 @@ fail:
sendAT(GF("MY"));
String IPaddr; IPaddr.reserve(16);
// wait for the response - this response can be very slow
IPaddr = readResponse(30000);
IPaddr = readResponseString(30000);
exitCommand();
IPaddr.trim();
return IPaddr;
@ -840,7 +836,7 @@ finish:
waitResponse();
}
String readResponse(uint32_t timeout = 1000) {
String readResponseString(uint32_t timeout = 1000) {
TINY_GSM_YIELD();
unsigned long startMillis = millis();
while (!stream.available() && millis() - startMillis < timeout) {};
@ -850,6 +846,14 @@ finish:
return res;
}
int readResponseInt(uint32_t timeout = 1000) {
String res = readResponseString(timeout);
char buf[3] = {0,}; // Set up buffer for response
res.toCharArray(buf, 3);
int intRes = strtol(buf, 0, 16);
return intRes;
}
public:
Stream& stream;


Loading…
Cancel
Save