feat(valve): Implement obstacle detection with configurable thresholds
Introduces separate configurable current thresholds for obstacle detection during valve opening and closing movements. - Added state to . - Added and to . - Modified to implement obstacle detection in , setting on high current, and to load/save these new thresholds via settings. - Added new setter/getter functions for obstacle thresholds to and . - Updated with new shell commands (, ) and updated to display these settings. - Updated to document the new registers and error states. - Updated to include new register definitions, menu options, and display of obstacle current thresholds.
This commit is contained in:
@@ -32,7 +32,8 @@ enum valve_movement {
|
||||
VALVE_MOVEMENT_IDLE, /**< The valve is not moving. */
|
||||
VALVE_MOVEMENT_OPENING, /**< The valve is currently opening. */
|
||||
VALVE_MOVEMENT_CLOSING, /**< The valve is currently closing. */
|
||||
VALVE_MOVEMENT_ERROR /**< An error occurred during movement. */
|
||||
VALVE_MOVEMENT_ERROR, /**< An error occurred during movement. */
|
||||
VALVE_MOVEMENT_OBSTACLE /**< An obstacle was detected during movement. */
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -113,6 +114,20 @@ void valve_set_end_current_threshold_open(uint16_t current_ma);
|
||||
*/
|
||||
void valve_set_end_current_threshold_close(uint16_t current_ma);
|
||||
|
||||
/**
|
||||
* @brief Sets the current threshold for obstacle detection during opening.
|
||||
*
|
||||
* @param current_ma The current threshold in milliamps.
|
||||
*/
|
||||
void valve_set_obstacle_current_threshold_open(uint16_t current_ma);
|
||||
|
||||
/**
|
||||
* @brief Sets the current threshold for obstacle detection during closing.
|
||||
*
|
||||
* @param current_ma The current threshold in milliamps.
|
||||
*/
|
||||
void valve_set_obstacle_current_threshold_close(uint16_t current_ma);
|
||||
|
||||
/**
|
||||
* @brief Gets the current threshold for end-position detection during opening.
|
||||
*
|
||||
@@ -141,6 +156,20 @@ uint16_t valve_get_max_open_time(void);
|
||||
*/
|
||||
uint16_t valve_get_max_close_time(void);
|
||||
|
||||
/**
|
||||
* @brief Gets the current threshold for obstacle detection during opening.
|
||||
*
|
||||
* @return The current threshold in milliamps.
|
||||
*/
|
||||
uint16_t valve_get_obstacle_current_threshold_open(void);
|
||||
|
||||
/**
|
||||
* @brief Gets the current threshold for obstacle detection during closing.
|
||||
*
|
||||
* @return The current threshold in milliamps.
|
||||
*/
|
||||
uint16_t valve_get_obstacle_current_threshold_close(void);
|
||||
|
||||
/**
|
||||
* @brief Gets the current drawn by the valve motor during opening.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user