You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by xi...@apache.org on 2020/11/11 03:37:36 UTC

[incubator-nuttx-apps] branch master updated: wapi/wireless: add get sensitivity support

This is an automated email from the ASF dual-hosted git repository.

xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx-apps.git


The following commit(s) were added to refs/heads/master by this push:
     new 937b67b  wapi/wireless: add get sensitivity support
937b67b is described below

commit 937b67bfa0da5100a537b21f57425ee5b2ac9f31
Author: chao.an <an...@xiaomi.com>
AuthorDate: Mon Nov 9 17:00:12 2020 +0800

    wapi/wireless: add get sensitivity support
    
    Change-Id: I9906810466edaad59edf3d63b534959541609aab
    Signed-off-by: chao.an <an...@xiaomi.com>
---
 include/wireless/wapi.h      | 11 +++++++++++
 wireless/wapi/src/wapi.c     |  9 +++++++++
 wireless/wapi/src/wireless.c | 33 +++++++++++++++++++++++++++++++++
 3 files changed, 53 insertions(+)

diff --git a/include/wireless/wapi.h b/include/wireless/wapi.h
index 4a851fa..8c3df1a 100644
--- a/include/wireless/wapi.h
+++ b/include/wireless/wapi.h
@@ -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
diff --git a/wireless/wapi/src/wapi.c b/wireless/wapi/src/wapi.c
index 5417a80..840a6f7 100644
--- a/wireless/wapi/src/wapi.c
+++ b/wireless/wapi/src/wapi.c
@@ -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;
 }
 
diff --git a/wireless/wapi/src/wireless.c b/wireless/wapi/src/wireless.c
index b2f00b2..9ddec6d 100644
--- a/wireless/wapi/src/wireless.c
+++ b/wireless/wapi/src/wireless.c
@@ -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;
+}
+