summaryrefslogtreecommitdiff
path: root/android
diff options
context:
space:
mode:
authorqctecmdr <qctecmdr@localhost>2020-05-31 21:19:15 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2020-05-31 21:19:15 -0700
commit0419ebdf8adc285da618f0de9abdbf8dcccad4ae (patch)
treea5b0a3292fb1b78b7cfffaad4e117db1c132de76 /android
parent3ab3be2d376028ca537527115f90e982eac39e23 (diff)
parent573c900e49ed4591d68395b9419a49ef3c2b4472 (diff)
Merge "modify the ageTimeNanos' threshold value"
Diffstat (limited to 'android')
-rwxr-xr-x[-rw-r--r--]android/2.0/location_api/LocationUtil.cpp11
-rw-r--r--android/2.0/location_api/MeasurementAPIClient.cpp11
-rw-r--r--android/2.1/location_api/LocationUtil.cpp11
-rw-r--r--android/2.1/location_api/MeasurementAPIClient.cpp11
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);