struct XRSystemStatusRead : public XRSystemStatusWrite
{
// The warning states below are not persisted in the scenario file; they are constantly
// recalculated dynamically.
XRWarningState HullTemperatureWarning;
XRWarningState MainFuelWarning;
XRWarningState RCSFuelWarning;
XRWarningState APUFuelWarning;
XRWarningState LOXWarning;
XRWarningState DynamicPressureWarning;
XRWarningState CoolantWarning;
XRWarningState MasterWarning; // warning active if *any* other warning active
bool MWSLightState; // updated as the MWS light blinks: true = lit, false = not lit
// Fields added in API version 2.1
double RCSFuelLevel; // 0 <= n <= 1.0
double RCSMaxFuelMass; // max fuel mass for RCS in kg (includes bay fuel tanks, if any)
double APUFuelLevel; // 0 <= n <= 1.0
double APUMaxFuelMass; // max fuel mass for APU in kg
double LOXLevel; // 0 <= n <= 1.0
double LOXMaxMass; // max internal LOX mass in kg (includes bay LOX tanks, if any)
double BayLOXMass; // quantity of LOX in kg currently in PAYLOAD BAY TANKS ONLY (may be zero)
// Fields added in API version 3.0
bool MWSAlarmState; // true = MWS alarm active, false = alarm silenced via alarm reset or no warning active
bool COGAutoMode; // true = center-of-gravity shift in auto-mode because the Attitude Hold or Descent Hold autopilot is engaged
bool InternalSystemsFailure;// true = internal systems failed due to coolant overheat
double CenterOfGravity; // CoG shift in meters: 0 = centered, < 0 is forward, > 0 is aft
double CabinO2Level; // Oxygen fraction in cabin; nominal = .209 (20.9%)
double CoolantTemp; // in degrees C
double NoseconeTemp; // in Kelvin
double LeftWingTemp; // in Kelvin
double RightWingTemp; // in Kelvin
double CockpitTemp; // external cockpit hull temperature in Kelvin
double TopHullTemp; // in Kelvin
double MaxSafeNoseconeTemp; // in Kelvin
double MaxSafeWingTemp; // in Kelvin
double MaxSafeCockpitTemp; // in Kelvin
double MaxSafeTopHullTemp; // in Kelvin
};
<...snip...>
struct XREngineStateRead : public XREngineStateWrite
{
double TSFC; // 0 <= n
double FlowRate; // kg/sec
double Thrust; // kN
double FuelLevel; // 0 <= n <= 1.0
double MaxFuelMass; // max fuel mass for this tank in kg (includes bay fuel tanks, if any)
// Some or all of these values may not be available for all engines; any unsupported value will be set to -1.
double DiffuserTemp; // degrees K
double BurnerTemp; // degrees K
double ExhaustTemp; // degrees K
// Field added in API Version 2.1
double BayFuelMass; // quantity of fuel in kg currently in PAYLOAD BAY TANKS ONLY (may be zero)
};