sensor-hal-tm2: uv: adjust resolution value of uv sensor 66/106166/3 accepted/tizen_3.0.m2_mobile tizen_3.0.m2 accepted/tizen/3.0.m2/mobile/20170104.100130 accepted/tizen/3.0/mobile/20161221.104619 submit/tizen_3.0.m2/20170104.093748 submit/tizen_3.0/20161221.072814
authorkibak.yoon <kibak.yoon@samsung.com>
Tue, 20 Dec 2016 14:37:40 +0000 (23:37 +0900)
committerkibak.yoon <kibak.yoon@samsung.com>
Wed, 21 Dec 2016 04:34:54 +0000 (13:34 +0900)
- input event type and event code is modified properly.
  * REL_MISC provides incorrect uv index.
  * REL_X provides UV raw value.
  * so, event code is changed from REL_MISC to REL_X.
- hrm_temp is not used for now, but store it for future use.

Change-Id: I7ba819a57db8927faaef979beca445e2b46f1035
Signed-off-by: kibak.yoon <kibak.yoon@samsung.com>
src/ultraviolet/uv_device.cpp
src/ultraviolet/uv_device.h

index 185ac54..0b06932 100644 (file)
@@ -33,7 +33,7 @@
 #define MODEL_NAME "MAX86902_UV"
 #define VENDOR "MAXIM"
 #define RESOLUTION 1
-#define RAW_DATA_UNIT 1
+#define RAW_DATA_UNIT 0.0002289
 #define MIN_INTERVAL 10
 #define MAX_BATCH_COUNT 0
 
@@ -54,7 +54,7 @@ static sensor_info_t sensor_info = {
        model_name: MODEL_NAME,
        vendor: VENDOR,
        min_range: 0,
-       max_range: 65535,
+       max_range: 15,
        resolution: 0,
        min_interval: 0,
        max_batch_count: 0,
@@ -167,6 +167,7 @@ bool uv_device::set_interval(uint32_t id, unsigned long val)
 bool uv_device::update_value_input_event(void)
 {
        int ultraviolet_raw = -1;
+       int hrm_temp = -1;
        bool ultraviolet = false;
        int read_input_cnt = 0;
        const int INPUT_MAX_BEFORE_SYN = 10;
@@ -185,9 +186,11 @@ bool uv_device::update_value_input_event(void)
 
                ++read_input_cnt;
 
-               if (ultraviolet_event.type == EV_REL && ultraviolet_event.code == REL_MISC) {
+               if (ultraviolet_event.type == EV_REL && ultraviolet_event.code == REL_X) {
                        ultraviolet_raw = (int)ultraviolet_event.value - BIAS;
                        ultraviolet = true;
+               } else if (ultraviolet_event.type == EV_REL && ultraviolet_event.code == REL_Y) {
+                       hrm_temp = (int)ultraviolet_event.value - BIAS;
                } else if (ultraviolet_event.type == EV_SYN) {
                        syn = true;
                        fired_time = util::get_timestamp(&ultraviolet_event.time);
@@ -206,8 +209,9 @@ bool uv_device::update_value_input_event(void)
                m_ultraviolet = ultraviolet_raw;
 
        m_fired_time = fired_time;
+       m_hrm_temp = hrm_temp;
 
-       _D("m_ultraviolet = %d, time = %lluus", m_ultraviolet, m_fired_time);
+       _D("m_ultraviolet = %d(%d), time = %lluus", m_ultraviolet, hrm_temp, m_fired_time);
 
        return true;
 }
@@ -235,8 +239,9 @@ int uv_device::get_data(uint32_t id, sensor_data_t **data, int *length)
 
        sensor_data->accuracy = SENSOR_ACCURACY_GOOD;
        sensor_data->timestamp = m_fired_time;
-       sensor_data->value_count = 1;
+       sensor_data->value_count = 2;
        sensor_data->values[0] = m_ultraviolet;
+       sensor_data->values[1] = m_ultraviolet;
 
        raw_to_base(sensor_data);
 
index 85f5a4e..34b536e 100644 (file)
@@ -42,6 +42,7 @@ public:
 private:
        int m_node_handle;
        int m_ultraviolet;
+       int m_hrm_temp;
        unsigned long m_polling_interval;
        unsigned long long m_fired_time;
        bool m_sensorhub_controlled;