LSH-Core
Deterministic firmware core for Controllino-based Labo Smart Home nodes
 
Loading...
Searching...
No Matches
NetworkClicks Namespace Reference

Namespace-level storage and helpers for bridge-assisted click actions. More...

Enumerations

enum class  RequestResult : uint8_t { Accepted , AlreadyPending , TransportRejected }
 

Functions

auto request (uint8_t clickableIndex, constants::ClickType clickType) -> RequestResult
 Stubbed request path used when network clicks are compiled out.
 
auto confirm (uint8_t clickableIndex, constants::ClickType clickType) -> bool
 Stubbed confirmation path used when network clicks are compiled out.
 
auto matchesCorrelationId (uint8_t clickableIndex, constants::ClickType clickType, uint8_t correlationId) -> bool
 Stubbed correlation matcher used when network clicks are compiled out.
 
auto thereAreActiveNetworkClicks () -> bool
 Reports no pending network clicks when the feature is compiled out.
 
void eraseNetworkClick (uint8_t clickableIndex, constants::ClickType clickType)
 Stubbed erase path used when network clicks are compiled out.
 
auto isNetworkClickExpired (uint8_t clickableIndex, constants::ClickType clickType) -> bool
 Reports every network click as expired when the feature is compiled out.
 
auto checkNetworkClickTimer (uint8_t clickableIndex, constants::ClickType clickType, bool failover) -> bool
 Stubbed single-timer checker used when network clicks are compiled out.
 
auto checkAllNetworkClicksTimers (bool failover) -> bool
 Stubbed timeout sweep used when network clicks are compiled out.
 

Detailed Description

Namespace-level storage and helpers for bridge-assisted click actions.

Network clicks are intentionally rare in this system. To keep RAM usage low on embedded targets, this module stores only pending transactions in one fixed active pool. Timeout sweeps walk that compact pool only while at least one click is pending. Each clickable/type pair can hold at most one in-flight network transaction at a time, so one held button may legitimately occupy two slots when both long and super-long network clicks are enabled. Callers must inspect the returned RequestResult: only TransportRejected means the network path is unavailable for this click, while AlreadyPending means the press was intentionally ignored because the previous transaction is still open.

Enumeration Type Documentation

◆ RequestResult

enum class NetworkClicks::RequestResult : uint8_t
strong
Enumerator
Accepted 

The request frame has been accepted by the UART and the request-timeout window is now active.

AlreadyPending 

The same clickable/clickType pair already has one in-flight transaction.

TransportRejected 

The UART rejected the outgoing request frame.

Function Documentation

◆ request()

auto NetworkClicks::request ( uint8_t  clickableIndex,
constants::ClickType  clickType 
) -> RequestResult

Stubbed request path used when network clicks are compiled out.

Keeping the symbol available preserves the public API while making the generated firmware pay effectively zero runtime state for a feature the consumer does not use.