stefan pushed a commit to branch master.
commit 763bdd161814ea885e754585dc388737cf19cf42
Author: Stefan Schmidt <[email protected]>
Date: Tue Apr 16 13:16:55 2013 +0100
eeze/sensor: Switch timestamp to relative values coming.
Switch from absolut microseconds since epoch to a monotonic clock with
realtive values. Switch from unsigned long long to double.
This aligns it with how we present time in efl. ecore_time_get is used
when possible. For the tizen modules we convert the the epoch timestamp
we get into a double. This is still a working monotone clock source.
As this will be released the first time with 1.8 we don't have any API
break here.
---
src/bin/eeze/eeze_sensor_test.c | 26 ++++-----
src/lib/eeze/Eeze_Sensor.h | 9 +--
src/lib/eeze/eeze_sensor.c | 2 +-
src/modules/eeze/sensor/fake/fake.c | 11 +---
src/modules/eeze/sensor/tizen/tizen.c | 103 ++++++++++++++++++----------------
src/tests/eeze/eeze_suite.c | 4 +-
6 files changed, 80 insertions(+), 75 deletions(-)
diff --git a/src/bin/eeze/eeze_sensor_test.c b/src/bin/eeze/eeze_sensor_test.c
index 3e80020..56eae9f 100644
--- a/src/bin/eeze/eeze_sensor_test.c
+++ b/src/bin/eeze/eeze_sensor_test.c
@@ -21,7 +21,7 @@ event_cb(void *data EINA_UNUSED, int ev_type, void *event)
Eeze_Sensor_Obj *sens = NULL;
float x, y, z;
int acc;
- unsigned long long timestamp;
+ double timestamp;
sens = event;
if (!sens) printf("can't find sensor!\n");
@@ -31,16 +31,16 @@ event_cb(void *data EINA_UNUSED, int ev_type, void *event)
if (ev_type == EEZE_SENSOR_EVENT_ACCELEROMETER)
{
if (!eeze_sensor_xyz_get(sens, &x, &y, &z)) printf("fail get xyz\n");
- printf("Accelerometer callback: accuracy %i, x %f, y %f, z %f at time:
%lli\n", acc, x, y, z, timestamp);
+ printf("Accelerometer callback: accuracy %i, x %f, y %f, z %f at time:
%f\n", acc, x, y, z, timestamp);
}
else if (ev_type == EEZE_SENSOR_EVENT_FACEDOWN)
- printf("Facedown callback at time: %lli\n", timestamp);
+ printf("Facedown callback at time: %f\n", timestamp);
else if (ev_type == EEZE_SENSOR_EVENT_DOUBLETAP)
- printf("Doubletap callback at time: %lli\n", timestamp);
+ printf("Doubletap callback at time: %f\n", timestamp);
else if (ev_type == EEZE_SENSOR_EVENT_SHAKE)
{
if (!eeze_sensor_x_get(sens, &x)) printf("fail get x\n");
- printf("Shake callback: accuracy %i, x %f at time: %lli\n", acc, x,
timestamp);
+ printf("Shake callback: accuracy %i, x %f at time: %f\n", acc, x,
timestamp);
}
return ECORE_CALLBACK_PASS_ON;
@@ -52,7 +52,7 @@ main(void)
Eeze_Sensor_Obj *sens;
float x, y, z;
int acc;
- unsigned long long timestamp;
+ double timestamp;
/* Init the subsystems we use to make sure they are ready to use. */
ecore_init();
@@ -74,7 +74,7 @@ main(void)
/* Here we read the timestamp the data was read out from the physical
* sensor. Can be used to detect how old the readout it.*/
if (!eeze_sensor_timestamp_get(sens, ×tamp)) printf("fail get
timestamp\n");
- printf("Magnetic output: accuracy %i, x %f, y %f, z %f at time:
%lli\n", acc, x, y, z, timestamp);
+ printf("Magnetic output: accuracy %i, x %f, y %f, z %f at time:
%f\n", acc, x, y, z, timestamp);
/* Free the sensor when we do not longer use it. */
eeze_sensor_free(sens);
}
@@ -87,7 +87,7 @@ main(void)
if (!eeze_sensor_xyz_get(sens, &x, &y, &z)) printf("fail get xyz\n");
if (!eeze_sensor_accuracy_get(sens, &acc)) printf("fail get
accuracy\n");
if (!eeze_sensor_timestamp_get(sens, ×tamp)) printf("fail get
timestamp\n");
- printf("Acceleromter output: accuracy %i, x %f, y %f, z %f at time:
%lli\n", acc, x, y, z, timestamp);
+ printf("Acceleromter output: accuracy %i, x %f, y %f, z %f at time:
%f\n", acc, x, y, z, timestamp);
eeze_sensor_free(sens);
}
else
@@ -99,7 +99,7 @@ main(void)
if (!eeze_sensor_xyz_get(sens, &x, &y, &z)) printf("fail get xyz\n");
if (!eeze_sensor_accuracy_get(sens, &acc)) printf("fail get
accuracy\n");
if (!eeze_sensor_timestamp_get(sens, ×tamp)) printf("fail get
timestamp\n");
- printf("Orientation output: accuracy %i, x %f, y %f, z %f at time:
%lli\n", acc, x, y, z, timestamp);
+ printf("Orientation output: accuracy %i, x %f, y %f, z %f at time:
%f\n", acc, x, y, z, timestamp);
eeze_sensor_free(sens);
}
else
@@ -111,7 +111,7 @@ main(void)
if (!eeze_sensor_xyz_get(sens, &x, &y, &z)) printf("fail get xyz\n");
if (!eeze_sensor_accuracy_get(sens, &acc)) printf("fail get
accuracy\n");
if (!eeze_sensor_timestamp_get(sens, ×tamp)) printf("fail get
timestamp\n");
- printf("Gyroscope output: accuracy %i, x %f, y %f, z %f at time:
%lli\n", acc, x, y, z, timestamp);
+ printf("Gyroscope output: accuracy %i, x %f, y %f, z %f at time:
%f\n", acc, x, y, z, timestamp);
eeze_sensor_free(sens);
}
else
@@ -123,7 +123,7 @@ main(void)
if (!eeze_sensor_x_get(sens, &x)) printf("fail get x\n");
if (!eeze_sensor_accuracy_get(sens, &acc)) printf("fail get
accuracy\n");
if (!eeze_sensor_timestamp_get(sens, ×tamp)) printf("fail get
timestamp\n");
- printf("Proximity output: accuracy %i, distance %f at time: %lli\n",
acc, x, timestamp);
+ printf("Proximity output: accuracy %i, distance %f at time: %f\n",
acc, x, timestamp);
eeze_sensor_free(sens);
}
else
@@ -135,7 +135,7 @@ main(void)
if (!eeze_sensor_x_get(sens, &x)) printf("fail get x\n");
if (!eeze_sensor_accuracy_get(sens, &acc)) printf("fail get
accuracy\n");
if (!eeze_sensor_timestamp_get(sens, ×tamp)) printf("fail get
timestamp\n");
- printf("Light output: accuracy %i, lux %f at time: %lli\n", acc, x,
timestamp);
+ printf("Light output: accuracy %i, lux %f at time: %f\n", acc, x,
timestamp);
eeze_sensor_free(sens);
}
else
@@ -153,7 +153,7 @@ main(void)
if (!eeze_sensor_x_get(sens, &x)) printf("fail get x\n");
if (!eeze_sensor_accuracy_get(sens, &acc)) printf("fail get
accuracy\n");
if (!eeze_sensor_timestamp_get(sens, ×tamp)) printf("fail get
timestamp\n");
- printf("Light output: accuracy %i, lux %f at time: %lli\n", acc, x,
timestamp);
+ printf("Light output: accuracy %i, lux %f at time: %f\n", acc, x,
timestamp);
eeze_sensor_free(sens);
}
else
diff --git a/src/lib/eeze/Eeze_Sensor.h b/src/lib/eeze/Eeze_Sensor.h
index 0575287..a1d3327 100644
--- a/src/lib/eeze/Eeze_Sensor.h
+++ b/src/lib/eeze/Eeze_Sensor.h
@@ -132,7 +132,8 @@ EAPI int EEZE_SENSOR_EVENT_TEMPERATURE;
* Object for a sensor type. Keeps information about the type and holds the
* data for the accessor functions. As this information gets also updated by
* asynchronous reads it might be a good idea to check the timestamp value to
- * see when the data has been updated. The timestamp is given in microseconds.
+ * see when the data has been updated. The timestamp is given as floating point
+ * value in seconds.
*
* You are not supposed to access the raw data values from here but use the
* getter functions for it. Using the raw values from this struct might break
@@ -145,7 +146,7 @@ typedef struct _Eeze_Sensor_Obj
Eeze_Sensor_Type type; /**< Sensor type see #Eeze_Sensor_Type */
int accuracy; /**< Accuracy of the sensor value */
float data[3]; /**< Sensor data depending on the sensor type */
- unsigned long long timestamp; /**< Timestamp of data read */
+ double timestamp; /**< Timestamp of data read */
Eina_Bool continuous_flow; /**< FUTURE USE: Continuous flow of sensor read
out */
} Eeze_Sensor_Obj;
@@ -255,11 +256,11 @@ EAPI Eina_Bool eeze_sensor_x_get(Eeze_Sensor_Obj *sens,
float *x);
*
* Access function to get the timestamp property from the sensor object. It
* allows you to determine if the values have been updated since the last time
- * you requested them.
+ * you requested them. Timestamp is given as a floating point value in seconds.
*
* @since 1.8
*/
-EAPI Eina_Bool eeze_sensor_timestamp_get(Eeze_Sensor_Obj *sens, unsigned long
long *timestamp);
+EAPI Eina_Bool eeze_sensor_timestamp_get(Eeze_Sensor_Obj *sens, double
*timestamp);
/**
* @brief Read out sensor data
diff --git a/src/lib/eeze/eeze_sensor.c b/src/lib/eeze/eeze_sensor.c
index f426901..3af4293 100644
--- a/src/lib/eeze/eeze_sensor.c
+++ b/src/lib/eeze/eeze_sensor.c
@@ -256,7 +256,7 @@ eeze_sensor_x_get(Eeze_Sensor_Obj *sens, float *x)
}
EAPI Eina_Bool
-eeze_sensor_timestamp_get(Eeze_Sensor_Obj *sens, unsigned long long *timestamp)
+eeze_sensor_timestamp_get(Eeze_Sensor_Obj *sens, double *timestamp)
{
if (!sens) return EINA_FALSE;
diff --git a/src/modules/eeze/sensor/fake/fake.c
b/src/modules/eeze/sensor/fake/fake.c
index 231f367..d8ff37b 100644
--- a/src/modules/eeze/sensor/fake/fake.c
+++ b/src/modules/eeze/sensor/fake/fake.c
@@ -55,7 +55,6 @@ Eina_Bool
fake_read(Eeze_Sensor_Type sensor_type, Eeze_Sensor_Obj *lobj)
{
Eeze_Sensor_Obj *obj = NULL;
- struct timeval tv;
obj = eeze_sensor_obj_get(sensor_type);
if (obj == NULL)
@@ -78,8 +77,7 @@ fake_read(Eeze_Sensor_Type sensor_type, Eeze_Sensor_Obj *lobj)
obj->data[0] = 7;
obj->data[1] = 23;
obj->data[2] = 42;
- gettimeofday(&tv, NULL);
- obj->timestamp = ((tv.tv_sec * 1000000) + tv.tv_usec);
+ obj->timestamp = ecore_time_get();
break;
case EEZE_SENSOR_TYPE_LIGHT:
@@ -88,8 +86,7 @@ fake_read(Eeze_Sensor_Type sensor_type, Eeze_Sensor_Obj *lobj)
case EEZE_SENSOR_TYPE_TEMPERATURE:
obj->accuracy = -1;
obj->data[0] = 7;
- gettimeofday(&tv, NULL);
- obj->timestamp = ((tv.tv_sec * 1000000) + tv.tv_usec);
+ obj->timestamp = ecore_time_get();
break;
default:
@@ -108,7 +105,6 @@ Eina_Bool
fake_async_read(Eeze_Sensor_Type sensor_type, void *user_data EINA_UNUSED)
{
Eeze_Sensor_Obj *obj = NULL;
- struct timeval tv;
obj = eeze_sensor_obj_get(sensor_type);
if (obj == NULL)
@@ -122,8 +118,7 @@ fake_async_read(Eeze_Sensor_Type sensor_type, void
*user_data EINA_UNUSED)
obj->data[0] = 7;
obj->data[1] = 23;
obj->data[2] = 42;
- gettimeofday(&tv, NULL);
- obj->timestamp = ((tv.tv_sec * 1000000) + tv.tv_usec);
+ obj->timestamp = ecore_time_get();
switch (sensor_type)
{
diff --git a/src/modules/eeze/sensor/tizen/tizen.c
b/src/modules/eeze/sensor/tizen/tizen.c
index 9dfe34d..0d4bbb1 100644
--- a/src/modules/eeze/sensor/tizen/tizen.c
+++ b/src/modules/eeze/sensor/tizen/tizen.c
@@ -165,6 +165,15 @@ tizen_to_eeze(sesnor_type_e type)
}
}
+/* We receive the timestamp in nanoseconds from the Tizen system lib. Convert
+ * it to seconds as floating point value which is used in our public API.
+ */
+double
+clock_convert(unsigned long long timestamp)
+{
+ return ((double)timestamp) / 1000000000.0;
+}
+
/* All following callback function work with the same scheme.
* They are callbacks coming in from the tizen system sensor library. With the
* data we receive we update the matching sensor object to always have the
@@ -189,7 +198,7 @@ accelerometer_cb(unsigned long long timestamp,
sensor_data_accuracy_e accuracy,
obj->data[0] = x;
obj->data[1] = y;
obj->data[2] = z;
- obj->timestamp = timestamp;
+ obj->timestamp = clock_convert(timestamp);
ecore_event_add(EEZE_SENSOR_EVENT_ACCELEROMETER, obj, NULL, NULL);
sensor_stop(sensor_handle, eeze_to_tizen(EEZE_SENSOR_TYPE_ACCELEROMETER));
}
@@ -209,7 +218,7 @@ gravity_cb(unsigned long long timestamp,
sensor_data_accuracy_e accuracy, float
obj->data[0] = x;
obj->data[1] = y;
obj->data[2] = z;
- obj->timestamp = timestamp;
+ obj->timestamp = clock_convert(timestamp);
ecore_event_add(EEZE_SENSOR_EVENT_GRAVITY, obj, NULL, NULL);
sensor_stop(sensor_handle, eeze_to_tizen(EEZE_SENSOR_TYPE_GRAVITY));
}
@@ -229,7 +238,7 @@ linear_acceleration_cb(unsigned long long timestamp,
sensor_data_accuracy_e accu
obj->data[0] = x;
obj->data[1] = y;
obj->data[2] = z;
- obj->timestamp = timestamp;
+ obj->timestamp = clock_convert(timestamp);
ecore_event_add(EEZE_SENSOR_EVENT_LINEAR_ACCELERATION, obj, NULL, NULL);
sensor_stop(sensor_handle,
eeze_to_tizen(EEZE_SENSOR_TYPE_LINEAR_ACCELERATION));
}
@@ -250,7 +259,7 @@ device_orientation_cb(unsigned long long timestamp,
sensor_data_accuracy_e accur
obj->data[0] = yaw;
obj->data[1] = pitch;
obj->data[2] = roll;
- obj->timestamp = timestamp;
+ obj->timestamp = clock_convert(timestamp);
ecore_event_add(EEZE_SENSOR_EVENT_DEVICE_ORIENTATION, obj, NULL, NULL);
sensor_stop(sensor_handle,
eeze_to_tizen(EEZE_SENSOR_TYPE_DEVICE_ORIENTATION));
}
@@ -270,7 +279,7 @@ magnetic_cb(unsigned long long timestamp,
sensor_data_accuracy_e accuracy, float
obj->data[0] = x;
obj->data[1] = y;
obj->data[2] = z;
- obj->timestamp = timestamp;
+ obj->timestamp = clock_convert(timestamp);
ecore_event_add(EEZE_SENSOR_EVENT_MAGNETIC, obj, NULL, NULL);
sensor_stop(sensor_handle, eeze_to_tizen(EEZE_SENSOR_TYPE_MAGNETIC));
}
@@ -290,7 +299,7 @@ orientation_cb(unsigned long long timestamp,
sensor_data_accuracy_e accuracy, fl
obj->data[0] = azimuth;
obj->data[1] = pitch;
obj->data[2] = roll;
- obj->timestamp = timestamp;
+ obj->timestamp = clock_convert(timestamp);
ecore_event_add(EEZE_SENSOR_EVENT_ORIENTATION, obj, NULL, NULL);
sensor_stop(sensor_handle, eeze_to_tizen(EEZE_SENSOR_TYPE_ORIENTATION));
}
@@ -310,7 +319,7 @@ gyroscope_cb(unsigned long long timestamp,
sensor_data_accuracy_e accuracy, floa
obj->data[0] = x;
obj->data[1] = y;
obj->data[2] = z;
- obj->timestamp = timestamp;
+ obj->timestamp = clock_convert(timestamp);
ecore_event_add(EEZE_SENSOR_EVENT_GYROSCOPE, obj, NULL, NULL);
sensor_stop(sensor_handle, eeze_to_tizen(EEZE_SENSOR_TYPE_GYROSCOPE));
}
@@ -329,7 +338,7 @@ light_cb(unsigned long long timestamp, float lux, void
*user_data)
/* We have to set this ourselves because we don't get it for this type */
obj->accuracy = -1;
obj->data[0] = lux;
- obj->timestamp = timestamp;
+ obj->timestamp = clock_convert(timestamp);
ecore_event_add(EEZE_SENSOR_EVENT_LIGHT, obj, NULL, NULL);
sensor_stop(sensor_handle, eeze_to_tizen(EEZE_SENSOR_TYPE_LIGHT));
}
@@ -348,7 +357,7 @@ proximity_cb(unsigned long long timestamp, float distance,
void *user_data)
/* We have to set this ourselves because we don't get it for this type */
obj->accuracy = -1;
obj->data[0] = distance;
- obj->timestamp = timestamp;
+ obj->timestamp = clock_convert(timestamp);
ecore_event_add(EEZE_SENSOR_EVENT_PROXIMITY, obj, NULL, NULL);
sensor_stop(sensor_handle, eeze_to_tizen(EEZE_SENSOR_TYPE_PROXIMITY));
}
@@ -367,7 +376,7 @@ snap_cb(unsigned long long timestamp, sensor_motion_snap_e
snap, void *user_data
/* We have to set this ourselves because we don't get it for this type */
obj->accuracy = -1;
obj->data[0] = snap;
- obj->timestamp = timestamp;
+ obj->timestamp = clock_convert(timestamp);
ecore_event_add(EEZE_SENSOR_EVENT_SNAP, obj, NULL, NULL);
sensor_stop(sensor_handle, eeze_to_tizen(EEZE_SENSOR_TYPE_MOTION_SNAP));
}
@@ -386,7 +395,7 @@ shake_cb(unsigned long long timestamp,
sensor_motion_shake_e shake, void *user_d
/* We have to set this ourselves because we don't get it for this type */
obj->accuracy = -1;
obj->data[0] = shake;
- obj->timestamp = timestamp;
+ obj->timestamp = clock_convert(timestamp);
ecore_event_add(EEZE_SENSOR_EVENT_SHAKE, obj, NULL, NULL);
sensor_stop(sensor_handle, eeze_to_tizen(EEZE_SENSOR_TYPE_MOTION_SHAKE));
}
@@ -406,7 +415,7 @@ panning_cb(unsigned long long timestamp, int x, int y, void
*user_data)
obj->accuracy = -1;
obj->data[0] = x;
obj->data[1] = y;
- obj->timestamp = timestamp;
+ obj->timestamp = clock_convert(timestamp);
ecore_event_add(EEZE_SENSOR_EVENT_PANNING, obj, NULL, NULL);
sensor_stop(sensor_handle, eeze_to_tizen(EEZE_SENSOR_TYPE_MOTION_PANNING));
}
@@ -426,7 +435,7 @@ panning_browse_cb(unsigned long long timestamp, int x, int
y, void *user_data)
obj->accuracy = -1;
obj->data[0] = x;
obj->data[1] = y;
- obj->timestamp = timestamp;
+ obj->timestamp = clock_convert(timestamp);
ecore_event_add(EEZE_SENSOR_EVENT_PANNING_BROWSE, obj, NULL, NULL);
sensor_stop(sensor_handle,
eeze_to_tizen(EEZE_SENSOR_TYPE_MOTION_PANNING_BROWSE));
}
@@ -446,7 +455,7 @@ tilt_cb(unsigned long long timestamp, int x, int y, void
*user_data)
obj->accuracy = -1;
obj->data[0] = x;
obj->data[1] = y;
- obj->timestamp = timestamp;
+ obj->timestamp = clock_convert(timestamp);
ecore_event_add(EEZE_SENSOR_EVENT_TILT, obj, NULL, NULL);
sensor_stop(sensor_handle, eeze_to_tizen(EEZE_SENSOR_TYPE_MOTION_TILT));
}
@@ -464,7 +473,7 @@ facedown_cb(unsigned long long timestamp, void *user_data)
}
/* We have to set this ourselves because we don't get it for this type */
obj->accuracy = -1;
- obj->timestamp = timestamp;
+ obj->timestamp = clock_convert(timestamp);
ecore_event_add(EEZE_SENSOR_EVENT_FACEDOWN, obj, NULL, NULL);
/* We are not stopping the sensor here because we want to keep it as a
motion
* event coming in at any time.
@@ -484,7 +493,7 @@ directcall_cb(unsigned long long timestamp, void *user_data)
}
/* We have to set this ourselves because we don't get it for this type */
obj->accuracy = -1;
- obj->timestamp = timestamp;
+ obj->timestamp = clock_convert(timestamp);
ecore_event_add(EEZE_SENSOR_EVENT_DIRECT_CALL, obj, NULL, NULL);
/* We are not stopping the sensor here because we want to keep it as a
motion
* event coming in at any time.
@@ -504,7 +513,7 @@ smart_alert_cb(unsigned long long timestamp, void
*user_data)
}
/* We have to set this ourselves because we don't get it for this type */
obj->accuracy = -1;
- obj->timestamp = timestamp;
+ obj->timestamp = clock_convert(timestamp);
ecore_event_add(EEZE_SENSOR_EVENT_SMART_ALERT, obj, NULL, NULL);
/* We are not stopping the sensor here because we want to keep it as a
motion
* event coming in at any time.
@@ -524,7 +533,7 @@ no_move_cb(unsigned long long timestamp, void *user_data)
}
/* We have to set this ourselves because we don't get it for this type */
obj->accuracy = -1;
- obj->timestamp = timestamp;
+ obj->timestamp = clock_convert(timestamp);
ecore_event_add(EEZE_SENSOR_EVENT_NO_MOVE, obj, NULL, NULL);
/* We are not stopping the sensor here because we want to keep it as a
motion
* event coming in at any time.
@@ -544,7 +553,7 @@ doubletap_cb(unsigned long long timestamp, void *user_data)
}
/* We have to set this ourselves because we don't get it for this type */
obj->accuracy = -1;
- obj->timestamp = timestamp;
+ obj->timestamp = clock_convert(timestamp);
ecore_event_add(EEZE_SENSOR_EVENT_DOUBLETAP, obj, NULL, NULL);
/* We are not stopping the sensor here because we want to keep it as a
motion
* event coming in at any time.
@@ -568,7 +577,7 @@ accelerometer_read_cb(unsigned long long timestamp,
sensor_data_accuracy_e accur
obj->data[0] = x;
obj->data[1] = y;
obj->data[2] = z;
- obj->timestamp = timestamp;
+ obj->timestamp = clock_convert(timestamp);
ecore_event_add(EEZE_SENSOR_EVENT_ACCELEROMETER, obj, NULL, NULL);
sensor_stop(sensor_handle, eeze_to_tizen(EEZE_SENSOR_TYPE_ACCELEROMETER));
}
@@ -590,7 +599,7 @@ gravity_read_cb(unsigned long long timestamp,
sensor_data_accuracy_e accuracy, f
obj->data[0] = x;
obj->data[1] = y;
obj->data[2] = z;
- obj->timestamp = timestamp;
+ obj->timestamp = clock_convert(timestamp);
ecore_event_add(EEZE_SENSOR_EVENT_GRAVITY, obj, NULL, NULL);
sensor_stop(sensor_handle, eeze_to_tizen(EEZE_SENSOR_TYPE_GRAVITY));
}
@@ -612,7 +621,7 @@ linear_acceleration_read_cb(unsigned long long timestamp,
sensor_data_accuracy_e
obj->data[0] = x;
obj->data[1] = y;
obj->data[2] = z;
- obj->timestamp = timestamp;
+ obj->timestamp = clock_convert(timestamp);
ecore_event_add(EEZE_SENSOR_EVENT_LINEAR_ACCELERATION, obj, NULL, NULL);
sensor_stop(sensor_handle,
eeze_to_tizen(EEZE_SENSOR_TYPE_LINEAR_ACCELERATION));
}
@@ -635,7 +644,7 @@ device_orientation_read_cb(unsigned long long timestamp,
sensor_data_accuracy_e
obj->data[0] = yaw;
obj->data[1] = pitch;
obj->data[2] = roll;
- obj->timestamp = timestamp;
+ obj->timestamp = clock_convert(timestamp);
ecore_event_add(EEZE_SENSOR_EVENT_DEVICE_ORIENTATION, obj, NULL, NULL);
sensor_stop(sensor_handle,
eeze_to_tizen(EEZE_SENSOR_TYPE_DEVICE_ORIENTATION));
}
@@ -657,7 +666,7 @@ magnetic_read_cb(unsigned long long timestamp,
sensor_data_accuracy_e accuracy,
obj->data[0] = x;
obj->data[1] = y;
obj->data[2] = z;
- obj->timestamp = timestamp;
+ obj->timestamp = clock_convert(timestamp);
ecore_event_add(EEZE_SENSOR_EVENT_MAGNETIC, obj, NULL, NULL);
sensor_stop(sensor_handle, eeze_to_tizen(EEZE_SENSOR_TYPE_MAGNETIC));
}
@@ -679,7 +688,7 @@ orientation_read_cb(unsigned long long timestamp,
sensor_data_accuracy_e accurac
obj->data[0] = azimuth;
obj->data[1] = pitch;
obj->data[2] = roll;
- obj->timestamp = timestamp;
+ obj->timestamp = clock_convert(timestamp);
ecore_event_add(EEZE_SENSOR_EVENT_ORIENTATION, obj, NULL, NULL);
sensor_stop(sensor_handle, eeze_to_tizen(EEZE_SENSOR_TYPE_ORIENTATION));
}
@@ -701,7 +710,7 @@ gyroscope_read_cb(unsigned long long timestamp,
sensor_data_accuracy_e accuracy,
obj->data[0] = x;
obj->data[1] = y;
obj->data[2] = z;
- obj->timestamp = timestamp;
+ obj->timestamp = clock_convert(timestamp);
ecore_event_add(EEZE_SENSOR_EVENT_GYROSCOPE, obj, NULL, NULL);
sensor_stop(sensor_handle, eeze_to_tizen(EEZE_SENSOR_TYPE_GYROSCOPE));
}
@@ -722,7 +731,7 @@ light_read_cb(unsigned long long timestamp, float lux, void
*user_data)
/* We have to set this ourselves because we don't get it for this type */
obj->accuracy = -1;
obj->data[0] = lux;
- obj->timestamp = timestamp;
+ obj->timestamp = clock_convert(timestamp);
ecore_event_add(EEZE_SENSOR_EVENT_LIGHT, obj, NULL, NULL);
sensor_stop(sensor_handle, eeze_to_tizen(EEZE_SENSOR_TYPE_LIGHT));
}
@@ -743,7 +752,7 @@ proximity_read_cb(unsigned long long timestamp, float
distance, void *user_data)
/* We have to set this ourselves because we don't get it for this type */
bj->accuracy = -1;
obj->data[0] = distance;
- obj->timestamp = timestamp;
+ obj->timestamp = clock_convert(timestamp);
ecore_event_add(EEZE_SENSOR_EVENT_PROXIMITY, obj, NULL, NULL);
sensor_stop(sensor_handle, eeze_to_tizen(EEZE_SENSOR_TYPE_PROXIMITY));
}
@@ -764,7 +773,7 @@ snap_read_cb(unsigned long long timestamp,
sensor_motion_snap_e snap, void *user
/* We have to set this ourselves because we don't get it for this type */
obj->accuracy = -1;
obj->data[0] = snap;
- obj->timestamp = timestamp;
+ obj->timestamp = clock_convert(timestamp);
ecore_event_add(EEZE_SENSOR_EVENT_SNAP, obj, NULL, NULL);
sensor_stop(sensor_handle, eeze_to_tizen(EEZE_SENSOR_TYPE_MOTION_SNAP));
}
@@ -785,7 +794,7 @@ shake_read_cb(unsigned long long timestamp,
sensor_motion_shake_e shake, void *u
/* We have to set this ourselves because we don't get it for this type */
obj->accuracy = -1;
obj->data[0] = shake;
- obj->timestamp = timestamp;
+ obj->timestamp = clock_convert(timestamp);
ecore_event_add(EEZE_SENSOR_EVENT_SHAKE, obj, NULL, NULL);
sensor_stop(sensor_handle, eeze_to_tizen(EEZE_SENSOR_TYPE_MOTION_SHAKE));
}
@@ -805,7 +814,7 @@ doubletap_read_cb(unsigned long long timestamp, void
*user_data)
}
/* We have to set this ourselves because we don't get it for this type */
obj->accuracy = -1;
- obj->timestamp = timestamp;
+ obj->timestamp = clock_convert(timestamp);
ecore_event_add(EEZE_SENSOR_EVENT_DOUBLETAP, obj, NULL, NULL);
sensor_stop(sensor_handle,
eeze_to_tizen(EEZE_SENSOR_TYPE_MOTION_DOUBLETAP));
}
@@ -827,7 +836,7 @@ panning_read_cb(unsigned long long timestamp, int x, int y,
void *user_data)
obj->accuracy = -1;
obj->data[0] = x;
obj->data[1] = y;
- obj->timestamp = timestamp;
+ obj->timestamp = clock_convert(timestamp);
ecore_event_add(EEZE_SENSOR_EVENT_PANNING, obj, NULL, NULL);
sensor_stop(sensor_handle, eeze_to_tizen(EEZE_SENSOR_TYPE_MOTION_PANNING));
}
@@ -849,7 +858,7 @@ panning_browse_read_cb(unsigned long long timestamp, int x,
int y, void *user_da
obj->accuracy = -1;
obj->data[0] = x;
obj->data[1] = y;
- obj->timestamp = timestamp;
+ obj->timestamp = clock_convert(timestamp);
ecore_event_add(EEZE_SENSOR_EVENT_PANNING_BROWSE, obj, NULL, NULL);
sensor_stop(sensor_handle,
eeze_to_tizen(EEZE_SENSOR_TYPE_MOTION_PANNING_BROWSE));
}
@@ -871,7 +880,7 @@ tilt_read_cb(unsigned long long timestamp, int x, int y,
void *user_data)
obj->accuracy = -1;
obj->data[0] = x;
obj->data[1] = y;
- obj->timestamp = timestamp;
+ obj->timestamp = clock_convert(timestamp);
ecore_event_add(EEZE_SENSOR_EVENT_TILT, obj, NULL, NULL);
sensor_stop(sensor_handle, eeze_to_tizen(EEZE_SENSOR_TYPE_MOTION_TILT));
}
@@ -891,7 +900,7 @@ facedown_read_cb(unsigned long long timestamp, void
*user_data)
}
/* We have to set this ourselves because we don't get it for this type */
obj->accuracy = -1;
- obj->timestamp = timestamp;
+ obj->timestamp = clock_convert(timestamp);
ecore_event_add(EEZE_SENSOR_EVENT_FACEDOWN, obj, NULL, NULL);
sensor_stop(sensor_handle, eeze_to_tizen(EEZE_SENSOR_TYPE_MOTION_FACEDOWN));
}
@@ -911,7 +920,7 @@ directcall_read_cb(unsigned long long timestamp, void
*user_data)
}
/* We have to set this ourselves because we don't get it for this type */
obj->accuracy = -1;
- obj->timestamp = timestamp;
+ obj->timestamp = clock_convert(timestamp);
ecore_event_add(EEZE_SENSOR_EVENT_DIRECT_CALL, obj, NULL, NULL);
sensor_stop(sensor_handle,
eeze_to_tizen(EEZE_SENSOR_TYPE_MOTION_DIRECT_CALL));
}
@@ -931,7 +940,7 @@ smart_alert_read_cb(unsigned long long timestamp, void
*user_data)
}
/* We have to set this ourselves because we don't get it for this type */
obj->accuracy = -1;
- obj->timestamp = timestamp;
+ obj->timestamp = clock_convert(timestamp);
ecore_event_add(EEZE_SENSOR_EVENT_SMART_ALERT, obj, NULL, NULL);
sensor_stop(sensor_handle,
eeze_to_tizen(EEZE_SENSOR_TYPE_MOTION_SMART_ALERT));
}
@@ -951,7 +960,7 @@ no_move_read_cb(unsigned long long timestamp, void
*user_data)
}
/* We have to set this ourselves because we don't get it for this type */
obj->accuracy = -1;
- obj->timestamp = timestamp;
+ obj->timestamp = clock_convert(timestamp);
ecore_event_add(EEZE_SENSOR_EVENT_NO_MOVE, obj, NULL, NULL);
sensor_stop(sensor_handle, eeze_to_tizen(EEZE_SENSOR_TYPE_MOTION_NO_MOVE));
}
@@ -999,7 +1008,7 @@ eeze_sensor_tizen_read(Eeze_Sensor_Type sensor_type,
Eeze_Sensor_Obj *lobj)
obj->data[0] = x;
obj->data[1] = y;
obj->data[2] = z;
- obj->timestamp = 0;
+ obj->timestamp = ecore_time_get();
break;
case SENSOR_GRAVITY:
@@ -1008,7 +1017,7 @@ eeze_sensor_tizen_read(Eeze_Sensor_Type sensor_type,
Eeze_Sensor_Obj *lobj)
obj->data[0] = x;
obj->data[1] = y;
obj->data[2] = z;
- obj->timestamp = 0;
+ obj->timestamp = ecore_time_get();
break;
case SENSOR_LINEAR_ACCELERATION:
@@ -1017,7 +1026,7 @@ eeze_sensor_tizen_read(Eeze_Sensor_Type sensor_type,
Eeze_Sensor_Obj *lobj)
obj->data[0] = x;
obj->data[1] = y;
obj->data[2] = z;
- obj->timestamp = 0;
+ obj->timestamp = ecore_time_get();
break;
case SENSOR_DEVICE_ORIENTATION:
@@ -1026,7 +1035,7 @@ eeze_sensor_tizen_read(Eeze_Sensor_Type sensor_type,
Eeze_Sensor_Obj *lobj)
obj->data[0] = yaw;
obj->data[1] = pitch;
obj->data[2] = roll;
- obj->timestamp = 0;
+ obj->timestamp = ecore_time_get();
break;
case SENSOR_MAGNETIC:
@@ -1035,7 +1044,7 @@ eeze_sensor_tizen_read(Eeze_Sensor_Type sensor_type,
Eeze_Sensor_Obj *lobj)
obj->data[0] = x;
obj->data[1] = y;
obj->data[2] = z;
- obj->timestamp = 0;
+ obj->timestamp = ecore_time_get();
break;
case SENSOR_ORIENTATION:
@@ -1044,7 +1053,7 @@ eeze_sensor_tizen_read(Eeze_Sensor_Type sensor_type,
Eeze_Sensor_Obj *lobj)
obj->data[0] = azimuth;
obj->data[1] = pitch;
obj->data[2] = roll;
- obj->timestamp = 0;
+ obj->timestamp = ecore_time_get();
break;
case SENSOR_GYROSCOPE:
@@ -1053,7 +1062,7 @@ eeze_sensor_tizen_read(Eeze_Sensor_Type sensor_type,
Eeze_Sensor_Obj *lobj)
obj->data[0] = x;
obj->data[1] = y;
obj->data[2] = z;
- obj->timestamp = 0;
+ obj->timestamp = ecore_time_get();
break;
case SENSOR_LIGHT:
@@ -1061,7 +1070,7 @@ eeze_sensor_tizen_read(Eeze_Sensor_Type sensor_type,
Eeze_Sensor_Obj *lobj)
/* As we do not get any accuracy value from the system we go with -1 */
obj->accuracy = -1;
obj->data[0] = lux;
- obj->timestamp = 0;
+ obj->timestamp = ecore_time_get();
break;
case SENSOR_PROXIMITY:
@@ -1069,7 +1078,7 @@ eeze_sensor_tizen_read(Eeze_Sensor_Type sensor_type,
Eeze_Sensor_Obj *lobj)
/* As we do not get any accuracy value from the system we go with -1 */
obj->accuracy = -1;
obj->data[0] = distance;
- obj->timestamp = 0;
+ obj->timestamp = ecore_time_get();
break;
default:
diff --git a/src/tests/eeze/eeze_suite.c b/src/tests/eeze/eeze_suite.c
index 71c7213..904dd25 100644
--- a/src/tests/eeze/eeze_suite.c
+++ b/src/tests/eeze/eeze_suite.c
@@ -363,7 +363,7 @@ START_TEST(eeze_test_sensor_read)
int ret = 0;
float x, y, z;
int acc;
- unsigned long long timestamp;
+ double timestamp;
Eina_Bool rc = EINA_FALSE;
ecore_init();
@@ -499,7 +499,7 @@ event_cb(void *data EINA_UNUSED, int ev_type EINA_UNUSED,
void *event)
{
Eeze_Sensor_Obj *sens = NULL;
int acc;
- unsigned long long timestamp;
+ double timestamp;
Eina_Bool rc = EINA_FALSE;
sens = event;
--
------------------------------------------------------------------------------
Precog is a next-generation analytics platform capable of advanced
analytics on semi-structured data. The platform includes APIs for building
apps and a phenomenal toolset for data science. Developers can use
our toolset for easy data analysis & visualization. Get a free account!
http://www2.precog.com/precogplatform/slashdotnewsletter