diff options
author | boyeon-son <bson1012@gmail.com> | 2018-11-22 15:20:50 +0900 |
---|---|---|
committer | boyeon-son <bson1012@gmail.com> | 2018-11-22 15:20:50 +0900 |
commit | 2a04482c9b50f90cef6b6be7d988cbd7e4ed0170 (patch) | |
tree | 79a9281ce5bbd34e444c4a637fd2c144b5820d01 | |
parent | 444185130573dca19232392b1d997ba9a65620ad (diff) | |
download | st-things-light-2a04482c9b50f90cef6b6be7d988cbd7e4ed0170.tar.gz st-things-light-2a04482c9b50f90cef6b6be7d988cbd7e4ed0170.tar.bz2 st-things-light-2a04482c9b50f90cef6b6be7d988cbd7e4ed0170.zip |
Add set functions
Change-Id: Ia7527310bc61a0517f01d35a98724294bb22cc64
-rw-r--r-- | .cproject | 50 | ||||
-rw-r--r-- | .project | 2 | ||||
-rw-r--r-- | src/controller.c | 104 |
3 files changed, 82 insertions, 74 deletions
@@ -26,15 +26,15 @@ <option id="gnu.cpp.compiler.option.optimization.level.927516291" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.optimization.level.more" valueType="enumerated"/> <option defaultValue="gnu.cpp.compiler.debugging.level.max" id="sbi.gnu.cpp.compiler.option.debugging.level.core.1484656362" name="Debug level" superClass="sbi.gnu.cpp.compiler.option.debugging.level.core" valueType="enumerated"/> <option defaultValue="false" id="sbi.gnu.cpp.compiler.option.misc.pic.core.1001060053" name="-fPIC option" superClass="sbi.gnu.cpp.compiler.option.misc.pic.core" valueType="boolean"/> - <option id="gnu.cpp.compiler.option.dialect.std.1328601870" superClass="gnu.cpp.compiler.option.dialect.std" useByScannerDiscovery="true" value="false" valueType="enumerated"/> - <option id="sbi.gnu.cpp.compiler.option.752658663" superClass="sbi.gnu.cpp.compiler.option" useByScannerDiscovery="false" valueType="userObjs"> + <option id="gnu.cpp.compiler.option.dialect.std.1328601870" name="Language standard" superClass="gnu.cpp.compiler.option.dialect.std" useByScannerDiscovery="true" value="false" valueType="enumerated"/> + <option id="sbi.gnu.cpp.compiler.option.752658663" name="Tizen-Target" superClass="sbi.gnu.cpp.compiler.option" useByScannerDiscovery="false" valueType="userObjs"> <listOptionValue builtIn="false" value="iot-headless-5.0-device.core_llvm40.armel"/> </option> - <option id="sbi.gnu.cpp.compiler.option.frameworks.core.1317601758" superClass="sbi.gnu.cpp.compiler.option.frameworks.core" useByScannerDiscovery="false" valueType="userObjs"> + <option id="sbi.gnu.cpp.compiler.option.frameworks.core.1317601758" name="Tizen-Frameworks" superClass="sbi.gnu.cpp.compiler.option.frameworks.core" useByScannerDiscovery="false" valueType="userObjs"> <listOptionValue builtIn="false" value="osp"/> <listOptionValue builtIn="false" value="Native_API"/> </option> - <option id="sbi.gnu.cpp.compiler.option.frameworks_inc.core.1381199239" superClass="sbi.gnu.cpp.compiler.option.frameworks_inc.core" useByScannerDiscovery="false" valueType="includePath"> + <option id="sbi.gnu.cpp.compiler.option.frameworks_inc.core.1381199239" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.cpp.compiler.option.frameworks_inc.core" useByScannerDiscovery="false" valueType="includePath"> <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/libxml2""/> <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include""/> <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appcore-agent""/> @@ -62,19 +62,19 @@ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/system""/> <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/glib-2.0/include""/> </option> - <option id="sbi.gnu.cpp.compiler.option.frameworks_cflags.core.1068841642" superClass="sbi.gnu.cpp.compiler.option.frameworks_cflags.core" useByScannerDiscovery="false" valueType="stringList"> + <option id="sbi.gnu.cpp.compiler.option.frameworks_cflags.core.1068841642" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.cpp.compiler.option.frameworks_cflags.core" useByScannerDiscovery="false" valueType="stringList"> <listOptionValue builtIn="false" value="${TC_COMPILER_MISC}"/> <listOptionValue builtIn="false" value="${RS_COMPILER_MISC}"/> <listOptionValue builtIn="false" value=" -fPIE"/> <listOptionValue builtIn="false" value="--sysroot="${SBI_SYSROOT}""/> <listOptionValue builtIn="false" value="-mthumb"/> </option> - <option id="sbi.gnu.cpp.compiler.option.preprocessor.def.deprecation.1481967674" superClass="sbi.gnu.cpp.compiler.option.preprocessor.def.deprecation" useByScannerDiscovery="false" valueType="definedSymbols"> + <option id="sbi.gnu.cpp.compiler.option.preprocessor.def.deprecation.1481967674" name="Defined symbols (-D)" superClass="sbi.gnu.cpp.compiler.option.preprocessor.def.deprecation" useByScannerDiscovery="false" valueType="definedSymbols"> <listOptionValue builtIn="false" value="TIZEN_DEPRECATION"/> <listOptionValue builtIn="false" value="DEPRECATION_WARNING"/> <listOptionValue builtIn="false" value="_DEBUG"/> </option> - <option id="gnu.cpp.compiler.option.include.paths.194754833" superClass="gnu.cpp.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath"> + <option id="gnu.cpp.compiler.option.include.paths.194754833" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath"> <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/inc}""/> </option> <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1893389969" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/> @@ -83,15 +83,15 @@ <option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.option.optimization.level.1280615976" name="Optimization Level" superClass="gnu.c.compiler.option.optimization.level" valueType="enumerated"/> <option defaultValue="gnu.c.debugging.level.max" id="sbi.gnu.c.compiler.option.debugging.level.core.440810614" name="Debug level" superClass="sbi.gnu.c.compiler.option.debugging.level.core" valueType="enumerated"/> <option defaultValue="false" id="sbi.gnu.c.compiler.option.misc.pic.core.25875162" name="-fPIC option" superClass="sbi.gnu.c.compiler.option.misc.pic.core" valueType="boolean"/> - <option id="gnu.c.compiler.option.dialect.std.1231802084" superClass="gnu.c.compiler.option.dialect.std" useByScannerDiscovery="true" value="false" valueType="enumerated"/> - <option id="sbi.gnu.c.compiler.option.1129862963" superClass="sbi.gnu.c.compiler.option" useByScannerDiscovery="false" valueType="userObjs"> + <option id="gnu.c.compiler.option.dialect.std.1231802084" name="Language standard" superClass="gnu.c.compiler.option.dialect.std" useByScannerDiscovery="true" value="false" valueType="enumerated"/> + <option id="sbi.gnu.c.compiler.option.1129862963" name="Tizen-Target" superClass="sbi.gnu.c.compiler.option" useByScannerDiscovery="false" valueType="userObjs"> <listOptionValue builtIn="false" value="iot-headless-5.0-device.core_llvm40.armel"/> </option> - <option id="sbi.gnu.c.compiler.option.frameworks.core.1715324858" superClass="sbi.gnu.c.compiler.option.frameworks.core" useByScannerDiscovery="false" valueType="userObjs"> + <option id="sbi.gnu.c.compiler.option.frameworks.core.1715324858" name="Tizen-Frameworks" superClass="sbi.gnu.c.compiler.option.frameworks.core" useByScannerDiscovery="false" valueType="userObjs"> <listOptionValue builtIn="false" value="osp"/> <listOptionValue builtIn="false" value="Native_API"/> </option> - <option id="sbi.gnu.c.compiler.option.frameworks_inc.core.1993317799" superClass="sbi.gnu.c.compiler.option.frameworks_inc.core" useByScannerDiscovery="false" valueType="includePath"> + <option id="sbi.gnu.c.compiler.option.frameworks_inc.core.1993317799" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.c.compiler.option.frameworks_inc.core" useByScannerDiscovery="false" valueType="includePath"> <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/libxml2""/> <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include""/> <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appcore-agent""/> @@ -119,19 +119,19 @@ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/system""/> <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/glib-2.0/include""/> </option> - <option id="sbi.gnu.c.compiler.option.frameworks_cflags.core.2122567201" superClass="sbi.gnu.c.compiler.option.frameworks_cflags.core" useByScannerDiscovery="false" valueType="stringList"> - <listOptionValue builtIn="false" value="$(TC_COMPILER_MISC)"/> - <listOptionValue builtIn="false" value="$(RS_COMPILER_MISC)"/> + <option id="sbi.gnu.c.compiler.option.frameworks_cflags.core.2122567201" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.c.compiler.option.frameworks_cflags.core" useByScannerDiscovery="false" valueType="stringList"> + <listOptionValue builtIn="false" value="${TC_COMPILER_MISC}"/> + <listOptionValue builtIn="false" value="${RS_COMPILER_MISC}"/> <listOptionValue builtIn="false" value=" -fPIE"/> - <listOptionValue builtIn="false" value="--sysroot="$(SBI_SYSROOT)""/> + <listOptionValue builtIn="false" value="--sysroot="${SBI_SYSROOT}""/> <listOptionValue builtIn="false" value="-mthumb"/> </option> - <option id="sbi.gnu.c.compiler.option.preprocessor.def.symbols.deprecation.1953195779" superClass="sbi.gnu.c.compiler.option.preprocessor.def.symbols.deprecation" useByScannerDiscovery="false" valueType="definedSymbols"> + <option id="sbi.gnu.c.compiler.option.preprocessor.def.symbols.deprecation.1953195779" name="Defined symbols (-D)" superClass="sbi.gnu.c.compiler.option.preprocessor.def.symbols.deprecation" useByScannerDiscovery="false" valueType="definedSymbols"> <listOptionValue builtIn="false" value="TIZEN_DEPRECATION"/> <listOptionValue builtIn="false" value="DEPRECATION_WARNING"/> <listOptionValue builtIn="false" value="_DEBUG"/> </option> - <option id="gnu.c.compiler.option.include.paths.1327550699" superClass="gnu.c.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath"> + <option id="gnu.c.compiler.option.include.paths.1327550699" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath"> <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/inc}""/> </option> <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1767616947" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/> @@ -141,19 +141,19 @@ <option defaultValue="false" id="sbi.gnu.cpp.link.option.strip.726351699" name="Omit all symbol information (-s)" superClass="sbi.gnu.cpp.link.option.strip" valueType="boolean"/> <option defaultValue="false" id="sbi.gnu.cpp.linker.option.shared_flag.core.995372830" name="Linker.Shared" superClass="sbi.gnu.cpp.linker.option.shared_flag.core" valueType="boolean"/> <option defaultValue="false" id="sbi.gnu.cpp.linker.option.noundefined.core.757485109" name="Report unresolved symbol references (-Wl,--no-undefined)" superClass="sbi.gnu.cpp.linker.option.noundefined.core" valueType="boolean"/> - <option id="sbi.gnu.cpp.linker.option.frameworks_lflags.core.1283583507" superClass="sbi.gnu.cpp.linker.option.frameworks_lflags.core" useByScannerDiscovery="false" valueType="stringList"> - <listOptionValue builtIn="false" value="$(TC_LINKER_MISC)"/> - <listOptionValue builtIn="false" value="$(RS_LINKER_MISC)"/> + <option id="sbi.gnu.cpp.linker.option.frameworks_lflags.core.1283583507" name="Tizen-Frameworks-Other-Lflags" superClass="sbi.gnu.cpp.linker.option.frameworks_lflags.core" useByScannerDiscovery="false" valueType="stringList"> + <listOptionValue builtIn="false" value="${TC_LINKER_MISC}"/> + <listOptionValue builtIn="false" value="${RS_LINKER_MISC}"/> <listOptionValue builtIn="false" value="-pie -lpthread "/> - <listOptionValue builtIn="false" value="--sysroot="$(SBI_SYSROOT)""/> - <listOptionValue builtIn="false" value="-Xlinker --version-script="$(PROJ_PATH)/.exportMap""/> - <listOptionValue builtIn="false" value="-L"$(SBI_SYSROOT)/usr/lib""/> + <listOptionValue builtIn="false" value="--sysroot="${SBI_SYSROOT}""/> + <listOptionValue builtIn="false" value="-Xlinker --version-script="${PROJ_PATH}/.exportMap""/> + <listOptionValue builtIn="false" value="-L"${SBI_SYSROOT}/usr/lib""/> <listOptionValue builtIn="false" value="$(RS_LIBRARIES)"/> </option> - <option id="gnu.cpp.link.option.paths.1531158283" superClass="gnu.cpp.link.option.paths" useByScannerDiscovery="false" valueType="libPaths"> + <option id="gnu.cpp.link.option.paths.1531158283" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" useByScannerDiscovery="false" valueType="libPaths"> <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/lib}""/> </option> - <option id="gnu.cpp.link.option.libs.1983413821" superClass="gnu.cpp.link.option.libs" useByScannerDiscovery="false" valueType="libs"> + <option id="gnu.cpp.link.option.libs.1983413821" name="Libraries (-l)" superClass="gnu.cpp.link.option.libs" useByScannerDiscovery="false" valueType="libs"> <listOptionValue builtIn="false" value="st_thing_resource_api"/> <listOptionValue builtIn="false" value="st_thing_master_api"/> </option> @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <projectDescription> - <name>motion</name> + <name>motion-cp</name> <comment></comment> <projects> </projects> diff --git a/src/controller.c b/src/controller.c index 683294c..90a54d0 100644 --- a/src/controller.c +++ b/src/controller.c @@ -28,6 +28,10 @@ #define LED_ON "on" #define LED_OFF "off" +#define SENSOR_LED_INIT "off" +#define SENSOR_MOTION_CH (46) +#define SENSOR_LED_CH (130) +#define SENSOR_GATHER_INTERVAL (50) //50ms #define USE_ST_SDK @@ -43,12 +47,8 @@ #define SENSOR_MOTION_URI "/capability/motionSensor/main/0" #define SENSOR_MOTION_KEY "value" -#define SENSOR_MOTION_CH 46 #define SENSOR_LED_URI "/capability/switch/main/0" #define SENSOR_LED_KEY "power" -#define SENSOR_LED_INIT "off" -#define SENSOR_LED_CH 130 -#define SENSOR_GATHER_INTERVAL (50) //50ms #endif /* USE_ST_SDK */ @@ -106,6 +106,26 @@ __resource_error_to_str(smartthings_resource_error_e error) return err_str; } +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(ad->led_data, state, strlen(state)); + + if (0 == strcmp(state, LED_ON)) { + ret = resource_write_led(SENSOR_LED_CH, 1); + } else { + ret = resource_write_led(SENSOR_LED_CH, 0); + } + + retv_if(ret != 0, -1); + + return 0; +} + static bool handle_get_motion(smartthings_payload_h resp_payload, void *user_data) { @@ -114,8 +134,10 @@ handle_get_motion(smartthings_payload_h resp_payload, void *user_data) retv_if(!ad, false); + _D("Received a GET request for MOTION"); + sensor_data_get_bool(ad->motion_data, &value); - smartthings_payload_set_bool(resp_payload, SENSOR_MOTION_KEY, value); + smartthings_payload_set_bool(resp_payload, SENSOR_MOTION_KEY, ad->motion_data); _D("Value : %d", value); @@ -127,43 +149,52 @@ handle_get_led(smartthings_payload_h resp_payload, void *user_data) { app_data *ad = user_data; const char *str = NULL; + int error = SMARTTHINGS_RESOURCE_ERROR_NONE; retv_if(!ad, false); - sensor_data_get_string(ad->led_data, &str); + _D("Received a GET request for LED"); - if (!str) { - str = SENSOR_LED_INIT; - } + error = smartthings_payload_set_string(resp_payload, SENSOR_LED_KEY, ad->led_data); + if (error != SMARTTHINGS_RESOURCE_ERROR_NONE) + _E("smartthings_resource_notify() failed, [%s]", + __resource_error_to_str(error)); - smartthings_payload_set_string(resp_payload, SENSOR_LED_KEY, str); _D("Power : %s", str); -// free(str); - return true; } static bool -handle_set_led(smartthings_payload_h resp_payload, void *user_data) +handle_set_led(smartthings_payload_h payload, smartthings_payload_h resp_payload, void *user_data) { app_data *ad = user_data; - const char *str = NULL; + char *str = NULL; int ret = 0; + int error = SMARTTHINGS_RESOURCE_ERROR_NONE; retv_if(!ad, false); - _D("set [%s:%s] == %s", SENSOR_LED_URI, SENSOR_LED_KEY, str); - smartthings_payload_set_string(resp_payload, SENSOR_LED_KEY, str); + _D("Received a SET request"); + + smartthings_payload_get_string(payload, SENSOR_LED_KEY, &str); + if (error != SMARTTHINGS_RESOURCE_ERROR_NONE) + _E("smartthings_resource_notify() failed, [%s]", + __resource_error_to_str(error)); -// ret = __change_led_data(ad, strdup(str)); + ret = __change_led_data(ad, strdup(str)); retv_if(ret != 0, false); -// free(str); + free(str); - return true; + error = smartthings_payload_set_string(resp_payload, SENSOR_LED_KEY, ad->led_data); + if (error != SMARTTHINGS_RESOURCE_ERROR_NONE) + _E("smartthings_resource_notify() failed, [%s]", + __resource_error_to_str(error)); + + return true; } static void @@ -192,7 +223,7 @@ _request_cb(smartthings_resource_h handle, int req_id, _E("No matching Resource uri to get"); } else if (req_type == SMARTTHINGS_RESOURCE_REQUEST_SET) { if (0 == g_strcmp0(uri, SENSOR_LED_URI)) - result = handle_set_led(resp_payload, user_data); + result = handle_set_led(payload, resp_payload, user_data); else _E("No matching Resource uri to get"); } else { @@ -602,35 +633,10 @@ static gboolean __change_motion_sensor_data(gpointer user_data) // Notify observers of the Motion sensor resource st_thing_notify_resource(ad, SENSOR_MOTION_URI, SENSOR_MOTION_KEY, ad->motion_data); #endif - - return TRUE; + return FALSE; +// return TRUE; } -//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(ad->led_data, state, strlen(state)); -// -// if (0 == strcmp(state, LED_ON)) { -// ret = resource_write_led(SENSOR_LED_CH, 1); -// } else { -// ret = resource_write_led(SENSOR_LED_CH, 0); -// } -// -// retv_if(ret != 0, -1); -// -//#ifdef USE_ST_SDK -// // Notify observers of the LED resource -// st_thing_notify_resource(ad, SENSOR_LED_URI, SENSOR_LED_KEY, ad->motion_data); -//#endif -// -// return 0; -//} - static void gathering_stop(void *data) { app_data *ad = data; @@ -646,7 +652,9 @@ static void gathering_start(void *data) { app_data *ad = data; ret_if(!ad); + ad->getter_motion = g_timeout_add(SENSOR_GATHER_INTERVAL, __change_motion_sensor_data, ad); + if (!ad->getter_motion) _E("Failed to add getter_motion"); } @@ -698,7 +706,7 @@ static void service_app_terminate(void *user_data) #endif // Turn off LED light with __set_led() -// __change_led_data(ad, LED_OFF); + __change_led_data(ad, LED_OFF); // Free sensor Motion & LED data sensor_data_free(ad->motion_data); |