From: curt Date: Tue, 3 May 2005 20:34:21 +0000 (+0000) Subject: 32 bit integers are somewhat magical and handled pretty well across platforms X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=927cb78abaf8e84229fee2a817e8f80f3a300ebf;p=flightgear.git 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. --- diff --git a/src/Network/net_ctrls.hxx b/src/Network/net_ctrls.hxx index 16d7c4748..f70d4f7b9 100644 --- a/src/Network/net_ctrls.hxx +++ b/src/Network/net_ctrls.hxx @@ -34,7 +34,7 @@ typedef unsigned __int64 uint64_t; # error "Port me! Platforms that don't have 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 diff --git a/src/Network/net_fdm.hxx b/src/Network/net_fdm.hxx index 9e618da75..f40863248 100644 --- a/src/Network/net_fdm.hxx +++ b/src/Network/net_fdm.hxx @@ -36,7 +36,7 @@ typedef unsigned __int64 uint64_t; # error "Port me! Platforms that don't have 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)