LabVIEW用户界面刷新太快影响数据接收

2019-07-18 06:39发布

本帖最后由 sek300c 于 2014-5-28 22:42 编辑

1.功能是实现从UDP接收10ms一包的数据帧,每帧几百个字节,解析成一系列浮点数后存TxT文件,并且在用户界面实时显示波形。
2.采用了生产者-消费者结构,生产者进行UDP数据读取,消费者解析、存储、显示
现在的问题是:
由于数据浮点运算很多,数据帧频率也很高,每秒钟需要在消费者循环中刷新100次程序界面,会导致数据丢失,经测试只要不刷新界面就不会丢。
尝试过采用次级消费者结构,即一级消费者解析后将数据写入二级消费者循环进行显示,同样丢数
现在想能否把每次解析完毕的数据(假设每次解析到20个浮点数),写入一个大数组(比如2000个元素的数组),
写满100次(也就是1秒)刷新一下程序界面,
可是不知道怎么实现
大家帮忙想想办法,
非常感谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
2条回答
sek300c
2019-07-18 10:44
tigehjp 发表于 2014-5-29 09:09
还是学生吧!

你可以这么做:

我说的采用次级消费者结构就是你说的这个意思,
整个程序有三个循环
第一循环用来接收UDP数据,通过消息队列传递给第二循环
第二循环后台处理数据,并写入文件,同时将处理后的数据通过另外的消息队列传递给第三循环
第三循环用来显示数据

但是这样仍然会丢失数据,在写入的文本文件中查看存入的数据帧号发现有丢失
将数据显示刷新频率降低就不丢数了

一周热门 更多>