networkprotocolmodules/common/suplrrlpasn1/inc/rrlpmeasureposresponse.h
changeset 0 9cfd9a3ee49c
--- /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 <lbspositioninfo.h>
+#include <lbs/lbsassistancedatabase.h> 
+#include <lbs/lbsgpsmeasurement.h>
+#include <lbs/lbsgpstimingmeasurement.h>
+
+/** 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
+