roo_control
API Documentation for roo_control
Loading...
Searching...
No Matches
roo_control Namespace Reference

Data Structures

class  BoundSelector
 Selector backed by a bound sensor from roo_transceivers. More...
 
class  BoundSelector< BinaryLogicalState >
 BinaryLogicalState specialization with stricter value checks. More...
 
class  BoundSwitch
 Switch backed by a bound sensing actuator from roo_transceivers. More...
 
class  BoundSwitch< BinaryLogicalState >
 BinaryLogicalState specialization with stricter value checks. More...
 
class  BoundThermometer
 Thermometer backed by a bound sensor from roo_transceivers. More...
 
class  ExpiringThermometer
 Reports readings of another thermometer if fresher than an expiration. More...
 
class  GpioConnector
 Simple, raw, Arduino GPIO-pin-connected logical sensor. More...
 
class  GpioRelay
 Simple, raw, Arduino GPIO-pin-controlled relay switch. More...
 
class  InertSwitch
 Switch that adds inertia between state changes on top of a raw actuator. More...
 
class  Pcf8574
 PCF8574 I2C-controlled 8-bit port extender. More...
 
class  PushButton
 Represents a human-pressable momentary button. More...
 
class  Selector
 An abstraction of a multi-state device. More...
 
class  Switch
 An abstraction of a multi-state settable switch. More...
 
class  Thermometer
 An abstraction of a thermometer, i.e., a device that reports temperature. More...
 

Typedefs

using BoundBinarySelector = BoundSelector< BinaryLogicalState >
 Convenience alias for a bound binary selector.
 
using BinarySelector = Selector< BinaryLogicalState >
 Materialization for a two-state selector, usually driven by digital logic.
 
using BoundBinarySwitch = BoundSwitch< BinaryLogicalState >
 Convenience alias for a bound binary switch.
 
using InertBinarySwitch = InertSwitch< BinaryLogicalState >
 Convenience alias for a binary inert switch.
 
using BinarySwitch = Switch< BinaryLogicalState >
 Materialization for a two-state switch, usually driven by digital logic.
 

Enumerations

enum  BinaryLogicalState { BINARY_STATE_LOW = 0 , BINARY_STATE_HIGH = 1 }
 Binary logical state used by selectors and switches. More...
 

Functions

roo_logging::Stream & operator<< (roo_logging::Stream &out, BinaryLogicalState state)
 Streams a human-readable state name.
 
roo_time::Duration DefaultBackoff (int retry_count)
 Default backoff policy for InertSwitch retries.
 
Thermometer::Reading ReadExpiringTemperature (const Thermometer &t, roo_time::Duration expiration)
 Convenience function for expiring thermometer readings.
 
roo_logging::Stream & operator<< (roo_logging::Stream &os, const Thermometer::Reading &r)
 Streams a human-readable reading.
 

Variables

static constexpr Duration kDebounceInterval = Millis(20)
 
static constexpr Duration kLongPressInterval = Millis(500)
 
static constexpr Duration kDoubleClickDeadline = Millis(500)
 

Typedef Documentation

◆ BinarySelector

Materialization for a two-state selector, usually driven by digital logic.

Definition at line 32 of file selector.h.

◆ BinarySwitch

Materialization for a two-state switch, usually driven by digital logic.

Definition at line 33 of file switch.h.

◆ BoundBinarySelector

Convenience alias for a bound binary selector.

Definition at line 66 of file bound_selector.h.

◆ BoundBinarySwitch

Convenience alias for a bound binary switch.

Definition at line 79 of file bound_switch.h.

◆ InertBinarySwitch

Convenience alias for a binary inert switch.

Definition at line 170 of file inert_switch.h.

Enumeration Type Documentation

◆ BinaryLogicalState

Binary logical state used by selectors and switches.

Enumerator
BINARY_STATE_LOW 
BINARY_STATE_HIGH 

Definition at line 8 of file binary_logical_state.h.

Function Documentation

◆ DefaultBackoff()

roo_time::Duration roo_control::DefaultBackoff ( int  retry_count)

Default backoff policy for InertSwitch retries.

Definition at line 7 of file inert_switch.cpp.

◆ operator<<() [1/2]

roo_logging::Stream & roo_control::operator<< ( roo_logging::Stream &  os,
const Thermometer::Reading r 
)

Streams a human-readable reading.

Definition at line 5 of file thermometer.cpp.

◆ operator<<() [2/2]

roo_logging::Stream & roo_control::operator<< ( roo_logging::Stream &  out,
BinaryLogicalState  state 
)

Streams a human-readable state name.

Definition at line 5 of file binary_logical_state.cpp.

References BINARY_STATE_HIGH, and BINARY_STATE_LOW.

◆ ReadExpiringTemperature()

Thermometer::Reading roo_control::ReadExpiringTemperature ( const Thermometer t,
roo_time::Duration  expiration 
)
inline

Convenience function for expiring thermometer readings.

Returns the temperature if it is fresher than the expiration threshold, and Unknown otherwise. Useful when stale thermometer readings (e.g. due to disconnected devices) should not be used.

Definition at line 50 of file expiring_thermometer.h.

References roo_control::ExpiringThermometer::readTemperature().

Variable Documentation

◆ kDebounceInterval

constexpr Duration roo_control::kDebounceInterval = Millis(20)
staticconstexpr

Definition at line 9 of file push_button.cpp.

Referenced by roo_control::PushButton::tick().

◆ kDoubleClickDeadline

constexpr Duration roo_control::kDoubleClickDeadline = Millis(500)
staticconstexpr

Definition at line 11 of file push_button.cpp.

Referenced by roo_control::PushButton::tick().

◆ kLongPressInterval

constexpr Duration roo_control::kLongPressInterval = Millis(500)
staticconstexpr

Definition at line 10 of file push_button.cpp.

Referenced by roo_control::PushButton::tick().