Class that provides a dimmer.
Definition: cs_Dimmer.h:18
Event listener.
Definition: cs_EventListener.h:17
Class that provides a bi-stable relay.
Definition: cs_Relay.h:18
Class that takes care of safety of switch.
Definition: cs_SafeSwitch.h:21
bool allowStateChanges
Determines whether or not setDimmer and setRelay will have any effect.
Definition: cs_SafeSwitch.h:135
bool isWarmBoot()
Returns true when the crownstone booted, while the hardware has been powered for a longer time.
void sendUnexpectedStateUpdate()
Send state update to listeners.
uint32_t dimmerCheckCountDown
Counter that counts down until power usage via dimmer should be checked.
Definition: cs_SafeSwitch.h:124
void setDimmerPowered(bool powered)
Set dimmerPowered and sends event.
bool initialized
Definition: cs_SafeSwitch.h:91
callback_on_state_change_t callbackOnStateChange
Definition: cs_SafeSwitch.h:104
bool dimmerOnWhenPinsFloat
Definition: cs_SafeSwitch.h:97
void onUnexpextedStateChange(const callback_on_state_change_t &closure)
Register a callback function that's called when state changes unexpectedly.
bool isDimmerStateChangeAllowed()
Relay relay
Definition: cs_SafeSwitch.h:89
switch_state_t currentState
Current state of relay and dimmer.
Definition: cs_SafeSwitch.h:102
void forceRelayOnAndDimmerOff()
Turn relay on and dimmer off, without any checks.
OperationMode operationMode
Cached operation mode.
Definition: cs_SafeSwitch.h:145
bool relayHasBeenSetBefore
Whether the relay has been set at least once after boot.
Definition: cs_SafeSwitch.h:140
cs_ret_code_t setDimmerUnchecked(uint8_t intensity, bool fade)
Set dimmer intensity.
cs_ret_code_t setRelay(bool value)
Set relay.
bool isSafeToTurnRelayOff(state_errors_t stateErrors)
cs_ret_code_t startDimmerPowerCheck(uint8_t intensity, bool fade)
Try to see if dimmer is powered: Set dimmer intensity, and start power usage check.
state_errors_t getErrorState()
Get state errors from State.
cs_ret_code_t setRelayUnchecked(bool value)
Set relay.
bool isRelayStateChangeAllowed()
bool isSafeToDim(state_errors_t stateErrors)
bool isSafeToTurnRelayOn(state_errors_t stateErrors)
bool checkedDimmerPowerUsage
Whether power usage via dimmer has been checked already.
Definition: cs_SafeSwitch.h:129
switch_state_t getState()
Get current switch state.
void dimmerPoweredUp()
Called when enough time has passed for the dimmer to be powered.
bool isSwitchOverLoaded(state_errors_t stateErrors)
bool isRelayStateAccurate()
The relay bit of the return value of getState() is retrieved from persistent memory at startup.
uint32_t dimmerPowerUpCountDown
Counter that counts down until enough time has passed for dimmer circuit to be powered.
Definition: cs_SafeSwitch.h:119
void factoryReset()
To be called when system is performing factory reset.
bool hasDimmerError(state_errors_t stateErrors)
Dimmer dimmer
Definition: cs_SafeSwitch.h:88
void init(const boards_config_t &board)
function< void(switch_state_t newState)> callback_on_state_change_t
Callback function definition.
Definition: cs_SafeSwitch.h:75
void cancelDimmerPowerCheck()
Cancel power usage check.
bool relayPowered
Whether the relay circuit is powered.
Definition: cs_SafeSwitch.h:109
bool canTryDimmingOnBoot
Definition: cs_SafeSwitch.h:93
bool canDimOnWarmBoot
Definition: cs_SafeSwitch.h:95
cs_ret_code_t setDimmer(uint8_t intensity, bool fade=true)
Set dimmer intensity.
bool dimmerPowered
Whether the dimmer circuit is powered.
Definition: cs_SafeSwitch.h:114
void checkDimmerPower()
Check if power is used due to dimmer being on.
void goingToDfu()
To be called when system is going to DFU mode.
void forceSwitchOff()
Turn relay and dimmer off, without any checks.
void start()
Start switch.
void handleGetBehaviourDebug(event_t &evt)
void handleEvent(event_t &evt) override
Handle events.
Author: Crownstone Team Copyright: Crownstone (https://crownstone.rocks) Date: Oct 9,...
Definition: cs_Event.h:26
#define TICK_INTERVAL_MS
Interval in milliseconds at which tick events are dispatched.
Definition: cs_Config.h:277
#define PWM_BOOT_DELAY_MS
Definition: cs_Config.h:213
uint16_t cs_ret_code_t
Definition: cs_Typedefs.h:21
OperationMode
Definition: cs_Types.h:440
Board configuration.
Definition: cs_Boards.h:169
State errors: collection of errors that influence the switch behaviour.
Definition: cs_Packets.h:192
Switch state: combination of relay and dimmer state.
Definition: cs_Packets.h:219