快捷搜索:  汽车  科技

传感器数据解析(传感器数据采集与实时展示解决方案)

传感器数据解析(传感器数据采集与实时展示解决方案)进程3-VSDT数据展示程序:可设置当前展示的点数,并实时展示数据曲线。VSDT-数据解析程序进程1-VSDT数据接收程序:1)可灵活、自主设置帧格式、数据体的数据格式,无需修改代码,对帧进行解析;2)设置接收选项,定时、定点、或无限接收模式。VSDT-数据接收程序进程2-VSDT数据解析程序:可对解析后的数据设置变换公式,得到实际的数据值。

对于数据传输量大的应用场景,如要求传感器有较高的采集与上送速率,通常来说,上位机实时接收、解析是可以做到的,但是一旦涉及到同步存储或同步的曲线展示,实际上就肯定力不从心了。

以曲线展示为例,无法做到数据实时刷新、展示的主要原因在于数据接收、解析、展示(通常展示之前需要进行数据整理,根据框架的要求治理成所需数组类型)几个模块既是相互依赖的,又都是cpu密集型的,即使在一个进程内分别使用独立线程处理数据接收、解析、展示,仍然起不到很好的实时展示效果,界面卡顿严重。

我使用Qt框架的多线程在Windows系统中进行测试,效果非常不理想,使用"TCP&UDP测试工具"模拟数据发送(注意,这儿还只是手动发送,只不过速度较快而已,还远远达不到传感器的数据实时上送速度),刚开始曲线可以刷新,2-3秒钟之后,曲线就停止刷新,只有当数据发送结束之后,过一段较长时间之后,数据才一次性全部刷新到曲线,体验非常不好。

所以我想使用多进程的方式来试试,可是数据同步中间件采用什么比较好呢,考虑了时序数据库、MQ、Redis等,最后选择了RabbitMQ。

进程1-VSDT数据接收程序:1)可灵活、自主设置帧格式、数据体的数据格式,无需修改代码,对帧进行解析;2)设置接收选项,定时、定点、或无限接收模式。

传感器数据解析(传感器数据采集与实时展示解决方案)(1)

VSDT-数据接收程序

进程2-VSDT数据解析程序:可对解析后的数据设置变换公式,得到实际的数据值。

传感器数据解析(传感器数据采集与实时展示解决方案)(2)

VSDT-数据解析程序

进程3-VSDT数据展示程序:可设置当前展示的点数,并实时展示数据曲线。

传感器数据解析(传感器数据采集与实时展示解决方案)(3)

VSDT-数据展示程序

猜您喜欢: