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);
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);
}
-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;
if (g_state_changed_cb) {
g_state_changed_cb(g_firmware_resource->state);
}
+ } else {
+
+ return CONTROLEE_FIRMWARE_OPERATION_FAILED;
}
return CONTROLEE_FIRMWARE_SUCCESS;
int _signin();
int _signup();
-
+int _publish_fw_res_to_rd();
int _set_auth_cert_info()
{
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_
return 0;
}
+
int _init_default_test_res()
{
#if 0
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");
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;
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");
}
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");
}