@@ -76,18 +76,25 @@ ArduinoIoTCloudTCP::~ArduinoIoTCloudTCP() {
7676}
7777
7878int ArduinoIoTCloudTCP::begin (ConnectionHandler & connection, String brokerAddress, uint16_t brokerPort) {
79- _connection = &connection;
8079 _brokerAddress = brokerAddress;
81- _brokerPort = brokerPort;
82- time_service.begin (&connection);
83- return begin (_brokerAddress, _brokerPort);
80+ _brokerIp = INADDR_NONE;
81+ return begin (connection, brokerPort);
82+ }
83+
84+ int ArduinoIoTCloudTCP::begin (ConnectionHandler & connection, IPAddress brokerIp, uint16_t brokerPort)
85+ {
86+ _brokerAddress = " " ;
87+ _brokerIp = brokerIp;
88+ return begin (connection, brokerPort);
8489}
8590
86- int ArduinoIoTCloudTCP::begin (String brokerAddress , uint16_t brokerPort) {
91+ int ArduinoIoTCloudTCP::begin (ConnectionHandler & connection , uint16_t brokerPort) {
8792
88- _brokerAddress = brokerAddress ;
93+ _connection = &connection ;
8994 _brokerPort = brokerPort;
9095
96+ time_service.begin (_connection);
97+
9198 #ifdef BOARD_HAS_ECCX08
9299 byte deviceIdBytes[72 ];
93100 if (!ECCX08.begin ()) {
@@ -169,11 +176,14 @@ void ArduinoIoTCloudTCP::mqttClientBegin() {
169176}
170177
171178
172- int ArduinoIoTCloudTCP::connect () {
173-
174- if (!_mqttClient->connect (_brokerAddress.c_str (), _brokerPort)) {
175- return CONNECT_FAILURE;
179+ int ArduinoIoTCloudTCP::connect ()
180+ {
181+ if (_brokerIp == INADDR_NONE) {
182+ if (!_mqttClient->connect (_brokerAddress.c_str (), _brokerPort)) return CONNECT_FAILURE;
183+ } else {
184+ if (!_mqttClient->connect (_brokerIp, _brokerPort)) return CONNECT_FAILURE;
176185 }
186+
177187 if (_mqttClient->subscribe (_stdinTopic) == 0 ) {
178188 return CONNECT_FAILURE_SUBSCRIBE;
179189 }
@@ -424,7 +434,12 @@ void ArduinoIoTCloudTCP::printDebugInfo() {
424434 Debug.print (DBG_INFO, " ***** Arduino IoT Cloud - configuration info *****" );
425435 Debug.print (DBG_INFO, " Device ID: %s" , getDeviceId ().c_str ());
426436 Debug.print (DBG_INFO, " Thing ID: %s" , getThingId ().c_str ());
427- Debug.print (DBG_INFO, " MQTT Broker: %s:%d" , _brokerAddress.c_str (), _brokerPort);
437+
438+ if (_brokerIp == INADDR_NONE) {
439+ Debug.print (DBG_INFO, " MQTT Broker: %s:%d" , _brokerAddress.c_str (), _brokerPort);
440+ } else {
441+ Debug.print (DBG_INFO, " MQTT Broker: %d.%d.%d.%d:%d" , _brokerIp[0 ], _brokerIp[1 ], _brokerIp[2 ], _brokerIp[3 ], _brokerPort);
442+ }
428443}
429444
430445ArduinoIoTCloudTCP ArduinoCloud;
0 commit comments