summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBoyeon <boyeon.son@samsung.com>2019-08-29 14:05:03 +0900
committerBoyeon <boyeon.son@samsung.com>2019-08-30 11:34:28 +0900
commit4806b78886d6cb349eb9a57463b02a49e0b1479f (patch)
tree7e2af0f3b323ab18cd22fc41441be0d6d99b2320
parent942978cbc1511935f12567efa3d74ae743cfa00e (diff)
downloadst-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-xsrc/resource/resource_infrared_motion.c16
-rwxr-xr-xsrc/resource/resource_led.c7
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;