Loading gnss/common/utils/default/Utils.cpp +79 −34 Original line number Diff line number Diff line Loading @@ -147,10 +147,13 @@ GnssDataV2_0 Utils::getMockMeasurementV2_0() { return gnssData; } GnssData Utils::getMockMeasurement(const bool enableCorrVecOutputs, const bool enableFullTracking) { namespace { GnssMeasurement getMockGnssMeasurement(int svid, GnssConstellationType constellationType, float cN0DbHz, float basebandCN0DbHz, double carrierFrequencyHz, bool enableCorrVecOutputs) { aidl::android::hardware::gnss::GnssSignalType signalType = { .constellation = GnssConstellationType::GLONASS, .carrierFrequencyHz = 1.59975e+09, .constellation = constellationType, .carrierFrequencyHz = carrierFrequencyHz, .codeType = aidl::android::hardware::gnss::GnssSignalType::CODE_TYPE_C, }; GnssMeasurement measurement = { Loading @@ -161,23 +164,23 @@ GnssData Utils::getMockMeasurement(const bool enableCorrVecOutputs, const bool e GnssMeasurement::HAS_SATELLITE_ISB | GnssMeasurement::HAS_SATELLITE_ISB_UNCERTAINTY | GnssMeasurement::HAS_SATELLITE_PVT, .svid = 13, .svid = svid, .signalType = signalType, .state = GnssMeasurement::STATE_CODE_LOCK | GnssMeasurement::STATE_BIT_SYNC | GnssMeasurement::STATE_SUBFRAME_SYNC | GnssMeasurement::STATE_TOW_DECODED | GnssMeasurement::STATE_GLO_STRING_SYNC | GnssMeasurement::STATE_GLO_TOD_DECODED, .receivedSvTimeInNs = 8195997131077, .receivedSvTimeUncertaintyInNs = 15, .antennaCN0DbHz = 30.0, .basebandCN0DbHz = 26.5, .agcLevelDb = 2.3, .antennaCN0DbHz = cN0DbHz, .basebandCN0DbHz = basebandCN0DbHz, .pseudorangeRateMps = -484.13739013671875, .pseudorangeRateUncertaintyMps = 0.1037999987602233, .accumulatedDeltaRangeState = GnssMeasurement::ADR_STATE_VALID, .accumulatedDeltaRangeM = 1.52, .accumulatedDeltaRangeUncertaintyM = 2.43, .multipathIndicator = aidl::android::hardware::gnss::GnssMultipathIndicator::UNKNOWN, .state = GnssMeasurement::STATE_CODE_LOCK | GnssMeasurement::STATE_BIT_SYNC | GnssMeasurement::STATE_SUBFRAME_SYNC | GnssMeasurement::STATE_TOW_DECODED | GnssMeasurement::STATE_GLO_STRING_SYNC | GnssMeasurement::STATE_GLO_TOD_DECODED, .agcLevelDb = 2.3, .fullInterSignalBiasNs = 21.5, .fullInterSignalBiasUncertaintyNs = 792.0, .satelliteInterSignalBiasNs = 233.9, Loading @@ -199,16 +202,69 @@ GnssData Utils::getMockMeasurement(const bool enableCorrVecOutputs, const bool e .satClkDriftMps = 0}, .ionoDelayMeters = 3.069949602639317e-08, .tropoDelayMeters = 3.882265204404031, .ephemerisSource = SatellitePvt::SatelliteEphemerisSource::SERVER_LONG_TERM, .timeOfClockSeconds = 12345, .issueOfDataClock = 143, .timeOfEphemerisSeconds = 9876, .issueOfDataEphemeris = 48, .ephemerisSource = SatellitePvt::SatelliteEphemerisSource::SERVER_LONG_TERM, }, .correlationVectors = {}}; GnssClock clock = {.gnssClockFlags = GnssClock::HAS_FULL_BIAS | GnssClock::HAS_BIAS | if (enableCorrVecOutputs) { aidl::android::hardware::gnss::CorrelationVector correlationVector1 = { .frequencyOffsetMps = 10, .samplingWidthM = 30, .samplingStartM = 0, .magnitude = {0, 5000, 10000, 5000, 0, 0, 3000, 0}}; aidl::android::hardware::gnss::CorrelationVector correlationVector2 = { .frequencyOffsetMps = 20, .samplingWidthM = 30, .samplingStartM = -10, .magnitude = {0, 3000, 5000, 3000, 0, 0, 1000, 0}}; measurement.correlationVectors = {correlationVector1, correlationVector2}; measurement.flags |= GnssMeasurement::HAS_CORRELATION_VECTOR; } return measurement; } } // namespace GnssData Utils::getMockMeasurement(const bool enableCorrVecOutputs, const bool enableFullTracking) { std::vector<GnssMeasurement> measurements = { // GPS getMockGnssMeasurement(3, GnssConstellationType::GPS, 32.5, 27.5, kGpsL1FreqHz, enableCorrVecOutputs), getMockGnssMeasurement(5, GnssConstellationType::GPS, 27.0, 22.0, kGpsL1FreqHz, enableCorrVecOutputs), getMockGnssMeasurement(17, GnssConstellationType::GPS, 30.5, 25.5, kGpsL5FreqHz, enableCorrVecOutputs), getMockGnssMeasurement(26, GnssConstellationType::GPS, 24.1, 19.1, kGpsL5FreqHz, enableCorrVecOutputs), // GAL getMockGnssMeasurement(2, GnssConstellationType::GALILEO, 33.5, 27.5, kGalE1FreqHz, enableCorrVecOutputs), getMockGnssMeasurement(4, GnssConstellationType::GALILEO, 28.0, 22.0, kGalE1FreqHz, enableCorrVecOutputs), getMockGnssMeasurement(10, GnssConstellationType::GALILEO, 35.5, 25.5, kGalE1FreqHz, enableCorrVecOutputs), getMockGnssMeasurement(29, GnssConstellationType::GALILEO, 34.1, 19.1, kGalE1FreqHz, enableCorrVecOutputs), // GLO getMockGnssMeasurement(5, GnssConstellationType::GLONASS, 20.5, 15.5, kGloG1FreqHz, enableCorrVecOutputs), getMockGnssMeasurement(17, GnssConstellationType::GLONASS, 21.5, 16.5, kGloG1FreqHz, enableCorrVecOutputs), getMockGnssMeasurement(18, GnssConstellationType::GLONASS, 28.3, 25.3, kGloG1FreqHz, enableCorrVecOutputs), getMockGnssMeasurement(10, GnssConstellationType::GLONASS, 25.0, 20.0, kGloG1FreqHz, enableCorrVecOutputs), // IRNSS getMockGnssMeasurement(3, GnssConstellationType::IRNSS, 22.0, 19.7, kIrnssL5FreqHz, enableCorrVecOutputs), }; GnssClock clock = { .gnssClockFlags = GnssClock::HAS_FULL_BIAS | GnssClock::HAS_BIAS | GnssClock::HAS_BIAS_UNCERTAINTY | GnssClock::HAS_DRIFT | GnssClock::HAS_DRIFT_UNCERTAINTY, .timeNs = 2713545000000, Loading @@ -218,7 +274,11 @@ GnssData Utils::getMockMeasurement(const bool enableCorrVecOutputs, const bool e .driftNsps = -51.757811607455452, .driftUncertaintyNsps = 310.64968328491528, .hwClockDiscontinuityCount = 1, .referenceSignalTypeForIsb = signalType}; .referenceSignalTypeForIsb = { .constellation = GnssConstellationType::GLONASS, .carrierFrequencyHz = 1.59975e+09, .codeType = aidl::android::hardware::gnss::GnssSignalType::CODE_TYPE_C, }}; ElapsedRealtime timestamp = { .flags = ElapsedRealtime::HAS_TIMESTAMP_NS | ElapsedRealtime::HAS_TIME_UNCERTAINTY_NS, Loading @@ -228,21 +288,6 @@ GnssData Utils::getMockMeasurement(const bool enableCorrVecOutputs, const bool e // or don't set the field. .timeUncertaintyNs = 1020400}; if (enableCorrVecOutputs) { aidl::android::hardware::gnss::CorrelationVector correlationVector1 = { .frequencyOffsetMps = 10, .samplingWidthM = 30, .samplingStartM = 0, .magnitude = {0, 5000, 10000, 5000, 0, 0, 3000, 0}}; aidl::android::hardware::gnss::CorrelationVector correlationVector2 = { .frequencyOffsetMps = 20, .samplingWidthM = 30, .samplingStartM = -10, .magnitude = {0, 3000, 5000, 3000, 0, 0, 1000, 0}}; measurement.correlationVectors = {correlationVector1, correlationVector2}; measurement.flags |= GnssMeasurement::HAS_CORRELATION_VECTOR; } GnssAgc gnssAgc1 = { .agcLevelDb = 3.5, .constellation = GnssConstellationType::GLONASS, Loading @@ -255,7 +300,7 @@ GnssData Utils::getMockMeasurement(const bool enableCorrVecOutputs, const bool e .carrierFrequencyHz = (int64_t)kGpsL1FreqHz, }; GnssData gnssData = {.measurements = {measurement}, GnssData gnssData = {.measurements = measurements, .clock = clock, .elapsedRealtime = timestamp, .gnssAgcs = std::vector({gnssAgc1, gnssAgc2}), Loading Loading
gnss/common/utils/default/Utils.cpp +79 −34 Original line number Diff line number Diff line Loading @@ -147,10 +147,13 @@ GnssDataV2_0 Utils::getMockMeasurementV2_0() { return gnssData; } GnssData Utils::getMockMeasurement(const bool enableCorrVecOutputs, const bool enableFullTracking) { namespace { GnssMeasurement getMockGnssMeasurement(int svid, GnssConstellationType constellationType, float cN0DbHz, float basebandCN0DbHz, double carrierFrequencyHz, bool enableCorrVecOutputs) { aidl::android::hardware::gnss::GnssSignalType signalType = { .constellation = GnssConstellationType::GLONASS, .carrierFrequencyHz = 1.59975e+09, .constellation = constellationType, .carrierFrequencyHz = carrierFrequencyHz, .codeType = aidl::android::hardware::gnss::GnssSignalType::CODE_TYPE_C, }; GnssMeasurement measurement = { Loading @@ -161,23 +164,23 @@ GnssData Utils::getMockMeasurement(const bool enableCorrVecOutputs, const bool e GnssMeasurement::HAS_SATELLITE_ISB | GnssMeasurement::HAS_SATELLITE_ISB_UNCERTAINTY | GnssMeasurement::HAS_SATELLITE_PVT, .svid = 13, .svid = svid, .signalType = signalType, .state = GnssMeasurement::STATE_CODE_LOCK | GnssMeasurement::STATE_BIT_SYNC | GnssMeasurement::STATE_SUBFRAME_SYNC | GnssMeasurement::STATE_TOW_DECODED | GnssMeasurement::STATE_GLO_STRING_SYNC | GnssMeasurement::STATE_GLO_TOD_DECODED, .receivedSvTimeInNs = 8195997131077, .receivedSvTimeUncertaintyInNs = 15, .antennaCN0DbHz = 30.0, .basebandCN0DbHz = 26.5, .agcLevelDb = 2.3, .antennaCN0DbHz = cN0DbHz, .basebandCN0DbHz = basebandCN0DbHz, .pseudorangeRateMps = -484.13739013671875, .pseudorangeRateUncertaintyMps = 0.1037999987602233, .accumulatedDeltaRangeState = GnssMeasurement::ADR_STATE_VALID, .accumulatedDeltaRangeM = 1.52, .accumulatedDeltaRangeUncertaintyM = 2.43, .multipathIndicator = aidl::android::hardware::gnss::GnssMultipathIndicator::UNKNOWN, .state = GnssMeasurement::STATE_CODE_LOCK | GnssMeasurement::STATE_BIT_SYNC | GnssMeasurement::STATE_SUBFRAME_SYNC | GnssMeasurement::STATE_TOW_DECODED | GnssMeasurement::STATE_GLO_STRING_SYNC | GnssMeasurement::STATE_GLO_TOD_DECODED, .agcLevelDb = 2.3, .fullInterSignalBiasNs = 21.5, .fullInterSignalBiasUncertaintyNs = 792.0, .satelliteInterSignalBiasNs = 233.9, Loading @@ -199,16 +202,69 @@ GnssData Utils::getMockMeasurement(const bool enableCorrVecOutputs, const bool e .satClkDriftMps = 0}, .ionoDelayMeters = 3.069949602639317e-08, .tropoDelayMeters = 3.882265204404031, .ephemerisSource = SatellitePvt::SatelliteEphemerisSource::SERVER_LONG_TERM, .timeOfClockSeconds = 12345, .issueOfDataClock = 143, .timeOfEphemerisSeconds = 9876, .issueOfDataEphemeris = 48, .ephemerisSource = SatellitePvt::SatelliteEphemerisSource::SERVER_LONG_TERM, }, .correlationVectors = {}}; GnssClock clock = {.gnssClockFlags = GnssClock::HAS_FULL_BIAS | GnssClock::HAS_BIAS | if (enableCorrVecOutputs) { aidl::android::hardware::gnss::CorrelationVector correlationVector1 = { .frequencyOffsetMps = 10, .samplingWidthM = 30, .samplingStartM = 0, .magnitude = {0, 5000, 10000, 5000, 0, 0, 3000, 0}}; aidl::android::hardware::gnss::CorrelationVector correlationVector2 = { .frequencyOffsetMps = 20, .samplingWidthM = 30, .samplingStartM = -10, .magnitude = {0, 3000, 5000, 3000, 0, 0, 1000, 0}}; measurement.correlationVectors = {correlationVector1, correlationVector2}; measurement.flags |= GnssMeasurement::HAS_CORRELATION_VECTOR; } return measurement; } } // namespace GnssData Utils::getMockMeasurement(const bool enableCorrVecOutputs, const bool enableFullTracking) { std::vector<GnssMeasurement> measurements = { // GPS getMockGnssMeasurement(3, GnssConstellationType::GPS, 32.5, 27.5, kGpsL1FreqHz, enableCorrVecOutputs), getMockGnssMeasurement(5, GnssConstellationType::GPS, 27.0, 22.0, kGpsL1FreqHz, enableCorrVecOutputs), getMockGnssMeasurement(17, GnssConstellationType::GPS, 30.5, 25.5, kGpsL5FreqHz, enableCorrVecOutputs), getMockGnssMeasurement(26, GnssConstellationType::GPS, 24.1, 19.1, kGpsL5FreqHz, enableCorrVecOutputs), // GAL getMockGnssMeasurement(2, GnssConstellationType::GALILEO, 33.5, 27.5, kGalE1FreqHz, enableCorrVecOutputs), getMockGnssMeasurement(4, GnssConstellationType::GALILEO, 28.0, 22.0, kGalE1FreqHz, enableCorrVecOutputs), getMockGnssMeasurement(10, GnssConstellationType::GALILEO, 35.5, 25.5, kGalE1FreqHz, enableCorrVecOutputs), getMockGnssMeasurement(29, GnssConstellationType::GALILEO, 34.1, 19.1, kGalE1FreqHz, enableCorrVecOutputs), // GLO getMockGnssMeasurement(5, GnssConstellationType::GLONASS, 20.5, 15.5, kGloG1FreqHz, enableCorrVecOutputs), getMockGnssMeasurement(17, GnssConstellationType::GLONASS, 21.5, 16.5, kGloG1FreqHz, enableCorrVecOutputs), getMockGnssMeasurement(18, GnssConstellationType::GLONASS, 28.3, 25.3, kGloG1FreqHz, enableCorrVecOutputs), getMockGnssMeasurement(10, GnssConstellationType::GLONASS, 25.0, 20.0, kGloG1FreqHz, enableCorrVecOutputs), // IRNSS getMockGnssMeasurement(3, GnssConstellationType::IRNSS, 22.0, 19.7, kIrnssL5FreqHz, enableCorrVecOutputs), }; GnssClock clock = { .gnssClockFlags = GnssClock::HAS_FULL_BIAS | GnssClock::HAS_BIAS | GnssClock::HAS_BIAS_UNCERTAINTY | GnssClock::HAS_DRIFT | GnssClock::HAS_DRIFT_UNCERTAINTY, .timeNs = 2713545000000, Loading @@ -218,7 +274,11 @@ GnssData Utils::getMockMeasurement(const bool enableCorrVecOutputs, const bool e .driftNsps = -51.757811607455452, .driftUncertaintyNsps = 310.64968328491528, .hwClockDiscontinuityCount = 1, .referenceSignalTypeForIsb = signalType}; .referenceSignalTypeForIsb = { .constellation = GnssConstellationType::GLONASS, .carrierFrequencyHz = 1.59975e+09, .codeType = aidl::android::hardware::gnss::GnssSignalType::CODE_TYPE_C, }}; ElapsedRealtime timestamp = { .flags = ElapsedRealtime::HAS_TIMESTAMP_NS | ElapsedRealtime::HAS_TIME_UNCERTAINTY_NS, Loading @@ -228,21 +288,6 @@ GnssData Utils::getMockMeasurement(const bool enableCorrVecOutputs, const bool e // or don't set the field. .timeUncertaintyNs = 1020400}; if (enableCorrVecOutputs) { aidl::android::hardware::gnss::CorrelationVector correlationVector1 = { .frequencyOffsetMps = 10, .samplingWidthM = 30, .samplingStartM = 0, .magnitude = {0, 5000, 10000, 5000, 0, 0, 3000, 0}}; aidl::android::hardware::gnss::CorrelationVector correlationVector2 = { .frequencyOffsetMps = 20, .samplingWidthM = 30, .samplingStartM = -10, .magnitude = {0, 3000, 5000, 3000, 0, 0, 1000, 0}}; measurement.correlationVectors = {correlationVector1, correlationVector2}; measurement.flags |= GnssMeasurement::HAS_CORRELATION_VECTOR; } GnssAgc gnssAgc1 = { .agcLevelDb = 3.5, .constellation = GnssConstellationType::GLONASS, Loading @@ -255,7 +300,7 @@ GnssData Utils::getMockMeasurement(const bool enableCorrVecOutputs, const bool e .carrierFrequencyHz = (int64_t)kGpsL1FreqHz, }; GnssData gnssData = {.measurements = {measurement}, GnssData gnssData = {.measurements = measurements, .clock = clock, .elapsedRealtime = timestamp, .gnssAgcs = std::vector({gnssAgc1, gnssAgc2}), Loading