]> git.mxchange.org Git - flightgear.git/commitdiff
32 bit integers are somewhat magical and handled pretty well across platforms
authorcurt <curt>
Tue, 3 May 2005 20:34:21 +0000 (20:34 +0000)
committercurt <curt>
Tue, 3 May 2005 20:34:21 +0000 (20:34 +0000)
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.

src/Network/net_ctrls.hxx
src/Network/net_fdm.hxx

index 16d7c4748977cb0a80220dd60f1bcb899d94278e..f70d4f7b9ce9f3dc40f67e8a46f4e81e363da3c1 100644 (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."
 #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
index 9e618da75c93adff658ad71de901408bec0d814c..f40863248dc693ab615c73af2784a8c6852820db 100644 (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."
 #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)