datasourcemodules/bluetoothgpspositioningmodule/btgpspsy/inc/Nmea/BTGPSMessageDef.h
changeset 0 9cfd9a3ee49c
equal deleted inserted replaced
-1:000000000000 0:9cfd9a3ee49c
       
     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