#include "test_common.h" const char *TEST_TAG = "RELAY_CHN_TEST"; // Test-wide GPIO map #if CONFIG_RELAY_CHN_COUNT > 1 const uint8_t gpio_map[] = { 0, 1, 2, 3 #if CONFIG_RELAY_CHN_COUNT > 2 , 4, 5 #if CONFIG_RELAY_CHN_COUNT > 3 , 6, 7 #if CONFIG_RELAY_CHN_COUNT > 4 , 8, 9 #if CONFIG_RELAY_CHN_COUNT > 5 , 10, 11 #if CONFIG_RELAY_CHN_COUNT > 6 , 12, 13 #if CONFIG_RELAY_CHN_COUNT > 7 , 14, 15 #endif #endif #endif #endif #endif #endif }; #else const uint8_t gpio_map[] = {4, 5}; #endif const uint8_t gpio_count = sizeof(gpio_map) / sizeof(gpio_map[0]); void reset_channels_to_defaults() { #if CONFIG_RELAY_CHN_COUNT > 1 relay_chn_stop_all(); #if CONFIG_RELAY_CHN_ENABLE_RUN_LIMIT relay_chn_set_run_limit_all_with(CONFIG_RELAY_CHN_RUN_LIMIT_DEFAULT_SEC); #endif vTaskDelay(pdMS_TO_TICKS(CONFIG_RELAY_CHN_OPPOSITE_INERTIA_MS + TEST_DELAY_MARGIN_MS)); for (int i = 0; i < CONFIG_RELAY_CHN_COUNT; i++) { TEST_ASSERT_EQUAL(RELAY_CHN_STATE_IDLE, relay_chn_get_state(i)); // Reset directions if (relay_chn_get_direction(i) != RELAY_CHN_DIRECTION_DEFAULT) { relay_chn_flip_direction(i); TEST_ASSERT_EQUAL(RELAY_CHN_DIRECTION_DEFAULT, relay_chn_get_direction(i)); } } #else relay_chn_stop(); #if CONFIG_RELAY_CHN_ENABLE_RUN_LIMIT relay_chn_set_run_limit(CONFIG_RELAY_CHN_RUN_LIMIT_DEFAULT_SEC); #endif // Reset direction if (relay_chn_get_direction() != RELAY_CHN_DIRECTION_DEFAULT) { relay_chn_flip_direction(); TEST_ASSERT_EQUAL(RELAY_CHN_DIRECTION_DEFAULT, relay_chn_get_direction()); } vTaskDelay(pdMS_TO_TICKS(CONFIG_RELAY_CHN_OPPOSITE_INERTIA_MS + TEST_DELAY_MARGIN_MS)); TEST_ASSERT_EQUAL(RELAY_CHN_STATE_IDLE, relay_chn_get_state()); #endif } void test_state_listener(uint8_t id, relay_chn_state_t old_state, relay_chn_state_t new_state) { ESP_LOGI(TEST_TAG, "test_state_listener: id: %d, old_state: %d, new_state: %d", id, old_state, new_state); }