1 /*
2 * Copyright (C) 2021 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17 #define LOG_TAG "GnssDebugAidl"
18
19 #include "GnssDebug.h"
20 #include <log/log.h>
21 #include <utils/SystemClock.h>
22 #include "Constants.h"
23 #include "Gnss.h"
24 #include "MockLocation.h"
25
26 namespace aidl::android::hardware::gnss {
27
28 using ::android::hardware::gnss::common::kMockTimestamp;
29
getDebugData(DebugData * debugData)30 ndk::ScopedAStatus GnssDebug::getDebugData(DebugData* debugData) {
31 ALOGD("GnssDebug::getDebugData");
32
33 PositionDebug positionDebug = {.valid = true,
34 .latitudeDegrees = 37.4219999,
35 .longitudeDegrees = -122.0840575,
36 .altitudeMeters = 1.60062531,
37 .speedMetersPerSec = 0,
38 .bearingDegrees = 0,
39 .horizontalAccuracyMeters = 5,
40 .verticalAccuracyMeters = 5,
41 .speedAccuracyMetersPerSecond = 1,
42 .bearingAccuracyDegrees = 90,
43 .ageSeconds = 0.99};
44 TimeDebug timeDebug = {.timeEstimateMs = static_cast<int64_t>(
45 kMockTimestamp + ::android::elapsedRealtimeNano() / 1e6),
46 .timeUncertaintyNs = 1000,
47 .frequencyUncertaintyNsPerSec = 800};
48 SatelliteData satelliteData1 = {
49 .svid = 3,
50 .constellation = GnssConstellationType::GPS,
51 .ephemerisType = SatelliteEphemerisType::EPHEMERIS,
52 .ephemerisSource = SatellitePvt::SatelliteEphemerisSource::SERVER_LONG_TERM,
53 .ephemerisHealth = SatelliteEphemerisHealth::GOOD,
54 .ephemerisAgeSeconds = 12,
55 .serverPredictionIsAvailable = true,
56 .serverPredictionAgeSeconds = 30};
57 SatelliteData satelliteData2 = {
58 .svid = 5,
59 .constellation = GnssConstellationType::GPS,
60 .ephemerisType = SatelliteEphemerisType::EPHEMERIS,
61 .ephemerisSource = SatellitePvt::SatelliteEphemerisSource::SERVER_LONG_TERM,
62 .ephemerisHealth = SatelliteEphemerisHealth::GOOD,
63 .ephemerisAgeSeconds = 12,
64 .serverPredictionIsAvailable = true,
65 .serverPredictionAgeSeconds = 30};
66 SatelliteData satelliteData3 = {
67 .svid = 17,
68 .constellation = GnssConstellationType::GPS,
69 .ephemerisType = SatelliteEphemerisType::EPHEMERIS,
70 .ephemerisSource = SatellitePvt::SatelliteEphemerisSource::SERVER_LONG_TERM,
71 .ephemerisHealth = SatelliteEphemerisHealth::GOOD,
72 .ephemerisAgeSeconds = 12,
73 .serverPredictionIsAvailable = true,
74 .serverPredictionAgeSeconds = 30};
75 SatelliteData satelliteData4 = {
76 .svid = 26,
77 .constellation = GnssConstellationType::GPS,
78 .ephemerisType = SatelliteEphemerisType::EPHEMERIS,
79 .ephemerisSource = SatellitePvt::SatelliteEphemerisSource::SERVER_LONG_TERM,
80 .ephemerisHealth = SatelliteEphemerisHealth::GOOD,
81 .ephemerisAgeSeconds = 12,
82 .serverPredictionIsAvailable = true,
83 .serverPredictionAgeSeconds = 30};
84 SatelliteData satelliteData5 = {
85 .svid = 5,
86 .constellation = GnssConstellationType::GLONASS,
87 .ephemerisType = SatelliteEphemerisType::EPHEMERIS,
88 .ephemerisSource = SatellitePvt::SatelliteEphemerisSource::SERVER_LONG_TERM,
89 .ephemerisHealth = SatelliteEphemerisHealth::GOOD,
90 .ephemerisAgeSeconds = 12,
91 .serverPredictionIsAvailable = true,
92 .serverPredictionAgeSeconds = 30};
93 SatelliteData satelliteData6 = {
94 .svid = 17,
95 .constellation = GnssConstellationType::GLONASS,
96 .ephemerisType = SatelliteEphemerisType::EPHEMERIS,
97 .ephemerisSource = SatellitePvt::SatelliteEphemerisSource::SERVER_LONG_TERM,
98 .ephemerisHealth = SatelliteEphemerisHealth::GOOD,
99 .ephemerisAgeSeconds = 12,
100 .serverPredictionIsAvailable = true,
101 .serverPredictionAgeSeconds = 30};
102 SatelliteData satelliteData7 = {
103 .svid = 18,
104 .constellation = GnssConstellationType::GLONASS,
105 .ephemerisType = SatelliteEphemerisType::EPHEMERIS,
106 .ephemerisSource = SatellitePvt::SatelliteEphemerisSource::SERVER_LONG_TERM,
107 .ephemerisHealth = SatelliteEphemerisHealth::GOOD,
108 .ephemerisAgeSeconds = 12,
109 .serverPredictionIsAvailable = true,
110 .serverPredictionAgeSeconds = 30};
111 SatelliteData satelliteData8 = {
112 .svid = 10,
113 .constellation = GnssConstellationType::GLONASS,
114 .ephemerisType = SatelliteEphemerisType::EPHEMERIS,
115 .ephemerisSource = SatellitePvt::SatelliteEphemerisSource::SERVER_LONG_TERM,
116 .ephemerisHealth = SatelliteEphemerisHealth::GOOD,
117 .ephemerisAgeSeconds = 12,
118 .serverPredictionIsAvailable = true,
119 .serverPredictionAgeSeconds = 30};
120 SatelliteData satelliteData9 = {
121 .svid = 3,
122 .constellation = GnssConstellationType::IRNSS,
123 .ephemerisType = SatelliteEphemerisType::EPHEMERIS,
124 .ephemerisSource = SatellitePvt::SatelliteEphemerisSource::SERVER_LONG_TERM,
125 .ephemerisHealth = SatelliteEphemerisHealth::GOOD,
126 .ephemerisAgeSeconds = 12,
127 .serverPredictionIsAvailable = true,
128 .serverPredictionAgeSeconds = 30};
129 std::vector<SatelliteData> satelliteDataArrayDebug = {
130 satelliteData1, satelliteData2, satelliteData3, satelliteData4, satelliteData5,
131 satelliteData6, satelliteData7, satelliteData8, satelliteData9};
132 debugData->position = positionDebug;
133 debugData->time = timeDebug;
134 debugData->satelliteDataArray = satelliteDataArrayDebug;
135
136 return ndk::ScopedAStatus::ok();
137 }
138
139 } // namespace aidl::android::hardware::gnss
140