Challenge#1 : Modify to read value from ultrasonic sensor 55/153855/1
authorEunyoung Lee <ey928.lee@samsung.com>
Mon, 2 Oct 2017 02:22:38 +0000 (11:22 +0900)
committerEunyoung Lee <ey928.lee@samsung.com>
Mon, 2 Oct 2017 02:23:15 +0000 (11:23 +0900)
Change-Id: I56141b3f9d669313b004a5314d089a17bb2ed6c5

inc/resource_internal.h
src/controller.c

index cb751b5..df9c77f 100755 (executable)
@@ -46,7 +46,7 @@ struct _resource_s {
 };
 typedef struct _resource_s resource_s;
 
-typedef void (*resource_read_cb)(double value, void *data);
+typedef void (*resource_read_cb)(float value, void *data);
 
 struct _resource_read_cb_s {
        resource_read_cb cb;
index c80090e..7b39aa8 100644 (file)
 
 #define CONNECTIVITY_KEY "opened"
 #define SENSORING_TIME_INTERVAL 1.0f
+#define TRIG_PIN_NUMBER 20
+#define ECHO_PIN_NUMBER 21
 
 typedef struct app_data_s {
        Ecore_Timer *getter_timer;
        connectivity_resource_s *resource_info;
 } app_data;
 
-static Eina_Bool control_sensors_cb(void *data)
+static void _ultrasonic_sensor_read_cb(float value, void *data)
+{
+       _I("Distance : %.2fcm", value);
+}
+
+static Eina_Bool _control_sensors_cb(void *data)
 {
        app_data *ad = data;
 
+       if (resource_read_ultrasonic_sensor(TRIG_PIN_NUMBER, ECHO_PIN_NUMBER, _ultrasonic_sensor_read_cb, NULL) == -1)
+               _E("Failed to get a distance from Ultrasonic sensor");
+
+
        if (connectivity_notify_bool(ad->resource_info, CONNECTIVITY_KEY, true) == -1)
                _E("Cannot notify message");
 
@@ -54,6 +65,7 @@ static bool service_app_create(void *data)
 {
        app_data *ad = data;
        int ret = -1;
+       const char *path = NULL;
 
        /**
         * No modification required!!!
@@ -64,14 +76,15 @@ static bool service_app_create(void *data)
        /**
         * Create a connectivity resource and registers the resource in server.
         */
-       ret = connectivity_set_resource(NULL, "org.tizen.door", &ad->resource_info);
+       controller_util_get_path(&path);
+       ret = connectivity_set_resource(path, "org.tizen.door", &ad->resource_info);
        if (ret == -1) _E("Cannot broadcast resource");
 
        /**
         * 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(SENSORING_TIME_INTERVAL, control_sensors_cb, ad);
+       ad->getter_timer = ecore_timer_add(SENSORING_TIME_INTERVAL, _control_sensors_cb, ad);
        if (!ad->getter_timer) {
                _E("Failed to add infrared motion getter timer");
                return false;