微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > Qt跨平台数字化压力测量分析监控系统的设计与实现

Qt跨平台数字化压力测量分析监控系统的设计与实现

时间:07-06 来源:互联网 点击:

摘要:利用Qt提供的C++应用程序开发框架,以单片机技术、数据库技术为基础,结合学校原有的测量仪器设计了一套包括计算机分析、储存数据的测量监控系统。使用操作简单,人机界面人性化,错误机制的反馈信息能帮助操作者及时处理错误操作,同时单组数据存储帮助学生更好的记录自己数据,为学生提供了一个生动有趣全面的实验平台。
关键词:C++;Qt;数据库;单片机;串行通信

在应用物理学科的“数字化压力测量”实验装置中,使用了模拟电路,数字电路,传感器与单片机等学科技术知识。为了完成数据采集与分析,单靠单片机技术所构成的硬件系统架构,虽然可以做到实时的监控,但不利于数据处理的深化与更加深入详细分析的表达,数据的记录也会带来误差,为了解决这些问题,让学生能更好的领略到数字化时代的知识,在完成数字化压力测量检测仪的基础上,提出本课题的设计与实现。
PC机具有强大数据处理,图像显示以及实时监控的能力,利用PC机的这些特点,同时编写友好的应用程序来实现数据的采集与分析,具有特殊意义——能够提升整套测试系统的处理能力的上位机得以呈现。
Qt提供的C++应用程序开发框架,可以轻松实现“一次编写,随处编译”的跨平台解决方案,编写的应用程序能完美运行于从windows 98到windows 7,从Mac OSX到Linux,从Solaris,HP-UX到其他基于X11的众多Unix平台上。
这让编写的应用程序可以运行在不同的系统,很大程度上方便移植。

1 总体架构设计
软件整体架构包括完善的菜单栏、启动画面,工具栏,状态栏和应用程序主界面。软件架构如图1所示。

由启动画面进入程序主应用程序,主应用程序初始化界面提供一些必要的操作说明,单击清除按钮将会清除说明,然后进入具体应用程序配置,配置完成一些工具按键进入使能状态同时另一些按键进入禁止使用状态。
软件保留一个按键作为切换测量与监控模式,具体的模式由单片机程序决定,默认为测量模式。
Qt是由C++体系实现,采用先进的信号槽机制,每一个类对应一个功能,about.cpp中的about类提供软件版本,作者和日期等信息,dis play.cpp中的Clock类提供数据回归分析曲线拟合,fader.cpp中FaderWidget类提供对整体程序弹出窗口中淡入淡出效果,mainwindow.cpp中的MainWindow类提供应用程序主体窗口,win_qextserialport.cpp提供的类用于串口配置底层驱动文件。

2 界面布局设计
2.1 菜单栏、工具栏以及状态栏的实现
菜单可以让用户浏览应用程序并且可以学会如何处理一些新的事情;上下文菜单和工具栏则提供了对那些常使用的功能进行快速访问的方法;状态栏用于显示状态提示和其他一些临时消息。
在Q1中实现这3个子窗口是相通的,原理一样,实现手法一样,只是对用户而言看上去不一样。Qt里面有一个类,叫做QAction,QAction保存有关于这个动作,也就是action的信息,神奇的是,QAction能够根据添加的位置来改变自己的样子,如果添加到菜单中,它就会显示成一个菜单项;如果添加到工具栏,它就会显示成一个按钮,QAction有一个属性适用于状态栏显示setStatusTip。通过这个属性可以设置状态栏显示信息。
example=new QAction(tr(“”),this);
example->setIcon(QIcon(“”));example->setStatusTip(tr(“”));
最后给动作添加一个槽,以便实现了信号槽connect(example,SIGNAL(triggered()),this,SLOT())。
2.2 添加控件的实现
在Qt中每一个控件对应于一个类,向窗口或控件添加其他控件只需指定相关类就完成了添加窗口的操作。
2.3 布局组件的实现
在Qt中使用布局机制来实现控件的位置定位。只要把组件放入某一种布局之中,当需要调整大小或位置的时候,Qt就知道该怎样进行调整。

Qt一共有3种主要的Layout,分别是:QHBoxLayout水平方向从左到右布局;QVBoxLayout垂直方向从上到下布局;OGridLayout在一个网格中进行布局。图2是整体效果。

3 数据采集存储显示设计
3.1 数据存储
在测量模式下通过单击获取数据按钮会获得来自单片机系统发送过来的实时测量数据。从数据显示获取系统采集的时间来精确记录数据信息。如果不需要在应用程序界面上显示,可以通过单击写入文件按钮,此时数据将会写入到具体文件中去,操作者可以保存以自己姓名学号为文件名的文件。Qt中通过QFile类访问本地文件系统或者嵌入资源,同时还要使用QTextStream类来操纵文本文件,QTextStream会自动将Unicode编码同操作系统编码进行转化。
3.2 数据分析与拟合
为了方便学生实验,通过获取每个学生实验数据进行回归分析以及拟合曲线,对应于每个button是由数据增和数据减求得平均值;学生由于误操作导致获取的数据不正确,可以通过单击删除按钮删除该数据,然后重新获取数据。学生可以通过原始数据拟合曲线和回归分析后的拟合曲线进行对比。在Qt中没有具体数据图表控件,因此需要自定义控件。
3.3 解决方案
利用Qt中绘图控件QPainter当获取每个数据时,在屏幕上打印出相对应的点,这样就能拟合出曲线如图3所示。同时利用坐标变换trans late方法重新定义原点,这样更有利于坐标的绘制。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top