From 0b5f6d630245b27e0ea82a2d6835bbed486eb8f4 Mon Sep 17 00:00:00 2001 From: "saerome.kim" Date: Mon, 13 Mar 2017 10:48:26 +0900 Subject: [PATCH] Fixed bugs about managing networks at test app - add_mesh_network - select_mesh_network - remove_mesh_network Signed-off-by: saerome.kim --- include/mesh.h | 4 +-- test/mesh_device.c | 2 +- test/mesh_network.c | 81 +++++++++++++++------------------------------ 3 files changed, 29 insertions(+), 58 deletions(-) diff --git a/include/mesh.h b/include/mesh.h index a0d1b71..d389769 100644 --- a/include/mesh.h +++ b/include/mesh.h @@ -487,13 +487,13 @@ int mesh_deinitialize(mesh_h handle); * @see #MESH_EVENT_STATION_DISJOINED * * @param[out] event_type The event identification - * @param[out] param parameter data pointer + * @param[out] event parameter data pointer * * @pre The callback must be registered with mesh_enable() * * @see mesh_enable() */ -typedef void (*mesh_event_cb)(mesh_event_e event_type, void* param); +typedef void (*mesh_event_cb)(mesh_event_e event_type, mesh_event_data_s* event); /** * @brief Enable the mesh service. diff --git a/test/mesh_device.c b/test/mesh_device.c index a2eee8d..a510ad7 100644 --- a/test/mesh_device.c +++ b/test/mesh_device.c @@ -28,7 +28,7 @@ #include "common.h" extern mesh_h mesh; -extern void event_cb(mesh_event_e event_type, void* param); +extern void event_cb(mesh_event_e event_type, mesh_event_data_s* event); static int run_mesh_create(MManager *mm, struct menu_data *menu) { diff --git a/test/mesh_network.c b/test/mesh_network.c index 5a695db..79846b3 100644 --- a/test/mesh_network.c +++ b/test/mesh_network.c @@ -99,6 +99,17 @@ void saved_mesh_netwrok_cb(mesh_network_h network, void* user_data) } } +static gboolean _mesh_lookup_by_id(gpointer key, gpointer value, gpointer user_data) +{ + int k = (int)key; + int id = (int)user_data; + + if (k == id) + return TRUE; + + return FALSE; +} + static int run_mesh_scan(MManager *mm, struct menu_data *menu) { int ret; @@ -340,24 +351,19 @@ static int run_add_network(MManager *mm, struct menu_data *menu) int ret; int idx = 1; mesh_network_h net = NULL; - msg("Add Network Configuration"); + msg("Add a Network Configuration among scan results"); if (strlen(network_idx)) idx = (unsigned short)strtol(network_idx, NULL, 10); - if (g_hash_saved_net_list) { - net = g_hash_table_lookup(g_hash_saved_net_list, GINT_TO_POINTER(idx)); - if (NULL != net) { - msg("Already added"); + if (g_hash_scan_net_list) { + net = g_hash_table_lookup(g_hash_scan_net_list, GINT_TO_POINTER(idx)); + if (NULL == net) { + msg("Failed to find candidate network"); return RET_FAILURE; } } - if (NULL == net) { - msg("Failed to get existing network from scan list"); - return RET_FAILURE; - } - ret = mesh_add_mesh_network(mesh, net); if (ret != 0) { msg("Failed to mesh_add_mesh_network: [%s(0x%X)]", @@ -371,40 +377,16 @@ static int run_add_network(MManager *mm, struct menu_data *menu) static int run_add_new_network(MManager *mm, struct menu_data *menu) { int ret; - int chan; - unsigned short _mesh_channel = 1; + int _mesh_channel = 1; mesh_network_h net = NULL; + msg("Add New Network Configuration"); if (strlen(mesh_channel)) _mesh_channel = (unsigned short)strtol(mesh_channel, NULL, 10); - if (g_hash_scan_net_list) { - - char *_meshid = NULL; - int _channel; - - GList *values = g_hash_table_get_values(g_hash_scan_net_list); - GList *iter_list = values; - - while (iter_list != NULL) { - mesh_network_h _net = iter_list->data; - mesh_network_get_meshid(_net, &_meshid); - mesh_network_get_channel(_net, &_channel); - if (0 == g_strcmp0(_meshid, meshid) && _channel == _mesh_channel) { - msg("Already added"); - return RET_FAILURE; - } - iter_list = g_list_next(iter_list); - } - - g_list_free(values); - } - mesh_network_new_with(&net, meshid, NULL, _mesh_channel, 0, 0); ret = mesh_add_mesh_network(mesh, net); - mesh_network_get_channel(net, &chan); - msg("channel = %d %d", _mesh_channel, chan); mesh_network_destroy(net); if (ret != 0) { msg("Failed to mesh_add_mesh_network: [%s(0x%X)]", @@ -421,15 +403,15 @@ static int run_select_network(MManager *mm, struct menu_data *menu) int ret; int idx = 1; mesh_network_h net = NULL; - msg("Select Save Network Configuration"); + msg("Select Saved Network Configuration"); if (strlen(network_idx)) idx = (unsigned short)strtol(network_idx, NULL, 10); - if (g_hash_scan_net_list) { - net = g_hash_table_lookup(g_hash_scan_net_list, GINT_TO_POINTER(idx)); + if (g_hash_saved_net_list) { + net = g_hash_table_find(g_hash_saved_net_list, _mesh_lookup_by_id, GINT_TO_POINTER(idx)); if (NULL == net) { - msg("Failed to g_hash_table_lookup"); + msg("Failed to g_hash_table_find"); return RET_FAILURE; } } @@ -444,27 +426,16 @@ static int run_select_network(MManager *mm, struct menu_data *menu) return RET_SUCCESS; } -static gboolean _mesh_lookup_by_id(gpointer key, gpointer value, gpointer user_data) -{ - int k = (int)key; - int id = (int)user_data; - - if (k == id) - return TRUE; - - return FALSE; -} - static int run_remove_network(MManager *mm, struct menu_data *menu) { int ret; int idx = 1; mesh_network_h net = NULL; - msg("Remove Save Network Configuration"); + msg("Remove Saved Network Configuration"); if (strlen(network_idx)) idx = (unsigned short)strtol(network_idx, NULL, 10); - +#if 0 if (g_hash_saved_net_list) { char *_meshid = NULL; @@ -477,13 +448,13 @@ static int run_remove_network(MManager *mm, struct menu_data *menu) mesh_network_h _net = iter_list->data; mesh_network_get_meshid(_net, &_meshid); mesh_network_get_channel(_net, &_channel); - //msgb("meshid=%s channel=%d", _meshid, _channel); + msgb("meshid=%s channel=%d", _meshid, _channel); iter_list = g_list_next(iter_list); } g_list_free(values); } - +#endif if (g_hash_saved_net_list) { net = g_hash_table_find(g_hash_saved_net_list, _mesh_lookup_by_id, GINT_TO_POINTER(idx)); -- 2.34.1