diff options
author | Saurabh Srivastava <ssrivast@codeaurora.org> | 2018-08-25 00:42:54 +0530 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2018-08-29 01:49:07 -0700 |
commit | 12ab7e152fad5490fff256f95d888047d684139f (patch) | |
tree | a38f36d5ded3361d6c9d2a2959c6197fa7b38c9e /gnss | |
parent | 033a0fa1c6cabd0841bbbd0c762f4b4dd4a5753f (diff) | |
download | gps-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.cpp | 20 | ||||
-rw-r--r-- | gnss/GnssAdapter.h | 2 |
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) |