完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
本帖最后由 sek300c 于 2014-5-28 22:42 编辑
1.功能是实现从UDP接收10ms一包的数据帧,每帧几百个字节,解析成一系列浮点数后存TxT文件,并且在用户界面实时显示波形。 2.采用了生产者-消费者结构,生产者进行UDP数据读取,消费者解析、存储、显示 现在的问题是: 由于数据浮点运算很多,数据帧频率也很高,每秒钟需要在消费者循环中刷新100次程序界面,会导致数据丢失,经测试只要不刷新界面就不会丢。 尝试过采用次级消费者结构,即一级消费者解析后将数据写入二级消费者循环进行显示,同样丢数 现在想能否把每次解析完毕的数据(假设每次解析到20个浮点数),写入一个大数组(比如2000个元素的数组), 写满100次(也就是1秒)刷新一下程序界面, 可是不知道怎么实现 大家帮忙想想办法, 非常感谢! |
|
相关推荐
2个回答
|
|
还是学生吧!
你可以这么做: 1. 后面板数据接收及运算处理用一个while循环框, 2. 前面板数据刷新使用一个while循环框; 3. 1号与2号while循环可以使用消息队列的形式传递数据 即1号while循环使用入队列操作,2号while循环使用出队列操作即可 这样前面板的刷新对后面板程序运行是没有影响的; 消息队列控件路径: 后面板/编程/同步/队列操作 |
|
|
|
我说的采用次级消费者结构就是你说的这个意思, 整个程序有三个循环 第一循环用来接收UDP数据,通过消息队列传递给第二循环 第二循环后台处理数据,并写入文件,同时将处理后的数据通过另外的消息队列传递给第三循环 第三循环用来显示数据 但是这样仍然会丢失数据,在写入的文本文件中查看存入的数据帧号发现有丢失 将数据显示刷新频率降低就不丢数了 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
用udl里的字符串信息在局域网内其他电脑连接sql数据库为什么为出现连接失败拒绝访问?
1721 浏览 2 评论
为什么同一个队列引用的全局变量,运行在两个子vi中发现队列数据丢失了
1320 浏览 0 评论
1537 浏览 0 评论
关于labview2024版本的lvanlys.dll出错的问题
3074 浏览 3 评论
1462 浏览 2 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 23:02 , Processed in 0.400608 second(s), Total 48, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号