References: Implementing a Finite State Machine in C++ Finite State Machines (FSM) in Embedded Systems (Part 1) - There's a State in This Machine! State Machine Design in C
References: