Add GNSS Deployment Support.
The GNSS Deployment is used to configure GNSS Hardware using gps.conf file CRs-Fixed: 2480150 Change-Id: Ia09d3165de0c2f80f23bef8c0431095b25d16ea2
This commit is contained in:
parent
93db35b825
commit
42e8ab0190
3 changed files with 32 additions and 5 deletions
|
@ -40,6 +40,10 @@
|
||||||
|
|
||||||
namespace loc_core {
|
namespace loc_core {
|
||||||
|
|
||||||
|
#define SLL_LOC_API_LIB_NAME "libsynergy_loc_api.so"
|
||||||
|
#define LOC_APIV2_0_LIB_NAME "libloc_api_v02.so"
|
||||||
|
#define IS_SS5_HW_ENABLED 1
|
||||||
|
|
||||||
loc_gps_cfg_s_type ContextBase::mGps_conf {};
|
loc_gps_cfg_s_type ContextBase::mGps_conf {};
|
||||||
loc_sap_cfg_s_type ContextBase::mSap_conf {};
|
loc_sap_cfg_s_type ContextBase::mSap_conf {};
|
||||||
bool ContextBase::sIsEngineCapabilitiesKnown = false;
|
bool ContextBase::sIsEngineCapabilitiesKnown = false;
|
||||||
|
@ -80,6 +84,7 @@ const loc_param_s_type ContextBase::mGps_conf_table[] =
|
||||||
{"POSITION_ASSISTED_CLOCK_ESTIMATOR_ENABLED", &mGps_conf.POSITION_ASSISTED_CLOCK_ESTIMATOR_ENABLED, NULL, 'n'},
|
{"POSITION_ASSISTED_CLOCK_ESTIMATOR_ENABLED", &mGps_conf.POSITION_ASSISTED_CLOCK_ESTIMATOR_ENABLED, NULL, 'n'},
|
||||||
{"PROXY_APP_PACKAGE_NAME", &mGps_conf.PROXY_APP_PACKAGE_NAME, NULL, 's' },
|
{"PROXY_APP_PACKAGE_NAME", &mGps_conf.PROXY_APP_PACKAGE_NAME, NULL, 's' },
|
||||||
{"CP_MTLR_ES", &mGps_conf.CP_MTLR_ES, NULL, 'n' },
|
{"CP_MTLR_ES", &mGps_conf.CP_MTLR_ES, NULL, 'n' },
|
||||||
|
{"GNSS_DEPLOYMENT", &mGps_conf.GNSS_DEPLOYMENT, NULL, 'n'},
|
||||||
};
|
};
|
||||||
|
|
||||||
const loc_param_s_type ContextBase::mSap_conf_table[] =
|
const loc_param_s_type ContextBase::mSap_conf_table[] =
|
||||||
|
@ -171,10 +176,16 @@ void ContextBase::readConfig()
|
||||||
mGps_conf.CONSTRAINED_TIME_UNCERTAINTY_ENERGY_BUDGET = 0;
|
mGps_conf.CONSTRAINED_TIME_UNCERTAINTY_ENERGY_BUDGET = 0;
|
||||||
/* default configuration value of position assisted clock estimator mode */
|
/* default configuration value of position assisted clock estimator mode */
|
||||||
mGps_conf.POSITION_ASSISTED_CLOCK_ESTIMATOR_ENABLED = 0;
|
mGps_conf.POSITION_ASSISTED_CLOCK_ESTIMATOR_ENABLED = 0;
|
||||||
|
/* default configuration QCOM GNSS H/W */
|
||||||
|
mGps_conf.GNSS_DEPLOYMENT = 0;
|
||||||
|
|
||||||
UTIL_READ_CONF(LOC_PATH_GPS_CONF, mGps_conf_table);
|
UTIL_READ_CONF(LOC_PATH_GPS_CONF, mGps_conf_table);
|
||||||
UTIL_READ_CONF(LOC_PATH_SAP_CONF, mSap_conf_table);
|
UTIL_READ_CONF(LOC_PATH_SAP_CONF, mSap_conf_table);
|
||||||
|
|
||||||
|
LOC_LOGI("%s] GNSS Deployment: %s", __FUNCTION__,
|
||||||
|
((mGps_conf.GNSS_DEPLOYMENT == 1) ? "SS5" :
|
||||||
|
((mGps_conf.GNSS_DEPLOYMENT == 2) ? "QFUSION" : "QGNSS")));
|
||||||
|
|
||||||
switch (getTargetGnssType(loc_get_target())) {
|
switch (getTargetGnssType(loc_get_target())) {
|
||||||
case GNSS_GSS:
|
case GNSS_GSS:
|
||||||
case GNSS_AUTO:
|
case GNSS_AUTO:
|
||||||
|
@ -231,19 +242,24 @@ LBSProxyBase* ContextBase::getLBSProxy(const char* libName)
|
||||||
LocApiBase* ContextBase::createLocApi(LOC_API_ADAPTER_EVENT_MASK_T exMask)
|
LocApiBase* ContextBase::createLocApi(LOC_API_ADAPTER_EVENT_MASK_T exMask)
|
||||||
{
|
{
|
||||||
LocApiBase* locApi = NULL;
|
LocApiBase* locApi = NULL;
|
||||||
|
const char* libname = LOC_APIV2_0_LIB_NAME;
|
||||||
|
|
||||||
// Check the target
|
// Check the target
|
||||||
if (TARGET_NO_GNSS != loc_get_target()){
|
if (TARGET_NO_GNSS != loc_get_target()){
|
||||||
|
|
||||||
if (NULL == (locApi = mLBSProxy->getLocApi(exMask, this))) {
|
if (NULL == (locApi = mLBSProxy->getLocApi(exMask, this))) {
|
||||||
void *handle = NULL;
|
void *handle = NULL;
|
||||||
//try to see if LocApiV02 is present
|
|
||||||
if ((handle = dlopen("libloc_api_v02.so", RTLD_NOW)) != NULL) {
|
if (IS_SS5_HW_ENABLED == mGps_conf.GNSS_DEPLOYMENT) {
|
||||||
LOC_LOGD("%s:%d]: libloc_api_v02.so is present", __func__, __LINE__);
|
libname = SLL_LOC_API_LIB_NAME;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((handle = dlopen(libname, RTLD_NOW)) != NULL) {
|
||||||
|
LOC_LOGD("%s:%d]: %s is present", __func__, __LINE__, libname);
|
||||||
getLocApi_t* getter = (getLocApi_t*) dlsym(handle, "getLocApi");
|
getLocApi_t* getter = (getLocApi_t*) dlsym(handle, "getLocApi");
|
||||||
if (getter != NULL) {
|
if (getter != NULL) {
|
||||||
LOC_LOGD("%s:%d]: getter is not NULL for LocApiV02", __func__,
|
LOC_LOGD("%s:%d]: getter is not NULL of %s", __func__,
|
||||||
__LINE__);
|
__LINE__, libname);
|
||||||
locApi = (*getter)(exMask, this);
|
locApi = (*getter)(exMask, this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -73,6 +73,7 @@ typedef struct loc_gps_cfg_s
|
||||||
uint32_t POSITION_ASSISTED_CLOCK_ESTIMATOR_ENABLED;
|
uint32_t POSITION_ASSISTED_CLOCK_ESTIMATOR_ENABLED;
|
||||||
char PROXY_APP_PACKAGE_NAME[LOC_MAX_PARAM_STRING];
|
char PROXY_APP_PACKAGE_NAME[LOC_MAX_PARAM_STRING];
|
||||||
uint32_t CP_MTLR_ES;
|
uint32_t CP_MTLR_ES;
|
||||||
|
uint32_t GNSS_DEPLOYMENT;
|
||||||
} loc_gps_cfg_s_type;
|
} loc_gps_cfg_s_type;
|
||||||
|
|
||||||
/* NOTE: the implementaiton of the parser casts number
|
/* NOTE: the implementaiton of the parser casts number
|
||||||
|
|
10
etc/gps.conf
10
etc/gps.conf
|
@ -287,3 +287,13 @@ PROXY_APP_PACKAGE_NAME = com.google.android.carrierlocation
|
||||||
#####################################
|
#####################################
|
||||||
# CP MTLR ES, 1=enable, 0=disable
|
# CP MTLR ES, 1=enable, 0=disable
|
||||||
CP_MTLR_ES=0
|
CP_MTLR_ES=0
|
||||||
|
|
||||||
|
##################################################
|
||||||
|
# GNSS_DEPLOYMENT
|
||||||
|
##################################################
|
||||||
|
# 0 : Enable QCOM GNSS (default)
|
||||||
|
# 1 : Enable QCSR SS5
|
||||||
|
# This setting use to select between QCOM GNSS
|
||||||
|
# and QCSR SS5 hardware receiver.
|
||||||
|
# By default QCOM GNSS receiver is enabled.
|
||||||
|
# GNSS_DEPLOYMENT = 0
|
||||||
|
|
Loading…
Reference in a new issue