APP下载

基于Qt的水声信号处理机调试界面设计与实现

2020-09-29常文龙贺亚龙漆昭铃

写真地理 2020年26期
关键词:网络通信

常文龙 贺亚龙 漆昭铃

作者简介:常文龙(1992-),男,山西大同人,研究生学历,助理工程师,研究方向为显控软件设计。

摘 要: 水声信号处理机是声纳系统的数据处理中心,负责水声数据的运算。本文介绍了一种以Qt组件为基础的水声信号处理机调试环境的设计与实现。该软件基于以太网通信实现了节点显示、程序加载、终端打印输出、内存数据绘图等各个功能,满足了用户需求,可用于信号处理机程序调试,并具有良好的可拓展性,便于二次开发。

关键词: Qt 网络通信;信号处理机;显控

【中图分类号】TN929.3     【文献标识码】A     【DOI】10.12215/j.issn.1674-3733.2020.26.150

0 引言

水声信号处理机的硬件状态监控、控制操作皆为无界面状态,使用上通过命令行进行操作,用户无法非常直观的观察到硬件状态的变化,也无法非常便利的对硬件进行控制操作。水声算法调试使用硬件串口进行调试,受到串口通信距离、串口数量以及诸多硬件环境限制,用户使用上局限性非常巨大。信号处理机使用中发生故障时,通常不能及时保存错误现场的信息,导致后期排故困难,工作量大。信号处理机板卡数量与类型众多,各类软件的版本信息管理工作量大且繁琐。

1 Qt簡介

Qt 是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器中[1]。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,Qt很容易扩展,并且允许真正地组件编程。此外,Qt开发工具对C++库进行了封装,提供了更丰富的API接口,在跨平台方面QtMinGW版本也提供了更好的支持,因此,我们选择Qt5.9MinGW版本作为本软件的开发工具,开发平台为Windows7[2]。

2 调试界面设计

2.1 软件整体架构

软件整体架构如图1所示,分为网络层、应用层、显示层三部分。网络层用来传输控制命令与数据内容,具体为心跳交互信息和远程控制命令信息;应用层用来进行各类功能的实现,如应用部署、终端打印、节点复位等;显示层用于和用户进行命令交互以及最终数据的显示,如节点树状图的显示、内存数据绘图的显示、终端打印输出的显示等。

2.2 软件各功能模块分析

如下图2所示,软件可分为两大功能模块,资源管理与终端调试。资源管理包括6个功能模块,分别为资源监控、应用部署、内存查询绘图、符号表查询、文件管理、版本管理。终端调试包含节点搜索、节点分组、终端打印、关键字过滤等4个功能模块。下面依次对各功能模块进行介绍。

资源监控:支持以树形图的方式显示机箱结构图,支持实时动态显示机柜、机箱、模块和处理器状态,显示各模块的机箱号、槽位号、节点号、网络地址。

应用部署:支持通过TCP网络协议将本地应用程序部署在资源节点,并可多节点批量部署,提供复位和停止等命令。

内存查询绘图:支持以图形化和表格化的方式显示内存数据,支持内存数据的条件化查询如起始地址、地址长度、数据类型等,并可以文本形式导出进行进一步处理。

符号表查询:支持操作系统符号表显示功能,包括全局函数和全局变量的名称、地址、值、类型等关键信息,支持查看符号所指向的内存的值。

文件管理:支持远程查看,操作目标节点文件系统,包括新建、上传、下载、删除等。

版本管理:支持显示各资源节点的软件版本信息,并可导出。

节点搜索:支持按指定条件搜索资源节点信息。

节点分组:支持将符合某条件的资源节点进行分组。

终端打印:支持对多个资源节点的多窗口打印显示。

关键字过滤:支持按相关的关键字对打印信息进行过滤。

3 关键设计

交互协议:设计统一的资源管理协议用于调试界面与资源节点的信息交互。包含了节点的机箱号、槽位号、CPU号、IP地址、运行状态等信息,用于调试界面解析并显示。

心跳设计:心跳机制用于调试界面对资源节点的状态监控,调试界面周期性发送心跳查询报文,资源节点的代理程序收到后会回复心跳响应报文,进行界面显示。

批量部署设计:实际使用中,批量部署是最常用的功能,用户可直接加载XML格式的批量文件,解析后采用多线程的方式同时部署多个节点的多个任务,提高操作效率。

节点图形化设计:通过获取心跳信息,判断节点当前状态,利用QImage类在主界面绘制图形化的节点,根据不同颜色来区分节点的运行状态,如蓝色、灰色、白色分别代表运行中、失联、在线但无程序运行的状态,分别用户直观查看节点状态。程序流程图如图3所示。

节点数据库设计:采用SQLite数据库进行节点数据库的设计,根据资源节点的心跳报文提取各类信息存入节点数据库中,便于其它功能的调用。SQLite数据库拥有众多优点如管理简单,操作方便,生成的数据库文件可以在各个平台无缝移植;可以非常方便的以多种形式嵌入到其他应用程序中,如静态库、动态库且易于维护等。

内存绘图设计:内存数据绘图采用Qt Charts组件,Qt Charts组件模块提供了一组易于使用的图表组件,它使用Qt Graphics View Framework,图表可以轻松集成到现代用户界面中。Qt Charts可用作QWidgets、QGraphicsWidget或QML类型[3]。

整体布局设计:菜单栏对应了各种功能模块,工具栏包含了常用调试工具,左侧显示资源节点列表,主界面显示内存数据、节点图形化等相关内容。

4 结语

本文介绍了一种以Qt 组件为基础的水声信号处理机调试界面软件的设计与实现。该软件较好的实现了各个功能,满足了用户需求,并且具有良好的可靠性和可扩展性、便于用户进行二次开发。

参考文献

[1] 张波.Qt中的C++技术[M].北京:电子工业出版社,2012.

[2] Qt5.9C++开发指南[M]. 人民邮电出版社,王维波、栗宝鹃、侯春望, 2018.

[3] 邓子强,王玉玫,邓红艳,等.基于Qt绘图系统的图形应用优化研究与实现[J].软件, 2016, (12) :59-62.

猜你喜欢

网络通信
基于NoC架构的网络通信抗干扰方法研究
基于网络通信的智能照明系统设计
基于CAN总线的网络通信信道的建模与研究
移动计算机网络通信技术研究
远程网络通信中安全监测平台设计
计算机网络通信常见问题与技术发展研究
网络通信中信息隐藏技术的应用
基于网络通信的校园智能音箱设计
谈计算机网络通信常见问题及技术发展
汽车检测控制系统网络通信技术分析