LSH-Core
Deterministic firmware core for Controllino-based Labo Smart Home nodes
 
Loading...
Searching...
No Matches
actuator_manager.hpp File Reference

Declares the manager for the global collection of Actuator objects. More...

#include <stdint.h>
#include "internal/etl_array.hpp"
#include "internal/user_config_bridge.hpp"
Include dependency graph for actuator_manager.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  Actuators
 Globally stores all actuators (relays) and to operates over them.
 

Typedefs

using Actuators::PackedActuatorStateBytes = etl::array< uint8_t, CONFIG_PACKED_ACTUATOR_STATE_STORAGE_CAPACITY >
 Compact shadow of the full actuator runtime state in protocol bit order.
 

Functions

auto Actuators::getId (uint8_t actuatorIndex) -> uint8_t
 Return the static wire ID for one registered actuator index.
 
auto Actuators::getActuator (uint8_t actuatorId) -> Actuator *
 Get a single actuator.
 
auto Actuators::getIndex (uint8_t actuatorId) -> uint8_t
 Get a single actuator index (in device vector of actuators).
 
auto Actuators::tryGetIndex (uint8_t actuatorId, uint8_t &actuatorIndex) -> bool
 Resolves an actuator ID to its dense runtime index with a single map lookup.
 
auto Actuators::actuatorExists (uint8_t actuatorId) -> bool
 Get if the actuator actually exists.
 
void Actuators::recordSwitchTime (uint8_t actuatorIndex, uint32_t now_ms)
 Records the latest switch time for an actuator when compact actuator timer storage is enabled.
 
void Actuators::updatePackedState (uint8_t actuatorIndex, bool state)
 Keep the compact actuator-state shadow aligned with one runtime state change.
 
template<uint8_t ActuatorIndex>
 Actuators::__attribute__ ((always_inline)) inline void updatePackedStateStatic(bool state)
 Keep the packed actuator-state shadow aligned using a generated index.
 
auto Actuators::getPackedStateByteCount () -> uint8_t
 Return the number of packed bytes required by the current topology.
 
auto Actuators::getPackedStateByte (uint8_t byteIndex) -> uint8_t
 Return one packed state byte in protocol wire order.
 
void Actuators::finalizeSetup ()
 Final validation after actuator registration.
 

Detailed Description

Declares the manager for the global collection of Actuator objects.

Author
Jacopo Labardi (labodj)

Copyright 2026 Jacopo Labardi

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.