diff options
author | kj7.sung <kj7.sung@samsung.com> | 2017-07-19 11:18:49 +0900 |
---|---|---|
committer | kj7.sung <kj7.sung@samsung.com> | 2017-07-19 11:18:49 +0900 |
commit | 869ddf5ab1c959d800fac466e573f33d653411c7 (patch) | |
tree | bf016a5c8f4a3015bf7f6d3f2b868de7601964a9 | |
parent | bca79ecf5b34b7bda8b690e512f8b26958c94ee9 (diff) | |
download | lbs-server-869ddf5ab1c959d800fac466e573f33d653411c7.tar.gz lbs-server-869ddf5ab1c959d800fac466e573f33d653411c7.tar.bz2 lbs-server-869ddf5ab1c959d800fac466e573f33d653411c7.zip |
Change gps plugin loadingsubmit/tizen/20170719.103732
Change-Id: I036e3dcf38db6604e8e2bf634275520535931574
Signed-off-by: kj7.sung <kj7.sung@samsung.com>
-rw-r--r-- | lbs-server/include/nps_plugin_intf.h | 2 | ||||
-rw-r--r-- | lbs-server/src/fused.c | 1 | ||||
-rw-r--r-- | lbs-server/src/gps_plugin_module.c | 33 | ||||
-rw-r--r-- | lbs-server/src/gps_plugin_module.h | 3 | ||||
-rw-r--r-- | lbs-server/src/lbs_server.c | 1 | ||||
-rw-r--r-- | lbs-server/src/nps_plugin_module.c | 7 | ||||
-rw-r--r-- | lbs-server/src/server.c | 104 | ||||
-rw-r--r-- | packaging/lbs-server.spec | 2 |
8 files changed, 31 insertions, 122 deletions
diff --git a/lbs-server/include/nps_plugin_intf.h b/lbs-server/include/nps_plugin_intf.h index 3e392f6..8dd29b2 100644 --- a/lbs-server/include/nps_plugin_intf.h +++ b/lbs-server/include/nps_plugin_intf.h @@ -24,7 +24,7 @@ #define _NPS_PLUGIN_INTF_H_ #define NPS_UNIQUE_ID_LEN (20) -#define NPS_PLUGIN_PATH "/usr/lib/libSLP-nps-plugin.so" +#define NPS_PLUGIN_PATH LIB_DIR"/libSLP-nps-plugin.so" typedef struct { double latitude; /* decimal degree (WGS84) */ diff --git a/lbs-server/src/fused.c b/lbs-server/src/fused.c index c583bac..c08ec02 100644 --- a/lbs-server/src/fused.c +++ b/lbs-server/src/fused.c @@ -70,7 +70,6 @@ static fl_sensory_flags sensor_func_detect() if (sensor_get_default_sensor(SENSOR_GYROSCOPE, &fused.sensor[GYROSCOPE].handle) == SENSOR_ERROR_NONE) active_sensors |= GYROSCOPE_FLAG; - LOG_FUSED(LOG_DEBUG, "active_sensors : 0x%X", active_sensors); return active_sensors; } diff --git a/lbs-server/src/gps_plugin_module.c b/lbs-server/src/gps_plugin_module.c index e3821a2..38d85f2 100644 --- a/lbs-server/src/gps_plugin_module.c +++ b/lbs-server/src/gps_plugin_module.c @@ -29,33 +29,20 @@ #include "setting.h" #include "debug_util.h" -#define SPECIFIC_PLUGIN_PATH_PREFIX LIB_DIR"/liblbs-server-plugin-" -#define SPECIFIC_PLUGIN_PATH_POSTFIX ".so" +#define REPLAY_PLUGIN_PATH LIB_DIR"/libSLP-lbs-plugin-replay.so" -static const gps_plugin_interface *g_plugin = NULL; +static const gps_plugin_interface *g_plugin_interface = NULL; -int load_plugin_module(char *specific_name, void **plugin_handle) +int load_plugin_module(gboolean replay_enabled, void **plugin_handle) { char plugin_path[256]; - if (specific_name[0] == '\0') { + if (replay_enabled) + strncpy(plugin_path, REPLAY_PLUGIN_PATH, sizeof(plugin_path)); + else strncpy(plugin_path, GPS_PLUGIN_PATH, sizeof(plugin_path)); - } else { - snprintf(plugin_path, sizeof(plugin_path), - SPECIFIC_PLUGIN_PATH_PREFIX"%s" - SPECIFIC_PLUGIN_PATH_POSTFIX, - specific_name); - - struct stat st = {0}; - - if (stat(plugin_path, &st) != 0) { - strncpy(plugin_path, GPS_PLUGIN_PATH, sizeof(plugin_path)); - - /* Comment out to support real GPS when GPS plugin is installed*/ - /* setting_set_int(VCONFKEY_LOCATION_REPLAY_ENABLED, 1); */ - } - } + LOG_GPS(DBG_ERR, "Load plugin module : %s", replay_enabled ? "REPLAY" : "GPS"); *plugin_handle = dlopen(plugin_path, RTLD_NOW); if (!*plugin_handle) { LOG_GPS(DBG_ERR, "Failed to load plugin module: %s", plugin_path); @@ -71,9 +58,9 @@ int load_plugin_module(char *specific_name, void **plugin_handle) return FALSE; } - g_plugin = get_gps_plugin_interface(); + g_plugin_interface = get_gps_plugin_interface(); - if (!g_plugin) { + if (!g_plugin_interface) { LOG_GPS(DBG_ERR, "Failed to find load symbol in plugin module."); dlclose(*plugin_handle); return FALSE; @@ -97,5 +84,5 @@ int unload_plugin_module(void *plugin_handle) const gps_plugin_interface *get_plugin_module(void) { - return g_plugin; + return g_plugin_interface; } diff --git a/lbs-server/src/gps_plugin_module.h b/lbs-server/src/gps_plugin_module.h index 62a675c..95547b0 100644 --- a/lbs-server/src/gps_plugin_module.h +++ b/lbs-server/src/gps_plugin_module.h @@ -22,9 +22,10 @@ #ifndef _GPS_PLUGIN_MODULE_H_ #define _GPS_PLUGIN_MODULE_H_ +#include <glib.h> #include "gps_plugin_intf.h" -int load_plugin_module(char *specific_name, void **plugin_handle); +int load_plugin_module(gboolean replay_enabled, void **plugin_handle); int unload_plugin_module(void *plugin_handle); const gps_plugin_interface *get_plugin_module(void); diff --git a/lbs-server/src/lbs_server.c b/lbs-server/src/lbs_server.c index 89c33d0..c36b98c 100644 --- a/lbs-server/src/lbs_server.c +++ b/lbs-server/src/lbs_server.c @@ -858,6 +858,7 @@ static gboolean update_pos_tracking_interval(lbs_server_interval_manipulation_ty LOG_GPS(DBG_LOW, "ADD, interval[%u], client[%s], interval_table(%p)", interval, client, interval_table); if (interval_table) { __add_interval_table(interval_table, interval); + g_free(client_cpy); } else { LOG_GPS(DBG_LOW, "create gps hash_table to add first key[%s]", client); interval_table = g_hash_table_new(g_direct_hash, g_direct_equal); diff --git a/lbs-server/src/nps_plugin_module.c b/lbs-server/src/nps_plugin_module.c index 5fa7ed3..e9d6920 100644 --- a/lbs-server/src/nps_plugin_module.c +++ b/lbs-server/src/nps_plugin_module.c @@ -59,15 +59,14 @@ int nps_is_dummy_plugin_module() int nps_load_plugin_module(void **plugin_handle) { - LOG_NPS(DBG_LOW, "Begin to load plugin module"); + LOG_NPS(DBG_LOW, "Begin to load NPS plugin module"); char plugin_path[256] = {0}; strncpy(plugin_path, NPS_PLUGIN_PATH, sizeof(plugin_path)); if (access(plugin_path, R_OK) != 0) { - LOG_NPS(DBG_ERR, "Failed to access plugin module. [%s]", plugin_path); - LOG_NPS(DBG_LOW, "load dummy"); + LOG_NPS(DBG_ERR, "Failed to access NPS plugin[%s]. Dummy loading", plugin_path); g_plugin = &g_dummy; g_is_nps_dummy_module = TRUE; return TRUE; @@ -76,7 +75,7 @@ int nps_load_plugin_module(void **plugin_handle) *plugin_handle = dlopen(plugin_path, RTLD_NOW); if (!*plugin_handle) { LOG_NPS(DBG_ERR, "Failed to load plugin module. [%s]", plugin_path); - /* LOG_NPS(DBG_ERR, "%s", dlerror()); */ + LOG_NPS(DBG_ERR, "%s", dlerror()); return FALSE; } diff --git a/lbs-server/src/server.c b/lbs-server/src/server.c index dc19c24..1387782 100644 --- a/lbs-server/src/server.c +++ b/lbs-server/src/server.c @@ -61,24 +61,6 @@ #include <glib/gthread.h> #endif -#define REPLAY_MODULE "replay" - -#define PLATFORM_PATH "/sys/devices/platform" -#define BRCM4752_PATH PLATFORM_PATH"/bcm4752" -#define BRCM47520_PATH PLATFORM_PATH"/bcm47520" -#define BRCM47511_PATH PLATFORM_PATH"/bcm47511" -#define BRCM47522_PATH PLATFORM_PATH"/bcm47522" -#define BRCM4774_PATH PLATFORM_PATH"/bcm4774" -#define BRCM477_PATH PLATFORM_PATH"/gps" -#define CSR_PATH PLATFORM_PATH"/gsd4t" -#define QCOM8210_PATH PLATFORM_PATH"/msm8210_gps" -#define QCOM8x30_PATH PLATFORM_PATH"/msm8x30_gps" -#define QCOM9x15_PATH PLATFORM_PATH"/msm9x15_gps" -#define QCOM8974_PATH PLATFORM_PATH"/msm8974_gps" -#define QCOM8226_PATH PLATFORM_PATH"/msm8226_gps" -#define QCOM8916_PATH PLATFORM_PATH"/msm8916_gps" -#define USB_PLUGIN_PATH "/etc/lbs-server/replay/nmea_usb.log" - #define MPS_TO_KMPH 3.6 /* 1 m/s = 3.6 km/h */ struct gps_callbacks g_update_cb; @@ -154,25 +136,19 @@ static gboolean get_replay_enabled() static void reload_plugin_module(gps_server_t *server) { - char *module_name; gps_failure_reason_t ReasonCode = GPS_FAILURE_CAUSE_NORMAL; - if (server->replay_enabled == TRUE) - module_name = REPLAY_MODULE; - else - module_name = server->gps_plugin.name; - - LOG_GPS(DBG_LOW, "replay_enabled:%d, Loading plugin.name: %s", server->replay_enabled, module_name); + LOG_GPS(DBG_LOW, "reload_plugin_module : replay enabled: %d", server->replay_enabled); if (!get_plugin_module()->deinit(&ReasonCode)) { LOG_GPS(DBG_ERR, "Fail to GPS plugin deinit"); } else { unload_plugin_module(&server->gps_plugin.handle); - if (!load_plugin_module(module_name, &server->gps_plugin.handle)) { - LOG_GPS(DBG_ERR, "Fail to load %s plugin", module_name); + if (!load_plugin_module(server->replay_enabled, &server->gps_plugin.handle)) { + LOG_GPS(DBG_ERR, "Fail to load plugin module"); } else { if (!get_plugin_module()->init(_gps_server_gps_event_cb, (void *)server)) { - LOG_GPS(DBG_ERR, "Fail to %s plugin init", module_name); + LOG_GPS(DBG_ERR, "Fail to plugin init"); return; } } @@ -283,7 +259,7 @@ int request_start_session(int interval) int request_stop_session() { gboolean status = TRUE; - gboolean cur_replay_enabled = FALSE; + gboolean is_replay_enabled = FALSE; gps_failure_reason_t reason_code = GPS_FAILURE_CAUSE_NORMAL; gps_server_t *server = g_gps_server; @@ -293,9 +269,9 @@ int request_stop_session() if (status) { server->session_state = GPS_SESSION_STOPPING; LOG_GPS(DBG_LOW, "==GPSSessionState[%d]", server->session_state); - cur_replay_enabled = get_replay_enabled(); - if (server->replay_enabled != cur_replay_enabled) { - server->replay_enabled = cur_replay_enabled; + is_replay_enabled = get_replay_enabled(); + if (server->replay_enabled != is_replay_enabled) { + server->replay_enabled = is_replay_enabled; reload_plugin_module(server); } setting_notify_key_changed(VCONFKEY_LOCATION_REPLAY_ENABLED, _gps_replay_changed_cb, (void *)server); @@ -345,7 +321,7 @@ int request_start_batch_session(int batch_interval, int batch_period) int request_stop_batch_session(int batch_interval, int batch_period, int session_status) { gboolean status = TRUE; - gboolean cur_replay_enabled = FALSE; + gboolean is_replay_enabled = FALSE; gps_failure_reason_t reason_code = GPS_FAILURE_CAUSE_NORMAL; gps_server_t *server = g_gps_server; gps_action_start_data_t gps_start_data; @@ -360,9 +336,9 @@ int request_stop_batch_session(int batch_interval, int batch_period, int session if (status == TRUE && session_status == 0) { server->session_state = GPS_SESSION_STOPPING; LOG_GPS(DBG_LOW, "==GPSSessionState[%d]", server->session_state); - cur_replay_enabled = get_replay_enabled(); - if (server->replay_enabled != cur_replay_enabled) { - server->replay_enabled = cur_replay_enabled; + is_replay_enabled = get_replay_enabled(); + if (server->replay_enabled != is_replay_enabled) { + server->replay_enabled = is_replay_enabled; reload_plugin_module(server); } setting_notify_key_changed(VCONFKEY_LOCATION_REPLAY_ENABLED, _gps_replay_changed_cb, (void *)server); @@ -468,31 +444,10 @@ int get_nmea_from_server(int *timestamp, char **nmea_data) return TRUE; } -static gboolean _gps_plugin_handler_init(gps_server_t *server, char *module_name) -{ - if (module_name == NULL) { - LOG_GPS(DBG_ERR, "Fail : module_name is NULL"); - return FALSE; - } - - server->gps_plugin.handle = NULL; - server->gps_plugin.name = (char *)malloc(strlen(module_name) + 1); - g_return_val_if_fail(server->gps_plugin.name, FALSE); - - g_strlcpy(server->gps_plugin.name, module_name, strlen(module_name) + 1); - - return TRUE; -} - static void _gps_plugin_handler_deinit(gps_server_t *server) { if (server->gps_plugin.handle != NULL) server->gps_plugin.handle = NULL; - - if (server->gps_plugin.name != NULL) { - free(server->gps_plugin.name); - server->gps_plugin.name = NULL; - } } static void _gps_get_nmea_replay_mode(gps_server_t *server) @@ -1084,32 +1039,6 @@ static void *_gps_register_msgfwcb(void *data) } #endif -void check_plugin_module(char *module_name) -{ - if (get_replay_enabled() == TRUE) { - g_strlcpy(module_name, "replay", strlen("replay") + 1); - LOG_GPS(DBG_LOW, "REPLAY_ENABELD is TRUE"); - } else if (access(USB_PLUGIN_PATH, F_OK) == 0) { - g_strlcpy(module_name, "usb", strlen("usb") + 1); - } else if (access(BRCM4752_PATH, F_OK) == 0 || access(BRCM47520_PATH, F_OK) == 0 || - access(BRCM47522_PATH, F_OK) == 0 || access(BRCM477_PATH, F_OK) == 0 || access(BRCM4774_PATH, F_OK) == 0) { - g_strlcpy(module_name, "brcm", strlen("brcm") + 1); - } else if (access(BRCM47511_PATH, F_OK) == 0) { - g_strlcpy(module_name, "brcm-legacy", strlen("brcm-legacy") + 1); - } else if (access(CSR_PATH, F_OK) == 0) { - g_strlcpy(module_name, "csr", strlen("csr") + 1); - } else if (access(QCOM8x30_PATH, F_OK) == 0 || access(QCOM9x15_PATH, F_OK) == 0 || - access(QCOM8974_PATH, F_OK) == 0 || access(QCOM8210_PATH, F_OK) == 0 || - access(QCOM8226_PATH, F_OK) == 0 || access(QCOM8916_PATH, F_OK) == 0) { - g_strlcpy(module_name, "qcom", strlen("qcom") + 1); - } else { - g_strlcpy(module_name, "replay", strlen("replay") + 1); - LOG_GPS(DBG_LOW, "There is no gps module"); - } - - LOG_GPS(DBG_LOW, ">> module name : %s", module_name); -} - static gps_server_t *_initialize_gps_data(void) { g_gps_server = (gps_server_t *) malloc(sizeof(gps_server_t)); @@ -1210,22 +1139,15 @@ int initialize_server(int argc, char **argv) LOG_FUNC; gps_server_t *server; - char module_name[16]; server = _initialize_gps_data(); if (server == NULL) return -1; - check_plugin_module(module_name); - if (!_gps_plugin_handler_init(server, module_name)) { - LOG_GPS(DBG_ERR, "Fail to init plugin handle"); - return -1; - } - _gps_get_nmea_replay_mode(server); _gps_notify_params(server); - if (!load_plugin_module(server->gps_plugin.name, &server->gps_plugin.handle)) { + if (!load_plugin_module(server->replay_enabled, &server->gps_plugin.handle)) { LOG_GPS(DBG_ERR, "Fail to load plugin module."); return -1; } diff --git a/packaging/lbs-server.spec b/packaging/lbs-server.spec index 7cc5a30..c9fa15a 100644 --- a/packaging/lbs-server.spec +++ b/packaging/lbs-server.spec @@ -1,6 +1,6 @@ Name: lbs-server Summary: LBS Server for Tizen -Version: 1.2.0 +Version: 1.2.1 Release: 1 Group: Location/Service License: Apache-2.0 |