收藏 分销(赏)

基于Qt和MySQL的数据记录回放模块设计与实现.pdf

上传人:自信****多点 文档编号:633344 上传时间:2024-01-19 格式:PDF 页数:4 大小:6.26MB
下载 相关 举报
基于Qt和MySQL的数据记录回放模块设计与实现.pdf_第1页
第1页 / 共4页
基于Qt和MySQL的数据记录回放模块设计与实现.pdf_第2页
第2页 / 共4页
亲,该文档总共4页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、信息记录材料 2023 年 7 月 第 24 卷第 7 期基于 Qt 和 MySQL 的数据记录回放模块设计与实现何 川,郑 婷(中国电子科技集团公司第二十研究所 陕西 西安 710000)【摘摘要要】信息系统是网络体系中核心技术装备,实现信息的获取和自动化处理,保障机构对平台等实施科学高效控制。随着平台功能和数量的增多,大量数据信息需要处理,网络监视管理软件作为系统中重要一部分,需要提供用户分析诊断数据的能力,一种高效、便捷的数据记录回放功能已成为网络监视管理软件的迫切需求。本设计采用跨平台的 Qt 图形用户界面开发框架,利用 MySQL数据库实现底层数据的管理和维护。测试表明该设计能够实现

2、网络监视管理软件的数据记录的管理和回放要求。【关关键键词词】网网络络监监视视;数数据据记记录录回回放放;Q Qt t 图图形形【中中图图分分类类号号】TP39 【文文献献标标识识码码】A 【文文章章编编号号】1009-5624(2023)07-0223-040 引言信息系统如图 1 所示,整个系统中的信息流包含指令控制、通信管理、电子对抗以及相关保障功能信息,网络监视管理软件是其中组网中心的重要组成部分,承担着全网数据的实时监视和网络管理功能。随着网络中节点设备的增多以及节点设备状态的动态变化,网络监视管理软件处理信息量的功能和复杂度日趋增大,同时用户事后分析诊断历史数据的难度也不断提高。因此

3、高效、稳定的数据记录回放模块已成为网络监视管理系统的迫切需求,在此需求背景下,针对用户提出的对事后数据的诊断分析、数据回放的需求,网络监视管理软件通过增加数据记录回放模块,提供用户事后便利的数据分析,以及验证实时数据的有效性。图 1 信息系统示意图 目前网络监视管理软件被广泛部署于 Windows 操作系统平台以及国产中标麒麟操作系统环境下,考虑到 Qt优秀的跨平台特性所带来的可移植性,及信号和槽机制所带来的编程上的便利性和可扩展性,因此本数据记录回放模块采用基于 Qt 的设计。考虑到 MySQL 数据库是一款开源免费、可移植性强、十分灵活和安全的特性,采用MySQL 作为数据记录的存储数据库

4、。1 Qt 和 MySQL 简介1.1 QtQt 是一个跨平台的 C+图形用户界面应用程序框架,它可以提供开发艺术级图形用户界面的全部功能,并且是完全面向对象的组件编程1。Qt 支持的平台很多,跨平台成为其最大的特色之一,包括 Windows7、Linux、BSD/OS、IBM AIX、HP-UX、Mac OS X、Windows CE、Android 等。除此以外,它还有 API 接口丰富、支持 XML、开发文档丰富、开源免费等优点,特别是模块化程度高开创了信号槽机制,这种机制有两个明显优点:(1)安全可靠即信号和槽的签名不相符则在编译的时候会报错;(2)另一个是 Qt 的耦合度被降低使得通

5、信更加灵活。信号与槽机制最常用的连接方式如下:connect(sender,SIGNAL(signal),receiver,SLOT(slot);Qt 不仅仅可以编译现成的数据库驱动插件,也可以编写自定义的数据库驱动插件。QSqlDatabase 负责加载和管理数据库驱动插件,当某个数据库添加时,相应的数据库驱动插件会被加载。驱动 MySQL 数据库,需编译 Qt安装目录下 src/sqlbase/下,mysql 工程,将编译生成的qsqlmysql.dll 和 libqsqlmysql.a 安装放入到 QT/plugins/sqldrivers 下,通过 QSqlDatabase:drive

6、rs()查看当前数据库驱动安装情况,如果 MySQL 驱动已安装好,则在输出窗口中显示如图 2 所示,表示 MySQL 驱动安装成功:图 2 已安装的数据库驱动图通过 Qt 提供的 QSqlDatabase:addDatabase(QMYSQL)添加连接名称“QMYSQL”,再配置相应的数据库名、主机 IP、主机端口、用户名、密码等信息便可连接上 MySQL 数据库了。1.2 MySQL数据库技术发展至今已经有了很多成熟的商品化的数据库管理系统(database management system,DBMS),如Oracle、DB2、SQL Server 等,这些数据库管理系统都具有强大的数据

7、管理功能,有设计完善的应用程序接口。在众多322信息记录材料 2023 年 7 月 第 24 卷第 7 期的数据库管理系统中 MySQL 是其中比较出色的,现在有很多网站和个人资料库都是 MySQL 作为后台数据库,而且 MySQL 的开源特性和卓越的性能使 MySQL 数据库器成为很多人建立信息管理系统的首选。MySQL 是一款免费开源、小型、关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 是最流行的关系型数据库管理系统,其占用系统资源较少,速度较快等优点,使得在 WEB 应用方面得到广泛应用2。2 模块设

8、计与实现2.1 设计思路网络监视管理软件主要用于监视网络中各种实时数据流、监控的数据量大且实时。数据记录回放模块位于网络监视管理软件中,为事后分析网络状态提供技术手段,记录回放模块运行在后台,向主界面提供功能,数据监控开启后,主界面的显示数据在记录后进行显示。回放记录时,回放记录模块从数据库中提取数据,并在主界面上显示,记录回放模块划分示意图如图 3 所示。图 3 记录回放模块功能划分网络监视管理软件主界面显示的数据源分别来自实时的数据监控和历史的记录回放。数据监控功能开启后,在实时监控数据的同时,也将实时数据通过记录模块记录在 MySQL 数据库中。用户通过记录回放模块,调取历史数据记录,并

9、将历史数据记录,刷新显示在主界面上。记录回放模块作为网络监视管理软件的重要组成模块,包含记录回放管理、记录、回放三个子模块。其中:记录回放管理子模块负责网络监视管理软件对记录回放的控制;记录子模块负责记录数据监控模块输出的实时数据,并将实时数据打上时间戳信息,按照相应的格式转换后存入数据库中;回放子模块负责从数据库中取出数据,按照预定义格式进行解析,发往主界面数据刷新模块,进行历史数据的回放上显。2.2 流程设计网络监视管理软件数据包含了大量业务类和管理类消息,比如网络成员定位消息、指挥节点联通状态消息、通信站点联通状态消息等。为了方便数据识别与提取,记录时采用通用化数据结构进行存储,存储格式

10、如表 1 所示。表 1 数据存储结构表时间戳源平台编识号目的 T 台编识号数据类型数据长度数据内容8 字节2 字节2 字节1 字节1 字节N 字节(1)时间戳:系统当前距离 2015 年 1 月 1 日 0 时 0 分0 秒的秒数;(2)源平台编识号:消息来源平台的编识号;(3)目的平台编识号:消息目的平台的编识号;(4)数据类型:对不同数据类型的编码;(5)数据长度:消息的实际长度;(6)数据内容:用于存储数据内容。数据按照通用化的数据存储结构存储在 MySQL 数据库中,建立时间戳索引,记录回放模块,通过时间戳索引,查询某一时间段内的历史数据记录,按照既定格式从数据库中识别与提取3。回放子

11、模块有播放/暂停、快进、快退功能,还有进度条提供拖曳功能,实现数据回放的控制,实现历史数据的再现还原4。用户选择区间回放是对历史数据中一段时间的数据进行回放,可以根据实际需要实现数据的反复回放研究,回放流程如图 4 所示。首先用户选择感兴趣的时间区间,采用内部通信机制,通知记录回放模块。记录回放模块通过查询数据库,提取相应时间段内的记录数据,存储在播放数据的容器中,再开启定时器,周期从播放数据存储容器中提取相应时刻的记录,采用内部通信机制,发往主界面显示。2.3 记录回放模块设计与实现(1)数据库连接与建表数据记录回放模块启动后会自动进行参数配置,特别是数据库 MySQL 服务的开启连通所需参

12、数,包括 MySQL服务器 IP 地址、端口号、数据库名、用户名以及密码,如下所示:m _ sqlDataBase=QSqlDatabase:addDatabase(QMYSQL);m_sqlDataBase.setHostName(MySQL 服务器 IP);m_sqlDataBase.setPort(端口号);m_sqlDataBase.setDatabaseName(数据库名);m_sqlDataBase.setUserName(用户名);m_sqlDataBase.setPassword(密码);完成配置后,通过 m_sqlDataBase.open()打开数据库,建立表结构,例如某一

13、条消息:通过“create table msg_in422信息记录材料 2023 年 7 月 第 24 卷第 7 期(ID long long primary key,TIME long long,DATA blob)”创建表 msg_in,其中主键设为消息的 ID,和消息的时间戳TIME 均采用 long long 类型存储,消息结构体 DATA 采用blob 形式存取,当前的消息结构体包括源平台和目的平台编识号、数据类型、数据长度和数据内容,在存储和查询过程中可以很方便地与 Qt 自带的 QVariant 类型数据互相转换,便于程序处理5。同时这样设计的好处是,可以支持后期对消息结构体的扩

14、展或修改,而不用修改数据库表结构。图 4 回放流程示意图(2)记录的存取记录模块在收到一条实时消息时,往数据库中存储,必须首先获取消息的时间戳,通过直接调用 Qt 自带的时间类 QDateTime 获取当前时刻,计算得到当前时间与 2015年 1 月 1 日 0 时 0 分 0 秒的秒间隔作为消息的时间戳,执行 sql 语 句“insert into test(ID,TIME,DATA)values($ID,$TIME,$DATA)”存入数据库中。通过执行 sql 语句“select from test where TIME=T1 and TIME =T2”,其中T1,T2是查询的时间戳区间,

15、通过 exec 函数返回的结果可以了解到查询指令执行结果,若查询成功,则通过循环遍历查询结果集,将时间戳和消息结构体提取出来。记录回放模块维护一个容器std:unordered_map long long,std:vector map_data,该容器类型是无序哈希容器,容器中存储着键值对数据,其 key 值是 long long 类型,存储着消息的时间戳,其 value 值是一个消息结构体(DataInfo)存储容器(vector),用来存储某一个时刻所有的消息。当提取出时间戳和消息结构体后,将其内容放入容器 map_data 中。(3)记录的回放记录的回放过程中,用户可能会拖动进度条或采用

16、快进或快退的方式查看数据记录。容器 map_data 的底层实现采用的是哈希表存储结构,查找元素的时间复杂度为 O(1)。回放过程开启记录回放定时器,周期从容器 map_data 中提取相应的记录内容,按内部通信机制封装后发往主界面进行显示。不论是用户拖动进度条,或快进快退操作,本质上都是修改当前的回放时刻,容器map_data 可以支持快速查找对应时间戳的记录,获得相应的记录数据。回放定时器 timeout 信号所对应的槽函数设计如下:void onPlay()if(bisRunning)if(map_data.count(m_nPlayCount)=0)/当前时刻无消息elsefor(au

17、to iter=map_datam_nPlayCount.begin();iter!=map_datam_nPlayCount.end();iter+)QByteArray ba(iter-rawdata.buf,iter-rawdata.len);sendToUI(ba);/发往主界面ui-horizontalSlider-setValue(nSingleStep m _nPlayCount);m_nPlayCount+;if(m_nPlayCount m_nMax)m_nPlayCount=0;return;3 试验验证网络监视管理软件运行平台为 Windows 操作系统,数据库部署在机房

18、 Linux(CentOS)服务器中,为了对上文提出的记录回放模块设计进行验证,利用 Qt 开发了一个独立的记录回放软件,记录回放的过程中,本软件界面实时显示发往网络监视管理软件主界面的记录数据,记录回放软件界面如图 5 所示。为了不失一般性,数据库中记录的数据由本软件随机产生,具体验证步骤如下:(1)点击“自定义数据库数据”按钮,开始产生模拟数据,记录产生的时间从点击按钮起开始,记录的内容、长度、时间间隔均是随机产生。(2)选择查询起始时间和终止时间,点击“查询”按钮可以正常显示当前查询时间段内的所有数据,说明数据存储和查询均正常。522信息记录材料 2023 年 7 月 第 24 卷第 7

19、 期图 5 记录回放软件界面 (3)点击“播放”按钮,软件按照时间顺序,依次显示查询时间段内的数据内容,数据内容与查询界面中数据保持一致,说明记录回放正常运行。(4)拖动进度条到某个时刻开始回放,软件快速查找到此刻的记录数据内容,开始回放。测试结果表明,记录回放功能均正常运行。4 结语综上所述,本设计采用跨平台的 Qt 图形用户界面开发框架,利用 MySQL 数据库实现底层数据的管理和维护,设计了数据记录回放功能,并进行了具体开发、实现及验证。该方法能够实现数据的实时记录和历史记录回放,提高了运维人员分析数据能力,提高了系统的可维护性,具有良好的应用价值和推广价值。【参考文献】1 雷停.基于

20、QT 的跨平台网络通信的设计与实现 J.网络安全技术与应用,2014(5):92-96.2 李荣国,王见.MySQL 数据库在自动测试系统中的应用J.计算机应用,2011,31(S2):169-171.3 鞠时光,蔡涛,张小红.动态数据记录存储结构的设计J.计算机工程与科学,2002,24(4):57-59.4 叶中脉,秦开宇,陈华伟,等.基于 Qt 的航电仿真系统记录回放模块设计 J.电子测试,2011(10):22-26,61.5 杜乃瀚.基于 QT 的应用集成开发平台设计与实现J.新一代信息技术,2022(5):132-134.作者简介:何川(1991),男,湖北荆门,硕士,工程师,研究

21、方向:嵌入式软件研究。(上接第 222 页)正,确保机器人平稳,快速移动。该搬运机器人的结构,硬件设计,软件算法经过实践证明了机器人对于物料搬运的高效性,准确性和可靠性。对于实际工业物料搬运机器人有一定的参考意义。【参考文献】1 乔宁宁.工业机器人技术的发展与应用分析J.新型工业化,2021,11(11):85-87.2 韦创炜,陈世龙,周晓倩,等.基于 STM32F407 单片机的纸张计数装置设计J.电子制作,2022,30(2):3-5,22.3 刘俊秘,李梦阳,高晨浩,等.基于 Arduino 与机器视觉的智能物流搬运小车J.电子制作,2022,30(19):31-34.4 姜颖韬.自循迹智能车模糊 PID 路径控制系统设计J.制造业自动化,2015,37(10):113-116.5 李振宇.基于 Arduino 技术的光电搬运机器人设计与编程(一):循线技术与线路控制 J.首都师范大学学报(自然科学版),2021,42(4):8-11.6 孙静,叶紫萱,高杰,等.一种光电循迹的搬运机器人电路设计J.福建电脑,2021,37(11):70-75.作者简介:杨毅(2001),男,广西桂平,本科,研究方向:机器人运动控制。622

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 论文指导/设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服