From 99d753238b651a9dc7b6e1a946284393328231e4 Mon Sep 17 00:00:00 2001 From: ismail Date: Wed, 2 Apr 2025 14:05:48 +0300 Subject: [PATCH] Fix error handling issues. Fix error handling so that the value in ret variable does not become corrupt. --- src/relay_chn.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/relay_chn.c b/src/relay_chn.c index eb882d0..dc26ad7 100644 --- a/src/relay_chn.c +++ b/src/relay_chn.c @@ -280,7 +280,8 @@ static esp_err_t relay_chn_create_event_loop() .task_core_id = tskNO_AFFINITY }; esp_err_t ret = esp_event_loop_create(&loop_args, &relay_chn_event_loop); - ret |= esp_event_handler_register_with(relay_chn_event_loop, + ESP_RETURN_ON_ERROR(ret, TAG, "Failed to create event loop for relay channel"); + ret = esp_event_handler_register_with(relay_chn_event_loop, RELAY_CHN_CMD_EVENT, ESP_EVENT_ANY_ID, relay_chn_event_handler, NULL); @@ -701,7 +702,8 @@ static esp_err_t relay_chn_output_stop(relay_chn_t *relay_chn) { esp_err_t ret; ret = gpio_set_level(relay_chn->output.forward_pin, 0); - ret |= gpio_set_level(relay_chn->output.reverse_pin, 0); + ESP_RETURN_ON_ERROR(ret, TAG, "Failed to set forward pin to LOW for relay channel #%d", relay_chn->id); + ret = gpio_set_level(relay_chn->output.reverse_pin, 0); return ret; } @@ -709,7 +711,8 @@ static esp_err_t relay_chn_output_forward(relay_chn_t *relay_chn) { esp_err_t ret; ret = gpio_set_level(relay_chn->output.forward_pin, 1); - ret |= gpio_set_level(relay_chn->output.reverse_pin, 0); + ESP_RETURN_ON_ERROR(ret, TAG, "Failed to set forward pin to HIGH for relay channel #%d", relay_chn->id); + ret = gpio_set_level(relay_chn->output.reverse_pin, 0); return ret; } @@ -717,7 +720,8 @@ static esp_err_t relay_chn_output_reverse(relay_chn_t *relay_chn) { esp_err_t ret; ret = gpio_set_level(relay_chn->output.forward_pin, 0); - ret |= gpio_set_level(relay_chn->output.reverse_pin, 1); + ESP_RETURN_ON_ERROR(ret, TAG, "Failed to set forward pin to LOW for relay channel #%d", relay_chn->id); + ret = gpio_set_level(relay_chn->output.reverse_pin, 1); return ret; } -- 2.39.5