@@ -102,17 +102,21 @@ ArduinoIoTCloudTCP::ArduinoIoTCloudTCP()
102102
103103int ArduinoIoTCloudTCP::begin (ConnectionHandler & connection, String brokerAddress, uint16_t brokerPort)
104104{
105- _connection = &connection;
106105 _brokerAddress = brokerAddress;
107- _brokerPort = brokerPort;
108- time_service.begin (&connection);
109- return begin (_brokerAddress, _brokerPort);
106+ _brokerIp = INADDR_NONE;
107+ return begin (connection, brokerPort);
110108}
111109
112- int ArduinoIoTCloudTCP::begin (String brokerAddress, uint16_t brokerPort)
110+ int ArduinoIoTCloudTCP::begin (ConnectionHandler & connection, IPAddress const brokerIp, uint16_t const brokerPort)
113111{
112+ _brokerAddress = " " ;
113+ _brokerIp = brokerIp;
114+ return begin (connection, brokerPort);
115+ }
114116
115- _brokerAddress = brokerAddress;
117+ int ArduinoIoTCloudTCP::begin (ConnectionHandler & connection, uint16_t brokerPort)
118+ {
119+ _connection = &connection;
116120 _brokerPort = brokerPort;
117121
118122 #ifdef BOARD_HAS_ECCX08
@@ -242,7 +246,11 @@ int ArduinoIoTCloudTCP::reconnect()
242246
243247int ArduinoIoTCloudTCP::connect ()
244248{
245- if (!_mqttClient.connect (_brokerAddress.c_str (), _brokerPort)) return CONNECT_FAILURE;
249+ if (_brokerIp == INADDR_NONE) {
250+ if (!_mqttClient.connect (_brokerAddress.c_str (), _brokerPort)) return CONNECT_FAILURE;
251+ } else {
252+ if (!_mqttClient.connect (_brokerIp, _brokerPort)) return CONNECT_FAILURE;
253+ }
246254 if (_mqttClient.subscribe (_stdinTopic) == 0 ) return CONNECT_FAILURE_SUBSCRIBE;
247255 if (_mqttClient.subscribe (_dataTopicIn) == 0 ) return CONNECT_FAILURE_SUBSCRIBE;
248256 if (_mqttClient.subscribe (_ota_topic_in) == 0 ) return CONNECT_FAILURE_SUBSCRIBE;
0 commit comments