wapi/wireless: add get sensitivity support

Change-Id: I9906810466edaad59edf3d63b534959541609aab
Signed-off-by: chao.an <anchao@xiaomi.com>
This commit is contained in:
chao.an 2020-11-09 17:00:12 +08:00 committed by Xiang Xiao
parent 3959f7535e
commit 937b67bfa0
3 changed files with 53 additions and 0 deletions

View File

@ -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

View File

@ -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;
}

View File

@ -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;
}