当前位置:首页 > 测试测量 > 测试测量
[导读]摘要:利用Qt提供的C++应用程序开发框架,以单片机技术、数据库技术为基础,结合学校原有的测量仪器设计了一套包括计算机分析、储存数据的测量监控系统。使用操作简单,人机界面人性化,错误机制的反馈信息能帮助操作

摘要:利用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方法重新定义原点,这样更有利于坐标的绘制。


    如图3所示,首先画出网格坐标轴,然后将获取到的数据转化为相对应的具体左边打印出该点:
    paint,drawEllipse(((i+1)*24)+2,-(share[i]/10/5*24)+4,-6,-6);/画点,最后由回归分析拟合出数据表达式。

4 数据库设计
    QtSql模块提供了与平台以及数据库种类无关的访问SQL数据库接口。这个接口由利用Qt的模型/视图结构将数据库与用户界面集成的一套类来集成。
    本应用程序采用微软开发的SQL Setwer2005作为数据库引擎,用户界面采用Qt编写,当系统处于监控模式时,需要数据的实时监控和存储,数据量将非常大使用文件存储不适合,同时利用数据库提供的查询语句Select、修改update、删除delete等语句,可以方便地管理数据库。

5 软件美化
5.1 国际化
    Qt中国际化的方式有很多种,常使用的QTextCodec类和使用tr()函数,前者将编码名称写到代码里面,除非使用Unicode编码,否者编码依然是一个问题,本软件系统设计时使用tr()函数实现应用程序的国际化。同时在main函数中增加一个QTranslator对象,这样应用程序就变成了中文。
5.2 淡入淡出效果
    当窗体进行页面切换时,原页面的消失和新页面的显示并不是瞬间切换的,而是逐渐消隐和逐渐显现的过程。


    本应用程序中实现的fader类就是用于实现这种效果,在响应页面切换时,新建一个窗体,此窗体是一个与对话框等尺寸的空白窗体,此窗体由透明逐渐变成不透明就完成了淡入淡出的效果,如图4所示。

6 Qt串口通信
    在Qt中没有特定的串口控制类,采用第三方写的qextserialport类如图5,文件中包含QextSerialBase类,Win_QextSerialPort类,Pos ix_QextSerialPort类,QextSeralPort是所有类的子类,是最高的抽象,它屏蔽了平台特征,使得在任何平台上都可以使用。


    对于串口的读取方式有Polling模式即查询模式还有EventDriven事件驱动模式。
    事件驱动方式就是使用处理串口的读取,一旦有数据到来就会发出readyRead()信号,设计者可以关联该信号来读取串口数据。在事件驱动的方式下,串口的读写是异步的调用读写函数会立即返回,它们不会冻结调用线程。
    而查询方式则不同,读写函数是同步执行,信号不能工作在这种模式下,但这种模式下开销小,需要自己建立定时器来读取串口数据。
    Windows下可以使用两种方式而在Linux下只能使用查询Polling方式。

7 结束语
    本软件测试系统界面直观、友好,数据存储方便,分组存储更能方便学生记录数据。软件能后满足实验室的测量要求,并且省去了繁琐的数据记录、处理的过程。学生可以更直观地观测压力的变化。在通信协议不变的条件下,软件和硬件平台可以分别进行改进、扩展,使其更加完善。应用程序的跨平台性,可以完美运行于各种操作系统,从Windows到Mac OS,从Linux到Unix及一些嵌入式系统上。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭