Bluenet
5.7.0
Bluenet, firmware for nRF52 smart home devices
|
Object that defines when a state transition should occur. More...
#include <cs_SwitchBehaviour.h>
Public Types | |
typedef std::array< uint8_t, WireFormat::size< Behaviour >()+WireFormat::size< PresenceCondition >()> | SerializedDataType |
![]() | |
enum class | Type : uint8_t { Switch = 0 , Twilight = 1 , Extended = 2 , Undefined = 0xff } |
typedef std::array< uint8_t, 1+13 > | SerializedDataType |
Public Member Functions | |
virtual | ~SwitchBehaviour ()=default |
SwitchBehaviour (uint8_t intensity, uint8_t profileid, DayOfWeekBitMask activedaysofweek, TimeOfDay from, TimeOfDay until, PresenceCondition presencecondition) | |
SwitchBehaviour (SerializedDataType arr) | |
SerializedDataType | serialize () |
virtual uint8_t * | serialize (uint8_t *outbuff, size_t max_size) override |
virtual size_t | serializedSize () const override |
virtual Type | getType () const override |
virtual void | print () |
bool | gracePeriodForPresenceIsActive () |
virtual bool | requiresPresence () override |
virtual bool | requiresAbsence () override |
virtual PresencePredicate | currentPresencePredicate () |
virtual bool | isValid (Time currenttime, PresenceStateDescription currentpresence) |
Does the behaviour apply to the current situation? If from() == until() the behaviour isValid all day. More... | |
bool | isValid (PresenceStateDescription currentpresence) |
bool | isValid (Time currenttime) |
Does the behaviour apply to the current situation? If from() == until() the behaviour isValid all day. More... | |
![]() | |
virtual | ~Behaviour ()=default |
Behaviour (Type typ, uint8_t intensity, uint8_t profileid, DayOfWeekBitMask activedaysofweek, TimeOfDay from, TimeOfDay until) | |
Behaviour (SerializedDataType arr) | |
SerializedDataType | serialize () |
virtual uint8_t * | serialize (uint8_t *outbuff, size_t max_size) |
virtual size_t | serializedSize () const |
std::vector< uint8_t > | serialized () |
virtual void | print () |
virtual Type | getType () const |
bool | isValid (Time currenttime) |
Does the behaviour apply to the current situation? If from() == until() the behaviour isValid all day. More... | |
virtual bool | requiresPresence () |
virtual bool | requiresAbsence () |
uint8_t | value () const |
Returns the intended state when this behaviour is valid. More... | |
TimeOfDay | from () const |
Returns from (incl.) which time on this behaviour applies. More... | |
TimeOfDay | until () const |
Returns until (excl.) which time on this behaviour applies. More... | |
Protected Attributes | |
PresenceCondition | presenceCondition |
![]() | |
Type | typ |
uint8_t | activeIntensity = 0 |
uint8_t | profileId = 0 |
DayOfWeekBitMask | activeDays |
TimeOfDay | behaviourAppliesFrom = TimeOfDay::Midnight() |
TimeOfDay | behaviourAppliesUntil = TimeOfDay::Midnight() |
Private Member Functions | |
bool | _isValid (PresenceStateDescription currentpresence) |
Private Attributes | |
std::optional< uint32_t > | prevInRoomTimeStamp = {} |
Friends | |
class | TestAccess< SwitchBehaviour > |
Object that defines when a state transition should occur.
It abstracts predicates such as: "fade to 100% in 10 minutes, starting 30 minutes before sunrise, if anyone is in this room"
typedef std::array<uint8_t, WireFormat::size<Behaviour>() + WireFormat::size<PresenceCondition>()> SwitchBehaviour::SerializedDataType |
|
virtualdefault |
SwitchBehaviour::SwitchBehaviour | ( | uint8_t | intensity, |
uint8_t | profileid, | ||
DayOfWeekBitMask | activedaysofweek, | ||
TimeOfDay | from, | ||
TimeOfDay | until, | ||
PresenceCondition | presencecondition | ||
) |
|
private |
|
virtual |
Reimplemented in ExtendedSwitchBehaviour.
|
inlineoverridevirtual |
Reimplemented from Behaviour.
Reimplemented in ExtendedSwitchBehaviour.
bool SwitchBehaviour::gracePeriodForPresenceIsActive | ( | ) |
bool SwitchBehaviour::isValid | ( | PresenceStateDescription | currentpresence | ) |
bool Behaviour::isValid | ( | Time | currenttime | ) |
|
virtual |
Does the behaviour apply to the current situation? If from() == until() the behaviour isValid all day.
Reimplemented in ExtendedSwitchBehaviour, and ExtendedSwitchBehaviour.
|
virtual |
Reimplemented from Behaviour.
Reimplemented in ExtendedSwitchBehaviour.
|
overridevirtual |
Reimplemented from Behaviour.
Reimplemented in ExtendedSwitchBehaviour.
|
overridevirtual |
Reimplemented from Behaviour.
Reimplemented in ExtendedSwitchBehaviour.
SerializedDataType SwitchBehaviour::serialize | ( | ) |
|
overridevirtual |
Reimplemented from Behaviour.
Reimplemented in ExtendedSwitchBehaviour.
|
overridevirtual |
Reimplemented from Behaviour.
Reimplemented in ExtendedSwitchBehaviour.
|
friend |
|
protected |
|
private |