编辑整理:整理来源:百度知道,浏览量:47,时间:2022-11-24 20:21:01
传感器信号的数据采集分析讨论,传感器与数据收集,传感器信息采集技术
对于数据传输量大的应用场景,如要求传感器有较高的采集与上送速率,通常来说,上位机实时接收、解析是可以做到的,但是一旦涉及到同步存储或同步的曲线展示,实际上就肯定力不从心了。
以曲线展示为例,无法做到数据实时刷新、展示的主要原因在于数据接收、解析、展示(通常展示之前需要进行数据整理,根据框架的要求治理成所需数组类型)几个模块既是相互依赖的,又都是cpu密集型的,即使在一个进程内分别使用独立线程处理数据接收、解析、展示,仍然起不到很好的实时展示效果,界面卡顿严重。
我使用Qt框架的多线程在Windows系统中进行测试,效果非常不理想,使用"TCP&UDP测试工具"模拟数据发送(注意,这儿还只是手动发送,只不过速度较快而已,还远远达不到传感器的数据实时上送速度),刚开始曲线可以刷新,2-3秒钟之后,曲线就停止刷新,只有当数据发送结束之后,过一段较长时间之后,数据才一次性全部刷新到曲线,体验非常不好。
所以我想使用多进程的方式来试试,可是数据同步中间件采用什么比较好呢,考虑了时序数据库、MQ、Redis等,最后选择了RabbitMQ。
进程1-VSDT数据接收程序:1)可灵活、自主设置帧格式、数据体的数据格式,无需修改代码,对帧进行解析;2)设置接收选项,定时、定点、或无限接收模式。
VSDT-数据接收程序
进程2-VSDT数据解析程序:可对解析后的数据设置变换公式,得到实际的数据值。
VSDT-数据解析程序
进程3-VSDT数据展示程序:可设置当前展示的点数,并实时展示数据曲线。
VSDT-数据展示程序
视频加载中...