Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

二次开发指导 (AEGHB-859) #212

Open
3 tasks done
JYT0303 opened this issue Oct 31, 2024 · 1 comment
Open
3 tasks done

二次开发指导 (AEGHB-859) #212

JYT0303 opened this issue Oct 31, 2024 · 1 comment

Comments

@JYT0303
Copy link

JYT0303 commented Oct 31, 2024

Checklist

  • Checked the issue tracker for similar issues to ensure this is not a duplicate.
  • Provided a clear description of your suggestion.
  • Included any relevant context or examples.

Issue or Suggestion Description

您好,我想询问一下关于二次开发的问题,初学者,不太清楚该怎么学习。
我需要实现的功能是csi双向测量以便复现论文。我需要在发起端实现请求,接受端进行csi测量,然后接收端将csi测量的结果发送回发起端,发起端在接受到数据后同时测量csi,然后将接收端的data数据段放置在发起端data数据段后面。如果有可能的话保存为csi格式。
我该如何一步一步实现?希望您给予指导,研三赶论文毕业用

@github-actions github-actions bot changed the title 二次开发指导 二次开发指导 (AEGHB-859) Oct 31, 2024
@NingYuxiang
Copy link

我提供一个思路,仅供参考。基于csi_sendcsi_recv例程进行修改

设计思路:

1. 功能分工

csi_send(发起端):

  • 发送 CSI 请求信号。
  • 接收来自 csi_recv 的 CSI 数据。
  • 同时在接收过程中捕获本地 CSI 数据。
  • 拼接两端的 CSI 数据。

csi_recv(接收端):

  • 接收 CSI 请求信号。
  • 捕获本地 CSI 数据。
  • 将 CSI 数据发送回 csi_send

2. 数据结构

为每一段 CSI 数据定义一个数据结构,包含必要的元信息,比如时间戳、子载波数等,确保可以拼接并还原成目标格式。

typedef struct {
    uint64_t timestamp;  // 时间戳
    uint16_t len;        // CSI 数据长度
    uint8_t csi_data[128]; // 假设 128 个子载波数据,大小根据实际情况调整
} csi_packet_t;

实现步骤

1: csi_send实现

  • 发送触发请求:在csi_send中已有实现
  • 接收 csi_recv 的回传数据:可基于ESP-NOW 实现两个设备间无连接的数据传输功能,可参考espnow例程
  • 测量本地 CSI:参考csi_recv例程的测量方式进行修改,ESP_NOW的回传数据本身就带有CSI,可直接测量得到
  • 拼接并保存数据:可以使用UART、USB或SD卡等方式导出和保存数据

2: 修改 csi_recv

  • 接收CSI数据。在csi_recv中已有实现
  • 回传数据给 csi_send:使用ESP-NOW 实现

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants