1 | #if ! defined( NMEA_0183_CLASS_HEADER )
|
---|
2 |
|
---|
3 | #define NMEA_0183_CLASS_HEADER
|
---|
4 |
|
---|
5 | /*
|
---|
6 | ** Author: Samuel R. Blackburn
|
---|
7 | ** Internet: sam_blackburn@pobox.com
|
---|
8 | **
|
---|
9 | ** You can use it any way you like as long as you don't try to sell it.
|
---|
10 | **
|
---|
11 | ** Copyright, 1996, Samuel R. Blackburn
|
---|
12 | **
|
---|
13 | ** $Workfile: nmea0183.hpp $
|
---|
14 | ** $Revision: 5 $
|
---|
15 | ** $Modtime: 10/10/98 3:03p $
|
---|
16 | */
|
---|
17 | #ifndef WIN32
|
---|
18 | typedef unsigned short WORD;
|
---|
19 | #endif
|
---|
20 |
|
---|
21 | /*
|
---|
22 | ** General Purpose Classes
|
---|
23 | */
|
---|
24 |
|
---|
25 | #include "Sentence.hpp"
|
---|
26 | #include "Response.hpp"
|
---|
27 | #include "LatLong.hpp"
|
---|
28 | #include "LoranTD.hpp"
|
---|
29 | #include "Manufact.hpp"
|
---|
30 | #include "MList.hpp"
|
---|
31 | #include "OmegaPar.hpp"
|
---|
32 | #include "DeccaLOP.hpp"
|
---|
33 | #include "RatioPls.hpp"
|
---|
34 | #include "RadarDat.hpp"
|
---|
35 | #include "SatDat.hpp"
|
---|
36 | #include "FreqMode.hpp"
|
---|
37 | #include "WayptLoc.hpp" // Sentence Not Recommended For New Designs
|
---|
38 |
|
---|
39 | /*
|
---|
40 | ** Response Classes
|
---|
41 | */
|
---|
42 |
|
---|
43 | #include "AAM.hpp"
|
---|
44 | #include "ALM.hpp"
|
---|
45 | #include "APB.hpp"
|
---|
46 | #include "ASD.hpp"
|
---|
47 | #include "BEC.hpp"
|
---|
48 | #include "BOD.hpp"
|
---|
49 | #include "BWC.hpp"
|
---|
50 | #include "BWR.hpp"
|
---|
51 | #include "BWW.hpp"
|
---|
52 | #include "DBT.hpp"
|
---|
53 | #include "DCN.hpp"
|
---|
54 | #include "DPT.hpp"
|
---|
55 | #include "FSI.hpp"
|
---|
56 | #include "GDA.hpp" // Sentence Not Recommended For New Designs
|
---|
57 | #include "GDF.hpp" // Sentence Not Recommended For New Designs
|
---|
58 | #include "GDP.hpp" // Sentence Not Recommended For New Designs
|
---|
59 | #include "GGA.hpp"
|
---|
60 | #include "GLA.hpp" // Sentence Not Recommended For New Designs
|
---|
61 | #include "GLC.hpp"
|
---|
62 | #include "GLF.hpp" // Sentence Not Recommended For New Designs
|
---|
63 | #include "GLL.hpp"
|
---|
64 | #include "GLP.hpp" // Sentence Not Recommended For New Designs
|
---|
65 | #include "GOA.hpp" // Sentence Not Recommended For New Designs
|
---|
66 | #include "GOF.hpp" // Sentence Not Recommended For New Designs
|
---|
67 | #include "GOP.hpp" // Sentence Not Recommended For New Designs
|
---|
68 | #include "GSA.hpp"
|
---|
69 | #include "GST.hpp" // ajouté par moi
|
---|
70 | #include "GSV.hpp"
|
---|
71 | #include "GTD.hpp" // Sentence Not Recommended For New Designs
|
---|
72 | #include "GXA.hpp"
|
---|
73 | #include "GXF.hpp" // Sentence Not Recommended For New Designs
|
---|
74 | #include "GXP.hpp" // Sentence Not Recommended For New Designs
|
---|
75 | #include "HCC.hpp" // Sentence Not Recommended For New Designs
|
---|
76 | #include "HDG.hpp"
|
---|
77 | #include "HDM.hpp" // Sentence Not Recommended For New Designs
|
---|
78 | #include "HDT.hpp"
|
---|
79 | #include "HSC.hpp"
|
---|
80 | #include "IMA.hpp" // Sentence Not Recommended For New Designs
|
---|
81 | #include "LCD.hpp"
|
---|
82 | #include "MHU.hpp" // Sentence Not Recommended For New Designs
|
---|
83 | #include "MTA.hpp" // Sentence Not Recommended For New Designs
|
---|
84 | #include "MTW.hpp"
|
---|
85 | #include "MWV.hpp"
|
---|
86 | #include "OLN.hpp"
|
---|
87 | #include "OSD.hpp"
|
---|
88 | #include "P.hpp"
|
---|
89 | #include "RMA.hpp"
|
---|
90 | #include "RMB.hpp"
|
---|
91 | #include "RMC.hpp"
|
---|
92 | #include "ROT.hpp"
|
---|
93 | #include "RPM.hpp"
|
---|
94 | #include "RSA.hpp"
|
---|
95 | #include "RSD.hpp"
|
---|
96 | #include "RTE.hpp"
|
---|
97 | #include "SFI.hpp"
|
---|
98 | #include "STN.hpp"
|
---|
99 | #include "TEP.hpp" // Sentence Not Recommended For New Designs
|
---|
100 | #include "TRF.hpp"
|
---|
101 | #include "TTM.hpp"
|
---|
102 | #include "VBW.hpp"
|
---|
103 | #include "VDR.hpp"
|
---|
104 | #include "VHW.hpp"
|
---|
105 | #include "VLW.hpp"
|
---|
106 | #include "VPW.hpp"
|
---|
107 | #include "VTG.hpp"
|
---|
108 | #include "VWE.hpp" // Sentence Not Recommended For New Designs
|
---|
109 | #include "WCV.hpp"
|
---|
110 | #include "WDC.hpp" // Sentence Not Recommended For New Designs
|
---|
111 | #include "WDR.hpp" // Sentence Not Recommended For New Designs
|
---|
112 | #include "WNC.hpp"
|
---|
113 | #include "WPL.hpp"
|
---|
114 | #include "XDR.hpp"
|
---|
115 | #include "XTE.hpp"
|
---|
116 | #include "XTR.hpp"
|
---|
117 | #include "ZDA.hpp"
|
---|
118 | #include "ZFI.hpp" // Sentence Not Recommended For New Designs
|
---|
119 | #include "ZFO.hpp"
|
---|
120 | #include "ZLZ.hpp" // Sentence Not Recommended For New Designs
|
---|
121 | #include "ZPI.hpp" // Sentence Not Recommended For New Designs
|
---|
122 | #include "ZTA.hpp" // Sentence Not Recommended For New Designs
|
---|
123 | #include "ZTE.hpp" // Sentence Not Recommended For New Designs
|
---|
124 | #include "ZTG.hpp"
|
---|
125 | #include "ZTI.hpp" // Sentence Not Recommended For New Designs
|
---|
126 | #include "ZWP.hpp" // Sentence Not Recommended For New Designs
|
---|
127 | #include "ZZU.hpp" // Sentence Not Recommended For New Designs
|
---|
128 |
|
---|
129 |
|
---|
130 | class NMEA0183
|
---|
131 | {
|
---|
132 | private:
|
---|
133 |
|
---|
134 | SENTENCE m_Sentence;
|
---|
135 |
|
---|
136 | void m_Initialize( void );
|
---|
137 |
|
---|
138 | protected:
|
---|
139 |
|
---|
140 | QVector<RESPONSE*> m_ResponseTable;
|
---|
141 |
|
---|
142 | void m_SetContainerPointers( void );
|
---|
143 | void m_SortResponseTable( void );
|
---|
144 |
|
---|
145 | public:
|
---|
146 |
|
---|
147 | NMEA0183();
|
---|
148 | virtual ~NMEA0183();
|
---|
149 |
|
---|
150 | /*
|
---|
151 | ** NMEA 0183 Sentences we understand
|
---|
152 | */
|
---|
153 |
|
---|
154 | AAM Aam;
|
---|
155 | ALM Alm;
|
---|
156 | APB Apb;
|
---|
157 | ASD Asd;
|
---|
158 | BEC Bec;
|
---|
159 | BOD Bod;
|
---|
160 | BWC Bwc;
|
---|
161 | BWR Bwr;
|
---|
162 | BWW Bww;
|
---|
163 | DBT Dbt;
|
---|
164 | DCN Dcn;
|
---|
165 | DPT Dpt;
|
---|
166 | FSI Fsi;
|
---|
167 | GDA Gda; // Sentence Not Recommended For New Designs
|
---|
168 | GDF Gdf; // Sentence Not Recommended For New Designs
|
---|
169 | GDP Gdp; // Sentence Not Recommended For New Designs
|
---|
170 | GGA Gga;
|
---|
171 | GLA Gla; // Sentence Not Recommended For New Designs
|
---|
172 | GLC Glc;
|
---|
173 | GLF Glf; // Sentence Not Recommended For New Designs
|
---|
174 | GLL Gll;
|
---|
175 | GLP Glp; // Sentence Not Recommended For New Designs
|
---|
176 | GOA Goa; // Sentence Not Recommended For New Designs
|
---|
177 | GOF Gof; // Sentence Not Recommended For New Designs
|
---|
178 | GOP Gop; // Sentence Not Recommended For New Designs
|
---|
179 | GSA Gsa;
|
---|
180 | GST Gst; // ajouté par moi
|
---|
181 | GSV Gsv;
|
---|
182 | GTD Gtd; // Sentence Not Recommended For New Designs
|
---|
183 | GXA Gxa;
|
---|
184 | GXF Gxf; // Sentence Not Recommended For New Designs
|
---|
185 | GXP Gxp; // Sentence Not Recommended For New Designs
|
---|
186 | HCC Hcc; // Sentence Not Recommended For New Designs
|
---|
187 | HDG Hdg;
|
---|
188 | HDM Hdm; // Sentence Not Recommended For New Designs
|
---|
189 | HDT Hdt;
|
---|
190 | HSC Hsc;
|
---|
191 | IMA Ima; // Sentence Not Recommended For New Designs
|
---|
192 | LCD Lcd;
|
---|
193 | MHU Mhu; // Sentence Not Recommended For New Designs
|
---|
194 | MTA Mta; // Sentence Not Recommended For New Designs
|
---|
195 | MTW Mtw;
|
---|
196 | MWV Mwv;
|
---|
197 | OLN Oln;
|
---|
198 | OSD Osd;
|
---|
199 | P Proprietary;
|
---|
200 | RMA Rma;
|
---|
201 | RMB Rmb;
|
---|
202 | RMC Rmc;
|
---|
203 | ROT Rot;
|
---|
204 | RPM Rpm;
|
---|
205 | RSA Rsa;
|
---|
206 | RSD Rsd;
|
---|
207 | RTE Rte;
|
---|
208 | SFI Sfi;
|
---|
209 | STN Stn;
|
---|
210 | TEP Tep; // Sentence Not Recommended For New Designs
|
---|
211 | TRF Trf;
|
---|
212 | TTM Ttm;
|
---|
213 | VBW Vbw;
|
---|
214 | VDR Vdr;
|
---|
215 | VHW Vhw;
|
---|
216 | VLW Vlw;
|
---|
217 | VPW Vpw;
|
---|
218 | VTG Vtg;
|
---|
219 | VWE Vwe; // Sentence Not Recommended For New Designs
|
---|
220 | WCV Wcv;
|
---|
221 | WDC Wdc; // Sentence Not Recommended For New Designs
|
---|
222 | WDR Wdr; // Sentence Not Recommended For New Designs
|
---|
223 | WNC Wnc;
|
---|
224 | WPL Wpl;
|
---|
225 | XDR Xdr;
|
---|
226 | XTE Xte;
|
---|
227 | XTR Xtr;
|
---|
228 | ZDA Zda;
|
---|
229 | ZFI Zfi; // Sentence Not Recommended For New Designs
|
---|
230 | ZFO Zfo;
|
---|
231 | ZLZ Zlz; // Sentence Not Recommended For New Designs
|
---|
232 | ZPI Zpi; // Sentence Not Recommended For New Designs
|
---|
233 | ZTA Zta; // Sentence Not Recommended For New Designs
|
---|
234 | ZTE Zte; // Sentence Not Recommended For New Designs
|
---|
235 | ZTI Zti; // Sentence Not Recommended For New Designs
|
---|
236 | ZTG Ztg;
|
---|
237 | ZWP Zwp; // Sentence Not Recommended For New Designs
|
---|
238 | ZZU Zzu; // Sentence Not Recommended For New Designs
|
---|
239 |
|
---|
240 |
|
---|
241 | QString ErrorMessage; // Filled when Parse returns FALSE
|
---|
242 | QString LastSentenceIDParsed; // ID of the lst sentence successfully parsed
|
---|
243 | QString LastSentenceIDReceived; // ID of the last sentence received, may not have parsed successfully
|
---|
244 | QString PlainText; // A human-readable string of text that explains what just happened
|
---|
245 |
|
---|
246 | QString TalkerID;
|
---|
247 | QString ExpandedTalkerID;
|
---|
248 |
|
---|
249 | virtual BOOL IsGood( void ) const;
|
---|
250 | virtual BOOL Parse( void );
|
---|
251 | //virtual void Serialize( CArchive& archive );
|
---|
252 |
|
---|
253 | NMEA0183& operator << ( const char *source );
|
---|
254 | NMEA0183& operator >> ( QString& destination );
|
---|
255 | };
|
---|
256 |
|
---|
257 | #endif // NMEA_0183_CLASS_HEADER
|
---|