LSH-Core
A robust C++ framework for Arduino-based home automation nodes
Loading...
Searching...
No Matches
actuator_manager.hpp
Go to the documentation of this file.
1
21#ifndef LSHCORE_DEVICE_ACTUATOR_MANAGER_HPP
22#define LSHCORE_DEVICE_ACTUATOR_MANAGER_HPP
23
24#include <etl/array.h>
25#include <etl/map.h>
26#include <etl/vector.h>
27#include <stdint.h>
28
30class Actuator;
31
36namespace Actuators
37{
38 extern uint8_t totalActuators;
39 extern etl::array<Actuator *, CONFIG_MAX_ACTUATORS> actuators;
40 extern etl::map<uint8_t, uint8_t, CONFIG_MAX_ACTUATORS> actuatorsMap;
41 extern etl::vector<uint8_t, CONFIG_MAX_ACTUATORS> actuatorsWithAutoOffIndexes;
42
43 void addActuator(Actuator *actuator); // Add one actuator to actuators vector and activate it
44 [[nodiscard]] auto getActuator(uint8_t actuatorId) -> Actuator *; // Returns a single actuator
45 [[nodiscard]] auto getIndex(uint8_t actuatorId) -> uint8_t; // Returns a single actuator index
46 [[nodiscard]] auto actuatorExists(uint8_t actuatorId) -> bool; // Returns true if actuator exists
47 [[nodiscard]] auto actuatorsAutoOffTimersCheck() -> bool; // Performs an auto-off timer check for actuators
48 [[nodiscard]] auto turnOffAllActuators() -> bool; // Turns off all actuators
49 [[nodiscard]] auto turnOffUnprotectedActuators() -> bool; // Turns off unprotected actuators
50 [[nodiscard]] auto setAllActuatorsState(const etl::array<bool, CONFIG_MAX_ACTUATORS> &states) -> bool; // Set the state for all actuators
51 void finalizeSetup(); // Populates actuatorsWithAutoOffIndexes
52} // namespace Actuators
53
54#endif // LSHCORE_DEVICE_ACTUATOR_MANAGER_HPP
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.