@@ -129,6 +129,9 @@ int ArduinoIoTCloudTCP::begin(String brokerAddress, uint16_t brokerPort) {
129129
130130 _thing.begin ();
131131 _thing.registerGetTimeCallbackFunc (getTime);
132+
133+ printConnectionStatus (_iotStatus);
134+
132135 return 1 ;
133136}
134137
@@ -287,37 +290,34 @@ NetworkConnectionState ArduinoIoTCloudTCP::checkPhyConnection()
287290
288291ArduinoIoTConnectionStatus ArduinoIoTCloudTCP::checkCloudConnection ()
289292{
293+ ArduinoIoTConnectionStatus next_iot_status = _iotStatus;
294+
290295 switch (_iotStatus) {
291296 case ArduinoIoTConnectionStatus::IDLE: {
292- _iotStatus = ArduinoIoTConnectionStatus::CONNECTING;
293- printConnectionStatus (_iotStatus);
297+ next_iot_status = ArduinoIoTConnectionStatus::CONNECTING;
294298 }
295299 break ;
296300 case ArduinoIoTConnectionStatus::ERROR: {
297- _iotStatus = ArduinoIoTConnectionStatus::RECONNECTING;
298- printConnectionStatus (_iotStatus);
301+ next_iot_status = ArduinoIoTConnectionStatus::RECONNECTING;
299302 }
300303 break ;
301304 case ArduinoIoTConnectionStatus::CONNECTED: {
302305 if (!_mqttClient->connected ()) {
303- _iotStatus = ArduinoIoTConnectionStatus::DISCONNECTED;
306+ next_iot_status = ArduinoIoTConnectionStatus::DISCONNECTED;
304307 _mqtt_data_request_retransmit = true ;
305- printConnectionStatus (_iotStatus);
306308 execCloudEventCallback (ArduinoIoTCloudEvent::DISCONNECT);
307309 }
308310 }
309311 break ;
310312 case ArduinoIoTConnectionStatus::DISCONNECTED: {
311- _iotStatus = ArduinoIoTConnectionStatus::RECONNECTING;
312- printConnectionStatus (_iotStatus);
313+ next_iot_status = ArduinoIoTConnectionStatus::RECONNECTING;
313314 }
314315 break ;
315316 case ArduinoIoTConnectionStatus::RECONNECTING: {
316317 int const ret_code_reconnect = reconnect ();
317318 Debug.print (DBG_INFO, " ArduinoCloud.reconnect(): %d" , ret_code_reconnect);
318319 if (ret_code_reconnect == CONNECT_SUCCESS) {
319- _iotStatus = ArduinoIoTConnectionStatus::CONNECTED;
320- printConnectionStatus (_iotStatus);
320+ next_iot_status = ArduinoIoTConnectionStatus::CONNECTED;
321321 execCloudEventCallback (ArduinoIoTCloudEvent::CONNECT);
322322 CloudSerial.begin (9600 );
323323 CloudSerial.println (" Hello from Cloud Serial!" );
@@ -328,8 +328,7 @@ ArduinoIoTConnectionStatus ArduinoIoTCloudTCP::checkCloudConnection()
328328 int const ret_code_connect = connect ();
329329 Debug.print (DBG_VERBOSE, " ArduinoCloud.connect(): %d" , ret_code_connect);
330330 if (ret_code_connect == CONNECT_SUCCESS) {
331- _iotStatus = ArduinoIoTConnectionStatus::CONNECTED;
332- printConnectionStatus (_iotStatus);
331+ next_iot_status = ArduinoIoTConnectionStatus::CONNECTED;
333332 execCloudEventCallback (ArduinoIoTCloudEvent::CONNECT);
334333 CloudSerial.begin (9600 );
335334 CloudSerial.println (" Hello from Cloud Serial!" );
@@ -340,6 +339,12 @@ ArduinoIoTConnectionStatus ArduinoIoTCloudTCP::checkCloudConnection()
340339 break ;
341340 }
342341
342+ if (next_iot_status != _iotStatus)
343+ {
344+ _iotStatus = next_iot_status;
345+ printConnectionStatus (_iotStatus);
346+ }
347+
343348 return _iotStatus;
344349}
345350
0 commit comments