#include "test_common.h" const char *TEST_TAG = "RELAY_CHN_TEST"; const uint8_t relay_chn_count = CONFIG_RELAY_CHN_COUNT; const uint32_t opposite_inertia_ms = CONFIG_RELAY_CHN_OPPOSITE_INERTIA_MS; const uint32_t test_delay_margin_ms = 50; // ms tolerance // 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_idle_state() { #if CONFIG_RELAY_CHN_COUNT > 1 relay_chn_stop_all(); vTaskDelay(pdMS_TO_TICKS(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)); } #else relay_chn_stop(); vTaskDelay(pdMS_TO_TICKS(opposite_inertia_ms + test_delay_margin_ms)); TEST_ASSERT_EQUAL(RELAY_CHN_STATE_IDLE, relay_chn_get_state()); #endif }