Skip to content

Commit 696b48e

Browse files
committed
Avoid big nested 'if' when checking for subscribe_retry_delay
1 parent eef2605 commit 696b48e

File tree

1 file changed

+36
-36
lines changed

1 file changed

+36
-36
lines changed

src/ArduinoIoTCloudTCP.cpp

+36-36
Original file line numberDiff line numberDiff line change
@@ -409,55 +409,55 @@ ArduinoIoTCloudTCP::State ArduinoIoTCloudTCP::handle_SubscribeMqttTopics()
409409
unsigned long const now = millis();
410410
bool const is_subscribe_retry_delay_expired = (now - _last_subscribe_request_tick) > AIOT_CONFIG_SUBSCRIBE_RETRY_DELAY_ms;
411411
bool const is_first_subscribe_request = (_last_subscribe_request_cnt == 0);
412-
if (is_first_subscribe_request || is_subscribe_retry_delay_expired)
412+
413+
if (!is_first_subscribe_request && !is_subscribe_retry_delay_expired)
413414
{
414-
if (_last_subscribe_request_cnt > AIOT_CONFIG_SUBSCRIBE_MAX_RETRY_CNT)
415-
{
416-
_last_subscribe_request_cnt = 0;
417-
_last_subscribe_request_tick = 0;
418-
_mqttClient.stop();
419-
execCloudEventCallback(ArduinoIoTCloudEvent::DISCONNECT);
420-
return State::ConnectPhy;
421-
}
415+
return State::SubscribeMqttTopics;
416+
}
417+
418+
if (_last_subscribe_request_cnt > AIOT_CONFIG_SUBSCRIBE_MAX_RETRY_CNT)
419+
{
420+
_last_subscribe_request_cnt = 0;
421+
_last_subscribe_request_tick = 0;
422+
_mqttClient.stop();
423+
execCloudEventCallback(ArduinoIoTCloudEvent::DISCONNECT);
424+
return State::ConnectPhy;
425+
}
422426

423-
_last_subscribe_request_tick = now;
424-
_last_subscribe_request_cnt++;
427+
_last_subscribe_request_tick = now;
428+
_last_subscribe_request_cnt++;
425429

426-
if (!_mqttClient.subscribe(_dataTopicIn))
427-
{
428-
DEBUG_ERROR("ArduinoIoTCloudTCP::%s could not subscribe to %s", __FUNCTION__, _dataTopicIn.c_str());
430+
if (!_mqttClient.subscribe(_dataTopicIn))
431+
{
432+
DEBUG_ERROR("ArduinoIoTCloudTCP::%s could not subscribe to %s", __FUNCTION__, _dataTopicIn.c_str());
429433
#if !defined(__AVR__)
430-
DEBUG_ERROR("Check your thing configuration, and press the reset button on your board.");
434+
DEBUG_ERROR("Check your thing configuration, and press the reset button on your board.");
431435
#endif
432-
return State::SubscribeMqttTopics;
433-
}
436+
return State::SubscribeMqttTopics;
437+
}
434438

435-
if (_shadowTopicIn != "")
439+
if (_shadowTopicIn != "")
440+
{
441+
if (!_mqttClient.subscribe(_shadowTopicIn))
436442
{
437-
if (!_mqttClient.subscribe(_shadowTopicIn))
438-
{
439-
DEBUG_ERROR("ArduinoIoTCloudTCP::%s could not subscribe to %s", __FUNCTION__, _shadowTopicIn.c_str());
443+
DEBUG_ERROR("ArduinoIoTCloudTCP::%s could not subscribe to %s", __FUNCTION__, _shadowTopicIn.c_str());
440444
#if !defined(__AVR__)
441-
DEBUG_ERROR("Check your thing configuration, and press the reset button on your board.");
445+
DEBUG_ERROR("Check your thing configuration, and press the reset button on your board.");
442446
#endif
443-
return State::SubscribeMqttTopics;
444-
}
447+
return State::SubscribeMqttTopics;
445448
}
449+
}
446450

447-
_last_subscribe_request_cnt = 0;
448-
_last_subscribe_request_tick = 0;
449-
450-
DEBUG_INFO("Connected to Arduino IoT Cloud");
451-
execCloudEventCallback(ArduinoIoTCloudEvent::CONNECT);
451+
DEBUG_INFO("Connected to Arduino IoT Cloud");
452+
execCloudEventCallback(ArduinoIoTCloudEvent::CONNECT);
453+
_last_subscribe_request_cnt = 0;
454+
_last_subscribe_request_tick = 0;
452455

453-
if (_shadowTopicIn != "")
454-
return State::RequestLastValues;
455-
else
456-
return State::Connected;
457-
458-
}
456+
if (_shadowTopicIn != "")
457+
return State::RequestLastValues;
458+
else
459+
return State::Connected;
459460

460-
return State::SubscribeMqttTopics;
461461
}
462462

463463
ArduinoIoTCloudTCP::State ArduinoIoTCloudTCP::handle_RequestLastValues()

0 commit comments

Comments
 (0)