WiFi信号强度--SIGNAL_POLL
来源:互联网 发布:淘宝首饰英文店名 编辑:程序博客网 时间:2024/05/17 02:40
link
http://blog.csdn.net/myarrow/article/details/8958402
目录(?)[+]
1. 信号强度算法
WifiManager.java
- /** Anything worse than or equal to this will show 0 bars. */
- private static final int MIN_RSSI = -100;
- /** Anything better than or equal to this will show the max bars. */
- private static final int MAX_RSSI = -55;
- /**
- * Calculates the level of the signal. This should be used any time a signal
- * is being shown.
- *
- * @param rssi The power of the signal measured in RSSI.
- * @param numLevels The number of levels to consider in the calculated
- * level.
- * @return A level of the signal, given in the range of 0 to numLevels-1
- * (both inclusive).
- */
- public static int calculateSignalLevel(int rssi, int numLevels) {
- /* in general, numLevels is 4 */
- if (rssi <= MIN_RSSI) {
- return 0;
- } else if (rssi >= MAX_RSSI) {
- return numLevels - 1;
- } else {
- float inputRange = (MAX_RSSI - MIN_RSSI);
- float outputRange = (numLevels - 1);
- return (int)((float)(rssi - MIN_RSSI) * outputRange / inputRange);
- }
- }
2. WiFi Command流程
3. wpa_supplicant启动流程
4. WifiService启动流程
5. SIGNAL_POLL调用流程
- eloop_run->..
- wpa_supplicant_ctrl_iface_receive-> //接收并处理来自framework的command
- wpa_supplicant_ctrl_iface_process-> (SIGNAL_POLL)
- wpa_supplicant_signal_poll->
- wpa_drv_signal_poll (struct wpa_supplicant *wpa_s,struct wpa_signal_info *si)->
- wpa_driver_signal_poll (void *priv, struct wpa_signal_info *si)->
- wpa_driver_wext_driver_cmd(priv, RSSI_CMD, buf, sizeof(buf))或 //driver_cmd_wext.c
- wpa_driver_wext_driver_cmd(priv, LINKSPEED_CMD, buf, sizeof(buf))->
- struct iwreq iwr;
- iwr.u.data.pointer = buf;
- iwr.u.data.length = buf_len;
- ioctl(drv->ioctl_sock, SIOCSIWPRIV, &iwr);
- 在Kernel中对应函数:
- cfg80211_wext_setpriv (wext-compat.c)
- RSSI_CMD:
- cfg80211_wireless_stats (获取当前已连接AP的信号强度等信息)
- 对于上面的LINKSPEED_CMD,如果ioctl不成功,则调用ioctl(drv->ioctl_sock, SIOCGIWRATE, &wrq)
- 在Kernel中对应函数:
- cfg80211_wext_giwrate (获取当前已连接AP的发送速度)
- //每个AP对应的信息
- struct station_info {
- u32 filled;
- u32 connected_time;
- u32 inactive_time;
- u32 rx_bytes;
- u32 tx_bytes;
- u16 llid;
- u16 plid;
- u8 plink_state;
- s8 signal; //信号强度
- s8 signal_avg;
- struct rate_info txrate; //发送速度
- struct rate_info rxrate;
- u32 rx_packets;
- u32 tx_packets;
- u32 tx_retries;
- u32 tx_failed;
- u32 rx_dropped_misc;
- struct sta_bss_parameters bss_param;
- int generation;
- };
0 0
- WiFi信号强度--SIGNAL_POLL
- WiFi信号强度--SIGNAL_POLL
- WiFi信号强度--SIGNAL_POLL
- WiFi信号强度--SIGNAL_POLL
- WiFi信号强度--SIGNAL_POLL
- WiFi信号强度--SIGNAL_POLL
- WiFi信号强度--SIGNAL_POLL(wifi上层到下层的调用关系)
- Android Wi-Fi 信号强度--SIGNAL_POLL
- WIFI信号强度获取
- WiFi信号强度
- WIFI信号强度
- wifi信号强度
- android获取wifi信号强度
- Android获取WIFI信号强度
- android获取wifi信号强度
- Android 获取wifi信号强度
- android WIFI 信号强度检测
- iOS 获取wifi信号强度
- 记录博客地址---临时记录
- 驾校随笔01
- Word Ladder
- 用批处理遍历打印文件夹以及删除空文件夹
- SQL SERVER 2012 企业核心版激活码序列号
- WiFi信号强度--SIGNAL_POLL
- Spring-AOP,IOC,MVC,JMS,Hibernate
- 有关小波的几个术语及常见的小波基介绍
- 按钮类型为submit和button的区别
- Java集合总结
- 大数阶乘
- html5 css3表单
- DirectShow之filters例程详解前言
- 【第七章 查找技术知识导图】