From: Jaehyun Kim Date: Thu, 4 Oct 2018 13:09:26 +0000 (+0900) Subject: Change signal level policy X-Git-Tag: submit/tizen/20181004.140159^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fheads%2Faccepted%2Ftizen_5.0_unified;p=platform%2Fcore%2Fapi%2Fwifi-manager.git Change signal level policy Change-Id: Icd29346d4be99119eeaf01fbe529d6f4522f5db9 Signed-off-by: Jaehyun Kim --- diff --git a/src/wifi_ap.c b/src/wifi_ap.c index dcdaebe..233469e 100755 --- a/src/wifi_ap.c +++ b/src/wifi_ap.c @@ -153,6 +153,59 @@ static in_addr_t __ap_convert_prefix_len_to_netmask(int prefix_len) return (prefix_len ? (in_addr_t) 0xFFFFFFFFu >> (32 - prefix_len) : 0); } +static wifi_manager_rssi_level_e __ap_convert_dbm_to_level_24(int rssi_dbm) +{ + wifi_manager_rssi_level_e rssi_level = WIFI_MANAGER_RSSI_LEVEL_0; + + /* Wi-Fi Signal Strength Display (for 2.4G (dB)) + * + * Excellent : ~ -63 + * Good : -64 ~ -74 + * Weak : -75 ~ -82 + * Very weak : -83 ~ -88 + * No signal : -89 ~ + */ + + if (rssi_dbm >= -63) + rssi_level = WIFI_MANAGER_RSSI_LEVEL_4; + else if (rssi_dbm >= -74) + rssi_level = WIFI_MANAGER_RSSI_LEVEL_3; + else if (rssi_dbm >= -82) + rssi_level = WIFI_MANAGER_RSSI_LEVEL_2; + else if (rssi_dbm >= -88) + rssi_level = WIFI_MANAGER_RSSI_LEVEL_1; + else + rssi_level = WIFI_MANAGER_RSSI_LEVEL_0; + + return rssi_level; +} + +static wifi_manager_rssi_level_e __ap_convert_dbm_to_level_50(int rssi_dbm) +{ + wifi_manager_rssi_level_e rssi_level = WIFI_MANAGER_RSSI_LEVEL_0; + + /* Wi-Fi Signal Strength Display (for 5G (dB)) + * + * Excellent : ~ -72 + * Good : -73 ~ -78 + * Weak : -79 ~ -83 + * Very weak : -84 ~ -88 + * No signal : -89 ~ + */ + + if (rssi_dbm >= -72) + rssi_level = WIFI_MANAGER_RSSI_LEVEL_4; + else if (rssi_dbm >= -78) + rssi_level = WIFI_MANAGER_RSSI_LEVEL_3; + else if (rssi_dbm >= -83) + rssi_level = WIFI_MANAGER_RSSI_LEVEL_2; + else if (rssi_dbm >= -88) + rssi_level = WIFI_MANAGER_RSSI_LEVEL_1; + else + rssi_level = WIFI_MANAGER_RSSI_LEVEL_0; + + return rssi_level; +} static bool _wifi_set_profile_name_to_ap(net_profile_info_s *ap_info) { @@ -505,25 +558,10 @@ EXPORT_API int wifi_manager_ap_get_rssi_level(wifi_manager_ap_h ap, wifi_manager net_profile_info_s *profile_info = ap; rssi_dbm = (int)(profile_info->Strength - 120); - /* Wi-Fi Signal Strength Display - * - * No signal : 0 - * Excellent : -63 ~ - * Good : -74 ~ -64 - * Weak : -82 ~ -75 - * Very weak : -83 ~ - */ - - if (rssi_dbm == 0) - *rssi_level = WIFI_MANAGER_RSSI_LEVEL_0; - else if (rssi_dbm >= -63) - *rssi_level = WIFI_MANAGER_RSSI_LEVEL_4; - else if (rssi_dbm >= -74) - *rssi_level = WIFI_MANAGER_RSSI_LEVEL_3; - else if (rssi_dbm >= -82) - *rssi_level = WIFI_MANAGER_RSSI_LEVEL_2; + if (profile_info->frequency > 4900) + *rssi_level = __ap_convert_dbm_to_level_50(rssi_dbm); else - *rssi_level = WIFI_MANAGER_RSSI_LEVEL_1; + *rssi_level = __ap_convert_dbm_to_level_24(rssi_dbm); __NETWORK_CAPI_FUNC_EXIT__;