summaryrefslogtreecommitdiff
path: root/gnss
diff options
context:
space:
mode:
authorSaurabh Srivastava <ssrivast@codeaurora.org>2018-08-25 00:42:54 +0530
committerGerrit - the friendly Code Review server <code-review@localhost>2018-08-29 01:49:07 -0700
commit12ab7e152fad5490fff256f95d888047d684139f (patch)
treea38f36d5ded3361d6c9d2a2959c6197fa7b38c9e /gnss
parent033a0fa1c6cabd0841bbbd0c762f4b4dd4a5753f (diff)
downloadgps-12ab7e152fad5490fff256f95d888047d684139f.tar.gz
Accept enabled list for constellation control
Accept both enabled and disabled constellation lists for IZAT Constellation Control API CRs-Fixed: 2302898 Change-Id: Ia271efef619fc91a1457d1af7aeebcb8a8a0686d
Diffstat (limited to 'gnss')
-rw-r--r--gnss/GnssAdapter.cpp20
-rw-r--r--gnss/GnssAdapter.h2
2 files changed, 17 insertions, 5 deletions
diff --git a/gnss/GnssAdapter.cpp b/gnss/GnssAdapter.cpp
index 8feedda..223a627 100644
--- a/gnss/GnssAdapter.cpp
+++ b/gnss/GnssAdapter.cpp
@@ -1504,17 +1504,29 @@ GnssAdapter::gnssUpdateSvTypeConfigCommand(GnssSvTypeConfig config)
void
GnssAdapter::gnssSvTypeConfigUpdate(const GnssSvTypeConfig& config)
{
+ // Gather bits removed from enabled mask
+ GnssSvTypesMask enabledRemoved = mGnssSvTypeConfig.enabledSvTypesMask &
+ (mGnssSvTypeConfig.enabledSvTypesMask ^ config.enabledSvTypesMask);
+ // Send reset if any constellation is removed from the enabled list
+ bool sendReset = (enabledRemoved != 0);
+ // Save new config and update
gnssSetSvTypeConfig(config);
- gnssSvTypeConfigUpdate();
+ gnssSvTypeConfigUpdate(sendReset);
}
void
-GnssAdapter::gnssSvTypeConfigUpdate()
+GnssAdapter::gnssSvTypeConfigUpdate(bool sendReset)
{
- LOC_LOGd("constellations blacklisted 0x%" PRIx64 ", enabled 0x%" PRIx64,
- mGnssSvTypeConfig.blacklistedSvTypesMask, mGnssSvTypeConfig.enabledSvTypesMask);
+ LOC_LOGd("constellations blacklisted 0x%" PRIx64 ", enabled 0x%" PRIx64 ", sendReset %d",
+ mGnssSvTypeConfig.blacklistedSvTypesMask, mGnssSvTypeConfig.enabledSvTypesMask,
+ sendReset);
if (mGnssSvTypeConfig.size == sizeof(mGnssSvTypeConfig)) {
+
+ if (sendReset) {
+ mLocApi->resetConstellationControl();
+ }
+
GnssSvIdConfig blacklistConfig = {};
// Revert to previously blacklisted SVs for each enabled constellation
blacklistConfig = mGnssSvIdConfig;
diff --git a/gnss/GnssAdapter.h b/gnss/GnssAdapter.h
index bf757b4..3f2afaa 100644
--- a/gnss/GnssAdapter.h
+++ b/gnss/GnssAdapter.h
@@ -279,7 +279,7 @@ public:
void gnssSvIdConfigUpdate(const std::vector<GnssSvIdSource>& blacklistedSvIds);
void gnssSvIdConfigUpdate();
void gnssSvTypeConfigUpdate(const GnssSvTypeConfig& config);
- void gnssSvTypeConfigUpdate();
+ void gnssSvTypeConfigUpdate(bool sendReset = false);
inline void gnssSetSvTypeConfig(const GnssSvTypeConfig& config)
{ mGnssSvTypeConfig = config; }
inline void gnssSetSvTypeConfigCallback(GnssSvTypeConfigCallback callback)