Add API (controlee_set_firmware_resource_activce_check) 69/145669/2
authorhhk86.heo <hhk86.heo@samsung.com>
Wed, 23 Aug 2017 08:06:51 +0000 (17:06 +0900)
committerhhk86.heo <hhk86.heo@samsung.com>
Thu, 24 Aug 2017 02:48:45 +0000 (11:48 +0900)
- Add Test code (set active check, set state cb, get fw res)

Change-Id: I9ad099db77484eb565b6948b19e6f0ee91dc38aa

inc/controlee_firmware_resource.h
src/controlee_firmware_resource.c
test/controlee_firmware_test.c

index 7a49ded2ba3541a82a48b7d62a749953869b841c..218353a9206c08ea1e599d9b7b9167edd8c77514 100644 (file)
@@ -81,12 +81,6 @@ typedef void (*state_changed_cb)(controlee_firmware_state_e value);
 
 EXPORT_API int controlee_create_firmware_resource(OCResourceHandle *firmware_res_h);
 
-#if 0
-EXPORT_API int controlee_publish_firmware_resource(controlee_firmware_h firmware_res_h,
-                                        const char *server_url,
-                                        publish_finish_cb callback);
-#endif
-
 EXPORT_API int controlee_destory_firmware_resource(OCResourceHandle firmware_res_h);
 
 EXPORT_API int controlee_set_firmware_download_path(const char *download_path);
@@ -95,9 +89,9 @@ EXPORT_API int controlee_set_state_changed_cb(state_changed_cb callback);
 
 EXPORT_API void controlee_unset_resource_changed_cb(void);
 
-EXPORT_API int controlee_get_firmware_resource_value(controlee_firmware_h firmware_res_h,
-                                          controlee_firmware_res_type_e res_type,
-                                          char **value);
+EXPORT_API int controlee_get_newest_firmware_from_server();
+
+EXPORT_API int controlee_get_firmware_resource_value(controlee_firmware_res_type_e res_type, char **value);
 
 EXPORT_API int controlee_check_firmware_upgraded(void);
 
index ddeddbb4a5b848277338f7e4aadc78b791f27d9c..0feb3c190c1bf80f5fe896f237c4ae0617a16751 100644 (file)
@@ -91,32 +91,45 @@ void controlee_unset_resource_changed_cb(void)
 }
 
 
-int controlee_get_firmware_resource_value(controlee_firmware_h firmware_res_h,
-                                                                       controlee_firmware_res_type_e res_type, char **value)
+int controlee_get_newest_firmware_from_server()
 {
-       if (!firmware_res_h) {
+       if (!g_firmware_resource) {
+               FWR_LOGD("g_firmware_resource is NULL");
+               return CONTROLEE_FIRMWARE_NULL_PTR;
+       }
+
+       FWR_LOGD("g_firmware_resource  active_check [true]");
+       g_firmware_resource->active_check = true;
+       controlee_propagate_firmware_resource();
+       return CONTROLEE_FIRMWARE_SUCCESS;
+}
+
+
+int controlee_get_firmware_resource_value(controlee_firmware_res_type_e res_type, char **value)
+{
+       if (!g_firmware_resource) {
+               FWR_LOGD("g_firmware_resource is NULL");
                return CONTROLEE_FIRMWARE_NULL_PTR;
        }
 
        int result = CONTROLEE_FIRMWARE_SUCCESS;
 
        char buf[2] = {0,};
-       controlee_firmware_s *firmware_res = (controlee_firmware_s *)firmware_res_h;
 
        switch (res_type) {
        case CONTROLEE_FIRMWARE_RES_UPDATE_STATE:
-               snprintf(buf, sizeof(buf), "%d", firmware_res->state);
+               snprintf(buf, sizeof(buf), "%d", g_firmware_resource->state);
                *value = g_strdup(buf);
                break;
        case CONTROLEE_FIRMWARE_RES_UPDATE_RESULT:
-               snprintf(buf, sizeof(buf), "%d", firmware_res->result);
+               snprintf(buf, sizeof(buf), "%d", g_firmware_resource->result);
                *value = g_strdup(buf);
                break;
        case CONTROLEE_FIRMWARE_RES_CURRENT_VERSION:
-               *value = g_strdup(firmware_res->current_version);
+               *value = g_strdup(g_firmware_resource->current_version);
                break;
        case CONTROLEE_FIRMWARE_RES_NEW_VERSION:
-               *value = g_strdup(firmware_res->new_version);
+               *value = g_strdup(g_firmware_resource->new_version);
                break;
        default :
                result = CONTROLEE_FIRMWARE_INVALID_VALUE;
@@ -150,6 +163,9 @@ int controlee_check_firmware_upgraded(void)
                if (g_state_changed_cb) {
                        g_state_changed_cb(g_firmware_resource->state);
                }
+       } else {
+
+               return CONTROLEE_FIRMWARE_OPERATION_FAILED;
        }
 
        return CONTROLEE_FIRMWARE_SUCCESS;
index a2d5d6345ad8bd81ffd42d812bef36f7f54b580e..a7d28ef658bb8aef6d6ed65fc5cd14f195be01c0 100644 (file)
@@ -111,7 +111,7 @@ bool switch_power;
 
 int _signin();
 int _signup();
-
+int _publish_fw_res_to_rd();
 
 int _set_auth_cert_info()
 {
@@ -446,8 +446,9 @@ static OCStackApplicationResult _handle_signin_response(void *ctx,
 
                sleep(1);
                if (g_auto_publish) {
-                       if (_publish_fw_res_to_rd() != 0)
+                       if (_publish_fw_res_to_rd() != 0) {
                                printf("publish failed!!!\n");
+                       }
                }
 
 #ifdef _USE_WWST_
@@ -928,6 +929,7 @@ int _init_oc_stack()
        return 0;
 }
 
+
 int  _init_default_test_res()
 {
 #if 0
@@ -1115,14 +1117,82 @@ int _destory_default_res()
        return 0;
 }
 
+
+static void _state_changed_cb(controlee_firmware_state_e value)
+{
+       printf("state_changed_cb [%d]\n", value);
+}
+
+
+int _set_state_changed_cb()
+{
+       printf("_set_state_changed_cb\n");
+       if (controlee_set_state_changed_cb(_state_changed_cb) != CONTROLEE_FIRMWARE_SUCCESS)
+               return -1;
+
+       return 0;
+}
+
+
+int _unset_state_changed_cb()
+{
+       controlee_unset_resource_changed_cb();
+       return 0;
+}
+
+
+int _set_active_check()
+{
+       if (controlee_get_newest_firmware_from_server() != CONTROLEE_FIRMWARE_SUCCESS)
+               return -1;
+
+       return 0;
+}
+
+
+int _get_fw_res_value()
+{
+       char *temp_value = NULL;
+       if (controlee_get_firmware_resource_value(CONTROLEE_FIRMWARE_RES_UPDATE_STATE, &temp_value) != CONTROLEE_FIRMWARE_SUCCESS) {
+               return -1;
+       } else {
+               printf("RES_UPDATE_STATE [%s]\n", temp_value);
+               g_free(temp_value);
+       }
+
+       if (controlee_get_firmware_resource_value(CONTROLEE_FIRMWARE_RES_UPDATE_RESULT, &temp_value) != CONTROLEE_FIRMWARE_SUCCESS) {
+               return -1;
+       } else {
+               printf("RES_UPDATE_RESULT [%s]\n", temp_value);
+               g_free(temp_value);
+       }
+
+       if (controlee_get_firmware_resource_value(CONTROLEE_FIRMWARE_RES_CURRENT_VERSION, &temp_value) != CONTROLEE_FIRMWARE_SUCCESS) {
+               return -1;
+       } else {
+               printf("RES_CURRENT_VERSION [%s]\n", temp_value);
+               g_free(temp_value);
+       }
+
+       if (controlee_get_firmware_resource_value(CONTROLEE_FIRMWARE_RES_NEW_VERSION, &temp_value) != CONTROLEE_FIRMWARE_SUCCESS) {
+               return -1;
+       } else {
+               printf("RES_NEW_VERSION [%s]\n", temp_value);
+               g_free(temp_value);
+       }
+
+       return 0;
+}
+
 void _show_menu()
 {
        printf("============================================\n");
        printf("=== Controlee firmware resource test app ===\n");
        printf("============================================\n");
        printf(" [A] Create Resource & Sign Up/In & publish\n");
-       printf(" [U] Sign Up/In\n");
-       printf(" [O] Sign Out\n");
+       printf(" [C] Sign Up/In\n");
+       printf(" [D] Sign Out\n");
+       printf(" [E] Set Active check\n");
        printf(" [1] Create default resource\n");
        printf(" [2] Create firmware resource\n");
        printf(" [3] Publish resources to RD\n");
@@ -1174,20 +1244,25 @@ void* _main_thread(void *data)
                switch (str_ret[0]) {
                case 'A' :
                case 'a' :
-                       rv = _init_default_test_res();
-                       rv = _create_fw_res();
+                       rv += _set_state_changed_cb();;
+                       rv += _init_default_test_res();
+                       rv += _create_fw_res();
                        g_auto_publish = true;
-                       rv = _signup();
+                       rv += _signup();
                        break;
-               case 'U' :
-               case 'u' :
+               case 'C' :
+               case 'c' :
                        g_auto_publish = false;
                        rv = _signup();
                        break;
-               case 'O' :
-               case 'o' :
+               case 'D' :
+               case 'd' :
                        rv = _signout();
                        break;
+               case 'E' :
+               case 'e' :
+                       rv = _set_active_check();
+                       break;
                case '1':
                        rv = _init_default_test_res();
                        break;
@@ -1207,13 +1282,13 @@ void* _main_thread(void *data)
                        rv = _destory_default_res();
                        break;
                case '7':
-                       //rv = _set_state_changed_cb();
+                       rv = _set_state_changed_cb();
                        break;
                case '8':
-                       //rv = _unset_state_changed_cb();
+                       rv = _unset_state_changed_cb();
                        break;
                case '9':
-                       //rv = _get_fw_res_value();
+                       rv = _get_fw_res_value();
                        break;
                case '0' :
                        printf("Exit from test app!\n");
@@ -1224,9 +1299,9 @@ void* _main_thread(void *data)
                }
 
                if (rv == 0)
-                       printf("operation succeeded!\n");
+                       printf("[%c]operation succeeded!\n", str_ret[0]);
                else
-                       printf("operation failed!\n");
+                       printf("[%c]operation failed!\n", str_ret[0]);
 
                printf("\n*** Press 'enter' to show menu *** \n");
        }