diff -r 000000000000 -r 9cfd9a3ee49c networkprotocolmodules/common/suplrrlpasn1/inc/rrlpmeasureposresponse.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/networkprotocolmodules/common/suplrrlpasn1/inc/rrlpmeasureposresponse.h Tue Feb 02 01:50:39 2010 +0200 @@ -0,0 +1,142 @@ +// Copyright (c) 2008-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: +// + +/** + @file + @internalTechnology + +*/ + +#ifndef RRLP_MEASURE_POSITION_RESPONSE_H +#define RRLP_MEASURE_POSITION_RESPONSE_H + +#include "rrlpmessagebase.h" +#include +#include +#include +#include + +/** TRrlpLocError typedef. +@internalTechnology +*/ +typedef TUint32 TRrlpLocError; + +/** +Enumeration for location error Code parameter. + +@internalTechnology +*/ +enum _TRrlpLocError + { + ERrlpLocErrorUnDefined = 0, + ERrlpLocErrorNotEnoughBTSs = 1, + ERrlpLocErrorNotEnoughSats = 2, + ERrlpLocErrorEotdLocCalAssDataMissing = 3, + ERrlpLocErrorEotdAssDataMissing = 4, + ERrlpLocErrorGpsLocCalAssDataMissing = 5, + ERrlpLocErrorGpsAssDataMissing = 6, + ERrlpLocErrorMethodNotSupported = 7, + ERrlpLocErrorNotProcessed = 8, + ERrlpLocErrorRefBTSForGPSNotServingBTS = 9, + ERrlpLocErrorRefBTSForEOTDNotServingBTS = 10 + }; + +/** TGeoInfo typedef. +@internalTechnology +*/ +typedef TUint32 TGeoInfo; + +/** +Enumeration for location estimate type + +@internalTechnology + +*/ +enum _TGeoInfo + { + EGeoInfoEllipsoidPoint = 0, + EGeoInfoEllipsoidPointWithUncertaintyCircle = 1, + EGeoInfoEllipsoidPointWithUncertaintyEllipse = 3, + EGeoInfoPolygon = 5, // not supported by RRLP + EGeoInfoEllipsoidPointWithAltitude = 8, // not supported by RRLP + EGeoInfoEllipsoidPointWithAltitudeAndUncertaintyEllipsoid = 9, + EGeoInfoEllipsoidArc = 10 // not supported by RRLP + }; + + +/** +Encapsulation for received CRrlpMeasurePositionResponse messages. + +@internalTechnology + +*/ +NONSHARABLE_CLASS(CRrlpMeasurePositionResponse) : public CRrlpMessageBase + { +public: + IMPORT_C static CRrlpMeasurePositionResponse* NewL(); + IMPORT_C static CRrlpMeasurePositionResponse* NewLC(); + +public: + virtual ~CRrlpMeasurePositionResponse(); + +public: + + /** Sets location information parameters */ + IMPORT_C TInt SetLocationInformation(TPositionInfoBase& aPosInfo); + + /** Sets measurement information parameters */ + IMPORT_C TInt SetMeasurementInformation(const TPositionInfoBase& aPosInfo); + + /** Sets Location Error Parameters */ + IMPORT_C TInt SetLocationError(TRrlpLocError aLocError); + + /** Sets Location Error Parameters with request for additional assistance data */ + IMPORT_C TInt SetLocationError(TRrlpLocError aLocError, const TLbsAsistanceDataGroup& aDataReqMask); + +protected: + + /** Sets the extended reference parameters */ + TInt SetExtendedReference(const TRrlpReference& aRrlpRef); + + /** Sets GPS Fine Timing Data */ + void SetGpsTimingData(const TGpsTimingMeasurementData& aTimingData); + +private: + + /** Constructor */ + CRrlpMeasurePositionResponse(); + + /** second stage constructor */ + void ConstructL(); + + /** Prohibit copy constructor */ + CRrlpMeasurePositionResponse(const CRrlpMeasurePositionResponse&); + + /** Prohibit assigment operator */ + CRrlpMeasurePositionResponse& operator= (const CRrlpMeasurePositionResponse&); + +private: + + /** Calculates horizontal uncertainty constant from value in meters */ + TInt MetersToHorizontalUncertainty(const TReal32& aDistance); + + /** Calculates vertical uncertainty constant from value in meters */ + TInt MetersToVerticalUncertainty(const TReal32& aDistance); + + }; + + +#endif // RRLP_MEASURE_POSITION_RESPONSE_H +