ESP-CSI

2024-05-01 17:12
文章标签 esp csi

本文主要是介绍ESP-CSI,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在frameworks\esp-idf-v5.2.1\components\esp_wifi\include\esp_wifi_types.h有关于csi的结构体数据:

typedef struct {wifi_pkt_rx_ctrl_t rx_ctrl;/**< 接收到的 CSI 数据的无线数据包元数据头 */uint8_t mac[6];            /**< CSI 数据的源 MAC 地址 */uint8_t dmac[6];           /**< CSI 数据的目的 MAC 地址 */bool first_word_invalid;   /**< CSI 数据的前四个字节是否无效,true 表示前四个字节由于硬件限制而无效 */int8_t *buf;               /**< CSI 数据的有效缓冲区 */uint16_t len;              /**< CSI 数据的有效长度 */uint8_t *hdr;              /**< Wi-Fi 数据包的头部 */uint8_t *payload;          /**< Wi-Fi 数据包的有效载荷 */uint16_t payload_len;      /**< Wi-Fi 数据包的有效载荷长度 */
} wifi_csi_info_t;

其中wifi_pkt_rx_ctrl_t 内容为:

typedef struct {signed rssi:8;                /**< 接收到的数据包的接收信号强度指示(RSSI),单位:dBm */unsigned rate:5;              /**< 数据包的物理层速率编码。仅适用于非 HT(11bg) 数据包 */unsigned :1;                  /**< 保留位 */unsigned sig_mode:2;          /**< 接收到的数据包的协议类型,0: 非 HT(11bg) 数据包;1: HT(11n) 数据包;3: VHT(11ac) 数据包 */unsigned :16;                 /**< 保留位 */unsigned mcs:7;               /**< 调制编码方案。如果是 HT(11n) 数据包,表示调制方式,范围从 0 到 76(MSC0 ~ MCS76) */unsigned cwb:1;               /**< 数据包的信道带宽。0: 20MHz; 1: 40MHz */unsigned :16;                 /**< 保留位 */unsigned smoothing:1;         /**< 设置为 1 表示推荐使用信道估计平滑。设置为 0 表示仅推荐使用每个载波独立的(非平滑的)信道估计。 */unsigned not_sounding:1;      /**< 设置为 0 表示 PPDU 是 sounding PPDU。设置为 1 表示 PPDU 不是 sounding PPDU。sounding PPDU 用于接收方进行信道估计 */unsigned :1;                  /**< 保留位 */unsigned aggregation:1;       /**< 数据包聚合。0: MPDU 数据包; 1: AMPDU 数据包 */unsigned stbc:2;              /**< 空时分组编码(STBC)。0: 非 STBC 数据包; 1: STBC 数据包 */unsigned fec_coding:1;        /**< 前向错误纠正(FEC)。对于是 LDPC 的 11n 数据包设置标志 */unsigned sgi:1;               /**< 短导频间隔(SGI)。0: 长 GI; 1: 短 GI */
#if CONFIG_IDF_TARGET_ESP32signed noise_floor:8;         /**< 无线频率模块(RF)的噪声水平。单位:dBm */
#elif CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C2unsigned :8;                  /**< 保留位 */
#endifunsigned ampdu_cnt:8;         /**< 在 AMPDU 中聚合的子帧数 */unsigned channel:4;           /**< 接收到该数据包的主要信道 */unsigned secondary_channel:4; /**< 接收到该数据包的次要信道。0: 无; 1: 上方; 2: 下方 */unsigned :8;                  /**< 保留位 */unsigned timestamp:32;        /**< 时间戳。接收到该数据包时的本地时间。仅当未启用调制解调器睡眠或轻度睡眠时才精确。单位:微秒 */unsigned :32;                 /**< 保留位 */
#if CONFIG_IDF_TARGET_ESP32S2unsigned :32;                 /**< 保留位 */
#elif CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C2signed noise_floor:8;         /**< 无线频率模块(RF)的噪声水平。单位:dBm */unsigned :24;                 /**< 保留位 */unsigned :32;                 /**< 保留位 */
#endifunsigned :31;                 /**< 保留位 */unsigned ant:1;               /**< 接收到该数据包的天线编号。0: Wi-Fi 天线 0; 1: Wi-Fi 天线 1 */
#if CONFIG_IDF_TARGET_ESP32S2signed noise_floor:8;         /**< 无线频率模块(RF)的噪声水平。单位:dBm */unsigned :24;                 /**< 保留位 */
#elif CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C2unsigned :32;                 /**< 保留位 */unsigned :32;                 /**< 保留位 */
#endifunsigned sig_len:12;          /**< 数据包长度,包括帧校验序列(FCS) */unsigned :12;                 /**< 保留位 */unsigned rx_state:8;          /**< 数据包的状态。0: 无错误; 其他: 不公开的错误号 */
} wifi_pkt_rx_ctrl_t;
#endif

这篇关于ESP-CSI的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/952231

相关文章

乐鑫ESP-HMI方案人机交互,设备彩屏显示新体验,启明云端乐鑫代理商

在数字化浪潮的推动下,人机交互的方式正在经历一场深刻的变革。用户对于智能设备的需求不再局限于基本的功能操作,而是期望能够通过更加直观、自然的方式与设备进行交流。 这种需求催生了一系列创新的芯片方案,它们通过集成高性能的计算核心和丰富的外设接口,为智能设备赋予了新的生命。这些芯片不仅能够处理复杂的数据和算法,还能够通过触摸、语音甚至视觉识别来响应用户的指令。 在数字化时代,用户体验成为了产品设计

【ESP-IDF FreeRTOS】信号量

下一个内容,信号量。 先包含头文件。 #include "freertos/semphr.h" 我们通过队列可以进行任务间的数据传递,也可以通过队列来控制任务间的同步。如果我只需要控制任务而不需要传递数据,那么我们完全可以用信号量来代替队列。 简单介绍一下信号量,它约等于是没有容量的队列,或者把它当成是一个计数器。我们对信号量的操作有加一和减一。 如果信号量当前的值为0并且我需要进行减一

esp和ebp详解

一.概念分析 经常看到下面这两句: pushl %ebp movl %esp,%ebp esp是堆栈指针  ebp是基址指针  那两条指令的意思是 将栈顶指向 ebp 的地址  —————————————————————  以下摘自网上一篇文章:  push    ebp             ;ebp入栈  mov     ebp, esp        ;因为esp是

ESP32-C3在MQTT访问时出现“Last error code reported from esp-tls: 0x8001”和问题的分析(3)

接前一篇文章:ESP32-C3在MQTT访问时出现“Last error code reported from esp-tls: 0x8001”和问题的分析(2) 上一回讲解了所遇问题log中的“esp-tls: couldn't get hostname for :iot-emqx-pre.nanshe-tech.com: getaddrinfo() returns 202, addrin

37集【重要】编译ESP-RTC工程并运行在01-RTC开发板中

37集【重要】编译ESP-RTC工程并运行在01-RTC开发板中 开发板样子这样的: 还有配套的外壳: 开发板介绍文档如下,有需要的可以联系三哥,三哥介绍这位大拿给你: https://www.kdocs.cn/l/cqAyZ0T3Q06Y 我们把d:\Espressif\esp-adf\examples\protocols\esp-rtc 目录copy到工程目录中:D:\workspa

智能儿童对讲机语音交互,乐鑫ESP-RTC音视频通信,ESP32无线语音方案

儿童对讲机一种专为孩子们设计的通讯设备,可以让父母与孩子之间进行双向通讯,增强亲子关系,增强孩子的可玩性。 儿童对讲机近几年发展的比较快,通过无线WiFi及蓝牙通信技术,可以实现远程控制和语音交互功能,为用户带来更加智能和便捷的操控体验。 六一儿童节麦麦对讲机爆火了,包括“薯条对酱机”以及“麦乐鸡对酱机”,这一儿童玩具上线即秒光,众多的消费者一齐涌入一度导致其平台的点餐系统崩溃。 在整个

ESP Friends 技术沙龙报名开启|带您掌握高效 GUI 开发

乐鑫 ESP32 系列 SoC 凭借其功能多样、高性价比、封装友好、资源丰富等优势,已成为全球开发者在需要屏幕显示的泛 IoT 应用里作为项目开发的首选平台。 乐鑫信息科技 (688018.SH) 即将举办 ESP Friends 线下技术沙龙。我们将带您深入探索 ESP32-C2 在小尺寸 LCD (0.96" ~ 1.28") 应用上的开发技巧,教您如何巧妙利用其有限的内存资源。同时,我们还

MQTT入门(基于ESP-IDF)

主要参考资料: ESP8266开发之旅 阿里云物联网平台篇: https://blog.csdn.net/dpjcn1990/article/details/104544175 阿里云物联网官方文档: https://help.aliyun.com/zh/iot/ ESP32基础应用之ESP32与阿里云物联网平台实现数据互传(MQTT协议): https://blog.csdn.net/qq_4

CSI 插件如何注册到 kubelet 的

文章目录 一、CSI Driver 如何注册到 kubelet 的1、启动 CSI Node Server2、启动 Node Driver Registrar3、Node Driver Registrar 获取 CSI Plugin 信息4、Kubelet 发现 Node Driver Registrar5、Kubelet 获取 Node Server 信息6、更新 Node 和 CSINo

ESP-WHO C++程序分析基础(七)

以按键部分的程序做为分析基础 先看app_button.hpp文件,文件的路径如下 examples/esp32-s3-eye/main/include/app_button.hpp // AppButton 类,继承自 Subject 类,表示应用程序按钮 首先是先定义了一个 appbutton的按键类,这个类是继承  subject类 这个基类在这个文件中进行了定义 examp