Promotion of location.lnx.2.0-00016.
CRs Change ID Subject -------------------------------------------------------------------------------------------------------------- 1025194 I1f26fee30d7179883a48c3d067b4c90562e9e914 Fix GPS related KW P1 issues for MDM9x50. 1025224 I067bcf88432d74b49e60eaab86409f178cf45e7d Add feature set configuration 827856 I7da6f0d5a7d90fd4ad7ef51d9eaee88d2a7a20ac Removed unused code and unnecessary notice files 855222 I76975455d24f2c84a95dcc1b04f79fea562ea5ba Adding a number of utilities 1025224 Ic93291d451704ced88bdf45df3cb9215acf6f2de Add AP Coarse Timestamp Uncertainty configuration parame 826256 I10bc2d112574de0016110e193d6c2cd071b00b2a Remove reporting gps status from loc eng layer 771597 I463db7ac1c3e2dd6101e457ad723bb16adf5aacb Enable "auto" target for APQ8960 Automotive ADP platform 937944 I13437d997e96a6403923d49f62f1e7c2f70e9c04 gps: enable measurement/poly reports only when AP DR ena 1025224 I4ef067890e16c2585f8a9c7809c4d7421b895cd0 Add Course TimeStamp & asso. unc to Measurement 1025224 I5ac5ee5c44e72e657b16515e37637c9a5c64e638 Propagate DR enablement feature from LNX.LA.2.7.3 991345 Ieaad5dfa80b26b90e998618b3cbe1e590fc00839 gps: consider nsec while ranking the timer objects 852809 I8ad4e4e8007a2d8b608f3f74503515f062b86c4b Fix Memory leak in util/loc_cfg.cpp 939706 I25d7466db88a840a8a09e7a476cface48c91d22e crash in LocTimer wrapper 850144 I958ce8da0e8062549f12808aca4aebcf4a7fb95d Fix gps.conf capabilities overwrited by carrier 909776 I0d67d1418cb9bfe7f70ae71252901d4c6bb699b3 timer bug fix 694343 Ifa11803df2ed4fc249a5c339acfeeb5d89bf55d5 LCA additions to ULP and log_util defines 884484 I123d9f074ca725703c6e90397160b701033e22f0 NMEA generation change to prevent 2Hz reporting 827856 I7da6f0d5a7d90fd4ad7ef51d9eaee88d2a7a20ac Removed unused code and unnecessary notice files 860504 Iad1605242daf8fa1d6bcce3e69caff7811d9843a Set SUPL_ES to 0 in gps.conf 826152 I33862cf8d40db1d667179ef68d18703edc359843 Add glo and bds to used-in-fix mask 1025224 Ib0ab285af7b9bee886c5f7a256d638f2fd7fee9d Remove DeleteAidingData additions 974489 I838bfa2c66e77381be483c65b2b3bd68008a25b1 fix for compiler warnings 916590 Ic3e0b3d183dceb9e6e2db4c47ec9d6e296b0c3f6 another potential race condition 748687 I11a2ba337433d9a42c903d36fc980ee1a3983a1e Send GPS tracking fixes to FLP HAL 831075 Ic83276e9d3c0d125a01f50719102fcd7c0455385 Move modem power vote out of hal 992647 Ib886b96b2e95dafc151bead041e5fc3d6740c468 gps: include support to check hardware type property 1025224 Iaf5490cb991865d4b6376b0934b306a31528d90c Add AP Timestamp for coarse/fine time to position report 1025224 I4e79c71b9e5691e51850adcc52f52b36f8e3d088 Fix implicit declaration errors in gps hal 975372 Ic241d4573bdf2e58c4e264e97bd41b56f882c791 make LocSharedLock::mRef ops atomic 897805 I47d9780d69ce5ee8c183c84baa93ea3c1a00db57 Fix for timerfd_create on older kernel revisions 904627 Iae80b78f049a32da87639f813c6f5126b4ccd072 fixing a crash vulnerability due to race condition 1017254 If814af411dd1c67d7a83b07f45813d57d5f96ca9 Remove target specific logic for DR Fix 902350 Iafd5b91b693baacb9b7064463f8c44f74026f54c Crash fix with MsgTask API change 790623 Ibcc3703c98e561e0bdfbcc5c8802d1b45c9a511a Fix bug with switch case 870568 Ie523bce5069416521d49bc0178d2cad2dd1f04da LocTimer repeated expiration 1025224 Ifc82abadcaa4a859d344251fac065c5e632c8c6f Disable ESUPL from configuration 820078 I7ace685622904ee2aa12f317540f9c04880acc70 Adding Mutex for Creating Context 959625 If89de03ff69fabb3d57a7b7dafe957eb73302794 gps: add SV polynomial parameter 978745 I7ab0e92c7ed4ce73be11909eefe0d570a1a0fc1e Adding a new NMEA sentence : $GNGSA. Change-Id: Ib0f2f90ac044c7f84483a06272c4c09fb1058a5e CRs-Fixed: 860504, 884484, 748687, 790623, 1025224, 694343, 850144, 904627, 870568, 831075, 902350, 978745, 1025194, 916590, 909776, 992647, 826256, 820078, 975372, 826152, 827856, 937944, 855222, 852809, 991345, 939706, 974489, 897805, 771597, 1017254, 959625
This commit is contained in:
commit
de1b72822d
14 changed files with 733 additions and 5 deletions
|
@ -62,6 +62,7 @@ typedef struct loc_gps_cfg_s
|
|||
uint32_t AGPS_CONFIG_INJECT;
|
||||
uint32_t LPPE_CP_TECHNOLOGY;
|
||||
uint32_t LPPE_UP_TECHNOLOGY;
|
||||
uint32_t EXTERNAL_DR_ENABLED;
|
||||
} loc_gps_cfg_s_type;
|
||||
|
||||
/* NOTE: the implementaiton of the parser casts number
|
||||
|
|
|
@ -85,6 +85,13 @@ void LocAdapterBase::
|
|||
void* svExt)
|
||||
DEFAULT_IMPL()
|
||||
|
||||
void LocAdapterBase::
|
||||
reportSvMeasurement(GnssSvMeasurementSet &svMeasurementSet)
|
||||
DEFAULT_IMPL()
|
||||
|
||||
void LocAdapterBase::
|
||||
reportSvPolynomial(GnssSvPolynomial &svPolynomial)
|
||||
DEFAULT_IMPL()
|
||||
|
||||
void LocAdapterBase::
|
||||
reportStatus(GpsStatusValue status)
|
||||
|
|
|
@ -105,6 +105,8 @@ public:
|
|||
virtual void reportSv(GnssSvStatus &svStatus,
|
||||
GpsLocationExtended &locationExtended,
|
||||
void* svExt);
|
||||
virtual void reportSvMeasurement(GnssSvMeasurementSet &svMeasurementSet);
|
||||
virtual void reportSvPolynomial(GnssSvPolynomial &svPolynomial);
|
||||
virtual void reportStatus(GpsStatusValue status);
|
||||
virtual void reportNmea(const char* nmea, int length);
|
||||
virtual bool reportXtraServer(const char* url1, const char* url2,
|
||||
|
|
|
@ -278,6 +278,22 @@ void LocApiBase::reportSv(GnssSvStatus &svStatus,
|
|||
);
|
||||
}
|
||||
|
||||
void LocApiBase::reportSvMeasurement(GnssSvMeasurementSet &svMeasurementSet)
|
||||
{
|
||||
// loop through adapters, and deliver to all adapters.
|
||||
TO_ALL_LOCADAPTERS(
|
||||
mLocAdapters[i]->reportSvMeasurement(svMeasurementSet)
|
||||
);
|
||||
}
|
||||
|
||||
void LocApiBase::reportSvPolynomial(GnssSvPolynomial &svPolynomial)
|
||||
{
|
||||
// loop through adapters, and deliver to all adapters.
|
||||
TO_ALL_LOCADAPTERS(
|
||||
mLocAdapters[i]->reportSvPolynomial(svPolynomial)
|
||||
);
|
||||
}
|
||||
|
||||
void LocApiBase::reportStatus(GpsStatusValue status)
|
||||
{
|
||||
// loop through adapters, and deliver to all adapters.
|
||||
|
|
|
@ -118,6 +118,8 @@ public:
|
|||
void reportSv(GnssSvStatus &svStatus,
|
||||
GpsLocationExtended &locationExtended,
|
||||
void* svExt);
|
||||
void reportSvMeasurement(GnssSvMeasurementSet &svMeasurementSet);
|
||||
void reportSvPolynomial(GnssSvPolynomial &svPolynomial);
|
||||
void reportStatus(GpsStatusValue status);
|
||||
void reportNmea(const char* nmea, int length);
|
||||
void reportXtraServer(const char* url1, const char* url2,
|
||||
|
|
|
@ -71,6 +71,16 @@ public:
|
|||
(void)svExt;
|
||||
return false;
|
||||
}
|
||||
inline virtual bool reportSvMeasurement(GnssSvMeasurementSet &svMeasurementSet) {
|
||||
(void)svMeasurementSet;
|
||||
return false;
|
||||
}
|
||||
|
||||
inline virtual bool reportSvPolynomial(GnssSvPolynomial &svPolynomial)
|
||||
{
|
||||
(void)svPolynomial;
|
||||
return false;
|
||||
}
|
||||
inline virtual bool reportStatus(GpsStatusValue status) {
|
||||
|
||||
(void)status;
|
||||
|
@ -97,6 +107,11 @@ public:
|
|||
(void)number_of_locations;
|
||||
return false;
|
||||
}
|
||||
inline virtual bool reportDeleteAidingData(GpsAidingData aidingData)
|
||||
{
|
||||
(void)aidingData;
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
} // namespace loc_core
|
||||
|
|
|
@ -34,6 +34,7 @@
|
|||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <hardware/gps.h>
|
||||
#include <time.h>
|
||||
|
||||
/**
|
||||
* @file
|
||||
|
@ -73,6 +74,8 @@ extern "C" {
|
|||
#define ULP_LOCATION_IS_FROM_NLP 0x0020
|
||||
/** Position is from PIP */
|
||||
#define ULP_LOCATION_IS_FROM_PIP 0x0040
|
||||
/** Position is from external DR solution*/
|
||||
#define ULP_LOCATION_IS_FROM_EXT_DR 0X0080
|
||||
|
||||
#define ULP_MIN_INTERVAL_INVALID 0xffffffff
|
||||
|
||||
|
@ -259,6 +262,13 @@ typedef enum {
|
|||
LOC_RELIABILITY_HIGH = 4
|
||||
}LocReliability;
|
||||
|
||||
typedef struct {
|
||||
struct timespec apTimeStamp;
|
||||
/*boottime received from pps-ktimer*/
|
||||
float apTimeStampUncertaintyMs;
|
||||
/* timestamp uncertainty in milli seconds */
|
||||
}Gnss_ApTimeStampStructType;
|
||||
|
||||
/** Represents gps location extended. */
|
||||
typedef struct {
|
||||
/** set to sizeof(GpsLocationExtended) */
|
||||
|
@ -291,6 +301,8 @@ typedef struct {
|
|||
float horUncEllipseSemiMinor;
|
||||
/* Elliptical Horizontal Uncertainty Azimuth */
|
||||
float horUncEllipseOrientAzimuth;
|
||||
|
||||
Gnss_ApTimeStampStructType timeStamp;
|
||||
} GpsLocationExtended;
|
||||
|
||||
enum loc_sess_status {
|
||||
|
@ -400,6 +412,8 @@ enum loc_api_adapter_event_index {
|
|||
LOC_API_ADAPTER_BATCH_FULL, // Batching on full
|
||||
LOC_API_ADAPTER_BATCHED_POSITION_REPORT, // Batching on fix
|
||||
LOC_API_ADAPTER_BATCHED_GENFENCE_BREACH_REPORT, //
|
||||
LOC_API_ADAPTER_GNSS_MEASUREMENT_REPORT, //GNSS Measurement Report
|
||||
LOC_API_ADAPTER_GNSS_SV_POLYNOMIAL_REPORT, //GNSS SV Polynomial Report
|
||||
LOC_API_ADAPTER_GDT_UPLOAD_BEGIN_REQ, // GDT upload start request
|
||||
LOC_API_ADAPTER_GDT_UPLOAD_END_REQ, // GDT upload end request
|
||||
LOC_API_ADAPTER_GNSS_MEASUREMENT, // GNSS Measurement report
|
||||
|
@ -430,6 +444,8 @@ enum loc_api_adapter_event_index {
|
|||
#define LOC_API_ADAPTER_BIT_REQUEST_WIFI_AP_DATA (1<<LOC_API_ADAPTER_REQUEST_WIFI_AP_DATA)
|
||||
#define LOC_API_ADAPTER_BIT_BATCH_FULL (1<<LOC_API_ADAPTER_BATCH_FULL)
|
||||
#define LOC_API_ADAPTER_BIT_BATCHED_POSITION_REPORT (1<<LOC_API_ADAPTER_BATCHED_POSITION_REPORT)
|
||||
#define LOC_API_ADAPTER_BIT_GNSS_MEASUREMENT_REPORT (1<<LOC_API_ADAPTER_GNSS_MEASUREMENT_REPORT)
|
||||
#define LOC_API_ADAPTER_BIT_GNSS_SV_POLYNOMIAL_REPORT (1<<LOC_API_ADAPTER_GNSS_SV_POLYNOMIAL_REPORT)
|
||||
#define LOC_API_ADAPTER_BIT_GDT_UPLOAD_BEGIN_REQ (1<<LOC_API_ADAPTER_GDT_UPLOAD_BEGIN_REQ)
|
||||
#define LOC_API_ADAPTER_BIT_GDT_UPLOAD_END_REQ (1<<LOC_API_ADAPTER_GDT_UPLOAD_END_REQ)
|
||||
#define LOC_API_ADAPTER_BIT_GNSS_MEASUREMENT (1<<LOC_API_ADAPTER_GNSS_MEASUREMENT)
|
||||
|
@ -457,6 +473,593 @@ typedef uint32_t LOC_GPS_LOCK_MASK;
|
|||
#define isGpsLockMT(lock) ((lock) & ((LOC_GPS_LOCK_MASK)2))
|
||||
#define isGpsLockAll(lock) (((lock) & ((LOC_GPS_LOCK_MASK)3)) == 3)
|
||||
|
||||
/*++ ***********************************************
|
||||
** Satellite Measurement and Satellite Polynomial
|
||||
** Structure definitions
|
||||
** ***********************************************
|
||||
--*/
|
||||
#define GNSS_SV_POLY_VELOCITY_COEF_MAX_SIZE 12
|
||||
#define GNSS_SV_POLY_XYZ_0_TH_ORDER_COEFF_MAX_SIZE 3
|
||||
#define GNSS_SV_POLY_XYZ_N_TH_ORDER_COEFF_MAX_SIZE 9
|
||||
#define GNSS_SV_POLY_SV_CLKBIAS_COEFF_MAX_SIZE 4
|
||||
#define GNSS_LOC_SV_MEAS_LIST_MAX_SIZE 16
|
||||
|
||||
enum ulp_gnss_sv_measurement_valid_flags{
|
||||
|
||||
ULP_GNSS_SV_MEAS_GPS_TIME = 0,
|
||||
ULP_GNSS_SV_MEAS_PSUEDO_RANGE,
|
||||
ULP_GNSS_SV_MEAS_MS_IN_WEEK,
|
||||
ULP_GNSS_SV_MEAS_SUB_MSEC,
|
||||
ULP_GNSS_SV_MEAS_CARRIER_PHASE,
|
||||
ULP_GNSS_SV_MEAS_DOPPLER_SHIFT,
|
||||
ULP_GNSS_SV_MEAS_CNO,
|
||||
ULP_GNSS_SV_MEAS_LOSS_OF_LOCK,
|
||||
|
||||
ULP_GNSS_SV_MEAS_MAX_VALID_FLAGS
|
||||
};
|
||||
|
||||
#define ULP_GNSS_SV_MEAS_BIT_GPS_TIME (1<<ULP_GNSS_SV_MEAS_GPS_TIME)
|
||||
#define ULP_GNSS_SV_MEAS_BIT_PSUEDO_RANGE (1<<ULP_GNSS_SV_MEAS_PSUEDO_RANGE)
|
||||
#define ULP_GNSS_SV_MEAS_BIT_MS_IN_WEEK (1<<ULP_GNSS_SV_MEAS_MS_IN_WEEK)
|
||||
#define ULP_GNSS_SV_MEAS_BIT_SUB_MSEC (1<<ULP_GNSS_SV_MEAS_SUB_MSEC)
|
||||
#define ULP_GNSS_SV_MEAS_BIT_CARRIER_PHASE (1<<ULP_GNSS_SV_MEAS_CARRIER_PHASE)
|
||||
#define ULP_GNSS_SV_MEAS_BIT_DOPPLER_SHIFT (1<<ULP_GNSS_SV_MEAS_DOPPLER_SHIFT)
|
||||
#define ULP_GNSS_SV_MEAS_BIT_CNO (1<<ULP_GNSS_SV_MEAS_CNO)
|
||||
#define ULP_GNSS_SV_MEAS_BIT_LOSS_OF_LOCK (1<<ULP_GNSS_SV_MEAS_LOSS_OF_LOCK)
|
||||
|
||||
enum ulp_gnss_sv_poly_valid_flags{
|
||||
|
||||
ULP_GNSS_SV_POLY_GLO_FREQ = 0,
|
||||
ULP_GNSS_SV_POLY_T0,
|
||||
ULP_GNSS_SV_POLY_IODE,
|
||||
ULP_GNSS_SV_POLY_FLAG,
|
||||
ULP_GNSS_SV_POLY_POLYCOEFF_XYZ0,
|
||||
ULP_GNSS_SV_POLY_POLYCOEFF_XYZN,
|
||||
ULP_GNSS_SV_POLY_POLYCOEFF_OTHER,
|
||||
ULP_GNSS_SV_POLY_SV_POSUNC,
|
||||
ULP_GNSS_SV_POLY_IONODELAY,
|
||||
ULP_GNSS_SV_POLY_IONODOT,
|
||||
ULP_GNSS_SV_POLY_SBAS_IONODELAY,
|
||||
ULP_GNSS_SV_POLY_SBAS_IONODOT,
|
||||
ULP_GNSS_SV_POLY_TROPODELAY,
|
||||
ULP_GNSS_SV_POLY_ELEVATION,
|
||||
ULP_GNSS_SV_POLY_ELEVATIONDOT,
|
||||
ULP_GNSS_SV_POLY_ELEVATIONUNC,
|
||||
ULP_GNSS_SV_POLY_VELO_COEFF,
|
||||
ULP_GNSS_SV_POLY_ENHANCED_IOD,
|
||||
|
||||
ULP_GNSS_SV_POLY_VALID_FLAGS
|
||||
|
||||
};
|
||||
|
||||
#define ULP_GNSS_SV_POLY_BIT_GLO_FREQ (1<<ULP_GNSS_SV_POLY_GLO_FREQ)
|
||||
#define ULP_GNSS_SV_POLY_BIT_T0 (1<<ULP_GNSS_SV_POLY_T0)
|
||||
#define ULP_GNSS_SV_POLY_BIT_IODE (1<<ULP_GNSS_SV_POLY_IODE)
|
||||
#define ULP_GNSS_SV_POLY_BIT_FLAG (1<<ULP_GNSS_SV_POLY_FLAG)
|
||||
#define ULP_GNSS_SV_POLY_BIT_POLYCOEFF_XYZ0 (1<<ULP_GNSS_SV_POLY_POLYCOEFF_XYZ0)
|
||||
#define ULP_GNSS_SV_POLY_BIT_POLYCOEFF_XYZN (1<<ULP_GNSS_SV_POLY_POLYCOEFF_XYZN)
|
||||
#define ULP_GNSS_SV_POLY_BIT_POLYCOEFF_OTHER (1<<ULP_GNSS_SV_POLY_POLYCOEFF_OTHER)
|
||||
#define ULP_GNSS_SV_POLY_BIT_SV_POSUNC (1<<ULP_GNSS_SV_POLY_SV_POSUNC)
|
||||
#define ULP_GNSS_SV_POLY_BIT_IONODELAY (1<<ULP_GNSS_SV_POLY_IONODELAY)
|
||||
#define ULP_GNSS_SV_POLY_BIT_IONODOT (1<<ULP_GNSS_SV_POLY_IONODOT)
|
||||
#define ULP_GNSS_SV_POLY_BIT_SBAS_IONODELAY (1<<ULP_GNSS_SV_POLY_SBAS_IONODELAY)
|
||||
#define ULP_GNSS_SV_POLY_BIT_SBAS_IONODOT (1<<ULP_GNSS_SV_POLY_SBAS_IONODOT)
|
||||
#define ULP_GNSS_SV_POLY_BIT_TROPODELAY (1<<ULP_GNSS_SV_POLY_TROPODELAY)
|
||||
#define ULP_GNSS_SV_POLY_BIT_ELEVATION (1<<ULP_GNSS_SV_POLY_ELEVATION)
|
||||
#define ULP_GNSS_SV_POLY_BIT_ELEVATIONDOT (1<<ULP_GNSS_SV_POLY_ELEVATIONDOT)
|
||||
#define ULP_GNSS_SV_POLY_BIT_ELEVATIONUNC (1<<ULP_GNSS_SV_POLY_ELEVATIONUNC)
|
||||
#define ULP_GNSS_SV_POLY_BIT_VELO_COEFF (1<<ULP_GNSS_SV_POLY_VELO_COEFF)
|
||||
#define ULP_GNSS_SV_POLY_BIT_ENHANCED_IOD (1<<ULP_GNSS_SV_POLY_ENHANCED_IOD)
|
||||
|
||||
|
||||
typedef enum
|
||||
{
|
||||
GNSS_LOC_SV_SYSTEM_GPS = 1,
|
||||
/**< GPS satellite. */
|
||||
GNSS_LOC_SV_SYSTEM_GALILEO = 2,
|
||||
/**< GALILEO satellite. */
|
||||
GNSS_LOC_SV_SYSTEM_SBAS = 3,
|
||||
/**< SBAS satellite. */
|
||||
GNSS_LOC_SV_SYSTEM_COMPASS = 4,
|
||||
/**< COMPASS satellite. */
|
||||
GNSS_LOC_SV_SYSTEM_GLONASS = 5,
|
||||
/**< GLONASS satellite. */
|
||||
GNSS_LOC_SV_SYSTEM_BDS = 6
|
||||
/**< BDS satellite. */
|
||||
} Gnss_LocSvSystemEnumType;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
GNSS_LOC_FREQ_SOURCE_INVALID = 0,
|
||||
/**< Source of the frequency is invalid */
|
||||
GNSS_LOC_FREQ_SOURCE_EXTERNAL = 1,
|
||||
/**< Source of the frequency is from external injection */
|
||||
GNSS_LOC_FREQ_SOURCE_PE_CLK_REPORT = 2,
|
||||
/**< Source of the frequency is from Navigation engine */
|
||||
GNSS_LOC_FREQ_SOURCE_UNKNOWN = 3
|
||||
/**< Source of the frequency is unknown */
|
||||
} Gnss_LocSourceofFreqEnumType;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
size_t size;
|
||||
float clockDrift;
|
||||
/**< Receiver clock Drift \n
|
||||
- Units: meter per sec \n
|
||||
*/
|
||||
float clockDriftUnc;
|
||||
/**< Receiver clock Drift uncertainty \n
|
||||
- Units: meter per sec \n
|
||||
*/
|
||||
Gnss_LocSourceofFreqEnumType sourceOfFreq;
|
||||
}Gnss_LocRcvrClockFrequencyInfoStructType;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
size_t size;
|
||||
uint8_t leapSec;
|
||||
/**< GPS time leap second delta to UTC time \n
|
||||
- Units: sec \n
|
||||
*/
|
||||
uint8_t leapSecUnc;
|
||||
/**< Uncertainty for GPS leap second \n
|
||||
- Units: sec \n
|
||||
*/
|
||||
}Gnss_LeapSecondInfoStructType;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
GNSS_LOC_SYS_TIME_BIAS_VALID = 0x01,
|
||||
/**< System time bias valid */
|
||||
GNSS_LOC_SYS_TIME_BIAS_UNC_VALID = 0x02,
|
||||
/**< System time bias uncertainty valid */
|
||||
}Gnss_LocInterSystemBiasValidMaskType;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
size_t size;
|
||||
uint32_t validMask;
|
||||
/* Validity mask as per Gnss_LocInterSystemBiasValidMaskType */
|
||||
|
||||
float timeBias;
|
||||
/**< System-1 to System-2 Time Bias \n
|
||||
- Units: msec \n
|
||||
*/
|
||||
float timeBiasUnc;
|
||||
/**< System-1 to System-2 Time Bias uncertainty \n
|
||||
- Units: msec \n
|
||||
*/
|
||||
}Gnss_InterSystemBiasStructType;
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
size_t size;
|
||||
uint16_t systemWeek;
|
||||
/**< System week number for GPS, BDS and GAL satellite systems. \n
|
||||
Set to 65535 when invalid or not available. \n
|
||||
Not valid for GLONASS system. \n
|
||||
*/
|
||||
|
||||
uint32_t systemMsec;
|
||||
/**< System time msec. Time of Week for GPS, BDS, GAL and
|
||||
Time of Day for GLONASS.
|
||||
- Units: msec \n
|
||||
*/
|
||||
float systemClkTimeBias;
|
||||
/**< System clock time bias \n
|
||||
- Units: msec \n
|
||||
System time = systemMsec - systemClkTimeBias \n
|
||||
*/
|
||||
float systemClkTimeUncMs;
|
||||
/**< Single sided maximum time bias uncertainty \n
|
||||
- Units: msec \n
|
||||
*/
|
||||
}Gnss_LocSystemTimeStructType;
|
||||
|
||||
typedef struct {
|
||||
|
||||
size_t size;
|
||||
uint8_t gloFourYear;
|
||||
/**< GLONASS four year number from 1996. Refer to GLONASS ICD.\n
|
||||
Applicable only for GLONASS and shall be ignored for other constellations. \n
|
||||
If unknown shall be set to 255
|
||||
*/
|
||||
|
||||
uint16_t gloDays;
|
||||
/**< GLONASS day number in four years. Refer to GLONASS ICD.
|
||||
Applicable only for GLONASS and shall be ignored for other constellations. \n
|
||||
If unknown shall be set to 65535
|
||||
*/
|
||||
|
||||
uint32_t gloMsec;
|
||||
/**< GLONASS time of day in msec. Refer to GLONASS ICD.
|
||||
- Units: msec \n
|
||||
*/
|
||||
|
||||
float gloClkTimeBias;
|
||||
/**< System clock time bias (sub-millisecond) \n
|
||||
- Units: msec \n
|
||||
System time = systemMsec - systemClkTimeBias \n
|
||||
*/
|
||||
|
||||
float gloClkTimeUncMs;
|
||||
/**< Single sided maximum time bias uncertainty \n
|
||||
- Units: msec \n
|
||||
*/
|
||||
}Gnss_LocGloTimeStructType; /* Type */
|
||||
|
||||
typedef struct {
|
||||
|
||||
size_t size;
|
||||
uint32_t refFCount;
|
||||
/**< Receiver frame counter value at reference tick */
|
||||
|
||||
uint8_t systemRtc_valid;
|
||||
/**< Validity indicator for System RTC */
|
||||
|
||||
uint64_t systemRtcMs;
|
||||
/**< Platform system RTC value \n
|
||||
- Units: msec \n
|
||||
*/
|
||||
|
||||
uint32_t sourceOfTime;
|
||||
/**< Source of time information */
|
||||
|
||||
}Gnss_LocGnssTimeExtStructType;
|
||||
|
||||
|
||||
|
||||
typedef enum
|
||||
{
|
||||
GNSS_LOC_MEAS_STATUS_NULL = 0x00000000,
|
||||
/**< No information state */
|
||||
GNSS_LOC_MEAS_STATUS_SM_VALID = 0x00000001,
|
||||
/**< Code phase is known */
|
||||
GNSS_LOC_MEAS_STATUS_SB_VALID = 0x00000002,
|
||||
/**< Sub-bit time is known */
|
||||
GNSS_LOC_MEAS_STATUS_MS_VALID = 0x00000004,
|
||||
/**< Satellite time is known */
|
||||
GNSS_LOC_MEAS_STATUS_BE_CONFIRM = 0x00000008,
|
||||
/**< Bit edge is confirmed from signal */
|
||||
GNSS_LOC_MEAS_STATUS_VELOCITY_VALID = 0x00000010,
|
||||
/**< Satellite Doppler measured */
|
||||
GNSS_LOC_MEAS_STATUS_VELOCITY_FINE = 0x00000020,
|
||||
/**< TRUE: Fine Doppler measured, FALSE: Coarse Doppler measured */
|
||||
GNSS_LOC_MEAS_STATUS_FROM_RNG_DIFF = 0x00000200,
|
||||
/**< Range update from Satellite differences */
|
||||
GNSS_LOC_MEAS_STATUS_FROM_VE_DIFF = 0x00000400,
|
||||
/**< Doppler update from Satellite differences */
|
||||
GNSS_LOC_MEAS_STATUS_DONT_USE_X = 0x00000800,
|
||||
/**< Don't use measurement if bit is set */
|
||||
GNSS_LOC_MEAS_STATUS_DONT_USE_M = 0x000001000,
|
||||
/**< Don't use measurement if bit is set */
|
||||
GNSS_LOC_MEAS_STATUS_DONT_USE_D = 0x000002000,
|
||||
/**< Don't use measurement if bit is set */
|
||||
GNSS_LOC_MEAS_STATUS_DONT_USE_S = 0x000004000,
|
||||
/**< Don't use measurement if bit is set */
|
||||
GNSS_LOC_MEAS_STATUS_DONT_USE_P = 0x000008000
|
||||
/**< Don't use measurement if bit is set */
|
||||
}Gnss_LocSvMeasStatusMaskType;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
size_t size;
|
||||
uint32_t svMs;
|
||||
/**< Satellite time milisecond.\n
|
||||
For GPS, BDS, GAL range of 0 thru (604800000-1) \n
|
||||
For GLONASS range of 0 thru (86400000-1) \n
|
||||
Valid when PD_LOC_MEAS_STATUS_MS_VALID bit is set in measurement status \n
|
||||
Note: All SV times in the current measurement block are alredy propagated to common reference time epoch. \n
|
||||
- Units: msec \n
|
||||
*/
|
||||
float svSubMs;
|
||||
/**<Satellite time sub-millisecond. \n
|
||||
Total SV Time = svMs + svSubMs \n
|
||||
- Units: msec \n
|
||||
*/
|
||||
float svTimeUncMs;
|
||||
/**< Satellite Time uncertainty \n
|
||||
- Units: msec \n
|
||||
*/
|
||||
float dopplerShift;
|
||||
/**< Satellite Doppler \n
|
||||
- Units: meter per sec \n
|
||||
*/
|
||||
float dopplerShiftUnc;
|
||||
/**< Satellite Doppler uncertainty\n
|
||||
- Units: meter per sec \n
|
||||
*/
|
||||
}Gnss_LocSVTimeSpeedStructType;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
GNSS_SV_STATE_IDLE = 0,
|
||||
GNSS_SV_STATE_SEARCH = 1,
|
||||
GNSS_SV_STATE_SEARCH_VERIFY = 2,
|
||||
GNSS_SV_STATE_BIT_EDGE = 3,
|
||||
GNSS_SV_STATE_VERIFY_TRACK = 4,
|
||||
GNSS_SV_STATE_TRACK = 5,
|
||||
GNSS_SV_STATE_RESTART = 6,
|
||||
GNSS_SV_STATE_DPO_TRACK = 7
|
||||
} Gnss_LocSVStateEnumType;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
GNSS_LOC_SVINFO_MASK_HAS_EPHEMERIS = 0x01,
|
||||
/**< Ephemeris is available for this SV */
|
||||
GNSS_LOC_SVINFO_MASK_HAS_ALMANAC = 0x02
|
||||
/**< Almanac is available for this SV */
|
||||
}Gnss_LocSvInfoMaskT;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
GNSS_LOC_SV_SRCH_STATUS_IDLE = 1,
|
||||
/**< SV is not being actively processed */
|
||||
GNSS_LOC_SV_SRCH_STATUS_SEARCH = 2,
|
||||
/**< The system is searching for this SV */
|
||||
GNSS_LOC_SV_SRCH_STATUS_TRACK = 3
|
||||
/**< SV is being tracked */
|
||||
}Gnss_LocSvSearchStatusEnumT;
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
size_t size;
|
||||
uint16_t gnssSvId;
|
||||
/**< GNSS SV ID.
|
||||
\begin{itemize1}
|
||||
\item Range: \begin{itemize1}
|
||||
\item For GPS: 1 to 32
|
||||
\item For GLONASS: 1 to 32
|
||||
\item For SBAS: 120 to 151
|
||||
\item For BDS: 201 to 237
|
||||
\end{itemize1} \end{itemize1}
|
||||
The GPS and GLONASS SVs can be disambiguated using the system field.
|
||||
*/
|
||||
uint8_t gloFrequency;
|
||||
/**< GLONASS frequency number + 7 \n
|
||||
Valid only for GLONASS System \n
|
||||
Shall be ignored for all other systems \n
|
||||
- Range: 1 to 14 \n
|
||||
*/
|
||||
Gnss_LocSvSearchStatusEnumT svStatus;
|
||||
/**< Satellite search state \n
|
||||
@ENUM()
|
||||
*/
|
||||
bool healthStatus_valid;
|
||||
/**< SV Health Status validity flag\n
|
||||
- 0: Not valid \n
|
||||
- 1: Valid \n
|
||||
*/
|
||||
uint8_t healthStatus;
|
||||
/**< Health status.
|
||||
\begin{itemize1}
|
||||
\item Range: 0 to 1; 0 = unhealthy, \n 1 = healthy, 2 = unknown
|
||||
\vspace{-0.18in} \end{itemize1}
|
||||
*/
|
||||
Gnss_LocSvInfoMaskT svInfoMask;
|
||||
/**< Indicates whether almanac and ephemeris information is available. \n
|
||||
@MASK()
|
||||
*/
|
||||
uint64_t measurementStatus;
|
||||
/**< Bitmask indicating SV measurement status.
|
||||
Valid bitmasks: \n
|
||||
@MASK()
|
||||
*/
|
||||
uint16_t CNo;
|
||||
/**< Carrier to Noise ratio \n
|
||||
- Units: 0.1 dBHz \n
|
||||
*/
|
||||
uint16_t gloRfLoss;
|
||||
/**< GLONASS Rf loss reference to Antenna. \n
|
||||
- Units: dB, Scale: 0.1 \n
|
||||
*/
|
||||
bool lossOfLock;
|
||||
/**< Loss of signal lock indicator \n
|
||||
- 0: Signal in continuous track \n
|
||||
- 1: Signal not in track \n
|
||||
*/
|
||||
int16_t measLatency;
|
||||
/**< Age of the measurement. Positive value means measurement precedes ref time. \n
|
||||
- Units: msec \n
|
||||
*/
|
||||
Gnss_LocSVTimeSpeedStructType svTimeSpeed;
|
||||
/**< Unfiltered SV Time and Speed information
|
||||
*/
|
||||
float dopplerAccel;
|
||||
/**< Satellite Doppler Accelertion\n
|
||||
- Units: Hz/s \n
|
||||
*/
|
||||
bool multipathEstValid;
|
||||
/**< Multipath estimate validity flag\n
|
||||
- 0: Multipath estimate not valid \n
|
||||
- 1: Multipath estimate valid \n
|
||||
*/
|
||||
float multipathEstimate;
|
||||
/**< Estimate of multipath in measurement\n
|
||||
- Units: Meters \n
|
||||
*/
|
||||
bool fineSpeedValid;
|
||||
/**< Fine speed validity flag\n
|
||||
- 0: Fine speed not valid \n
|
||||
- 1: Fine speed valid \n
|
||||
*/
|
||||
float fineSpeed;
|
||||
/**< Carrier phase derived speed \n
|
||||
- Units: m/s \n
|
||||
*/
|
||||
bool fineSpeedUncValid;
|
||||
/**< Fine speed uncertainty validity flag\n
|
||||
- 0: Fine speed uncertainty not valid \n
|
||||
- 1: Fine speed uncertainty valid \n
|
||||
*/
|
||||
float fineSpeedUnc;
|
||||
/**< Carrier phase derived speed \n
|
||||
- Units: m/s \n
|
||||
*/
|
||||
bool carrierPhaseValid;
|
||||
/**< Carrier Phase measurement validity flag\n
|
||||
- 0: Carrier Phase not valid \n
|
||||
- 1: Carrier Phase valid \n
|
||||
*/
|
||||
double carrierPhase;
|
||||
/**< Carrier phase measurement [L1 cycles] \n
|
||||
*/
|
||||
bool cycleSlipCountValid;
|
||||
/**< Cycle slup count validity flag\n
|
||||
- 0: Not valid \n
|
||||
- 1: Valid \n
|
||||
*/
|
||||
uint8_t cycleSlipCount;
|
||||
/**< Increments when a CSlip is detected */
|
||||
|
||||
bool svDirectionValid;
|
||||
/**< Validity flag for SV direction */
|
||||
|
||||
float svAzimuth;
|
||||
/**< Satellite Azimuth
|
||||
- Units: radians \n
|
||||
*/
|
||||
float svElevation;
|
||||
/**< Satellite Elevation
|
||||
- Units: radians \n
|
||||
*/
|
||||
} Gnss_SVMeasurementStructType;
|
||||
|
||||
/**< Maximum number of satellites in measurement block for given system. */
|
||||
|
||||
typedef struct
|
||||
{
|
||||
size_t size;
|
||||
Gnss_LocSvSystemEnumType system;
|
||||
/**< Specifies the Satellite System Type
|
||||
*/
|
||||
bool isSystemTimeValid;
|
||||
/**< Indicates whether System Time is Valid:\n
|
||||
- 0x01 (TRUE) -- System Time is valid \n
|
||||
- 0x00 (FALSE) -- System Time is not valid
|
||||
*/
|
||||
Gnss_LocSystemTimeStructType systemTime;
|
||||
/**< System Time Information \n
|
||||
*/
|
||||
bool isGloTime_valid;
|
||||
Gnss_LocGloTimeStructType gloTime;
|
||||
|
||||
bool isSystemTimeExt_valid;
|
||||
Gnss_LocGnssTimeExtStructType systemTimeExt;
|
||||
|
||||
uint8_t numSvs;
|
||||
/* Number of SVs in this report block */
|
||||
|
||||
Gnss_SVMeasurementStructType svMeasurement[GNSS_LOC_SV_MEAS_LIST_MAX_SIZE];
|
||||
/**< Satellite measurement Information \n
|
||||
*/
|
||||
} Gnss_ClockMeasurementStructType;
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
size_t size;
|
||||
uint8_t seqNum;
|
||||
/**< Current message Number */
|
||||
uint8_t maxMessageNum;
|
||||
/**< Maximum number of message that will be sent for present time epoch. */
|
||||
|
||||
bool leapSecValid;
|
||||
Gnss_LeapSecondInfoStructType leapSec;
|
||||
|
||||
Gnss_InterSystemBiasStructType gpsGloInterSystemBias;
|
||||
|
||||
Gnss_InterSystemBiasStructType gpsBdsInterSystemBias;
|
||||
|
||||
Gnss_InterSystemBiasStructType gpsGalInterSystemBias;
|
||||
|
||||
Gnss_InterSystemBiasStructType bdsGloInterSystemBias;
|
||||
|
||||
Gnss_InterSystemBiasStructType galGloInterSystemBias;
|
||||
|
||||
Gnss_InterSystemBiasStructType galBdsInterSystemBias;
|
||||
|
||||
bool clockFreqValid;
|
||||
Gnss_LocRcvrClockFrequencyInfoStructType clockFreq; /* Freq */
|
||||
bool gnssMeasValid;
|
||||
Gnss_ClockMeasurementStructType gnssMeas;
|
||||
Gnss_ApTimeStampStructType timeStamp;
|
||||
|
||||
} GnssSvMeasurementSet;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
GNSS_SV_POLY_COEFF_VALID = 0x01,
|
||||
/**< SV position in orbit coefficients are valid */
|
||||
GNSS_SV_POLY_IONO_VALID = 0x02,
|
||||
/**< Iono estimates are valid */
|
||||
|
||||
GNSS_SV_POLY_TROPO_VALID = 0x04,
|
||||
/**< Tropo estimates are valid */
|
||||
|
||||
GNSS_SV_POLY_ELEV_VALID = 0x08,
|
||||
/**< Elevation, rate, uncertainty are valid */
|
||||
|
||||
GNSS_SV_POLY_SRC_ALM_CORR = 0x10,
|
||||
/**< Polynomials based on XTRA */
|
||||
|
||||
GNSS_SV_POLY_SBAS_IONO_VALID = 0x20,
|
||||
/**< SBAS IONO and rate are valid */
|
||||
|
||||
GNSS_SV_POLY_GLO_STR4 = 0x40
|
||||
/**< GLONASS String 4 has been received */
|
||||
}Gnss_SvPolyStatusMaskType;
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
size_t size;
|
||||
uint8_t gnssSvId;
|
||||
/* GPS: 1-32, GLO: 65-96, 0: Invalid
|
||||
All others are reserved
|
||||
*/
|
||||
int8_t freqNum;
|
||||
/* Freq index, only valid if u_SysInd is GLO */
|
||||
|
||||
uint8_t svPolyFlags;
|
||||
/* Indicate the validity of the elements
|
||||
as per Gnss_SvPolyStatusMaskType
|
||||
*/
|
||||
|
||||
uint32_t is_valid;
|
||||
|
||||
uint16_t iode;
|
||||
/* Ephemeris reference time
|
||||
GPS:Issue of Data Ephemeris used [unitless].
|
||||
GLO: Tb 7-bit, refer to ICD02
|
||||
*/
|
||||
double T0;
|
||||
/* Reference time for polynominal calculations
|
||||
GPS: Secs in week.
|
||||
GLO: Full secs since Jan/01/96
|
||||
*/
|
||||
double polyCoeffXYZ0[GNSS_SV_POLY_XYZ_0_TH_ORDER_COEFF_MAX_SIZE];
|
||||
/* C0X, C0Y, C0Z */
|
||||
double polyCoefXYZN[GNSS_SV_POLY_XYZ_N_TH_ORDER_COEFF_MAX_SIZE];
|
||||
/* C1X, C2X ... C2Z, C3Z */
|
||||
float polyCoefOther[GNSS_SV_POLY_SV_CLKBIAS_COEFF_MAX_SIZE];
|
||||
/* C0T, C1T, C2T, C3T */
|
||||
float svPosUnc; /* SV position uncertainty [m]. */
|
||||
float ionoDelay; /* Ionospheric delay at d_T0 [m]. */
|
||||
float ionoDot; /* Iono delay rate [m/s]. */
|
||||
float sbasIonoDelay;/* SBAS Ionospheric delay at d_T0 [m]. */
|
||||
float sbasIonoDot; /* SBAS Iono delay rate [m/s]. */
|
||||
float tropoDelay; /* Tropospheric delay [m]. */
|
||||
float elevation; /* Elevation [rad] at d_T0 */
|
||||
float elevationDot; /* Elevation rate [rad/s] */
|
||||
float elevationUnc; /* SV elevation [rad] uncertainty */
|
||||
double velCoef[GNSS_SV_POLY_VELOCITY_COEF_MAX_SIZE];
|
||||
/* Coefficients of velocity poly */
|
||||
uint32_t enhancedIOD; /* Enhanced Reference Time */
|
||||
} GnssSvPolynomial;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
|
|
42
etc/gps.conf
42
etc/gps.conf
|
@ -43,7 +43,7 @@ SUPL_ES=0
|
|||
#Choose PDN for Emergency SUPL
|
||||
#1 - Use emergency PDN
|
||||
#0 - Use regular SUPL PDN for Emergency SUPL
|
||||
USE_EMERGENCY_PDN_FOR_EMERGENCY_SUPL=1
|
||||
USE_EMERGENCY_PDN_FOR_EMERGENCY_SUPL=0
|
||||
|
||||
#SUPL_MODE is a bit mask set in config.xml per carrier by default.
|
||||
#If it is uncommented here, this value will overwrite the value from
|
||||
|
@ -138,3 +138,43 @@ LPPE_UP_TECHNOLOGY = 0
|
|||
# 0: disable
|
||||
# 1: enable
|
||||
AGPS_CONFIG_INJECT = 1
|
||||
# AP Coarse Timestamp Uncertainty
|
||||
##################################################
|
||||
# default : 10
|
||||
# or as per clock uncertainty of product
|
||||
AP_TIMESTAMP_UNCERTAINTY = 10
|
||||
|
||||
#####################################
|
||||
# GNSS PPS settings
|
||||
#####################################
|
||||
#AP DR engine availability status
|
||||
# 0 : NO AP DR (default)
|
||||
# 1 : AP DR enabled
|
||||
#EXTERNAL_DR_ENABLED = 0
|
||||
|
||||
#####################################
|
||||
#DR_SYNC Pulse Availability
|
||||
#####################################
|
||||
# 0 : DR_SYNC pulse not available (default)
|
||||
# 1 : DR_SYNC pulse available
|
||||
DR_SYNC_ENABLED = 0
|
||||
|
||||
#####################################
|
||||
#PPS Device name
|
||||
#####################################
|
||||
PPS_DEVICENAME = /dev/pps0
|
||||
|
||||
#####################################
|
||||
#AP Clock Accuracy
|
||||
#####################################
|
||||
AP_CLOCK_PPM = 100
|
||||
|
||||
#####################################
|
||||
#MAX ms difference to detect missing pulse
|
||||
#####################################
|
||||
MISSING_PULSE_TIME_DELTA = 900
|
||||
|
||||
#####################################
|
||||
#Propagation time uncertainty
|
||||
#####################################
|
||||
PROPAGATION_TIME_UNCERTAINTY = 1
|
||||
|
|
|
@ -395,6 +395,23 @@ void LocEngAdapter::reportSv(GnssSvStatus &svStatus,
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
void LocEngAdapter::reportSvMeasurement(GnssSvMeasurementSet &svMeasurementSet)
|
||||
{
|
||||
// We send SvMeasurementSet to AmtProxy/ULPProxy to be forwarded as necessary.
|
||||
if (! mUlp->reportSvMeasurement(svMeasurementSet)) {
|
||||
//Send to Internal Adapter later if needed by LA
|
||||
}
|
||||
}
|
||||
|
||||
void LocEngAdapter::reportSvPolynomial(GnssSvPolynomial &svPolynomial)
|
||||
{
|
||||
// We send SvMeasurementSet to AmtProxy/ULPProxy to be forwarded as necessary.
|
||||
if (! mUlp->reportSvPolynomial(svPolynomial)) {
|
||||
//Send to Internal Adapter later if needed by LA
|
||||
}
|
||||
}
|
||||
|
||||
void LocEngAdapter::setInSession(bool inSession)
|
||||
{
|
||||
mNavigating = inSession;
|
||||
|
|
|
@ -285,6 +285,8 @@ public:
|
|||
virtual void reportSv(GnssSvStatus &svStatus,
|
||||
GpsLocationExtended &locationExtended,
|
||||
void* svExt);
|
||||
virtual void reportSvMeasurement(GnssSvMeasurementSet &svMeasurementSet);
|
||||
virtual void reportSvPolynomial(GnssSvPolynomial &svPolynomial);
|
||||
virtual void reportStatus(GpsStatusValue status);
|
||||
virtual void reportNmea(const char* nmea, int length);
|
||||
virtual bool reportXtraServer(const char* url1, const char* url2,
|
||||
|
|
|
@ -44,6 +44,7 @@
|
|||
#include <errno.h>
|
||||
#include <LocDualContext.h>
|
||||
#include <platform_lib_includes.h>
|
||||
#include <cutils/properties.h>
|
||||
|
||||
using namespace loc_core;
|
||||
|
||||
|
@ -282,6 +283,7 @@ SIDE EFFECTS
|
|||
static int loc_init(GpsCallbacks* callbacks)
|
||||
{
|
||||
int retVal = -1;
|
||||
unsigned int target = (unsigned int) -1;
|
||||
ENTRY_LOG();
|
||||
LOC_API_ADAPTER_EVENT_MASK_T event;
|
||||
|
||||
|
@ -301,6 +303,17 @@ static int loc_init(GpsCallbacks* callbacks)
|
|||
LOC_API_ADAPTER_BIT_NMEA_1HZ_REPORT |
|
||||
LOC_API_ADAPTER_BIT_NI_NOTIFY_VERIFY_REQUEST;
|
||||
|
||||
target = loc_get_target();
|
||||
|
||||
/* If platform is "auto" and external dr enabled then enable
|
||||
** Measurement report and SV Polynomial report
|
||||
*/
|
||||
if((1 == gps_conf.EXTERNAL_DR_ENABLED))
|
||||
{
|
||||
event |= LOC_API_ADAPTER_BIT_GNSS_MEASUREMENT_REPORT |
|
||||
LOC_API_ADAPTER_BIT_GNSS_SV_POLYNOMIAL_REPORT;
|
||||
}
|
||||
|
||||
LocCallbacks clientCallbacks = {local_loc_cb, /* location_cb */
|
||||
callbacks->status_cb, /* status_cb */
|
||||
local_sv_cb, /* sv_status_cb */
|
||||
|
@ -578,10 +591,14 @@ const GpsGeofencingInterface* get_geofence_interface(void)
|
|||
}
|
||||
dlerror(); /* Clear any existing error */
|
||||
get_gps_geofence_interface = (get_gps_geofence_interface_function)dlsym(handle, "gps_geofence_get_interface");
|
||||
if ((error = dlerror()) != NULL || NULL == get_gps_geofence_interface) {
|
||||
if ((error = dlerror()) != NULL) {
|
||||
LOC_LOGE ("%s, dlsym for get_gps_geofence_interface failed, error = %s\n", __func__, error);
|
||||
goto exit;
|
||||
}
|
||||
}
|
||||
if (NULL == get_gps_geofence_interface) {
|
||||
LOC_LOGE ("%s, get_gps_geofence_interface is NULL\n", __func__);
|
||||
goto exit;
|
||||
}
|
||||
|
||||
geofence_interface = get_gps_geofence_interface();
|
||||
|
||||
|
|
|
@ -101,6 +101,7 @@ static const loc_param_s_type gps_conf_table[] =
|
|||
{"XTRA_SERVER_3", &gps_conf.XTRA_SERVER_3, NULL, 's'},
|
||||
{"USE_EMERGENCY_PDN_FOR_EMERGENCY_SUPL", &gps_conf.USE_EMERGENCY_PDN_FOR_EMERGENCY_SUPL, NULL, 'n'},
|
||||
{"AGPS_CONFIG_INJECT", &gps_conf.AGPS_CONFIG_INJECT, NULL, 'n'},
|
||||
{"EXTERNAL_DR_ENABLED", &gps_conf.EXTERNAL_DR_ENABLED, NULL, 'n'},
|
||||
};
|
||||
|
||||
static const loc_param_s_type sap_conf_table[] =
|
||||
|
@ -2230,6 +2231,9 @@ void loc_eng_delete_aiding_data(loc_eng_data_s_type &loc_eng_data, GpsAidingData
|
|||
ENTRY_LOG_CALLFLOW();
|
||||
INIT_CHECK(loc_eng_data.adapter, return);
|
||||
|
||||
//report delete aiding data to ULP to send to DRPlugin
|
||||
loc_eng_data.adapter->getUlpProxy()->reportDeleteAidingData(f);
|
||||
|
||||
loc_eng_data.adapter->sendMsg(new LocEngDelAidData(&loc_eng_data, f));
|
||||
|
||||
EXIT_LOG(%s, VOID_RET);
|
||||
|
|
|
@ -142,7 +142,6 @@ typedef struct loc_eng_data_s
|
|||
loc_ext_parser sv_ext_parser;
|
||||
} loc_eng_data_s_type;
|
||||
|
||||
|
||||
//loc_eng functions
|
||||
int loc_eng_init(loc_eng_data_s_type &loc_eng_data,
|
||||
LocCallbacks* callbacks,
|
||||
|
|
|
@ -85,7 +85,10 @@ LocThreadDelegate::LocThreadDelegate(LocThread::tCreate creator,
|
|||
if (mThandle) {
|
||||
// set thread name
|
||||
char lname[16];
|
||||
strlcpy(lname, threadName, sizeof(lname));
|
||||
int len = (sizeof(lname)>sizeof(threadName)) ?
|
||||
(sizeof(threadName) -1):(sizeof(lname) - 1);
|
||||
memcpy(lname, threadName, len);
|
||||
lname[len] = 0;
|
||||
// set the thread name here
|
||||
pthread_setname_np(mThandle, lname);
|
||||
|
||||
|
|
Loading…
Reference in a new issue