Skip to content

Commit 9b1bd99

Browse files
committed
Overloading begin function in such way that it also accepts IPAddress objects.
1 parent 814b481 commit 9b1bd99

File tree

2 files changed

+22
-8
lines changed

2 files changed

+22
-8
lines changed

src/ArduinoIoTCloudTCP.cpp

+15-7
Original file line numberDiff line numberDiff line change
@@ -102,17 +102,21 @@ ArduinoIoTCloudTCP::ArduinoIoTCloudTCP()
102102

103103
int 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

243247
int 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;

src/ArduinoIoTCloudTCP.h

+7-1
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,9 @@ static uint16_t const DEFAULT_BROKER_PORT_SECURE_AUTH = 8883;
4949
static char const DEFAULT_BROKER_ADDRESS_USER_PASS_AUTH[] = "mqtts-up.iot.arduino.cc";
5050
static uint16_t const DEFAULT_BROKER_PORT_USER_PASS_AUTH = 8884;
5151

52+
static IPAddress const DEFAULT_BROKER_SECURE_AUTH_IP_1(34,206,248,111);
53+
static IPAddress const DEFAULT_BROKER_SECURE_AUTH_IP_2(3,209,5,114);
54+
5255
/******************************************************************************
5356
* CLASS DECLARATION
5457
******************************************************************************/
@@ -70,7 +73,9 @@ class ArduinoIoTCloudTCP: public ArduinoIoTCloudClass
7073
#else
7174
int begin(ConnectionHandler & connection, String brokerAddress = DEFAULT_BROKER_ADDRESS_USER_PASS_AUTH, uint16_t brokerPort = DEFAULT_BROKER_PORT_USER_PASS_AUTH);
7275
#endif
73-
int begin(String brokerAddress = DEFAULT_BROKER_ADDRESS_SECURE_AUTH, uint16_t brokerPort = DEFAULT_BROKER_PORT_SECURE_AUTH);
76+
int begin(ConnectionHandler & connection, IPAddress const brokerIp, uint16_t const brokerPort = DEFAULT_BROKER_PORT_SECURE_AUTH);
77+
int begin(ConnectionHandler & connection, uint16_t brokerPort);
78+
7479

7580
#ifdef BOARD_ESP
7681
inline void setBoardId (String const device_id) { setDeviceId(device_id); }
@@ -101,6 +106,7 @@ class ArduinoIoTCloudTCP: public ArduinoIoTCloudClass
101106

102107
int _lastSyncRequestTickTime;
103108
String _brokerAddress;
109+
IPAddress _brokerIp;
104110
uint16_t _brokerPort;
105111
uint8_t _mqtt_data_buf[MQTT_TRANSMIT_BUFFER_SIZE];
106112
int _mqtt_data_len;

0 commit comments

Comments
 (0)