@@ -129,6 +129,9 @@ int ArduinoIoTCloudTCP::begin(String brokerAddress, uint16_t brokerPort) {
129
129
130
130
_thing.begin ();
131
131
_thing.registerGetTimeCallbackFunc (getTime);
132
+
133
+ printConnectionStatus (_iotStatus);
134
+
132
135
return 1 ;
133
136
}
134
137
@@ -287,37 +290,34 @@ NetworkConnectionState ArduinoIoTCloudTCP::checkPhyConnection()
287
290
288
291
ArduinoIoTConnectionStatus ArduinoIoTCloudTCP::checkCloudConnection ()
289
292
{
293
+ ArduinoIoTConnectionStatus next_iot_status = _iotStatus;
294
+
290
295
switch (_iotStatus) {
291
296
case ArduinoIoTConnectionStatus::IDLE: {
292
- _iotStatus = ArduinoIoTConnectionStatus::CONNECTING;
293
- printConnectionStatus (_iotStatus);
297
+ next_iot_status = ArduinoIoTConnectionStatus::CONNECTING;
294
298
}
295
299
break ;
296
300
case ArduinoIoTConnectionStatus::ERROR: {
297
- _iotStatus = ArduinoIoTConnectionStatus::RECONNECTING;
298
- printConnectionStatus (_iotStatus);
301
+ next_iot_status = ArduinoIoTConnectionStatus::RECONNECTING;
299
302
}
300
303
break ;
301
304
case ArduinoIoTConnectionStatus::CONNECTED: {
302
305
if (!_mqttClient->connected ()) {
303
- _iotStatus = ArduinoIoTConnectionStatus::DISCONNECTED;
306
+ next_iot_status = ArduinoIoTConnectionStatus::DISCONNECTED;
304
307
_mqtt_data_request_retransmit = true ;
305
- printConnectionStatus (_iotStatus);
306
308
execCloudEventCallback (ArduinoIoTCloudEvent::DISCONNECT);
307
309
}
308
310
}
309
311
break ;
310
312
case ArduinoIoTConnectionStatus::DISCONNECTED: {
311
- _iotStatus = ArduinoIoTConnectionStatus::RECONNECTING;
312
- printConnectionStatus (_iotStatus);
313
+ next_iot_status = ArduinoIoTConnectionStatus::RECONNECTING;
313
314
}
314
315
break ;
315
316
case ArduinoIoTConnectionStatus::RECONNECTING: {
316
317
int const ret_code_reconnect = reconnect ();
317
318
Debug.print (DBG_INFO, " ArduinoCloud.reconnect(): %d" , ret_code_reconnect);
318
319
if (ret_code_reconnect == CONNECT_SUCCESS) {
319
- _iotStatus = ArduinoIoTConnectionStatus::CONNECTED;
320
- printConnectionStatus (_iotStatus);
320
+ next_iot_status = ArduinoIoTConnectionStatus::CONNECTED;
321
321
execCloudEventCallback (ArduinoIoTCloudEvent::CONNECT);
322
322
CloudSerial.begin (9600 );
323
323
CloudSerial.println (" Hello from Cloud Serial!" );
@@ -328,8 +328,7 @@ ArduinoIoTConnectionStatus ArduinoIoTCloudTCP::checkCloudConnection()
328
328
int const ret_code_connect = connect ();
329
329
Debug.print (DBG_VERBOSE, " ArduinoCloud.connect(): %d" , ret_code_connect);
330
330
if (ret_code_connect == CONNECT_SUCCESS) {
331
- _iotStatus = ArduinoIoTConnectionStatus::CONNECTED;
332
- printConnectionStatus (_iotStatus);
331
+ next_iot_status = ArduinoIoTConnectionStatus::CONNECTED;
333
332
execCloudEventCallback (ArduinoIoTCloudEvent::CONNECT);
334
333
CloudSerial.begin (9600 );
335
334
CloudSerial.println (" Hello from Cloud Serial!" );
@@ -340,6 +339,12 @@ ArduinoIoTConnectionStatus ArduinoIoTCloudTCP::checkCloudConnection()
340
339
break ;
341
340
}
342
341
342
+ if (next_iot_status != _iotStatus)
343
+ {
344
+ _iotStatus = next_iot_status;
345
+ printConnectionStatus (_iotStatus);
346
+ }
347
+
343
348
return _iotStatus;
344
349
}
345
350
0 commit comments