1
0
Fork 0

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:
curt 2005-05-03 20:34:21 +00:00
parent bed9a2b355
commit 927cb78aba
2 changed files with 32 additions and 32 deletions

View file

@ -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." # error "Port me! Platforms that don't have <stdint.h> need to define int8_t, et. al."
#endif #endif
const uint16_t FG_NET_CTRLS_VERSION = 25; const uint32_t FG_NET_CTRLS_VERSION = 26;
// Define a structure containing the control parameters // Define a structure containing the control parameters
@ -49,7 +49,7 @@ public:
FG_MAX_TANKS = 6 FG_MAX_TANKS = 6
}; };
uint16_t version; // increment when data values change uint32_t version; // increment when data values change
// Aero controls // Aero controls
double aileron; // -1 ... 1 double aileron; // -1 ... 1
@ -61,33 +61,33 @@ public:
double flaps; // 0 ... 1 double flaps; // 0 ... 1
// Aero control faults // Aero control faults
uint8_t flaps_power; // true = power available uint32_t flaps_power; // true = power available
uint8_t flap_motor_ok; uint32_t flap_motor_ok;
// Engine controls // Engine controls
uint8_t num_engines; // number of valid engines uint32_t num_engines; // number of valid engines
uint8_t master_bat[FG_MAX_ENGINES]; uint32_t master_bat[FG_MAX_ENGINES];
uint8_t master_alt[FG_MAX_ENGINES]; uint32_t master_alt[FG_MAX_ENGINES];
uint8_t magnetos[FG_MAX_ENGINES]; uint32_t magnetos[FG_MAX_ENGINES];
uint8_t starter_power[FG_MAX_ENGINES];// true = starter power uint32_t starter_power[FG_MAX_ENGINES];// true = starter power
double throttle[FG_MAX_ENGINES]; // 0 ... 1 double throttle[FG_MAX_ENGINES]; // 0 ... 1
double mixture[FG_MAX_ENGINES]; // 0 ... 1 double mixture[FG_MAX_ENGINES]; // 0 ... 1
double condition[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 double prop_advance[FG_MAX_ENGINES]; // 0 ... 1
// Engine faults // Engine faults
uint8_t engine_ok[FG_MAX_ENGINES]; uint32_t engine_ok[FG_MAX_ENGINES];
uint8_t mag_left_ok[FG_MAX_ENGINES]; uint32_t mag_left_ok[FG_MAX_ENGINES];
uint8_t mag_right_ok[FG_MAX_ENGINES]; uint32_t mag_right_ok[FG_MAX_ENGINES];
uint8_t spark_plugs_ok[FG_MAX_ENGINES]; // false = fouled plugs uint32_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 uint32_t oil_press_status[FG_MAX_ENGINES];// 0 = normal, 1 = low, 2 = full fail
uint8_t fuel_pump_ok[FG_MAX_ENGINES]; uint32_t fuel_pump_ok[FG_MAX_ENGINES];
// Fuel management // Fuel management
uint8_t num_tanks; // number of valid tanks uint32_t num_tanks; // number of valid tanks
uint8_t fuel_selector[FG_MAX_TANKS]; // false = off, true = on uint32_t fuel_selector[FG_MAX_TANKS]; // false = off, true = on
uint8_t cross_feed; // false = off, true = on uint32_t cross_feed; // false = off, true = on
// Brake controls // Brake controls
double brake_left; double brake_left;
@ -97,10 +97,10 @@ public:
double brake_parking; double brake_parking;
// Landing Gear // 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 // Switches
uint8_t master_avionics; uint32_t master_avionics;
// wind and turbulance // wind and turbulance
double wind_speed_kt; double wind_speed_kt;
@ -116,13 +116,13 @@ public:
double magvar; // local magnetic variation in degs. double magvar; // local magnetic variation in degs.
// hazards // hazards
uint8_t icing; // icing status could me much uint32_t icing; // icing status could me much
// more complex but I'm // more complex but I'm
// starting simple here. // starting simple here.
// simulation control // simulation control
uint8_t speedup; // integer speedup multiplier uint32_t speedup; // integer speedup multiplier
uint8_t freeze; // 0=normal uint32_t freeze; // 0=normal
// 0x01=master // 0x01=master
// 0x02=position // 0x02=position
// 0x04=fuel // 0x04=fuel

View file

@ -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." # error "Port me! Platforms that don't have <stdint.h> need to define int8_t, et. al."
#endif #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 // Define a structure containing the top level flight dynamics model
@ -52,7 +52,7 @@ public:
FG_MAX_TANKS = 4 FG_MAX_TANKS = 4
}; };
uint16_t version; // increment when data values change uint32_t version; // increment when data values change
// Positions // Positions
double longitude; // geodetic (radians) double longitude; // geodetic (radians)
@ -93,8 +93,8 @@ public:
// Pressure // Pressure
// Engine status // Engine status
uint8_t num_engines; // Number of valid engines uint32_t num_engines; // Number of valid engines
uint8_t eng_state[FG_MAX_ENGINES];// Engine state (off, cranking, running) uint32_t eng_state[FG_MAX_ENGINES];// Engine state (off, cranking, running)
float rpm[FG_MAX_ENGINES]; // Engine RPM rev/min float rpm[FG_MAX_ENGINES]; // Engine RPM rev/min
float fuel_flow[FG_MAX_ENGINES]; // Fuel flow gallons/hr float fuel_flow[FG_MAX_ENGINES]; // Fuel flow gallons/hr
float egt[FG_MAX_ENGINES]; // Exhuast gas temp deg F float egt[FG_MAX_ENGINES]; // Exhuast gas temp deg F
@ -105,12 +105,12 @@ public:
float oil_px[FG_MAX_ENGINES]; // Oil pressure psi float oil_px[FG_MAX_ENGINES]; // Oil pressure psi
// Consumables // 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]; float fuel_quantity[FG_MAX_TANKS];
// Gear status // Gear status
uint8_t num_wheels; uint32_t num_wheels;
uint8_t wow[FG_MAX_WHEELS]; uint32_t wow[FG_MAX_WHEELS];
float gear_pos[FG_MAX_WHEELS]; float gear_pos[FG_MAX_WHEELS];
float gear_steer[FG_MAX_WHEELS]; float gear_steer[FG_MAX_WHEELS];
float gear_compression[FG_MAX_WHEELS]; float gear_compression[FG_MAX_WHEELS];
@ -118,7 +118,7 @@ public:
// Environment // Environment
uint32_t cur_time; // current unix time uint32_t cur_time; // current unix time
// FIXME: make this uint64_t before 2038 // 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) float visibility; // visibility in meters (for env. effects)
// Control surface positions (normalized values) // Control surface positions (normalized values)