Skip to content

Commit 0a76682

Browse files
committed
[CM-474] Notify user if thing id is wrong / thing does not exist
1 parent 061b4c7 commit 0a76682

File tree

1 file changed

+23
-9
lines changed

1 file changed

+23
-9
lines changed

src/ArduinoIoTCloud.cpp

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@ const static int compressedCertSlot = 10;
3030
const static int serialNumberAndAuthorityKeyIdentifierSlot = 11;
3131
const static int thingIdSlot = 12;
3232

33+
constexpr static int CONNECT_FAILURE_SUBSCRIBE = -1;
34+
constexpr static int CONNECT_FAILURE = 0;
35+
constexpr static int CONNECT_SUCCESS = 1;
36+
37+
3338
static ConnectionManager *getTimeConnection = NULL;
3439

3540
static unsigned long getTime() {
@@ -182,16 +187,23 @@ int ArduinoIoTCloudClass::connect()
182187
// Username: device id
183188
// Password: empty
184189
if (!_mqttClient->connect(_brokerAddress.c_str(), _brokerPort)) {
185-
return 0;
190+
return CONNECT_FAILURE;
191+
}
192+
193+
bool is_subscribe_error = false;
194+
195+
if(_mqttClient->subscribe(_stdinTopic ) == 0) is_subscribe_error = true;
196+
if(_mqttClient->subscribe(_dataTopicIn ) == 0) is_subscribe_error = true;
197+
if(_mqttClient->subscribe(_shadowTopicIn) == 0) is_subscribe_error = true;
198+
199+
if(is_subscribe_error) {
200+
return CONNECT_FAILURE_SUBSCRIBE;
186201
}
187-
_mqttClient->subscribe(_stdinTopic);
188-
_mqttClient->subscribe(_dataTopicIn);
189-
_mqttClient->subscribe(_shadowTopicIn);
190202

191203
_syncStatus = ArduinoIoTSynchronizationStatus::SYNC_STATUS_WAIT_FOR_CLOUD_VALUES;
192204
_lastSyncRequestTickTime = 0;
193205

194-
return 1;
206+
return CONNECT_SUCCESS;
195207
}
196208

197209
bool ArduinoIoTCloudClass::disconnect()
@@ -402,15 +414,17 @@ void ArduinoIoTCloudClass::connectionCheck()
402414
}
403415
break;
404416
case IOT_STATUS_CLOUD_CONNECTING:
405-
int arduinoIoTConnectionAttempt;
406-
arduinoIoTConnectionAttempt = connect();
407-
sprintf(msgBuffer, "ArduinoCloud.connect(): %d", arduinoIoTConnectionAttempt);
417+
int const ret_code_connect = connect();
418+
sprintf(msgBuffer, "ArduinoCloud.connect(): %d", ret_code_connect);
408419
debugMessage(msgBuffer, 4);
409-
if (arduinoIoTConnectionAttempt == 1) {
420+
if (ret_code_connect == CONNECT_SUCCESS) {
410421
setIoTConnectionState(IOT_STATUS_CLOUD_CONNECTED);
411422
CloudSerial.begin(9600);
412423
CloudSerial.println("Hello from Cloud Serial!");
413424
}
425+
else if (ret_code_connect == CONNECT_FAILURE_SUBSCRIBE) {
426+
Serial.println("ERROR - Please verify your THING ID");
427+
}
414428
#ifdef ARDUINO_ARCH_SAMD
415429
unsigned long const epoch = getTime();
416430
if (epoch!=0)

0 commit comments

Comments
 (0)