Create a subsystem that allows us to register an event generator. When a new sensor value is present call the registered event generators. If any of them return a sensor event call the registered sensor event handlers to allow them to take action.
In addition the flight state should be an argument to the event generators.
An example would be creating a pressure event for deploying the parachute in response to a high pressure. We would register a sensor event generator which checks the flight state descending as well as the averaged pressure read from the barometer. If the pressure is above the threshold in the Settings.java file we return a BarometerParachuteTreshold event. The SensorTrigger subsystem then relays the event to all of the listeners. In this case the listener would dispatch a deploy main chute command.
Create a subsystem that allows us to register an event generator. When a new sensor value is present call the registered event generators. If any of them return a sensor event call the registered sensor event handlers to allow them to take action.
In addition the flight state should be an argument to the event generators.
An example would be creating a pressure event for deploying the parachute in response to a high pressure. We would register a sensor event generator which checks the flight state descending as well as the averaged pressure read from the barometer. If the pressure is above the threshold in the Settings.java file we return a BarometerParachuteTreshold event. The SensorTrigger subsystem then relays the event to all of the listeners. In this case the listener would dispatch a deploy main chute command.