diff options
author | qctecmdr <qctecmdr@localhost> | 2020-05-31 21:19:15 -0700 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2020-05-31 21:19:15 -0700 |
commit | 0419ebdf8adc285da618f0de9abdbf8dcccad4ae (patch) | |
tree | a5b0a3292fb1b78b7cfffaad4e117db1c132de76 /android | |
parent | 3ab3be2d376028ca537527115f90e982eac39e23 (diff) | |
parent | 573c900e49ed4591d68395b9419a49ef3c2b4472 (diff) |
Merge "modify the ageTimeNanos' threshold value"
Diffstat (limited to 'android')
-rwxr-xr-x[-rw-r--r--] | android/2.0/location_api/LocationUtil.cpp | 11 | ||||
-rw-r--r-- | android/2.0/location_api/MeasurementAPIClient.cpp | 11 | ||||
-rw-r--r-- | android/2.1/location_api/LocationUtil.cpp | 11 | ||||
-rw-r--r-- | android/2.1/location_api/MeasurementAPIClient.cpp | 11 |
4 files changed, 32 insertions, 12 deletions
diff --git a/android/2.0/location_api/LocationUtil.cpp b/android/2.0/location_api/LocationUtil.cpp index 13a958a..868a201 100644..100755 --- a/android/2.0/location_api/LocationUtil.cpp +++ b/android/2.0/location_api/LocationUtil.cpp @@ -137,12 +137,17 @@ void convertGnssLocation(Location& in, V2_0::GnssLocation& out) if (currentTimeNanos >= locationTimeNanos) { int64_t ageTimeNanos = currentTimeNanos - locationTimeNanos; LOC_LOGD("%s]: ageTimeNanos:%" PRIi64 ")", __FUNCTION__, ageTimeNanos); - if (ageTimeNanos >= 0 && ageTimeNanos <= sinceBootTimeNanos) { + // the max trusted propagation time 30s for ageTimeNanos to avoid user setting + //wrong time, it will affect elapsedRealtimeNanos + if (ageTimeNanos >= 0 && ageTimeNanos <= 30000000000) { out.elapsedRealtime.flags |= ElapsedRealtimeFlags::HAS_TIMESTAMP_NS; out.elapsedRealtime.timestampNs = sinceBootTimeNanos - ageTimeNanos; out.elapsedRealtime.flags |= ElapsedRealtimeFlags::HAS_TIME_UNCERTAINTY_NS; - // time uncertainty is 1 ms since it is calculated from utc time that is in ms - out.elapsedRealtime.timeUncertaintyNs = 1000000; + // time uncertainty is the max value between abs(AP_UTC - MP_UTC) and 100ms, to + //verify if user change the sys time + out.elapsedRealtime.timeUncertaintyNs = + std::max((int64_t)abs(currentTimeNanos - locationTimeNanos), + (int64_t)100000000); LOC_LOGD("%s]: timestampNs:%" PRIi64 ")", __FUNCTION__, out.elapsedRealtime.timestampNs); } diff --git a/android/2.0/location_api/MeasurementAPIClient.cpp b/android/2.0/location_api/MeasurementAPIClient.cpp index 5894e46..6fe1d60 100644 --- a/android/2.0/location_api/MeasurementAPIClient.cpp +++ b/android/2.0/location_api/MeasurementAPIClient.cpp @@ -436,12 +436,17 @@ static void convertGnssData_2_0(GnssMeasurementsNotification& in, if (currentTimeNanos >= measTimeNanos) { int64_t ageTimeNanos = currentTimeNanos - measTimeNanos; LOC_LOGD("%s]: ageTimeNanos:%" PRIi64 ")", __FUNCTION__, ageTimeNanos); - if (ageTimeNanos >= 0 && ageTimeNanos <= sinceBootTimeNanos) { + // the max trusted propagation time 30s for ageTimeNanos to avoid user setting + //wrong time, it will affect elapsedRealtimeNanos + if (ageTimeNanos >= 0 && ageTimeNanos <= 30000000000) { out.elapsedRealtime.flags |= ElapsedRealtimeFlags::HAS_TIMESTAMP_NS; out.elapsedRealtime.timestampNs = sinceBootTimeNanos - ageTimeNanos; out.elapsedRealtime.flags |= ElapsedRealtimeFlags::HAS_TIME_UNCERTAINTY_NS; - // time uncertainty is 1 ms since it is calculated from utc time that is in ms - out.elapsedRealtime.timeUncertaintyNs = 1000000; + // time uncertainty is the max value between abs(AP_UTC - MP_UTC) and 100ms, to + //verify if user change the sys time + out.elapsedRealtime.timeUncertaintyNs = + std::max((int64_t)abs(currentTimeNanos - measTimeNanos), + (int64_t)100000000); LOC_LOGd("timestampNs:%" PRIi64 ") timeUncertaintyNs:%" PRIi64 ")", out.elapsedRealtime.timestampNs, out.elapsedRealtime.timeUncertaintyNs); diff --git a/android/2.1/location_api/LocationUtil.cpp b/android/2.1/location_api/LocationUtil.cpp index 47c3884..324f0ad 100644 --- a/android/2.1/location_api/LocationUtil.cpp +++ b/android/2.1/location_api/LocationUtil.cpp @@ -145,12 +145,17 @@ void convertGnssLocation(Location& in, V2_0::GnssLocation& out) if (currentTimeNanos >= locationTimeNanos) { int64_t ageTimeNanos = currentTimeNanos - locationTimeNanos; LOC_LOGD("%s]: ageTimeNanos:%" PRIi64 ")", __FUNCTION__, ageTimeNanos); - if (ageTimeNanos >= 0 && ageTimeNanos <= sinceBootTimeNanos) { + // the max trusted propagation time 30s for ageTimeNanos to avoid user setting + //wrong time, it will affect elapsedRealtimeNanos + if (ageTimeNanos >= 0 && ageTimeNanos <= 30000000000) { out.elapsedRealtime.flags |= ElapsedRealtimeFlags::HAS_TIMESTAMP_NS; out.elapsedRealtime.timestampNs = sinceBootTimeNanos - ageTimeNanos; out.elapsedRealtime.flags |= ElapsedRealtimeFlags::HAS_TIME_UNCERTAINTY_NS; - // time uncertainty is 1 ms since it is calculated from utc time that is in ms - out.elapsedRealtime.timeUncertaintyNs = 1000000; + // time uncertainty is the max value between abs(AP_UTC - MP_UTC) and 100ms, to + //verify if user change the sys time + out.elapsedRealtime.timeUncertaintyNs = + std::max((int64_t)abs(currentTimeNanos - locationTimeNanos), + (int64_t)100000000); LOC_LOGD("%s]: timestampNs:%" PRIi64 ")", __FUNCTION__, out.elapsedRealtime.timestampNs); } diff --git a/android/2.1/location_api/MeasurementAPIClient.cpp b/android/2.1/location_api/MeasurementAPIClient.cpp index 6479d62..cfe3974 100644 --- a/android/2.1/location_api/MeasurementAPIClient.cpp +++ b/android/2.1/location_api/MeasurementAPIClient.cpp @@ -638,12 +638,17 @@ static void convertElapsedRealtimeNanos(GnssMeasurementsNotification& in, if (currentTimeNanos >= measTimeNanos) { int64_t ageTimeNanos = currentTimeNanos - measTimeNanos; LOC_LOGD("%s]: ageTimeNanos:%" PRIi64 ")", __FUNCTION__, ageTimeNanos); - if (ageTimeNanos >= 0 && ageTimeNanos <= sinceBootTimeNanos) { + // the max trusted propagation time 30s for ageTimeNanos to avoid user setting + //wrong time, it will affect elapsedRealtimeNanos + if (ageTimeNanos >= 0 && ageTimeNanos <= 30000000000) { elapsedRealtime.flags |= V2_0::ElapsedRealtimeFlags::HAS_TIMESTAMP_NS; elapsedRealtime.timestampNs = sinceBootTimeNanos - ageTimeNanos; elapsedRealtime.flags |= V2_0::ElapsedRealtimeFlags::HAS_TIME_UNCERTAINTY_NS; - // time uncertainty is 1 ms since it is calculated from utc time that is in ms - elapsedRealtime.timeUncertaintyNs = 1000000; + // time uncertainty is the max value between abs(AP_UTC - MP_UTC) and 100ms, to + //verify if user change the sys time + elapsedRealtime.timeUncertaintyNs = + std::max((int64_t)abs(currentTimeNanos - measTimeNanos), + (int64_t)100000000); LOC_LOGd("timestampNs:%" PRIi64 ") timeUncertaintyNs:%" PRIi64 ")", elapsedRealtime.timestampNs, elapsedRealtime.timeUncertaintyNs); |