source: pacpussensors/trunk/NMEA0183/src/MLIST.cpp

Last change on this file was 59, checked in by DHERBOMEZ Gérald, 10 years ago

Integration of new modules:

  • GPS NMEA0183 decoder
  • Span CPT Decoder

Update of:

File size: 25.0 KB
Line 
1#include "nmea0183.h"
2#pragma hdrstop
3
4/*
5** Author: Samuel R. Blackburn
6** Internet: sam_blackburn@pobox.com
7**
8** You can use it any way you like as long as you don't try to sell it.
9**
10** Copyright, 1997, Samuel R. Blackburn
11**
12** $Workfile: mlist.cpp $
13** $Revision: 6 $
14** $Modtime: 10/10/98 4:27p $
15*/
16/*
17#ifdef _DEBUG
18#undef THIS_FILE
19static char BASED_CODE THIS_FILE[] = __FILE__;
20#define new DEBUG_NEW
21#define new DEBUG_NEW
22#endif
23*/
24
25
26MANUFACTURER_LIST::MANUFACTURER_LIST()
27{
28 ManufacturerTable.clear();
29}
30
31MANUFACTURER_LIST::~MANUFACTURER_LIST()
32{
33 Empty();
34}
35
36void MANUFACTURER_LIST::Add( MANUFACTURER *manufacturer_p )
37{
38 ManufacturerTable.resize(ManufacturerTable.size()+1);
39 ManufacturerTable.insert( ManufacturerTable.size(),manufacturer_p );
40}
41
42void MANUFACTURER_LIST::Empty( void )
43{
44 int loop_index = 0;
45 int number_of_entries = ManufacturerTable.size();
46/*
47 while( loop_index < number_of_entries )
48 {
49 delete (MANUFACTURER *) ManufacturerTable[ loop_index ];
50 ManufacturerTable[ loop_index ] = NULL;
51 loop_index++;
52 }
53*/
54 ManufacturerTable.clear();
55}
56
57void MANUFACTURER_LIST::Fill( void )
58{
59 Add( new MANUFACTURER( "AAR", "Asian American Resources" ) );
60 Add( new MANUFACTURER( "ACE", "Auto-Comm Engineering Corporation" ) );
61 Add( new MANUFACTURER( "ACR", "ACR Electronics, Inc." ) );
62 Add( new MANUFACTURER( "ACS", "Arco Solar, Inc." ) );
63 Add( new MANUFACTURER( "ACT", "Advanced Control Technology" ) );
64 Add( new MANUFACTURER( "AGI", "Airguide Instrument Company" ) );
65 Add( new MANUFACTURER( "AHA", "Autohelm of America" ) );
66 Add( new MANUFACTURER( "AIP", "Aiphone Corporation" ) );
67 Add( new MANUFACTURER( "ALD", "Alden Electronics, Inc." ) );
68 Add( new MANUFACTURER( "AMR", "AMR Systems" ) );
69 Add( new MANUFACTURER( "AMT", "Airmar Technology" ) );
70 Add( new MANUFACTURER( "ANS", "Antenna Specialists" ) );
71 Add( new MANUFACTURER( "ANX", "Analytyx Electronic Systems" ) );
72 Add( new MANUFACTURER( "ANZ", "Anschutz of America" ) );
73 Add( new MANUFACTURER( "APC", "Apelco" ) );
74 Add( new MANUFACTURER( "APN", "American Pioneer, Inc." ) );
75 Add( new MANUFACTURER( "APX", "Amperex, Inc." ) );
76 Add( new MANUFACTURER( "AQC", "Aqua-Chem, Inc." ) );
77 Add( new MANUFACTURER( "AQD", "Aquadynamics, Inc." ) );
78 Add( new MANUFACTURER( "AQM", "Aqua Meter Instrument Company" ) );
79 Add( new MANUFACTURER( "ASP", "American Solar Power" ) );
80 Add( new MANUFACTURER( "ATE", "Aetna Engineering" ) );
81 Add( new MANUFACTURER( "ATM", "Atlantic Marketing Company, Inc." ) );
82 Add( new MANUFACTURER( "ATR", "Airtron" ) );
83 Add( new MANUFACTURER( "ATV", "Activation, Inc." ) );
84 Add( new MANUFACTURER( "AVN", "Advanced Navigation, Inc." ) );
85 Add( new MANUFACTURER( "AWA", "Awa New Zealand, Limited" ) );
86 Add( new MANUFACTURER( "BBL", "BBL Industries, Inc." ) );
87 Add( new MANUFACTURER( "BBR", "BBR and Associates" ) );
88 Add( new MANUFACTURER( "BDV", "Brisson Development, Inc." ) );
89 Add( new MANUFACTURER( "BEC", "Boat Electric Company" ) );
90 Add( new MANUFACTURER( "BGS", "Barringer Geoservice" ) );
91 Add( new MANUFACTURER( "BGT", "Brookes and Gatehouse, Inc." ) );
92 Add( new MANUFACTURER( "BHE", "BH Electronics" ) );
93 Add( new MANUFACTURER( "BHR", "Bahr Technologies, Inc." ) );
94 Add( new MANUFACTURER( "BLB", "Bay Laboratories" ) );
95 Add( new MANUFACTURER( "BMC", "BMC" ) );
96 Add( new MANUFACTURER( "BME", "Bartel Marine Electronics" ) );
97 Add( new MANUFACTURER( "BNI", "Neil Brown Instrument Systems" ) );
98 Add( new MANUFACTURER( "BNS", "Bowditch Navigation Systems" ) );
99 Add( new MANUFACTURER( "BRM", "Mel Barr Company" ) );
100 Add( new MANUFACTURER( "BRY", "Byrd Industries" ) );
101 Add( new MANUFACTURER( "BTH", "Benthos, Inc." ) );
102 Add( new MANUFACTURER( "BTK", "Baltek Corporation" ) );
103 Add( new MANUFACTURER( "BTS", "Boat Sentry, Inc." ) );
104 Add( new MANUFACTURER( "BXA", "Bendix-Avalex, Inc." ) );
105 Add( new MANUFACTURER( "CAT", "Catel" ) );
106 Add( new MANUFACTURER( "CBN", "Cybernet Marine Products" ) );
107 Add( new MANUFACTURER( "CCA", "Copal Corporation of America" ) );
108 Add( new MANUFACTURER( "CCC", "Coastal Communications Company" ) );
109 Add( new MANUFACTURER( "CCL", "Coastal Climate Company" ) );
110 Add( new MANUFACTURER( "CCM", "Coastal Communications" ) );
111 Add( new MANUFACTURER( "CDC", "Cordic Company" ) );
112 Add( new MANUFACTURER( "CEC", "Ceco Communications, Inc." ) );
113 Add( new MANUFACTURER( "CHI", "Charles Industries, Limited" ) );
114 Add( new MANUFACTURER( "CKM", "Cinkel Marine Electronics Industries" ) );
115 Add( new MANUFACTURER( "CMA", "Societe Nouvelle D'Equiment du Calvados" ) );
116 Add( new MANUFACTURER( "CMC", "Coe Manufacturing Company" ) );
117 Add( new MANUFACTURER( "CME", "Cushman Electronics, Inc." ) );
118 Add( new MANUFACTURER( "CMP", "C-Map, s.r.l." ) );
119 Add( new MANUFACTURER( "CMS", "Coastal Marine Sales Company" ) );
120 Add( new MANUFACTURER( "CMV", "CourseMaster USA, Inc." ) );
121 Add( new MANUFACTURER( "CNV", "Coastal Navigator" ) );
122 Add( new MANUFACTURER( "CNX", "Cynex Manufactoring Company" ) );
123 Add( new MANUFACTURER( "CPL", "Computrol, Inc." ) );
124 Add( new MANUFACTURER( "CPN", "Compunav" ) );
125 Add( new MANUFACTURER( "CPS", "Columbus Positioning, Inc." ) );
126 Add( new MANUFACTURER( "CPT", "CPT, Inc." ) );
127 Add( new MANUFACTURER( "CRE", "Crystal Electronics, Limited" ) );
128 Add( new MANUFACTURER( "CRO", "The Caro Group" ) );
129 Add( new MANUFACTURER( "CRY", "Crystek Crystals Corporation" ) );
130 Add( new MANUFACTURER( "CSM", "Comsat Maritime Services" ) );
131 Add( new MANUFACTURER( "CST", "Cast, Inc." ) );
132 Add( new MANUFACTURER( "CSV", "Combined Services" ) );
133 Add( new MANUFACTURER( "CTA", "Current Alternatives" ) );
134 Add( new MANUFACTURER( "CTB", "Cetec Benmar" ) );
135 Add( new MANUFACTURER( "CTC", "Cell-tech Communications" ) );
136 Add( new MANUFACTURER( "CTE", "Castle Electronics" ) );
137 Add( new MANUFACTURER( "CTL", "C-Tech, Limited" ) );
138 Add( new MANUFACTURER( "CNI", "Continental Instruments" ) ); // Possible error in NMEA0183 docs
139 Add( new MANUFACTURER( "CWD", "Cubic Western Data" ) );
140 Add( new MANUFACTURER( "CWV", "Celwave R.F., Inc." ) );
141 Add( new MANUFACTURER( "CYZ", "cYz, Incorporated" ) );
142 Add( new MANUFACTURER( "DCC", "Dolphin Components Corporation" ) );
143 Add( new MANUFACTURER( "DEB", "Debeg Gmbh" ) );
144 Add( new MANUFACTURER( "DFI", "Defender Industries, Inc." ) );
145 Add( new MANUFACTURER( "DGC", "Digicourse, Inc." ) );
146 Add( new MANUFACTURER( "DME", "Digital Marine Electronics Corporation" ) );
147 Add( new MANUFACTURER( "DMI", "Datamarine International, Inc." ) );
148 Add( new MANUFACTURER( "DNS", "Dornier System Gmbh" ) );
149 Add( new MANUFACTURER( "DNT", "Del Norte Technology, Inc." ) );
150 Add( new MANUFACTURER( "DPS", "Danaplus, Inc." ) );
151 Add( new MANUFACTURER( "DRL", "R.L. Drake Company" ) );
152 Add( new MANUFACTURER( "DSC", "Dynascan Corporation" ) );
153 Add( new MANUFACTURER( "DYN", "Dynamote Corporation" ) );
154 Add( new MANUFACTURER( "DYT", "Dytek Laboratories, Inc." ) );
155 Add( new MANUFACTURER( "EBC", "Emergency Beacon, Corporation" ) );
156 Add( new MANUFACTURER( "ECT", "Echotec, Inc." ) );
157 Add( new MANUFACTURER( "EEV", "EEV, Inc." ) );
158 Add( new MANUFACTURER( "EFC", "Efcom Communication Systems" ) );
159 Add( new MANUFACTURER( "ELD", "Electronic Devices, Inc." ) );
160 Add( new MANUFACTURER( "EMC", "Electric Motion Company" ) );
161 Add( new MANUFACTURER( "EMS", "Electro Marine Systems, Inc." ) );
162 Add( new MANUFACTURER( "ENA", "Energy Analysts, Inc." ) );
163 Add( new MANUFACTURER( "ENC", "Encron, Inc." ) );
164 Add( new MANUFACTURER( "EPM", "Epsco Marine" ) );
165 Add( new MANUFACTURER( "EPT", "Eastprint, Inc." ) );
166 Add( new MANUFACTURER( "ERC", "The Ericsson Corporation" ) );
167 Add( new MANUFACTURER( "ESA", "European Space Agency" ) );
168 Add( new MANUFACTURER( "FDN", "Fluiddyne" ) );
169 Add( new MANUFACTURER( "FHE", "Fish Hawk Electronics" ) );
170 Add( new MANUFACTURER( "FJN", "Jon Fluke Company" ) );
171 Add( new MANUFACTURER( "FMM", "First Mate Marine Autopilots" ) );
172 Add( new MANUFACTURER( "FNT", "Franklin Net and Twine, Limited" ) ); // Compiler Die Here
173 Add( new MANUFACTURER( "FRC", "The Fredericks Company" ) );
174 Add( new MANUFACTURER( "FTG", "T.G. Faria Corporation" ) );
175 Add( new MANUFACTURER( "FUJ", "Fujitsu Ten Corporation of America" ) );
176 Add( new MANUFACTURER( "FEC", "Furuno Electric Company" ) ); // Possible NMEA document error
177 Add( new MANUFACTURER( "FUR", "Furuno, USA Inc." ) );
178 Add( new MANUFACTURER( "GAM", "GRE America, Inc." ) );
179 Add( new MANUFACTURER( "GCA", "Gulf Cellular Associates" ) );
180 Add( new MANUFACTURER( "GES", "Geostar Corporation" ) );
181 Add( new MANUFACTURER( "GFC", "Graphic Controls, Corporation" ) );
182 Add( new MANUFACTURER( "GIS", "Galax Integrated Systems" ) );
183 Add( new MANUFACTURER( "GPI", "Global Positioning Instrument Corporation" ) );
184 Add( new MANUFACTURER( "GRM", "Garmin Corporation" ) );
185 Add( new MANUFACTURER( "GSC", "Gold Star Company, Limited" ) );
186 Add( new MANUFACTURER( "GTO", "Gro Electronics" ) );
187 Add( new MANUFACTURER( "GVE", "Guest Corporation" ) );
188 Add( new MANUFACTURER( "GVT", "Great Valley Technology" ) );
189 Add( new MANUFACTURER( "HAL", "HAL Communications Corporation" ) );
190 Add( new MANUFACTURER( "HAR", "Harris Corporation" ) );
191 Add( new MANUFACTURER( "HIG", "Hy-Gain" ) );
192 Add( new MANUFACTURER( "HIT", "Hi-Tec" ) );
193 Add( new MANUFACTURER( "HPK", "Hewlett-Packard" ) );
194 Add( new MANUFACTURER( "HRC", "Harco Manufacturing Company" ) );
195 Add( new MANUFACTURER( "HRT", "Hart Systems, Inc." ) );
196 Add( new MANUFACTURER( "HTI", "Heart Interface, Inc." ) );
197 Add( new MANUFACTURER( "HUL", "Hull Electronics Company" ) );
198 Add( new MANUFACTURER( "HWM", "Honeywell Marine Systems" ) );
199 Add( new MANUFACTURER( "ICO", "Icom of America, Inc." ) );
200 Add( new MANUFACTURER( "IFD", "International Fishing Devices" ) );
201 Add( new MANUFACTURER( "IFI", "Instruments for Industry" ) );
202 Add( new MANUFACTURER( "IME", "Imperial Marine Equipment" ) );
203 Add( new MANUFACTURER( "IMI", "I.M.I." ) );
204 Add( new MANUFACTURER( "IMM", "ITT MacKay Marine" ) );
205 Add( new MANUFACTURER( "IMP", "Impulse Manufacturing, Inc." ) );
206 Add( new MANUFACTURER( "IMT", "International Marketing and Trading, Inc." ) );
207 Add( new MANUFACTURER( "INM", "Inmar Electronic and Sales, Inc." ) );
208 Add( new MANUFACTURER( "INT", "Intech, Inc." ) );
209 Add( new MANUFACTURER( "IRT", "Intera Technologies, Limited" ) );
210 Add( new MANUFACTURER( "IST", "Innerspace Technology, Inc." ) );
211 Add( new MANUFACTURER( "ITM", "Intermarine Electronics, Inc." ) );
212 Add( new MANUFACTURER( "ITR", "Itera, Limited" ) );
213 Add( new MANUFACTURER( "JAN", "Jan Crystals" ) );
214 Add( new MANUFACTURER( "JFR", "Ray Jefferson" ) );
215 Add( new MANUFACTURER( "JMT", "Japan Marine Telecommunications" ) );
216 Add( new MANUFACTURER( "JRC", "Japan Radio Company, Inc." ) );
217 Add( new MANUFACTURER( "JRI", "J-R Industries, Inc." ) );
218 Add( new MANUFACTURER( "JTC", "J-Tech Associates, Inc." ) );
219 Add( new MANUFACTURER( "JTR", "Jotron Radiosearch, Limited" ) );
220 Add( new MANUFACTURER( "KBE", "KB Electronics, Limited" ) );
221 Add( new MANUFACTURER( "KBM", "Kennebec Marine Company" ) );
222 Add( new MANUFACTURER( "KLA", "Klein Associates, Inc." ) );
223 Add( new MANUFACTURER( "KMR", "King Marine Radio Corporation" ) );
224 Add( new MANUFACTURER( "KNG", "King Radio Corporation" ) );
225 Add( new MANUFACTURER( "KOD", "Koden Electronics Company, Limited" ) );
226 Add( new MANUFACTURER( "KRP", "Krupp International, Inc." ) );
227 Add( new MANUFACTURER( "KVH", "KVH Company" ) );
228 Add( new MANUFACTURER( "KYI", "Kyocera International, Inc." ) );
229 Add( new MANUFACTURER( "LAT", "Latitude Corporation" ) );
230 Add( new MANUFACTURER( "LEC", "Lorain Electronics Corporation" ) );
231 Add( new MANUFACTURER( "LMM", "Lamarche Manufacturing Company" ) );
232 Add( new MANUFACTURER( "LRD", "Lorad" ) );
233 Add( new MANUFACTURER( "LSE", "Littlemore Scientific Engineering" ) );
234 Add( new MANUFACTURER( "LSP", "Laser Plot, Inc." ) );
235 Add( new MANUFACTURER( "LTF", "Littlefuse, Inc." ) );
236 Add( new MANUFACTURER( "LWR", "Lowrance Electronics Corportation" ) );
237 Add( new MANUFACTURER( "MCL", "Micrologic, Inc." ) );
238 Add( new MANUFACTURER( "MDL", "Medallion Instruments, Inc." ) );
239 Add( new MANUFACTURER( "MEC", "Marine Engine Center, Inc." ) );
240 Add( new MANUFACTURER( "MEG", "Maritec Engineering GmbH" ) );
241 Add( new MANUFACTURER( "MFR", "Modern Products, Limited" ) );
242 Add( new MANUFACTURER( "MFW", "Frank W. Murphy Manufacturing" ) );
243 Add( new MANUFACTURER( "MGM", "Magellan Systems Corporation" ) ); // Thanks to Chuck Shannon, cshannon@imtn.tpd.dsccc.com
244 Add( new MANUFACTURER( "MGS", "MG Electronic Sales Corporation" ) );
245 Add( new MANUFACTURER( "MIE", "Mieco, Inc." ) );
246 Add( new MANUFACTURER( "MIM", "Marconi International Marine Company" ) );
247 Add( new MANUFACTURER( "MLE", "Martha Lake Electronics" ) );
248 Add( new MANUFACTURER( "MLN", "Matlin Company" ) );
249 Add( new MANUFACTURER( "MLP", "Marlin Products" ) );
250 Add( new MANUFACTURER( "MLT", "Miller Technologies" ) );
251 Add( new MANUFACTURER( "MMB", "Marsh-McBirney, Inc." ) );
252 Add( new MANUFACTURER( "MME", "Marks Marine Engineering" ) );
253 Add( new MANUFACTURER( "MMP", "Metal Marine Pilot, Inc." ) );
254 Add( new MANUFACTURER( "MMS", "Mars Marine Systems" ) );
255 Add( new MANUFACTURER( "MNI", "Micro-Now Instrument Company" ) );
256 Add( new MANUFACTURER( "MNT", "Marine Technology" ) );
257 Add( new MANUFACTURER( "MNX", "Marinex" ) );
258 Add( new MANUFACTURER( "MOT", "Motorola Communications and Electronics" ) );
259 Add( new MANUFACTURER( "MPN", "Memphis Net and Twine Company, Inc." ) );
260 Add( new MANUFACTURER( "MQS", "Marquis Industries, Inc." ) );
261 Add( new MANUFACTURER( "MRC", "Marinecomp, Inc." ) );
262 Add( new MANUFACTURER( "MRE", "Morad Electronics Corporation" ) );
263 Add( new MANUFACTURER( "MRP", "Mooring Products of New England" ) );
264 Add( new MANUFACTURER( "MRR", "II Morrow, Inc." ) );
265 Add( new MANUFACTURER( "MRS", "Marine Radio Service" ) );
266 Add( new MANUFACTURER( "MSB", "Mitsubishi Electric Company, Limited" ) );
267 Add( new MANUFACTURER( "MSE", "Master Electronics" ) );
268 Add( new MANUFACTURER( "MSM", "Master Mariner, Inc." ) );
269 Add( new MANUFACTURER( "MST", "Mesotech Systems, Limited" ) );
270 Add( new MANUFACTURER( "MTA", "Marine Technical Associates" ) );
271 Add( new MANUFACTURER( "MTG", "Narine Technical Assistance Group" ) );
272 Add( new MANUFACTURER( "MTK", "Martech, Inc." ) );
273 Add( new MANUFACTURER( "MTR", "Mitre Corporation, Inc." ) );
274 Add( new MANUFACTURER( "MTS", "Mets, Inc." ) );
275 Add( new MANUFACTURER( "MUR", "Murata Erie North America" ) );
276 Add( new MANUFACTURER( "MVX", "Magnavox Advanced Products and Systems Company" ) );
277 Add( new MANUFACTURER( "MXX", "Maxxima Marine" ) );
278 Add( new MANUFACTURER( "MES", "Marine Electronics Service, Inc." ) );
279 Add( new MANUFACTURER( "NAT", "Nautech, Limited" ) );
280 Add( new MANUFACTURER( "NEF", "New England Fishing Gear, Inc." ) );
281 Add( new MANUFACTURER( "NMR", "Newmar" ) );
282 Add( new MANUFACTURER( "NGS", "Navigation Sciences, Inc." ) );
283 Add( new MANUFACTURER( "NOM", "Nav-Com, Inc." ) );
284 Add( new MANUFACTURER( "NOV", "NovAtel Communications, Limited" ) );
285 Add( new MANUFACTURER( "NSM", "Northstar Marine" ) );
286 Add( new MANUFACTURER( "NTK", "Novatech Designs, Limited" ) );
287 Add( new MANUFACTURER( "NVC", "Navico" ) );
288 Add( new MANUFACTURER( "NVS", "Navstar" ) );
289 Add( new MANUFACTURER( "NVO", "Navionics, s.p.a." ) );
290 Add( new MANUFACTURER( "OAR", "O.A.R. Corporation" ) );
291 Add( new MANUFACTURER( "ODE", "Ocean Data Equipment Corporation" ) );
292 Add( new MANUFACTURER( "ODN", "Odin Electronics, Inc." ) );
293 Add( new MANUFACTURER( "OIN", "Ocean instruments, Inc." ) );
294 Add( new MANUFACTURER( "OKI", "Oki Electronic Industry Company" ) );
295 Add( new MANUFACTURER( "OLY", "Navstar Limited (Polytechnic Electronics)" ) );
296 Add( new MANUFACTURER( "OMN", "Omnetics" ) );
297 Add( new MANUFACTURER( "ORE", "Ocean Research" ) );
298 Add( new MANUFACTURER( "OTK", "Ocean Technology" ) );
299 Add( new MANUFACTURER( "PCE", "Pace" ) );
300 Add( new MANUFACTURER( "PDM", "Prodelco Marine Systems" ) );
301 Add( new MANUFACTURER( "PLA", "Plath, C. Division of Litton" ) );
302 Add( new MANUFACTURER( "PLI", "Pilot Instruments" ) );
303 Add( new MANUFACTURER( "PMI", "Pernicka Marine Products" ) );
304 Add( new MANUFACTURER( "PMP", "Pacific Marine Products" ) );
305 Add( new MANUFACTURER( "PRK", "Perko, Inc." ) );
306 Add( new MANUFACTURER( "PSM", "Pearce-Simpson" ) );
307 Add( new MANUFACTURER( "PTC", "Petro-Com" ) );
308 Add( new MANUFACTURER( "PTG", "P.T.I./Guest" ) );
309 Add( new MANUFACTURER( "PTH", "Pathcom, Inc." ) );
310 Add( new MANUFACTURER( "RAC", "Racal Marine, Inc." ) );
311 Add( new MANUFACTURER( "RAE", "RCA Astro-Electronics" ) );
312 Add( new MANUFACTURER( "RAY", "Raytheon Marine Company" ) );
313 Add( new MANUFACTURER( "RCA", "RCA Service Company" ) );
314 Add( new MANUFACTURER( "RCH", "Roach Engineering" ) );
315 Add( new MANUFACTURER( "RCI", "Rochester Instruments, Inc." ) );
316 Add( new MANUFACTURER( "RDI", "Radar Devices" ) );
317 Add( new MANUFACTURER( "RDM", "Ray-Dar Manufacturing Company" ) );
318 Add( new MANUFACTURER( "REC", "Ross Engineering Company" ) );
319 Add( new MANUFACTURER( "RFP", "Rolfite Products, Inc." ) );
320 Add( new MANUFACTURER( "RGC", "RCS Global Communications, Inc." ) );
321 Add( new MANUFACTURER( "RGY", "Regency Electronics, Inc." ) );
322 Add( new MANUFACTURER( "RMR", "RCA Missile and Surface Radar" ) );
323 Add( new MANUFACTURER( "RSL", "Ross Laboratories, Inc." ) );
324 Add( new MANUFACTURER( "RSM", "Robertson-Shipmate, USA" ) );
325 Add( new MANUFACTURER( "RWI", "Rockwell International" ) );
326 Add( new MANUFACTURER( "RME", "Racal Marine Electronics" ) );
327 Add( new MANUFACTURER( "RTN", "Robertson Tritech Nyaskaien A/S" ) );
328 Add( new MANUFACTURER( "SAI", "SAIT, Inc." ) );
329 Add( new MANUFACTURER( "SBR", "Sea-Bird electronics, Inc." ) );
330 Add( new MANUFACTURER( "SCR", "Signalcrafters, Inc." ) );
331 Add( new MANUFACTURER( "SEA", "SEA" ) );
332 Add( new MANUFACTURER( "SEC", "Sercel Electronics of Canada" ) );
333 Add( new MANUFACTURER( "SEP", "Steel and Engine Products, Inc." ) );
334 Add( new MANUFACTURER( "SFN", "Seafarer Navigation International, Limited" ) );
335 Add( new MANUFACTURER( "SGC", "SGC, Inc." ) );
336 Add( new MANUFACTURER( "SIG", "Signet, Inc." ) );
337 Add( new MANUFACTURER( "SIM", "Simrad,Inc." ) );
338 Add( new MANUFACTURER( "SKA", "Skantek Corporation" ) );
339 Add( new MANUFACTURER( "SKP", "Skipper Electronics A/S" ) );
340 Add( new MANUFACTURER( "SME", "Shakespeare Marine Electronics" ) );
341 Add( new MANUFACTURER( "SMF", "Seattle Marine and Fishing Supply Company" ) );
342 Add( new MANUFACTURER( "SML", "Simerl Instruments" ) );
343 Add( new MANUFACTURER( "SMI", "Sperry Marine, Inc." ) );
344 Add( new MANUFACTURER( "SNV", "Starnav Corporation" ) );
345 Add( new MANUFACTURER( "SOM", "Sound Marine Electronics, Inc." ) );
346 Add( new MANUFACTURER( "SOV", "Sell Overseas America" ) );
347 Add( new MANUFACTURER( "SPL", "Spelmar" ) );
348 Add( new MANUFACTURER( "SPT", "Sound Powered Telephone" ) );
349 Add( new MANUFACTURER( "SRD", "SRD Labs" ) );
350 Add( new MANUFACTURER( "SRS", "Scientific Radio Systems, Inc." ) );
351 Add( new MANUFACTURER( "SRT", "Standard Radio and Telefon AB" ) );
352 Add( new MANUFACTURER( "SSI", "Sea Scout Industries" ) );
353 Add( new MANUFACTURER( "STC", "Standard Communications" ) );
354 Add( new MANUFACTURER( "STI", "Sea-Temp Instrument Corporation" ) );
355 Add( new MANUFACTURER( "STM", "Si-Tex Marine Electronics" ) );
356 Add( new MANUFACTURER( "SVY", "Savoy Electronics" ) );
357 Add( new MANUFACTURER( "SWI", "Swoffer Marine Instruments, Inc." ) );
358 Add( new MANUFACTURER( "SRS", "Shipmate, Rauff & Sorensen, A/S" ) );
359 Add( new MANUFACTURER( "TBB", "Thompson Brothers Boat Manufacturing Company" ) );
360 Add( new MANUFACTURER( "TCN", "Trade Commission of Norway (THE)" ) );
361 Add( new MANUFACTURER( "TDL", "Tideland Signal" ) );
362 Add( new MANUFACTURER( "THR", "Thrane and Thrane A/A" ) );
363 Add( new MANUFACTURER( "TLS", "Telesystems" ) );
364 Add( new MANUFACTURER( "TMT", "Tamtech, Limited" ) );
365 Add( new MANUFACTURER( "TNL", "Trimble Navigation" ) );
366 Add( new MANUFACTURER( "TRC", "Tracor, Inc." ) );
367 Add( new MANUFACTURER( "TSI", "Techsonic Industries, Inc." ) );
368 Add( new MANUFACTURER( "TTK", "Talon Technology Corporation" ) );
369 Add( new MANUFACTURER( "TTS", "Transtector Systems" ) );
370 Add( new MANUFACTURER( "TWC", "Transworld Communications, Inc." ) );
371 Add( new MANUFACTURER( "TXI", "Texas Instruments, Inc." ) );
372 Add( new MANUFACTURER( "UME", "Umec" ) );
373 Add( new MANUFACTURER( "UNI", "Uniden Corporation of America" ) );
374 Add( new MANUFACTURER( "UNP", "Unipas, Inc." ) );
375 Add( new MANUFACTURER( "UNF", "Uniforce Electronics Company" ) );
376 Add( new MANUFACTURER( "VAN", "Vanner, Inc." ) );
377 Add( new MANUFACTURER( "VAR", "Varian Eimac Associates" ) );
378 Add( new MANUFACTURER( "VCM", "Videocom" ) );
379 Add( new MANUFACTURER( "VEX", "Vexillar" ) );
380 Add( new MANUFACTURER( "VIS", "Vessel Information Systems, Inc." ) );
381 Add( new MANUFACTURER( "VMR", "Vast Marketing Corporation" ) );
382 Add( new MANUFACTURER( "WAL", "Walport USA" ) );
383 Add( new MANUFACTURER( "WBG", "Westberg Manufacturing, Inc." ) );
384 Add( new MANUFACTURER( "WEC", "Westinghouse electric Corporation" ) );
385 Add( new MANUFACTURER( "WHA", "W-H Autopilots" ) );
386 Add( new MANUFACTURER( "WMM", "Wait Manufacturing and Marine Sales Company" ) );
387 Add( new MANUFACTURER( "WMR", "Wesmar Electronics" ) );
388 Add( new MANUFACTURER( "WNG", "Winegard Company" ) );
389 Add( new MANUFACTURER( "WSE", "Wilson Electronics Corporation" ) );
390 Add( new MANUFACTURER( "WTC", "Watercom" ) );
391 Add( new MANUFACTURER( "WST", "West Electronics Limited" ) );
392 Add( new MANUFACTURER( "YAS", "Yaesu Electronics" ) );
393
394 Sort();
395}
396
397const QString& MANUFACTURER_LIST::Find( const QString& mnemonic )
398{
399 static QString return_value;
400
401 MANUFACTURER *manufacturer_p = (MANUFACTURER *) NULL;
402
403 //return_value.Empty();
404
405 int lower_limit = 0;
406 int upper_limit = 0;
407 int index = 0;
408 int drop_dead = 0;
409 int comparison = 0;
410 int exit_loop = 0;
411
412 /*
413 ** Check to see if the list has been filled
414 */
415
416 if ( ManufacturerTable.size() == 0 )
417 {
418 Fill();
419 }
420
421 /*
422 ** Do a Binary Search to call the appropriate function
423 */
424
425 lower_limit = 0;
426 upper_limit = ManufacturerTable.size();
427 index = upper_limit / 2;
428 drop_dead = ( index < 10 ) ? 10 : index + 2;
429
430 /*
431 ** The drop_dead is here as an insurance policy that we will never get stuck in an endless loop.
432 ** I have encountered situations where the inaccuracy of the division leaves the loop stuck when
433 ** it can't find something.
434 */
435
436 while( exit_loop == 0 )
437 {
438 manufacturer_p = (MANUFACTURER *) ManufacturerTable[ index ];
439
440 comparison = mnemonic.compare( manufacturer_p->Mnemonic );
441
442 if ( comparison == 0 )
443 {
444 return_value = manufacturer_p->CompanyName;
445 exit_loop = 1;
446 }
447 else
448 {
449 if ( comparison < 0 )
450 {
451 upper_limit = index;
452 }
453 else
454 {
455 lower_limit = index;
456 }
457
458 if ( lower_limit == upper_limit )
459 {
460 exit_loop = 1;
461 }
462 else
463 {
464 index = ( lower_limit + upper_limit ) / 2;
465 }
466 }
467
468 drop_dead--;
469
470 if ( drop_dead < 0 )
471 {
472 exit_loop = 1;
473 }
474 }
475
476 return( return_value );
477}
478
479void MANUFACTURER_LIST::Sort( void )
480{
481 int index = 0;
482 int number_of_entries_in_table = ManufacturerTable.size() - 1;
483
484 MANUFACTURER *this_manufacturer = (MANUFACTURER *) NULL;
485 MANUFACTURER *that_manufacturer = (MANUFACTURER *) NULL;
486
487 BOOL sorted = FALSE;
488
489 while( sorted == FALSE )
490 {
491 sorted = TRUE;
492
493 index = 0;
494
495 while( index < number_of_entries_in_table )
496 {
497 this_manufacturer = (MANUFACTURER *) ManufacturerTable[ index ];
498 that_manufacturer = (MANUFACTURER *) ManufacturerTable[ index + 1 ];
499
500 if ( this_manufacturer->Mnemonic.compare( that_manufacturer->Mnemonic ) > 0 )
501 {
502 //ManufacturerTable[ index ] = that_manufacturer;
503 ManufacturerTable.insert(index,that_manufacturer);
504 //ManufacturerTable[ index + 1 ] = this_manufacturer;
505 ManufacturerTable.insert(index + 1,this_manufacturer);
506
507 sorted = FALSE;
508 }
509
510 index++;
511 }
512 }
513}
514
515const QString& MANUFACTURER_LIST::operator [] ( const char *mnemonic )
516{
517 return( Find( mnemonic ) );
518}
Note: See TracBrowser for help on using the repository browser.