#include <unistd.h>
#include <Ecore.h>
-#include "st_things.h"
#include "log.h"
#include "sensor-data.h"
#include "resource.h"
#define SENSOR_KEY_ILLUMINANCE "illuminance"
#define SENSOR_KEY_RANGE "range"
-#define SENSOR_URI_DOOR "/capability/doorControl/main/0"
-#define SENSOR_KEY_DOOR "doorState"
-#define SENSOR_POWER_INITIALIZING BLIND_DOWN
-
#define I2C_BUS_NUMBER (1)
#define SENSOR_GATHER_INTERVAL (1.0f)
retv_if(ret != 0, -1);
ret = resource_two_read_set_LIDAR_sensor(I2C_BUS_NUMBER);
retv_if(ret != 0, -1);
-
+
usleep(delay_usec);
-
+
ret = resource_read_LIDAR_sensor(I2C_BUS_NUMBER, illuminance_value);
retv_if(ret != 0, -1);
sensor_data_set_uint(ad->illuminance_data, *illuminance_value);
_D2("Distance value : %u", *illuminance_value);
-#ifdef USE_ST_SDK
- st_things_notify_observers(SENSOR_URI_ILLUMINANCE);
-#endif
-
return 0;
}
_E("Failed to add getter_illuminance");
}
-#ifdef USE_ST_SDK
-static bool handle_reset_request(void)
-{
- _D("Received a request for RESET.");
- return false;
-}
-
-static void handle_reset_result(bool result)
-{
- _D("Reset %s.\n", result ? "succeeded" : "failed");
-}
-
-static bool handle_ownership_transfer_request(void)
-{
- _D("Received a request for Ownership-transfer.");
- return true;
-}
-
-static void handle_things_status_change(st_things_status_e things_status)
-{
- _D("Things status is changed: %d", things_status);
-
- if (things_status == ST_THINGS_STATUS_REGISTERED_TO_CLOUD) {
- ecore_main_loop_thread_safe_call_async(gathering_start, g_ad);
- }
-}
-
-static bool handle_get_request(st_things_get_request_message_s* req_msg, st_things_representation_s* resp_rep)
-{
- _D("resource_uri [%s]", req_msg->resource_uri);
- retv_if(!g_ad, false);
-
- if (0 == strcmp(req_msg->resource_uri, SENSOR_URI_ILLUMINANCE)) {
- if (req_msg->has_property_key(req_msg, SENSOR_KEY_ILLUMINANCE)) {
- unsigned int value = 0;
- sensor_data_get_uint(g_ad->illuminance_data, &value);
- resp_rep->set_int_value(resp_rep, SENSOR_KEY_ILLUMINANCE, value);
- }
- return true;
- // QUIZ
- } else if (0 == strcmp(req_msg->resource_uri, SENSOR_URI_DOOR)) {
- if (req_msg->has_property_key(req_msg, SENSOR_KEY_DOOR)) {
- const char *str = NULL;
- sensor_data_get_string(g_ad->power_data, &str);
- if (!str) {
- str = SENSOR_POWER_INITIALIZING;
- }
- resp_rep->set_str_value(resp_rep, SENSOR_KEY_DOOR, str);
- _D("Power : %s", str);
- }
- return true;
- }
- _E("not supported uri");
- return false;
-}
-
-static bool handle_set_request(st_things_set_request_message_s* req_msg, st_things_representation_s* resp_rep)
-{
- _D("resource_uri [%s]", req_msg->resource_uri);
- retv_if(!g_ad, false);
-
- // QUIZ
- if (0 == strcmp(req_msg->resource_uri, SENSOR_URI_DOOR)) {
- int ret = 0;
- char *str = NULL;
-
- if (req_msg->rep->get_str_value(req_msg->rep, SENSOR_KEY_DOOR, &str)) {
- retv_if(!str, false);
- _D("set [%s:%s] == %s", SENSOR_URI_DOOR, SENSOR_KEY_DOOR, str);
-
- sensor_data_set_string(g_ad->power_data, str, strlen(str));
- resp_rep->set_str_value(resp_rep, SENSOR_KEY_DOOR, str);
-
- if (0 == strcmp(str, "opening")) {
- ret = __set_servo_motor(g_ad, 1);
- } else {
- ret = __set_servo_motor(g_ad, 0);
- }
- free(str);
- retv_if(ret != 0, false);
- } else {
- _E("cannot get a string value");
- }
-
- return true;
- }
- return false;
-}
-
-static int __st_things_init(void)
-{
- bool easysetup_complete = false;
- char app_json_path[128] = {'\0', };
- char *app_res_path = NULL;
- char *app_data_path = NULL;
-
- app_res_path = app_get_resource_path();
- if (!app_res_path) {
- _E("app_res_path is NULL!!");
- return -1;
- }
-
- app_data_path = app_get_data_path();
- if (!app_data_path) {
- _E("app_data_path is NULL!!");
- free(app_res_path);
- return -1;
- }
-
- snprintf(app_json_path, sizeof(app_json_path), "%s%s", app_res_path, JSON_PATH);
-
- if (0 != st_things_set_configuration_prefix_path(app_res_path, app_data_path)) {
- _E("st_things_set_configuration_prefix_path() failed!!");
- free(app_res_path);
- free(app_data_path);
- return -1;
- }
-
- free(app_res_path);
- free(app_data_path);
-
- if (0 != st_things_initialize(app_json_path, &easysetup_complete)) {
- _E("st_things_initialize() failed!!");
- return -1;
- }
-
- _D("easysetup_complete:[%d] ", easysetup_complete);
-
- st_things_register_request_cb(handle_get_request, handle_set_request);
- st_things_register_reset_cb(handle_reset_request, handle_reset_result);
- st_things_register_user_confirm_cb(handle_ownership_transfer_request);
- st_things_register_things_status_change_cb(handle_things_status_change);
-
- return 0;
-}
-
-static int __st_things_deinit(void)
-{
- st_things_deinitialize();
- return 0;
-}
-
-static int __st_things_start(void)
-{
- st_things_start();
- return 0;
-}
-
-static int __st_things_stop(void)
-{
- st_things_stop();
- return 0;
-}
-#endif /* USE_ST_SDK */
-
static bool service_app_create(void *user_data)
{
app_data *ad = (app_data *)user_data;
ad->illuminance_data = sensor_data_new(SENSOR_DATA_TYPE_UINT);
if (!ad->illuminance_data)
return false;
-
- resource_write_led(5, 1);
-
-
-
-
-#ifdef USE_ST_SDK
- resource_OLED_initial(I2C_BUS_NUMBER);
- resource_OLED_disp_logo(I2C_BUS_NUMBER);
-
- if (__st_things_init())
- return false;
-#endif
+ resource_write_led(5, 1);
return true;
}
static void service_app_control(app_control_h app_control, void *user_data)
{
-#ifdef USE_ST_SDK
- __st_things_start();
-#else
gathering_start(user_data);
-#endif
}
static void service_app_terminate(void *user_data)
resource_write_led(5, 0);
resource_close_all();
- resource_close_OLED();
-/*
- resource_close_initial_LIDAR_sensor();
- resource_close_two_read_set_LIDAR_sensor();
- resource_close_read_LIDAR_sensor();
-*/
-#ifdef USE_ST_SDK
- __st_things_stop();
- __st_things_deinit();
-#else
+
gathering_stop(ad);
-#endif
sensor_data_free(ad->illuminance_data);
free(ad);