-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathLBSSatelliteExtended.cpp
70 lines (62 loc) · 1.68 KB
/
LBSSatelliteExtended.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
/*
============================================================================
Name : LBSSatelliteExtended.cpp
Author : artem78
Version : 1.0
Copyright :
Description : Extended satellite info class
============================================================================
*/
#include "LBSSatelliteExtended.h"
#include <e32math.h>
#include "Logger.h"
TReal TPositionSatelliteInfoExtended::PositionDoP() const
{
TReal nan = 0.0 / 0.0; // NaN ToDo: Not very good
TReal tmp1, tmp2;
TInt r = Math::Pow(tmp1, HorizontalDoP(), 2);
if (r != KErrNone)
return nan;
r = Math::Pow(tmp2, VerticalDoP(), 2);
if (r != KErrNone)
return nan;
TReal pdop;
r = Math::Sqrt(pdop, tmp1 + tmp2);
if (r != KErrNone)
return nan;
return pdop;
}
TReal TPositionSatelliteInfoExtended::GeometricDoP() const
{
TReal nan = 0.0 / 0.0; // NaN ToDo: Not very good
TReal tmp1, tmp2;
TInt r = Math::Pow(tmp1, PositionDoP(), 2);
if (r != KErrNone)
return nan;
r = Math::Pow(tmp2, TimeDoP(), 2);
if (r != KErrNone)
return nan;
TReal gdop;
r = Math::Sqrt(gdop, tmp1 + tmp2);
if (r != KErrNone)
return nan;
return gdop;
}
TInt TPositionSatelliteInfoExtended::NumOfVisibleSatellites(TInt aMinSignalStrength) const
{
TInt counter = 0;
TSatelliteData satData;
for (TInt i = 0; i < NumSatellitesInView(); i++)
{
if (GetSatelliteData(i, satData) == KErrNone)
{
DEBUG(_L("Sat #%d signal = %d"), satData.SatelliteId(), satData.SignalStrength());
if (satData.SignalStrength() >= aMinSignalStrength)
{
counter++;
}
}
}
DEBUG(_L("Num = %d/%d"), counter, NumSatellitesInView());
return counter;
}