Change peripheral io APIs 91/152091/2 accepted/tizen_5.0_unified accepted/tizen_5.5_unified accepted/tizen_5.5_unified_mobile_hotfix accepted/tizen_5.5_unified_wearable_hotfix accepted/tizen_6.0_unified accepted/tizen_6.0_unified_hotfix accepted/tizen_6.5_unified accepted/tizen_7.0_unified accepted/tizen_7.0_unified_hotfix accepted/tizen_8.0_unified accepted/tizen_unified tizen tizen_5.0 tizen_5.5 tizen_5.5_mobile_hotfix tizen_5.5_tv tizen_5.5_wearable_hotfix tizen_6.0 tizen_6.0_hotfix tizen_6.5 tizen_7.0 tizen_7.0_hotfix tizen_8.0 accepted/tizen/5.0/unified/20181102.011806 accepted/tizen/5.5/unified/20191031.014750 accepted/tizen/5.5/unified/mobile/hotfix/20201027.081414 accepted/tizen/5.5/unified/wearable/hotfix/20201027.122833 accepted/tizen/6.0/unified/20201030.122833 accepted/tizen/6.0/unified/hotfix/20201103.051209 accepted/tizen/6.5/unified/20211028.093034 accepted/tizen/7.0/unified/20221110.060951 accepted/tizen/7.0/unified/hotfix/20221116.104300 accepted/tizen/8.0/unified/20231005.092348 accepted/tizen/unified/20170926.165620 submit/tizen/20170926.023501 submit/tizen_5.0/20181101.000001 submit/tizen_5.5/20191031.000001 submit/tizen_5.5_mobile_hotfix/20201026.185101 submit/tizen_5.5_wearable_hotfix/20201026.184301 submit/tizen_6.0/20201029.205101 submit/tizen_6.0_hotfix/20201102.192501 submit/tizen_6.0_hotfix/20201103.114801 submit/tizen_6.5/20211028.161201 tizen_5.5.m2_release tizen_6.0.m2_release tizen_6.5.m2_release tizen_7.0_m2_release tizen_8.0_m2_release
authorkibak.yoon <kibak.yoon@samsung.com>
Mon, 25 Sep 2017 05:13:51 +0000 (14:13 +0900)
committerkibak.yoon <kibak.yoon@samsung.com>
Mon, 25 Sep 2017 13:57:35 +0000 (22:57 +0900)
- change parameter type from int to uint32_t in peripheral_gpio_read()
- change gpio interrupt-related API

Change-Id: Iec4794ef19ab299879d531b7f1615a402a4162de
Signed-off-by: kibak.yoon <kibak.yoon@samsung.com>
inc/resource/resource_infrared_motion_sensor.h
inc/resource/resource_infrared_obstacle_avoidance_sensor.h
src/controller.c
src/resource/resource_illuminance_sensor.c
src/resource/resource_infrared_motion_sensor.c
src/resource/resource_infrared_obstacle_avoidance_sensor.c
src/resource/resource_led.c
src/resource/resource_touch_sensor.c
src/resource/resource_ultrasonic_sensor.c

index 6f9ff36..311f4db 100644 (file)
@@ -29,6 +29,6 @@
  * @return 0 on success, otherwise a negative error value
  * @see If the gpio pin is not open, creates gpio handle before reading the value of gpio.
  */
-extern int resource_read_infrared_motion_sensor(int pin_num, int *out_value);
+extern int resource_read_infrared_motion_sensor(int pin_num, uint32_t *out_value);
 
 #endif /* __POSITION_FINDER_RESOURCE_INFRARED_MOTION_SENSOR_H__ */
index dd25e25..22d03b9 100644 (file)
@@ -29,6 +29,6 @@
  * @return 0 on success, otherwise a negative error value
  * @see If the gpio pin is not open, creates gpio handle before reading the value of gpio.
  */
-extern int resource_read_infrared_obstacle_avoidance_sensor(int pin_num, int *out_value);
+extern int resource_read_infrared_obstacle_avoidance_sensor(int pin_num, uint32_t *out_value);
 
 #endif /* __POSITION_FINDER_RESOURCE_INFRARED_OBSTACLE_AVOIDANCE_SENSOR_H__ */
index 6e1e50f..92be7f3 100644 (file)
@@ -44,7 +44,7 @@ typedef struct app_data_s {
 
 static Eina_Bool control_sensors_cb(void *data)
 {
-       int value[MULTIPLE_SENSOR_NUMBER] = { 0, };
+       uint32_t value[MULTIPLE_SENSOR_NUMBER] = { 0, };
        int total = 0;
        int gpio_num[MULTIPLE_SENSOR_NUMBER] = { 5, 6, 13, 19, 26 };
        int i = 0;
index 8d1d9d8..83b01c9 100644 (file)
@@ -58,7 +58,8 @@ int resource_read_illuminance_sensor(int i2c_bus, int *out_value)
                resource_sensor_s.opened = 1;
        }
 
-       ret = peripheral_i2c_write_byte(resource_sensor_s.sensor_h, GY30_CONT_HIGH_RES_MODE);
+       buf[0] = GY30_CONT_HIGH_RES_MODE;
+       ret = peripheral_i2c_write(resource_sensor_s.sensor_h, buf, 1);
        retv_if(ret < 0, -1);
 
        ret = peripheral_i2c_read(resource_sensor_s.sensor_h, buf, 2);
index 40308a3..1a7eab3 100644 (file)
@@ -36,7 +36,7 @@ void resource_close_infrared_motion_sensor(int pin_num)
        resource_get_info(pin_num)->opened = 0;
 }
 
-int resource_read_infrared_motion_sensor(int pin_num, int *out_value)
+int resource_read_infrared_motion_sensor(int pin_num, uint32_t *out_value)
 {
        int ret = PERIPHERAL_ERROR_NONE;
 
index bb57940..f802506 100644 (file)
@@ -36,7 +36,7 @@ void resource_close_infrared_obstacle_avoidance_sensor(int pin_num)
        resource_get_info(pin_num)->opened = 0;
 }
 
-int resource_read_infrared_obstacle_avoidance_sensor(int pin_num, int *out_value)
+int resource_read_infrared_obstacle_avoidance_sensor(int pin_num, uint32_t *out_value)
 {
        int ret = PERIPHERAL_ERROR_NONE;
 
index aa5e170..19361f5 100644 (file)
@@ -43,7 +43,7 @@ int resource_write_led(int pin_num, int write_value)
                ret = peripheral_gpio_open(pin_num, &resource_get_info(pin_num)->sensor_h);
                retv_if(!resource_get_info(pin_num)->sensor_h, -1);
 
-               ret = peripheral_gpio_set_direction(resource_get_info(pin_num)->sensor_h, PERIPHERAL_GPIO_DIRECTION_OUT);
+               ret = peripheral_gpio_set_direction(resource_get_info(pin_num)->sensor_h, PERIPHERAL_GPIO_DIRECTION_OUT_INITIALLY_LOW);
                retv_if(ret != 0, -1);
 
                resource_get_info(pin_num)->opened = 1;
index 2b75e62..3b54fd5 100644 (file)
@@ -36,7 +36,7 @@ void resource_close_touch_sensor(int pin_num)
        resource_get_info(pin_num)->opened = 0;
 }
 
-int resource_read_touch_sensor(int pin_num, int *out_value)
+int resource_read_touch_sensor(int pin_num, uint32_t *out_value)
 {
        int ret = PERIPHERAL_ERROR_NONE;
 
index 9b908e0..4004820 100644 (file)
@@ -42,26 +42,37 @@ void resource_close_ultrasonic_sensor(int trig_pin_num, int echo_pin_num)
        resource_get_info(echo_pin_num)->opened = 0;
 }
 
-static void _resource_read_ultrasonic_sensor_cb(gpio_isr_cb_s *data, void *user_data)
+static unsigned long long _get_timestamp(void)
+{
+       struct timespec t;
+       clock_gettime(CLOCK_REALTIME, &t);
+       return ((unsigned long long)(t.tv_sec)*1000000000LL + t.tv_nsec) / 1000;
+}
+
+static void _resource_read_ultrasonic_sensor_cb(peripheral_gpio_h gpio, peripheral_error_e error, void *user_data)
 {
        float dist = 0;
-       static unsigned long long timestamp = 0;
+       uint32_t value;
+       static unsigned long long prev = 0;
+       unsigned long long now = _get_timestamp();
        resource_read_s *resource_read_info = user_data;
 
        ret_if(!resource_read_info);
        ret_if(!resource_read_info->cb);
 
-       if (timestamp > 0 && data->value == 0) {
-               dist = data->timestamp - timestamp;
+       peripheral_gpio_read(gpio, &value);
+
+       if (prev > 0 && value == 0) {
+               dist = now - prev;
                dist = (dist * 34300) / 2000000;
                _I("Measured Distance : %0.2fcm\n", dist);
 
                resource_read_info->cb(dist, resource_read_info->data);
-               peripheral_gpio_unregister_cb(resource_get_info(resource_read_info->pin_num)->sensor_h);
+               peripheral_gpio_unset_interrupted_cb(resource_get_info(resource_read_info->pin_num)->sensor_h);
                free(resource_read_info);
        }
 
-       timestamp = data->timestamp;
+       prev = now;
 }
 
 int resource_read_ultrasonic_sensor(int trig_pin_num, int echo_pin_num, resource_read_cb cb, void *data)
@@ -81,7 +92,7 @@ int resource_read_ultrasonic_sensor(int trig_pin_num, int echo_pin_num, resource
                ret = peripheral_gpio_open(trig_pin_num, &resource_get_info(trig_pin_num)->sensor_h);
                retv_if(!resource_get_info(trig_pin_num)->sensor_h, -1);
 
-               ret = peripheral_gpio_set_direction(resource_get_info(trig_pin_num)->sensor_h, PERIPHERAL_GPIO_DIRECTION_OUT);
+               ret = peripheral_gpio_set_direction(resource_get_info(trig_pin_num)->sensor_h, PERIPHERAL_GPIO_DIRECTION_OUT_INITIALLY_LOW);
                retv_if(ret != 0, -1);
 
                resource_get_info(trig_pin_num)->opened = 1;
@@ -103,7 +114,7 @@ int resource_read_ultrasonic_sensor(int trig_pin_num, int echo_pin_num, resource
        }
 
        if (resource_get_info(echo_pin_num)->sensor_h) {
-               ret = peripheral_gpio_register_cb(resource_get_info(echo_pin_num)->sensor_h, _resource_read_ultrasonic_sensor_cb, resource_read_info);
+               ret = peripheral_gpio_set_interrupted_cb(resource_get_info(echo_pin_num)->sensor_h, _resource_read_ultrasonic_sensor_cb, resource_read_info);
                retv_if(ret != 0, -1);
        }