diff --git a/main/boards/common/lamp_controller.h b/main/boards/common/lamp_controller.h index 1ed142c..6015447 100644 --- a/main/boards/common/lamp_controller.h +++ b/main/boards/common/lamp_controller.h @@ -11,6 +11,10 @@ private: public: LampController(gpio_num_t gpio_num) : gpio_num_(gpio_num) { + if (gpio_num_ == GPIO_NUM_NC) { + return; + } + gpio_config_t config = { .pin_bit_mask = (1ULL << gpio_num_), .mode = GPIO_MODE_OUTPUT, diff --git a/main/led/single_led.cc b/main/led/single_led.cc index 338af0a..d107619 100644 --- a/main/led/single_led.cc +++ b/main/led/single_led.cc @@ -12,8 +12,10 @@ SingleLed::SingleLed(gpio_num_t gpio) { - // If the gpio is not connected, you should use NoLed class - assert(gpio != GPIO_NUM_NC); + if (gpio == GPIO_NUM_NC) { + ESP_LOGW(TAG, "SingleLed initialized with GPIO_NUM_NC, LED will not function"); + return; + } led_strip_config_t strip_config = {}; strip_config.strip_gpio_num = gpio; @@ -41,7 +43,9 @@ SingleLed::SingleLed(gpio_num_t gpio) { } SingleLed::~SingleLed() { - esp_timer_stop(blink_timer_); + if (blink_timer_ != nullptr) { + esp_timer_stop(blink_timer_); + } if (led_strip_ != nullptr) { led_strip_del(led_strip_); }