Languages

Menu
Sites
Language
wifi_ap_get_rssi always returns -46 dBm

I'm trying to report WiFi network state in my Tizen 2.3 native mobile app, incl. signal strength. But somehow wifi_ap_get_rssi always returns -46 dBm on my Z1 test device.  Is this normal?

Would it be best to use wifi_set_rssi_level_changed_cb instead?  I'm not so keen on going down that path though, since that way I cannot report the actual RSSI value, but just the number of "WiFi bars" :(

Thanks,
Tamas

Responses

12 Replies
Tamas Miklos

I've done a bit more testing, and it seems the RSSI value is not always -46 dBm, but it's a fixed value that is stuck on a certain value of the original WiFi connection.  So if I kill my app and restart it, it is still showing the last value, and never changes.  But if I disable WiFi in Tizen, and enable it again, the RSSI value gets updated once. Then it stays at that value again, for as long as I don't restart the WiFi controller.

pius lee

use wifi_ap_refresh()

return value from wifi_ap_get_rssi() is never change until refresh it.

Tamas Miklos

Thank you, but calling wifi_ap_refresh() before wifi_ap_get_rssi() will not fix my issue, the RSSI value is still stuck.

daniel kim

Hi,

According to below link, it looks that that wifi value of your case gets updated when ip address is changed.  I observed same thing with Gear S.

   https://developer.tizen.org/forums/web-application-development/wifi_network-signalstrength-refresh-rate?tab=active

Regards

 

Tamas Miklos

Thank you, that topic leads me to hope that Samsung will fix this issue in Tizen 2.4.

Wyrzykowski

Hi,

I also encountered the issue of RSSI value not updating. It still persist in Tizen 2.4.

Does anybody have any update on this issue?

 

daniel kim

Hi,

I've checked it using web api with Z3 and it could update it correctly.

Regards

Wyrzykowski

Thanku you for reply. Which version and release of Tizen are you using?

My test scenario is:
I have an native app where I call wifi_ap_refresh() and wifi_ap_get_rssi() to get the rssi value.
I'm using Z3 device connected to a WiFi  access point.
I run my app to get first rssi value.
I move away from acces point to get weaker wifi signal.
I run my app again and get the same rssi value - value is not updated.
Are you testing similar scenario and rssi value is updated?
 

daniel kim

Hi,

I've checked it with web code inside of this link on Z3 and it works fine.

     https://developer.tizen.org/forums/web-application-development/wifi_network-signalstrength-refresh-rate?tab=active

I think that you can try it with this api as well.

      wifi_set_rssi_level_changed_cb()

Regards

Wyrzykowski

The api function wifi_set_rssi_level_changed_cb() is working as expected, but it returns only 4 rssi levels (coressponding to 4 bars of wifi signal strenght in status bar). I need more precise rssi reading, which i can get only by calling wifi_ap_get_rssi().

Could you check your Tizen version and release?

daniel kim

Hi,

In WiFi sample code of Tizen SDK 2.4 Rev3, I think that you can add this code to check wifi_ap_get_rssi(). Without calling wifi_ap_refresh(), I could get a signal value.

 

user.callbacks.c

/* Get some WI-FI conection information, and connect with entered access point */
static bool __wifi_found_ap_cb(wifi_ap_h ap, void *user_data)
{

....

    /* Gets the connection state */
    error_code = wifi_ap_get_connection_state(ap, &state);
    if (error_code != WIFI_ERROR_NONE) {
        PRINT_MSG("[__wifi_found_ap_cb] Failed to get state.");
        dlog_print(DLOG_DEBUG, LOG_TAG, "Failed to get state.");
        return false;
    }

    erro= wifi_ap_get_rssi(ap, &rssi);
    dlog_print(DLOG_DEBUG, LOG_TAG, "AP name : %s, state : %s,  rssi %d erro %d", ap_name, print_state(state), rssi, erro);
    PRINT_MSG(" - %s, state : %s, rssi : %d ", ap_name, print_state(state), rssi);

...

Regards

hyunuk tak

Hi,

you can get the value of rssi if you use the API of wifi_ap_get_rssi.

but it is only your local handle's value which is using parameter of the api(wifi_ap_h ap).

so if you wanna get the current access point informaion's value,

you should call the api of wifi_ap_refresh that will update ap handle's information before wifi_ap_get_rssi is called.

Regards.