完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我想构建一个应用程序来测量 WiFi 信道负载。这需要计算接收到的数据包的空中时间。我的做法是:
1. 将ESP32配置为混杂模式,开启接收各种数据包。 2. 在rx回调中,获取包速率和包长度。 3. 使用速率和长度,计算 tx 时间,并添加前导码:air_time = length * 8 / rate + 192 us。 例如,如果我以 1 Mbps 的速度接收到一个 1000 字节的数据包,则传输时间为: air_time = 1000 * 8 / 1e6 + 192e-6 = 8192 us。 我的问题是我不知道如何获得数据包速率。目前我检查wifi_pkt_rx_ctrl_t数据并执行以下操作: 1. 如果数据包是 802.11n (sig_mode == 1),获取带宽(20 或 40 MHz)、SGI 和 MCS,使用此表进行解码。 2. 如果数据包是 802.11bg (sig_mode == 0),则使用速率字段。 问题出在第 2 步。我在速率字段上遇到两个问题: 1. wifi_pkt_rx_ctrl_t::rate 是如何解释的?它是以 500 kbps 为单位的比特率吗(例如,速率 22 表示 11 Mbps)?或者我应该使用wifi_phy_rate_t枚举来解释它(例如速率 3 是 11 Mbps)? 2. 独立于我如何解释这个字段,我在我所做的捕获中有不一致的值。例如,我没有看到以 1 Mbps 传输的帧,应该有很多,因为当我使用运行 Wireshark 的 PC 进行捕获时,我看到的主要是信标帧。 |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
1932个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
36415 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
4811 浏览 1 评论
6100 浏览 1 评论
6813 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
4244 浏览 0 评论
641浏览 2评论
求助,S32G上Core M启动后如何让Core A在Flash指定位置加载uboot?
638浏览 2评论
ESP32-WROVER-IE + LAN8720以太网,GPIO0电压只有1.6v,无法正常进入spi flash boot模式如何解决?
639浏览 2评论
求分享适用于PN7160 Android的NFC工厂测试应用程序
725浏览 2评论
836浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-20 05:56 , Processed in 1.402621 second(s), Total 75, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号