summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-06-22 23:01:22 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-06-22 23:01:22 +0000
commitbebb672576b05d95a05e29c6f249404dfa80ec8e (patch)
treecd03531daf8c11b010de5c025bc54a0065feb23b
parent4dd96d7b2604f3eb3b01306612ed157717312ec3 (diff)
parent796474c73c20d012093dbcf54bad360ddda9e30e (diff)
downloadgoldfish-android14-release.tar.gz
Change-Id: I8cc6360b10bef0e47fc1addaccaadea6807f5291
-rw-r--r--gnss/GnssMeasurementInterface.cpp48
-rw-r--r--gnss/GnssMeasurementInterface.h2
2 files changed, 31 insertions, 19 deletions
diff --git a/gnss/GnssMeasurementInterface.cpp b/gnss/GnssMeasurementInterface.cpp
index c280cebf..dcb91e95 100644
--- a/gnss/GnssMeasurementInterface.cpp
+++ b/gnss/GnssMeasurementInterface.cpp
@@ -42,7 +42,8 @@ void initGnssData(GnssData& data,
data.measurements.resize(nMeasurements);
}
-GnssMeasurement makeGnssMeasurement(const int svid,
+GnssMeasurement makeGnssMeasurement(const bool enableCorrVecOutputs,
+ const int svid,
const int state,
const int64_t receivedSvTimeInNs,
const int64_t receivedSvTimeUncertaintyInNs,
@@ -76,24 +77,28 @@ GnssMeasurement makeGnssMeasurement(const int svid,
m.accumulatedDeltaRangeUncertaintyM = accumulatedDeltaRangeUncertaintyM;
m.multipathIndicator = static_cast<GnssMultipathIndicator>(multipathIndicator);
+ if (enableCorrVecOutputs) {
+ const CorrelationVector correlationVector1 = {
+ .frequencyOffsetMps = 10,
+ .samplingWidthM = 30,
+ .samplingStartM = 0,
+ .magnitude = {0, 5000, 10000, 5000, 0, 0, 3000, 0}};
+
+ const CorrelationVector correlationVector2 = {
+ .frequencyOffsetMps = 20,
+ .samplingWidthM = 30,
+ .samplingStartM = -10,
+ .magnitude = {0, 3000, 5000, 3000, 0, 0, 1000, 0}};
+
+ m.correlationVectors = {correlationVector1, correlationVector2};
+ m.flags = GnssMeasurement::HAS_CORRELATION_VECTOR;
+ }
+
return m;
}
} // namsepace
-GnssMeasurementInterface::GnssMeasurementInterface() {
- mGnssData.resize(1);
-
- initGnssData(mGnssData[0], 139287, 116834000000, -1189181444165780000, 5.26068202130163, 7);
- mGnssData[0].measurements[0] = makeGnssMeasurement(22, 47, 3927349114, 29, 29.9917297363281, 245.509362821673, 0.148940800975766, 1, 6620.74237064615, 0.00271145859733223, 0, 1);
- mGnssData[0].measurements[1] = makeGnssMeasurement(23, 47, 3920005435, 14, 36.063377380371, -731.947951627658, 0.0769754027959242, 1, -23229.096048105, 0.00142954161856323, 0, 1);
- mGnssData[0].measurements[2] = makeGnssMeasurement(25, 47, 3923720994, 56, 24.5171585083007, -329.789995021822, 0.277918601850871, 1, -15511.1976492851, 0.00509250536561012, 0, 1);
- mGnssData[0].measurements[3] = makeGnssMeasurement(31, 47, 3925772934, 11, 37.9193840026855, -380.23772244582, 0.0602980729893803, 1, -11325.9094456612, 0.00115450704470276, 0, 1);
- mGnssData[0].measurements[4] = makeGnssMeasurement(32, 47, 3919018415, 21, 32.8980560302734, 581.800347848025, 0.109060249597082, 1, 15707.8963147985, 0.00205808319151401, 0, 1);
- mGnssData[0].measurements[5] = makeGnssMeasurement(10, 227, 69142929947304, 127, 23.432445526123, 259.17838762857, 0.31591691295607, 4, 8152.78081298147, 3.40282346638528E+38, 0, 3);
- mGnssData[0].measurements[6] = makeGnssMeasurement(2, 227, 69142935176327, 41, 33.180908203125, -53.8773853795901, 0.104984458760586, 1, -1708.08166640048, 0.00196184404194355, 0, 3);
-}
-
GnssMeasurementInterface::~GnssMeasurementInterface() {
closeImpl();
}
@@ -143,14 +148,21 @@ ndk::ScopedAStatus GnssMeasurementInterface::setCallbackImpl(
return ndk::ScopedAStatus::fromExceptionCode(FAILURE(IGnss::ERROR_INVALID_ARGUMENT));
}
- if (enableCorrVecOutputs) {
- return ndk::ScopedAStatus::fromExceptionCode(FAILURE(IGnss::ERROR_INVALID_ARGUMENT));
- }
-
if (intervalMs <= 0) {
return ndk::ScopedAStatus::fromExceptionCode(FAILURE(IGnss::ERROR_INVALID_ARGUMENT));
}
+ mGnssData.resize(1);
+
+ initGnssData(mGnssData[0], 139287, 116834000000, -1189181444165780000, 5.26068202130163, 7);
+ mGnssData[0].measurements[0] = makeGnssMeasurement(enableCorrVecOutputs, 22, 47, 3927349114, 29, 29.9917297363281, 245.509362821673, 0.148940800975766, 1, 6620.74237064615, 0.00271145859733223, 0, 1);
+ mGnssData[0].measurements[1] = makeGnssMeasurement(enableCorrVecOutputs, 23, 47, 3920005435, 14, 36.063377380371, -731.947951627658, 0.0769754027959242, 1, -23229.096048105, 0.00142954161856323, 0, 1);
+ mGnssData[0].measurements[2] = makeGnssMeasurement(enableCorrVecOutputs, 25, 47, 3923720994, 56, 24.5171585083007, -329.789995021822, 0.277918601850871, 1, -15511.1976492851, 0.00509250536561012, 0, 1);
+ mGnssData[0].measurements[3] = makeGnssMeasurement(enableCorrVecOutputs, 31, 47, 3925772934, 11, 37.9193840026855, -380.23772244582, 0.0602980729893803, 1, -11325.9094456612, 0.00115450704470276, 0, 1);
+ mGnssData[0].measurements[4] = makeGnssMeasurement(enableCorrVecOutputs, 32, 47, 3919018415, 21, 32.8980560302734, 581.800347848025, 0.109060249597082, 1, 15707.8963147985, 0.00205808319151401, 0, 1);
+ mGnssData[0].measurements[5] = makeGnssMeasurement(enableCorrVecOutputs, 10, 227, 69142929947304, 127, 23.432445526123, 259.17838762857, 0.31591691295607, 4, 8152.78081298147, 3.40282346638528E+38, 0, 3);
+ mGnssData[0].measurements[6] = makeGnssMeasurement(enableCorrVecOutputs, 2, 227, 69142935176327, 41, 33.180908203125, -53.8773853795901, 0.104984458760586, 1, -1708.08166640048, 0.00196184404194355, 0, 3);
+
const Clock::duration interval = std::chrono::milliseconds(intervalMs);
closeImpl();
diff --git a/gnss/GnssMeasurementInterface.h b/gnss/GnssMeasurementInterface.h
index 4bdd206f..7e9aff24 100644
--- a/gnss/GnssMeasurementInterface.h
+++ b/gnss/GnssMeasurementInterface.h
@@ -27,7 +27,7 @@ namespace gnss {
namespace implementation {
struct GnssMeasurementInterface : public BnGnssMeasurementInterface {
- GnssMeasurementInterface();
+ GnssMeasurementInterface() = default;
~GnssMeasurementInterface();
ndk::ScopedAStatus setCallback(const std::shared_ptr<IGnssMeasurementCallback>& callback,