Merge "Move local gps/sap configuration to Context" into location.lnx.2.0-dev
This commit is contained in:
commit
e090bfde99
6 changed files with 92 additions and 88 deletions
|
@ -40,6 +40,27 @@
|
||||||
|
|
||||||
namespace loc_core {
|
namespace loc_core {
|
||||||
|
|
||||||
|
loc_gps_cfg_s_type ContextBase::mGps_conf {0};
|
||||||
|
loc_sap_cfg_s_type ContextBase::mSap_conf {0};
|
||||||
|
|
||||||
|
uint32_t ContextBase::getCarrierCapabilities() {
|
||||||
|
#define carrierMSA (uint32_t)0x2
|
||||||
|
#define carrierMSB (uint32_t)0x1
|
||||||
|
#define gpsConfMSA (uint32_t)0x4
|
||||||
|
#define gpsConfMSB (uint32_t)0x2
|
||||||
|
uint32_t capabilities = mGps_conf.CAPABILITIES;
|
||||||
|
if ((mGps_conf.SUPL_MODE & carrierMSA) != carrierMSA) {
|
||||||
|
capabilities &= ~gpsConfMSA;
|
||||||
|
}
|
||||||
|
if ((mGps_conf.SUPL_MODE & carrierMSB) != carrierMSB) {
|
||||||
|
capabilities &= ~gpsConfMSB;
|
||||||
|
}
|
||||||
|
|
||||||
|
LOC_LOGV("getCarrierCapabilities: CAPABILITIES %x, SUPL_MODE %x, carrier capabilities %x",
|
||||||
|
mGps_conf.CAPABILITIES, mGps_conf.SUPL_MODE, capabilities);
|
||||||
|
return capabilities;
|
||||||
|
}
|
||||||
|
|
||||||
LBSProxyBase* ContextBase::getLBSProxy(const char* libName)
|
LBSProxyBase* ContextBase::getLBSProxy(const char* libName)
|
||||||
{
|
{
|
||||||
LBSProxyBase* proxy = NULL;
|
LBSProxyBase* proxy = NULL;
|
||||||
|
|
|
@ -35,6 +35,64 @@
|
||||||
#include <LocApiBase.h>
|
#include <LocApiBase.h>
|
||||||
#include <LBSProxyBase.h>
|
#include <LBSProxyBase.h>
|
||||||
|
|
||||||
|
#define MAX_XTRA_SERVER_URL_LENGTH 256
|
||||||
|
|
||||||
|
/* GPS.conf support */
|
||||||
|
/* NOTE: the implementaiton of the parser casts number
|
||||||
|
fields to 32 bit. To ensure all 'n' fields working,
|
||||||
|
they must all be 32 bit fields. */
|
||||||
|
typedef struct loc_gps_cfg_s
|
||||||
|
{
|
||||||
|
uint32_t INTERMEDIATE_POS;
|
||||||
|
uint32_t ACCURACY_THRES;
|
||||||
|
uint32_t SUPL_VER;
|
||||||
|
uint32_t SUPL_MODE;
|
||||||
|
uint32_t CAPABILITIES;
|
||||||
|
uint32_t LPP_PROFILE;
|
||||||
|
uint32_t XTRA_VERSION_CHECK;
|
||||||
|
char XTRA_SERVER_1[MAX_XTRA_SERVER_URL_LENGTH];
|
||||||
|
char XTRA_SERVER_2[MAX_XTRA_SERVER_URL_LENGTH];
|
||||||
|
char XTRA_SERVER_3[MAX_XTRA_SERVER_URL_LENGTH];
|
||||||
|
uint32_t USE_EMERGENCY_PDN_FOR_EMERGENCY_SUPL;
|
||||||
|
uint32_t NMEA_PROVIDER;
|
||||||
|
uint32_t GPS_LOCK;
|
||||||
|
uint32_t A_GLONASS_POS_PROTOCOL_SELECT;
|
||||||
|
uint32_t AGPS_CERT_WRITABLE_MASK;
|
||||||
|
} loc_gps_cfg_s_type;
|
||||||
|
|
||||||
|
/* NOTE: the implementaiton of the parser casts number
|
||||||
|
fields to 32 bit. To ensure all 'n' fields working,
|
||||||
|
they must all be 32 bit fields. */
|
||||||
|
/* Meanwhile, *_valid fields are 8 bit fields, and 'f'
|
||||||
|
fields are double. Rigid as they are, it is the
|
||||||
|
the status quo, until the parsing mechanism is
|
||||||
|
change, that is. */
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
uint8_t GYRO_BIAS_RANDOM_WALK_VALID;
|
||||||
|
double GYRO_BIAS_RANDOM_WALK;
|
||||||
|
uint32_t SENSOR_ACCEL_BATCHES_PER_SEC;
|
||||||
|
uint32_t SENSOR_ACCEL_SAMPLES_PER_BATCH;
|
||||||
|
uint32_t SENSOR_GYRO_BATCHES_PER_SEC;
|
||||||
|
uint32_t SENSOR_GYRO_SAMPLES_PER_BATCH;
|
||||||
|
uint32_t SENSOR_ACCEL_BATCHES_PER_SEC_HIGH;
|
||||||
|
uint32_t SENSOR_ACCEL_SAMPLES_PER_BATCH_HIGH;
|
||||||
|
uint32_t SENSOR_GYRO_BATCHES_PER_SEC_HIGH;
|
||||||
|
uint32_t SENSOR_GYRO_SAMPLES_PER_BATCH_HIGH;
|
||||||
|
uint32_t SENSOR_CONTROL_MODE;
|
||||||
|
uint32_t SENSOR_USAGE;
|
||||||
|
uint32_t SENSOR_ALGORITHM_CONFIG_MASK;
|
||||||
|
uint8_t ACCEL_RANDOM_WALK_SPECTRAL_DENSITY_VALID;
|
||||||
|
double ACCEL_RANDOM_WALK_SPECTRAL_DENSITY;
|
||||||
|
uint8_t ANGLE_RANDOM_WALK_SPECTRAL_DENSITY_VALID;
|
||||||
|
double ANGLE_RANDOM_WALK_SPECTRAL_DENSITY;
|
||||||
|
uint8_t RATE_RANDOM_WALK_SPECTRAL_DENSITY_VALID;
|
||||||
|
double RATE_RANDOM_WALK_SPECTRAL_DENSITY;
|
||||||
|
uint8_t VELOCITY_RANDOM_WALK_SPECTRAL_DENSITY_VALID;
|
||||||
|
double VELOCITY_RANDOM_WALK_SPECTRAL_DENSITY;
|
||||||
|
uint32_t SENSOR_PROVIDER;
|
||||||
|
} loc_sap_cfg_s_type;
|
||||||
|
|
||||||
namespace loc_core {
|
namespace loc_core {
|
||||||
|
|
||||||
class LocAdapterBase;
|
class LocAdapterBase;
|
||||||
|
@ -67,6 +125,12 @@ public:
|
||||||
return mLBSProxy->getIzatDevId();
|
return mLBSProxy->getIzatDevId();
|
||||||
}
|
}
|
||||||
inline void sendMsg(const LocMsg *msg) { getMsgTask()->sendMsg(msg); }
|
inline void sendMsg(const LocMsg *msg) { getMsgTask()->sendMsg(msg); }
|
||||||
|
|
||||||
|
static loc_gps_cfg_s_type mGps_conf;
|
||||||
|
static loc_sap_cfg_s_type mSap_conf;
|
||||||
|
|
||||||
|
static uint32_t getCarrierCapabilities();
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace loc_core
|
} // namespace loc_core
|
||||||
|
|
|
@ -46,15 +46,15 @@ protected:
|
||||||
inline virtual ~LocAdapterProxyBase() {
|
inline virtual ~LocAdapterProxyBase() {
|
||||||
delete mLocAdapterBase;
|
delete mLocAdapterBase;
|
||||||
}
|
}
|
||||||
ContextBase* getContext() const {
|
|
||||||
return mLocAdapterBase->getContext();
|
|
||||||
}
|
|
||||||
inline void updateEvtMask(LOC_API_ADAPTER_EVENT_MASK_T event,
|
inline void updateEvtMask(LOC_API_ADAPTER_EVENT_MASK_T event,
|
||||||
loc_registration_mask_status isEnabled) {
|
loc_registration_mask_status isEnabled) {
|
||||||
mLocAdapterBase->updateEvtMask(event,isEnabled);
|
mLocAdapterBase->updateEvtMask(event,isEnabled);
|
||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
inline ContextBase* getContext() const {
|
||||||
|
return mLocAdapterBase->getContext();
|
||||||
|
}
|
||||||
inline virtual void handleEngineUpEvent() {};
|
inline virtual void handleEngineUpEvent() {};
|
||||||
inline virtual void handleEngineDownEvent() {};
|
inline virtual void handleEngineDownEvent() {};
|
||||||
inline virtual bool reportPosition(UlpLocation &location,
|
inline virtual bool reportPosition(UlpLocation &location,
|
||||||
|
|
|
@ -318,7 +318,7 @@ static int loc_init(GpsCallbacks* callbacks)
|
||||||
loc_afw_data.adapter->mSupportsPositionInjection = !loc_afw_data.adapter->hasCPIExtendedCapabilities();
|
loc_afw_data.adapter->mSupportsPositionInjection = !loc_afw_data.adapter->hasCPIExtendedCapabilities();
|
||||||
loc_afw_data.adapter->mSupportsTimeInjection = !loc_afw_data.adapter->hasCPIExtendedCapabilities();
|
loc_afw_data.adapter->mSupportsTimeInjection = !loc_afw_data.adapter->hasCPIExtendedCapabilities();
|
||||||
loc_afw_data.adapter->setGpsLockMsg(0);
|
loc_afw_data.adapter->setGpsLockMsg(0);
|
||||||
loc_afw_data.adapter->requestUlp(getCarrierCapabilities());
|
loc_afw_data.adapter->requestUlp(ContextBase::getCarrierCapabilities());
|
||||||
loc_afw_data.adapter->setXtraUserAgent();
|
loc_afw_data.adapter->setXtraUserAgent();
|
||||||
|
|
||||||
if(retVal) {
|
if(retVal) {
|
||||||
|
|
|
@ -78,8 +78,6 @@ using namespace loc_core;
|
||||||
|
|
||||||
boolean configAlreadyRead = false;
|
boolean configAlreadyRead = false;
|
||||||
unsigned int agpsStatus = 0;
|
unsigned int agpsStatus = 0;
|
||||||
loc_gps_cfg_s_type gps_conf;
|
|
||||||
loc_sap_cfg_s_type sap_conf;
|
|
||||||
|
|
||||||
/* Parameter spec table */
|
/* Parameter spec table */
|
||||||
static const loc_param_s_type gps_conf_table[] =
|
static const loc_param_s_type gps_conf_table[] =
|
||||||
|
@ -488,7 +486,7 @@ struct LocEngSuplMode : public LocMsg {
|
||||||
locallog();
|
locallog();
|
||||||
}
|
}
|
||||||
inline virtual void proc() const {
|
inline virtual void proc() const {
|
||||||
mUlp->setCapabilities(getCarrierCapabilities());
|
mUlp->setCapabilities(ContextBase::getCarrierCapabilities());
|
||||||
}
|
}
|
||||||
inline void locallog() const {
|
inline void locallog() const {
|
||||||
}
|
}
|
||||||
|
@ -1735,24 +1733,6 @@ inline void LocEngReportGnssMeasurement::log() const {
|
||||||
}
|
}
|
||||||
#define INIT_CHECK(ctx, ret) STATE_CHECK(ctx, "instance not initialized", ret)
|
#define INIT_CHECK(ctx, ret) STATE_CHECK(ctx, "instance not initialized", ret)
|
||||||
|
|
||||||
uint32_t getCarrierCapabilities() {
|
|
||||||
#define carrierMSA (uint32_t)0x2
|
|
||||||
#define carrierMSB (uint32_t)0x1
|
|
||||||
#define gpsConfMSA (uint32_t)0x4
|
|
||||||
#define gpsConfMSB (uint32_t)0x2
|
|
||||||
uint32_t capabilities = gps_conf.CAPABILITIES;
|
|
||||||
if ((gps_conf.SUPL_MODE & carrierMSA) != carrierMSA) {
|
|
||||||
capabilities &= ~gpsConfMSA;
|
|
||||||
}
|
|
||||||
if ((gps_conf.SUPL_MODE & carrierMSB) != carrierMSB) {
|
|
||||||
capabilities &= ~gpsConfMSB;
|
|
||||||
}
|
|
||||||
|
|
||||||
LOC_LOGV("getCarrierCapabilities: CAPABILITIES %x, SUPL_MODE %x, carrier capabilities %x",
|
|
||||||
gps_conf.CAPABILITIES, gps_conf.SUPL_MODE, capabilities);
|
|
||||||
return capabilities;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*===========================================================================
|
/*===========================================================================
|
||||||
FUNCTION loc_eng_init
|
FUNCTION loc_eng_init
|
||||||
|
|
||||||
|
|
|
@ -66,7 +66,8 @@ typedef unsigned char boolean;
|
||||||
#define FAILURE FALSE
|
#define FAILURE FALSE
|
||||||
#define INVALID_ATL_CONNECTION_HANDLE -1
|
#define INVALID_ATL_CONNECTION_HANDLE -1
|
||||||
|
|
||||||
#define MAX_XTRA_SERVER_URL_LENGTH 256
|
#define gps_conf ContextBase::mGps_conf
|
||||||
|
#define sap_conf ContextBase::mSap_conf
|
||||||
|
|
||||||
enum loc_nmea_provider_e_type {
|
enum loc_nmea_provider_e_type {
|
||||||
NMEA_PROVIDER_AP = 0, // Application Processor Provider of NMEA
|
NMEA_PROVIDER_AP = 0, // Application Processor Provider of NMEA
|
||||||
|
@ -141,68 +142,6 @@ typedef struct loc_eng_data_s
|
||||||
loc_ext_parser sv_ext_parser;
|
loc_ext_parser sv_ext_parser;
|
||||||
} loc_eng_data_s_type;
|
} loc_eng_data_s_type;
|
||||||
|
|
||||||
/* GPS.conf support */
|
|
||||||
/* NOTE: the implementaiton of the parser casts number
|
|
||||||
fields to 32 bit. To ensure all 'n' fields working,
|
|
||||||
they must all be 32 bit fields. */
|
|
||||||
typedef struct loc_gps_cfg_s
|
|
||||||
{
|
|
||||||
uint32_t INTERMEDIATE_POS;
|
|
||||||
uint32_t ACCURACY_THRES;
|
|
||||||
uint32_t SUPL_VER;
|
|
||||||
uint32_t SUPL_MODE;
|
|
||||||
uint32_t CAPABILITIES;
|
|
||||||
uint32_t LPP_PROFILE;
|
|
||||||
uint32_t XTRA_VERSION_CHECK;
|
|
||||||
char XTRA_SERVER_1[MAX_XTRA_SERVER_URL_LENGTH];
|
|
||||||
char XTRA_SERVER_2[MAX_XTRA_SERVER_URL_LENGTH];
|
|
||||||
char XTRA_SERVER_3[MAX_XTRA_SERVER_URL_LENGTH];
|
|
||||||
uint32_t USE_EMERGENCY_PDN_FOR_EMERGENCY_SUPL;
|
|
||||||
uint32_t NMEA_PROVIDER;
|
|
||||||
uint32_t GPS_LOCK;
|
|
||||||
uint32_t A_GLONASS_POS_PROTOCOL_SELECT;
|
|
||||||
uint32_t AGPS_CERT_WRITABLE_MASK;
|
|
||||||
} loc_gps_cfg_s_type;
|
|
||||||
|
|
||||||
/* NOTE: the implementaiton of the parser casts number
|
|
||||||
fields to 32 bit. To ensure all 'n' fields working,
|
|
||||||
they must all be 32 bit fields. */
|
|
||||||
/* Meanwhile, *_valid fields are 8 bit fields, and 'f'
|
|
||||||
fields are double. Rigid as they are, it is the
|
|
||||||
the status quo, until the parsing mechanism is
|
|
||||||
change, that is. */
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
uint8_t GYRO_BIAS_RANDOM_WALK_VALID;
|
|
||||||
double GYRO_BIAS_RANDOM_WALK;
|
|
||||||
uint32_t SENSOR_ACCEL_BATCHES_PER_SEC;
|
|
||||||
uint32_t SENSOR_ACCEL_SAMPLES_PER_BATCH;
|
|
||||||
uint32_t SENSOR_GYRO_BATCHES_PER_SEC;
|
|
||||||
uint32_t SENSOR_GYRO_SAMPLES_PER_BATCH;
|
|
||||||
uint32_t SENSOR_ACCEL_BATCHES_PER_SEC_HIGH;
|
|
||||||
uint32_t SENSOR_ACCEL_SAMPLES_PER_BATCH_HIGH;
|
|
||||||
uint32_t SENSOR_GYRO_BATCHES_PER_SEC_HIGH;
|
|
||||||
uint32_t SENSOR_GYRO_SAMPLES_PER_BATCH_HIGH;
|
|
||||||
uint32_t SENSOR_CONTROL_MODE;
|
|
||||||
uint32_t SENSOR_USAGE;
|
|
||||||
uint32_t SENSOR_ALGORITHM_CONFIG_MASK;
|
|
||||||
uint8_t ACCEL_RANDOM_WALK_SPECTRAL_DENSITY_VALID;
|
|
||||||
double ACCEL_RANDOM_WALK_SPECTRAL_DENSITY;
|
|
||||||
uint8_t ANGLE_RANDOM_WALK_SPECTRAL_DENSITY_VALID;
|
|
||||||
double ANGLE_RANDOM_WALK_SPECTRAL_DENSITY;
|
|
||||||
uint8_t RATE_RANDOM_WALK_SPECTRAL_DENSITY_VALID;
|
|
||||||
double RATE_RANDOM_WALK_SPECTRAL_DENSITY;
|
|
||||||
uint8_t VELOCITY_RANDOM_WALK_SPECTRAL_DENSITY_VALID;
|
|
||||||
double VELOCITY_RANDOM_WALK_SPECTRAL_DENSITY;
|
|
||||||
uint32_t SENSOR_PROVIDER;
|
|
||||||
} loc_sap_cfg_s_type;
|
|
||||||
|
|
||||||
extern loc_gps_cfg_s_type gps_conf;
|
|
||||||
extern loc_sap_cfg_s_type sap_conf;
|
|
||||||
|
|
||||||
|
|
||||||
uint32_t getCarrierCapabilities();
|
|
||||||
|
|
||||||
//loc_eng functions
|
//loc_eng functions
|
||||||
int loc_eng_init(loc_eng_data_s_type &loc_eng_data,
|
int loc_eng_init(loc_eng_data_s_type &loc_eng_data,
|
||||||
LocCallbacks* callbacks,
|
LocCallbacks* callbacks,
|
||||||
|
|
Loading…
Reference in a new issue