]> git.mxchange.org Git - flightgear.git/blobdiff - src/Network/net_fdm_mini.hxx
Merge branch 'jmt/track-bug' into next
[flightgear.git] / src / Network / net_fdm_mini.hxx
index 71c922a7f93c90e30401bbf2662f256ac48bf121..e1243756c90bf812f92a853fdcc2fa17fcfcd7b5 100644 (file)
@@ -1,23 +1,10 @@
 // net_fdm_mini.hxx -- defines a simple subset I/O interface to the flight
 //                     dynamics model variables
 //
-// Written by Curtis Olson, started January 2002.
+// Written by Curtis Olson - http://www.flightgear.org/~curt
+// Started January 2002.
 //
-// Copyright (C) 2002  Curtis L. Olson  - curt@flightgear.com
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License as
-// published by the Free Software Foundation; either version 2 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful, but
-// WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-// General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+// This file is in the Public Domain, and comes with no warranty.
 //
 // $Id$
 
 # error This library requires C++
 #endif                                   
 
+#include <simgear/misc/stdint.hxx>
 
-const int FG_NET_FDM_MINI_VERSION = 1;
+// NOTE: this file defines an external interface structure.  Due to
+// variability between platforms and architectures, we only used fixed
+// length types here.  Specifically, integer types can vary in length.
+// I am not aware of any platforms that don't use 4 bytes for float
+// and 8 bytes for double.
+
+
+const uint32_t FG_NET_FDM_MINI_VERSION = 2;
 
 
 // Define a structure containing the top level flight dynamics model
@@ -47,11 +42,7 @@ public:
         FG_MAX_TANKS = 4
     };
 
-    int version;               // increment when data values change
-    int pad;                    // keep doubles 64-bit aligned for some
-                                // hardware platforms, such as the Sun
-                                // SPARC, which don't like misaligned
-                                // data
+    uint32_t version;          // increment when data values change
 
     // Positions
     double longitude;          // geodetic (radians)
@@ -62,13 +53,17 @@ public:
     double theta;              // pitch (radians)
     double psi;                        // yaw or true heading (radians)
 
+    // Velocities
+    double vcas;
+    double climb_rate;         // feet per second
+
     // Consumables
-    int num_tanks;             // Max number of fuel tanks
+    uint32_t num_tanks;                // Max number of fuel tanks
     double fuel_quantity[FG_MAX_TANKS];
 
     // Environment
-    time_t cur_time;            // current unix time
-    long int warp;              // offset in seconds to unix time
+    uint32_t cur_time;            // current unix time
+    int32_t warp;                 // offset in seconds to unix time
 };