xref: /aosp_15_r20/hardware/interfaces/gnss/1.1/default/GnssConfiguration.cpp (revision 4d7e907c777eeecc4c5bd7cf640a754fac206ff7)
1*4d7e907cSAndroid Build Coastguard Worker #define LOG_TAG "GnssConfiguration"
2*4d7e907cSAndroid Build Coastguard Worker 
3*4d7e907cSAndroid Build Coastguard Worker #include "GnssConfiguration.h"
4*4d7e907cSAndroid Build Coastguard Worker #include <log/log.h>
5*4d7e907cSAndroid Build Coastguard Worker 
6*4d7e907cSAndroid Build Coastguard Worker namespace android {
7*4d7e907cSAndroid Build Coastguard Worker namespace hardware {
8*4d7e907cSAndroid Build Coastguard Worker namespace gnss {
9*4d7e907cSAndroid Build Coastguard Worker namespace V1_1 {
10*4d7e907cSAndroid Build Coastguard Worker namespace implementation {
11*4d7e907cSAndroid Build Coastguard Worker 
12*4d7e907cSAndroid Build Coastguard Worker // Methods from ::android::hardware::gnss::V1_0::IGnssConfiguration follow.
setSuplEs(bool)13*4d7e907cSAndroid Build Coastguard Worker Return<bool> GnssConfiguration::setSuplEs(bool) {
14*4d7e907cSAndroid Build Coastguard Worker     // TODO implement
15*4d7e907cSAndroid Build Coastguard Worker     return bool{};
16*4d7e907cSAndroid Build Coastguard Worker }
17*4d7e907cSAndroid Build Coastguard Worker 
setSuplVersion(uint32_t)18*4d7e907cSAndroid Build Coastguard Worker Return<bool> GnssConfiguration::setSuplVersion(uint32_t) {
19*4d7e907cSAndroid Build Coastguard Worker     // TODO implement
20*4d7e907cSAndroid Build Coastguard Worker     return bool{};
21*4d7e907cSAndroid Build Coastguard Worker }
22*4d7e907cSAndroid Build Coastguard Worker 
setSuplMode(hidl_bitfield<SuplMode>)23*4d7e907cSAndroid Build Coastguard Worker Return<bool> GnssConfiguration::setSuplMode(hidl_bitfield<SuplMode>) {
24*4d7e907cSAndroid Build Coastguard Worker     // TODO implement
25*4d7e907cSAndroid Build Coastguard Worker     return bool{};
26*4d7e907cSAndroid Build Coastguard Worker }
27*4d7e907cSAndroid Build Coastguard Worker 
setGpsLock(hidl_bitfield<GpsLock>)28*4d7e907cSAndroid Build Coastguard Worker Return<bool> GnssConfiguration::setGpsLock(hidl_bitfield<GpsLock>) {
29*4d7e907cSAndroid Build Coastguard Worker     // TODO implement
30*4d7e907cSAndroid Build Coastguard Worker     return bool{};
31*4d7e907cSAndroid Build Coastguard Worker }
32*4d7e907cSAndroid Build Coastguard Worker 
setLppProfile(hidl_bitfield<LppProfile>)33*4d7e907cSAndroid Build Coastguard Worker Return<bool> GnssConfiguration::setLppProfile(hidl_bitfield<LppProfile>) {
34*4d7e907cSAndroid Build Coastguard Worker     // TODO implement
35*4d7e907cSAndroid Build Coastguard Worker     return bool{};
36*4d7e907cSAndroid Build Coastguard Worker }
37*4d7e907cSAndroid Build Coastguard Worker 
setGlonassPositioningProtocol(hidl_bitfield<GlonassPosProtocol>)38*4d7e907cSAndroid Build Coastguard Worker Return<bool> GnssConfiguration::setGlonassPositioningProtocol(hidl_bitfield<GlonassPosProtocol>) {
39*4d7e907cSAndroid Build Coastguard Worker     // TODO implement
40*4d7e907cSAndroid Build Coastguard Worker     return bool{};
41*4d7e907cSAndroid Build Coastguard Worker }
42*4d7e907cSAndroid Build Coastguard Worker 
setEmergencySuplPdn(bool)43*4d7e907cSAndroid Build Coastguard Worker Return<bool> GnssConfiguration::setEmergencySuplPdn(bool) {
44*4d7e907cSAndroid Build Coastguard Worker     // TODO implement
45*4d7e907cSAndroid Build Coastguard Worker     return bool{};
46*4d7e907cSAndroid Build Coastguard Worker }
47*4d7e907cSAndroid Build Coastguard Worker 
48*4d7e907cSAndroid Build Coastguard Worker // Methods from ::android::hardware::gnss::V1_1::IGnssConfiguration follow.
setBlacklist(const hidl_vec<BlacklistedSource> & sourceList)49*4d7e907cSAndroid Build Coastguard Worker Return<bool> GnssConfiguration::setBlacklist(const hidl_vec<BlacklistedSource>& sourceList) {
50*4d7e907cSAndroid Build Coastguard Worker     std::unique_lock<std::recursive_mutex> lock(mMutex);
51*4d7e907cSAndroid Build Coastguard Worker     mBlacklistedConstellationSet.clear();
52*4d7e907cSAndroid Build Coastguard Worker     mBlacklistedSourceSet.clear();
53*4d7e907cSAndroid Build Coastguard Worker     for (auto source : sourceList) {
54*4d7e907cSAndroid Build Coastguard Worker         if (source.svid == 0) {
55*4d7e907cSAndroid Build Coastguard Worker             // Wildcard blacklist, i.e., blacklist entire constellation.
56*4d7e907cSAndroid Build Coastguard Worker             mBlacklistedConstellationSet.insert(source.constellation);
57*4d7e907cSAndroid Build Coastguard Worker         } else {
58*4d7e907cSAndroid Build Coastguard Worker             mBlacklistedSourceSet.insert(source);
59*4d7e907cSAndroid Build Coastguard Worker         }
60*4d7e907cSAndroid Build Coastguard Worker     }
61*4d7e907cSAndroid Build Coastguard Worker     return true;
62*4d7e907cSAndroid Build Coastguard Worker }
63*4d7e907cSAndroid Build Coastguard Worker 
isBlacklisted(const GnssSvInfo & gnssSvInfo) const64*4d7e907cSAndroid Build Coastguard Worker Return<bool> GnssConfiguration::isBlacklisted(const GnssSvInfo& gnssSvInfo) const {
65*4d7e907cSAndroid Build Coastguard Worker     std::unique_lock<std::recursive_mutex> lock(mMutex);
66*4d7e907cSAndroid Build Coastguard Worker     if (mBlacklistedConstellationSet.find(gnssSvInfo.constellation) !=
67*4d7e907cSAndroid Build Coastguard Worker         mBlacklistedConstellationSet.end()) {
68*4d7e907cSAndroid Build Coastguard Worker         return true;
69*4d7e907cSAndroid Build Coastguard Worker     }
70*4d7e907cSAndroid Build Coastguard Worker     BlacklistedSource source = {.constellation = gnssSvInfo.constellation, .svid = gnssSvInfo.svid};
71*4d7e907cSAndroid Build Coastguard Worker     return (mBlacklistedSourceSet.find(source) != mBlacklistedSourceSet.end());
72*4d7e907cSAndroid Build Coastguard Worker }
73*4d7e907cSAndroid Build Coastguard Worker 
getMutex() const74*4d7e907cSAndroid Build Coastguard Worker std::recursive_mutex& GnssConfiguration::getMutex() const {
75*4d7e907cSAndroid Build Coastguard Worker     return mMutex;
76*4d7e907cSAndroid Build Coastguard Worker }
77*4d7e907cSAndroid Build Coastguard Worker 
78*4d7e907cSAndroid Build Coastguard Worker // Methods from ::android::hidl::base::V1_0::IBase follow.
79*4d7e907cSAndroid Build Coastguard Worker 
80*4d7e907cSAndroid Build Coastguard Worker }  // namespace implementation
81*4d7e907cSAndroid Build Coastguard Worker }  // namespace V1_1
82*4d7e907cSAndroid Build Coastguard Worker }  // namespace gnss
83*4d7e907cSAndroid Build Coastguard Worker }  // namespace hardware
84*4d7e907cSAndroid Build Coastguard Worker }  // namespace android
85