From: TaeminYeom Date: Tue, 7 Jun 2022 05:39:51 +0000 (+0900) Subject: Remove garbage value in rotation vector X-Git-Tag: submit/tizen/20220608.042559~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=766c445cf9770b378a8eb1fcb716ebb472890bba;p=platform%2Fcore%2Fsystem%2Fsensord.git Remove garbage value in rotation vector After sensord restarts, the clients don't get the value "0 0 0 0" in rv Change-Id: Iea0e590927c75290a2f906991ca3245962b461d8 Signed-off-by: TaeminYeom --- diff --git a/src/fusion-sensor/rotation_vector/gyro_rv_sensor.cpp b/src/fusion-sensor/rotation_vector/gyro_rv_sensor.cpp index 77e617e8..6f6d842d 100644 --- a/src/fusion-sensor/rotation_vector/gyro_rv_sensor.cpp +++ b/src/fusion-sensor/rotation_vector/gyro_rv_sensor.cpp @@ -104,6 +104,11 @@ int gyro_rv_sensor::update(uint32_t id, sensor_data_t *data, int len) int gyro_rv_sensor::get_data(sensor_data_t **data, int *length) { + if (m_w == 0.0f && m_x == 0.0f && m_y == 0.0f && m_z == 0.0f) { + _D("Gyroscope rotation vector value is not calculated yet"); + return -1; + } + sensor_data_t *sensor_data; sensor_data = (sensor_data_t *)malloc(sizeof(sensor_data_t)); retvm_if(!sensor_data, -ENOMEM, "Failed to allocate memory"); diff --git a/src/fusion-sensor/rotation_vector/magnetic_rv_sensor.cpp b/src/fusion-sensor/rotation_vector/magnetic_rv_sensor.cpp index 14126649..c0c8ab2f 100644 --- a/src/fusion-sensor/rotation_vector/magnetic_rv_sensor.cpp +++ b/src/fusion-sensor/rotation_vector/magnetic_rv_sensor.cpp @@ -104,6 +104,11 @@ int magnetic_rv_sensor::update(uint32_t id, sensor_data_t *data, int len) int magnetic_rv_sensor::get_data(sensor_data_t **data, int *length) { + if (m_w == 0.0f && m_x == 0.0f && m_y == 0.0f && m_z == 0.0f) { + _D("Magnetic rotation vector value is not calculated yet"); + return -1; + } + sensor_data_t *sensor_data; sensor_data = (sensor_data_t *)malloc(sizeof(sensor_data_t)); retvm_if(!sensor_data, -ENOMEM, "Failed to allocate memory"); diff --git a/src/fusion-sensor/rotation_vector/rv_sensor.cpp b/src/fusion-sensor/rotation_vector/rv_sensor.cpp index 2dca0597..2f43eddf 100644 --- a/src/fusion-sensor/rotation_vector/rv_sensor.cpp +++ b/src/fusion-sensor/rotation_vector/rv_sensor.cpp @@ -110,6 +110,11 @@ int rv_sensor::update(uint32_t id, sensor_data_t *data, int len) int rv_sensor::get_data(sensor_data_t **data, int *length) { + if (m_w == 0.0f && m_x == 0.0f && m_y == 0.0f && m_z == 0.0f) { + _D("Rotation vector value is not calculated yet"); + return -1; + } + sensor_data_t *sensor_data; sensor_data = (sensor_data_t *)malloc(sizeof(sensor_data_t)); retvm_if(!sensor_data, -ENOMEM, "Failed to allocate memory");