Syntax
#define LIGHTBULB_CHECK(a, str, action, ...) \
if (unlikely(!(a))) { \
ESP_LOGE(TAG, "%s(%d): " str, __FUNCTION__, __LINE__, ##__VA_ARGS__); \
action; \
}
![]()
#define LIGHTBULB_CHECK(a, str, action, ...) \![]()
LIGHTBULB_CHECK(s_hal_obj->interface, "Unable to find the corresponding driver function", goto EXIT);![]()
LIGHTBULB_CHECK(err == ESP_OK, "driver init fail", goto EXIT);![]()
LIGHTBULB_CHECK(err == ESP_OK, "init mode fail", goto EXIT);![]()
LIGHTBULB_CHECK(err == ESP_OK, "nvs open fail, reason code: %d", return err, err);![]()
LIGHTBULB_CHECK(err == ESP_OK, "nvs set fail, reason code: %d", return err, err);![]()
LIGHTBULB_CHECK(err == ESP_OK, "nvs commit fail", return err);![]()
LIGHTBULB_CHECK(err == ESP_OK, "nvs open fail, reason code: %d", return err, err);![]()
LIGHTBULB_CHECK(err == ESP_OK, "nvs get fail, reason code: %d", return err, err);![]()
LIGHTBULB_CHECK(err == ESP_OK, "nvs open fail, reason code: %d", return err, err);![]()
LIGHTBULB_CHECK(err == ESP_OK, "nvs erase fail, reason code: %d", return err, err);![]()
LIGHTBULB_CHECK(err == ESP_OK, "nvs commit fail, reason code: %d", return err, err);![]()
LIGHTBULB_CHECK(s_lb_obj, "calloc fail", goto EXIT);![]()
LIGHTBULB_CHECK(s_lb_obj->mutex, "mutex create fail", goto EXIT);![]()
LIGHTBULB_CHECK(err == ESP_OK, "hal init fail", goto EXIT);![]()
LIGHTBULB_CHECK(err == ESP_OK, "set hal channel group fail", goto EXIT);![]()
LIGHTBULB_CHECK(err == ESP_OK, "set hal channel group fail", goto EXIT);![]()
LIGHTBULB_CHECK(s_lb_obj, "not init", return -1);![]()
LIGHTBULB_CHECK(s_lb_obj, "not init", return -1);![]()
LIGHTBULB_CHECK(s_lb_obj, "not init", return -1);![]()
LIGHTBULB_CHECK(s_lb_obj, "not init", return -1);![]()
LIGHTBULB_CHECK(s_lb_obj, "not init", return -1);