|
1 /* |
|
2 * Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
3 * All rights reserved. |
|
4 * This component and the accompanying materials are made available |
|
5 * under the terms of "Eclipse Public License v1.0" |
|
6 * which accompanies this distribution, and is available |
|
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
8 * |
|
9 * Initial Contributors: |
|
10 * Nokia Corporation - initial contribution. |
|
11 * |
|
12 * Contributors: |
|
13 * |
|
14 * Description: |
|
15 * |
|
16 */ |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 #ifndef BTGPSMESSAGEDEF_H |
|
22 #define BTGPSMESSAGEDEF_H |
|
23 |
|
24 // INCLUDES |
|
25 // CONSTANTS |
|
26 |
|
27 /** |
|
28 * The maximum length of a valid NMEA sentence |
|
29 */ |
|
30 const TInt KMaxNmeaMessageSize = 256; |
|
31 |
|
32 //Defines the message Id increments |
|
33 const TInt KNmeaMessageIdSkip = 100; |
|
34 |
|
35 |
|
36 enum TNmeaMessageId |
|
37 { |
|
38 //0 is reserved for invalid message |
|
39 ENmeaNull = 0, ///dummy message |
|
40 ENmeaUnknown = 1, ///Unknown message |
|
41 ENmeaGPGSV = 100, ///GPGSV message |
|
42 ENmeaGPGLL = 200, ///GPGLL message |
|
43 ENmeaGPRMC = 300, ///GPRMC message |
|
44 ENmeaGPVTG = 400, ///GPVTG message |
|
45 ENmeaGPGGA = 500, ///GPGGA message |
|
46 ENmeaGPGSA = 600, ///GPGSA message |
|
47 //Proprietary message starts here |
|
48 ENmeaPropriatary = 10000, |
|
49 ENmeaPSRF107 = 10100, |
|
50 ENmeaPSRF103 = 10200, |
|
51 ENmeaPSRF101 = 10300, |
|
52 ENmeaPSRF105 = 10400, |
|
53 ENmeaPSRF201 = 10500, |
|
54 ENmeaProprietaryNok = 20000 |
|
55 }; |
|
56 |
|
57 |
|
58 enum TNmeaPNokMessageId |
|
59 { |
|
60 //Received message |
|
61 ENmeaPNokOk = 20100, |
|
62 ENmeaPNokReset = 20200, |
|
63 ENmeaPNokPeriodicMsgs = 20300, |
|
64 ENmeaPNokLowPwrMode = 20400, |
|
65 ENmeaPNokNightMode = 20500, |
|
66 ENmeaPNokVersionInfo = 20600, |
|
67 ENmeaPNokPeriodicEvents = 20700, |
|
68 ENmeaPNokReferenceTime = 20800, |
|
69 }; |
|
70 |
|
71 //The NMEA message fields |
|
72 enum TNmeaFieldID |
|
73 { |
|
74 ENmeaFieldAddressField = 0, |
|
75 ENmeaFieldGPGSVNumberOfMessage = ENmeaGPGSV, |
|
76 ENmeaFieldGPGSVMessageNumber, |
|
77 ENmeaFieldGPGSVSatellitesInView, |
|
78 ENmeaFieldGPGSVSatelliteID1, |
|
79 ENmeaFieldGPGSVElevation1, |
|
80 ENmeaFieldGPGSVAzimuth1, |
|
81 ENmeaFieldGPGSVSNR1, |
|
82 ENmeaFieldGPGSVSatelliteID2, |
|
83 ENmeaFieldGPGSVElevation2, |
|
84 ENmeaFieldGPGSVAzimuth2, |
|
85 ENmeaFieldGPGSVSNR2, |
|
86 ENmeaFieldGPGSVSatelliteID3, |
|
87 ENmeaFieldGPGSVElevation3, |
|
88 ENmeaFieldGPGSVAzimuth3, |
|
89 ENmeaFieldGPGSVSNR3, |
|
90 ENmeaFieldGPGSVSatelliteID4, |
|
91 ENmeaFieldGPGSVElevation4, |
|
92 ENmeaFieldGPGSVAzimuth4, |
|
93 ENmeaFieldGPGSVSNR4, |
|
94 ENmeaFieldGPGLLLatitude = ENmeaGPGLL, |
|
95 ENmeaFieldGPGLLNSIndicator, |
|
96 ENmeaFieldGPGLLLongitude, |
|
97 ENmeaFieldGPGLLEWIndicator, |
|
98 ENmeaFieldGPGLLUTCTime, |
|
99 ENmeaFieldGPGLLFix, |
|
100 ENmeaFieldGPRMCUTCTime = ENmeaGPRMC, |
|
101 ENmeaFieldGPRMCFix, |
|
102 ENmeaFieldGPRMCLatitude, |
|
103 ENmeaFieldGPRMCNSIndicator, |
|
104 ENmeaFieldGPRMCLongitude, |
|
105 ENmeaFieldGPRMCEWIndicator, |
|
106 ENmeaFieldGPRMCSpeedOverGround, |
|
107 ENmeaFieldGPRMCCourseOverGround, |
|
108 ENmeaFieldGPRMCDate, |
|
109 ENmeaFieldGPRMCMagneticVariation, |
|
110 ENmeaFieldGPRMCMagneticEW, |
|
111 ENmeaFieldGPRMCModeIndicator, |
|
112 ENmeaFieldGPVTGCourse1 = ENmeaGPVTG, |
|
113 ENmeaFieldGPVTGReference1, |
|
114 ENmeaFieldGPVTGCourse2, |
|
115 ENmeaFieldGPVTGReference2, |
|
116 ENmeaFieldGPVTGSpeed, |
|
117 ENmeaFieldGPVTGUnits, |
|
118 ENmeaFieldGPVTGSpeed2, |
|
119 ENmeaFieldGPVTGUnits2, |
|
120 ENmeaFieldGPGGAUTCTime = ENmeaGPGGA, |
|
121 ENmeaFieldGPGGALatitude, |
|
122 ENmeaFieldGPGGANSIndicator, |
|
123 ENmeaFieldGPGGALongitude, |
|
124 ENmeaFieldGPGGAEWIndicator, |
|
125 ENmeaFieldGPGGAFix, |
|
126 ENmeaFieldGPGGASatellitesUsed, |
|
127 ENmeaFieldGPGGAHDOP, |
|
128 ENmeaFieldGPGGAMSLAltitude, |
|
129 ENmeaFieldGPGGAUnits, |
|
130 ENmeaFieldGPGGAGeoidalSeperation, |
|
131 ENmeaFieldGPGGAGeoidalSeperationUnits, |
|
132 ENmeaFieldGPGGAAgeOfDiffCorr, |
|
133 ENmeaFieldGPGGADiffRefStationID, |
|
134 ENmeaFieldGPGSAMode1 = ENmeaGPGSA, |
|
135 ENmeaFieldGPGSAMode2, |
|
136 ENmeaFieldGPGSASatellitesUsedCH1, |
|
137 ENmeaFieldGPGSASatellitesUsedCH2, |
|
138 ENmeaFieldGPGSASatellitesUsedCH3, |
|
139 ENmeaFieldGPGSASatellitesUsedCH4, |
|
140 ENmeaFieldGPGSASatellitesUsedCH5, |
|
141 ENmeaFieldGPGSASatellitesUsedCH6, |
|
142 ENmeaFieldGPGSASatellitesUsedCH7, |
|
143 ENmeaFieldGPGSASatellitesUsedCH8, |
|
144 ENmeaFieldGPGSASatellitesUsedCH9, |
|
145 ENmeaFieldGPGSASatellitesUsedCH10, |
|
146 ENmeaFieldGPGSASatellitesUsedCH11, |
|
147 ENmeaFieldGPGSASatellitesUsedCH12, |
|
148 ENmeaFieldGPGSAPDOP, |
|
149 ENmeaFieldGPGSAHDOP, |
|
150 ENmeaFieldGPGSAVDOP, |
|
151 ENmeaFieldPSRF107PushToFix = ENmeaPSRF107, |
|
152 ENmeaFieldPSRF107OnTimeMs, |
|
153 ENmeaFieldPSRF107LPIntervalMs, |
|
154 ENmeaFieldPSRF103Msg = ENmeaPSRF103, |
|
155 ENmeaFieldPSRF103Mode, |
|
156 ENmeaFieldPSRF103Rate, |
|
157 ENmeaFieldPSRF103CksumEnable, |
|
158 ENmeaFieldPSRF101EFECX = ENmeaPSRF101, |
|
159 ENmeaFieldPSRF101EFECY, |
|
160 ENmeaFieldPSRF101EFECZ, |
|
161 ENmeaFieldPSRF101ClkOffset, |
|
162 ENmeaFieldPSRF101TimeOfWeek, |
|
163 ENmeaFieldPSRF101WeekNo, |
|
164 ENmeaFieldPSRF101ChannelCount, |
|
165 ENmeaFieldPSRF101ResetCfg, |
|
166 ENmeaFieldPSRF105Debug = ENmeaPSRF105, |
|
167 ENmeaFieldPSRF201PollParam = ENmeaPSRF201, |
|
168 |
|
169 ENmeaFieldProprietaryCmd = ENmeaProprietaryNok, |
|
170 ENmeaFieldPNOKCmdOk = ENmeaPNokOk, |
|
171 ENmeaFieldPNOKSupport, |
|
172 ENmeaFieldPNOKCmdReset = ENmeaPNokReset, |
|
173 ENmeaFieldPNOKResetType, |
|
174 ENmeaFieldPNOKCmdMsgs = ENmeaPNokPeriodicMsgs, |
|
175 ENmeaFieldPNOKGGAMessageStatus, |
|
176 ENmeaFieldPNOKGSAMessageStatus, |
|
177 ENmeaFieldPNOKGSVMessageStatus, |
|
178 ENmeaFieldPNOKRMCMessageStatus, |
|
179 ENmeaFieldPNOKVTGMessageStatus, |
|
180 ENmeaFieldPNOKGLLMessageStatus, |
|
181 ENmeaFieldPNOKGPSStatusMessage, |
|
182 ENmeaFieldPNOKCmdLowPwr = ENmeaPNokLowPwrMode, |
|
183 ENmeaFieldPNOKLowPowerMode, |
|
184 ENmeaFieldPNOKCmdNightMode = ENmeaPNokNightMode, |
|
185 ENmeaFieldPNOKNightModeStatus, |
|
186 ENmeaFieldPNOKCmdVer = ENmeaPNokVersionInfo, |
|
187 ENmeaFieldPNOKProductID, |
|
188 ENmeaFieldPNOKBTHWVersionNumber, |
|
189 ENmeaFieldPNOKBTSWVersionNumber, |
|
190 ENmeaFieldPNOKGPSHWVersionNumber, |
|
191 ENmeaFieldPNOKGPSSWVersionNumber, |
|
192 ENmeaFieldPNOKCmdStat = ENmeaPNokPeriodicEvents, |
|
193 ENmeaFieldPNOKBatteryLevel, |
|
194 ENmeaFieldPNOKBatteryStatus, |
|
195 ENmeaFieldPNOKExtPowerStatus, |
|
196 ENmeaFieldPNOKExtAntennaStatus, |
|
197 ENmeaFieldPNOKCmdTime = ENmeaPNokReferenceTime, |
|
198 ENmeaFieldPNOKReferenceTime, |
|
199 ENmeaFieldPNOKReferenceDate |
|
200 }; |
|
201 |
|
202 //Constants for NMEA message |
|
203 //NMEA message beginning charater |
|
204 const TUint8 KNmeaSentenceLead = '$'; |
|
205 |
|
206 //NMEA message terminator 1 |
|
207 const TUint8 KNmeaSentenceTerminator1 = '\r'; |
|
208 |
|
209 //NMEA message terminator 2 |
|
210 const TUint8 KNmeaSentenceTerminator2 = '\n'; |
|
211 |
|
212 |
|
213 //MessageIds for the NMEA messages |
|
214 _LIT8(KMessageIdGSV,"$GPGSV"); |
|
215 _LIT8(KMessageIdGLL,"$GPGLL"); |
|
216 _LIT8(KMessageIdRMC,"$GPRMC"); |
|
217 _LIT8(KMessageIdVTG,"$GPVTG"); |
|
218 _LIT8(KMessageIdGGA,"$GPGGA"); |
|
219 _LIT8(KMessageIdGSA,"$GPGSA"); |
|
220 _LIT8(KMessageIdPSRF107,"$PSRF107"); |
|
221 _LIT8(KMessageIdPSRF103,"$PSRF103"); |
|
222 _LIT8(KMessageIdPSRF101,"$PSRF101"); |
|
223 _LIT8(KMessageIdPSRF105,"$PSRF105"); |
|
224 _LIT8(KMessageIdPSRF201,"$PSRF201"); |
|
225 |
|
226 // MessageIds for the PNOK messsages |
|
227 _LIT8(KPNOKIdMsgSupport, "$PNOK,OK"); |
|
228 _LIT8(KPNOKIdResetType, "$PNOK,RESET"); |
|
229 _LIT8(KPNOKIdPeriodicMsgs, "$PNOK,MSGS"); |
|
230 _LIT8(KPNOKIdLowPwrMode, "$PNOK,LOWPWR"); |
|
231 _LIT8(KPNOKIdNightMode, "$PNOK,NIGHTMODE"); |
|
232 _LIT8(KPNOKIdVersionInfo, "$PNOK,VER"); |
|
233 _LIT8(KPNOKIdPeriodicEvts, "$PNOK,STAT"); |
|
234 _LIT8(KPNOKIdReferenceTime, "$PNOK,TIME"); |
|
235 |
|
236 // Constants defined for PNOK message |
|
237 // PNOK STAT message. Battery in normal operation mode |
|
238 const TInt KPNOKStatBattNormal = 0; |
|
239 |
|
240 // PNOK STAT message. Battery full |
|
241 const TInt KPNOKStatBattFull = 1; |
|
242 |
|
243 // PNOK STAT message. Battery low |
|
244 const TInt KPNOKStatBattLow = 2; |
|
245 |
|
246 // PNOK STAT message. Ext power not connected |
|
247 const TInt KPNOKStatExtPowerNotConnected = 0; |
|
248 |
|
249 // PNOK STAT message. Ext power connected |
|
250 const TInt KPNOKStatExtPowerConnected = 1; |
|
251 |
|
252 // PNOK STAT message. Ext antenna not connected |
|
253 const TInt KPNOKStatExtAntennaNotConnected = 0; |
|
254 |
|
255 // PNOK STAT message. Ext antenna connected |
|
256 const TInt KPNOKStatExtAntennaConnected = 1; |
|
257 |
|
258 // PNOK NigthMode message. Night mode on |
|
259 const TInt KPNOKNightNightModeOn = 1; |
|
260 |
|
261 //PNOK NightMode mssage. Nigth mode off |
|
262 const TInt KPNOKNightNightModeOff = 0; |
|
263 |
|
264 //Predefiend message |
|
265 enum TNmeaPredefiendMessage |
|
266 { |
|
267 //PNok message |
|
268 ENmeaPNokNightModeOff, |
|
269 ENmeaPNokNightModeOn, |
|
270 ENmeaPNokToPowerSaving1s, |
|
271 ENmeaPNok, |
|
272 ENmeaPNokSelectMessage, |
|
273 //Sirf message |
|
274 ENmeaSelectMessage, |
|
275 ENmeaToNormalPower, |
|
276 ENmeaToPowerSaving, |
|
277 ENmeaSirfToNmea |
|
278 }; |
|
279 |
|
280 |
|
281 |
|
282 //PNOK message to change Night Mode OFF |
|
283 _LIT8(KNMEAPNOKNightModeOff, "$PNOK,NIGHTMODE,0*75\r\n"); |
|
284 |
|
285 //PNOK message to change Night Mode ON |
|
286 _LIT8(KNMEAPNOKNightModeOn, "$PNOK,NIGHTMODE,1*74\r\n"); |
|
287 |
|
288 //PNOK message to set power saving ON (lowest saving mode: messages are sent in every 1000 ms) |
|
289 _LIT8(KNMEAPNOKToPowerSaving1s,"$PNOK,LOWPWR,1*2A\r\n"); |
|
290 |
|
291 //PNOK message to set wanted message(GPGGA, GPRMC, GPGSV, GPGSA, STAT). |
|
292 //No message is turned off. |
|
293 _LIT8(KNMEAPNOKSelectMessage, "$PNOK,MSGS,1,1,1,1,,,1*21\r\n"); |
|
294 |
|
295 //Literal constant for identifying PNOK messages |
|
296 _LIT8(KNMEAPNOK, "$PNOK*1A\r\n"); |
|
297 |
|
298 //NMEA messages to set right messages flowing for BT GPS Devices. Turn on |
|
299 //GGA, GSA, GSV, RMC. No message is turned off. |
|
300 _LIT8(KNMEASelectedMessages,"$PSRF103,0,0,1,1*25\r\n$PSRF103,2,0,1,1*27\r\n\ |
|
301 $PSRF103,3,0,1,1*26\r\n$PSRF103,4,0,1,1*21\r\n"); |
|
302 |
|
303 //NMEA message to set power saving off |
|
304 _LIT8(KNMEAToNormalPower,"$PSRF107,0,1000,1000*3d\r\n"); |
|
305 |
|
306 //NMEA message to set power saving on |
|
307 _LIT8(KNMEAToPowerSaving,"$PSRF107,0,200,1000*0e\r\n"); |
|
308 |
|
309 //SiRF message to set the GPS in NMEA mode. Supported also in Nokia BT GPS Device. |
|
310 //Check it this is the $PSRF129, which shall be used for Nokia Device. |
|
311 _LIT8(KSirfToNMEA,"\xA0\xA2\x00\x18\x81\x02\x01\x01\x00\x01\x05\x01\x05\x01\ |
|
312 \x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x12\xC0\x01\x6A\xB0\xB3\r\n"); |
|
313 |
|
314 #endif //BTGPSMESSAGEDEF_H |
|
315 |
|
316 // End of File |