From: Tomasz Marciniak Date: Tue, 25 Oct 2016 12:38:07 +0000 (+0200) Subject: [SystemInfo] Replace wifi with wifi-manager api. X-Git-Tag: accepted/tizen/common/20161102.122020~11^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F40%2F93840%2F2;p=platform%2Fcore%2Fapi%2Fwebapi-plugins.git [SystemInfo] Replace wifi with wifi-manager api. [Verification] Code compiles. TCT pass rate 100% (372/372/0/0/0) Change-Id: Ie7690618086b35ad1bdde16741e7034529856d31 Signed-off-by: Tomasz Marciniak --- diff --git a/packaging/webapi-plugins.spec b/packaging/webapi-plugins.spec index da94165..52a5825 100644 --- a/packaging/webapi-plugins.spec +++ b/packaging/webapi-plugins.spec @@ -372,7 +372,7 @@ BuildRequires: pkgconfig(capi-network-connection) BuildRequires: pkgconfig(capi-system-device) BuildRequires: pkgconfig(capi-system-system-settings) BuildRequires: pkgconfig(capi-network-bluetooth) -BuildRequires: pkgconfig(capi-network-wifi) +BuildRequires: pkgconfig(capi-network-wifi-manager) BuildRequires: pkgconfig(tapi) BuildRequires: pkgconfig(libpcrecpp) BuildRequires: pkgconfig(capi-appfw-application) diff --git a/src/systeminfo/systeminfo.gyp b/src/systeminfo/systeminfo.gyp index 618754a..ae9d39f 100644 --- a/src/systeminfo/systeminfo.gyp +++ b/src/systeminfo/systeminfo.gyp @@ -40,7 +40,7 @@ 'capi-network-connection', 'capi-system-device', 'capi-system-system-settings', - 'capi-network-wifi', + 'capi-network-wifi-manager', 'libtzplatform-config', 'tapi', 'sensor', diff --git a/src/systeminfo/systeminfo_manager.cc b/src/systeminfo/systeminfo_manager.cc index 849a0dc..e20c332 100644 --- a/src/systeminfo/systeminfo_manager.cc +++ b/src/systeminfo/systeminfo_manager.cc @@ -24,7 +24,6 @@ #include #include #include -#include #include "common/converter.h" #include "common/logger.h" @@ -224,7 +223,7 @@ static void OnBrightnessChangedCb(device_callback_e type, void* value, void* use } } -static void OnWifiLevelChangedCb (wifi_rssi_level_e rssi_level, void *user_data) { +static void OnWifiLevelChangedCb (wifi_manager_rssi_level_e rssi_level, void *user_data) { LoggerD("Entered"); LoggerD("Level %d", rssi_level); SysteminfoManager* manager = static_cast(user_data); @@ -459,7 +458,8 @@ SysteminfoManager::SysteminfoManager(SysteminfoInstance* instance) : instance_(instance), prop_manager_(*this), sensor_handle_(-1), - wifi_level_(WIFI_RSSI_LEVEL_0), + wifi_level_(WIFI_MANAGER_RSSI_LEVEL_0), + wifi_manager_(nullptr), cpu_load_(0), last_cpu_load_(0), available_capacity_internal_(0), @@ -472,16 +472,16 @@ SysteminfoManager::SysteminfoManager(SysteminfoInstance* instance) connection_handle_(nullptr), async_op_(new AsynchronousOperation()) { LoggerD("Entered"); - int error = wifi_initialize(); - if (WIFI_ERROR_NONE != error) { - std::string log_msg = "Initialize failed: " + std::string(get_error_message(error)); + + int error = wifi_manager_initialize(&wifi_manager_); + if (WIFI_MANAGER_ERROR_NONE != error) { + std::string log_msg = "Initialization failed: " + std::string(get_error_message(error)); LoggerE("%s", log_msg.c_str()); } else { LoggerD("WIFI initialization succeed"); } - - error = wifi_set_rssi_level_changed_cb(OnWifiLevelChangedCb, this); - if (WIFI_ERROR_NONE != error) { + error = wifi_manager_set_rssi_level_changed_cb(wifi_manager_, OnWifiLevelChangedCb, this); + if (WIFI_MANAGER_ERROR_NONE != error) { std::string log_msg = "Setting wifi listener failed: " + std::string(get_error_message(error)); LoggerE("%s", log_msg.c_str()); @@ -513,7 +513,12 @@ SysteminfoManager::~SysteminfoManager() { connection_destroy(connection_handle_); } - wifi_deinitialize(); + if (nullptr != wifi_manager_) { + int ret = wifi_manager_deinitialize(wifi_manager_); + if (WIFI_MANAGER_ERROR_NONE != ret) { + LoggerE("wifi_manager_deinitialize failed %d [%s]", ret, get_error_message(ret)); + } + } } void SysteminfoManager::GetCapabilities(const picojson::value& args, picojson::object* out) { @@ -1368,12 +1373,12 @@ PlatformResult SysteminfoManager::GetPropertyCount(const std::string& property, return PlatformResult(ErrorCode::NO_ERROR); } -wifi_rssi_level_e SysteminfoManager::GetWifiLevel() { +wifi_manager_rssi_level_e SysteminfoManager::GetWifiLevel() { LoggerD("Enter"); return wifi_level_; } -void SysteminfoManager::SetWifiLevel(wifi_rssi_level_e level) { +void SysteminfoManager::SetWifiLevel(wifi_manager_rssi_level_e level) { LoggerD("Entered"); wifi_level_ = level; } diff --git a/src/systeminfo/systeminfo_manager.h b/src/systeminfo/systeminfo_manager.h index c34dd4e..f2f6e78 100644 --- a/src/systeminfo/systeminfo_manager.h +++ b/src/systeminfo/systeminfo_manager.h @@ -23,7 +23,7 @@ #include #include -#include +#include #include "common/picojson.h" #include "common/platform_result.h" @@ -53,8 +53,8 @@ class SysteminfoManager { void GetCount(const picojson::value& args, picojson::object* out); common::PlatformResult GetPropertyCount(const std::string& property, unsigned long* count); - wifi_rssi_level_e GetWifiLevel(); - void SetWifiLevel(wifi_rssi_level_e level); + wifi_manager_rssi_level_e GetWifiLevel(); + void SetWifiLevel(wifi_manager_rssi_level_e level); int GetSensorHandle(); int GetChangedTapiIndex(TapiHandle* tapi); @@ -133,7 +133,9 @@ class SysteminfoManager { std::mutex sensor_mutex_; std::vector camera_types_; - wifi_rssi_level_e wifi_level_; + wifi_manager_rssi_level_e wifi_level_; + wifi_manager_h wifi_manager_; + double cpu_load_; double last_cpu_load_; unsigned long long available_capacity_internal_; diff --git a/src/systeminfo/systeminfo_properties_manager.cc b/src/systeminfo/systeminfo_properties_manager.cc index 8a0fef8..9d87daa 100644 --- a/src/systeminfo/systeminfo_properties_manager.cc +++ b/src/systeminfo/systeminfo_properties_manager.cc @@ -589,28 +589,28 @@ PlatformResult SysteminfoPropertiesManager::ReportNetwork(picojson::object* out, } /// WIFI_NETWORK -static PlatformResult GetIpsWifi(wifi_ap_h wifi_ap_handle, std::string* ip_addr_str, +static PlatformResult GetIpsWifi(wifi_manager_ap_h wifi_ap_handle, std::string* ip_addr_str, std::string* ipv6_addr_str) { LoggerD("Entered"); //getting ipv4 address char* ip_addr = nullptr; - int error = wifi_ap_get_ip_address(wifi_ap_handle, - WIFI_ADDRESS_FAMILY_IPV4, - &ip_addr); - if (WIFI_ERROR_NONE != error) { + int error = wifi_manager_ap_get_ip_address(wifi_ap_handle, + WIFI_MANAGER_ADDRESS_FAMILY_IPV4, + &ip_addr); + if (WIFI_MANAGER_ERROR_NONE != error) { return LogAndCreateResult( ErrorCode::UNKNOWN_ERR, "Cannot get ip address", - ("wifi_ap_get_ip_address error: %d (%s)", error, get_error_message(error))); + ("wifi_manager_ap_get_ip_address error: %d (%s)", error, get_error_message(error))); } *ip_addr_str = ip_addr; free(ip_addr); //getting ipv6 address ip_addr = nullptr; - error = wifi_ap_get_ip_address(wifi_ap_handle, - WIFI_ADDRESS_FAMILY_IPV6, - &ip_addr); - if (WIFI_ERROR_NONE != error) { + error = wifi_manager_ap_get_ip_address(wifi_ap_handle, + WIFI_MANAGER_ADDRESS_FAMILY_IPV6, + &ip_addr); + if (WIFI_MANAGER_ERROR_NONE != error) { return LogAndCreateResult( ErrorCode::UNKNOWN_ERR, "Cannot get ipv6 address", ("Failed to get ipv6 address: %d (%s)", error, get_error_message(error))); @@ -664,46 +664,48 @@ PlatformResult SysteminfoPropertiesManager::ReportWifiNetwork(picojson::object* std::string result_mac_address; double result_signal_strength = 0; - // wifi_initialize() must be called in each thread - int error = wifi_initialize(); - if (WIFI_ERROR_NONE != error) { - std::string log_msg = "Initialize failed: " + std::string(get_error_message(error)); + // wifi_manager_initialize() must be called in each thread + wifi_manager_h wifi_manager = nullptr; + int error = wifi_manager_initialize(&wifi_manager); + if (WIFI_MANAGER_ERROR_NONE != error) { + std::string log_msg = "Initialization failed: " + std::string(get_error_message(error)); return LogAndCreateResult( ErrorCode::UNKNOWN_ERR, log_msg, - ("wifi_initialize error: %d (%s)", error, get_error_message(error))); + ("wifi_manager_initialize error: %d (%s)", error, get_error_message(error))); } else { LoggerD("WIFI initialization succeed"); } + SCOPE_EXIT { - wifi_deinitialize(); + wifi_manager_deinitialize(wifi_manager); }; - // check if wifi activated + // check if wifi is activated bool activated = false; - error = wifi_is_activated(&activated); - if (WIFI_ERROR_NONE != error) { + error = wifi_manager_is_activated(wifi_manager, &activated); + if (WIFI_MANAGER_ERROR_NONE != error) { std::string log_msg = "Checking if wifi is activated failed: " + std::string(get_error_message(error)); return LogAndCreateResult( ErrorCode::UNKNOWN_ERR, log_msg, - ("wifi_is_activated error: %d (%s)", error, get_error_message(error))); + ("wifi_manager_is_activated error: %d (%s)", error, get_error_message(error))); } else { LoggerD("WIFI activated check succeed"); } - wifi_ap_h wifi_ap_handle = nullptr; + wifi_manager_ap_h wifi_ap_handle = nullptr; if (activated) { LoggerD("Wifi is activated"); - error = wifi_get_connected_ap(&wifi_ap_handle); - if (WIFI_ERROR_NONE != error) { + error = wifi_manager_get_connected_ap(wifi_manager, &wifi_ap_handle); + if (WIFI_MANAGER_ERROR_NONE != error) { LoggerD("Error while wifi_get_connnected_ap: %s", get_error_message(error)); // in case of no connection, ignore error and leave status as false - if (WIFI_ERROR_NO_CONNECTION != error) { + if (WIFI_MANAGER_ERROR_NO_CONNECTION != error) { std::string log_msg = "Cannot get connected access point handle: " + std::string(get_error_message(error)); return LogAndCreateResult( ErrorCode::UNKNOWN_ERR, log_msg, - ("wifi_get_connected_ap error: %d (%s)", error, get_error_message(error))); + ("wifi_manager_get_connected_ap error: %d (%s)", error, get_error_message(error))); } } else { //if getting connected AP succeed, set status on true @@ -712,14 +714,14 @@ PlatformResult SysteminfoPropertiesManager::ReportWifiNetwork(picojson::object* } if (result_status) { - std::unique_ptr::type, int(*)(wifi_ap_h)> - wifi_ap_handle_ptr(wifi_ap_handle, &wifi_ap_destroy); + std::unique_ptr::type, int(*)(wifi_manager_ap_h)> + wifi_ap_handle_ptr(wifi_ap_handle, &wifi_manager_ap_destroy); // automatically release the memory //gathering mac address char* mac = nullptr; - error = wifi_get_mac_address(&mac); - if (WIFI_ERROR_NONE == error && nullptr != mac) { + error = wifi_manager_get_mac_address(wifi_manager, &mac); + if (WIFI_MANAGER_ERROR_NONE == error && nullptr != mac) { SLoggerD("MAC address fetched: %s", mac); result_mac_address = mac; free(mac); @@ -727,30 +729,30 @@ PlatformResult SysteminfoPropertiesManager::ReportWifiNetwork(picojson::object* std::string log_msg = "Failed to get mac address: " + std::string(get_error_message(error)); return LogAndCreateResult( ErrorCode::UNKNOWN_ERR, log_msg, - ("wifi_get_mac_address error: %d (%s)", error, get_error_message(error))); + ("wifi_manager_get_mac_address error: %d (%s)", error, get_error_message(error))); } //refreshing access point information - error = wifi_ap_refresh(wifi_ap_handle); - if (WIFI_ERROR_NONE != error) { + error = wifi_manager_ap_refresh(wifi_ap_handle); + if (WIFI_MANAGER_ERROR_NONE != error) { std::string log_msg = "Failed to refresh access point information: " + std::string(get_error_message(error)); return LogAndCreateResult( ErrorCode::UNKNOWN_ERR, log_msg, - ("wifi_ap_refresh error: %d (%s)", error, get_error_message(error))); + ("wifi_manager_ap_refresh error: %d (%s)", error, get_error_message(error))); } //gathering ssid char* essid = nullptr; - error = wifi_ap_get_essid(wifi_ap_handle, &essid); - if (WIFI_ERROR_NONE == error) { + error = wifi_manager_ap_get_essid(wifi_ap_handle, &essid); + if (WIFI_MANAGER_ERROR_NONE == error) { result_ssid = essid; free(essid); } else { std::string log_msg = "Failed to get network ssid: " + std::string(get_error_message(error)); return LogAndCreateResult( ErrorCode::UNKNOWN_ERR, log_msg, - ("wifi_ap_get_essid error: %d (%s)", error, get_error_message(error))); + ("wifi_manager_ap_get_essid error: %d (%s)", error, get_error_message(error))); } //gathering ips @@ -760,23 +762,23 @@ PlatformResult SysteminfoPropertiesManager::ReportWifiNetwork(picojson::object* } //gathering strength - wifi_rssi_level_e rssi_level = manager_.GetWifiLevel(); + wifi_manager_rssi_level_e rssi_level = manager_.GetWifiLevel(); // this mean that level was not initialized or wifi not connected - if (WIFI_RSSI_LEVEL_0 == rssi_level) { + if (WIFI_MANAGER_RSSI_LEVEL_0 == rssi_level) { // so try to gather rssi level with dedicated function int rssi = 0; - error = wifi_ap_get_rssi(wifi_ap_handle, &rssi); - if (WIFI_ERROR_NONE == error) { + error = wifi_manager_ap_get_rssi(wifi_ap_handle, &rssi); + if (WIFI_MANAGER_ERROR_NONE == error) { result_signal_strength = ((double) abs(rssi))/kWifiSignalStrengthDivideValue; } else { std::string log_msg = "Failed to get signal strength: " + std::string(get_error_message(error)); return LogAndCreateResult( ErrorCode::UNKNOWN_ERR, log_msg, - ("wifi_ap_get_rssi error: %d (%s)", error, get_error_message(error))); + ("wifi_manager_ap_get_rssi error: %d (%s)", error, get_error_message(error))); } } else { - result_signal_strength = ((double) rssi_level)/WIFI_RSSI_LEVEL_4; + result_signal_strength = ((double) rssi_level)/WIFI_MANAGER_RSSI_LEVEL_4; } } //building result object