@@ -74,7 +74,7 @@ extern "C" unsigned long getTime()
74
74
******************************************************************************/
75
75
76
76
ArduinoIoTCloudTCP::ArduinoIoTCloudTCP ()
77
- : _state{State::ConnectMqttBroker }
77
+ : _state{State::ConnectPhy }
78
78
, _lastSyncRequestTickTime{0 }
79
79
, _mqtt_data_buf{0 }
80
80
, _mqtt_data_len{0 }
@@ -116,7 +116,6 @@ int ArduinoIoTCloudTCP::begin(ConnectionHandler & connection, String brokerAddre
116
116
117
117
int ArduinoIoTCloudTCP::begin (String brokerAddress, uint16_t brokerPort)
118
118
{
119
-
120
119
_brokerAddress = brokerAddress;
121
120
_brokerPort = brokerPort;
122
121
@@ -176,8 +175,6 @@ int ArduinoIoTCloudTCP::begin(String brokerAddress, uint16_t brokerPort)
176
175
177
176
void ArduinoIoTCloudTCP::update ()
178
177
{
179
- if (checkPhyConnection () != NetworkConnectionState::CONNECTED) return ;
180
-
181
178
/* Retrieve the latest data from the MQTT Client. */
182
179
if (_mqttClient.connected ())
183
180
_mqttClient.poll ();
@@ -186,6 +183,7 @@ void ArduinoIoTCloudTCP::update()
186
183
State next_state = _state;
187
184
switch (_state)
188
185
{
186
+ case State::ConnectPhy: next_state = handle_ConnectPhy (); break ;
189
187
case State::ConnectMqttBroker: next_state = handle_ConnectMqttBroker (); break ;
190
188
case State::SubscribeMqttTopics: next_state = handle_SubscribeMqttTopics (); break ;
191
189
case State::RequestLastValues: next_state = handle_RequestLastValues (); break ;
@@ -220,6 +218,14 @@ void ArduinoIoTCloudTCP::setOTAStorage(OTAStorage & ota_storage)
220
218
* PRIVATE MEMBER FUNCTIONS
221
219
******************************************************************************/
222
220
221
+ ArduinoIoTCloudTCP::State ArduinoIoTCloudTCP::handle_ConnectPhy ()
222
+ {
223
+ if (_connection->check () == NetworkConnectionState::CONNECTED)
224
+ return State::ConnectMqttBroker;
225
+ else
226
+ return State::ConnectPhy;
227
+ }
228
+
223
229
ArduinoIoTCloudTCP::State ArduinoIoTCloudTCP::handle_ConnectMqttBroker ()
224
230
{
225
231
if (_mqttClient.connect (_brokerAddress.c_str (), _brokerPort))
0 commit comments