This PR implements the CRUS TOS mode in the DED. Fixes #487.
Feature Spec (requirements obtained from MLU M1):
[x] The TOS cruise Energy Management (EM) function provides an Estimated Time of Arrival (ETA) at the currently selected steerpoint in system or hack time, as selected, and a required groundspeed to reach the currently selected steerpoint at a desired TOS. The computation is made from the aircraft present position to the currently selected steerpoint. The currently selected steerpoint, system or hack time, desired TOS, ETA at the current steerpoint using current flight conditions, and ground speed required to make good the desired TOS are displayed on the CRUS TOS DED page (Figure 2-15).
[x] When TOS is mode selected, an airspeed caret is displayed on the airspeed scale in the HUD which represents the computed airspeed (Ground Speed (GS), TAS, or CAS, as selected) to reach the currently selected steerpoint at the desired TOS, and the time to steerpoint in the HUD is replaced with the ETA to the current steerpoint.
I didn't know how to link the mode switching to the M-SEL button, so instead the mode can currently be toggled by pressing enter while on the CRUS page. The airspeed cue is displayed once the mode is selected, and stays until a new mode is selected or the current mode is disabled, even if you switch DED pages.
[ ] The pilot may enter TOS values for each steerpoint either during preflight planning and load with the DTC, or manually using the UFC and the CRUS TOS DED page.
Currently, DTC is not supported. Desired TOS must be entered via the DED page.
[x] If the aircraft is appreciably early or late reaching a target area, the resulting groundspeed required to reach the steerpoint may be unrealistic; therefore, the required ground speed is limited from 70 to 1,700 knots.
[x] If the steerpoint is not reached by a specified time, the HUD airspeed caret remains positioned at the top of the scale until a new steerpoint is selected.
[x] If HUD velocity and altitude scales are decluttered, the velocity and altitude guidance carets are not displayed.
Hidden in DGFT mode.
[x] Mode selecting another cruise option automatically deselects the current option; however, selecting a different cruise display page does not deselect the current option.
[x] If the CRUS priority button is depressed while the CNI page is displayed, the DED page associated with the mode selected cruise option is accessed. If no cruise option is mode selected, the CRUS TOS page is displayed.
[x] With the landing gear down, the HUD airspeed and altitude carets are removed from the HUD.
TODO (can be done after merging)
[ ] Rewrite the HUD cues to no longer depend on the HUD SVG. Not explicitly required before merging but requested by @NikolaiVChr.
[ ] Add CRUS EDR and CRUS HOME
[ ] Fix CRUS RNG to support any stpt
[ ] Fix the CRUS mode selection to use M-SEL button instead of enter button.
[ ] Bind the airspeed cues to a min/max vertical position, the MLU m1 doesn't mention this but I think it would make sense.
Summary
This PR implements the CRUS TOS mode in the DED. Fixes #487.
Feature Spec (requirements obtained from MLU M1):
[x] The TOS cruise Energy Management (EM) function provides an Estimated Time of Arrival (ETA) at the currently selected steerpoint in system or hack time, as selected, and a required groundspeed to reach the currently selected steerpoint at a desired TOS. The computation is made from the aircraft present position to the currently selected steerpoint. The currently selected steerpoint, system or hack time, desired TOS, ETA at the current steerpoint using current flight conditions, and ground speed required to make good the desired TOS are displayed on the CRUS TOS DED page (Figure 2-15).
[x] When TOS is mode selected, an airspeed caret is displayed on the airspeed scale in the HUD which represents the computed airspeed (Ground Speed (GS), TAS, or CAS, as selected) to reach the currently selected steerpoint at the desired TOS, and the time to steerpoint in the HUD is replaced with the ETA to the current steerpoint.
I didn't know how to link the mode switching to the M-SEL button, so instead the mode can currently be toggled by pressing enter while on the CRUS page. The airspeed cue is displayed once the mode is selected, and stays until a new mode is selected or the current mode is disabled, even if you switch DED pages.
[ ] The pilot may enter TOS values for each steerpoint either during preflight planning and load with the DTC, or manually using the UFC and the CRUS TOS DED page.
Currently, DTC is not supported. Desired TOS must be entered via the DED page.
[x] If the aircraft is appreciably early or late reaching a target area, the resulting groundspeed required to reach the steerpoint may be unrealistic; therefore, the required ground speed is limited from 70 to 1,700 knots.
[x] If the steerpoint is not reached by a specified time, the HUD airspeed caret remains positioned at the top of the scale until a new steerpoint is selected.
[x] If HUD velocity and altitude scales are decluttered, the velocity and altitude guidance carets are not displayed.
Hidden in DGFT mode.
[x] Mode selecting another cruise option automatically deselects the current option; however, selecting a different cruise display page does not deselect the current option.
[x] If the CRUS priority button is depressed while the CNI page is displayed, the DED page associated with the mode selected cruise option is accessed. If no cruise option is mode selected, the CRUS TOS page is displayed.
[x] With the landing gear down, the HUD airspeed and altitude carets are removed from the HUD.
TODO (can be done after merging)