Skip to content

Commit da09e55

Browse files
authored
New init state for TCP boards
1 parent eeca12f commit da09e55

File tree

3 files changed

+25
-30
lines changed

3 files changed

+25
-30
lines changed

examples/ArduinoIoTCloud-NetConfig/thingProperties.h

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#include <ArduinoIoTCloud.h>
22
#include <Arduino_ConnectionHandler.h>
3+
#include <GenericConnectionHandler.h>
34
#include <ConfiguratorAgents/AgentsConfiguratorManager.h>
45
#include <ConfiguratorAgents/agents/BLE/BLEConfiguratorAgent.h>
56
#include "arduino_secrets.h"
@@ -41,23 +42,6 @@ void initProperties() {
4142
#endif
4243
}
4344

44-
#if defined(BOARD_HAS_ETHERNET)
45-
/* DHCP mode */
46-
//EthernetConnectionHandler ArduinoIoTPreferredConnection;
47-
/* Manual mode. It will fallback in DHCP mode if SECRET_OPTIONAL_IP is invalid or equal to "0.0.0.0" */
48-
EthernetConnectionHandler ArduinoIoTPreferredConnection(SECRET_OPTIONAL_IP, SECRET_OPTIONAL_DNS, SECRET_OPTIONAL_GATEWAY, SECRET_OPTIONAL_NETMASK);
49-
#elif defined(BOARD_HAS_WIFI)
50-
WiFiConnectionHandler ArduinoIoTPreferredConnection(SECRET_WIFI_SSID, SECRET_WIFI_PASS);
51-
#elif defined(BOARD_HAS_GSM)
52-
GSMConnectionHandler ArduinoIoTPreferredConnection(SECRET_PIN, SECRET_APN, SECRET_LOGIN, SECRET_PASS);
53-
#elif defined(BOARD_HAS_LORA)
54-
LoRaConnectionHandler ArduinoIoTPreferredConnection(SECRET_APP_EUI, SECRET_APP_KEY, _lora_band::EU868, NULL, _lora_class::CLASS_A);
55-
#elif defined(BOARD_HAS_NB)
56-
NBConnectionHandler ArduinoIoTPreferredConnection(SECRET_PIN, SECRET_APN, SECRET_LOGIN, SECRET_PASS);
57-
#elif defined(BOARD_HAS_CATM1_NBIOT)
58-
CatM1ConnectionHandler ArduinoIoTPreferredConnection(SECRET_PIN, SECRET_APN, SECRET_LOGIN, SECRET_PASS);
59-
#elif defined(BOARD_HAS_CELLULAR)
60-
CellularConnectionHandler ArduinoIoTPreferredConnection(SECRET_PIN, SECRET_APN, SECRET_LOGIN, SECRET_PASS);
61-
#endif
45+
GenericConnectionHandler ArduinoIoTPreferredConnection;
6246

6347
NetworkConfigurator NetworkConf(ConfiguratorManager, ArduinoIoTPreferredConnection);

src/ArduinoIoTCloudTCP.cpp

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -92,17 +92,6 @@ int ArduinoIoTCloudTCP::begin(ConnectionHandler & connection, bool const enable_
9292
_brokerPort = brokerPort;
9393
#endif
9494

95-
/* Setup broker TLS client */
96-
_brokerClient.begin(connection);
97-
98-
#if OTA_ENABLED
99-
/* Setup OTA TLS client */
100-
_otaClient.begin(connection);
101-
#endif
102-
103-
/* Setup TimeService */
104-
_time_service.begin(_connection);
105-
10695
/* Setup retry timers */
10796
_connection_attempt.begin(AIOT_CONFIG_RECONNECTION_RETRY_DELAY_ms, AIOT_CONFIG_MAX_RECONNECTION_RETRY_DELAY_ms);
10897
return begin(enable_watchdog, _brokerAddress, _brokerPort);
@@ -224,6 +213,7 @@ void ArduinoIoTCloudTCP::update()
224213
switch (_state)
225214
{
226215
case State::ConfigPhy: next_state = handle_ConfigPhy(); break;
216+
case State::Init: next_state = handle_Init(); break;
227217
case State::ConnectPhy: next_state = handle_ConnectPhy(); break;
228218
case State::SyncTime: next_state = handle_SyncTime(); break;
229219
case State::ConnectMqttBroker: next_state = handle_ConnectMqttBroker(); break;
@@ -261,12 +251,31 @@ ArduinoIoTCloudTCP::State ArduinoIoTCloudTCP::handle_ConfigPhy()
261251
{
262252
if (_configurator == nullptr || _configurator->poll() == NetworkConfiguratorStates::CONFIGURED)
263253
{
264-
return State::ConnectPhy;
254+
return State::Init;
265255
}
266256

267257
return State::ConfigPhy;
268258
}
269259

260+
ArduinoIoTCloudTCP::State ArduinoIoTCloudTCP::handle_Init()
261+
{
262+
if(_configurator != nullptr){
263+
_configurator->end();
264+
}
265+
/* Setup broker TLS client */
266+
_brokerClient.begin(*_connection);
267+
268+
#if OTA_ENABLED
269+
/* Setup OTA TLS client */
270+
_otaClient.begin(*_connection);
271+
#endif
272+
273+
/* Setup TimeService */
274+
_time_service.begin(_connection);
275+
276+
return State::ConnectPhy;
277+
}
278+
270279
ArduinoIoTCloudTCP::State ArduinoIoTCloudTCP::handle_ConnectPhy()
271280
{
272281
if (_connection->check() == NetworkConnectionState::CONNECTED)

src/ArduinoIoTCloudTCP.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@ class ArduinoIoTCloudTCP: public ArduinoIoTCloudClass
110110
enum class State
111111
{
112112
ConfigPhy,
113+
Init,
113114
ConnectPhy,
114115
SyncTime,
115116
ConnectMqttBroker,
@@ -162,6 +163,7 @@ class ArduinoIoTCloudTCP: public ArduinoIoTCloudClass
162163
inline String getTopic_datain () { return ( getThingId().length() == 0) ? String("") : String("/a/t/" + getThingId() + "/e/i"); }
163164

164165
State handle_ConfigPhy();
166+
State handle_Init();
165167
State handle_ConnectPhy();
166168
State handle_SyncTime();
167169
State handle_ConnectMqttBroker();

0 commit comments

Comments
 (0)