发 帖  
[问答] UDP读取数据缓冲区问题
2018-7-12 21:12:21  461 labview udp 缓冲区
收藏 0 收藏 推荐 0 推荐
分享
用单片机做下位机,labview做上位机,采用UDP的通讯协议。
如果用串口调试助手向下位机发送读取数据的指令,能够一次性返回所有数据包。但在labview程序中,UDO读取函数每次只能读取一个数据包,导致需要循环读取,但循环到一定次数后labview程序直接卡住了,导致数据包无法完全读完。
分都给了,求大神指点。
已退回5积分
2018-7-12 21:12:21   评论 邀请回答
10个回答
长度可以设置大一点,直接用数据通信——协议——UDP的VI读
2018-7-13 17:00:11 评论

举报

UDP是网络通信吧
和串口有撒关系
2018-7-13 21:37:40 评论

举报

Malan21 发表于 2018-7-13 17:00
长度可以设置大一点,直接用数据通信——协议——UDP的VI读

是使用的数据通信——协议——UDP的VI进行读取 ,但是数据量较大,需要执行该函数上千次,读到130+次的时候,程序就卡住了。长度是指什么长度呢?
2018-7-15 14:41:55 评论

举报

就是读取字节数的最大值。
捕获.PNG
2018-7-16 09:29:19 评论

举报

Malan21 发表于 2018-7-16 09:29
就是读取字节数的最大值。

这个好像没有影响,数据量大是数据包数目太大,单个包的数据量并不大
2018-7-16 16:04:38 评论

举报

wyq95361977 发表于 2018-7-13 21:37
UDP是网络通信吧
和串口有撒关系

用串口调试助手和labview上位机都可以向下位机发送读取数据的指令,通信协议是UDP
2018-7-16 16:06:38 评论

举报

gytzzbx 发表于 2018-7-16 16:04
这个好像没有影响,数据量大是数据包数目太大,单个包的数据量并不大

那可能是发送UDP包频率太快了,发送要加延时,同时接收也加延时
2018-7-16 16:35:26 评论

举报

Malan21 发表于 2018-7-16 16:35
那可能是发送UDP包频率太快了,发送要加延时,同时接收也加延时

可以通过增大缓冲区解决这个问题吗?
2018-7-16 16:45:08 评论

举报

Malan21 发表于 2018-7-16 16:35
那可能是发送UDP包频率太快了,发送要加延时,同时接收也加延时

加了延时之后,读数据包能读到3k+,但跟我一次实验数据估计产生1w+还有很大差距
2018-7-16 19:52:46 评论

举报

采用了比较蠢的办法,把UDP读取的数据存放在一个txt中,然后再从里面读取
2018-7-21 13:53:46 评论

举报

撰写答案

你正在撰写答案

如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。

高级模式
您需要登录后才可以回帖 登录 | 注册

提问题
关闭

站长推荐 上一条 /9 下一条

快速回复 返回顶部 返回列表