32 bit integers are somewhat magical and handled pretty well across platforms
in terms of predictable packing and byte ordering. So rather than trying to get fancy and shave a few bits off the structure sizes, just go with 32 bit ints for everthing which saves a lot of potential headaches in the cross platform and cross architecture arenas.
This commit is contained in:
parent
bed9a2b355
commit
927cb78aba
2 changed files with 32 additions and 32 deletions
|
@ -34,7 +34,7 @@ typedef unsigned __int64 uint64_t;
|
|||
# error "Port me! Platforms that don't have <stdint.h> need to define int8_t, et. al."
|
||||
#endif
|
||||
|
||||
const uint16_t FG_NET_CTRLS_VERSION = 25;
|
||||
const uint32_t FG_NET_CTRLS_VERSION = 26;
|
||||
|
||||
|
||||
// Define a structure containing the control parameters
|
||||
|
@ -49,7 +49,7 @@ public:
|
|||
FG_MAX_TANKS = 6
|
||||
};
|
||||
|
||||
uint16_t version; // increment when data values change
|
||||
uint32_t version; // increment when data values change
|
||||
|
||||
// Aero controls
|
||||
double aileron; // -1 ... 1
|
||||
|
@ -61,33 +61,33 @@ public:
|
|||
double flaps; // 0 ... 1
|
||||
|
||||
// Aero control faults
|
||||
uint8_t flaps_power; // true = power available
|
||||
uint8_t flap_motor_ok;
|
||||
uint32_t flaps_power; // true = power available
|
||||
uint32_t flap_motor_ok;
|
||||
|
||||
// Engine controls
|
||||
uint8_t num_engines; // number of valid engines
|
||||
uint8_t master_bat[FG_MAX_ENGINES];
|
||||
uint8_t master_alt[FG_MAX_ENGINES];
|
||||
uint8_t magnetos[FG_MAX_ENGINES];
|
||||
uint8_t starter_power[FG_MAX_ENGINES];// true = starter power
|
||||
uint32_t num_engines; // number of valid engines
|
||||
uint32_t master_bat[FG_MAX_ENGINES];
|
||||
uint32_t master_alt[FG_MAX_ENGINES];
|
||||
uint32_t magnetos[FG_MAX_ENGINES];
|
||||
uint32_t starter_power[FG_MAX_ENGINES];// true = starter power
|
||||
double throttle[FG_MAX_ENGINES]; // 0 ... 1
|
||||
double mixture[FG_MAX_ENGINES]; // 0 ... 1
|
||||
double condition[FG_MAX_ENGINES]; // 0 ... 1
|
||||
uint8_t fuel_pump_power[FG_MAX_ENGINES];// true = on
|
||||
uint32_t fuel_pump_power[FG_MAX_ENGINES];// true = on
|
||||
double prop_advance[FG_MAX_ENGINES]; // 0 ... 1
|
||||
|
||||
// Engine faults
|
||||
uint8_t engine_ok[FG_MAX_ENGINES];
|
||||
uint8_t mag_left_ok[FG_MAX_ENGINES];
|
||||
uint8_t mag_right_ok[FG_MAX_ENGINES];
|
||||
uint8_t spark_plugs_ok[FG_MAX_ENGINES]; // false = fouled plugs
|
||||
uint8_t oil_press_status[FG_MAX_ENGINES];// 0 = normal, 1 = low, 2 = full fail
|
||||
uint8_t fuel_pump_ok[FG_MAX_ENGINES];
|
||||
uint32_t engine_ok[FG_MAX_ENGINES];
|
||||
uint32_t mag_left_ok[FG_MAX_ENGINES];
|
||||
uint32_t mag_right_ok[FG_MAX_ENGINES];
|
||||
uint32_t spark_plugs_ok[FG_MAX_ENGINES]; // false = fouled plugs
|
||||
uint32_t oil_press_status[FG_MAX_ENGINES];// 0 = normal, 1 = low, 2 = full fail
|
||||
uint32_t fuel_pump_ok[FG_MAX_ENGINES];
|
||||
|
||||
// Fuel management
|
||||
uint8_t num_tanks; // number of valid tanks
|
||||
uint8_t fuel_selector[FG_MAX_TANKS]; // false = off, true = on
|
||||
uint8_t cross_feed; // false = off, true = on
|
||||
uint32_t num_tanks; // number of valid tanks
|
||||
uint32_t fuel_selector[FG_MAX_TANKS]; // false = off, true = on
|
||||
uint32_t cross_feed; // false = off, true = on
|
||||
|
||||
// Brake controls
|
||||
double brake_left;
|
||||
|
@ -97,10 +97,10 @@ public:
|
|||
double brake_parking;
|
||||
|
||||
// Landing Gear
|
||||
uint8_t gear_handle; // true=gear handle down; false= gear handle up
|
||||
uint32_t gear_handle; // true=gear handle down; false= gear handle up
|
||||
|
||||
// Switches
|
||||
uint8_t master_avionics;
|
||||
uint32_t master_avionics;
|
||||
|
||||
// wind and turbulance
|
||||
double wind_speed_kt;
|
||||
|
@ -116,13 +116,13 @@ public:
|
|||
double magvar; // local magnetic variation in degs.
|
||||
|
||||
// hazards
|
||||
uint8_t icing; // icing status could me much
|
||||
uint32_t icing; // icing status could me much
|
||||
// more complex but I'm
|
||||
// starting simple here.
|
||||
|
||||
// simulation control
|
||||
uint8_t speedup; // integer speedup multiplier
|
||||
uint8_t freeze; // 0=normal
|
||||
uint32_t speedup; // integer speedup multiplier
|
||||
uint32_t freeze; // 0=normal
|
||||
// 0x01=master
|
||||
// 0x02=position
|
||||
// 0x04=fuel
|
||||
|
|
|
@ -36,7 +36,7 @@ typedef unsigned __int64 uint64_t;
|
|||
# error "Port me! Platforms that don't have <stdint.h> need to define int8_t, et. al."
|
||||
#endif
|
||||
|
||||
const uint16_t FG_NET_FDM_VERSION = 21;
|
||||
const uint32_t FG_NET_FDM_VERSION = 22;
|
||||
|
||||
|
||||
// Define a structure containing the top level flight dynamics model
|
||||
|
@ -52,7 +52,7 @@ public:
|
|||
FG_MAX_TANKS = 4
|
||||
};
|
||||
|
||||
uint16_t version; // increment when data values change
|
||||
uint32_t version; // increment when data values change
|
||||
|
||||
// Positions
|
||||
double longitude; // geodetic (radians)
|
||||
|
@ -93,8 +93,8 @@ public:
|
|||
// Pressure
|
||||
|
||||
// Engine status
|
||||
uint8_t num_engines; // Number of valid engines
|
||||
uint8_t eng_state[FG_MAX_ENGINES];// Engine state (off, cranking, running)
|
||||
uint32_t num_engines; // Number of valid engines
|
||||
uint32_t 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
|
||||
|
@ -105,12 +105,12 @@ public:
|
|||
float oil_px[FG_MAX_ENGINES]; // Oil pressure psi
|
||||
|
||||
// Consumables
|
||||
uint8_t num_tanks; // Max number of fuel tanks
|
||||
uint32_t num_tanks; // Max number of fuel tanks
|
||||
float fuel_quantity[FG_MAX_TANKS];
|
||||
|
||||
// Gear status
|
||||
uint8_t num_wheels;
|
||||
uint8_t wow[FG_MAX_WHEELS];
|
||||
uint32_t num_wheels;
|
||||
uint32_t wow[FG_MAX_WHEELS];
|
||||
float gear_pos[FG_MAX_WHEELS];
|
||||
float gear_steer[FG_MAX_WHEELS];
|
||||
float gear_compression[FG_MAX_WHEELS];
|
||||
|
@ -118,7 +118,7 @@ public:
|
|||
// Environment
|
||||
uint32_t cur_time; // current unix time
|
||||
// FIXME: make this uint64_t before 2038
|
||||
uint32_t warp; // offset in seconds to unix time
|
||||
int32_t warp; // offset in seconds to unix time
|
||||
float visibility; // visibility in meters (for env. effects)
|
||||
|
||||
// Control surface positions (normalized values)
|
||||
|
|
Loading…
Add table
Reference in a new issue