27enum class OpState :
unsigned char {
35using OpState_t =
enum OpState;
43enum class ErrorCode :
unsigned char {
47 expected_longer_message = 0x01,
48 unrecognized_msgid = 0x02,
49 unexpected_msgid = 0x03,
50 checksum_error = 0x04,
53 machine_type_invalid = 0x10,
54 needle_value_invalid = 0x11,
55 null_pointer_argument = 0x12,
56 argument_invalid = 0x13,
57 arguments_incompatible = 0x13,
60 no_machine_type = 0x20,
66 machine_state_init = 0xE0,
67 machine_state_ready = 0xE1,
68 machine_state_knit = 0xE2,
69 machine_state_test = 0xE3,
70 wrong_machine_state = 0xEF,
74 recoverable_error = 0xF1,
75 critical_error = 0xF2,
77 unspecified_failure = 0xFF
79using Err_t =
enum ErrorCode;
81constexpr unsigned int FLASH_DELAY = 500;
88 virtual void init() = 0;
89 virtual OpState_t getState() = 0;
90 virtual void setState(OpState_t state) = 0;
91 virtual void dispatch() = 0;
110 static OpState_t getState();
111 static void setState(OpState_t state);
112 static void dispatch();
119 void setState(OpState_t state)
final;
131 OpState_t m_currentState;
132 OpState_t m_nextState;
139 unsigned long m_flashTime;
void state_wait_for_machine() const
Action of machine in state wait_for_machine.
Definition fsm.cpp:111
OpState_t getState() final
Get machine state.
Definition fsm.cpp:55
void state_init()
Action of machine in state OpState::init.
Definition fsm.cpp:118
void state_ready() const
Action of machine in state OpState::ready.
Definition fsm.cpp:128
void setState(OpState_t state) final
Set machine state.
Definition fsm.cpp:65
void dispatch() final
Dispatch on machine state.
Definition fsm.cpp:72
void state_error()
Action of machine in state OpState::error.
Definition fsm.cpp:155
void init() final
Initialize Finite State Machine.
Definition fsm.cpp:43
void state_knit() const
Action of machine in state OpState::knit.
Definition fsm.cpp:135
void state_test() const
Action of machine in state OpState::test.
Definition fsm.cpp:143