--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/datasourcemodules/bluetoothgpspositioningmodule/btgpspsy/inc/Nmea/BTGPSMessageDef.h Fri Jun 04 10:34:15 2010 +0100
@@ -0,0 +1,316 @@
+/*
+* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+
+
+#ifndef BTGPSMESSAGEDEF_H
+#define BTGPSMESSAGEDEF_H
+
+// INCLUDES
+// CONSTANTS
+
+/**
+* The maximum length of a valid NMEA sentence
+*/
+const TInt KMaxNmeaMessageSize = 256;
+
+//Defines the message Id increments
+const TInt KNmeaMessageIdSkip = 100;
+
+
+enum TNmeaMessageId
+ {
+ //0 is reserved for invalid message
+ ENmeaNull = 0, ///dummy message
+ ENmeaUnknown = 1, ///Unknown message
+ ENmeaGPGSV = 100, ///GPGSV message
+ ENmeaGPGLL = 200, ///GPGLL message
+ ENmeaGPRMC = 300, ///GPRMC message
+ ENmeaGPVTG = 400, ///GPVTG message
+ ENmeaGPGGA = 500, ///GPGGA message
+ ENmeaGPGSA = 600, ///GPGSA message
+ //Proprietary message starts here
+ ENmeaPropriatary = 10000,
+ ENmeaPSRF107 = 10100,
+ ENmeaPSRF103 = 10200,
+ ENmeaPSRF101 = 10300,
+ ENmeaPSRF105 = 10400,
+ ENmeaPSRF201 = 10500,
+ ENmeaProprietaryNok = 20000
+ };
+
+
+enum TNmeaPNokMessageId
+ {
+ //Received message
+ ENmeaPNokOk = 20100,
+ ENmeaPNokReset = 20200,
+ ENmeaPNokPeriodicMsgs = 20300,
+ ENmeaPNokLowPwrMode = 20400,
+ ENmeaPNokNightMode = 20500,
+ ENmeaPNokVersionInfo = 20600,
+ ENmeaPNokPeriodicEvents = 20700,
+ ENmeaPNokReferenceTime = 20800,
+ };
+
+//The NMEA message fields
+enum TNmeaFieldID
+ {
+ ENmeaFieldAddressField = 0,
+ ENmeaFieldGPGSVNumberOfMessage = ENmeaGPGSV,
+ ENmeaFieldGPGSVMessageNumber,
+ ENmeaFieldGPGSVSatellitesInView,
+ ENmeaFieldGPGSVSatelliteID1,
+ ENmeaFieldGPGSVElevation1,
+ ENmeaFieldGPGSVAzimuth1,
+ ENmeaFieldGPGSVSNR1,
+ ENmeaFieldGPGSVSatelliteID2,
+ ENmeaFieldGPGSVElevation2,
+ ENmeaFieldGPGSVAzimuth2,
+ ENmeaFieldGPGSVSNR2,
+ ENmeaFieldGPGSVSatelliteID3,
+ ENmeaFieldGPGSVElevation3,
+ ENmeaFieldGPGSVAzimuth3,
+ ENmeaFieldGPGSVSNR3,
+ ENmeaFieldGPGSVSatelliteID4,
+ ENmeaFieldGPGSVElevation4,
+ ENmeaFieldGPGSVAzimuth4,
+ ENmeaFieldGPGSVSNR4,
+ ENmeaFieldGPGLLLatitude = ENmeaGPGLL,
+ ENmeaFieldGPGLLNSIndicator,
+ ENmeaFieldGPGLLLongitude,
+ ENmeaFieldGPGLLEWIndicator,
+ ENmeaFieldGPGLLUTCTime,
+ ENmeaFieldGPGLLFix,
+ ENmeaFieldGPRMCUTCTime = ENmeaGPRMC,
+ ENmeaFieldGPRMCFix,
+ ENmeaFieldGPRMCLatitude,
+ ENmeaFieldGPRMCNSIndicator,
+ ENmeaFieldGPRMCLongitude,
+ ENmeaFieldGPRMCEWIndicator,
+ ENmeaFieldGPRMCSpeedOverGround,
+ ENmeaFieldGPRMCCourseOverGround,
+ ENmeaFieldGPRMCDate,
+ ENmeaFieldGPRMCMagneticVariation,
+ ENmeaFieldGPRMCMagneticEW,
+ ENmeaFieldGPRMCModeIndicator,
+ ENmeaFieldGPVTGCourse1 = ENmeaGPVTG,
+ ENmeaFieldGPVTGReference1,
+ ENmeaFieldGPVTGCourse2,
+ ENmeaFieldGPVTGReference2,
+ ENmeaFieldGPVTGSpeed,
+ ENmeaFieldGPVTGUnits,
+ ENmeaFieldGPVTGSpeed2,
+ ENmeaFieldGPVTGUnits2,
+ ENmeaFieldGPGGAUTCTime = ENmeaGPGGA,
+ ENmeaFieldGPGGALatitude,
+ ENmeaFieldGPGGANSIndicator,
+ ENmeaFieldGPGGALongitude,
+ ENmeaFieldGPGGAEWIndicator,
+ ENmeaFieldGPGGAFix,
+ ENmeaFieldGPGGASatellitesUsed,
+ ENmeaFieldGPGGAHDOP,
+ ENmeaFieldGPGGAMSLAltitude,
+ ENmeaFieldGPGGAUnits,
+ ENmeaFieldGPGGAGeoidalSeperation,
+ ENmeaFieldGPGGAGeoidalSeperationUnits,
+ ENmeaFieldGPGGAAgeOfDiffCorr,
+ ENmeaFieldGPGGADiffRefStationID,
+ ENmeaFieldGPGSAMode1 = ENmeaGPGSA,
+ ENmeaFieldGPGSAMode2,
+ ENmeaFieldGPGSASatellitesUsedCH1,
+ ENmeaFieldGPGSASatellitesUsedCH2,
+ ENmeaFieldGPGSASatellitesUsedCH3,
+ ENmeaFieldGPGSASatellitesUsedCH4,
+ ENmeaFieldGPGSASatellitesUsedCH5,
+ ENmeaFieldGPGSASatellitesUsedCH6,
+ ENmeaFieldGPGSASatellitesUsedCH7,
+ ENmeaFieldGPGSASatellitesUsedCH8,
+ ENmeaFieldGPGSASatellitesUsedCH9,
+ ENmeaFieldGPGSASatellitesUsedCH10,
+ ENmeaFieldGPGSASatellitesUsedCH11,
+ ENmeaFieldGPGSASatellitesUsedCH12,
+ ENmeaFieldGPGSAPDOP,
+ ENmeaFieldGPGSAHDOP,
+ ENmeaFieldGPGSAVDOP,
+ ENmeaFieldPSRF107PushToFix = ENmeaPSRF107,
+ ENmeaFieldPSRF107OnTimeMs,
+ ENmeaFieldPSRF107LPIntervalMs,
+ ENmeaFieldPSRF103Msg = ENmeaPSRF103,
+ ENmeaFieldPSRF103Mode,
+ ENmeaFieldPSRF103Rate,
+ ENmeaFieldPSRF103CksumEnable,
+ ENmeaFieldPSRF101EFECX = ENmeaPSRF101,
+ ENmeaFieldPSRF101EFECY,
+ ENmeaFieldPSRF101EFECZ,
+ ENmeaFieldPSRF101ClkOffset,
+ ENmeaFieldPSRF101TimeOfWeek,
+ ENmeaFieldPSRF101WeekNo,
+ ENmeaFieldPSRF101ChannelCount,
+ ENmeaFieldPSRF101ResetCfg,
+ ENmeaFieldPSRF105Debug = ENmeaPSRF105,
+ ENmeaFieldPSRF201PollParam = ENmeaPSRF201,
+
+ ENmeaFieldProprietaryCmd = ENmeaProprietaryNok,
+ ENmeaFieldPNOKCmdOk = ENmeaPNokOk,
+ ENmeaFieldPNOKSupport,
+ ENmeaFieldPNOKCmdReset = ENmeaPNokReset,
+ ENmeaFieldPNOKResetType,
+ ENmeaFieldPNOKCmdMsgs = ENmeaPNokPeriodicMsgs,
+ ENmeaFieldPNOKGGAMessageStatus,
+ ENmeaFieldPNOKGSAMessageStatus,
+ ENmeaFieldPNOKGSVMessageStatus,
+ ENmeaFieldPNOKRMCMessageStatus,
+ ENmeaFieldPNOKVTGMessageStatus,
+ ENmeaFieldPNOKGLLMessageStatus,
+ ENmeaFieldPNOKGPSStatusMessage,
+ ENmeaFieldPNOKCmdLowPwr = ENmeaPNokLowPwrMode,
+ ENmeaFieldPNOKLowPowerMode,
+ ENmeaFieldPNOKCmdNightMode = ENmeaPNokNightMode,
+ ENmeaFieldPNOKNightModeStatus,
+ ENmeaFieldPNOKCmdVer = ENmeaPNokVersionInfo,
+ ENmeaFieldPNOKProductID,
+ ENmeaFieldPNOKBTHWVersionNumber,
+ ENmeaFieldPNOKBTSWVersionNumber,
+ ENmeaFieldPNOKGPSHWVersionNumber,
+ ENmeaFieldPNOKGPSSWVersionNumber,
+ ENmeaFieldPNOKCmdStat = ENmeaPNokPeriodicEvents,
+ ENmeaFieldPNOKBatteryLevel,
+ ENmeaFieldPNOKBatteryStatus,
+ ENmeaFieldPNOKExtPowerStatus,
+ ENmeaFieldPNOKExtAntennaStatus,
+ ENmeaFieldPNOKCmdTime = ENmeaPNokReferenceTime,
+ ENmeaFieldPNOKReferenceTime,
+ ENmeaFieldPNOKReferenceDate
+ };
+
+//Constants for NMEA message
+//NMEA message beginning charater
+const TUint8 KNmeaSentenceLead = '$';
+
+//NMEA message terminator 1
+const TUint8 KNmeaSentenceTerminator1 = '\r';
+
+//NMEA message terminator 2
+const TUint8 KNmeaSentenceTerminator2 = '\n';
+
+
+//MessageIds for the NMEA messages
+_LIT8(KMessageIdGSV,"$GPGSV");
+_LIT8(KMessageIdGLL,"$GPGLL");
+_LIT8(KMessageIdRMC,"$GPRMC");
+_LIT8(KMessageIdVTG,"$GPVTG");
+_LIT8(KMessageIdGGA,"$GPGGA");
+_LIT8(KMessageIdGSA,"$GPGSA");
+_LIT8(KMessageIdPSRF107,"$PSRF107");
+_LIT8(KMessageIdPSRF103,"$PSRF103");
+_LIT8(KMessageIdPSRF101,"$PSRF101");
+_LIT8(KMessageIdPSRF105,"$PSRF105");
+_LIT8(KMessageIdPSRF201,"$PSRF201");
+
+// MessageIds for the PNOK messsages
+_LIT8(KPNOKIdMsgSupport, "$PNOK,OK");
+_LIT8(KPNOKIdResetType, "$PNOK,RESET");
+_LIT8(KPNOKIdPeriodicMsgs, "$PNOK,MSGS");
+_LIT8(KPNOKIdLowPwrMode, "$PNOK,LOWPWR");
+_LIT8(KPNOKIdNightMode, "$PNOK,NIGHTMODE");
+_LIT8(KPNOKIdVersionInfo, "$PNOK,VER");
+_LIT8(KPNOKIdPeriodicEvts, "$PNOK,STAT");
+_LIT8(KPNOKIdReferenceTime, "$PNOK,TIME");
+
+// Constants defined for PNOK message
+// PNOK STAT message. Battery in normal operation mode
+const TInt KPNOKStatBattNormal = 0;
+
+// PNOK STAT message. Battery full
+const TInt KPNOKStatBattFull = 1;
+
+// PNOK STAT message. Battery low
+const TInt KPNOKStatBattLow = 2;
+
+// PNOK STAT message. Ext power not connected
+const TInt KPNOKStatExtPowerNotConnected = 0;
+
+// PNOK STAT message. Ext power connected
+const TInt KPNOKStatExtPowerConnected = 1;
+
+// PNOK STAT message. Ext antenna not connected
+const TInt KPNOKStatExtAntennaNotConnected = 0;
+
+// PNOK STAT message. Ext antenna connected
+const TInt KPNOKStatExtAntennaConnected = 1;
+
+// PNOK NigthMode message. Night mode on
+const TInt KPNOKNightNightModeOn = 1;
+
+//PNOK NightMode mssage. Nigth mode off
+const TInt KPNOKNightNightModeOff = 0;
+
+//Predefiend message
+enum TNmeaPredefiendMessage
+ {
+ //PNok message
+ ENmeaPNokNightModeOff,
+ ENmeaPNokNightModeOn,
+ ENmeaPNokToPowerSaving1s,
+ ENmeaPNok,
+ ENmeaPNokSelectMessage,
+ //Sirf message
+ ENmeaSelectMessage,
+ ENmeaToNormalPower,
+ ENmeaToPowerSaving,
+ ENmeaSirfToNmea
+ };
+
+
+
+//PNOK message to change Night Mode OFF
+_LIT8(KNMEAPNOKNightModeOff, "$PNOK,NIGHTMODE,0*75\r\n");
+
+//PNOK message to change Night Mode ON
+_LIT8(KNMEAPNOKNightModeOn, "$PNOK,NIGHTMODE,1*74\r\n");
+
+//PNOK message to set power saving ON (lowest saving mode: messages are sent in every 1000 ms)
+_LIT8(KNMEAPNOKToPowerSaving1s,"$PNOK,LOWPWR,1*2A\r\n");
+
+//PNOK message to set wanted message(GPGGA, GPRMC, GPGSV, GPGSA, STAT).
+//No message is turned off.
+_LIT8(KNMEAPNOKSelectMessage, "$PNOK,MSGS,1,1,1,1,,,1*21\r\n");
+
+//Literal constant for identifying PNOK messages
+_LIT8(KNMEAPNOK, "$PNOK*1A\r\n");
+
+//NMEA messages to set right messages flowing for BT GPS Devices. Turn on
+//GGA, GSA, GSV, RMC. No message is turned off.
+_LIT8(KNMEASelectedMessages,"$PSRF103,0,0,1,1*25\r\n$PSRF103,2,0,1,1*27\r\n\
+$PSRF103,3,0,1,1*26\r\n$PSRF103,4,0,1,1*21\r\n");
+
+//NMEA message to set power saving off
+_LIT8(KNMEAToNormalPower,"$PSRF107,0,1000,1000*3d\r\n");
+
+//NMEA message to set power saving on
+_LIT8(KNMEAToPowerSaving,"$PSRF107,0,200,1000*0e\r\n");
+
+//SiRF message to set the GPS in NMEA mode. Supported also in Nokia BT GPS Device.
+//Check it this is the $PSRF129, which shall be used for Nokia Device.
+_LIT8(KSirfToNMEA,"\xA0\xA2\x00\x18\x81\x02\x01\x01\x00\x01\x05\x01\x05\x01\
+\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x12\xC0\x01\x6A\xB0\xB3\r\n");
+
+#endif //BTGPSMESSAGEDEF_H
+
+// End of File