1 // opengc_data.hxx -- Define structure of OpenGC/FG uint32_terface parameters
2 //
3 //  Version by J. Wojnaroski for uint32_terface to Open Glass Displays
4 //
5 //  Modified 02/12/01 - Update engine structure for multi-engine models
6 //		          - Added data preamble to id msg types
7 //
8 //  Modified 01/23/02 - Converted portions of the Engine and Gear accesssors to properties
9 //			    - Removed data from navigation functions. OpenGC provides own
10 //
11 // This file defines the class/structure of the UDP packet that sends
12 // the simulation data created by FlightGear to the glass displays. It
13 // is required to "sync" the data types contained in the packet
14 //
15 // This program is free software; you can redistribute it and/or
16 // modify it under the terms of the GNU General Public License as
17 // published by the Free Software Foundation; either version 2 of the
18 // License, or (at your option) any later version.
19 //
20 // This program is distributed in the hope that it will be useful, but
21 // WITHOUT ANY WARRANTY; without even the implied warranty of
22 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
23 // General Public License for more details.
24 //
25 // You should have received a copy of the GNU General Public License
26 // along with this program; if not, write to the Free Software
27 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
28 //
29 
30 #ifndef _OPENGC_DATA_HXX
31 #define _OPENGC_DATA_HXX
32 
33 #ifndef __cplusplus
34 # error This library requires C++
35 #endif
36 
37 const uint32_t OGC_VERSION = 4;
38 typedef unsigned int  uint32_t;
39 
40 class ogcFGData {
41 
42 public:
43 
44     // defines msg types and contents. The msg_content is used as a 'pouint32_ter' to
45     // a predefined set of msg strings
46 
47     uint32_t	version_id;
48     uint32_t	msg_type;
49     uint32_t	msg_content;
50     uint32_t  reserved;
51 
52     // position
53 
54     double	latitude;
55     double	longitude;
56     double	elevation;
57     double	magvar;
58 
59     // flight parameters
60 
61     double	pitch;
62     double	bank;
63     double	heading;
64     double	altitude;
65     double	altitude_agl;  // this can also be the radar altimeter
66     double  v_kcas;
67     double	groundspeed;
68     double	vvi;
69     double  mach;
70     double	v_keas;  // equivalent airspeed in knots
71 
72   // Data used by the FMC and autopilots
73 
74     double	phi_dot;
75     double	theta_dot;
76     double	psi_dot;
77 
78     double	alpha;
79     double	alpha_dot;
80     double	beta;
81     double	beta_dot;
82 
83   // Control surface positions
84 
85     double	left_aileron;
86     double  right_aileron;
87     double	aileron_trim;
88     double	elevator;
89     double	elevator_trim;
90     double	rudder;
91     double	rudder_trim;
92     double	flaps;
93     double  flaps_cmd;
94 
95   // gear positions 0 = up and 1 = down  The 747 has 5 wheel bogey assemblies
96 
97     double	gear_nose;
98     double	gear_left;
99     double	gear_right;
100     double  gear_left_rear;
101     double  gear_right_rear;
102     double	parking_brake;
103     uint32_t		wow_main;  // logical and of main gear
104 		uint32_t		wow_nose;
105     // engine data
106 
107     double	rpm[4];  // this is for pistons, jets see below
108     double	n1_turbine[4];
109     double	epr[4];
110     double	egt[4];
111     double  n2_turbine[4];
112     double	fuel_flow[4];
113     double  man_pressure[4];
114     double	oil_pressure[4];
115     double	oil_temp[4];
116     double	oil_quantity[4];
117     double	hyd_pressure[4];
118     double	throttle[4];
119     double	mixture[4];
120     double	prop_advance[4];
121 
122     // fuel system
123     uint32_t num_tanks;
124     double fuel_tank[9];
125 
126     // Pressures and temperatures
127 
128     double	static_temperature;
129     double	total_temperature;
130     double	static_pressure;
131     double	total_pressure;
132     double	dynamic_pressure;
133 
134     // more environmental data
135 		double wind;
136 		double wind_dir;
137 		double sea_level_pressure;
138 
139 };
140 
141 #endif // _OPENGC_HXX
142