diff --git a/gnss/GnssAdapter.cpp b/gnss/GnssAdapter.cpp index 87565d73..de4934f4 100644 --- a/gnss/GnssAdapter.cpp +++ b/gnss/GnssAdapter.cpp @@ -353,27 +353,27 @@ GnssAdapter::convertLocationInfo(GnssLocationInfoNotification& out, out.navSolutionMask = locationExtended.navSolutionMask; } if (GPS_LOCATION_EXTENDED_HAS_POS_TECH_MASK & locationExtended.flags) { - out.flags |= GPS_LOCATION_EXTENDED_HAS_POS_TECH_MASK; + out.flags |= GNSS_LOCATION_INFO_POS_TECH_MASK_BIT; out.posTechMask = locationExtended.tech_mask; } if (GPS_LOCATION_EXTENDED_HAS_POS_DYNAMICS_DATA & locationExtended.flags) { out.flags |= GPS_LOCATION_EXTENDED_HAS_POS_DYNAMICS_DATA; - if (locationExtended.bodyFrameData.bodyFrameDatamask & + if (locationExtended.bodyFrameData.bodyFrameDataMask & LOCATION_NAV_DATA_HAS_LONG_ACCEL_BIT) { out.bodyFrameData.bodyFrameDataMask |= LOCATION_NAV_DATA_HAS_LONG_ACCEL_BIT; } - if (locationExtended.bodyFrameData.bodyFrameDatamask & + if (locationExtended.bodyFrameData.bodyFrameDataMask & LOCATION_NAV_DATA_HAS_LAT_ACCEL_BIT) { out.bodyFrameData.bodyFrameDataMask |= LOCATION_NAV_DATA_HAS_LAT_ACCEL_BIT; } - if (locationExtended.bodyFrameData.bodyFrameDatamask & + if (locationExtended.bodyFrameData.bodyFrameDataMask & LOCATION_NAV_DATA_HAS_VERT_ACCEL_BIT) { out.bodyFrameData.bodyFrameDataMask |= LOCATION_NAV_DATA_HAS_VERT_ACCEL_BIT; } - if (locationExtended.bodyFrameData.bodyFrameDatamask & LOCATION_NAV_DATA_HAS_YAW_RATE_BIT) { + if (locationExtended.bodyFrameData.bodyFrameDataMask & LOCATION_NAV_DATA_HAS_YAW_RATE_BIT) { out.bodyFrameData.bodyFrameDataMask |= LOCATION_NAV_DATA_HAS_YAW_RATE_BIT; } - if (locationExtended.bodyFrameData.bodyFrameDatamask & LOCATION_NAV_DATA_HAS_PITCH_BIT) { + if (locationExtended.bodyFrameData.bodyFrameDataMask & LOCATION_NAV_DATA_HAS_PITCH_BIT) { out.bodyFrameData.bodyFrameDataMask |= LOCATION_NAV_DATA_HAS_PITCH_BIT; } out.bodyFrameData.longAccel = locationExtended.bodyFrameData.longAccel; @@ -1289,6 +1289,7 @@ GnssAdapter::gnssGetConfigCommand(GnssConfigFlagsMask configMask) { mAdapter.reportResponse(index, errs, mIds); delete[] errs; + } }; @@ -2686,6 +2687,7 @@ GnssAdapter::gnssNiResponseCommand(GnssNiResponse response, void* rawRequest) inline virtual ~MsgGnssNiResponse() { } inline virtual void proc() const { + const void *rawPayload = mPayload; mApi.informNiResponse(mResponse, mPayload); } }; diff --git a/gnss/GnssAdapter.h b/gnss/GnssAdapter.h index 7ca605af..55a558a1 100644 --- a/gnss/GnssAdapter.h +++ b/gnss/GnssAdapter.h @@ -258,6 +258,7 @@ public: void setControlCallbacksCommand(LocationControlCallbacks& controlCallbacks); void readConfigCommand(); void setConfigCommand(); + void requestUlpCommand(); void initEngHubProxyCommand(); uint32_t* gnssUpdateConfigCommand(GnssConfig config); uint32_t* gnssGetConfigCommand(GnssConfigFlagsMask mask); diff --git a/location/LocationDataTypes.h b/location/LocationDataTypes.h index 1b82e47d..1f2a422a 100644 --- a/location/LocationDataTypes.h +++ b/location/LocationDataTypes.h @@ -128,7 +128,17 @@ typedef enum { LOCATION_NAV_DATA_HAS_LAT_ACCEL_BIT = (1<<1), // Navigation data has Sideward Acceleration LOCATION_NAV_DATA_HAS_VERT_ACCEL_BIT = (1<<2), // Navigation data has Vertical Acceleration LOCATION_NAV_DATA_HAS_YAW_RATE_BIT = (1<<3), // Navigation data has Heading Rate - LOCATION_NAV_DATA_HAS_PITCH_BIT = (1<<4) // Navigation data has Body pitch + LOCATION_NAV_DATA_HAS_PITCH_BIT = (1<<4), // Navigation data has Body pitch + // Navigation data has Forward Acceleration uncertainty + LOCATION_NAV_DATA_HAS_LONG_ACCEL_UNC_BIT = (1<<5), + // Navigation data has Sideward Acceleration uncertainty + LOCATION_NAV_DATA_HAS_LAT_ACCEL_UNC_BIT = (1<<6), + // Navigation data has Vertical Acceleration uncertainty + LOCATION_NAV_DATA_HAS_VERT_ACCEL_UNC_BIT = (1<<7), + // Navigation data has Heading Rate uncertainty + LOCATION_NAV_DATA_HAS_YAW_RATE_UNC_BIT = (1<<8), + // Navigation data has Body pitch uncertainty + LOCATION_NAV_DATA_HAS_PITCH_UNC_BIT = (1<<9) } GnssLocationPosDataBits; typedef uint32_t GnssLocationInfoFlagMask; @@ -725,6 +735,11 @@ typedef struct { float vertAccel; // Vertical Acceleration in body frame (m/s2) float yawRate; // Heading Rate (Radians/second) float pitch; // Body pitch (Radians) + float longAccelUnc; // Uncertainty of Forward Acceleration in body frame + float latAccelUnc; // Uncertainty of Side-ward Acceleration in body frame + float vertAccelUnc; // Uncertainty of Vertical Acceleration in body frame + float yawRateUnc; // Uncertainty of Heading Rate + float pitchUnc; // Uncertainty of Body pitch } GnssLocationPositionDynamics; typedef struct { diff --git a/utils/gps_extended_c.h b/utils/gps_extended_c.h index a76b03df..b9bb11e7 100644 --- a/utils/gps_extended_c.h +++ b/utils/gps_extended_c.h @@ -663,7 +663,7 @@ typedef struct { /** SV Info source used in computing this fix */ LocSvInfoSource sv_source; /** Body Frame Dynamics: 4wayAcceleration and pitch set with validity */ - LocPositionDynamics bodyFrameData; + GnssLocationPositionDynamics bodyFrameData; /** GPS Time */ GPSTimeStruct gpsTime; GnssSystemTime gnssSystemTime; diff --git a/utils/loc_cfg.h b/utils/loc_cfg.h index 652d86eb..f0334d0b 100644 --- a/utils/loc_cfg.h +++ b/utils/loc_cfg.h @@ -37,7 +37,7 @@ #include #define LOC_MAX_PARAM_NAME 80 -#define LOC_MAX_PARAM_STRING 80 +#define LOC_MAX_PARAM_STRING 170 #define LOC_MAX_PARAM_LINE (LOC_MAX_PARAM_NAME + LOC_MAX_PARAM_STRING) #define LOC_FEATURE_MODE_DISABLED "DISABLED"