]> git.mxchange.org Git - flightgear.git/blob - src/Network/lfsglass.hxx
LFS Glass cockpit interface (allows development independent of the opengc
[flightgear.git] / src / Network / lfsglass.hxx
1
2 //// LFSGlass.hxx - Network interface program to send sim data onto a LAN
3 //
4 // Created by:  J. Wojnaroski  -- castle@mminternet.com
5 // Date:                21 Nov 2001 
6 //
7 // 
8 // Adapted from original network code developed by C. Olson
9 //
10 // This program is free software; you can redistribute it and/or
11 // modify it under the terms of the GNU General Public License as
12 // published by the Free Software Foundation; either version 2 of the
13 // License, or (at your option) any later version.
14 //
15 // This program is distributed in the hope that it will be useful, but
16 // WITHOUT ANY WARRANTY; without even the implied warranty of
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
18 // General Public License for more details.
19 //
20 // You should have received a copy of the GNU General Public License
21 // along with this program; if not, write to the Free Software
22 // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
23 //
24
25
26 #ifndef _FG_LFSGlass_HXX
27 #define _FG_LFSGlass_HXX
28
29 #include <simgear/compiler.h>
30
31 #include STL_STRING
32
33 #include <FDM/flight.hxx>
34 #include <Main/fg_props.hxx>
35
36 #include "protocol.hxx"
37 #include "lfsglass_data.hxx"
38
39 class FGLFSGlass : public FGProtocol, public FGInterface {
40
41     FGLFSGlassData buf;
42     int length;
43     
44     // Environment
45     SGPropertyNode *press_node;
46     SGPropertyNode *temp_node;
47     SGPropertyNode *wind_dir_node;
48     SGPropertyNode *wind_speed_node;
49     SGPropertyNode *magvar_node;
50     
51     // Position on the Geod
52     SGPropertyNode *p_latitude;
53     SGPropertyNode *p_longitude;
54     SGPropertyNode *p_elev_node;
55     //SGPropertyNode *p_altitude;
56     SGPropertyNode *p_altitude_agl;
57     
58     // Orientation
59     SGPropertyNode      *p_pitch;
60     SGPropertyNode      *p_bank;
61     SGPropertyNode      *p_heading;
62     SGPropertyNode      *p_yaw;
63     SGPropertyNode      *p_yaw_rate;
64     
65     // Flight Parameters
66     SGPropertyNode      *vel_kcas;
67     SGPropertyNode      *p_vvi;
68     SGPropertyNode      *p_mach;
69     
70     // Control surfaces
71     SGPropertyNode *p_left_aileron;
72     SGPropertyNode *p_right_aileron;
73     SGPropertyNode *p_elevator;
74     SGPropertyNode *p_elevator_trim;
75     SGPropertyNode *p_rudder;
76     SGPropertyNode *p_flaps;
77     SGPropertyNode *p_flaps_cmd;
78     
79     // GEAR System
80     SGPropertyNode *p_park_brake;
81     
82     // Engines
83     SGPropertyNode *egt0_node;
84     SGPropertyNode *egt1_node;
85     SGPropertyNode *egt2_node;
86     SGPropertyNode *egt3_node;
87     
88     SGPropertyNode *epr0_node;
89     SGPropertyNode *epr1_node;
90     SGPropertyNode *epr2_node;
91     SGPropertyNode *epr3_node;
92     
93     SGPropertyNode *n10_node;
94     SGPropertyNode *n11_node;
95     SGPropertyNode *n12_node;
96     SGPropertyNode *n13_node;
97     
98     SGPropertyNode *n20_node;
99     SGPropertyNode *n21_node;
100     SGPropertyNode *n22_node;
101     SGPropertyNode *n23_node;
102     
103     SGPropertyNode *oil_temp0;
104     SGPropertyNode *oil_temp1;
105     SGPropertyNode *oil_temp2;
106     SGPropertyNode *oil_temp3;
107    
108     // Fuel System
109     SGPropertyNode *tank0_node;
110     SGPropertyNode *tank1_node;
111     SGPropertyNode *tank2_node;
112     SGPropertyNode *tank3_node;
113     SGPropertyNode *tank4_node;
114     SGPropertyNode *tank5_node;
115     SGPropertyNode *tank6_node;
116     SGPropertyNode *tank7_node;
117     // Boost pumps; Center tank has only override pumps; boosts are in the
118     // four main wing tanks 1->4
119 //    SGPropertyNode    *boost1_node;
120 //    SGPropertyNode    *boost2_node;
121 //    SGPropertyNode    *boost3_node;
122 //    SGPropertyNode    *boost4_node;
123 //    SGPropertyNode    *boost5_node;
124 //    SGPropertyNode    *boost6_node;
125 //    SGPropertyNode    *boost7_node;
126 //    SGPropertyNode    *boost8_node;
127     // Override pumps
128 //    SGPropertyNode    *ovride0_node;
129 //    SGPropertyNode    *ovride1_node;
130 //    SGPropertyNode    *ovride2_node;
131 //    SGPropertyNode    *ovride3_node;
132 //    SGPropertyNode    *ovride4_node;
133 //    SGPropertyNode    *ovride5_node;
134     // X_Feed valves
135 //    SGPropertyNode    *x_feed0_node;
136 //    SGPropertyNode    *x_feed1_node;
137 //    SGPropertyNode    *x_feed2_node;
138 //    SGPropertyNode    *x_feed3_node;
139     
140     // Aero numbers
141     SGPropertyNode *p_alphadot;
142     SGPropertyNode *p_betadot;
143
144 public:
145
146     FGLFSGlass();
147     ~FGLFSGlass();
148
149     // open hailing frequencies
150     bool open();
151
152     // process work for this port
153     bool process();
154
155     // close the channel
156     bool close();
157
158     void collect_data( const FGInterface *fdm, FGLFSGlassData *data );
159 };
160
161 #endif // _FG_LFSGlass_HXX
162
163
164