Well, I wouldn't mind seeing one!
OK, let me run some design ideas by you (and anyone else who wants to chime in) and get your suggestions, comments, improvements, etc.
Obviously, the timer will show elapsed time between whatever the sim's “now” is and some other “mission start” time. For example, if the sim's now is MJD 60001.50 and the mission start time is 60000.00, the timer will show “+1.500 days” or “+1:12:00:00.00” or some equivalent format. Let's call the mission start variable “met_ref_mjd” (“mission elapsed timer reference, MJD”) – in the above example, met_ref_mjd = 60000.0.
So how about this? The timer has three states:
MET_OFF: timer is inactive.
MET_ARMED: timer is off, but the moment any thrust is detected on any thruster the state is set to MET_ON and met_ref_mjd is set to the current MJD. (The timer can also be manually started in two other ways.)
MET_ON: timer is active, met_ref_mjd is set, screen displays met_ref_mjd and time since met_ref_mjd.
BUTTONS/KEY COMMANDS:
ARM: Has no effect in MET_ON state. Toggles between MET_OFF and MET_ARMED.
ON: Has no effect in MET_ON state. In MET_OFF or MET_ARMED state this will set the state to MET_ON (i.e., overrides the armed state) and sets met_ref_mjd to current MJD.
MJD: Has no effect in MET_ON state. In MET_OFF or MET_ARMED state, this prompts the user with a popup data entry window; the user enters the reference date (met_ref_mjd) and the state is set to MET_ON. An invalid entry results in no change. Setting met_ref_mjd to a future time is a valid entry.
OFF: Has no effect in MET_OFF state. In MET_ARMED state this sets the state to MET_OFF. (Redundant with the ARM button in this case; should this be changed?) The purpose of this button is to enable the user to cancel an active timer, but I'm thinking that's something the user should be able to do easily but not accidentally; so, in MET_ON state the user is given a random 4 digit number and a popup box in which to enter that number to confirm. Correctly entering the confirmation number sets the state to MET_OFF; an incorrect entry results in no action (state stays at MET_ON, alarm still runs).
DSP: Toggles the format in which mission elapsed time is displayed between “day/hour/minute/second” and “days” – with the earlier example (current MJD = 60001.50, met_ref_mjd = 60000.00), the displayed MET would be either something like “+1:12:00:00.00” or “+1.500 days.”
So to sum up the basic operation of the timer, let's say you're on the runway ready to take off and the timer is off. There are three ways you can turn the timer on. You can arm it (ARM button), in which case it will automatically start when you apply any thrust to the craft. You can manually enter the mission start time (MJD button) and set the timer that way. Or you can hit the ON button and start the timer at whatever that moment happens to be. While the timer is off you can arm and disarm it or turn it on with simple button clicks, but once the timer is on there's an extra step for turning it off to avoid accidents.
MFD SCREEN:
Text colors – green in MET_OFF state; bright red in MET_ARMED; yellow in MET_ON.
Text – something like this:
“Timer is ON [or “ARMED” or “OFF” as applicable]
Mission start MJD #####.#### [this line only appears in MET_ON state]
[blank line]
[blank line]
MET is +/-######:##:##:##.## [this line only appears in MET_ON state; can also be displayed as “+/-######.###### days”]
[blank line]
[blank line]
[informational message line]
[additional informational message lines as needed]
The MET line is the main output the user is interested in, so I've set that off with blank lines to make it easier to see.
Informational messages would be things like, “Timer is armed and will start when thrust is detected”; “Confirm cancellation of timer by entering 4837”; etc.
Anyway, that's it … your thoughts? The above is a first draft and while I don't want to get into feature creep, I'm sure there's room for improvement.