完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我正在做一个artnet节点,
它收到几个 UDP 广播数据包,工作正常,但是: 其中一些必须使用,其中一些必须丢弃, mi问题是:所有传入的数据包都出现在带有IPD命令的串行端口上, 并且我需要丢弃在ESP完成之前不需要的数据包,以便通过串行端口发送它以接收下一个数据包, 如果没有,我必须按顺序读取所有传入的数据包,需要的和不需要的, 而且波特率不足,主机处理器开销大, 我能否在 ESP 结束之前通过串行端口停止传入的 UDP 数据包的传输以解析下一个 UDP 数据包? |
|
相关推荐
1个回答
|
|
是的,您可以在ESP结束之前通过串行端口停止传入的UDP数据包的传输以解析下一个UDP数据包。以下是您可以遵循的步骤:
1. **设置UDP服务器**:首先,您需要在ESP上设置一个UDP服务器,以便接收广播数据包。您可以使用ESP的`WiFiUdp`库来实现这一点。 2. **接收数据包**:当ESP接收到一个UDP数据包时,您可以检查数据包的内容,以确定是否需要该数据包。这可以通过分析数据包的特定字段或数据包的特定模式来实现。 3. **丢弃不需要的数据包**:如果数据包不需要,您可以简单地忽略它,不将其发送到串行端口。这样,您可以节省串行端口的带宽,并减少主机处理器的开销。 4. **发送需要的数据包**:如果数据包需要,您可以将其发送到串行端口。在发送数据包之前,您可以使用串行端口的`write()`函数来发送一个特定的命令,例如"IPD",以指示主机处理器即将接收数据。 5. **处理下一个数据包**:在发送完需要的数据包后,您可以立即开始处理下一个UDP数据包。这样,您可以在ESP结束之前停止传入的UDP数据包的传输,从而提高系统的性能。 6. **优化性能**:为了进一步提高性能,您可以考虑使用中断驱动的UDP接收方法,而不是轮询方法。这样,ESP可以在接收到新数据包时立即处理它,而不需要等待轮询周期。 7. **测试和调试**:在实现上述步骤后,您需要对系统进行测试和调试,以确保它按预期工作。您可能需要调整某些参数或优化代码以获得最佳性能。 通过遵循这些步骤,您应该能够在ESP结束之前通过串行端口停止传入的UDP数据包的传输以解析下一个UDP数据包。这将有助于减少串行端口的带宽需求,降低主机处理器的开销,并提高系统的整体性能。 |
|
|
|
只有小组成员才能发言,加入小组>>
545浏览 6评论
457浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
437浏览 5评论
441浏览 4评论
411浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-21 17:41 , Processed in 0.669915 second(s), Total 48, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号