From f6fd3ae9a3281e35037695d432ca6568b4619223 Mon Sep 17 00:00:00 2001 From: Andrzej Popowski Date: Thu, 21 Apr 2016 12:12:34 +0200 Subject: [PATCH] [HAM] - timestamp in pedometer limited to seconds Change-Id: I19e036ff4ddd4f8da8a3aa7d40641195aa0c7774 Signed-off-by: Andrzej Popowski --- .../humanactivitymonitor_manager.cc | 26 +++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/src/humanactivitymonitor/humanactivitymonitor_manager.cc b/src/humanactivitymonitor/humanactivitymonitor_manager.cc index d75da607..12224d3a 100755 --- a/src/humanactivitymonitor/humanactivitymonitor_manager.cc +++ b/src/humanactivitymonitor/humanactivitymonitor_manager.cc @@ -104,6 +104,28 @@ struct PedometerDataWrapper : public sensor_pedometer_data_t { } }; +static int64_t getCurrentTimeStamp(unsigned long long evTime) +{ + LoggerD("Enter"); + struct timespec t; + unsigned long long systemCurrentTime = 0; + unsigned long long realCurrentTime = 0; + unsigned long long timeDiff = 0; + int64_t timeStamp = 0; + + //get current system monotonic time + clock_gettime(CLOCK_MONOTONIC, &t); + systemCurrentTime = ((unsigned long long)(t.tv_sec)*1000000000LL + t.tv_nsec) /1000000; //convert millisecond + timeDiff = (systemCurrentTime - (evTime/1000)); + + //get current epoch time(millisecond) + clock_gettime(CLOCK_REALTIME, &t); + realCurrentTime = ((unsigned long long)(t.tv_sec)*1000000000LL + t.tv_nsec) /1000000; + timeStamp =static_cast(realCurrentTime -timeDiff); + + return timeStamp; +} + void InsertStepDifference(float step_difference, float timestamp, picojson::array* out) { ScopeLogger(); @@ -929,10 +951,10 @@ HumanActivityMonitorManager::HumanActivityMonitorManager() if (pedometer_data->diffs_count > 0) { for (int i = 0; i < pedometer_data->diffs_count; ++i) { - InsertStepDifference(pedometer_data->diffs[i].steps, pedometer_data->diffs[i].timestamp, &diffs); + InsertStepDifference(pedometer_data->diffs[i].steps, getCurrentTimeStamp(pedometer_data->diffs[i].timestamp) / 1000, &diffs); } } else { - InsertStepDifference(steps_so_far > 0.0 ? pedometer_data->steps() - steps_so_far : 0.0, pedometer_data->timestamp, &diffs); + InsertStepDifference(steps_so_far > 0.0 ? pedometer_data->steps() - steps_so_far : 0.0, getCurrentTimeStamp(pedometer_data->timestamp) / 1000, &diffs); } steps_so_far = pedometer_data->steps(); -- 2.34.1