Changes to inject sensor provider info to modem

Changes to inject the sensor provider config info
to modem.

CRs-fixed: 604557

Change-Id: I3875e295f30d863a540efe22d6daf264d8d81476
This commit is contained in:
Hema Iyer Sankaranarayanan 2014-02-13 11:10:26 -08:00
parent 7a08af9585
commit e767a55d87
5 changed files with 19 additions and 10 deletions

View file

@ -404,7 +404,8 @@ enum loc_api_adapter_err LocApiBase::
DEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS) DEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
enum loc_api_adapter_err LocApiBase:: enum loc_api_adapter_err LocApiBase::
setSensorControlConfig(int sensorUsage) setSensorControlConfig(int sensorUsage,
int sensorProvider)
DEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS) DEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
enum loc_api_adapter_err LocApiBase:: enum loc_api_adapter_err LocApiBase::

View file

@ -158,7 +158,7 @@ public:
virtual enum loc_api_adapter_err virtual enum loc_api_adapter_err
setLPPConfig(uint32_t profile); setLPPConfig(uint32_t profile);
virtual enum loc_api_adapter_err virtual enum loc_api_adapter_err
setSensorControlConfig(int sensorUsage); setSensorControlConfig(int sensorUsage, int sensorProvider);
virtual enum loc_api_adapter_err virtual enum loc_api_adapter_err
setSensorProperties(bool gyroBiasVarianceRandomWalk_valid, setSensorProperties(bool gyroBiasVarianceRandomWalk_valid,
float gyroBiasVarianceRandomWalk, float gyroBiasVarianceRandomWalk,

View file

@ -185,9 +185,9 @@ public:
return mLocApi->setLPPConfig(profile); return mLocApi->setLPPConfig(profile);
} }
inline enum loc_api_adapter_err inline enum loc_api_adapter_err
setSensorControlConfig(int sensorUsage) setSensorControlConfig(int sensorUsage, int sensorProvider)
{ {
return mLocApi->setSensorControlConfig(sensorUsage); return mLocApi->setSensorControlConfig(sensorUsage, sensorProvider);
} }
inline enum loc_api_adapter_err inline enum loc_api_adapter_err
setSensorProperties(bool gyroBiasVarianceRandomWalk_valid, float gyroBiasVarianceRandomWalk, setSensorProperties(bool gyroBiasVarianceRandomWalk_valid, float gyroBiasVarianceRandomWalk,

View file

@ -118,6 +118,7 @@ static loc_param_s_type loc_parameter_table[] =
{"QUIPC_ENABLED", &gps_conf.QUIPC_ENABLED, NULL, 'n'}, {"QUIPC_ENABLED", &gps_conf.QUIPC_ENABLED, NULL, 'n'},
{"LPP_PROFILE", &gps_conf.LPP_PROFILE, NULL, 'n'}, {"LPP_PROFILE", &gps_conf.LPP_PROFILE, NULL, 'n'},
{"A_GLONASS_POS_PROTOCOL_SELECT", &gps_conf.A_GLONASS_POS_PROTOCOL_SELECT, NULL, 'n'}, {"A_GLONASS_POS_PROTOCOL_SELECT", &gps_conf.A_GLONASS_POS_PROTOCOL_SELECT, NULL, 'n'},
{"SENSOR_PROVIDER", &sap_conf.SENSOR_PROVIDER, NULL, 'n'},
}; };
static void loc_default_parameters(void) static void loc_default_parameters(void)
@ -160,6 +161,9 @@ static void loc_default_parameters(void)
/*By default no positioning protocol is selected on A-GLONASS system*/ /*By default no positioning protocol is selected on A-GLONASS system*/
gps_conf.A_GLONASS_POS_PROTOCOL_SELECT = 0; gps_conf.A_GLONASS_POS_PROTOCOL_SELECT = 0;
/* default provider is SSC */
sap_conf.SENSOR_PROVIDER = 1;
} }
// 2nd half of init(), singled out for // 2nd half of init(), singled out for
@ -497,18 +501,20 @@ struct LocEngLppConfig : public LocMsg {
struct LocEngSensorControlConfig : public LocMsg { struct LocEngSensorControlConfig : public LocMsg {
LocEngAdapter* mAdapter; LocEngAdapter* mAdapter;
const int mSensorsDisabled; const int mSensorsDisabled;
const int mSensorProvider;
inline LocEngSensorControlConfig(LocEngAdapter* adapter, inline LocEngSensorControlConfig(LocEngAdapter* adapter,
int sensorsDisabled) : int sensorsDisabled, int sensorProvider) :
LocMsg(), mAdapter(adapter), mSensorsDisabled(sensorsDisabled) LocMsg(), mAdapter(adapter), mSensorsDisabled(sensorsDisabled),
mSensorProvider(sensorProvider)
{ {
locallog(); locallog();
} }
inline virtual void proc() const { inline virtual void proc() const {
mAdapter->setSensorControlConfig(mSensorsDisabled); mAdapter->setSensorControlConfig(mSensorsDisabled, mSensorProvider);
} }
inline void locallog() const { inline void locallog() const {
LOC_LOGV("LocEngSensorControlConfig - Sensors Disabled: %d", LOC_LOGV("LocEngSensorControlConfig - Sensors Disabled: %d, Sensor Provider: %d",
mSensorsDisabled); mSensorsDisabled, mSensorProvider);
} }
inline virtual void log() const { inline virtual void log() const {
locallog(); locallog();
@ -1554,7 +1560,8 @@ static int loc_eng_reinit(loc_eng_data_s_type &loc_eng_data)
LocEngAdapter* adapter = loc_eng_data.adapter; LocEngAdapter* adapter = loc_eng_data.adapter;
adapter->sendMsg(new LocEngSuplVer(adapter, gps_conf.SUPL_VER)); adapter->sendMsg(new LocEngSuplVer(adapter, gps_conf.SUPL_VER));
adapter->sendMsg(new LocEngLppConfig(adapter, gps_conf.LPP_PROFILE)); adapter->sendMsg(new LocEngLppConfig(adapter, gps_conf.LPP_PROFILE));
adapter->sendMsg(new LocEngSensorControlConfig(adapter, sap_conf.SENSOR_USAGE)); adapter->sendMsg(new LocEngSensorControlConfig(adapter, sap_conf.SENSOR_USAGE,
sap_conf.SENSOR_PROVIDER));
adapter->sendMsg(new LocEngAGlonassProtocol(adapter, gps_conf.A_GLONASS_POS_PROTOCOL_SELECT)); adapter->sendMsg(new LocEngAGlonassProtocol(adapter, gps_conf.A_GLONASS_POS_PROTOCOL_SELECT));
/* Make sure at least one of the sensor property is specified by the user in the gps.conf file. */ /* Make sure at least one of the sensor property is specified by the user in the gps.conf file. */

View file

@ -171,6 +171,7 @@ typedef struct
double RATE_RANDOM_WALK_SPECTRAL_DENSITY; double RATE_RANDOM_WALK_SPECTRAL_DENSITY;
uint8_t VELOCITY_RANDOM_WALK_SPECTRAL_DENSITY_VALID; uint8_t VELOCITY_RANDOM_WALK_SPECTRAL_DENSITY_VALID;
double VELOCITY_RANDOM_WALK_SPECTRAL_DENSITY; double VELOCITY_RANDOM_WALK_SPECTRAL_DENSITY;
unsigned long SENSOR_PROVIDER;
} loc_sap_cfg_s_type; } loc_sap_cfg_s_type;
extern loc_gps_cfg_s_type gps_conf; extern loc_gps_cfg_s_type gps_conf;