21#ifndef LSHCORE_DEVICE_ACTUATOR_MANAGER_HPP
22#define LSHCORE_DEVICE_ACTUATOR_MANAGER_HPP
26#include <etl/vector.h>
39 extern etl::array<Actuator *, CONFIG_MAX_ACTUATORS>
actuators;
40 extern etl::map<uint8_t, uint8_t, CONFIG_MAX_ACTUATORS>
actuatorsMap;
45 [[nodiscard]]
auto getIndex(uint8_t actuatorId) -> uint8_t;
50 [[nodiscard]]
auto setAllActuatorsState(
const etl::array<bool, CONFIG_MAX_ACTUATORS> &states) -> bool;
Represents an actuator (relay) attached to a digital pin.
Definition actuator.hpp:33
Forward declaration.
Definition actuator_manager.cpp:30
etl::map< uint8_t, uint8_t, CONFIG_MAX_ACTUATORS > actuatorsMap
Device actuators map (UUID -> actuator index)
Definition actuator_manager.cpp:34
auto turnOffAllActuators() -> bool
Turns off all actuators.
Definition actuator_manager.cpp:128
etl::array< Actuator *, CONFIG_MAX_ACTUATORS > actuators
All device actuators (like relays)
Definition actuator_manager.cpp:33
auto actuatorsAutoOffTimersCheck() -> bool
Performs an auto-off timers check for actuators.
Definition actuator_manager.cpp:111
auto turnOffUnprotectedActuators() -> bool
Turns off all unprotected actuators.
Definition actuator_manager.cpp:144
auto getIndex(uint8_t actuatorId) -> uint8_t
Get a single actuator index (in device vector of actuators).
Definition actuator_manager.cpp:88
auto actuatorExists(uint8_t actuatorId) -> bool
Get if the actuator actually exists.
Definition actuator_manager.cpp:100
auto getActuator(uint8_t actuatorId) -> Actuator *
Get a single actuator.
Definition actuator_manager.cpp:77
void finalizeSetup()
Populates actuatorsWithAutoOffIndexes.
Definition actuator_manager.cpp:181
void addActuator(Actuator *const actuator)
Adds an actuator to the system.
Definition actuator_manager.cpp:45
auto setAllActuatorsState(const etl::array< bool, CONFIG_MAX_ACTUATORS > &states) -> bool
Set the state for all actuators.
Definition actuator_manager.cpp:165
uint8_t totalActuators
Device real total Actuators.
Definition actuator_manager.cpp:32
etl::vector< uint8_t, CONFIG_MAX_ACTUATORS > actuatorsWithAutoOffIndexes
Indexes of actuators with auto off functionality active.
Definition actuator_manager.cpp:35
Internal bridge that imports user-defined macros into the library's scope.