X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FNetwork%2Fnet_fdm.hxx;h=eed2c843887fd411c86eb91452ea7884eed8b28e;hb=29dcc1ca1e331e1a730cc2cfcd5ba371aada7cc5;hp=cb1aacbae68806729b34fe670575b1a37b5c2412;hpb=6e5d22789b420291593c8c8a044220372801e454;p=flightgear.git diff --git a/src/Network/net_fdm.hxx b/src/Network/net_fdm.hxx index cb1aacbae..eed2c8438 100644 --- a/src/Network/net_fdm.hxx +++ b/src/Network/net_fdm.hxx @@ -32,7 +32,8 @@ #include // time_t -const int FG_NET_FDM_VERSION = 5; +const int FG_NET_FDM_VERSION = 13; + // Define a structure containing the top level flight dynamics model // parameters @@ -47,31 +48,80 @@ public: // SPARC, which don't like misaligned // data + enum { + FG_MAX_ENGINES = 4, + FG_MAX_WHEELS = 3, + FG_MAX_TANKS = 4 + }; + // Positions double longitude; // geodetic (radians) double latitude; // geodetic (radians) double altitude; // above sea level (meters) - double agl; // above ground level (meters) - double phi; // roll (radians) - double theta; // pitch (radians) - double psi; // yaw or true heading (radians) + float agl; // above ground level (meters) + float phi; // roll (radians) + float theta; // pitch (radians) + float psi; // yaw or true heading (radians) // Velocities - double phidot; // roll rate (radians/sec) - double thetadot; // pitch rate (radians/sec) - double psidot; // yaw rate (radians/sec) - double vcas; // calibrated airspeed - double climb_rate; // feet per second + float phidot; // roll rate (radians/sec) + float thetadot; // pitch rate (radians/sec) + float psidot; // yaw rate (radians/sec) + float vcas; // calibrated airspeed + float climb_rate; // feet per second + float v_north; // north velocity in local/body frame, fps + float v_east; // east velocity in local/body frame, fps + float v_down; // down/vertical velocity in local/body frame, fps + float v_wind_body_north; // north velocity in local/body frame + // relative to local airmass, fps + float v_wind_body_east; // east velocity in local/body frame + // relative to local airmass, fps + float v_wind_body_down; // down/vertical velocity in local/body + // frame relative to local airmass, fps + + // Stall + float stall_warning; // 0.0 - 1.0 indicating the amount of stall // Accelerations - double A_X_pilot; // X accel in body frame ft/sec^2 - double A_Y_pilot; // Y accel in body frame ft/sec^2 - double A_Z_pilot; // Z accel in body frame ft/sec^2 + float A_X_pilot; // X accel in body frame ft/sec^2 + float A_Y_pilot; // Y accel in body frame ft/sec^2 + float A_Z_pilot; // Z accel in body frame ft/sec^2 + + // Pressure + + // Engine status + int num_engines; // Number of valid engines + int eng_state[FG_MAX_ENGINES]; // Engine state (off, cranking, running) + float rpm[FG_MAX_ENGINES]; // Engine RPM rev/min + float fuel_flow[FG_MAX_ENGINES]; // Fuel flow gallons/hr + float EGT[FG_MAX_ENGINES]; // Exhuast gas temp deg F + float oil_temp[FG_MAX_ENGINES]; // Oil temp deg F + float oil_px[FG_MAX_ENGINES]; // Oil pressure psi + + // Consumables + int num_tanks; // Max number of fuel tanks + float fuel_quantity[FG_MAX_TANKS]; + + // Gear status + int num_wheels; + bool wow[FG_MAX_WHEELS]; + float gear_pos[FG_MAX_WHEELS]; + float gear_steer[FG_MAX_WHEELS]; + float gear_compression[FG_MAX_WHEELS]; // Environment time_t cur_time; // current unix time long int warp; // offset in seconds to unix time - double visibility; // visibility in meters (for env. effects) + float visibility; // visibility in meters (for env. effects) + + // Control surface positions (normalized values) + float elevator; + float flaps; + float left_aileron; + float right_aileron; + float rudder; + float speedbrake; + float spoilers; };