@@ -76,18 +76,25 @@ ArduinoIoTCloudTCP::~ArduinoIoTCloudTCP() {
76
76
}
77
77
78
78
int ArduinoIoTCloudTCP::begin (ConnectionHandler & connection, String brokerAddress, uint16_t brokerPort) {
79
- _connection = &connection;
80
79
_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 const brokerIp, uint16_t const brokerPort)
85
+ {
86
+ _brokerAddress = " " ;
87
+ _brokerIp = brokerIp;
88
+ return begin (connection, brokerPort);
84
89
}
85
90
86
- int ArduinoIoTCloudTCP::begin (String brokerAddress , uint16_t brokerPort) {
91
+ int ArduinoIoTCloudTCP::begin (ConnectionHandler & connection , uint16_t brokerPort) {
87
92
88
- _brokerAddress = brokerAddress ;
93
+ _connection = &connection ;
89
94
_brokerPort = brokerPort;
90
95
96
+ time_service.begin (_connection);
97
+
91
98
#ifdef BOARD_HAS_ECCX08
92
99
byte deviceIdBytes[72 ];
93
100
if (!ECCX08.begin ()) {
@@ -169,11 +176,14 @@ void ArduinoIoTCloudTCP::mqttClientBegin() {
169
176
}
170
177
171
178
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;
176
185
}
186
+
177
187
if (_mqttClient->subscribe (_stdinTopic) == 0 ) {
178
188
return CONNECT_FAILURE_SUBSCRIBE;
179
189
}
@@ -424,7 +434,12 @@ void ArduinoIoTCloudTCP::printDebugInfo() {
424
434
Debug.print (DBG_INFO, " ***** Arduino IoT Cloud - configuration info *****" );
425
435
Debug.print (DBG_INFO, " Device ID: %s" , getDeviceId ().c_str ());
426
436
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
+ }
428
443
}
429
444
430
445
ArduinoIoTCloudTCP ArduinoCloud;
0 commit comments