wapi/wireless: add get sensitivity support
Change-Id: I9906810466edaad59edf3d63b534959541609aab Signed-off-by: chao.an <anchao@xiaomi.com>
This commit is contained in:
parent
3959f7535e
commit
937b67bfa0
@ -699,6 +699,17 @@ int wapi_scan_coll(int sock, FAR const char *ifname,
|
||||
|
||||
void wapi_scan_coll_free(FAR struct wapi_list_s *aps);
|
||||
|
||||
/****************************************************************************
|
||||
* Name: wapi_get_sensitivity
|
||||
*
|
||||
* Description:
|
||||
* Get the wlan Sensitivity
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int wapi_get_sensitivity(int sock, FAR const char *ifname,
|
||||
FAR int *sense);
|
||||
|
||||
#ifdef CONFIG_WIRELESS_WAPI_INITCONF
|
||||
/****************************************************************************
|
||||
* Name: wapi_load_config
|
||||
|
@ -253,6 +253,7 @@ static int wapi_show_cmd(int sock, int argc, FAR char **argv)
|
||||
int bitrate;
|
||||
int txpower;
|
||||
double freq;
|
||||
int sense;
|
||||
int chan;
|
||||
int ret;
|
||||
|
||||
@ -385,6 +386,14 @@ static int wapi_show_cmd(int sock, int argc, FAR char **argv)
|
||||
printf(" Flag: %s\n", g_wapi_txpower_flags[txpower_flag]);
|
||||
}
|
||||
|
||||
/* Get sensitivity */
|
||||
|
||||
ret = wapi_get_sensitivity(sock, ifname, &sense);
|
||||
if (ret == 0)
|
||||
{
|
||||
printf(" Sense: %d\n", sense);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -1392,3 +1392,36 @@ void wapi_scan_coll_free(FAR struct wapi_list_s *list)
|
||||
info = temp;
|
||||
}
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Name: wapi_get_sensitivity
|
||||
*
|
||||
* Description:
|
||||
* Get the wlan Sensitivity
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int wapi_get_sensitivity(int sock, FAR const char *ifname, FAR int *sense)
|
||||
{
|
||||
struct iwreq wrq =
|
||||
{
|
||||
};
|
||||
|
||||
int ret;
|
||||
|
||||
strncpy(wrq.ifr_name, ifname, IFNAMSIZ);
|
||||
ret = ioctl(sock, SIOCGIWSENS, (unsigned long)((uintptr_t)&wrq));
|
||||
if (ret < 0)
|
||||
{
|
||||
int errcode = errno;
|
||||
WAPI_IOCTL_STRERROR(SIOCGIWSENS, errcode);
|
||||
ret = -errcode;
|
||||
}
|
||||
else
|
||||
{
|
||||
*sense = -wrq.u.sens.value;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user