From: Jakub Skowron Date: Tue, 30 Aug 2016 16:39:00 +0000 (+0200) Subject: [SystemInfo] Replace deprecated native wifi API with wifi-manager API X-Git-Tag: submit/tizen/20160907.005039~5^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=78ab25f63f094d4b623ebc3fdf3e46672e2551d6;p=platform%2Fcore%2Fapi%2Fwebapi-plugins.git [SystemInfo] Replace deprecated native wifi API with wifi-manager API Using wifi-manager.h instead of wifi.h Verification: TCT systeminfo tests 100% PASS Change-Id: I8a98da28b9bcffe151dac214d51cb56b04d6c4a4 Signed-off-by: Jakub Skowron --- diff --git a/packaging/webapi-plugins.spec b/packaging/webapi-plugins.spec index eb12889c..a9736698 100644 --- a/packaging/webapi-plugins.spec +++ b/packaging/webapi-plugins.spec @@ -359,7 +359,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 618754a3..ae9d39fb 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 e9272fee..c3704393 100644 --- a/src/systeminfo/systeminfo_manager.cc +++ b/src/systeminfo/systeminfo_manager.cc @@ -24,7 +24,7 @@ #include #include #include -#include +#include #include "common/converter.h" #include "common/logger.h" @@ -224,7 +224,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); @@ -460,7 +460,7 @@ 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), cpu_load_(0), last_cpu_load_(0), available_capacity_internal_(0), @@ -473,16 +473,16 @@ SysteminfoManager::SysteminfoManager(SysteminfoInstance* instance) connection_handle_(nullptr), async_op_(new AsynchronousOperation()) { LoggerD("Entered"); - int error = wifi_initialize(); - if (WIFI_ERROR_NONE != error) { + int error = wifi_manager_initialize(&this->wifi_manager_handle_); + if (WIFI_MANAGER_ERROR_NONE != error) { std::string log_msg = "Initialize failed: " + std::string(get_error_message(error)); LoggerE("%s", log_msg.c_str()); } else { - LoggerD("WIFI initialization succeed"); + LoggerD("WIFI Manager initialization succeed"); } - error = wifi_set_rssi_level_changed_cb(OnWifiLevelChangedCb, this); - if (WIFI_ERROR_NONE != error) { + error = wifi_manager_set_rssi_level_changed_cb(this->wifi_manager_handle_, 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()); @@ -514,7 +514,10 @@ SysteminfoManager::~SysteminfoManager() { connection_destroy(connection_handle_); } - wifi_deinitialize(); + auto error = wifi_manager_deinitialize(this->wifi_manager_handle_); + if (WIFI_MANAGER_ERROR_NONE != error) { + LoggerE( "wifi_manager_deinitialize failed: %s", get_error_message(error) ); + } } void SysteminfoManager::GetCapabilities(const picojson::value& args, picojson::object* out) { @@ -1369,12 +1372,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 c34dd4e2..69cdc0c9 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,8 @@ 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_handle_; 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 33b639dc..6acf54f0 100644 --- a/src/systeminfo/systeminfo_properties_manager.cc +++ b/src/systeminfo/systeminfo_properties_manager.cc @@ -22,6 +22,7 @@ #include #include #include +#include #include #include #include @@ -587,28 +588,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, + int error = wifi_manager_ap_get_ip_address(wifi_ap_handle, + WIFI_MANAGER_ADDRESS_FAMILY_IPV4, &ip_addr); - if (WIFI_ERROR_NONE != error) { + 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, + error = wifi_manager_ap_get_ip_address(wifi_ap_handle, + WIFI_MANAGER_ADDRESS_FAMILY_IPV6, &ip_addr); - if (WIFI_ERROR_NONE != error) { + 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))); @@ -655,69 +656,73 @@ static PlatformResult GetIpsFromProfile(connection_profile_h profile_handle, std PlatformResult SysteminfoPropertiesManager::ReportWifiNetwork(picojson::object* out) { LoggerD("Entered"); - bool result_status = false; std::string result_ssid; std::string result_ip_address; std::string result_ipv6_address; 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) { + // wifi_manager_initialize() must be called in each thread + wifi_manager_h wifi_manager_handle; + int error = wifi_manager_initialize(&wifi_manager_handle); + if (WIFI_MANAGER_ERROR_NONE != error) { std::string log_msg = "Initialize failed: " + std::string(get_error_message(error)); return LogAndCreateResult( ErrorCode::UNKNOWN_ERR, log_msg, - ("wifi_initialize error: %d (%s)", error, get_error_message(error))); - } else { - LoggerD("WIFI initialization succeed"); + ("wifi_manager_initialize error: %d (%s)", error, get_error_message(error))); } + LoggerD("WIFI initialization succeed"); SCOPE_EXIT { - wifi_deinitialize(); + auto error = wifi_manager_deinitialize(wifi_manager_handle); + if (WIFI_MANAGER_ERROR_NONE != error) { + LoggerE( "wifi_manager_deinitialize failed: %s", get_error_message(error) ); + } }; // check if wifi activated bool activated = false; - error = wifi_is_activated(&activated); - if (WIFI_ERROR_NONE != error) { + error = wifi_manager_is_activated(wifi_manager_handle, &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))); - } else { - LoggerD("WIFI activated check succeed"); } + LoggerD("WIFI activated check succeed"); - wifi_ap_h wifi_ap_handle = nullptr; + wifi_manager_ap_h wifi_ap_handle = nullptr; + bool result_status = false; if (activated) { LoggerD("Wifi is activated"); - error = wifi_get_connected_ap(&wifi_ap_handle); - if (WIFI_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) { - std::string log_msg = "Cannot get connected access point handle: " + - std::string(get_error_message(error)); + error = wifi_manager_get_connected_ap(wifi_manager_handle, &wifi_ap_handle); + switch (error) { + case WIFI_MANAGER_ERROR_NONE: + //if getting connected AP succeed, set status on true + result_status = true; + break; + case WIFI_MANAGER_ERROR_NO_CONNECTION: + LoggerD("No connection while wifi_manager_get_connected_ap: %s", get_error_message(error)); + // in case of no connection, ignore error and leave status as false + break; + default: + // other 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))); - } - } else { - //if getting connected AP succeed, set status on true - result_status = true; + ErrorCode::UNKNOWN_ERR, log_msg, + ("wifi_manager_get_connected_ap error: %d (%s)", error, get_error_message(error))); } } if (result_status) { - std::unique_ptr::type, int(*)(wifi_ap_h)> - wifi_ap_handle_ptr(wifi_ap_handle, &wifi_ap_destroy); - // automatically release the memory + 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_handle, &mac); + if (WIFI_MANAGER_ERROR_NONE == error && nullptr != mac) { SLoggerD("MAC address fetched: %s", mac); result_mac_address = mac; free(mac); @@ -725,12 +730,12 @@ 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( @@ -740,8 +745,8 @@ PlatformResult SysteminfoPropertiesManager::ReportWifiNetwork(picojson::object* //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 { @@ -751,30 +756,30 @@ PlatformResult SysteminfoPropertiesManager::ReportWifiNetwork(picojson::object* ("wifi_ap_get_essid error: %d (%s)", error, get_error_message(error))); } - //gathering ips + //gathering IPs PlatformResult ret = GetIpsWifi(wifi_ap_handle, &result_ip_address, &result_ipv6_address); if (ret.IsError()) { return ret; } //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