Disable set debug NMEA bit when unsupported

Avoid setting debug NMEA bit of QMI_LOC_SET_
NMEA_TYPES_REQ message when the feature is
unsupported.

Change-Id: I999654f627eac68042597ee51aff81e8588bfa9b
CRs-Fixed: 2072961
This commit is contained in:
Katz Yamada 2017-07-07 15:33:52 -07:00
parent f44aa79ca9
commit 4971373d94
3 changed files with 16 additions and 9 deletions

View file

@ -61,6 +61,7 @@ GnssAdapter::GnssAdapter() :
mGnssSvIdUsedInPosAvail(false), mGnssSvIdUsedInPosAvail(false),
mControlCallbacks(), mControlCallbacks(),
mPowerVoteId(0), mPowerVoteId(0),
mNmeaMask(0),
mNiData(), mNiData(),
mAgpsManager(), mAgpsManager(),
mAgpsCbInfo() mAgpsCbInfo()
@ -520,11 +521,15 @@ GnssAdapter::setConfigCommand()
// set nmea mask type // set nmea mask type
uint32_t mask = 0; uint32_t mask = 0;
if (NMEA_PROVIDER_MP == ContextBase::mGps_conf.NMEA_PROVIDER) { if (NMEA_PROVIDER_MP == ContextBase::mGps_conf.NMEA_PROVIDER) {
mask = LOC_NMEA_ALL_SUPPORTED_MASK; mask |= LOC_NMEA_ALL_GENERAL_SUPPORTED_MASK;
} else {
mask = LOC_NMEA_MASK_DEBUG_V02;
} }
mApi.setNMEATypes(mask); if (mApi.isFeatureSupported(LOC_SUPPORTED_FEATURE_DEBUG_NMEA_V02)) {
mask |= LOC_NMEA_MASK_DEBUG_V02;
}
if (mask != 0) {
mApi.setNMEATypes(mask);
}
mAdapter.mNmeaMask= mask;
mApi.setXtraVersionCheck(ContextBase::mGps_conf.XTRA_VERSION_CHECK); mApi.setXtraVersionCheck(ContextBase::mGps_conf.XTRA_VERSION_CHECK);
if (ContextBase::mSap_conf.GYRO_BIAS_RANDOM_WALK_VALID || if (ContextBase::mSap_conf.GYRO_BIAS_RANDOM_WALK_VALID ||
@ -1011,7 +1016,7 @@ GnssAdapter::updateClientsEventMask()
if (it->second.gnssSvCb != nullptr) { if (it->second.gnssSvCb != nullptr) {
mask |= LOC_API_ADAPTER_BIT_SATELLITE_REPORT; mask |= LOC_API_ADAPTER_BIT_SATELLITE_REPORT;
} }
if (it->second.gnssNmeaCb != nullptr) { if ((it->second.gnssNmeaCb != nullptr) && (mNmeaMask)) {
mask |= LOC_API_ADAPTER_BIT_NMEA_1HZ_REPORT; mask |= LOC_API_ADAPTER_BIT_NMEA_1HZ_REPORT;
} }
if (it->second.gnssMeasurementsCb != nullptr) { if (it->second.gnssMeasurementsCb != nullptr) {

View file

@ -92,6 +92,7 @@ class GnssAdapter : public LocAdapterBase {
/* ==== CONTROL ======================================================================== */ /* ==== CONTROL ======================================================================== */
LocationControlCallbacks mControlCallbacks; LocationControlCallbacks mControlCallbacks;
uint32_t mPowerVoteId; uint32_t mPowerVoteId;
uint32_t mNmeaMask;
/* ==== NI ============================================================================= */ /* ==== NI ============================================================================= */
NiData mNiData; NiData mNiData;

View file

@ -114,7 +114,8 @@ enum loc_registration_mask_status {
typedef enum { typedef enum {
LOC_SUPPORTED_FEATURE_ODCPI_2_V02 = 0, /**< Support ODCPI version 2 feature */ LOC_SUPPORTED_FEATURE_ODCPI_2_V02 = 0, /**< Support ODCPI version 2 feature */
LOC_SUPPORTED_FEATURE_WIFI_AP_DATA_INJECT_2_V02 /**< Support Wifi AP data inject version 2 feature */ LOC_SUPPORTED_FEATURE_WIFI_AP_DATA_INJECT_2_V02, /**< Support Wifi AP data inject version 2 feature */
LOC_SUPPORTED_FEATURE_DEBUG_NMEA_V02 /**< Support debug NMEA feature */
} loc_supported_feature_enum; } loc_supported_feature_enum;
typedef struct { typedef struct {
@ -427,13 +428,13 @@ typedef uint32_t NmeaSentenceTypesMask;
#define LOC_NMEA_MASK_PQGSV_V02 ((NmeaSentenceTypesMask)0x00010000) /**< Enable PQGSV type */ #define LOC_NMEA_MASK_PQGSV_V02 ((NmeaSentenceTypesMask)0x00010000) /**< Enable PQGSV type */
#define LOC_NMEA_MASK_DEBUG_V02 ((NmeaSentenceTypesMask)0x00020000) /**< Enable DEBUG type */ #define LOC_NMEA_MASK_DEBUG_V02 ((NmeaSentenceTypesMask)0x00020000) /**< Enable DEBUG type */
#define LOC_NMEA_ALL_SUPPORTED_MASK (LOC_NMEA_MASK_GGA_V02 | LOC_NMEA_MASK_RMC_V02 | \ // all bitmasks of general supported NMEA sentenses - debug is not part of this
#define LOC_NMEA_ALL_GENERAL_SUPPORTED_MASK (LOC_NMEA_MASK_GGA_V02 | LOC_NMEA_MASK_RMC_V02 | \
LOC_NMEA_MASK_GSV_V02 | LOC_NMEA_MASK_GSA_V02 | LOC_NMEA_MASK_VTG_V02 | \ LOC_NMEA_MASK_GSV_V02 | LOC_NMEA_MASK_GSA_V02 | LOC_NMEA_MASK_VTG_V02 | \
LOC_NMEA_MASK_PQXFI_V02 | LOC_NMEA_MASK_PSTIS_V02 | LOC_NMEA_MASK_GLGSV_V02 | \ LOC_NMEA_MASK_PQXFI_V02 | LOC_NMEA_MASK_PSTIS_V02 | LOC_NMEA_MASK_GLGSV_V02 | \
LOC_NMEA_MASK_GNGSA_V02 | LOC_NMEA_MASK_GNGNS_V02 | LOC_NMEA_MASK_GARMC_V02 | \ LOC_NMEA_MASK_GNGSA_V02 | LOC_NMEA_MASK_GNGNS_V02 | LOC_NMEA_MASK_GARMC_V02 | \
LOC_NMEA_MASK_GAGSV_V02 | LOC_NMEA_MASK_GAGSA_V02 | LOC_NMEA_MASK_GAVTG_V02 | \ LOC_NMEA_MASK_GAGSV_V02 | LOC_NMEA_MASK_GAGSA_V02 | LOC_NMEA_MASK_GAVTG_V02 | \
LOC_NMEA_MASK_GAGGA_V02 | LOC_NMEA_MASK_PQGSA_V02 | LOC_NMEA_MASK_PQGSV_V02 | \ LOC_NMEA_MASK_GAGGA_V02 | LOC_NMEA_MASK_PQGSA_V02 | LOC_NMEA_MASK_PQGSV_V02)
LOC_NMEA_MASK_DEBUG_V02 )
typedef enum { typedef enum {
LOC_ENG_IF_REQUEST_SENDER_ID_QUIPC = 0, LOC_ENG_IF_REQUEST_SENDER_ID_QUIPC = 0,