From b12040d13b411ddddbd8f755b9d9629c3e8bdb6f Mon Sep 17 00:00:00 2001 From: Jin Yoon Date: Thu, 9 Aug 2018 09:04:49 +0900 Subject: [PATCH] Smart blind : initial version Change-Id: Ib6e890da758f3896b5ea9406f2d2d55a4f360038 --- .cproject | 734 +++++++++++++++++++++ .exportMap | 5 + .gitignore | 2 + .project | 46 ++ .smartthingsapp | 0 .tproject | 12 + inc/log.h | 102 +++ inc/resource.h | 28 + inc/resource/resource_illuminance_sensor.h | 32 + .../resource_illuminance_sensor_internal.h | 28 + inc/resource/resource_servo_motor.h | 34 + inc/resource_internal.h | 47 ++ inc/sensor-data.h | 50 ++ inc/st_things.h | 299 +++++++++ inc/st_things_types.h | 319 +++++++++ lib/liboicdastack.so | Bin 0 -> 499340 bytes lib/libsdkapi.so | Bin 0 -> 79944 bytes project_def.prop | 11 + res/certificate.pem | 33 + res/device_def.json | 97 +++ res/privatekey.der | Bin 0 -> 121 bytes shared/res/smart-blind.png | Bin 0 -> 57662 bytes src/resource.c | 42 ++ src/resource/resource_illuminance_sensor.c | 83 +++ src/resource/resource_servo_motor.c | 65 ++ src/sensor-data.c | 195 ++++++ src/smart-blind.c | 398 +++++++++++ tizen-manifest.xml | 17 + 28 files changed, 2679 insertions(+) create mode 100644 .cproject create mode 100644 .exportMap create mode 100644 .gitignore create mode 100644 .project create mode 100644 .smartthingsapp create mode 100644 .tproject create mode 100644 inc/log.h create mode 100755 inc/resource.h create mode 100644 inc/resource/resource_illuminance_sensor.h create mode 100644 inc/resource/resource_illuminance_sensor_internal.h create mode 100644 inc/resource/resource_servo_motor.h create mode 100755 inc/resource_internal.h create mode 100644 inc/sensor-data.h create mode 100644 inc/st_things.h create mode 100644 inc/st_things_types.h create mode 100644 lib/liboicdastack.so create mode 100644 lib/libsdkapi.so create mode 100644 project_def.prop create mode 100644 res/certificate.pem create mode 100644 res/device_def.json create mode 100644 res/privatekey.der create mode 100644 shared/res/smart-blind.png create mode 100644 src/resource.c create mode 100644 src/resource/resource_illuminance_sensor.c create mode 100644 src/resource/resource_servo_motor.c create mode 100644 src/sensor-data.c create mode 100644 src/smart-blind.c create mode 100644 tizen-manifest.xml diff --git a/.cproject b/.cproject new file mode 100644 index 0000000..f557db1 --- /dev/null +++ b/.cproject @@ -0,0 +1,734 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.exportMap b/.exportMap new file mode 100644 index 0000000..de30516 --- /dev/null +++ b/.exportMap @@ -0,0 +1,5 @@ +{ + global: main; + _IO_*; + local: *; +}; diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7b0adc8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/Debug/ +/SA_Report/ diff --git a/.project b/.project new file mode 100644 index 0000000..580a699 --- /dev/null +++ b/.project @@ -0,0 +1,46 @@ + + + smart-blind + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.core.ccnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + + 1532670384450 + + 26 + + org.eclipse.ui.ide.multiFilter + 1.0-projectRelativePath-matches-false-false-*/.tpk + + + + 1532670384528 + + 6 + + org.eclipse.ui.ide.multiFilter + 1.0-name-matches-false-false-project_def.prop + + + + diff --git a/.smartthingsapp b/.smartthingsapp new file mode 100644 index 0000000..e69de29 diff --git a/.tproject b/.tproject new file mode 100644 index 0000000..f857534 --- /dev/null +++ b/.tproject @@ -0,0 +1,12 @@ + + + + + iot-headless-4.0 + + + + + + + diff --git a/inc/log.h b/inc/log.h new file mode 100644 index 0000000..d958e2e --- /dev/null +++ b/inc/log.h @@ -0,0 +1,102 @@ +/* + * Copyright (c) 2018 Samsung Electronics Co., Ltd. + * + * Contact: Jin Yoon + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __POSITION_FINDER_SERVER_H__ +#define __POSITION_FINDER_SERVER_H__ + +#include + +#ifdef LOG_TAG +#undef LOG_TAG +#endif +#define LOG_TAG "TT" + +#if !defined(_D) +#define _D(fmt, arg...) dlog_print(DLOG_DEBUG, LOG_TAG, "[%s:%d] " fmt "\n", __func__, __LINE__, ##arg) +#endif + +#if !defined(DBG) +#define DBG(fmt, arg...) dlog_print(DLOG_DEBUG, LOG_TAG, "[%s:%d] " fmt "\n", __func__, __LINE__, ##arg) +#endif + +#if !defined(_I) +#define _I(fmt, arg...) dlog_print(DLOG_INFO, LOG_TAG, "[%s:%d] " fmt "\n", __func__, __LINE__, ##arg) +#endif + +#if !defined(_W) +#define _W(fmt, arg...) dlog_print(DLOG_WARN, LOG_TAG, "[%s:%d] " fmt "\n", __func__, __LINE__, ##arg) +#endif + +#if !defined(_E) +#define _E(fmt, arg...) dlog_print(DLOG_ERROR, LOG_TAG, "[%s:%d] " fmt "\n", __func__, __LINE__, ##arg) +#endif + +#define retvm_if(expr, val, fmt, arg...) do { \ + if (expr) { \ + _E(fmt, ##arg); \ + _E("(%s) -> %s() return", #expr, __FUNCTION__); \ + return val; \ + } \ +} while (0) + +#define retv_if(expr, val) do { \ + if (expr) { \ + _E("(%s) -> %s() return", #expr, __FUNCTION__); \ + return (val); \ + } \ +} while (0) + +#define retm_if(expr, fmt, arg...) do { \ + if (expr) { \ + _E(fmt, ##arg); \ + _E("(%s) -> %s() return", #expr, __FUNCTION__); \ + return; \ + } \ +} while (0) + +#define ret_if(expr) do { \ + if (expr) { \ + _E("(%s) -> %s() return", #expr, __FUNCTION__); \ + return; \ + } \ +} while (0) + +#define goto_if(expr, val) do { \ + if (expr) { \ + _E("(%s) -> goto", #expr); \ + goto val; \ + } \ +} while (0) + +#define break_if(expr) { \ + if (expr) { \ + _E("(%s) -> break", #expr); \ + break; \ + } \ +} + +#define continue_if(expr) { \ + if (expr) { \ + _E("(%s) -> continue", #expr); \ + continue; \ + } \ +} + + + +#endif /* __POSITION_FINDER_SERVER_H__ */ diff --git a/inc/resource.h b/inc/resource.h new file mode 100755 index 0000000..cf59cb9 --- /dev/null +++ b/inc/resource.h @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2018 Samsung Electronics Co., Ltd. + * + * Contact: Jin Yoon + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __POSITION_FINDER_RESOURCE_H__ +#define __POSITION_FINDER_RESOURCE_H__ + +#include + +#include "resource_internal.h" +#include "resource/resource_illuminance_sensor.h" +#include "resource/resource_servo_motor.h" + +#endif /* __POSITION_FINDER_RESOURCE_H__ */ diff --git a/inc/resource/resource_illuminance_sensor.h b/inc/resource/resource_illuminance_sensor.h new file mode 100644 index 0000000..05523ca --- /dev/null +++ b/inc/resource/resource_illuminance_sensor.h @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2018 Samsung Electronics Co., Ltd. + * + * Contact: Jin Yoon + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __POSITION_FINDER_RESOURCE_ILLUMINANCE_SENSOR_H__ +#define __POSITION_FINDER_RESOURCE_ILLUMINANCE_SENSOR_H__ + +/** + * @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 value 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, uint32_t *out_value); + +#endif /* __POSITION_FINDER_RESOURCE_ILLUMINANCE_SENSOR_H__ */ + diff --git a/inc/resource/resource_illuminance_sensor_internal.h b/inc/resource/resource_illuminance_sensor_internal.h new file mode 100644 index 0000000..0bfec0a --- /dev/null +++ b/inc/resource/resource_illuminance_sensor_internal.h @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2018 Samsung Electronics Co., Ltd. + * + * Contact: Jin Yoon + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#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__ */ + diff --git a/inc/resource/resource_servo_motor.h b/inc/resource/resource_servo_motor.h new file mode 100644 index 0000000..43a0916 --- /dev/null +++ b/inc/resource/resource_servo_motor.h @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2018 Samsung Electronics Co., Ltd. + * + * Contact: Jin Yoon + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __RESOURCE_SERVO_MOTOR_H__ +#define __RESOURCE_SERVO_MOTOR_H__ + +void resource_close_servo_motor(void); + +/** + * This module is sample codes to handling Servo motors in Tizen platform. + * Hardware is configured with HS-53, + * Bus : 0 + * Pin : 2 + * @param[in] duty_cycle_ms + * @return 0 on success, otherwise a negative error value + */ +int resource_set_servo_motor_value(double duty_cycle_ms); + +#endif /* __RESOURCE_SERVO_MOTOR_H__ */ diff --git a/inc/resource_internal.h b/inc/resource_internal.h new file mode 100755 index 0000000..acea1e1 --- /dev/null +++ b/inc/resource_internal.h @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2018 Samsung Electronics Co., Ltd. + * + * Contact: Jin Yoon + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __POSITION_FINDER_RESOURCE_INTERNAL_H__ +#define __POSITION_FINDER_RESOURCE_INTERNAL_H__ + +#include + +#include "resource/resource_illuminance_sensor_internal.h" + +#define PIN_MAX 40 + +struct _resource_s { + int opened; + peripheral_gpio_h sensor_h; + void (*close) (int); +}; +typedef struct _resource_s resource_s; + +typedef void (*resource_read_cb)(double value, void *data); + +struct _resource_read_cb_s { + resource_read_cb cb; + void *data; + int pin_num; +}; +typedef struct _resource_read_cb_s resource_read_s; + +extern resource_s *resource_get_info(int pin_num); +extern void resource_close_all(void); + +#endif /* __POSITION_FINDER_RESOURCE_INTERNAL_H__ */ diff --git a/inc/sensor-data.h b/inc/sensor-data.h new file mode 100644 index 0000000..d6b3001 --- /dev/null +++ b/inc/sensor-data.h @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2018 Samsung Electronics Co., Ltd. + * + * Contact: Jin Yoon + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __SENSOR_DATA_H__ +#define __SENSOR_DATA_H__ + +#include + +typedef enum { + SENSOR_DATA_TYPE_NONE = 0, + SENSOR_DATA_TYPE_INT, + SENSOR_DATA_TYPE_UINT, + SENSOR_DATA_TYPE_BOOL, + SENSOR_DATA_TYPE_DOUBLE, + SENSOR_DATA_TYPE_STR, +} sensor_data_type_e; + +typedef struct __sensor_data_s sensor_data; + +sensor_data *sensor_data_new(sensor_data_type_e type); +void sensor_data_free(sensor_data *data); + +int sensor_data_set_int(sensor_data *data, int value); +int sensor_data_set_uint(sensor_data *data, unsigned int value); +int sensor_data_set_bool(sensor_data *data, bool value); +int sensor_data_set_double(sensor_data *data, double value); +int sensor_data_set_string(sensor_data *data, const char *value, unsigned int size); + +int sensor_data_get_int(sensor_data *data, int *value); +int sensor_data_get_uint(sensor_data *data, unsigned int *value); +int sensor_data_get_bool(sensor_data *data, bool *value); +int sensor_data_get_double(sensor_data *data, double *value); +int sensor_data_get_string(sensor_data *data, const char **value); + +#endif /* __SENSOR_DATA_H__ */ diff --git a/inc/st_things.h b/inc/st_things.h new file mode 100644 index 0000000..31340a5 --- /dev/null +++ b/inc/st_things.h @@ -0,0 +1,299 @@ +/* + * Copyright (c) 2018 Samsung Electronics Co., Ltd. + * + * Contact: Jin Yoon + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __ST_THINGS_H__ +#define __ST_THINGS_H__ + +#include +#include + +#ifdef __ST_THINGS_RTOS__ +#include +#else +#include "st_things_types.h" +#endif // __ST_THINGS_RTOS__ + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/** + * @brief Set prefix paths (ReadOnly and ReadWrite) for configuration files for the device. + * This is Optional API, and should be used if relative location is used in + * filePath variable in JSON Configuration file. + * @param[in] ro_path Prefix Path for Read Only directory location. + * @param[in] rw_path Prefix Path for Read Write directory location. + * @return @c 0 on success, otherwise a negative error value + * @retval #ST_THINGS_ERROR_NONE Successful + * @retval #ST_THINGS_ERROR_INVALID_PARAMETER Invalid parameter(both ro_path and rw_path are NULL). + * @retval #ST_THINGS_ERROR_OPERATION_FAILED Operation failed + * @retval #ST_THINGS_ERROR_STACK_ALREADY_INITIALIZED Stack already initialized. + * To set Prefix Paths, stack should be deinitilized first by calling st_things_deinitialize(). + * @retval #ST_THINGS_ERROR_STACK_RUNNING Stack is currently running. + * To set Prefix Paths, stack should be stopped first by calling st_things_stop() + * and then deinitialized by calling st_things_deinitialize(). + */ +int st_things_set_configuration_prefix_path(const char* ro_path, const char* rw_path); + +/** + * @brief Initializes things stack and returns whether easy-setup is completed or not. + * Easy-setup enable users to acquire the ownership of things and to connect the things with the cloud. + * After performing easy-setup, users can access things from anywhere through the cloud. + * In things stack, easy-setup is a primary and the first operation to be performed on the thing. + * Application running on the thing can know whether easy-setup is done already or not. + * If easy-setup is done, app can start the things stack by calling st_things_start(). + * If easy-setup is not done, app can either wait for the user interaction before starting the things stack or + * start the things stack directly without waiting for any events(This case is for those things which doesn't + * support input capability and for all other unknown cases). + * To use a new json file after initialization, stack should be deinitialized + * and stopped(if its started already). + * @param[in] json_path Path to Json file which defines a thing. Definition includes the device information, + * resources and their properties, configuration info for connectivity and easy-setup, etc. + * @param[out] easysetup_complete Indicates whether easysetup is completed already or not. + * @return @c 0 on success, otherwise a negative error value + * @retval #ST_THINGS_ERROR_NONE Successful + * @retval #ST_THINGS_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ST_THINGS_ERROR_OPERATION_FAILED Operation failed + * @retval #ST_THINGS_ERROR_STACK_ALREADY_INITIALIZED Stack already initialized. + * To initialize again, stack should be deinitilized first by calling st_things_deinitialize(). + * @retval #ST_THINGS_ERROR_STACK_RUNNING Stack is currently running. + * To initialize again, stack should be stopped first by calling st_things_stop() + * and then deinitialized by calling st_things_deinitialize(). + */ +int st_things_initialize(const char *json_path, bool *easysetup_complete); + +/** + * @brief Deinitializes things stack. + * Stack should have been initialized before calling this API. + * @return @c 0 on success, otherwise a negative error value + * @retval #ST_THINGS_ERROR_NONE Successful + * @retval #ST_THINGS_ERROR_OPERATION_FAILED Operation failed + * @retval #ST_THINGS_ERROR_STACK_NOT_INITIALIZED Stack is not initialized. + * Initialize the stack by calling st_things_initialize(). + * @retval #ST_THINGS_ERROR_STACK_RUNNING Stack is currently running. + * Before deinitialize, stack needs to be stopped by calling st_things_stop(). + */ +int st_things_deinitialize(void); + +/** + * @brief Callback for handling GET request. + * @param[in] req_msg GET request message. + * @param[out] resp_rep Representation that will be set to payload of response. + * @return @c true in case of success, otherwise @c false + */ +typedef bool (*st_things_get_request_cb)(st_things_get_request_message_s *req_msg, st_things_representation_s *resp_rep); + +/** + * @brief Callback for handling SET(POST) request. + * @param[in] req_msg SET request message. + * @param[out] resp_rep Representation that will be set to payload of response. + * @return @c true in case of success, otherwise @c false + */ +typedef bool (*st_things_set_request_cb)(st_things_set_request_message_s *req_msg, st_things_representation_s *resp_rep); + +/** + * @brief Callback registration function for handling request messages. + * @details The callbacks ensure that a request message will be carried with one of the resource uris from json file of st_things_start(). + * @remarks Only one callback function can be set with this API.\n + * If multiple callbacks are set, the last one is registered only.\n + * And the callbacks are called in the internal thread, which is not detached,\n + * so application should return it to get the next callbacks. + * @param[in] get_cb Reference of the callback function to handle GET request. + * @param[in] set_cb Reference of the callback function to handle SET(POST) request. + * @return @c 0 on success, otherwise a negative error value + * @retval #ST_THINGS_ERROR_NONE Successful + * @retval #ST_THINGS_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ST_THINGS_ERROR_OPERATION_FAILED Operation failed + */ +int st_things_register_request_cb(st_things_get_request_cb get_cb, st_things_set_request_cb set_cb); + +/** + * @brief Starts things stack. + * Parses the thing definition(whose path is passed to st_things_initialize(), configures the thing, + * creates the resources and prepares it for easy-setup. + * If easy-setup is not done yet, onboarding will be started using either SoftAP or BLE connection. + * Onboarding creates an ad-hoc network between the thing and the client for performing easy-setup. + * If easy-setup is already done, thing will be connected with the cloud. + * Application can know whether easy-setup is done or not through st_things_initialize API. + * Stack should have been initialized before calling this API. + * @return @c 0 on success, otherwise a negative error value + * @retval #ST_THINGS_ERROR_NONE Successful. + * It is also used for the case that the stack is started already. + * @retval #ST_THINGS_ERROR_OPERATION_FAILED Operation failed + * @retval #ST_THINGS_ERROR_STACK_NOT_INITIALIZED Stack is not initialized. + * Initialize the stack by calling st_things_initialize(). + */ +int st_things_start(void); + +/** + * @brief Stops things stack. + * Removes all the data being used internally and releases all the memory allocated for the stack. + * Stack should have been initialized and started before calling this API. + * @return @c 0 on success, otherwise a negative error value + * @retval #ST_THINGS_ERROR_NONE Successful + * @retval #ST_THINGS_ERROR_OPERATION_FAILED Operation failed + * @retval #ST_THINGS_ERROR_STACK_NOT_INITIALIZED Stack is not initialized. + * Initialize the stack by calling st_things_initialize(). + * @retval #ST_THINGS_ERROR_STACK_NOT_STARTED Stack is not started. + * Start the stack by calling st_things_start(). + */ +int st_things_stop(void); + +/** + * @brief Callback for getting user's opinion regarding device reset. + * @return @c true to confirm, otherwise @c to deny + */ +typedef bool (*st_things_reset_confirm_cb)(void); + +/** + * @brief Callback for carrying the result of reset. + * @param[in] is_success Result of Stack-reset. (true : success, false : failure) + */ +typedef void (*st_things_reset_result_cb)(bool is_success); + +/** + * @brief Callback registration function for Reset-Confirmation and Reset-Result functions. + * @remarks Only one callback function can be set with this API.\n + * If multiple callbacks are set, the last one is registered only.\n + And the callbacks are called in the internal thread, which is not detached,\n + * so application should return it to get the next callbacks. + * @param[in] confirm_cb Callback function that will be called to get the user's input when reset is triggered. + * @param[in] result_cb Callback function that will be called after the reset process is done. + * This parameter can be NULL if notification for result of reset is not needed. + * @return @c 0 on success, otherwise a negative error value + * @retval #ST_THINGS_ERROR_NONE Successful + * @retval #ST_THINGS_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ST_THINGS_ERROR_OPERATION_FAILED Operation failed + */ +int st_things_register_reset_cb(st_things_reset_confirm_cb confirm_cb, st_things_reset_result_cb result_cb); + +/** + * @brief Reset all the data related to security and cloud being used in the stack. + * Stack should have been initialized and started before calling this API. + * @return @c 0 on success, otherwise a negative error value + * @retval #ST_THINGS_ERROR_NONE Successful + * @retval #ST_THINGS_ERROR_OPERATION_FAILED Operation failed + * @retval #ST_THINGS_ERROR_STACK_NOT_INITIALIZED Stack is not intialized. + * Initialize the stack by calling st_things_initialize(). + * @retval #ST_THINGS_ERROR_STACK_NOT_STARTED Stack is not started. + * Start the stack by calling st_things_start(). + */ +int st_things_reset(void); + +/** + * @brief Callback for carrying the randomly generated PIN info. + * @details Device should show the PIN on display. + * @param[in] pin_data PIN data in string format. + * @param[in] pin_size Length of the PIN String. + */ +typedef void (*st_things_pin_generated_cb)(const char *pin_data, const size_t pin_size); + +/** + * @brief Callback for informing the application to close the PIN display. + */ +typedef void (*st_things_pin_display_close_cb)(void); + +/** + * @brief Callback registration function for getting randomly generated PIN for the PIN-Based Ownership Transfer Request. + * @remarks Only one callback function can be set with this API.\n + * If multiple callbacks are set, the last one is registered only.\n + * And the callbacks are called in the internal thread, which is not detached,\n + * so application should return it to get the next callbacks. + * @param[in] generated_cb Callback function that will be called when device receives a Ownership Transfer request from client. + * @param[in] close_cb Callback function that will be called when Ownership Transfer is done so device can stop showing PIN on display. + * This parameter can be NULL if stop triggering is not needed. + * @return @c 0 on success, otherwise a negative error value + * @retval #ST_THINGS_ERROR_NONE Successful + * @retval #ST_THINGS_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ST_THINGS_ERROR_OPERATION_FAILED Operation failed + */ +int st_things_register_pin_handling_cb(st_things_pin_generated_cb generated_cb, st_things_pin_display_close_cb close_cb); + +/** + * @brief Callback for getting user's input regarding mutual verification. + * @return @c true true in cse of confirmed, otherwise @c false + */ +typedef bool (*st_things_user_confirm_cb)(void); + +/** + * @brief Callback registration function for getting user confirmation for MUTUAL VERIFICATION BASED JUST WORK Ownership transfer. + * @remarks Only one callback function can be set with this API.\n + * If multiple callbacks are set, the last one is registered only.\n + * And the callbacks are called in the internal thread, which is not detached,\n + * so application should return it to get the next callbacks. + * @param[in] confirm_cb Callback function that will be called when device receives a confirm request from client. + * @return @c 0 on success, otherwise a negative error value + * @retval #ST_THINGS_ERROR_NONE Successful + * @retval #ST_THINGS_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ST_THINGS_ERROR_OPERATION_FAILED Operation failed + */ +int st_things_register_user_confirm_cb(st_things_user_confirm_cb confirm_cb); + +/** + * @brief Callback for getting the current state of ST Things. + * @param[in] things_status ST Things State + */ +typedef void (*st_things_status_change_cb)(st_things_status_e things_status); + +/** + * @brief Callback registration function for getting notified when ST Things state changes. + * @remarks Only one callback function can be set with this API.\n + * If multiple callbacks are set, the last one is registered only.\n + * And the callbacks are called in the internal thread, which is not detached,\n + * so application should return it to get the next callbacks. + * @param[in] status_cb Refernce of the callback function to get ST Things status + * @return @c 0 on success, otherwise a negative error value + * @retval #ST_THINGS_ERROR_NONE Successful + * @retval #ST_THINGS_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ST_THINGS_ERROR_OPERATION_FAILED Operation failed + */ +int st_things_register_things_status_change_cb(st_things_status_change_cb status_cb); + +/** + * @brief Notify the observers of a specific resource. + * Stack should have been initialized and started before calling this API. + * @param[in] resource_uri Resource URI of the resource which will be notified to observers. + * @return @c 0 on success, otherwise a negative error value + * @retval #ST_THINGS_ERROR_NONE Successful + * @retval #ST_THINGS_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ST_THINGS_ERROR_OPERATION_FAILED Operation failed + * @retval #ST_THINGS_ERROR_STACK_NOT_INITIALIZED Stack is not intialized. + * Initialize the stack by calling st_things_initialize(). + * @retval #ST_THINGS_ERROR_STACK_NOT_STARTED Stack is not started. + * Start the stack by calling st_things_start(). + */ +int st_things_notify_observers(const char *resource_uri); + +/** + * @brief Create an instance of representation. + * @remarks To destroy an instance, st_things_destroy_representation_inst() should be used. + * @return a pointer of the created representation, otherwise a null pointer if the memory is insufficient. + */ +st_things_representation_s *st_things_create_representation_inst(void); + +/** + * @brief Destroy an instance of representation. + * @param[in] rep Representation that will be destroyed. + */ +void st_things_destroy_representation_inst(st_things_representation_s *rep); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ST_THINGS_H__ */ diff --git a/inc/st_things_types.h b/inc/st_things_types.h new file mode 100644 index 0000000..867f0ac --- /dev/null +++ b/inc/st_things_types.h @@ -0,0 +1,319 @@ +/* + * Copyright (c) 2018 Samsung Electronics Co., Ltd. + * + * Contact: Jin Yoon + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __ST_THINGS_TYPES_H__ +#define __ST_THINGS_TYPES_H__ + +#include +#include +#include + +/** + * @brief Enumeration for ST Things error code. + */ +typedef enum { + ST_THINGS_ERROR_NONE = 0, /**< Successful */ + ST_THINGS_ERROR_INVALID_PARAMETER = -1, /**< Invalid parameter (If parameter is null or empty)*/ + ST_THINGS_ERROR_OPERATION_FAILED = -2, /**< Operation Failed */ + ST_THINGS_ERROR_STACK_NOT_INITIALIZED = -3, /**< Stack is not yet initialized*/ + ST_THINGS_ERROR_STACK_ALREADY_INITIALIZED = -4, /**< Stack is already initialized*/ + ST_THINGS_ERROR_STACK_NOT_STARTED = -5, /**< Stack is not yet started*/ + ST_THINGS_ERROR_STACK_RUNNING = -6, /**< Stack is currently running*/ +} st_things_error_e; + +/** + * @brief Enumeration for ST Things status. + */ +typedef enum { + ST_THINGS_STATUS_INIT = 0, /**< Initial state of ST Things */ + ST_THINGS_STATUS_ES_STARTED, /**< Easy-setup is started */ + ST_THINGS_STATUS_ES_DONE, /**< Easy-setup is done */ + ST_THINGS_STATUS_ES_FAILED_ON_OWNERSHIP_TRANSFER, /**< Easy-setup failed due to Ownership-Transfer failure */ + ST_THINGS_STATUS_CONNECTING_TO_AP, /**< Connecting to target Wi-Fi access point */ + ST_THINGS_STATUS_CONNECTED_TO_AP, /**< Connected to target Wi-Fi access point */ + ST_THINGS_STATUS_CONNECTING_TO_AP_FAILED, /**< Failed to connect to target Wi-Fi access point */ + ST_THINGS_STATUS_REGISTERING_TO_CLOUD, /**< Trying to Sign-up/Sign-in/Publish-Resource(s) to Cloud */ + ST_THINGS_STATUS_REGISTERED_TO_CLOUD, /**< Publish resource(s) to cloud is complete. Now the Thing is ready to be controlled via Cloud */ + ST_THINGS_STATUS_REGISTERING_FAILED_ON_SIGN_IN, /**< Failed to sign-in to Cloud */ + ST_THINGS_STATUS_REGISTERING_FAILED_ON_PUB_RES /**< Failed to publish resources to Cloud */ +} st_things_status_e; + +/** + * @brief Structure for Representation. + */ +typedef struct _st_things_representation +{ + void* payload; /**< Payload of representation */ + + /** + * @brief API for getting the value of string type property with a key. + * @remarks This API will return deep-copied string value as out parameter, so application must free it after use. + * @param[in] rep Instance of Representation. + * @param[in] key Property Name which represents the value. + * @param[out] value String value + * @return @c true if value exist, otherwise @c false + */ + bool (*get_str_value) (struct _st_things_representation* rep, const char* key, char** value); + + /** + * @brief API for getting the value of boolean type property with a key. + * @param[in] rep Instance of Representation. + * @param[in] key Property Name which represents the value. + * @param[out] value Bool value + * @return @c true if value exist, otherwise @c false + */ + bool (*get_bool_value) (struct _st_things_representation* rep, const char* key, bool* value); + + /** + * @brief API for getting the value of integer type property with a key. + * @param[in] rep Instance of Representation. + * @param[in] key Property Name which represents the value. + * @param[out] value Integer value + * @return @c true if value exist, otherwise @c false + */ + bool (*get_int_value) (struct _st_things_representation* rep, const char* key, int64_t* value); + + /** + * @brief API for getting the value of double type property with a key. + * @param[in] rep Instance of Representation. + * @param[in] key Property Name which represents the value. + * @param[out] value Double value + * @return @c true if value exist, otherwise @c false + */ + bool (*get_double_value) (struct _st_things_representation* rep, const char* key, double* value); + + /** + * @brief API for getting the value of byte array type property with a key. + * @remarks This API will return deep-copied byte value as out parameter, so application must free it after use. + * @param[in] rep Instance of Representation. + * @param[in] key Property Name which represents the value. + * @param[out] value Byte value + * @param[out] size Size of Byte value + * @return @c true if value exist, otherwise @c false + */ + bool (*get_byte_value) (struct _st_things_representation* rep, const char* key, uint8_t** value, size_t* size); + + /** + * @brief API for getting the value of object type property with a key. + * @remarks This API will return deep-copied object value as out parameter, so application must free it after use.\n + * To free an object, st_things_destroy_representation_inst() in st_things.h should be used. + * @param[in] rep Instance of Representation. + * @param[in] key Property Name which represents the value. + * @param[out] value Object value + * @return @c true if value exist, otherwise @c false + */ + bool (*get_object_value) (struct _st_things_representation* rep, const char* key, struct _st_things_representation** value); + + /** + * @brief API for setting the value of string type property with a key. + * @remarks This API will deep-copy the string value inside, so application still has an ownership of memory for the string value. + * @param[in] rep Instance of Representation. + * @param[in] key Property Name which will represent the value. + * @param[in] value String value. + * @return @c true if setting value is successful, otherwise @c false + */ + bool (*set_str_value) (struct _st_things_representation* rep, const char* key, const char* value); + + /** + * @brief API for setting the value of boolean type property with a key. + * @param[in] rep Instance of Representation. + * @param[in] key Property Name which will represent the value. + * @param[in] value Bool value. + * @return @c true if setting value is successful, otherwise @c false + */ + bool (*set_bool_value) (struct _st_things_representation* rep, const char* key, bool value); + + /** + * @brief API for setting the value of integer type property with a key. + * @param[in] rep Instance of Representation. + * @param[in] key Property Name which will represent the value. + * @param[in] value Integer value. + * @return @c true if setting value is successful, otherwise @c false + */ + bool (*set_int_value) (struct _st_things_representation* rep, const char* key, int64_t value); + + /** + * @brief API for setting the value of double type property with a key. + * @param[in] rep Instance of Representation. + * @param[in] key Property Name which will represent the value. + * @param[in] value Double value. + * @return @c true if setting value is successful, otherwise @c false + */ + bool (*set_double_value) (struct _st_things_representation* rep, const char* key, double value); + + /** + * @brief API for setting the value of byte array type property with a key. + * @remarks This API will deep-copy the byte value inside, so application still has an ownership of memory for the byte value. + * @param[in] rep Instance of Representation. + * @param[in] key Property Name which will represent the value. + * @param[in] value Byte value. + * @param[in] size Size of Byte value. + * @return @c true if setting value is successful, otherwise @c false + */ + bool (*set_byte_value) (struct _st_things_representation* rep, const char* key, const uint8_t* value, size_t size); + + /** + * @brief API for setting the value of object type property with a key. + * @remarks This API will deep-copy the object value inside, so application still has an ownership of memory for the object value. + * @param[in] rep Instance of Representation. + * @param[in] key Property Name which will represent the value. + * @param[in] value Object value. + * @return @c true if value exist, otherwise @c false + */ + bool (*set_object_value) (struct _st_things_representation* rep, const char* key, const struct _st_things_representation* value); + + /** + * @brief API for getting the value of string array type property with a key. + * @remarks This API will return deep-copied array value as out parameter, so application must free it after use. + * @param[in] rep Instance of Representation. + * @param[in] key Property Name which will represent the array type of value. + * @param[out] array Reference of the string array to where the value will be copied. + * @param[out] length Total number of elements in the array. + * @return @c true if value exist, otherwise @c false + */ + bool (*get_str_array_value) (struct _st_things_representation* rep, const char* key, char*** array, size_t* length); + + /** + * @brief API for getting the value of integer array type property with a key. + * @remarks This API will return deep-copied array value as out parameter, so application must free it after use. + * @param[in] rep Instance of Representation. + * @param[in] key Property Name which will represent the array type of value. + * @param[out] array Reference of the integer array where the value will be copied. + * @param[out] length Total number of elements in the array. + * @return @c true if value exist, otherwise @c false + */ + bool (*get_int_array_value) (struct _st_things_representation* rep, const char* key, int64_t** array, size_t* length); + + /** + * @brief API for getting the value of double array type property with a key. + * @remarks This API will return deep-copied array value as out parameter, so application must free it after use. + * @param[in] rep Instance of Representation. + * @param[in] key Property Name which will represent the array type of value. + * @param[out] array Reference of the double array where the value will be copied. + * @param[out] length Total number of elements in the array. + * @return @c true if value exist, otherwise @c false + */ + bool (*get_double_array_value) (struct _st_things_representation* rep, const char* key, double** array, size_t* length); + + /** + * @brief API for getting the value of object array type property with a key. + * @remarks This API will return deep-copied array value as out parameter, so application must free it after use.\n + * To free each object in array, st_things_destroy_representation_inst() in st_things.h should be used. + * @param[in] rep Instance of Representation. + * @param[in] key Property Name which represents the array type of value. + * @param[out] array Reference of the object array where the value will be copied. + * @param[out] length Total number of elements in the array. + * @return @c true if value exist, otherwise @c false + */ + bool (*get_object_array_value) (struct _st_things_representation* rep, const char* key, struct _st_things_representation*** array, size_t* length); + + /** + * @brief API for setting the value of string array type property with a key. + * @remarks This API will deep-copy the array value inside, so application still has an ownership of memory for the array value. + * @param[in] rep Instance of Representation. + * @param[in] key Property Name which represents the value. + * @param[in] array String array type value. + * @param[in] length Total number of elements in the array. + * @return @c true if setting value is successful, otherwise @c false + */ + bool (*set_str_array_value) (struct _st_things_representation* rep, const char* key, const char** array, size_t length); + + /** + * @brief API for setting the value of integer array type property with a key. + * @remarks This API will deep-copy the array value inside, so application still has an ownership of memory for the array value. + * @param[in] rep Instance of Representation. + * @param[in] key Property Name which represents the value. + * @param[in] array Integer array type value. + * @param[in] length Total number of elements in the array. + * @return @c true if setting value is successful, otherwise @c false + */ + bool (*set_int_array_value) (struct _st_things_representation* rep, const char* key, const int64_t* array, size_t length); + + /** + * @brief API for setting the value of double array type property with a key. + * @remarks This API will deep-copy the array value inside, so application still has an ownership of memory for the array value. + * @param[in] rep Instance of Representation. + * @param[in] key Property Name which represents the value. + * @param[in] array Double array type value. + * @param[in] length Total number of elements in the array. + * @return @c true if setting value is successful, otherwise @c false + */ + bool (*set_double_array_value) (struct _st_things_representation* rep, const char* key, const double* array, size_t length); + + /** + * @brief API for setting the value of object array type property with a key. + * @remarks This API will deep-copy the array value inside, so application still has an ownership of memory for the array value. + * @param[in] rep Instance of Representation. + * @param[in] key Property Name which represents the value. + * @param[in] array Object array type value. + * @param[in] length Total number of elements in the array. + * @return @c true if setting value is successful, otherwise @c false + */ + bool (*set_object_array_value) (struct _st_things_representation* rep, const char* key, const struct _st_things_representation** array, size_t length); + +} st_things_representation_s; + +/** + * @brief Structure for representing the Get Request Message. + */ +typedef struct _st_things_get_request_message +{ + char* resource_uri; /**< Resource URI */ + char* query; /**< One or more query parameters of the request message. Ex: key1=value1;key2=value2;... */ + char* property_key; /**< One or more property key that application needs to set a value for response. Ex: key1;key2;... */ + + /** + * @brief API for getting the value of a specific query from the query parameters of the request. + * @param[in] req_msg Instance of get request message. + * @param[in] key Name of the query.(ex: key1, key2, etc) + * @param[out] value Value of the query.(value1, value2, etc) + * @return @c true if query exist, otherwise @c false + */ + bool (*get_query_value) (struct _st_things_get_request_message* req_msg, const char* key, char** value); + + /** + * @brief API for checking whether the request has a specific property key or not. + * @param[in] req_msg Instance of get request message. + * @param[in] key Name of the property. + * @return @c true if the property key exists, otherwise @c false + */ + bool (*has_property_key) (struct _st_things_get_request_message* req_msg, const char* key); + +} st_things_get_request_message_s; + +/** + * @brief Structure for representing the Set Request Message. + */ +typedef struct _st_things_set_request_message +{ + char* resource_uri; /**< Resource URI */ + char* query; /**< One or more query parameters of the request message. Ex: key1=value1?key2=value2?... */ + struct _st_things_representation* rep; /**< Representation of the set request message */ + + /** + * @brief API for getting the value of a specific query from the query parameters of the request. + * @param[in] req_msg Instance of request message. + * @param[in] key Name of the query.(ex: key1, key2, etc) + * @param[out] value Value of the query.(value1, value2, etc) + * @return @c true if query exist, otherwise @c false + */ + bool (*get_query_value) (struct _st_things_set_request_message* req_msg, const char* key, char** value); + +} st_things_set_request_message_s; + +#endif /* __ST_THINGS_TYPES_H__ */ diff --git a/lib/liboicdastack.so b/lib/liboicdastack.so new file mode 100644 index 0000000000000000000000000000000000000000..4a5cc91959210624be86d284642481a30d40d577 GIT binary patch literal 499340 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 DHn0_%qkg7D zviD)+Qs2a$w11<8@-=2_CT`rL>o*0|C*0wkNqpHJNQ@H?=hBcM|fvx zi>GyVB}$uZ;5(RG8XXt%r}@)t^GCABvA^xriTh2#efbWhc0cUTn%M~NkNfLpsw5I{n{D zqVqE2+dECBPMTfu@ywYGT-cf)&%4ioZy%zLe2y_|FQjL`l{w#{_d#_&2YTe2h;M&p z^mHfa=`ecs2K2mHxQuVFL3TpEsed8gZepBktxcZ`?L31#VmqS!r!Bq*8q%Cf(7ft4 z2by1GV|*-Ovkse$oiESx?j~rx78+*!d7F>dC1@D4`ymbct!#sD-Uc+>>~dyhK7NJv zLa&7eoy%)0fTKBqqcOnYdi1vqm)l*(Rb~CHEYJ7%k>Jw)lJxh+9>J%uQB&*@0JYe| zdTdoGWwKc*pq}z-paR&7{X2loY9u|)_24J5i@*?&lTD>;igY!Q22y}*ZmH}X>EU~^ zsX!MniQU_ejZ@jlzvX-mFbkw9Ps-AZS)e!V@?eR}Uycx7*O-|OnE zj&P{H{7kR!bgI7YhqNospl|Ml{sG?#iu{8!;T5f#pVEa>AC2Q4PJ`OfTxBnPyJU-g z$M4XhL&EvemhkIZEH6Ft4wKu#SAWiuM^Im0@Knbw=aq6L8 zTF?_JDI?^#NE5G-1l9l_7&U2BKSDd4)e6fJ6 zR59kIz}m;KBj}4>59Ea)6 zs~NX&eyjT}FLY1)I5n(C)lQaY^=@;N zrp(U>hkfvU6z@ZOpld#9^UZCG_o2{P{sr0KmHe6gu6vmOKr^t4ZkS{2dq|Ie6h8qN z0J2tokhI5Bt1Nb1|BU#Xy&dppp0>l72mammD)U*xzIfco`{I7B#^Y1gmlYc$@5?cp ztGV*LP5f}|PaJ&(V<6tmMs
wDPBPg%aw@)MTNSpIEEx+6H8Ot|YzQXb?mM^vZ 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

`Lb{!tY2|UWf-|?-ckRzrI1_^YE#xGZlNJ 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%0AYV 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 literal 0 HcmV?d00001 diff --git a/project_def.prop b/project_def.prop new file mode 100644 index 0000000..4f221b5 --- /dev/null +++ b/project_def.prop @@ -0,0 +1,11 @@ +APPNAME = smart-blind + +type = app +profile = iot-headless-4.0 + +USER_SRCS = src/smart-blind.c +USER_DEFS = +USER_INC_DIRS = inc, inc/sdk +USER_OBJS = +USER_LIBS = lib/liboicdastack.so, lib/libsdkapi.so +USER_EDCS = diff --git a/res/certificate.pem b/res/certificate.pem new file mode 100644 index 0000000..d3470a3 --- /dev/null +++ b/res/certificate.pem @@ -0,0 +1,33 @@ +-----BEGIN CERTIFICATE----- +MIICyjCCAnCgAwIBAgIUREVWM1AwMTE1MzM2ODUwODUwNzkwCgYIKoZIzj0EAwIw +fTE4MDYGA1UEAwwvU2Ftc3VuZyBFbGVjdHJvbmljcyBPQ0YgRGV2ZWxvcGVyIFN1 +YkNBIHYzIFRFU1QxFjAUBgNVBAsMDU9DRiBEZXYgU3ViQ0ExHDAaBgNVBAoME1Nh +bXN1bmcgRWxlY3Ryb25pY3MxCzAJBgNVBAYTAktSMB4XDTE4MDgwNzIzMzgwNVoX +DTE4MTAwNjIzMzgwNVowgbMxZzBlBgNVBAMMXkRldmVsb3BlciBEZXZpY2UgVEVT +VDogU21hcnRCbGluZCAoYjg4MzdhNWYtMjNiNS00Y2RhLWE0ZmEtNGE5NDU5YzRl +MTBhKS9qYXkudHQudGVzdEBnbWFpbC5jb20xHTAbBgNVBAsMFE9DRiBEZXYgRGV2 +aWNlKGZBYnIpMRwwGgYDVQQKDBNTYW1zdW5nIEVsZWN0cm9uaWNzMQswCQYDVQQG +EwJLUjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJMDmIztgUXrbfrPaBibwShB +oFnYd4vhWLA9II3SkaPzET23uGemCH7jtEd8YmCPezz7yGJTXxg3s4PYJs91GXOj +gZYwgZMwCwYDVR0PBAQDAgPIMDwGCCsGAQUFBwEBBDAwLjAsBggrBgEFBQcwAYYg +aHR0cDovL29jc3AtdGVzdC5zYW1zdW5naW90cy5jb20wOwYDVR0fBDQwMjAwoC6g +LIYqaHR0cDovL2NybC10ZXN0LnNhbXN1bmdpb3RzLmNvbS9kZXYzY2EuY3JsMAkG +A1UdEwQCMAAwCgYIKoZIzj0EAwIDSAAwRQIgJ4Vak8GiWRmMq6pgNwddzBmCRz/b +Px6CO+svAUIgmS8CIQD8f7L6pB+dT8xRa6tC7xcFXccIDnS7z2ST3B1PUIvjLw== +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIClDCCAjmgAwIBAgITCBdmNie8mlu4WgGqOB3KClKsjzAMBggqhkjOPQQDAgUA +MHAxLTArBgNVBAMTJFNhbXN1bmcgRWxlY3Ryb25pY3MgT0NGIFJvb3QgQ0EgVEVT +VDEUMBIGA1UECxMLT0NGIFJvb3QgQ0ExHDAaBgNVBAoTE1NhbXN1bmcgRWxlY3Ry +b25pY3MxCzAJBgNVBAYTAktSMCAXDTE3MTAxMDEwMjY0NloYDzIwNjkxMjMxMTQ1 +OTU5WjB9MTgwNgYDVQQDEy9TYW1zdW5nIEVsZWN0cm9uaWNzIE9DRiBEZXZlbG9w +ZXIgU3ViQ0EgdjMgVEVTVDEWMBQGA1UECxMNT0NGIERldiBTdWJDQTEcMBoGA1UE +ChMTU2Ftc3VuZyBFbGVjdHJvbmljczELMAkGA1UEBhMCS1IwWTATBgcqhkjOPQIB +BggqhkjOPQMBBwNCAASaLdjStXbZ6UcF7TFXDqratJxficMlBt8ec46MYQEocqZw +cIAh6UP8mpDMlOs1cUxatCoEDrGUNOZyFuNpztqfo4GgMIGdMA4GA1UdDwEB/wQE +AwIBBjA5BgNVHR8EMjAwMC6gLKAqhihodHRwOi8vY3JsLXRlc3Quc2Ftc3VuZ2lv +dHMuY29tL3Jvb3QuY3JsMBIGA1UdEwEB/wQIMAYBAf8CAQAwPAYIKwYBBQUHAQEE +MDAuMCwGCCsGAQUFBzABhiBodHRwOi8vb2NzcC10ZXN0LnNhbXN1bmdpb3RzLmNv +bTAMBggqhkjOPQQDAgUAA0cAMEQCIDAcuxI2o3RATk1JOGCmNmAqwPNLJxXzq1LA +GPqAP+fnAiBbrlkNBbmWk3q3nLO+0yJP1jd+uh5a7gd8/WF6t5osGA== +-----END CERTIFICATE----- diff --git a/res/device_def.json b/res/device_def.json new file mode 100644 index 0000000..e9ac95e --- /dev/null +++ b/res/device_def.json @@ -0,0 +1,97 @@ +{ + "device": [ + { + "specification": { + "device": { + "deviceType": "oic.d.light", + "deviceName": "Smart Blind", + "specVersion": "core.1.1.0", + "dataModelVersion": "res.1.1.0" + }, + "platform": { + "manufacturerName": "fAbr", + "manufacturerUrl": "http://www.samsung.com/sec/", + "manufacturingDate": "2017-08-31", + "modelNumber": "NWSP-01", + "platformVersion": "1.0", + "osVersion": "1.0", + "hardwareVersion": "1.0", + "firmwareVersion": "1.0", + "vendorId": "TizenVendor" + } + }, + "resources": { + "single": [ + { + "uri": "/capability/switch/main/0", + "types": [ + "x.com.st.powerswitch" + ], + "interfaces": [ + "oic.if.a", + "oic.if.baseline" + ], + "policy": 3 + }, + { + "uri": "/capability/illuminanceMeasurement/main/0", + "types": [ + "oic.r.sensor.illuminance" + ], + "interfaces": [ + "oic.if.s", + "oic.if.baseline" + ], + "policy": 3 + } + ] + } + } + ], + "resourceTypes": [ + { + "type": "x.com.st.powerswitch", + "properties": [ + { + "key": "power", + "type": 3, + "mandatory": true, + "rw": 3 + } + ] + }, + { + "type": "oic.r.sensor.illuminance", + "properties": [ + { + "key": "illuminance", + "type": 2, + "mandatory": true, + "rw": 1 + } + ] + } + ], + "configuration": { + "easySetup": { + "connectivity": { + "type": 1, + "softAP": { + "setupId": "007", + "artik": false + } + }, + "ownershipTransferMethod": 2 + }, + "wifi": { + "interfaces": 15, + "frequency": 1 + }, + "filePath": { + "svrdb": "artikserversecured.dat", + "provisioning": "provisioning.dat", + "certificate": "certificate.pem", + "privateKey": "privatekey.der" + } + } +} \ No newline at end of file diff --git a/res/privatekey.der b/res/privatekey.der new file mode 100644 index 0000000000000000000000000000000000000000..1847512bcd8e06592ac40ca6a3b3b398b9008ff8 GIT binary patch literal 121 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 kZ}gYfNaCF}xV$|1>H6z0+kD + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include + +#include "log.h" +#include "resource.h" + +static resource_s resource_info[PIN_MAX] = { {0, NULL, NULL}, }; + +resource_s *resource_get_info(int pin_num) +{ + return &resource_info[pin_num]; +} + +void resource_close_all(void) +{ + int i = 0; + for (i = 0; i < PIN_MAX; i++) { + if (!resource_info[i].opened) continue; + _I("GPIO[%d] is closing...", i); + + if (resource_info[i].close) + resource_info[i].close(i); + } + resource_close_illuminance_sensor(); +} diff --git a/src/resource/resource_illuminance_sensor.c b/src/resource/resource_illuminance_sensor.c new file mode 100644 index 0000000..787e992 --- /dev/null +++ b/src/resource/resource_illuminance_sensor.c @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2018 Samsung Electronics Co., Ltd. + * + * Contact: Jin Yoon + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include + +#include "log.h" +#include "resource_internal.h" + +#define I2C_PIN_MAX 28 +/* I2C */ +#define GY30_ADDR 0x23 /* Address of GY30 light sensor */ +#define GY30_CONT_HIGH_RES_MODE 0x10 /* Start measurement at 11x resolution. Measurement time is approx 120mx */ +#define GY30_CONSTANT_NUM (1.2) + +static struct { + int opened; + peripheral_i2c_h sensor_h; +} resource_sensor_s; + +void resource_close_illuminance_sensor(void) +{ + if (!resource_sensor_s.opened) + return; + + _I("Illuminance Sensor is finishing..."); + peripheral_i2c_close(resource_sensor_s.sensor_h); + resource_sensor_s.opened = 0; +} + +int resource_read_illuminance_sensor(int i2c_bus, uint32_t *out_value) +{ + int ret = PERIPHERAL_ERROR_NONE; + static int write = 0; + unsigned char buf[10] = { 0, }; + + if (!resource_sensor_s.opened) { + ret = peripheral_i2c_open(i2c_bus, GY30_ADDR, &resource_sensor_s.sensor_h); + if (ret != PERIPHERAL_ERROR_NONE) { + _E("i2c open error : %s", get_error_message(ret)); + return -1; + } + resource_sensor_s.opened = 1; + } + + buf[0] = 0x10; + + if (!write) { + ret = peripheral_i2c_write(resource_sensor_s.sensor_h, buf, 1); + if (ret != PERIPHERAL_ERROR_NONE) { + _E("i2c write error : %s", get_error_message(ret)); + return -1; + } + write = 1; + } + + ret = peripheral_i2c_read(resource_sensor_s.sensor_h, buf, 2); + if (ret != PERIPHERAL_ERROR_NONE) { + _E("i2c read error : %s", get_error_message(ret)); + return -1; + } + + *out_value = (buf[0] << 8 | buf[1]) / GY30_CONSTANT_NUM; // Just Sum High 8bit and Low 8bit + + return 0; +} diff --git a/src/resource/resource_servo_motor.c b/src/resource/resource_servo_motor.c new file mode 100644 index 0000000..c6895ea --- /dev/null +++ b/src/resource/resource_servo_motor.c @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2018 Samsung Electronics Co., Ltd. + * + * Contact: Jin Yoon + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include "log.h" + +#define SERVO_MOTOR_CHANNER (0) + +static peripheral_pwm_h g_pwm_h; + +void resource_close_servo_motor(void) +{ + if (g_pwm_h) { + peripheral_pwm_close(g_pwm_h); + g_pwm_h = NULL; + } +} + +int resource_set_servo_motor_value(double duty_cycle_ms) +{ + int ret = 0; + + if (!g_pwm_h) { + ret = peripheral_pwm_open(0, SERVO_MOTOR_CHANNER, &g_pwm_h); + if (ret != PERIPHERAL_ERROR_NONE) { + _E("failed to open servo motor with ch : %s", get_error_message(ret)); + return -1; + } + } + + ret = peripheral_pwm_set_period(g_pwm_h, 20 * 1000 * 1000); + if (ret != PERIPHERAL_ERROR_NONE) { + _E("failed to set period : %s", get_error_message(ret)); + return -1; + } + + ret = peripheral_pwm_set_duty_cycle(g_pwm_h, duty_cycle_ms * 1000 * 1000); + if (ret != PERIPHERAL_ERROR_NONE) { + _E("failed to set duty cycle : %s", get_error_message(ret)); + return -1; + } + + ret = peripheral_pwm_set_enabled(g_pwm_h, true); + if (ret != PERIPHERAL_ERROR_NONE) { + _E("failed to enable : %s", get_error_message(ret)); + return -1; + } + + return 0; +} diff --git a/src/sensor-data.c b/src/sensor-data.c new file mode 100644 index 0000000..d135979 --- /dev/null +++ b/src/sensor-data.c @@ -0,0 +1,195 @@ +/* + * Copyright (c) 2018 Samsung Electronics Co., Ltd. + * + * Contact: Jin Yoon + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include "log.h" +#include "sensor-data.h" + +struct __sensor_data_s { + sensor_data_type_e type; + union { + int int_val; + unsigned int uint_val; + bool b_val; + double d_val; + char *str_val; + } value; + pthread_mutex_t mutex; +}; + +sensor_data *sensor_data_new(sensor_data_type_e type) +{ + sensor_data *data = NULL; + retv_if(type == SENSOR_DATA_TYPE_NONE, NULL); + + data = calloc(1, sizeof(sensor_data)); + retv_if(!data, NULL); + + data->type = type; + pthread_mutex_init(&data->mutex, NULL); + + return data; +} + +void sensor_data_free(sensor_data *data) +{ + ret_if(!data); + + if (data->type == SENSOR_DATA_TYPE_STR) { + pthread_mutex_lock(&data->mutex); + free(data->value.str_val); + data->value.str_val = NULL; + pthread_mutex_unlock(&data->mutex); + } + pthread_mutex_destroy(&data->mutex); + + free(data); +} + +int sensor_data_set_int(sensor_data *data, int value) +{ + retv_if(!data, -1); + retv_if(data->type != SENSOR_DATA_TYPE_INT, -1); + + pthread_mutex_lock(&data->mutex); + data->value.int_val = value; + pthread_mutex_unlock(&data->mutex); + + return 0; +} + +int sensor_data_set_uint(sensor_data *data, unsigned int value) +{ + retv_if(!data, -1); + retv_if(data->type != SENSOR_DATA_TYPE_UINT, -1); + + pthread_mutex_lock(&data->mutex); + data->value.uint_val = value; + pthread_mutex_unlock(&data->mutex); + + return 0; +} + +int sensor_data_set_bool(sensor_data *data, bool value) +{ + retv_if(!data, -1); + retv_if(data->type != SENSOR_DATA_TYPE_BOOL, -1); + + pthread_mutex_lock(&data->mutex); + data->value.b_val = value; + pthread_mutex_unlock(&data->mutex); + + return 0; +} + +int sensor_data_set_double(sensor_data *data, double value) +{ + retv_if(!data, -1); + retv_if(data->type != SENSOR_DATA_TYPE_DOUBLE, -1); + + pthread_mutex_lock(&data->mutex); + data->value.d_val = value; + pthread_mutex_unlock(&data->mutex); + + return 0; +} + +int sensor_data_set_string(sensor_data *data, const char *value, unsigned int size) +{ + char *temp = NULL; + retv_if(!data, -1); + retv_if(data->type != SENSOR_DATA_TYPE_STR, -1); + retv_if(!value, -1); + retv_if(size == 0, -1); + + temp = strndup(value, size); + retv_if(!temp, -1); + + pthread_mutex_lock(&data->mutex); + free(data->value.str_val); + data->value.str_val = temp; + pthread_mutex_unlock(&data->mutex); + + return 0; +} + +int sensor_data_get_int(sensor_data *data, int *value) +{ + retv_if(!data, -1); + retv_if(!value, -1); + retv_if(data->type != SENSOR_DATA_TYPE_INT, -1); + + pthread_mutex_lock(&data->mutex); + *value = data->value.int_val; + pthread_mutex_unlock(&data->mutex); + + return 0; +} + +int sensor_data_get_uint(sensor_data *data, unsigned int *value) +{ + retv_if(!data, -1); + retv_if(!value, -1); + retv_if(data->type != SENSOR_DATA_TYPE_UINT, -1); + + pthread_mutex_lock(&data->mutex); + *value = data->value.uint_val; + pthread_mutex_unlock(&data->mutex); + + return 0; +} + +int sensor_data_get_bool(sensor_data *data, bool *value) +{ + retv_if(!data, -1); + retv_if(!value, -1); + retv_if(data->type != SENSOR_DATA_TYPE_BOOL, -1); + + pthread_mutex_lock(&data->mutex); + *value = data->value.b_val; + pthread_mutex_unlock(&data->mutex); + + return 0; +} + +int sensor_data_get_double(sensor_data *data, double *value) +{ + retv_if(!data, -1); + retv_if(!value, -1); + retv_if(data->type != SENSOR_DATA_TYPE_DOUBLE, -1); + + pthread_mutex_lock(&data->mutex); + *value = data->value.d_val; + pthread_mutex_unlock(&data->mutex); + + return 0; +} + +int sensor_data_get_string(sensor_data *data, const char **value) +{ + retv_if(!data, -1); + retv_if(!value, -1); + retv_if(data->type != SENSOR_DATA_TYPE_STR, -1); + + pthread_mutex_lock(&data->mutex); + *value = data->value.str_val; + pthread_mutex_unlock(&data->mutex); + + return 0; +} diff --git a/src/smart-blind.c b/src/smart-blind.c new file mode 100644 index 0000000..961e58e --- /dev/null +++ b/src/smart-blind.c @@ -0,0 +1,398 @@ +/* + * Copyright (c) 2018 Samsung Electronics Co., Ltd. + * + * Contact: Jin Yoon + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "st_things.h" +#include "log.h" +#include "sensor-data.h" +#include "resource.h" + +#define JSON_PATH "device_def.json" + +#define SENSOR_URI_ILLUMINANCE "/capability/illuminanceMeasurement/main/0" +#define SENSOR_KEY_ILLUMINANCE "illuminance" +#define SENSOR_KEY_RANGE "range" + +#define SENSOR_URI_POWER "/capability/switch/main/0" +#define SENSOR_KEY_POWER "power" +#define SENSOR_POWER_INITIALIZING "off" + +#define I2C_BUS_NUMBER (1) + +// QUIZ +#define SENSOR_GATHER_INTERVAL (100.0f) + +// QUIZ +//#define USE_ST_SDK + +typedef struct app_data_s { + Ecore_Timer *getter_illuminance; + sensor_data *illuminance_data; + sensor_data *power_data; +} app_data; + +static app_data *g_ad = NULL; + +#define ILLUMINATION_CRITERIA 1000 + +// HS-53 Servo Motor Duty Cycle : 0.54ms ~ 2.1ms +// Spec Duty Cycle : 0.553ms ~ 2.227ms(https://www.servocity.com/hitec-hs-53-servo) +#define SERVO_MOTOR_DUTY_CYCLE_COUNTER_CLOCKWISE 1.0 +#define SERVO_MOTOR_DUTY_CYCLE_CLOCKWISE 2.0 + +#define BLIND_UP "on" +#define BLIND_DOWN "off" + +static inline int __get_illuminance(void *data, unsigned int *illuminance_value) +{ + int ret = 0; + app_data *ad = data; + + retv_if(!ad, -1); + retv_if(!ad->illuminance_data, -1); + + // QUIZ + //ret = resource_read_illuminance_sensor(/* ? */, illuminance_value); + retv_if(ret != 0, -1); + + sensor_data_set_uint(ad->illuminance_data, *illuminance_value); + _D("Illuminance value : %u", *illuminance_value); + +#ifdef USE_ST_SDK + st_things_notify_observers(SENSOR_URI_ILLUMINANCE); +#endif + + return 0; +} + +static int __set_servo_motor(void *data, int on) +{ + double duty_cycle = 0; + int ret = 0; + const char *power_value = NULL; + app_data *ad = data; + + retv_if(!ad, -1); + retv_if(!ad->illuminance_data, -1); + + if (on) { + duty_cycle = SERVO_MOTOR_DUTY_CYCLE_CLOCKWISE; + power_value = BLIND_UP; + } else { + duty_cycle = SERVO_MOTOR_DUTY_CYCLE_COUNTER_CLOCKWISE; + power_value = BLIND_DOWN; + } + + ret = resource_set_servo_motor_value(duty_cycle); + retv_if(ret != 0, -1); + + sensor_data_set_string(ad->power_data, power_value, strlen(power_value)); + +#ifdef USE_ST_SDK + st_things_notify_observers(SENSOR_URI_POWER); +#endif + + return 0; +} + +static Eina_Bool __illuminance_to_servo_motor(void *data) +{ + int ret = 0; + unsigned int illuminance_value = 0; + + app_data *ad = data; + + if (!ad) { + _E("failed to get app_data"); + service_app_exit(); + } + + if (!ad->illuminance_data) { + _E("failed to get illuminance_data"); + service_app_exit(); + } + + ret = __get_illuminance(ad, &illuminance_value); + retv_if(ret != 0, ECORE_CALLBACK_RENEW); + +#if 0 // # Senario : Illuminance sensor + if (illuminance_value < ILLUMINATION_CRITERIA) { + on = 0; + } else { + on = 1; + } + + ret = __set_servo_motor(ad, on); + retv_if(ret != 0, ECORE_CALLBACK_RENEW); +#endif + + return ECORE_CALLBACK_RENEW; +} + +void gathering_stop(void *data) +{ + app_data *ad = data; + + ret_if(!ad); + + if (ad->getter_illuminance) + ecore_timer_del(ad->getter_illuminance); +} + +void gathering_start(void *data) +{ + app_data *ad = data; + + ret_if(!ad); + + gathering_stop(ad); + + ad->getter_illuminance = ecore_timer_add(SENSOR_GATHER_INTERVAL, __illuminance_to_servo_motor, ad); + if (!ad->getter_illuminance) + _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; + } else if (0 == strcmp(req_msg->resource_uri, SENSOR_URI_POWER)) { + if (req_msg->has_property_key(req_msg, SENSOR_KEY_POWER)) { + 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_POWER, 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); + + if (0 == strcmp(req_msg->resource_uri, SENSOR_URI_POWER)) { + int ret = 0; + char *str = NULL; + + if (req_msg->rep->get_str_value(req_msg->rep, SENSOR_KEY_POWER, &str)) { + retv_if(!str, false); + _D("set [%s:%s] == %s", SENSOR_URI_POWER, SENSOR_KEY_POWER, str); + + sensor_data_set_string(g_ad->power_data, str, strlen(str)); + resp_rep->set_str_value(resp_rep, SENSOR_KEY_POWER, str); + + if (0 == strcmp(str, "on")) { + ret = __set_servo_motor(g_ad, 1); + } else { + ret = __set_servo_motor(g_ad, 0); + } + + 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; + + ad->power_data = sensor_data_new(SENSOR_DATA_TYPE_STR); + if (!ad->power_data) + return false; + sensor_data_set_string(g_ad->power_data, SENSOR_POWER_INITIALIZING, strlen(SENSOR_POWER_INITIALIZING)); + +#ifdef USE_ST_SDK + if (__st_things_init()) + return false; +#endif + + 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) +{ + app_data *ad = (app_data *)user_data; + + if (ad->getter_illuminance) + ecore_timer_del(ad->getter_illuminance); + + resource_close_illuminance_sensor(); + resource_close_servo_motor(); + +#ifdef USE_ST_SDK + __st_things_stop(); + __st_things_deinit(); +#else + gathering_stop(ad); +#endif + + sensor_data_free(ad->illuminance_data); + free(ad); +} + +int main(int argc, char *argv[]) +{ + app_data *ad = NULL; + service_app_lifecycle_callback_s event_callback; + + ad = calloc(1, sizeof(app_data)); + retv_if(!ad, -1); + + g_ad = ad; + + event_callback.create = service_app_create; + event_callback.terminate = service_app_terminate; + event_callback.app_control = service_app_control; + + return service_app_main(argc, argv, &event_callback, ad); +} + diff --git a/tizen-manifest.xml b/tizen-manifest.xml new file mode 100644 index 0000000..b8c9cb7 --- /dev/null +++ b/tizen-manifest.xml @@ -0,0 +1,17 @@ + + + + + + smart-blind.png + + + + http://tizen.org/privilege/network.get + http://tizen.org/privilege/network.set + http://tizen.org/privilege/internet + http://tizen.org/privilege/alarm.set + http://tizen.org/privilege/network.profile + http://tizen.org/privilege/peripheralio + + -- 2.7.4