如何在真正收到数据包的时刻进行操作而非利用接收回调函数

cqupt_jiang
Posts: 3
Joined: Thu Oct 20, 2022 3:12 am

如何在真正收到数据包的时刻进行操作而非利用接收回调函数

Postby cqupt_jiang » Fri Oct 21, 2022 2:03 am

我才用的开发板模组为ESP32系列的ESP-WROVER-KIT,IDF版本为master4.4.1
用两块开发板并采用了ESP_NOW协议收发数据包,在接收端注册接收回调函数wifi_csi_rx_cb,并在接收回调函数中读取结构体wifi_pkt_rx_ctrl_t中的timestamp值,请问这个时间戳是否是真实的收到数据包的系统时刻(官方技术文档说是收到包的时刻)?
由于我在csi的接收回调函数也加入了读取系统时间的代码,发现它总是比timestamp的值大,这证明了CSI回调函数是在接收到数据后延时一段时间才启用的,那我怎么才能让接收到包后立马通知我?或者说有没有一个标签值代表着接收是否完成,然后监听它的值就能判断是否接收到包从而进行其他操作?
另外,混杂模式下的回调函数wifi_promiscuous_rx_cb,我测试发现这个函数调用的时间比CSI回调函数的时间要早,且我在官网代码注释中发现混杂模式回调函数的说明是收到data后调用,而CSI回调函数说明是收到CSI data后调用,两者的区别在哪儿?这是否代表混杂模式回调函数启用的时刻和time_stamp一致?

Who is online

Users browsing this forum: No registered users and 101 guests