diff -r ec40843d536a -r 5f20f71a57a3 networkprotocolmodules/common/utils/src/netpmutils.cpp --- a/networkprotocolmodules/common/utils/src/netpmutils.cpp Tue Jun 15 14:56:45 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,129 +0,0 @@ -// 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: -// System -// -// - -/** - @file - @internalTechnology - -*/ - -#include -#include - -// Component -#include "netpmutils.h" - -/** -Constants used in encoding of uncertainty data - -@see CSuplStart::Uncertainty() -@see CSuplStart::UncertaintyAltitude() -*/ -const TReal KLbsLogOnePointOne = 0.095310179804324860043952123280765; -const TReal KLbsLogOnePointZeroTwoFive = 0.02469261259037150101430767543669; -const TInt KLbsMaxUncert = 127; - -/** - * TODO: update asn1 code to use this version and delete the CSuplMessageBase version? -Uncertainty() - -Converts a minumum accuracy value in meters to an uncertainty value K as -described in 3GPP 23.032 (Universal Geographical Area Description) section 6.2. - -r = C((1+x)^K - 1) - -where r = distance in meters - C = 10 - x = 0.1 - K = uncertainty value - -hence K = ln(r/C + 1) / ln(1.1) - -@param aDistance - distance measurement in meters -@return uncertainty value K -*/ -EXPORT_C TInt NetPmUtils::Uncertainty(const TReal32& aDistance) - { - TReal uncert; - Math::Ln(uncert, (aDistance/10) + 1 ); - uncert /= KLbsLogOnePointOne; - if (uncert>KLbsMaxUncert) - { - uncert = KLbsMaxUncert; - } - - // round to nearest whole number - TReal uncertRounded; - Math::Round(uncertRounded, uncert, 0); - - return (TInt)uncertRounded; - } - - -/** -UncertaintyAltitude() - -Converts a minumum accuracy value in meters to an uncertainty altitude value K as -described in 3GPP 23.032 (Universal Geographical Area Description) section 6.4. - -r = C((1+x)^K - 1) - -where r = distance in meters - C = 45 - x = 0.1 - K = uncertainty value - -hence K = ln(r/C + 1) / ln(1.1) - -@param aDistance - altitude accuracy in meters -@return uncertainty altitude value K -*/ -EXPORT_C TInt NetPmUtils::UncertaintyAltitude(const TReal32& aDistance) - { - - TReal uncert; - Math::Ln(uncert, (aDistance/45) + 1 ); - uncert /= KLbsLogOnePointZeroTwoFive; - if (uncert>KLbsMaxUncert) - { - uncert = KLbsMaxUncert; - } - // round to nearest whole number - TReal uncertRounded; - Math::Round(uncertRounded, uncert, 0); - - return (TInt)uncertRounded; - } - -/** -EncodeAltitude() - -Converts an value for altiutude to an 15 bit binary coded number N - -@param aAltitude - altitude in meters -@return uncertainty altitude value K -*/ -EXPORT_C TInt NetPmUtils::EncodeAltitude(const TReal32& aAltitude) - { - TInt altEncoded = (TInt)aAltitude; - if (altEncoded>KLbsMaxAltitude) - { - altEncoded = KLbsMaxAltitude; - } - - return altEncoded; - }