Merge "New structures and handling of new data in the pipe"
This commit is contained in:
commit
8e120b1ed9
9 changed files with 150 additions and 16 deletions
|
@ -90,6 +90,17 @@ public:
|
||||||
(void) systemInfo;
|
(void) systemInfo;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline virtual bool gnssReportKlobucharIonoModel(const GnssKlobucharIonoModel& ionoModel) {
|
||||||
|
(void) ionoModel;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline virtual bool gnssReportAdditionalSystemInfo(
|
||||||
|
const GnssAdditionalSystemInfo& additionalSystemInfo) {
|
||||||
|
(void) additionalSystemInfo;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef std::function<void(const UlpLocation& ulpLocation,
|
typedef std::function<void(const UlpLocation& ulpLocation,
|
||||||
|
|
|
@ -191,4 +191,12 @@ DEFAULT_IMPL(false)
|
||||||
bool LocAdapterBase::
|
bool LocAdapterBase::
|
||||||
reportDeleteAidingDataEvent(GnssAidingData & /*aidingData*/)
|
reportDeleteAidingDataEvent(GnssAidingData & /*aidingData*/)
|
||||||
DEFAULT_IMPL(false)
|
DEFAULT_IMPL(false)
|
||||||
|
|
||||||
|
bool LocAdapterBase::
|
||||||
|
reportKlobucharIonoModelEvent(GnssKlobucharIonoModel& /*ionoModel*/)
|
||||||
|
DEFAULT_IMPL(false)
|
||||||
|
|
||||||
|
bool LocAdapterBase::
|
||||||
|
reportGnssAdditionalSystemInfoEvent(GnssAdditionalSystemInfo& /*additionalSystemInfo*/)
|
||||||
|
DEFAULT_IMPL(false)
|
||||||
} // namespace loc_core
|
} // namespace loc_core
|
||||||
|
|
|
@ -172,6 +172,9 @@ public:
|
||||||
virtual bool requestOdcpiEvent(OdcpiRequestInfo& request);
|
virtual bool requestOdcpiEvent(OdcpiRequestInfo& request);
|
||||||
virtual bool reportGnssEngEnergyConsumedEvent(uint64_t energyConsumedSinceFirstBoot);
|
virtual bool reportGnssEngEnergyConsumedEvent(uint64_t energyConsumedSinceFirstBoot);
|
||||||
virtual bool reportDeleteAidingDataEvent(GnssAidingData &aidingData);
|
virtual bool reportDeleteAidingDataEvent(GnssAidingData &aidingData);
|
||||||
|
virtual bool reportKlobucharIonoModelEvent(GnssKlobucharIonoModel& ionoModel);
|
||||||
|
virtual bool reportGnssAdditionalSystemInfoEvent(
|
||||||
|
GnssAdditionalSystemInfo& additionalSystemInfo);
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace loc_core
|
} // namespace loc_core
|
||||||
|
|
|
@ -380,6 +380,16 @@ void LocApiBase::reportDeleteAidingDataEvent(GnssAidingData& aidingData) {
|
||||||
TO_1ST_HANDLING_LOCADAPTERS(mLocAdapters[i]->reportDeleteAidingDataEvent(aidingData));
|
TO_1ST_HANDLING_LOCADAPTERS(mLocAdapters[i]->reportDeleteAidingDataEvent(aidingData));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void LocApiBase::reportKlobucharIonoModel(GnssKlobucharIonoModel & ionoModel) {
|
||||||
|
// loop through adapters, and deliver to the first handling adapter.
|
||||||
|
TO_1ST_HANDLING_LOCADAPTERS(mLocAdapters[i]->reportKlobucharIonoModelEvent(ionoModel));
|
||||||
|
}
|
||||||
|
|
||||||
|
void LocApiBase::reportGnssAdditionalSystemInfo(GnssAdditionalSystemInfo& additionalSystemInfo) {
|
||||||
|
// loop through adapters, and deliver to the first handling adapter.
|
||||||
|
TO_1ST_HANDLING_LOCADAPTERS(mLocAdapters[i]->reportGnssAdditionalSystemInfoEvent(
|
||||||
|
additionalSystemInfo));
|
||||||
|
}
|
||||||
|
|
||||||
void LocApiBase::reportSv(GnssSvNotification& svNotify)
|
void LocApiBase::reportSv(GnssSvNotification& svNotify)
|
||||||
{
|
{
|
||||||
|
|
|
@ -187,6 +187,8 @@ public:
|
||||||
void requestOdcpi(OdcpiRequestInfo& request);
|
void requestOdcpi(OdcpiRequestInfo& request);
|
||||||
void reportGnssEngEnergyConsumedEvent(uint64_t energyConsumedSinceFirstBoot);
|
void reportGnssEngEnergyConsumedEvent(uint64_t energyConsumedSinceFirstBoot);
|
||||||
void reportDeleteAidingDataEvent(GnssAidingData& aidingData);
|
void reportDeleteAidingDataEvent(GnssAidingData& aidingData);
|
||||||
|
void reportKlobucharIonoModel(GnssKlobucharIonoModel& ionoModel);
|
||||||
|
void reportGnssAdditionalSystemInfo(GnssAdditionalSystemInfo& additionalSystemInfo);
|
||||||
|
|
||||||
// downward calls
|
// downward calls
|
||||||
// All below functions are to be defined by adapter specific modules:
|
// All below functions are to be defined by adapter specific modules:
|
||||||
|
|
|
@ -1944,6 +1944,7 @@ GnssAdapter::updateClientsEventMask()
|
||||||
mask |= LOC_API_ADAPTER_BIT_PARSED_UNPROPAGATED_POSITION_REPORT;
|
mask |= LOC_API_ADAPTER_BIT_PARSED_UNPROPAGATED_POSITION_REPORT;
|
||||||
mask |= LOC_API_ADAPTER_BIT_GNSS_SV_EPHEMERIS_REPORT;
|
mask |= LOC_API_ADAPTER_BIT_GNSS_SV_EPHEMERIS_REPORT;
|
||||||
mask |= LOC_API_ADAPTER_BIT_LOC_SYSTEM_INFO;
|
mask |= LOC_API_ADAPTER_BIT_LOC_SYSTEM_INFO;
|
||||||
|
mask |= LOC_API_ADAPTER_BIT_EVENT_REPORT_INFO;
|
||||||
|
|
||||||
LOC_LOGd("Auto usecase, Enable MEAS/POLY/EPHEMERIS - mask 0x%" PRIx64 "",
|
LOC_LOGd("Auto usecase, Enable MEAS/POLY/EPHEMERIS - mask 0x%" PRIx64 "",
|
||||||
mask);
|
mask);
|
||||||
|
@ -3591,24 +3592,24 @@ void GnssAdapter::requestOdcpi(const OdcpiRequestInfo& request)
|
||||||
bool GnssAdapter::reportDeleteAidingDataEvent(GnssAidingData& aidingData)
|
bool GnssAdapter::reportDeleteAidingDataEvent(GnssAidingData& aidingData)
|
||||||
{
|
{
|
||||||
LOC_LOGD("%s]:", __func__);
|
LOC_LOGD("%s]:", __func__);
|
||||||
|
mEngHubProxy->gnssDeleteAidingData(aidingData);
|
||||||
struct MsgHandleDeleteAidingDataEvent : public LocMsg {
|
|
||||||
GnssAdapter& mAdapter;
|
|
||||||
GnssAidingData mData;
|
|
||||||
inline MsgHandleDeleteAidingDataEvent(GnssAdapter& adapter,
|
|
||||||
GnssAidingData& data) :
|
|
||||||
LocMsg(),
|
|
||||||
mAdapter(adapter),
|
|
||||||
mData(data) {}
|
|
||||||
inline virtual void proc() const {
|
|
||||||
mAdapter.mEngHubProxy->gnssDeleteAidingData(mData);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
sendMsg(new MsgHandleDeleteAidingDataEvent(*this, aidingData));
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool GnssAdapter::reportKlobucharIonoModelEvent(GnssKlobucharIonoModel & ionoModel)
|
||||||
|
{
|
||||||
|
LOC_LOGD("%s]:", __func__);
|
||||||
|
mEngHubProxy->gnssReportKlobucharIonoModel(ionoModel);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool GnssAdapter::reportGnssAdditionalSystemInfoEvent(
|
||||||
|
GnssAdditionalSystemInfo & additionalSystemInfo)
|
||||||
|
{
|
||||||
|
LOC_LOGD("%s]:", __func__);
|
||||||
|
mEngHubProxy->gnssReportAdditionalSystemInfo(additionalSystemInfo);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
void GnssAdapter::initOdcpiCommand(const OdcpiRequestCallback& callback)
|
void GnssAdapter::initOdcpiCommand(const OdcpiRequestCallback& callback)
|
||||||
{
|
{
|
||||||
|
|
|
@ -356,6 +356,9 @@ public:
|
||||||
virtual bool releaseATL(int connHandle);
|
virtual bool releaseATL(int connHandle);
|
||||||
virtual bool requestOdcpiEvent(OdcpiRequestInfo& request);
|
virtual bool requestOdcpiEvent(OdcpiRequestInfo& request);
|
||||||
virtual bool reportDeleteAidingDataEvent(GnssAidingData& aidingData);
|
virtual bool reportDeleteAidingDataEvent(GnssAidingData& aidingData);
|
||||||
|
virtual bool reportKlobucharIonoModelEvent(GnssKlobucharIonoModel& ionoModel);
|
||||||
|
virtual bool reportGnssAdditionalSystemInfoEvent(
|
||||||
|
GnssAdditionalSystemInfo& additionalSystemInfo);
|
||||||
|
|
||||||
/* ======== UTILITIES ================================================================= */
|
/* ======== UTILITIES ================================================================= */
|
||||||
bool needReport(const UlpLocation& ulpLocation,
|
bool needReport(const UlpLocation& ulpLocation,
|
||||||
|
|
|
@ -545,6 +545,14 @@ typedef enum {
|
||||||
GNSS_SIGNAL_SBAS_L1 = (1<<17)
|
GNSS_SIGNAL_SBAS_L1 = (1<<17)
|
||||||
} GnssSignalTypeBits;
|
} GnssSignalTypeBits;
|
||||||
|
|
||||||
|
#define GNSS_SIGNAL_TYPE_MASK_ALL\
|
||||||
|
(GNSS_SIGNAL_GPS_L1CA | GNSS_SIGNAL_GPS_L1C | GNSS_SIGNAL_GPS_L2 |\
|
||||||
|
GNSS_SIGNAL_GPS_L5| GNSS_SIGNAL_GLONASS_G1 | GNSS_SIGNAL_GLONASS_G2 |\
|
||||||
|
GNSS_SIGNAL_GALILEO_E1 | GNSS_SIGNAL_GALILEO_E5A | GNSS_SIGNAL_GALILEO_E5B |\
|
||||||
|
GNSS_SIGNAL_BEIDOU_B1I | GNSS_SIGNAL_BEIDOU_B1C | GNSS_SIGNAL_BEIDOU_B2I|\
|
||||||
|
GNSS_SIGNAL_BEIDOU_B2AI | GNSS_SIGNAL_QZSS_L1CA | GNSS_SIGNAL_QZSS_L1S |\
|
||||||
|
GNSS_SIGNAL_QZSS_L2| GNSS_SIGNAL_QZSS_L5 | GNSS_SIGNAL_SBAS_L1)
|
||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
GNSS_LOC_SV_SYSTEM_UNKNOWN = 0,
|
GNSS_LOC_SV_SYSTEM_UNKNOWN = 0,
|
||||||
|
|
|
@ -407,6 +407,13 @@ typedef uint32_t LocPosDataMask;
|
||||||
/* Bitmask to specify whether Navigation data has Body pitch Unc*/
|
/* Bitmask to specify whether Navigation data has Body pitch Unc*/
|
||||||
#define LOC_NAV_DATA_HAS_PITCH_UNC ((LocPosDataMask)0x0200)
|
#define LOC_NAV_DATA_HAS_PITCH_UNC ((LocPosDataMask)0x0200)
|
||||||
|
|
||||||
|
typedef uint32_t GnssAdditionalSystemInfoMask;
|
||||||
|
/* Bitmask to specify whether Tauc is valid */
|
||||||
|
#define GNSS_ADDITIONAL_SYSTEMINFO_HAS_TAUC ((GnssAdditionalSystemInfoMask)0x0001)
|
||||||
|
/* Bitmask to specify whether leapSec is valid */
|
||||||
|
#define GNSS_ADDITIONAL_SYSTEMINFO_HAS_LEAP_SEC ((GnssAdditionalSystemInfoMask)0x0002)
|
||||||
|
|
||||||
|
|
||||||
/** GPS PRN Range */
|
/** GPS PRN Range */
|
||||||
#define GPS_SV_PRN_MIN 1
|
#define GPS_SV_PRN_MIN 1
|
||||||
#define GPS_SV_PRN_MAX 32
|
#define GPS_SV_PRN_MAX 32
|
||||||
|
@ -856,6 +863,7 @@ enum loc_api_adapter_event_index {
|
||||||
LOC_API_ADAPTER_GNSS_SV_EPHEMERIS_REPORT, // GNSS SV Ephemeris Report
|
LOC_API_ADAPTER_GNSS_SV_EPHEMERIS_REPORT, // GNSS SV Ephemeris Report
|
||||||
LOC_API_ADAPTER_LOC_SYSTEM_INFO, // Location system info event
|
LOC_API_ADAPTER_LOC_SYSTEM_INFO, // Location system info event
|
||||||
LOC_API_ADAPTER_GNSS_NHZ_MEASUREMENT_REPORT, // GNSS SV nHz measurement report
|
LOC_API_ADAPTER_GNSS_NHZ_MEASUREMENT_REPORT, // GNSS SV nHz measurement report
|
||||||
|
LOC_API_ADAPTER_EVENT_REPORT_INFO, // Event report info
|
||||||
LOC_API_ADAPTER_EVENT_MAX
|
LOC_API_ADAPTER_EVENT_MAX
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -897,6 +905,7 @@ enum loc_api_adapter_event_index {
|
||||||
#define LOC_API_ADAPTER_BIT_GNSS_SV_EPHEMERIS_REPORT (1ULL<<LOC_API_ADAPTER_GNSS_SV_EPHEMERIS_REPORT)
|
#define LOC_API_ADAPTER_BIT_GNSS_SV_EPHEMERIS_REPORT (1ULL<<LOC_API_ADAPTER_GNSS_SV_EPHEMERIS_REPORT)
|
||||||
#define LOC_API_ADAPTER_BIT_LOC_SYSTEM_INFO (1ULL<<LOC_API_ADAPTER_LOC_SYSTEM_INFO)
|
#define LOC_API_ADAPTER_BIT_LOC_SYSTEM_INFO (1ULL<<LOC_API_ADAPTER_LOC_SYSTEM_INFO)
|
||||||
#define LOC_API_ADAPTER_BIT_GNSS_NHZ_MEASUREMENT (1ULL<<LOC_API_ADAPTER_GNSS_NHZ_MEASUREMENT_REPORT)
|
#define LOC_API_ADAPTER_BIT_GNSS_NHZ_MEASUREMENT (1ULL<<LOC_API_ADAPTER_GNSS_NHZ_MEASUREMENT_REPORT)
|
||||||
|
#define LOC_API_ADAPTER_BIT_EVENT_REPORT_INFO (1ULL<<LOC_API_ADAPTER_EVENT_REPORT_INFO)
|
||||||
|
|
||||||
typedef uint64_t LOC_API_ADAPTER_EVENT_MASK_T;
|
typedef uint64_t LOC_API_ADAPTER_EVENT_MASK_T;
|
||||||
|
|
||||||
|
@ -1060,7 +1069,8 @@ typedef struct
|
||||||
/**< System-1 to System-2 Time Bias uncertainty \n
|
/**< System-1 to System-2 Time Bias uncertainty \n
|
||||||
- Units: msec \n
|
- Units: msec \n
|
||||||
*/
|
*/
|
||||||
}Gnss_InterSystemBiasStructType;
|
} Gnss_InterSystemBiasStructType;
|
||||||
|
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|
||||||
|
@ -1330,6 +1340,10 @@ typedef uint64_t GpsSvMeasHeaderFlags;
|
||||||
#define GNSS_SV_MEAS_HEADER_HAS_GAL_SYSTEM_TIME_EXT 0x00008000
|
#define GNSS_SV_MEAS_HEADER_HAS_GAL_SYSTEM_TIME_EXT 0x00008000
|
||||||
#define GNSS_SV_MEAS_HEADER_HAS_BDS_SYSTEM_TIME_EXT 0x00010000
|
#define GNSS_SV_MEAS_HEADER_HAS_BDS_SYSTEM_TIME_EXT 0x00010000
|
||||||
#define GNSS_SV_MEAS_HEADER_HAS_QZSS_SYSTEM_TIME_EXT 0x00020000
|
#define GNSS_SV_MEAS_HEADER_HAS_QZSS_SYSTEM_TIME_EXT 0x00020000
|
||||||
|
#define GNSS_SV_MEAS_HEADER_HAS_GPSL1L5_TIME_BIAS 0x00040000
|
||||||
|
#define GNSS_SV_MEAS_HEADER_HAS_GALE1E5A_TIME_BIAS 0x00080000
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
|
@ -1349,6 +1363,8 @@ typedef struct
|
||||||
Gnss_InterSystemBiasStructType bdsGloInterSystemBias;
|
Gnss_InterSystemBiasStructType bdsGloInterSystemBias;
|
||||||
Gnss_InterSystemBiasStructType galGloInterSystemBias;
|
Gnss_InterSystemBiasStructType galGloInterSystemBias;
|
||||||
Gnss_InterSystemBiasStructType galBdsInterSystemBias;
|
Gnss_InterSystemBiasStructType galBdsInterSystemBias;
|
||||||
|
Gnss_InterSystemBiasStructType gpsL1L5TimeBias;
|
||||||
|
Gnss_InterSystemBiasStructType galE1E5aTimeBias;
|
||||||
|
|
||||||
GnssSystemTimeStructType gpsSystemTime;
|
GnssSystemTimeStructType gpsSystemTime;
|
||||||
GnssSystemTimeStructType galSystemTime;
|
GnssSystemTimeStructType galSystemTime;
|
||||||
|
@ -1373,6 +1389,7 @@ typedef struct {
|
||||||
GnssSvMeasurementHeader svMeasSetHeader;
|
GnssSvMeasurementHeader svMeasSetHeader;
|
||||||
uint32_t svMeasCount;
|
uint32_t svMeasCount;
|
||||||
Gnss_SVMeasurementStructType svMeas[GNSS_LOC_SV_MEAS_LIST_MAX_SIZE];
|
Gnss_SVMeasurementStructType svMeas[GNSS_LOC_SV_MEAS_LIST_MAX_SIZE];
|
||||||
|
|
||||||
} GnssSvMeasurementSet;
|
} GnssSvMeasurementSet;
|
||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
|
@ -1857,6 +1874,10 @@ typedef struct {
|
||||||
Mandatory field */
|
Mandatory field */
|
||||||
Gnss_LocSvSystemEnumType gnssConstellation;
|
Gnss_LocSvSystemEnumType gnssConstellation;
|
||||||
|
|
||||||
|
/** GPS System Time of the ephemeris report */
|
||||||
|
bool isSystemTimeValid;
|
||||||
|
GnssSystemTimeStructType systemTime;
|
||||||
|
|
||||||
union {
|
union {
|
||||||
/** GPS Ephemeris */
|
/** GPS Ephemeris */
|
||||||
GpsEphemerisResponse gpsEphemeris;
|
GpsEphemerisResponse gpsEphemeris;
|
||||||
|
@ -1871,6 +1892,73 @@ typedef struct {
|
||||||
} ephInfo;
|
} ephInfo;
|
||||||
} GnssSvEphemerisReport;
|
} GnssSvEphemerisReport;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
/** GPS System Time of the iono model report */
|
||||||
|
bool isSystemTimeValid;
|
||||||
|
GnssSystemTimeStructType systemTime;
|
||||||
|
|
||||||
|
/** Indicates GNSS Constellation Type */
|
||||||
|
Gnss_LocSvSystemEnumType gnssConstellation;
|
||||||
|
|
||||||
|
float alpha0;
|
||||||
|
/**< Klobuchar Model Parameter Alpha 0.
|
||||||
|
- Type: float
|
||||||
|
- Unit: Seconds
|
||||||
|
*/
|
||||||
|
|
||||||
|
float alpha1;
|
||||||
|
/**< Klobuchar Model Parameter Alpha 1.
|
||||||
|
- Type: float
|
||||||
|
- Unit: Seconds / Semi-Circle
|
||||||
|
*/
|
||||||
|
|
||||||
|
float alpha2;
|
||||||
|
/**< Klobuchar Model Parameter Alpha 2.
|
||||||
|
- Type: float
|
||||||
|
- Unit: Seconds / Semi-Circle^2
|
||||||
|
*/
|
||||||
|
|
||||||
|
float alpha3;
|
||||||
|
/**< Klobuchar Model Parameter Alpha 3.
|
||||||
|
- Type: float
|
||||||
|
- Unit: Seconds / Semi-Circle^3
|
||||||
|
*/
|
||||||
|
|
||||||
|
float beta0;
|
||||||
|
/**< Klobuchar Model Parameter Beta 0.
|
||||||
|
- Type: float
|
||||||
|
- Unit: Seconds
|
||||||
|
*/
|
||||||
|
|
||||||
|
float beta1;
|
||||||
|
/**< Klobuchar Model Parameter Beta 1.
|
||||||
|
- Type: float
|
||||||
|
- Unit: Seconds / Semi-Circle
|
||||||
|
*/
|
||||||
|
|
||||||
|
float beta2;
|
||||||
|
/**< Klobuchar Model Parameter Beta 2.
|
||||||
|
- Type: float
|
||||||
|
- Unit: Seconds / Semi-Circle^2
|
||||||
|
*/
|
||||||
|
|
||||||
|
float beta3;
|
||||||
|
/**< Klobuchar Model Parameter Beta 3.
|
||||||
|
- Type: float
|
||||||
|
- Unit: Seconds / Semi-Circle^3
|
||||||
|
*/
|
||||||
|
} GnssKlobucharIonoModel;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
/** GPS System Time of the report */
|
||||||
|
bool isSystemTimeValid;
|
||||||
|
GnssSystemTimeStructType systemTime;
|
||||||
|
|
||||||
|
GnssAdditionalSystemInfoMask validityMask;
|
||||||
|
double tauC;
|
||||||
|
int8_t leapSec;
|
||||||
|
} GnssAdditionalSystemInfo;
|
||||||
|
|
||||||
/* Various Short Range Node Technology type*/
|
/* Various Short Range Node Technology type*/
|
||||||
typedef enum {
|
typedef enum {
|
||||||
SRN_AP_DATA_TECH_TYPE_NONE,
|
SRN_AP_DATA_TECH_TYPE_NONE,
|
||||||
|
|
Loading…
Reference in a new issue