Add comments for sensor and connectivity API
authorEunyoung Lee <ey928.lee@samsung.com>
Fri, 11 Aug 2017 04:46:39 +0000 (13:46 +0900)
committerEunyoung Lee <ey928.lee@samsung.com>
Fri, 11 Aug 2017 04:46:39 +0000 (13:46 +0900)
Change-Id: Ib643d2fd31bf5662e3a5b3ea10e363f619959dbc

15 files changed:
inc/connectivity.h
inc/resource/resource_illuminance_sensor.h
inc/resource/resource_illuminance_sensor_internal.h
inc/resource/resource_infrared_motion_sensor.h
inc/resource/resource_infrared_motion_sensor_internal.h
inc/resource/resource_infrared_obstacle_avoidance_sensor.h
inc/resource/resource_infrared_obstacle_avoidance_sensor_internal.h
inc/resource/resource_touch_sensor.h
inc/resource/resource_touch_sensor_internal.h
inc/resource/resource_ultrasonic_sensor.h
inc/resource/resource_ultrasonic_sensor_internal.h
src/connectivity.c
src/controller.c
src/resource/resource_illuminance_sensor.c
src/resource/resource_ultrasonic_sensor.c

index 7b21043..affff20 100644 (file)
@@ -31,11 +31,51 @@ struct connectivity_resource {
 
 typedef struct connectivity_resource connectivity_resource_s;
 
+/**
+ * @brief Create connectivity resources and registers the resource in server.
+ * @param[in] uri_path The URI path of the resource
+ * @param[in] type The string data to insert into the resource types (e.g. "org.tizen.light")
+ * @param[out] out_resource_info A structure containing information about connectivity resources
+ * @return 0 on success, otherwise a negative error value
+ * @see uri_path length must be less than 128.
+ * @see You must destroy resource by calling iotcon_resource_destroy() if resource is no longer needed.
+ */
 extern int connectivity_set_resource(const char *uri_path, const char *type, connectivity_resource_s **out_resource_info);
+
+/**
+ * @brief Releases all resources about connectivity.
+ * @param[in] resource_info A structure containing information about connectivity resources
+ */
 extern void connectivity_unset_resource(connectivity_resource_s *resource);
 
+/**
+ * @brief Notifies specific clients that resource's attributes have changed with boolean vaule.
+ * @param[in] resource_info A structure containing information about connectivity resources
+ * @param[in] key A new key to be added into attributes
+ * @param[in] value A boolean value to be added into attributes
+ * @return 0 on success, otherwise a negative error value
+ * @see If key is already exists, current value will be replaced with new value.
+ */
 extern int connectivity_notify_bool(connectivity_resource_s *resource_info, const char *key, bool value);
+
+/**
+ * @brief Notifies specific clients that resource's attributes have changed with int vaule.
+ * @param[in] resource_info A structure containing information about connectivity resources
+ * @param[in] key A new key to be added into attributes
+ * @param[in] value A int value to be added into attributes
+ * @return 0 on success, otherwise a negative error value
+ * @see If key is already exists, current value will be replaced with new value.
+ */
 extern int connectivity_notify_int(connectivity_resource_s *resource_info, const char *key, int value);
+
+/**
+ * @brief Notifies specific clients that resource's attributes have changed with double vaule.
+ * @param[in] resource_info A structure containing information about connectivity resources
+ * @param[in] key A new key to be added into attributes
+ * @param[in] value A double value to be added into attributes
+ * @return 0 on success, otherwise a negative error value
+ * @see If key is already exists, current value will be replaced with new value.
+ */
 extern int connectivity_notify_double(connectivity_resource_s *resource_info, const char *key, double value);
 
 #endif /* __POSITION_FINDER_CONNECTIVITY_H__ */
index 4203ebe..2e8925d 100644 (file)
 #ifndef __POSITION_FINDER_RESOURCE_ILLUMINANCE_SENSOR_H__
 #define __POSITION_FINDER_RESOURCE_ILLUMINANCE_SENSOR_H__
 
-/* You have to use this illuminance sensor ONLY ONE in the pi board */
+/**
+ * @brief Reads the value of i2c bus connected illuminance sensor.
+ * @param[in] i2c_bus The i2c bus number that the slave device is connected
+ * @param[out] out_value The vaule read by the illuminance sensor
+ * @return 0 on success, otherwise a negative error value
+ * @see If the i2c bus is not open, creates i2c handle before reading data from the i2c slave device.
+ */
 extern int resource_read_illuminance_sensor(int i2c_bus, int *out_value);
 
 #endif /* __POSITION_FINDER_RESOURCE_ILLUMINANCE_SENSOR_H__ */
index bdcf255..3193a5b 100644 (file)
@@ -22,6 +22,9 @@
 #ifndef __POSITION_FINDER_RESOURCE_ILLUMINANCE_SENSOR_INTERNAL_H__
 #define __POSITION_FINDER_RESOURCE_ILLUMINANCE_SENSOR_INTERNAL_H__
 
+/**
+ * @brief Destory the i2c handle and changes the gpio pin state to the close(0).
+ */
 extern void resource_close_illuminance_sensor(void);
 
 #endif /* __POSITION_FINDER_RESOURCE_ILLUMINANCE_SENSOR_INTERNAL_H__ */
index 7914678..6f9ff36 100644 (file)
 #ifndef __POSITION_FINDER_RESOURCE_INFRARED_MOTION_SENSOR_H__
 #define __POSITION_FINDER_RESOURCE_INFRARED_MOTION_SENSOR_H__
 
+/**
+ * @brief Reads the value of gpio connected infrared motion sensor(HC-SR501).
+ * @param[in] pin_num The number of the gpio pin connected to the infrared motion sensor
+ * @param[out] out_value The vaule of the gpio (zero or non-zero)
+ * @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);
 
 #endif /* __POSITION_FINDER_RESOURCE_INFRARED_MOTION_SENSOR_H__ */
index 773ada5..3737e15 100644 (file)
 #ifndef __POSITION_FINDER_RESOURCE_INFRARED_MOTION_SENSOR_INTERNAL_H__
 #define __POSITION_FINDER_RESOURCE_INFRARED_MOTION_SENSOR_INTERNAL_H__
 
-extern void resource_close_infrared_motion_sensor(int sensor_index);
+/**
+ * @brief Releases the gpio handle and changes the gpio pin state to the close(0).
+ * @param[in] pin_num The number of the gpio pin connected to the infrared motion sensor
+ */
+extern void resource_close_infrared_motion_sensor(int pin_num);
 
 #endif /* __POSITION_FINDER_RESOURCE_INFRARED_MOTION_SENSOR_INTERNAL_H__ */
index 640bc40..dd25e25 100644 (file)
 #ifndef __POSITION_FINDER_RESOURCE_INFRARED_OBSTACLE_AVOIDANCE_SENSOR_H__
 #define __POSITION_FINDER_RESOURCE_INFRARED_OBSTACLE_AVOIDANCE_SENSOR_H__
 
+/**
+ * @brief Reads the value of gpio connected infrared obstacle avoidance sensor.
+ * @param[in] pin_num The number of the gpio pin connected to the infrared obstacle avoidance sensor
+ * @param[out] out_value The vaule of the gpio (zero or non-zero)
+ * @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);
 
 #endif /* __POSITION_FINDER_RESOURCE_INFRARED_OBSTACLE_AVOIDANCE_SENSOR_H__ */
index 0e6e44e..f52cdf1 100644 (file)
 #ifndef __POSITION_FINDER_RESOURCE_INFRARED_OBSTACLE_AVOIDANCE_SENSOR_INTERNAL_H__
 #define __POSITION_FINDER_RESOURCE_INFRARED_OBSTACLE_AVOIDANCE_SENSOR_INTERNAL_H__
 
+/**
+ * @brief Releases the gpio handle and changes the gpio pin state to the close(0).
+ * @param[in] pin_num The number of the gpio pin connected to the infrared obstacle avoidance sensor
+ */
 extern void resource_close_infrared_obstacle_avoidance_sensor(int pin_num);
 
 #endif /* __POSITION_FINDER_RESOURCE_INFRARED_OBSTACLE_AVOIDANCE_SENSOR_INTERNAL_H__ */
index f6f31db..ea2866f 100644 (file)
 #ifndef __POSITION_FINDER_RESOURCE_TOUCH_SENSOR_H__
 #define __POSITION_FINDER_RESOURCE_TOUCH_SENSOR_H__
 
+/**
+ * @brief Reads the value of gpio connected touch sensor.
+ * @param[in] pin_num The number of the gpio pin connected to the touch sensor
+ * @param[out] out_value The vaule of the gpio (zero or non-zero)
+ * @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_touch_sensor(int pin_num, int *out_value);
 
 #endif /* __POSITION_FINDER_RESOURCE_TOUCH_SENSOR_H__ */
index dcd0e09..3bde69b 100644 (file)
 #ifndef __POSITION_FINDER_RESOURCE_TOUCH_SENSOR_INTERNAL_H__
 #define __POSITION_FINDER_RESOURCE_TOUCH_SENSOR_INTERNAL_H__
 
+/**
+ * @brief Releases the gpio handle and changes the gpio pin state to the close(0).
+ * @param[in] pin_num The number of the gpio pin connected to the touch sensor
+ */
 extern void resource_close_touch_sensor(int pin_num);
 
 #endif /* __POSITION_FINDER_RESOURCE_TOUCH_SENSOR_INTERNAL_H__ */
index e2956b4..cfcfe64 100644 (file)
 #ifndef __POSITION_FINDER_RESOURCE_ULTRASONIC_SENSOR_H__
 #define __POSITION_FINDER_RESOURCE_ULTRASONIC_SENSOR_H__
 
+/**
+ * @brief Reads the value of gpio connected ultrasonic sensor(HC-SR04).
+ * @param[in] trig_pin_num The number of the gpio pin connected to the trig of the ultrasonic sensor
+ * @param[in] echo_pin_num The number of the gpio pin connected to the echo of the ultrasonic sensor
+ * @param[in] cb A callback function to be invoked when the gpio interrupt is triggered
+ * @param[in] data The data to be passed to the callback function
+ * @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_ultrasonic_sensor(int trig_pin_num, int echo_pin_num, resource_read_cb cb, void *data);
 
 #endif /* __POSITION_FINDER_RESOURCE_ULTRASONIC_SENSOR_H__ */
index bf86d73..e7821c0 100644 (file)
 #ifndef __POSITION_FINDER_RESOURCE_ULTRASONIC_SENSOR_INTERNAL_H__
 #define __POSITION_FINDER_RESOURCE_ULTRASONIC_SENSOR_INTERNAL_H__
 
+/**
+ * @brief Releases the gpio handle and changes the gpio pin state to the close(0).
+ * @param[in] trig_pin_num The number of the gpio pin connected to the trig of the ultrasonic sensor
+ * @param[in] echo_pin_num The number of the gpio pin connected to the echo of the ultrasonic sensor
+ */
 extern void resource_close_ultrasonic_sensor(int echo_pin_num, int trig_pin_num);
 
 #endif /* __POSITION_FINDER_RESOURCE_ULTRASONIC_SENSOR_INTERNAL_H__ */
index b0c6d10..51f3a49 100644 (file)
@@ -88,7 +88,7 @@ static iotcon_representation_h _create_representation_with_bool(iotcon_resource_
        ret = iotcon_representation_set_uri_path(representation, uri_path);
        goto_if(IOTCON_ERROR_NONE != ret, error);
 
-       ret = iotcon_attributes_add_bool(attributes, "opened", value);
+       ret = iotcon_attributes_add_bool(attributes, key, value);
        goto_if(IOTCON_ERROR_NONE != ret, error);
 
        ret = iotcon_representation_set_attributes(representation, attributes);
index 53571c1..bf437b0 100644 (file)
@@ -42,7 +42,7 @@ typedef struct app_data_s {
        connectivity_resource_s *resource_info;
 } app_data;
 
-static Eina_Bool control_read_sensors_cb(void *data)
+static Eina_Bool control_sensors_cb(void *data)
 {
        int value[MULTIPLE_SENSOR_NUMBER] = { 0, };
        int total = 0;
@@ -50,15 +50,29 @@ static Eina_Bool control_read_sensors_cb(void *data)
        int i = 0;
        app_data *ad = data;
 
+       /**
+        * This is the case when a number of the same sensors are installed.
+        * Each of the five infrared motion sensors will receive the value.
+        */
        for (i = 0; i < MULTIPLE_SENSOR_NUMBER; i++) {
+               /**
+                * Infrared motion sensor outputs 1 if motion is detected, or 0 if motion is detected.
+                */
                if (resource_read_infrared_motion_sensor(gpio_num[i], &value[i]) == -1) {
                        _E("Failed to get Infrared Motion value [GPIO:%d]", gpio_num[i]);
                        continue;
                }
+               /**
+                * If one of the five infrared motion sensors detects motion (1),
+                * it is judged that there is a person (total == 1).
+                */
                total |= value[i];
        }
        _I("[5:%d] | [6:%d] | [13:%d] | [19:%d] | [26:%d] = [Total:%d]", value[0], value[1], value[2], value[3], value[4], total);
 
+       /**
+        * Notifies specific clients that resource's attributes have changed.
+        */
        if (connectivity_notify_bool(ad->resource_info, CONNECTIVITY_KEY, total) == -1)
                _E("Cannot notify message");
 
@@ -70,11 +84,23 @@ static bool service_app_create(void *data)
        app_data *ad = data;
        int ret = -1;
 
+       /**
+        * No modification required!!!
+        * Access only when modifying internal functions.
+        */
        controller_init_internal_functions();
+
+       /**
+        * Create connectivity resources and registers the resource in server.
+        */
        ret = connectivity_set_resource("/door/1", "org.tizen.door", &ad->resource_info);
        if (ret == -1) _E("Cannot broadcast resource");
 
-       ad->getter_timer = ecore_timer_add(0.5f, control_read_sensors_cb, ad);
+       /**
+        * Creates a timer to call the given function in the given period of time.
+        * In the control_sensors_cb(), each sensor reads the measured value or writes a specific value to the sensor.
+        */
+       ad->getter_timer = ecore_timer_add(0.5f, control_sensors_cb, ad);
        if (!ad->getter_timer) {
                _E("Failed to add infrared motion getter timer");
                return false;
@@ -93,7 +119,15 @@ static void service_app_terminate(void *data)
                }
        }
 
+       /**
+        * Releases all resources about connectivity.
+        */
        connectivity_unset_resource(ad->resource_info);
+
+       /**
+        * No modification required!!!
+        * Access only when modifying internal functions.
+        */
        controller_fini_internal_functions();
 
        free(ad);
index d5e2367..8d1d9d8 100644 (file)
@@ -42,12 +42,11 @@ void resource_close_illuminance_sensor(void)
 {
        if (!resource_sensor_s.opened) return;
 
-       _I("Infrared Motion Sensor is finishing...");
+       _I("Illuminance Sensor is finishing...");
        peripheral_i2c_close(resource_sensor_s.sensor_h);
        resource_sensor_s.opened = 0;
 }
 
-/* You have to use this illuminance sensor ONLY ONE in the pi board */
 int resource_read_illuminance_sensor(int i2c_bus, int *out_value)
 {
        int ret = PERIPHERAL_ERROR_NONE;
@@ -67,7 +66,7 @@ int resource_read_illuminance_sensor(int i2c_bus, int *out_value)
 
        *out_value = (buf[0] << 8 | buf[1]) / GY30_CONSTANT_NUM; // Just Sum High 8bit and Low 8bit
 
-       _I("Infrared Motion Sensor Value : %d", *out_value);
+       _I("Illuminance Sensor Value : %d", *out_value);
 
        return 0;
 }
index 97e952f..9b908e0 100644 (file)
 #include "log.h"
 #include "resource_internal.h"
 
-void resource_close_ultrasonic_sensor(int echo_pin_num, int trig_pin_num)
+void resource_close_ultrasonic_sensor(int trig_pin_num, int echo_pin_num)
 {
        if (!resource_get_info(echo_pin_num)->opened) return;
        if (!resource_get_info(trig_pin_num)->opened) return;
 
        _I("Ultrasonic sensor is finishing...");
 
-       peripheral_gpio_close(resource_get_info(echo_pin_num)->sensor_h);
        peripheral_gpio_close(resource_get_info(trig_pin_num)->sensor_h);
+       peripheral_gpio_close(resource_get_info(echo_pin_num)->sensor_h);
 
-       resource_get_info(echo_pin_num)->opened = 0;
        resource_get_info(trig_pin_num)->opened = 0;
+       resource_get_info(echo_pin_num)->opened = 0;
 }
 
 static void _resource_read_ultrasonic_sensor_cb(gpio_isr_cb_s *data, void *user_data)