Skip to content

Commit cb3eeb3

Browse files
committed
Restructuring state logic for better readabiltiy
1 parent 993dddb commit cb3eeb3

File tree

1 file changed

+28
-36
lines changed

1 file changed

+28
-36
lines changed

src/ArduinoIoTCloudLPWAN.cpp

Lines changed: 28 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -125,45 +125,37 @@ ArduinoIoTConnectionStatus ArduinoIoTCloudLPWAN::checkCloudConnection()
125125
{
126126
ArduinoIoTConnectionStatus next_iot_status = _iotStatus;
127127

128-
switch (_iotStatus) {
129-
case ArduinoIoTConnectionStatus::IDLE: {
130-
next_iot_status = ArduinoIoTConnectionStatus::CONNECTING;
131-
}
132-
break;
133-
case ArduinoIoTConnectionStatus::ERROR: {
134-
next_iot_status = ArduinoIoTConnectionStatus::RECONNECTING;
135-
}
136-
break;
137-
case ArduinoIoTConnectionStatus::CONNECTED: {
138-
if (_connection->getStatus() != NetworkConnectionState::CONNECTED) {
139-
next_iot_status = ArduinoIoTConnectionStatus::DISCONNECTED;
140-
}
141-
}
142-
break;
143-
case ArduinoIoTConnectionStatus::DISCONNECTED: {
144-
next_iot_status = ArduinoIoTConnectionStatus::RECONNECTING;
145-
}
146-
break;
147-
case ArduinoIoTConnectionStatus::RECONNECTING: {
148-
int const ret_code = connect();
149-
Debug.print(DBG_INFO, "ArduinoCloud.reconnect()");
150-
if (ret_code == 1) {
151-
next_iot_status = ArduinoIoTConnectionStatus::IDLE;
152-
} else {
153-
next_iot_status = ArduinoIoTConnectionStatus::ERROR;
154-
}
155-
128+
switch (_iotStatus)
129+
{
130+
case ArduinoIoTConnectionStatus::IDLE: next_iot_status = ArduinoIoTConnectionStatus::CONNECTING; break;
131+
case ArduinoIoTConnectionStatus::ERROR: next_iot_status = ArduinoIoTConnectionStatus::RECONNECTING; break;
132+
case ArduinoIoTConnectionStatus::DISCONNECTED: next_iot_status = ArduinoIoTConnectionStatus::RECONNECTING; break;
133+
case ArduinoIoTConnectionStatus::RECONNECTING:
134+
{
135+
Debug.print(DBG_INFO, "Arduino IoT Cloud reconnecting ...");
136+
if (connect()) next_iot_status = ArduinoIoTConnectionStatus::IDLE;
137+
else next_iot_status = ArduinoIoTConnectionStatus::ERROR;
138+
}
139+
break;
140+
141+
case ArduinoIoTConnectionStatus::CONNECTING:
142+
{
143+
Debug.print(DBG_INFO, "Arduino IoT Cloud connecting ...");
144+
if (_connection->getStatus() == NetworkConnectionState::CONNECTED)
145+
{
146+
next_iot_status = ArduinoIoTConnectionStatus::CONNECTED;
156147
}
157-
break;
158-
case ArduinoIoTConnectionStatus::CONNECTING: {
159-
NetworkConnectionState net_status = _connection->getStatus();
160-
Debug.print(DBG_VERBOSE, "ArduinoCloud.connect(): %d", net_status);
161-
if (net_status == NetworkConnectionState::CONNECTED) {
162-
next_iot_status = ArduinoIoTConnectionStatus::CONNECTED;
163-
}
148+
}
149+
break;
164150

151+
case ArduinoIoTConnectionStatus::CONNECTED:
152+
{
153+
if (_connection->getStatus() != NetworkConnectionState::CONNECTED)
154+
{
155+
next_iot_status = ArduinoIoTConnectionStatus::DISCONNECTED;
165156
}
166-
break;
157+
}
158+
break;
167159
}
168160

169161
if(next_iot_status != _iotStatus)

0 commit comments

Comments
 (0)