Change signal level policy 74/190674/2 accepted/tizen_5.0_unified accepted/tizen/5.0/unified/20181102.013723 accepted/tizen/unified/20181010.061702 submit/tizen/20181004.140159 submit/tizen/20181005.071221 submit/tizen_5.0/20181101.000002
authorJaehyun Kim <jeik01.kim@samsung.com>
Thu, 4 Oct 2018 13:09:26 +0000 (22:09 +0900)
committerJaehyun Kim <jeik01.kim@samsung.com>
Thu, 4 Oct 2018 13:48:54 +0000 (22:48 +0900)
Change-Id: Icd29346d4be99119eeaf01fbe529d6f4522f5db9
Signed-off-by: Jaehyun Kim <jeik01.kim@samsung.com>
src/wifi_ap.c

index dcdaebe..233469e 100755 (executable)
@@ -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__;