From: saerome.kim Date: Thu, 18 Jan 2018 05:24:58 +0000 (+0900) Subject: demo: Make 'Invite' and 'Eject' scenario X-Git-Tag: submit/tizen/20190131.065036~193 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6d8cc101efa7f5fb598ccd56992ef46ae334455f;p=platform%2Fcore%2Fapi%2Fmulti-device-group.git demo: Make 'Invite' and 'Eject' scenario mot-agent: reduce time during unparing capi: add 'Invite' and "Eject' method Signed-off-by: saerome.kim --- diff --git a/capi/src/companion_gdbus.xml b/capi/src/companion_gdbus.xml old mode 100755 new mode 100644 index e50a34e..d50e8dc --- a/capi/src/companion_gdbus.xml +++ b/capi/src/companion_gdbus.xml @@ -38,6 +38,15 @@ + + + + + + + + + diff --git a/src/companion-manager/include/comp_gdbus_group.h b/src/companion-manager/include/comp_gdbus_group.h old mode 100755 new mode 100644 index 47e1470..475dc83 --- a/src/companion-manager/include/comp_gdbus_group.h +++ b/src/companion-manager/include/comp_gdbus_group.h @@ -34,6 +34,12 @@ gboolean group_device_invite(Group *group, GDBusMethodInvocation *invocation, gboolean group_device_eject(Group *group, GDBusMethodInvocation *invocation, gchar *uuid_dev1, gchar *uuid_dev2, gpointer user_data); +gboolean group_invite(Group *group, GDBusMethodInvocation *invocation, + gchar *uuid, gchar *pin, gpointer user_data); + +gboolean group_eject(Group *group, GDBusMethodInvocation *invocation, + gchar *uuid, gpointer user_data); + gboolean group_get_remote_device(Group *group, GDBusMethodInvocation *invocation, gpointer user_data); diff --git a/src/companion-manager/src/comp_gdbus.c b/src/companion-manager/src/comp_gdbus.c old mode 100755 new mode 100644 index e760fb0..7fa8673 --- a/src/companion-manager/src/comp_gdbus.c +++ b/src/companion-manager/src/comp_gdbus.c @@ -54,6 +54,16 @@ static bool __group_init(GDBusConnection *connection) G_CALLBACK(group_device_find), NULL); + g_signal_connect(group_skeleton, + "handle-invite", + G_CALLBACK(group_invite), + NULL); + + g_signal_connect(group_skeleton, + "handle-eject", + G_CALLBACK(group_eject), + NULL); + g_signal_connect(group_skeleton, "handle-device-invite", G_CALLBACK(group_device_invite), diff --git a/src/companion-manager/src/comp_gdbus_group.c b/src/companion-manager/src/comp_gdbus_group.c old mode 100755 new mode 100644 index 82371ad..5fe79c3 --- a/src/companion-manager/src/comp_gdbus_group.c +++ b/src/companion-manager/src/comp_gdbus_group.c @@ -118,6 +118,48 @@ gboolean group_device_eject(Group *group, GDBusMethodInvocation *invocation, return TRUE; } +#include "comp_context.h" + +#define FULL_PERMISSION 31 + +gboolean group_invite(Group *group, GDBusMethodInvocation *invocation, + gchar *uuid, gchar *pin, gpointer user_data) +{ + gint result = 0; + + comp_context_t *comp_ctx = comp_context_get_context(); + if (!comp_ctx) { + LOG_ERR("ctx is null"); + return FALSE; + } + + result = comp_group_invite(comp_ctx->device_uuid, uuid, pin, + "/comp/data/1", " core.comp.data", "oic.if.baseline", FULL_PERMISSION, + "/comp/data/1", " core.comp.data", "oic.if.baseline", FULL_PERMISSION); + + group_complete_invite(group, invocation, result); + + return TRUE; +} + +gboolean group_eject(Group *group, GDBusMethodInvocation *invocation, + gchar *uuid, gpointer user_data) +{ + gint result = 0; + + comp_context_t *comp_ctx = comp_context_get_context(); + if (!comp_ctx) { + LOG_ERR("ctx is null"); + return FALSE; + } + + result = comp_group_dismiss(comp_ctx->device_uuid, uuid); + + group_complete_eject(group, invocation, result); + + return TRUE; +} + gboolean group_get_remote_device(Group *group, GDBusMethodInvocation *invocation, gpointer user_data) { diff --git a/src/companion-manager/src/companion_gdbus.xml b/src/companion-manager/src/companion_gdbus.xml old mode 100755 new mode 100644 index fe61dad..9ac7cf4 --- a/src/companion-manager/src/companion_gdbus.xml +++ b/src/companion-manager/src/companion_gdbus.xml @@ -39,6 +39,15 @@ + + + + + + + + + diff --git a/src/mot-agent/ma-log.h b/src/mot-agent/ma-log.h index 3d4c707..0b4ec46 100644 --- a/src/mot-agent/ma-log.h +++ b/src/mot-agent/ma-log.h @@ -29,11 +29,20 @@ #undef LOG_TAG #define LOG_TAG "MOT_AGENT" +#define COLOR_RED "\033[0;31m" +#define COLOR_GREEN "\033[0;32m" +#define COLOR_BROWN "\033[0;33m" +#define COLOR_BLUE "\033[0;34m" +#define COLOR_PURPLE "\033[0;35m" +#define COLOR_CYAN "\033[0;36m" +#define COLOR_LIGHTBLUE "\033[0;37m" +#define COLOR_END "\033[0;m" + #define MA_LOGV(format, args...) LOGV(format, ##args) -#define MA_LOGD(format, args...) LOGD(format, ##args) -#define MA_LOGI(format, args...) LOGI(format, ##args) -#define MA_LOGW(format, args...) LOGW(format, ##args) -#define MA_LOGE(format, args...) LOGE(format, ##args) +#define MA_LOGD(format, args...) LOGD(COLOR_LIGHTBLUE" "format COLOR_END, ##args) +#define MA_LOGI(format, args...) LOGI(COLOR_GREEN" "format COLOR_END, ##args) +#define MA_LOGW(format, args...) LOGW(COLOR_CYAN" "format COLOR_END, ##args) +#define MA_LOGE(format, args...) LOGE(COLOR_RED" "format COLOR_END, ##args) #define MA_LOGF(format, args...) LOGF(format, ##args) #define __MA_LOG_FUNC_ENTER__ LOGD("Enter") diff --git a/src/mot-agent/ma-subowner.c b/src/mot-agent/ma-subowner.c index e55fa6d..9f2764e 100644 --- a/src/mot-agent/ma-subowner.c +++ b/src/mot-agent/ma-subowner.c @@ -63,6 +63,7 @@ #define CALLBACK_TIMEOUT_5S 5 * 1000 /**< 5sec = 5 * 1000 * 1ms */ #define TIMEOUT_USED +#define DEBUG_UUID /* '_' for separaing from the same constant variable in srmresourcestrings.c */ static const char* SVR_DB_FILE_NAME = "oic_svr_db_ma.dat"; @@ -155,7 +156,6 @@ const char* _error_to_string(OCStackResult err) CASE_TO_STR(OC_STACK_INVALID_PARAM) CASE_TO_STR(OC_STACK_INVALID_OBSERVE_PARAM) - CASE_TO_STR(OC_STACK_NO_MEMORY) CASE_TO_STR(OC_STACK_COMM_ERROR) CASE_TO_STR(OC_STACK_TIMEOUT) @@ -265,43 +265,17 @@ OicUuid_t* _convert_uuid(gchar *device_id) return uuid; } -static void _print_no_uuid(int idx, const OicUuid_t* uuid) +char g_uuid_str[256] = {0}; +static char * _get_readable_uuid(const OicUuid_t* uuid) { - char uuid_string[256] = {0}; - snprintf(uuid_string, sizeof(uuid_string), - "[%d] %02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x", - idx, - (*uuid).id[0], (*uuid).id[1], (*uuid).id[2], (*uuid).id[3], - (*uuid).id[4], (*uuid).id[5], (*uuid).id[6], (*uuid).id[7], - (*uuid).id[8], (*uuid).id[9], (*uuid).id[10], (*uuid).id[11], - (*uuid).id[12], (*uuid).id[13], (*uuid).id[14], (*uuid).id[15]); - MA_LOGI("%s", uuid_string); -} -#ifdef DEBUG_UUID -static void _print_uuid(const OicUuid_t* uuid) -{ - char uuid_string[256] = {0}; - snprintf(uuid_string, sizeof(uuid_string), + memset(g_uuid_str, 0, sizeof(g_uuid_str)); + snprintf(g_uuid_str, sizeof(g_uuid_str), "%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x", (*uuid).id[0], (*uuid).id[1], (*uuid).id[2], (*uuid).id[3], (*uuid).id[4], (*uuid).id[5], (*uuid).id[6], (*uuid).id[7], (*uuid).id[8], (*uuid).id[9], (*uuid).id[10], (*uuid).id[11], (*uuid).id[12], (*uuid).id[13], (*uuid).id[14], (*uuid).id[15]); - MA_LOGI("%s", uuid_string); -} -#endif - -static void _print_uuid_res(const OicUuid_t* uuid, int res) -{ - char uuid_string[256] = {0}; - snprintf(uuid_string, sizeof(uuid_string), - "%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x : [%d] [%s]", - (*uuid).id[0], (*uuid).id[1], (*uuid).id[2], (*uuid).id[3], - (*uuid).id[4], (*uuid).id[5], (*uuid).id[6], (*uuid).id[7], - (*uuid).id[8], (*uuid).id[9], (*uuid).id[10], (*uuid).id[11], - (*uuid).id[12], (*uuid).id[13], (*uuid).id[14], (*uuid).id[15], - res, _error_to_string(res)); - MA_LOGI("%s", uuid_string); + return g_uuid_str; } #ifdef TEST @@ -337,16 +311,18 @@ static OCProvisionDev_t* _get_dev_by_uuid(const OCProvisionDev_t* dev_lst, return NULL; } - OCProvisionDev_t* lst = (OCProvisionDev_t*)dev_lst; #ifdef DEBUG_UUID - _print_uuid(&lst->doxm->deviceID); + MA_LOGD("[T] : %s", _get_readable_uuid(uuid)); #endif + OCProvisionDev_t* lst = (OCProvisionDev_t*)dev_lst; while (lst) { - if (!memcmp((const void *)&lst->doxm->deviceID, (const void *)uuid, sizeof(OicUuid_t))) - return lst; #ifdef DEBUG_UUID - _print_uuid(uuid); + MA_LOGD("[C] : %s", _get_readable_uuid(&lst->doxm->deviceID)); #endif + if (!memcmp((const void *)&lst->doxm->deviceID, (const void *)uuid, sizeof(OicUuid_t))) { + MA_LOGD("[M] : %s", _get_readable_uuid(&lst->doxm->deviceID)); + return lst; + } lst = lst->next; } @@ -363,7 +339,7 @@ static int _print_dev_list(const OCProvisionDev_t* dev_lst) OCProvisionDev_t* lst = (OCProvisionDev_t*) dev_lst; int lst_cnt = 0; for ( ; lst; ) { - _print_no_uuid(++lst_cnt, (const OicUuid_t*) &lst->doxm->deviceID); + MA_LOGI("[%d] %s", ++lst_cnt, _get_readable_uuid((const OicUuid_t*) &lst->doxm->deviceID)); lst = lst->next; } @@ -379,7 +355,9 @@ static int _print_result_list(const OCProvisionResult_t* rslt_lst, const int rsl int lst_cnt = 0; for ( ; rslt_cnt>lst_cnt; ++lst_cnt) { - _print_uuid_res((const OicUuid_t*) &rslt_lst[lst_cnt].deviceId, rslt_lst[lst_cnt].res); + MA_LOGD("%s : [%d][%s]", + _get_readable_uuid((const OicUuid_t*) &rslt_lst[lst_cnt].deviceId), + rslt_lst[lst_cnt].res, _error_to_string(rslt_lst[lst_cnt].res)); } return lst_cnt; @@ -525,7 +503,6 @@ static int _init_provision_client(void) ret = OCConfigSelfOwnership(); if (OC_STACK_OK != ret ) { MA_LOGE( "OCConfigSelfOwnership() error = [%d][%s]", ret, _error_to_string(ret)); - //return ret; } ret = OCInitPM(data_dir); @@ -670,24 +647,13 @@ static void __notify_found_devs(void *data) } while (iter != NULL) { - char uuid_string[256] = {0}; - OicUuid_t *uuid = &iter->doxm->deviceID; ma_check_null_ret("uuid", uuid); - snprintf(uuid_string, sizeof(uuid_string), - "%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x", - (*uuid).id[0], (*uuid).id[1], (*uuid).id[2], (*uuid).id[3], - (*uuid).id[4], (*uuid).id[5], (*uuid).id[6], (*uuid).id[7], - (*uuid).id[8], (*uuid).id[9], (*uuid).id[10], (*uuid).id[11], - (*uuid).id[12], (*uuid).id[13], (*uuid).id[14], (*uuid).id[15]); - - MA_LOGI("uuid %s", uuid_string); - g_variant_builder_open(&builder, G_VARIANT_TYPE_VARDICT); g_variant_builder_add(&builder, "{sv}", "deviceId", - g_variant_new_string(uuid_string)); + g_variant_new_string(_get_readable_uuid(uuid))); g_variant_builder_add(&builder, "{sv}", "adapter", g_variant_new_uint32(iter->endpoint.adapter)); g_variant_builder_add(&builder, "{sv}", "flags", @@ -703,8 +669,6 @@ static void __notify_found_devs(void *data) g_variant_builder_add(&builder, "{sv}", "remoteId", g_variant_new_string(iter->endpoint.remoteId)); - MA_LOGI("%s", iter->endpoint.remoteId); - g_variant_builder_add(&builder, "{sv}", "connType", g_variant_new_uint32(iter->connType)); g_variant_builder_add(&builder, "{sv}", "securePort", @@ -1072,7 +1036,7 @@ static gpointer _remove_mo_func(gpointer data) } uuid_target = _convert_uuid(con->uuid_target_str); - src_dev = _get_dev_by_uuid(g_client->g_mowned_list, uuid_target); + src_dev = _get_dev_by_uuid(g_client->g_motdev_list, uuid_target); if (!src_dev) { MA_LOGE("We can't find in MOT dev list"); goto MOT_ENDED; @@ -1368,8 +1332,12 @@ static OicSecAcl_t* _create_target_acl(const OicUuid_t* target, const OicUuid_t* return NULL; } #ifdef DEBUG_UUID - _print_uuid(target); - _print_uuid(subject); + MA_LOGE("target = %s", _get_readable_uuid(target)); + MA_LOGE("subject = %s", _get_readable_uuid(subject)); + MA_LOGE("rsrc_uri = %s", rsrc_uri); + MA_LOGE("rsrc_type = %s", rsrc_type); + MA_LOGE("rsrc_interface = %s", rsrc_interface); + MA_LOGE("permission = %d", permission); #endif acl = (OicSecAcl_t*) OICCalloc(1, sizeof(OicSecAcl_t)); if (!acl) { @@ -1477,16 +1445,16 @@ static gpointer _provisioning_acl_func(gpointer data) } uuid1 = _convert_uuid(con->uuid_target_str); - target_dev = _get_dev_by_uuid(g_client->g_mowned_list, uuid1); + target_dev = _get_dev_by_uuid(g_client->g_motdev_list, uuid1); if (!target_dev) { - MA_LOGE("We can't find target in MOWNED dev list"); + MA_LOGE("We can't find target in MOT enabled dev list"); goto PVACL_ERROR; } uuid2 = _convert_uuid(con->uuid_subject_str); - subject_dev = _get_dev_by_uuid(g_client->g_mowned_list, uuid2); + subject_dev = _get_dev_by_uuid(g_client->g_motdev_list, uuid2); if (!subject_dev) { - MA_LOGE("We can't find subject in MOWNED dev list"); + MA_LOGE("We can't find subject in MOT enabled dev list"); goto PVACL_ERROR; } @@ -1595,14 +1563,14 @@ static gpointer _cred_provisioning_func(gpointer data) } uuid1 = _convert_uuid(con->uuid_dev1); - dev1 = _get_dev_by_uuid(g_client->g_mowned_list, uuid1); + dev1 = _get_dev_by_uuid(g_client->g_motdev_list, uuid1); if (!dev1) { MA_LOGE("We can't find in MOWNED dev list"); goto PVCRED_ERROR; } uuid2 = _convert_uuid(con->uuid_dev2); - dev2 = _get_dev_by_uuid(g_client->g_mowned_list, uuid2); + dev2 = _get_dev_by_uuid(g_client->g_motdev_list, uuid2); if (!dev2) { MA_LOGE("We can't find in MOWNED dev list"); goto PVCRED_ERROR; @@ -1735,14 +1703,14 @@ static gpointer _provisioning_pairwise_func(gpointer data) uuid_1 = _convert_uuid(con->target_1); target_dev_1 = _get_dev_by_uuid(g_client->g_motdev_list, uuid_1); if (!target_dev_1) { - MA_LOGE("We can't find target in MOWNED dev list"); + MA_LOGE("We can't find target in MOT enabled dev list"); goto PVPAIRWIE_ERROR; } uuid_2 = _convert_uuid(con->target_2); target_dev_2 = _get_dev_by_uuid(g_client->g_motdev_list, uuid_2); if (!target_dev_2) { - MA_LOGE("We can't find target in MOWNED dev list"); + MA_LOGE("We can't find target in MOT enabled dev list"); goto PVPAIRWIE_ERROR; } @@ -1913,17 +1881,10 @@ static gpointer _unlink_provisioning_func(gpointer data) goto PVUNLINKPAIRWISE_ERROR; } - /* To do ACL provisioning only one */ - dev1->next = NULL; - - /* To do ACL provisioning only one */ - dev2->next = NULL; - g_client->g_doneCB = false; MA_LOGI("Provisioning Selected Pairwise Devices.."); - ret = OCUnlinkDevices((void*) g_client,dev1,dev2,_unlink_cb ); - + ret = OCUnlinkDevices((void*) g_client, dev1, dev2, _unlink_cb ); if (OC_STACK_OK != ret) { MA_LOGD( "OCUnlinkDevices API error: %d (%s)", ret, _error_to_string(ret)); goto PVUNLINKPAIRWISE_ERROR;