diff options
author | Linux Build Service Account <lnxbuild@localhost> | 2018-09-03 02:03:11 -0700 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2018-09-03 02:03:11 -0700 |
commit | 397570348de9a89dc6049eb3956bf0c51ace95da (patch) | |
tree | 9d95410649008112fbfbda98e144388fc3f6246d /gnss | |
parent | 4c35d8ab492620c92a90fccdca4b681512bd00ab (diff) | |
parent | 12ab7e152fad5490fff256f95d888047d684139f (diff) | |
download | gps-397570348de9a89dc6049eb3956bf0c51ace95da.tar.gz |
Merge "Accept enabled list for constellation control"
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 57c1978..99aefdc 100644 --- a/gnss/GnssAdapter.cpp +++ b/gnss/GnssAdapter.cpp @@ -1501,17 +1501,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) |