Changed some nested if's to switch/case
This commit is contained in:
@@ -550,66 +550,71 @@ public:
|
||||
|
||||
switch (beeType){
|
||||
case XBEE_S6B_WIFI: {
|
||||
if(intRes == 0x00) // 0x00 Successfully joined an access point, established IP addresses and IP listening sockets
|
||||
stat = REG_OK;
|
||||
else if(intRes == 0x01) // 0x01 Wi-Fi transceiver initialization in progress.
|
||||
stat = REG_SEARCHING;
|
||||
else if(intRes == 0x02) // 0x02 Wi-Fi transceiver initialized, but not yet scanning for access point.
|
||||
stat = REG_SEARCHING;
|
||||
else if(intRes == 0x13) { // 0x13 Disconnecting from access point.
|
||||
restart(); // Restart the device; the S6B tends to get stuck "disconnecting"
|
||||
stat = REG_UNREGISTERED;
|
||||
switch (intRes) {
|
||||
case 0x00: // 0x00 Successfully joined an access point, established IP addresses and IP listening sockets
|
||||
stat = REG_OK;
|
||||
break;
|
||||
case 0x01: // 0x01 Wi-Fi transceiver initialization in progress.
|
||||
case 0x02: // 0x02 Wi-Fi transceiver initialized, but not yet scanning for access point.
|
||||
case 0x40: // 0x40 Waiting for WPA or WPA2 Authentication.
|
||||
case 0x41: // 0x41 Device joined a network and is waiting for IP configuration to complete
|
||||
case 0x42: // 0x42 Device is joined, IP is configured, and listening sockets are being set up.
|
||||
case 0xFF: // 0xFF Device is currently scanning for the configured SSID.
|
||||
stat = REG_SEARCHING;
|
||||
break;
|
||||
case 0x13: // 0x13 Disconnecting from access point.
|
||||
restart(); // Restart the device; the S6B tends to get stuck "disconnecting"
|
||||
stat = REG_UNREGISTERED;
|
||||
break;
|
||||
case 0x23: // 0x23 SSID not configured.
|
||||
stat = REG_UNREGISTERED;
|
||||
break;
|
||||
case 0x24: // 0x24 Encryption key invalid (either NULL or invalid length for WEP).
|
||||
case 0x27: // 0x27 SSID was found, but join failed.
|
||||
stat = REG_DENIED;
|
||||
break;
|
||||
default:
|
||||
stat = REG_UNKNOWN;
|
||||
break;
|
||||
}
|
||||
else if(intRes == 0x23) // 0x23 SSID not configured.
|
||||
stat = REG_UNREGISTERED;
|
||||
else if(intRes == 0x24) // 0x24 Encryption key invalid (either NULL or invalid length for WEP).
|
||||
stat = REG_DENIED;
|
||||
else if(intRes == 0x27) // 0x27 SSID was found, but join failed.
|
||||
stat = REG_DENIED;
|
||||
else if(intRes == 0x40) // 0x40 Waiting for WPA or WPA2 Authentication.
|
||||
stat = REG_SEARCHING;
|
||||
else if(intRes == 0x41) // 0x41 Device joined a network and is waiting for IP configuration to complete
|
||||
stat = REG_SEARCHING;
|
||||
else if(intRes == 0x42) // 0x42 Device is joined, IP is configured, and listening sockets are being set up.
|
||||
stat = REG_SEARCHING;
|
||||
else if(intRes == 0xFF) // 0xFF Device is currently scanning for the configured SSID.
|
||||
stat = REG_SEARCHING;
|
||||
else stat = REG_UNKNOWN;
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
if(intRes == 0x00) // 0x00 Connected to the Internet.
|
||||
stat = REG_OK;
|
||||
else if(intRes == 0x22) // 0x22 Registering to cellular network.
|
||||
stat = REG_SEARCHING;
|
||||
else if(intRes == 0x23) // 0x23 Connecting to the Internet.
|
||||
stat = REG_SEARCHING;
|
||||
else if(intRes == 0x24) // 0x24 The cellular component is missing, corrupt, or otherwise in error.
|
||||
stat = REG_UNKNOWN;
|
||||
else if(intRes == 0x25) // 0x25 Cellular network registration denied.
|
||||
stat = REG_DENIED;
|
||||
else if(intRes == 0x2A) { // 0x2A Airplane mode.
|
||||
sendAT(GF("AM0")); // Turn off airplane mode
|
||||
waitResponse();
|
||||
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 Initializing.
|
||||
stat = REG_SEARCHING;
|
||||
else stat = REG_UNKNOWN;
|
||||
default: { // Cellular XBee's
|
||||
switch (intRes) {
|
||||
case 0x00: // 0x00 Connected to the Internet.
|
||||
stat = REG_OK;
|
||||
break;
|
||||
case 0x22: // 0x22 Registering to cellular network.
|
||||
case 0x23: // 0x23 Connecting to the Internet.
|
||||
case 0xFF: // 0xFF Initializing.
|
||||
stat = REG_SEARCHING;
|
||||
break;
|
||||
case 0x24: // 0x24 The cellular component is missing, corrupt, or otherwise in error.
|
||||
case 0x2B: // 0x2B USB Direct active.
|
||||
case 0x2C: // 0x2C Cellular component is in PSM (power save mode).
|
||||
stat = REG_UNKNOWN;
|
||||
break;
|
||||
case 0x25: // 0x25 Cellular network registration denied.
|
||||
stat = REG_DENIED;
|
||||
break;
|
||||
case 0x2A: // 0x2A Airplane mode.
|
||||
sendAT(GF("AM0")); // Turn off airplane mode
|
||||
waitResponse();
|
||||
writeChanges();
|
||||
stat = REG_UNKNOWN;
|
||||
break;
|
||||
case 0x2F: // 0x2F Bypass mode active.
|
||||
sendAT(GF("AP0")); // Set back to transparent mode
|
||||
waitResponse();
|
||||
writeChanges();
|
||||
stat = REG_UNKNOWN;
|
||||
break;
|
||||
default:
|
||||
stat = REG_UNKNOWN;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
exitCommand();
|
||||
@@ -879,14 +884,22 @@ protected:
|
||||
}
|
||||
return (s == REG_OK); // if it's connected, we hope the sockets are too
|
||||
}
|
||||
default: {
|
||||
default: { // Cellular XBee's
|
||||
sendAT(GF("CI"));
|
||||
int16_t intRes = readResponseInt();
|
||||
exitCommand();
|
||||
if (intRes != 0 && intRes != 0xFF) { // If it's not one of these...
|
||||
sockets[0]->sock_connected = false; // ...it's definitely NOT connected
|
||||
switch(intRes) {
|
||||
case 0x00: // 0x00 = The socket is definitely open
|
||||
case 0xFF: // 0xFF = No known status - this is always returned prior to sending data
|
||||
return true;
|
||||
case 0x02: // 0x02 = Invalid parameters (bad IP/host)
|
||||
case 0x12: // 0x12 = DNS query lookup failure
|
||||
case 0x25: // 0x25 = Unknown server - DNS lookup failed (0x22 for UDP socket!)
|
||||
savedIP = IPAddress(0,0,0,0); // force a lookup next time!
|
||||
default: // If it's anything else (inc 0x02, 0x12, and 0x25)...
|
||||
sockets[0]->sock_connected = false; // ...it's definitely NOT connected
|
||||
return false;
|
||||
}
|
||||
return (0 == intRes || intRes == 0xFF);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user