#ifndef VALVE_H #define VALVE_H #include #include struct valve_gpios { const struct gpio_dt_spec in0; const struct gpio_dt_spec in1; const struct gpio_dt_spec rst; const struct gpio_dt_spec sen; const struct gpio_dt_spec s0; const struct gpio_dt_spec s1; }; enum valve_state { VALVE_STATE_CLOSED, VALVE_STATE_OPEN, }; enum valve_movement { VALVE_MOVEMENT_IDLE, VALVE_MOVEMENT_OPENING, VALVE_MOVEMENT_CLOSING, VALVE_MOVEMENT_ERROR }; void valve_init(void); void valve_open(void); void valve_close(void); void valve_stop(void); enum valve_state valve_get_state(void); enum valve_movement valve_get_movement(void); uint16_t valve_get_motor_current(void); uint16_t valve_get_supply_voltage(void); void valve_set_max_open_time(uint16_t seconds); void valve_set_max_close_time(uint16_t seconds); uint16_t valve_get_max_open_time(void); uint16_t valve_get_max_close_time(void); #endif // VALVE_H