71 lines
1.7 KiB
C
71 lines
1.7 KiB
C
/**
|
|
* @file outputs.h
|
|
* @brief Output control for circulation pump, burner, and safety contact.
|
|
*
|
|
* This module controls the relay outputs via GPIO pins. All outputs
|
|
* are active-low (relay energized when GPIO is low).
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include "esp_err.h"
|
|
|
|
/**
|
|
* @brief Output state enumeration.
|
|
*/
|
|
typedef enum _Output
|
|
{
|
|
ENABLED, /**< Output active (relay energized, GPIO low). */
|
|
DISABLED /**< Output inactive (relay de-energized, GPIO high). */
|
|
} eOutput;
|
|
|
|
/**
|
|
* @brief Initialize the outputs module.
|
|
*
|
|
* Configures GPIO pins for circulation pump, burner, and safety contact
|
|
* as outputs. All outputs are initialized to DISABLED (safe state).
|
|
*
|
|
* @return ESP_OK on success, ESP_FAIL on error.
|
|
*/
|
|
esp_err_t initOutputs(void);
|
|
|
|
/**
|
|
* @brief Get the current circulation pump state.
|
|
* @return eOutput state (ENABLED or DISABLED).
|
|
*/
|
|
eOutput getCirculationPumpState(void);
|
|
|
|
/**
|
|
* @brief Set the circulation pump state.
|
|
* @param in Desired state (ENABLED or DISABLED).
|
|
*/
|
|
void setCirculationPumpState(eOutput in);
|
|
|
|
/**
|
|
* @brief Get the current burner state.
|
|
* @return eOutput state (ENABLED or DISABLED).
|
|
*/
|
|
eOutput getBurnerState(void);
|
|
|
|
/**
|
|
* @brief Set the burner state.
|
|
* @param in Desired state (ENABLED or DISABLED).
|
|
*/
|
|
void setBurnerState(eOutput in);
|
|
|
|
/**
|
|
* @brief Get the current safety contact state.
|
|
* @return eOutput state (ENABLED or DISABLED).
|
|
*/
|
|
eOutput getSafetyControlState(void);
|
|
|
|
/**
|
|
* @brief Set the safety contact state.
|
|
*
|
|
* The safety contact controls power to the burner. When DISABLED,
|
|
* the burner cannot operate regardless of the burner signal.
|
|
*
|
|
* @param in Desired state (ENABLED or DISABLED).
|
|
*/
|
|
void setSafetyControlState(eOutput in);
|