williamr@2: // Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: // All rights reserved. williamr@2: // This component and the accompanying materials are made available williamr@4: // under the terms of "Eclipse Public License v1.0" williamr@2: // which accompanies this distribution, and is available williamr@4: // at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@2: // williamr@2: // Initial Contributors: williamr@2: // Nokia Corporation - initial contribution. williamr@2: // williamr@2: // Contributors: williamr@2: // williamr@2: // Description: williamr@2: // williamr@2: williamr@2: #ifndef __LBSSATELLITE_H__ williamr@2: #define __LBSSATELLITE_H__ williamr@2: williamr@2: #include williamr@2: #include williamr@2: williamr@2: williamr@2: /** williamr@2: Maximum number of satellites in view williamr@2: williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TUint KPositionMaxSatellitesInView = 20; williamr@2: williamr@2: williamr@2: class TSatelliteData williamr@2: /** williamr@2: This class is used to transfer data about a satellite williamr@2: williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: { williamr@2: public: williamr@2: IMPORT_C TSatelliteData(); williamr@2: williamr@2: IMPORT_C TInt SatelliteId() const; williamr@2: IMPORT_C void SetSatelliteId(TInt aSatelliteId); williamr@2: williamr@2: IMPORT_C TReal32 Azimuth() const; williamr@2: IMPORT_C void SetAzimuth(TReal32 aAzimuth); williamr@2: williamr@2: IMPORT_C TReal32 Elevation() const; williamr@2: IMPORT_C void SetElevation(TReal32 aElevation); williamr@2: williamr@2: IMPORT_C TBool IsUsed() const; williamr@2: IMPORT_C void SetIsUsed(TBool aIsUsed); williamr@2: williamr@2: IMPORT_C TInt SignalStrength() const; williamr@2: IMPORT_C void SetSignalStrength(TInt aSignalStrength); williamr@2: williamr@2: protected: williamr@2: /** The ID (in GPS, the PRN) */ williamr@2: TInt iSatelliteId; williamr@2: /** The azimuth, in degrees */ williamr@2: TReal32 iAzimuth; williamr@2: /** The elevation, in degrees */ williamr@2: TReal32 iElevation; williamr@2: /** Whether the satellite is used */ williamr@2: TBool iIsUsed; williamr@2: /** The signal strength, in decibels */ williamr@2: TInt iSignalStrength; williamr@2: williamr@2: private: williamr@2: /** Unused variable for future expansion. */ williamr@2: TUint8 iReserved[16]; williamr@2: }; williamr@2: williamr@2: class TPositionSatelliteInfo : public TPositionCourseInfo williamr@2: /** williamr@2: This class is used to store information about positions obtained by satellites. williamr@2: williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: { williamr@2: public: williamr@2: IMPORT_C TPositionSatelliteInfo(); williamr@2: williamr@2: IMPORT_C TInt GetSatelliteData(TUint aIndex, TSatelliteData& aSatelliteData) const; williamr@2: IMPORT_C TInt AppendSatelliteData(const TSatelliteData& aSatelliteData); williamr@2: williamr@2: IMPORT_C TInt NumSatellitesInView() const; williamr@2: IMPORT_C void ClearSatellitesInView(); williamr@2: williamr@2: IMPORT_C TInt NumSatellitesUsed() const; williamr@2: williamr@2: IMPORT_C TTime SatelliteTime() const; williamr@2: IMPORT_C void SetSatelliteTime(TTime aTime); williamr@2: williamr@2: IMPORT_C TReal32 HorizontalDoP() const; williamr@2: IMPORT_C TReal32 VerticalDoP() const; williamr@2: IMPORT_C TReal32 TimeDoP() const; williamr@2: williamr@2: IMPORT_C void SetHorizontalDoP(TReal32 aDoPValue); williamr@2: IMPORT_C void SetVerticalDoP(TReal32 aDoPValue); williamr@2: IMPORT_C void SetTimeDoP(TReal32 aDoPValue); williamr@2: williamr@2: protected: williamr@2: /** The number of satellites in view */ williamr@2: TUint iNumSatellitesInView; williamr@2: /** The number of satellites used */ williamr@2: TUint iNumSatellitesUsed; williamr@2: /** The time according to the satellite */ williamr@2: TTime iSatelliteTime; williamr@2: /** The horizontal dilution of precision */ williamr@2: TReal32 iHorizontalDoPValue; williamr@2: /** The vertical dilution of precision */ williamr@2: TReal32 iVerticalDoPValue; williamr@4: /** The time dilution of precision */ williamr@2: TReal32 iTimeDoPValue; williamr@2: /** The satellites in view */ williamr@2: TFixedArray iSatellitesInView; williamr@2: williamr@2: private: williamr@2: /** Unused variable for future expansion. */ williamr@2: TUint8 iReserved[24]; williamr@2: }; williamr@2: williamr@2: #endif //__LBSSATELLITE_H__