From 069c8fa8e1d9bb7af6ceeed1f2f1c667ace75b22 Mon Sep 17 00:00:00 2001 From: boyeon-son Date: Mon, 10 Sep 2018 12:15:48 +0900 Subject: [PATCH] Initialize Smart Things Light project --- .cproject | 370 +++++++++++++++++++++++ .exportMap | 5 + .project | 46 +++ .smartthingsapp | 0 .tproject | 12 + LICENSE.APLv2 | 202 +++++++++++++ NOTICE | 3 + inc/log.h | 96 ++++++ inc/resource/resource_infrared_motion_sensor.h | 35 +++ inc/resource/resource_led.h | 24 ++ inc/sensor-data.h | 49 ++++ 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/device_def.json | 97 ++++++ shared/res/motion-light-smartthings.png | Bin 0 -> 57662 bytes src/controller.c | 391 +++++++++++++++++++++++++ src/resource/resource_infrared_motion_sensor.c | 66 +++++ src/resource/resource_led.c | 68 +++++ src/sensor-data.c | 192 ++++++++++++ tizen-manifest.xml | 17 ++ 23 files changed, 2302 insertions(+) create mode 100755 .cproject create mode 100755 .exportMap create mode 100755 .project create mode 100755 .smartthingsapp create mode 100755 .tproject create mode 100755 LICENSE.APLv2 create mode 100755 NOTICE create mode 100755 inc/log.h create mode 100755 inc/resource/resource_infrared_motion_sensor.h create mode 100755 inc/resource/resource_led.h create mode 100755 inc/sensor-data.h create mode 100755 inc/st_things.h create mode 100755 inc/st_things_types.h create mode 100755 lib/liboicdastack.so create mode 100755 lib/libsdkapi.so create mode 100755 project_def.prop create mode 100755 res/device_def.json create mode 100755 shared/res/motion-light-smartthings.png create mode 100755 src/controller.c create mode 100755 src/resource/resource_infrared_motion_sensor.c create mode 100755 src/resource/resource_led.c create mode 100755 src/sensor-data.c create mode 100755 tizen-manifest.xml diff --git a/.cproject b/.cproject new file mode 100755 index 0000000..eb7092d --- /dev/null +++ b/.cproject @@ -0,0 +1,370 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.exportMap b/.exportMap new file mode 100755 index 0000000..de30516 --- /dev/null +++ b/.exportMap @@ -0,0 +1,5 @@ +{ + global: main; + _IO_*; + local: *; +}; diff --git a/.project b/.project new file mode 100755 index 0000000..5e2b7f8 --- /dev/null +++ b/.project @@ -0,0 +1,46 @@ + + + motion-light-smartthings + + + + + + 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 + + + + 0 + + 26 + + org.eclipse.ui.ide.multiFilter + 1.0-projectRelativePath-matches-false-false-*/.tpk + + + + 0 + + 6 + + org.eclipse.ui.ide.multiFilter + 1.0-name-matches-false-false-project_def.prop + + + + diff --git a/.smartthingsapp b/.smartthingsapp new file mode 100755 index 0000000..e69de29 diff --git a/.tproject b/.tproject new file mode 100755 index 0000000..f857534 --- /dev/null +++ b/.tproject @@ -0,0 +1,12 @@ + + + + + iot-headless-4.0 + + + + + + + diff --git a/LICENSE.APLv2 b/LICENSE.APLv2 new file mode 100755 index 0000000..d645695 --- /dev/null +++ b/LICENSE.APLv2 @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/NOTICE b/NOTICE new file mode 100755 index 0000000..ba98e27 --- /dev/null +++ b/NOTICE @@ -0,0 +1,3 @@ +Copyright (c) 2018 Samsung Electronics Co., Ltd. All rights reserved. +Except as noted, this software is licensed under Apache License, Version 2. +Please, see the LICENSE.APLv2 file for Apache License, Version 2 terms and conditions. diff --git a/inc/log.h b/inc/log.h new file mode 100755 index 0000000..9ba2c4b --- /dev/null +++ b/inc/log.h @@ -0,0 +1,96 @@ +/* + * Copyright (c) 2018 Samsung Electronics Co., Ltd. + * + * 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 __MOTION_LIGTH_LOG_H__ +#define __MOTION_LIGTH_LOG_H__ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef LOG_TAG +#undef LOG_TAG +#endif +#define LOG_TAG "MOTION_LIGHT_APP" + +#define _E(fmt, args...) dlog_print(DLOG_ERROR, LOG_TAG, "%s : %s(%d) > "fmt"\n", rindex(__FILE__, '/') + 1, __func__, __LINE__, ##args) +#define _W(fmt, args...) dlog_print(DLOG_WARN, LOG_TAG, "%s : %s(%d) > "fmt"\n", rindex(__FILE__, '/') + 1, __func__, __LINE__, ##args) +#define _I(fmt, args...) dlog_print(DLOG_INFO, LOG_TAG, "%s : %s(%d) > "fmt"\n", rindex(__FILE__, '/') + 1, __func__, __LINE__, ##args) +#define _D(fmt, args...) dlog_print(DLOG_DEBUG, LOG_TAG, "%s : %s(%d) > "fmt"\n", rindex(__FILE__, '/') + 1, __func__, __LINE__, ##args) + +#define FN_CALL dlog_print(DLOG_DEBUG, LOG_TAG, ">>>>>>>> %s() called\n", __func__) +#define FN_END dlog_print(DLOG_DEBUG, LOG_TAG, "<<<<<<<< %s() ended\n", __func__) + + +#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; \ + } \ +} + +#ifdef __cplusplus +} +#endif + +#endif /* __MOTION_LIGTH_LOG_H__ */ + diff --git a/inc/resource/resource_infrared_motion_sensor.h b/inc/resource/resource_infrared_motion_sensor.h new file mode 100755 index 0000000..612db3f --- /dev/null +++ b/inc/resource/resource_infrared_motion_sensor.h @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2018 Samsung Electronics Co., Ltd. + * + * 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_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 value 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, uint32_t *out_value); + +/** + * @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(void); + +#endif /* __POSITION_FINDER_RESOURCE_INFRARED_MOTION_SENSOR_H__ */ diff --git a/inc/resource/resource_led.h b/inc/resource/resource_led.h new file mode 100755 index 0000000..44b058a --- /dev/null +++ b/inc/resource/resource_led.h @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2018 Samsung Electronics Co., Ltd. + * + * 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_LED_H__ +#define __POSITION_FINDER_RESOURCE_LED_H__ + +extern int resource_write_led(int pin_num, int write_value); + +extern void resource_close_led(void); + +#endif /* __POSITION_FINDER_RESOURCE_LED_H__ */ diff --git a/inc/sensor-data.h b/inc/sensor-data.h new file mode 100755 index 0000000..e6fe1b5 --- /dev/null +++ b/inc/sensor-data.h @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2018 Samsung Electronics Co., Ltd. + * + * 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 100755 index 0000000..92015d7 --- /dev/null +++ b/inc/st_things.h @@ -0,0 +1,299 @@ +/* **************************************************************** + * + * Copyright 2017 Samsung Electronics All Rights Reserved. + * + * 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 100755 index 0000000..e1f20f6 --- /dev/null +++ b/inc/st_things_types.h @@ -0,0 +1,319 @@ +/* **************************************************************** + * + * Copyright 2017 Samsung Electronics All Rights Reserved. + * + * 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 100755 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 100755 index 0000000..2d97874 --- /dev/null +++ b/project_def.prop @@ -0,0 +1,11 @@ +APPNAME = motion-light-smartthings + +type = app +profile = iot-headless-4.0 + +USER_SRCS = src/motion-light-smartthings.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/device_def.json b/res/device_def.json new file mode 100755 index 0000000..0242a23 --- /dev/null +++ b/res/device_def.json @@ -0,0 +1,97 @@ +{ + "device": [ + { + "specification": { + "device": { + "deviceType": "x.wwst.d.basic", + "deviceName": "***TODO: ENTER YOUR DEVICE NAME***", + "specVersion": "core.1.1.0", + "dataModelVersion": "res.1.1.0" + }, + "platform": { + "manufacturerName": "***TODO: ENTER YOUR MNID***", + "manufacturerUrl": "http://www.samsung.com/sec/", + "manufacturingDate": "2017-11-29", + "modelNumber": "NWSP-01", + "platformVersion": "1.0", + "osVersion": "1.0", + "hardwareVersion": "1.0", + "firmwareVersion": "1.0", + "vendorId": "***TODO: ENTER YOUR VID***" + } + }, + "resources": { + "single": [ + { + "uri": "/capability/switch/main/0", + "types": [ + "x.com.st.powerswitch" + ], + "interfaces": [ + "oic.if.a", + "oic.if.baseline" + ], + "policy": 3 + }, + { + "uri": "/capability/motionSensor/main/0", + "types": [ + "oic.r.sensor.motion" + ], + "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.motion", + "properties": [ + { + "key": "value", + "type": 0, + "mandatory": false, + "rw": 1 + } + ] + } + ], + "configuration": { + "easySetup": { + "connectivity": { + "type": 1, + "softAP": { + "setupId": "***TODO: ENTER YOUR SETUP ID***", + "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/shared/res/motion-light-smartthings.png b/shared/res/motion-light-smartthings.png new file mode 100755 index 0000000000000000000000000000000000000000..9765b1bda7e5bddf0925555ab204b887a873bf24 GIT binary patch literal 57662 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 kZ}gYfNaCF}xV$|1>H6z0+kD +#include +#include +#include +#include + +#include "st_things.h" +#include "log.h" +#include "resource/resource_infrared_motion_sensor.h" +#include "resource/resource_led.h" +#include "sensor-data.h" + +#define JSON_NAME "device_def.json" +#define SENSOR_MOTION_URI "/capability/motionSensor/main/0" +#define SENSOR_MOTION_KEY "value" +#define SENSOR_LED_URI "/capability/switch/main/0" +#define SENSOR_LED_KEY "power" +#define SENSOR_LED_INIT "off" + +#define LED_ON "on" +#define LED_OFF "off" + +#define USE_ST_SDK + +typedef struct app_data_s { + Ecore_Timer *getter_motion; + sensor_data *motion_data; + sensor_data *led_data; +} app_data; + +static app_data *g_ad = NULL; + +static Eina_Bool __change_motion_sensor_data(void *data) +{ + uint32_t value = 0; + + // Get value from motion sensor + int ret = resource_read_infrared_motion_sensor(46, &value); + + if (ret != 0) _E("Cannot read sensor value"); + + sensor_data_set_bool(g_ad->motion_data, value); + + _D("Detected motion value is: %d", value); + + // Notify observers of the Motion sensor resource + st_things_notify_observers(SENSOR_MOTION_URI); + + return ECORE_CALLBACK_RENEW; +} + +static int __change_led_data(void *data, char *state) { + int ret = 0; + app_data *ad = data; + + retv_if(!ad, -1); + retv_if(!ad->led_data, -1); + + sensor_data_set_string(g_ad->led_data, state, strlen(state)); + + if (0 == strcmp(state, LED_ON)) { + ret = resource_write_led(130, 1); + } else { + ret = resource_write_led(130, 0); + } + + retv_if(ret != 0, -1); + + // Notify observers of the LED resource + st_things_notify_observers(SENSOR_LED_URI); + + return 0; +} + +static bool __handle_get_request_on_motion (st_things_get_request_message_s* req_msg, st_things_representation_s* resp_rep) +{ + if (req_msg->has_property_key(req_msg, SENSOR_MOTION_KEY)) { + bool value = false; + + sensor_data_get_bool(g_ad->motion_data, &value); + + // Update the response representation about the Motion sensor property which is sent to the client + resp_rep->set_bool_value(resp_rep, SENSOR_MOTION_KEY, value); + + _D("Value : %d", value); + + return true; + } else { + _E("not supported property"); + + return false; + } +} + +static bool __handle_get_request_on_led (st_things_get_request_message_s* req_msg, st_things_representation_s* resp_rep) +{ + if (req_msg->has_property_key(req_msg, SENSOR_LED_KEY)) { + const char *str = NULL; + + sensor_data_get_string(g_ad->led_data, &str); + + if (!str) { + str = SENSOR_LED_INIT; + } + + // Update the response representation about the LED property which is sent to the client + resp_rep->set_str_value(resp_rep, SENSOR_LED_KEY, str); + + _D("Power : %s", str); + + return true; + } else { + _E("not supported property"); + + return false; + } +} + +static bool __handle_set_request_on_led (st_things_set_request_message_s* req_msg, st_things_representation_s* resp_rep) +{ + int ret = 0; + char *str = NULL; + + if (req_msg->rep->get_str_value(req_msg->rep, SENSOR_LED_KEY, &str)) { + retv_if(!str, false); + + _D("set [%s:%s] == %s", SENSOR_LED_URI, SENSOR_LED_KEY, str); + + // Update the response representation about the LED property which is sent to the client + resp_rep->set_str_value(resp_rep, SENSOR_LED_KEY, str); + + // Turn on LED light + ret = __change_led_data(g_ad, strdup(str)); + + retv_if(ret != 0, false); + } else { + _E("cannot get a string value"); + + return false; + + } + + free(str); + + return true; +} + +void gathering_start(void *data) +{ + app_data *ad = data; + ret_if(!ad); + + if (ad->getter_motion) + ecore_timer_del(ad->getter_motion); + + ad->getter_motion = ecore_timer_add(1.0f, __change_motion_sensor_data, ad); + + if (!ad->getter_motion) { + _E("Failed to add infrared motion getter timer"); + } + + return; +} + +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\n", 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) +{ + bool ret = false; + + _D("resource_uri [%s]", req_msg->resource_uri); + retv_if(!g_ad, false); + + if (0 == strcmp(req_msg->resource_uri, SENSOR_MOTION_URI)) { + _D("query : %s, property: %s", req_msg->query, req_msg->property_key); + + // Call get request function for motion sensor + ret = __handle_get_request_on_motion(req_msg, resp_rep); + } else if (0 == strcmp(req_msg->resource_uri, SENSOR_LED_URI)) { + _D("query : %s, property: %s", req_msg->query, req_msg->property_key); + + // Call get request function for LED + ret = __handle_get_request_on_led(req_msg, resp_rep); + } else { + _E("not supported uri"); + } + + return ret; +} + +static bool handle_set_request(st_things_set_request_message_s* req_msg, st_things_representation_s* resp_rep) +{ + bool ret = false; + + _D("resource_uri [%s]", req_msg->resource_uri); + retv_if(!g_ad, false); + + if (0 == strcmp(req_msg->resource_uri, SENSOR_LED_URI)) { + // Call set request function for LED + ret = __handle_set_request_on_led(req_msg, resp_rep); + } else { + _E("not supported uri"); + } + + return ret; +} + +static int __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; + } + + // Specify the read-only and read-write 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_data_path); + + snprintf(app_json_path, sizeof(app_json_path), "%s%s", app_res_path, JSON_NAME); + free(app_res_path); + + // Specify the device configuration JSON file and change the status of easysetup_complete + if (0 != st_things_initialize(app_json_path, &easysetup_complete)) { + _E("st_things_initialize() failed!!"); + return -1; + } + + _D("easysetup_complete:[%d] ", easysetup_complete); + + // Register callback for handling request get (handle_get_request) and request set (handle_set_request) messages + st_things_register_request_cb(handle_get_request, handle_set_request); + // Register callback for reset confirmation (handle_reset_request) and reset result(handle_reset_result) functions + st_things_register_reset_cb(handle_reset_request, handle_reset_result); + // Register callback for getting user confirmation for ownership transfer (handle_ownership_transfer_request) + st_things_register_user_confirm_cb(handle_ownership_transfer_request); + // Register callback for getting notified when ST Things state changes (handle_things_status_change) + st_things_register_things_status_change_cb(handle_things_status_change); + + return 0; +} + +static int __things_deinit(void) +{ + st_things_deinitialize(); + return 0; +} + +static int __things_start(void) +{ + st_things_start(); + return 0; +} + +static int __things_stop(void) +{ + st_things_stop(); + return 0; +} + +static bool service_app_create(void *user_data) +{ + app_data *ad = user_data; + + // Declare new sensor data for Motion data + ad->motion_data = sensor_data_new(SENSOR_DATA_TYPE_BOOL); + + if (!ad->motion_data) + return false; + + // Declare new sensor data for LED data + ad->led_data = sensor_data_new(SENSOR_DATA_TYPE_STR); + + if (!ad->led_data) + return false; + + sensor_data_set_string(g_ad->led_data, SENSOR_LED_INIT, strlen(SENSOR_LED_INIT)); + + if (__things_init()) + return false; + + return true; +} + +static void service_app_control(app_control_h app_control, void *user_data) +{ + __things_start(); +} + +static void service_app_terminate(void *user_data) +{ + app_data *ad = (app_data *)user_data; + + // Delete ecore timer + if (ad->getter_motion) + ecore_timer_del(ad->getter_motion); + + // Stop and deinitialize things + __things_stop(); + __things_deinit(); + + // Turn off LED light with __set_led() + __change_led_data(ad, LED_OFF); + + // Free sensor Motion & LED data + sensor_data_free(ad->motion_data); + sensor_data_free(ad->led_data); + + // Close Motion and LED resources + resource_close_infrared_motion_sensor(); + resource_close_led(); + + // Free app data + free(ad); + + FN_END; +} + +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/src/resource/resource_infrared_motion_sensor.c b/src/resource/resource_infrared_motion_sensor.c new file mode 100755 index 0000000..d0605e6 --- /dev/null +++ b/src/resource/resource_infrared_motion_sensor.c @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2018 Samsung Electronics Co., Ltd. + * + * 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" + +static peripheral_gpio_h g_sensor_h = NULL; +static int g_pin_num = -1; + +void resource_close_infrared_motion_sensor(void) +{ + if (!g_sensor_h) return; + + _I("Infrared Motion Sensor is finishing..."); + + peripheral_gpio_close(g_sensor_h); + + g_sensor_h = NULL; + g_pin_num = -1; +} + +int resource_read_infrared_motion_sensor(int pin_num, uint32_t *out_value) +{ + int ret = PERIPHERAL_ERROR_NONE; + + if (!g_sensor_h) { + peripheral_gpio_h temp = NULL; + + ret = peripheral_gpio_open(pin_num, &temp); + retv_if(ret, -1); + + ret = peripheral_gpio_set_direction(temp, PERIPHERAL_GPIO_DIRECTION_IN); + if (ret) { + peripheral_gpio_close(temp); + _E("peripheral_gpio_set_direction failed."); + return -1; + } + + g_sensor_h = temp; + g_pin_num = pin_num; + } + + if (g_pin_num != pin_num) { + _E("Invalid pin number."); + return -1; + } + + ret = peripheral_gpio_read(g_sensor_h, out_value); + retv_if(ret < 0, -1); + + return 0; +} diff --git a/src/resource/resource_led.c b/src/resource/resource_led.c new file mode 100755 index 0000000..242cf73 --- /dev/null +++ b/src/resource/resource_led.c @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2018 Samsung Electronics Co., Ltd. + * + * 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" + +static peripheral_gpio_h g_sensor_h = NULL; +static int g_pin_num = -1; + +void resource_close_led(void) +{ + if (!g_sensor_h) return; + + _I("LED is finishing..."); + + peripheral_gpio_close(g_sensor_h); + + g_sensor_h = NULL; + g_pin_num = -1; +} + +int resource_write_led(int pin_num, int write_value) +{ + int ret = PERIPHERAL_ERROR_NONE; + + if (!g_sensor_h) { + peripheral_gpio_h temp = NULL; + + ret = peripheral_gpio_open(pin_num, &temp); + retv_if(ret, -1); + + ret = peripheral_gpio_set_direction(temp, PERIPHERAL_GPIO_DIRECTION_OUT_INITIALLY_LOW); + if (ret) { + peripheral_gpio_close(temp); + _E("peripheral_gpio_set_direction failed."); + return -1; + } + + g_sensor_h = temp; + g_pin_num = pin_num; + } + + if (g_pin_num != pin_num) { + _E("Invalid pin number."); + return -1; + } + + ret = peripheral_gpio_write(g_sensor_h, write_value); + retv_if(ret < 0, -1); + + _I("LED Value : %s", write_value ? "ON":"OFF"); + + return 0; +} diff --git a/src/sensor-data.c b/src/sensor-data.c new file mode 100755 index 0000000..950aab0 --- /dev/null +++ b/src/sensor-data.c @@ -0,0 +1,192 @@ +/* + * Copyright (c) 2018 Samsung Electronics Co., Ltd. + * + * 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(type == SENSOR_DATA_TYPE_NONE, 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); + 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/tizen-manifest.xml b/tizen-manifest.xml new file mode 100755 index 0000000..1439455 --- /dev/null +++ b/tizen-manifest.xml @@ -0,0 +1,17 @@ + + + + + + motion-light-smartthings.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