]> git.mxchange.org Git - flightgear.git/blob - src/Network/net_gui.hxx
Merge branch 'jmt/track-bug' into next
[flightgear.git] / src / Network / net_gui.hxx
1 // net_gui.hxx -- defines a simple subset I/O interface to the flight
2 //                     dynamics model variables
3 //
4 // Written by Curtis Olson - curt@flightgear.com, started January 2002.
5 //
6 // This file is in the Public Domain, and comes with no warranty.
7 //
8 // $Id$
9
10
11 #ifndef _NET_GUI_HXX
12 #define _NET_GUI_HXX
13
14 #include <simgear/misc/stdint.hxx>
15
16 // NOTE: this file defines an external interface structure.  Due to
17 // variability between platforms and architectures, we only used fixed
18 // length types here.  Specifically, integer types can vary in length.
19 // I am not aware of any platforms that don't use 4 bytes for float
20 // and 8 bytes for double.
21
22
23 const uint32_t FG_NET_GUI_VERSION = 7;
24
25
26 // Define a structure containing the top level flight dynamics model
27 // parameters
28
29 class FGNetGUI {
30
31 public:
32
33     enum {
34         FG_MAX_ENGINES = 4,
35         FG_MAX_WHEELS = 3,
36         FG_MAX_TANKS = 4
37     };
38
39     uint32_t version;           // increment when data values change
40
41     // Positions
42     double longitude;           // geodetic (radians)
43     double latitude;            // geodetic (radians)
44     float altitude;             // above sea level (meters)
45     float agl;                  // above ground level (meters)
46     float phi;                  // roll (radians)
47     float theta;                // pitch (radians)
48     float psi;                  // yaw or true heading (radians)
49
50     // Velocities
51     float vcas;
52     float climb_rate;           // feet per second
53
54     // Consumables
55     uint32_t num_tanks;         // Max number of fuel tanks
56     float fuel_quantity[FG_MAX_TANKS];
57
58     // Environment
59     uint32_t cur_time;          // current unix time
60                                 // FIXME: make this uint64_t before 2038
61     uint32_t warp;              // offset in seconds to unix time
62     float ground_elev;          // ground elev (meters)
63
64     // Approach
65     float tuned_freq;           // currently tuned frequency
66     float nav_radial;           // target nav radial
67     uint32_t in_range;           // tuned navaid is in range?
68     float dist_nm;              // distance to tuned navaid in nautical miles
69     float course_deviation_deg; // degrees off target course
70     float gs_deviation_deg;     // degrees off target glide slope
71 };
72
73
74 #endif // _NET_GUI_HXX