AU_LINUX_ANDROID_KK.04.04.04.010.073 based on quic/aosp/kk

-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iEYEABECAAYFAlPXonYACgkQoUgPZYCpAfEVqgCg0nHy46bwOfBa0LPbxt0PTV4r
 MGsAnAlTanVV1UfX/HzMGmdNyA0D0VZ4
 =Wxhx
 -----END PGP SIGNATURE-----

Merge tag 'AU_LINUX_ANDROID_KK.04.04.04.010.073' into HEAD

AU_LINUX_ANDROID_KK.04.04.04.010.073 based on quic/aosp/kk

Change-Id: I5ae2317a9d43cde94c587cb292212f1435472607
This commit is contained in:
Sudhir Sharma 2014-07-29 17:06:58 -07:00
commit aa9a96e724
9 changed files with 159 additions and 78 deletions

View file

@ -73,7 +73,7 @@ LocApiBase* ContextBase::createLocApi(LOC_API_ADAPTER_EVENT_MASK_T exMask)
getLocApi_t* getter = (getLocApi_t*)dlsym(handle, "getLocApi");
if(getter != NULL) {
LOC_LOGD("%s:%d]: getter is not NULL for LocApiV02", __func__, __LINE__);
locApi = (*getter)(mMsgTask,exMask, this);
locApi = (*getter)(mMsgTask, exMask, this);
}
}
// only RPC is the option now

View file

@ -481,4 +481,8 @@ DEFAULT_IMPL(-1)
int LocApiBase::
getGpsLock()
DEFAULT_IMPL(-1)
enum loc_api_adapter_err LocApiBase::
setXtraVersionCheck(enum xtra_version_check check)
DEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
} // namespace loc_core

View file

@ -53,6 +53,13 @@ int decodeAddress(char *addr_string, int string_size,
#define TO_1ST_HANDLING_ADAPTER(adapters, call) \
for (int i = 0; i <MAX_ADAPTERS && NULL != (adapters)[i] && !(call); i++);
enum xtra_version_check {
DISABLED,
AUTO,
XTRA2,
XTRA3
};
class LocAdapterBase;
struct LocSsrMsg;
struct LocOpenMsg;
@ -217,6 +224,7 @@ public:
-1 on failure
*/
virtual int getGpsLock(void);
virtual enum loc_api_adapter_err setXtraVersionCheck(enum xtra_version_check check);
};
typedef LocApiBase* (getLocApi_t)(const MsgTask* msgTask,

View file

@ -4,6 +4,13 @@
#XTRA_SERVER_2=http://xtra2.gpsonextra.net/xtra.bin
#XTRA_SERVER_3=http://xtra3.gpsonextra.net/xtra.bin
#Version check for XTRA
#DISABLE = 0
#AUTO = 1
#XTRA2 = 2
#XTRA3 = 3
XTRA_VERSION_CHECK=0
# Error Estimate
# _SET = 1
# _CLEAR = 0

View file

@ -340,3 +340,25 @@ void LocEngAdapter::handleEngineUpEvent()
{
sendMsg(new LocEngUp(mOwner));
}
enum loc_api_adapter_err LocEngAdapter::setXtraVersionCheck(int check)
{
enum loc_api_adapter_err ret;
ENTRY_LOG();
enum xtra_version_check eCheck;
switch (check) {
case 0:
eCheck = DISABLED;
case 1:
eCheck = AUTO;
case 2:
eCheck = XTRA2;
case 3:
eCheck = XTRA3;
defaul:
eCheck = DISABLED;
}
ret = mLocApi->setXtraVersionCheck(eCheck);
EXIT_LOG(%d, ret);
return ret;
}

View file

@ -256,7 +256,7 @@ public:
{
return mLocApi->getBestAvailableZppFix(zppLoc, tech_mask);
}
enum loc_api_adapter_err setXtraVersionCheck(int check);
virtual void handleEngineDownEvent();
virtual void handleEngineUpEvent();
virtual void reportPosition(UlpLocation &location,
@ -325,6 +325,7 @@ public:
{
return mLocApi->getGpsLock();
}
};
#endif //LOC_API_ENG_ADAPTER_H

View file

@ -118,17 +118,25 @@ static loc_param_s_type loc_parameter_table[] =
{"LPP_PROFILE", &gps_conf.LPP_PROFILE, NULL, 'n'},
{"A_GLONASS_POS_PROTOCOL_SELECT", &gps_conf.A_GLONASS_POS_PROTOCOL_SELECT, NULL, 'n'},
{"SENSOR_PROVIDER", &sap_conf.SENSOR_PROVIDER, NULL, 'n'},
{"XTRA_VERSION_CHECK", &gps_conf.XTRA_VERSION_CHECK, NULL, 'n'},
};
static void loc_default_parameters(void)
{
/* defaults */
/*Defaults for gps.conf*/
gps_conf.INTERMEDIATE_POS = 0;
gps_conf.ACCURACY_THRES = 0;
gps_conf.NMEA_PROVIDER = 0;
gps_conf.SUPL_VER = 0x10000;
gps_conf.CAPABILITIES = 0x7;
/* LTE Positioning Profile configuration is disable by default*/
gps_conf.LPP_PROFILE = 0;
/*By default no positioning protocol is selected on A-GLONASS system*/
gps_conf.A_GLONASS_POS_PROTOCOL_SELECT = 0;
/*XTRA version check is disabled by default*/
gps_conf.XTRA_VERSION_CHECK=0;
/*Defaults for sap.conf*/
sap_conf.GYRO_BIAS_RANDOM_WALK = 0;
sap_conf.SENSOR_ACCEL_BATCHES_PER_SEC = 2;
sap_conf.SENSOR_ACCEL_SAMPLES_PER_BATCH = 5;
@ -141,26 +149,17 @@ static void loc_default_parameters(void)
sap_conf.SENSOR_CONTROL_MODE = 0; /* AUTO */
sap_conf.SENSOR_USAGE = 0; /* Enabled */
sap_conf.SENSOR_ALGORITHM_CONFIG_MASK = 0; /* INS Disabled = FALSE*/
/* Values MUST be set by OEMs in configuration for sensor-assisted
navigation to work. There are NO default values */
sap_conf.ACCEL_RANDOM_WALK_SPECTRAL_DENSITY = 0;
sap_conf.ANGLE_RANDOM_WALK_SPECTRAL_DENSITY = 0;
sap_conf.RATE_RANDOM_WALK_SPECTRAL_DENSITY = 0;
sap_conf.VELOCITY_RANDOM_WALK_SPECTRAL_DENSITY = 0;
sap_conf.GYRO_BIAS_RANDOM_WALK_VALID = 0;
sap_conf.ACCEL_RANDOM_WALK_SPECTRAL_DENSITY_VALID = 0;
sap_conf.ANGLE_RANDOM_WALK_SPECTRAL_DENSITY_VALID = 0;
sap_conf.RATE_RANDOM_WALK_SPECTRAL_DENSITY_VALID = 0;
sap_conf.VELOCITY_RANDOM_WALK_SPECTRAL_DENSITY_VALID = 0;
/* LTE Positioning Profile configuration is disable by default*/
gps_conf.LPP_PROFILE = 0;
/*By default no positioning protocol is selected on A-GLONASS system*/
gps_conf.A_GLONASS_POS_PROTOCOL_SELECT = 0;
/* default provider is SSC */
sap_conf.SENSOR_PROVIDER = 1;
}
@ -1576,52 +1575,50 @@ static int loc_eng_reinit(loc_eng_data_s_type &loc_eng_data)
{
ENTRY_LOG();
int ret_val = LOC_API_ADAPTER_ERR_SUCCESS;
LocEngAdapter* adapter = loc_eng_data.adapter;
if (LOC_API_ADAPTER_ERR_SUCCESS == ret_val) {
LOC_LOGD("loc_eng_reinit reinit() successful");
adapter->sendMsg(new LocEngSuplVer(adapter, gps_conf.SUPL_VER));
adapter->sendMsg(new LocEngLppConfig(adapter, gps_conf.LPP_PROFILE));
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));
LocEngAdapter* adapter = loc_eng_data.adapter;
adapter->sendMsg(new LocEngSuplVer(adapter, gps_conf.SUPL_VER));
adapter->sendMsg(new LocEngLppConfig(adapter, gps_conf.LPP_PROFILE));
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));
/* Make sure at least one of the sensor property is specified by the user in the gps.conf file. */
if( sap_conf.GYRO_BIAS_RANDOM_WALK_VALID ||
sap_conf.ACCEL_RANDOM_WALK_SPECTRAL_DENSITY_VALID ||
sap_conf.ANGLE_RANDOM_WALK_SPECTRAL_DENSITY_VALID ||
sap_conf.RATE_RANDOM_WALK_SPECTRAL_DENSITY_VALID ||
sap_conf.VELOCITY_RANDOM_WALK_SPECTRAL_DENSITY_VALID )
{
adapter->sendMsg(new LocEngSensorProperties(adapter,
sap_conf.GYRO_BIAS_RANDOM_WALK_VALID,
sap_conf.GYRO_BIAS_RANDOM_WALK,
sap_conf.ACCEL_RANDOM_WALK_SPECTRAL_DENSITY_VALID,
sap_conf.ACCEL_RANDOM_WALK_SPECTRAL_DENSITY,
sap_conf.ANGLE_RANDOM_WALK_SPECTRAL_DENSITY_VALID,
sap_conf.ANGLE_RANDOM_WALK_SPECTRAL_DENSITY,
sap_conf.RATE_RANDOM_WALK_SPECTRAL_DENSITY_VALID,
sap_conf.RATE_RANDOM_WALK_SPECTRAL_DENSITY,
sap_conf.VELOCITY_RANDOM_WALK_SPECTRAL_DENSITY_VALID,
sap_conf.VELOCITY_RANDOM_WALK_SPECTRAL_DENSITY));
}
adapter->sendMsg(new LocEngSensorPerfControlConfig(adapter,
sap_conf.SENSOR_CONTROL_MODE,
sap_conf.SENSOR_ACCEL_SAMPLES_PER_BATCH,
sap_conf.SENSOR_ACCEL_BATCHES_PER_SEC,
sap_conf.SENSOR_GYRO_SAMPLES_PER_BATCH,
sap_conf.SENSOR_GYRO_BATCHES_PER_SEC,
sap_conf.SENSOR_ACCEL_SAMPLES_PER_BATCH_HIGH,
sap_conf.SENSOR_ACCEL_BATCHES_PER_SEC_HIGH,
sap_conf.SENSOR_GYRO_SAMPLES_PER_BATCH_HIGH,
sap_conf.SENSOR_GYRO_BATCHES_PER_SEC_HIGH,
sap_conf.SENSOR_ALGORITHM_CONFIG_MASK));
adapter->sendMsg(new LocEngEnableData(adapter, NULL, 0, (agpsStatus ? 1:0)));
/* Make sure at least one of the sensor property is specified by the user in the gps.conf file. */
if( sap_conf.GYRO_BIAS_RANDOM_WALK_VALID ||
sap_conf.ACCEL_RANDOM_WALK_SPECTRAL_DENSITY_VALID ||
sap_conf.ANGLE_RANDOM_WALK_SPECTRAL_DENSITY_VALID ||
sap_conf.RATE_RANDOM_WALK_SPECTRAL_DENSITY_VALID ||
sap_conf.VELOCITY_RANDOM_WALK_SPECTRAL_DENSITY_VALID ) {
adapter->sendMsg(new LocEngSensorProperties(adapter,
sap_conf.GYRO_BIAS_RANDOM_WALK_VALID,
sap_conf.GYRO_BIAS_RANDOM_WALK,
sap_conf.ACCEL_RANDOM_WALK_SPECTRAL_DENSITY_VALID,
sap_conf.ACCEL_RANDOM_WALK_SPECTRAL_DENSITY,
sap_conf.ANGLE_RANDOM_WALK_SPECTRAL_DENSITY_VALID,
sap_conf.ANGLE_RANDOM_WALK_SPECTRAL_DENSITY,
sap_conf.RATE_RANDOM_WALK_SPECTRAL_DENSITY_VALID,
sap_conf.RATE_RANDOM_WALK_SPECTRAL_DENSITY,
sap_conf.VELOCITY_RANDOM_WALK_SPECTRAL_DENSITY_VALID,
sap_conf.VELOCITY_RANDOM_WALK_SPECTRAL_DENSITY));
}
adapter->sendMsg(new LocEngSensorPerfControlConfig(adapter,
sap_conf.SENSOR_CONTROL_MODE,
sap_conf.SENSOR_ACCEL_SAMPLES_PER_BATCH,
sap_conf.SENSOR_ACCEL_BATCHES_PER_SEC,
sap_conf.SENSOR_GYRO_SAMPLES_PER_BATCH,
sap_conf.SENSOR_GYRO_BATCHES_PER_SEC,
sap_conf.SENSOR_ACCEL_SAMPLES_PER_BATCH_HIGH,
sap_conf.SENSOR_ACCEL_BATCHES_PER_SEC_HIGH,
sap_conf.SENSOR_GYRO_SAMPLES_PER_BATCH_HIGH,
sap_conf.SENSOR_GYRO_BATCHES_PER_SEC_HIGH,
sap_conf.SENSOR_ALGORITHM_CONFIG_MASK));
adapter->sendMsg(new LocEngEnableData(adapter, NULL, 0, (agpsStatus ? 1:0)));
loc_eng_xtra_version_check(loc_eng_data, gps_conf.XTRA_VERSION_CHECK);
LOC_LOGD("loc_eng_reinit reinit() successful");
EXIT_LOG(%d, ret_val);
return ret_val;
}

View file

@ -146,6 +146,7 @@ typedef struct loc_gps_cfg_s
unsigned long LPP_PROFILE;
uint8_t NMEA_PROVIDER;
unsigned long A_GLONASS_POS_PROTOCOL_SELECT;
unsigned long XTRA_VERSION_CHECK;
} loc_gps_cfg_s_type;
typedef struct
@ -177,6 +178,7 @@ typedef struct
extern loc_gps_cfg_s_type gps_conf;
extern loc_sap_cfg_s_type sap_conf;
//loc_eng functions
int loc_eng_init(loc_eng_data_s_type &loc_eng_data,
LocCallbacks* callbacks,
LOC_API_ADAPTER_EVENT_MASK_T event,
@ -196,6 +198,12 @@ int loc_eng_set_position_mode(loc_eng_data_s_type &loc_eng_data,
LocPosMode &params);
const void* loc_eng_get_extension(loc_eng_data_s_type &loc_eng_data,
const char* name);
int loc_eng_set_server_proxy(loc_eng_data_s_type &loc_eng_data,
LocServerType type, const char *hostname, int port);
void loc_eng_mute_one_session(loc_eng_data_s_type &loc_eng_data);
int loc_eng_read_config(void);
//loc_eng_agps functions
void loc_eng_agps_init(loc_eng_data_s_type &loc_eng_data,
AGpsExtCallbacks* callbacks);
int loc_eng_agps_open(loc_eng_data_s_type &loc_eng_data, AGpsExtType agpsType,
@ -203,28 +211,18 @@ int loc_eng_agps_open(loc_eng_data_s_type &loc_eng_data, AGpsExtType agpsType,
int loc_eng_agps_closed(loc_eng_data_s_type &loc_eng_data, AGpsExtType agpsType);
int loc_eng_agps_open_failed(loc_eng_data_s_type &loc_eng_data, AGpsExtType agpsType);
int loc_eng_set_server_proxy(loc_eng_data_s_type &loc_eng_data,
LocServerType type, const char *hostname, int port);
void loc_eng_agps_ril_update_network_availability(loc_eng_data_s_type &loc_eng_data,
int avaiable, const char* apn);
bool loc_eng_inject_raw_command(loc_eng_data_s_type &loc_eng_data,
char* command, int length);
void loc_eng_mute_one_session(loc_eng_data_s_type &loc_eng_data);
int loc_eng_xtra_init (loc_eng_data_s_type &loc_eng_data,
//loc_eng_xtra functions
int loc_eng_xtra_init (loc_eng_data_s_type &loc_eng_data,
GpsXtraExtCallbacks* callbacks);
int loc_eng_xtra_inject_data(loc_eng_data_s_type &loc_eng_data,
int loc_eng_xtra_inject_data(loc_eng_data_s_type &loc_eng_data,
char* data, int length);
int loc_eng_xtra_request_server(loc_eng_data_s_type &loc_eng_data);
void loc_eng_xtra_version_check(loc_eng_data_s_type &loc_eng_data, int check);
int loc_eng_xtra_request_server(loc_eng_data_s_type &loc_eng_data);
//loc_eng_ni functions
extern void loc_eng_ni_init(loc_eng_data_s_type &loc_eng_data,
GpsNiExtCallbacks *callbacks);
extern void loc_eng_ni_respond(loc_eng_data_s_type &loc_eng_data,
@ -233,8 +231,6 @@ extern void loc_eng_ni_request_handler(loc_eng_data_s_type &loc_eng_data,
const GpsNiNotification *notif,
const void* passThrough);
extern void loc_eng_ni_reset_on_engine_restart(loc_eng_data_s_type &loc_eng_data);
int loc_eng_read_config(void);
#ifdef __cplusplus
}
#endif /* __cplusplus */

View file

@ -82,6 +82,25 @@ struct LocEngInjectXtraData : public LocMsg {
}
};
struct LocEngSetXtraVersionCheck : public LocMsg {
LocEngAdapter *mAdapter;
int mCheck;
inline LocEngSetXtraVersionCheck(LocEngAdapter* adapter,
int check):
mAdapter(adapter), mCheck(check) {}
inline virtual void proc() const {
locallog();
mAdapter->setXtraVersionCheck(mCheck);
}
inline void locallog() const {
LOC_LOGD("%s:%d]: mCheck: %d",
__func__, __LINE__, mCheck);
}
inline virtual void log() const {
locallog();
}
};
/*===========================================================================
FUNCTION loc_eng_xtra_init
@ -103,6 +122,7 @@ int loc_eng_xtra_init (loc_eng_data_s_type &loc_eng_data,
{
int ret_val = -1;
loc_eng_xtra_data_s_type *xtra_module_data_ptr;
ENTRY_LOG();
if(callbacks == NULL) {
LOC_LOGE("loc_eng_xtra_init: failed, cb is NULL");
@ -113,6 +133,7 @@ int loc_eng_xtra_init (loc_eng_data_s_type &loc_eng_data,
ret_val = 0;
}
EXIT_LOG(%d, ret_val);
return ret_val;
}
@ -126,8 +147,7 @@ DEPENDENCIES
N/A
RETURN VALUE
0: success
>0: failure
0
SIDE EFFECTS
N/A
@ -136,9 +156,10 @@ SIDE EFFECTS
int loc_eng_xtra_inject_data(loc_eng_data_s_type &loc_eng_data,
char* data, int length)
{
ENTRY_LOG();
LocEngAdapter* adapter = loc_eng_data.adapter;
adapter->sendMsg(new LocEngInjectXtraData(adapter, data, length));
EXIT_LOG(%d, 0);
return 0;
}
/*===========================================================================
@ -151,7 +172,7 @@ DEPENDENCIES
N/A
RETURN VALUE
length of server string
0
SIDE EFFECTS
N/A
@ -159,9 +180,34 @@ SIDE EFFECTS
===========================================================================*/
int loc_eng_xtra_request_server(loc_eng_data_s_type &loc_eng_data)
{
ENTRY_LOG();
LocEngAdapter* adapter = loc_eng_data.adapter;
adapter->sendMsg(new LocEngRequestXtraServer(adapter));
EXIT_LOG(%d, 0);
return 0;
}
/*===========================================================================
FUNCTION loc_eng_xtra_version_check
DESCRIPTION
Injects the enable/disable value for checking XTRA version
that is specified in gps.conf
DEPENDENCIES
N/A
RETURN VALUE
none
SIDE EFFECTS
N/A
===========================================================================*/
void loc_eng_xtra_version_check(loc_eng_data_s_type &loc_eng_data,
int check)
{
ENTRY_LOG();
LocEngAdapter *adapter = loc_eng_data.adapter;
adapter->sendMsg(new LocEngSetXtraVersionCheck(adapter, check));
EXIT_LOG(%d, 0);
}