diff options
author | Boyeon <boyeon.son@samsung.com> | 2019-08-29 14:05:03 +0900 |
---|---|---|
committer | Boyeon <boyeon.son@samsung.com> | 2019-08-30 11:34:28 +0900 |
commit | 4806b78886d6cb349eb9a57463b02a49e0b1479f (patch) | |
tree | 7e2af0f3b323ab18cd22fc41441be0d6d99b2320 | |
parent | 942978cbc1511935f12567efa3d74ae743cfa00e (diff) | |
download | st-things-light-4806b78886d6cb349eb9a57463b02a49e0b1479f.tar.gz st-things-light-4806b78886d6cb349eb9a57463b02a49e0b1479f.tar.bz2 st-things-light-4806b78886d6cb349eb9a57463b02a49e0b1479f.zip |
Add specific statements for checking error
Change-Id: I16634e6b8bb0941783ac4b4ec69db9617cce7ef8
-rwxr-xr-x | src/resource/resource_infrared_motion.c | 16 | ||||
-rwxr-xr-x | src/resource/resource_led.c | 7 |
2 files changed, 17 insertions, 6 deletions
diff --git a/src/resource/resource_infrared_motion.c b/src/resource/resource_infrared_motion.c index 574c58f..9263143 100755 --- a/src/resource/resource_infrared_motion.c +++ b/src/resource/resource_infrared_motion.c @@ -50,17 +50,25 @@ static int _resource_validate_infrared_motion(int pin_num) static int resource_open_infrared_motion(int pin_num) { + int ret = PERIPHERAL_ERROR_NONE; peripheral_gpio_h temp = NULL; - int ret = peripheral_gpio_open(pin_num, &temp); + ret = peripheral_gpio_open(pin_num, &temp); + if (ret != PERIPHERAL_ERROR_NONE) { + _E("peripheral_gpio_open failed."); + return -1; + } + + // It should be removed after peripheral-io is patched. + peripheral_gpio_set_direction(temp, PERIPHERAL_GPIO_DIRECTION_OUT_INITIALLY_LOW); if (ret) { peripheral_gpio_close(temp); - _E("peripheral_gpio_open failed."); + _E("peripheral_gpio_set_direction failed."); return -1; } ret = peripheral_gpio_set_direction(temp, PERIPHERAL_GPIO_DIRECTION_IN); - if (ret) { + if (ret != PERIPHERAL_ERROR_NONE) { peripheral_gpio_close(temp); _E("peripheral_gpio_set_direction failed."); return -1; @@ -127,6 +135,8 @@ int resource_set_interrupted_cb_infrared_motion(int pin_num, resource_infrared_m int ret = PERIPHERAL_ERROR_NONE; int ret_valid = MOTION_HANDLE_ERROR_NONE; + retv_if(!interrupted_cb, -1); + ret_valid = _resource_validate_infrared_motion(pin_num); if (ret_valid == MOTION_HANDLE_ERROR_NOT_OPEN) { ret = resource_open_infrared_motion(pin_num); diff --git a/src/resource/resource_led.c b/src/resource/resource_led.c index 4d5d15d..a6edd7c 100755 --- a/src/resource/resource_led.c +++ b/src/resource/resource_led.c @@ -43,17 +43,18 @@ int _resource_validate_led(int pin_num) int resource_open_led(int pin_num) { + int ret = PERIPHERAL_ERROR_NONE; peripheral_gpio_h temp = NULL; - int ret = peripheral_gpio_open(pin_num, &temp); - if (ret) { + ret = peripheral_gpio_open(pin_num, &temp); + if (ret != PERIPHERAL_ERROR_NONE) { peripheral_gpio_close(temp); _E("peripheral_gpio_open failed."); return -1; } ret = peripheral_gpio_set_direction(temp, PERIPHERAL_GPIO_DIRECTION_OUT_INITIALLY_LOW); - if (ret) { + if (ret != PERIPHERAL_ERROR_NONE) { peripheral_gpio_close(temp); _E("peripheral_gpio_set_direction failed."); return -1; |