From 12ab7e152fad5490fff256f95d888047d684139f Mon Sep 17 00:00:00 2001 From: Saurabh Srivastava Date: Sat, 25 Aug 2018 00:42:54 +0530 Subject: [PATCH] Accept enabled list for constellation control Accept both enabled and disabled constellation lists for IZAT Constellation Control API CRs-Fixed: 2302898 Change-Id: Ia271efef619fc91a1457d1af7aeebcb8a8a0686d --- gnss/GnssAdapter.cpp | 20 ++++++++++++++++---- gnss/GnssAdapter.h | 2 +- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/gnss/GnssAdapter.cpp b/gnss/GnssAdapter.cpp index 8feedda9..223a6273 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 bf757b47..3f2afaab 100644 --- a/gnss/GnssAdapter.h +++ b/gnss/GnssAdapter.h @@ -279,7 +279,7 @@ public: void gnssSvIdConfigUpdate(const std::vector& 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)