Overview
The objective for the driver controls firmware is to create a robust system capable of both properly keeping track of the state of the vehicle when responding to user inputs, as well as being able to send out the correct messages to other subsystems of the car.
...
To monitor the current state of the car, a series of Finite State Machines is used to monitor each input device. The different states of each FSM have a corresponding check function, which can be used to approve or decline an event according to it's current state. Essentially, if an event is raised and the states of every FSM are aligned in such a way that all their check functions return true, then the event can be considered safe to run at the current time.