Design and Implementation of Digital Display Software for Earthquake Precursor Station
-
摘要:
使用C++语言,基于Qt框架,设计开发了一款前兆台站数字化展示软件。该软件采用模块化设计,方便用户切换模块并自由编辑展示内容和仪器信息,不但有利于保证仪器数据的连续性和完整性,还可提高来台参观人员对台站的了解程度,实现了台站宣传展示和仪器状态监控相结合的功能,目前已应用于丰宁地震台、易县地震台,经过简单配置即可应用于其他前兆台站。
Abstract:Using the C++ programming language and based on the Qt framework, we have developed a digital display software for earthquake precursor stations. The software features a modular design, allowing users to easily switch between modules and freely edit display content and instrument information. This not only ensures the continuity and integrity of instrument data, but also enhances the understanding of the station for visitors. The software combines station publicity and instrument status monitoring. It has already been implemented at Fengning Seismic Station and Yixian Seismic Station. With a simple configuration, it can be applied to other earthquake precursor stations as well.
-
0 引言
仪器正常稳定运行是观测资料产出的基础,仪器出现网络故障、供电故障、硬件故障时,如不能及时发现会影响资料的连续性及完整性。为保证仪器能连续正常记录观测数据,许多人尝试开发客户端软件对仪器状态监控[1-3]。
随着丰宁台整体搬迁工作的完成,2020年丰宁台又新增多套仪器,通过网页查看仪器状态不但十分繁琐,且难以确定仪器数据曲线形态是否正常。此外,搬迁后的丰宁地震台办公地点位于县政府大院内,与县政府内其他单位有了更多交流展示的机会,因此还将承担部分宣传展示工作。相对于采用讲解和播放视频的方式进行宣传展示,将台站日常处理的数字资料以数据曲线的形式进行展示,可以让人民群众更直观地了解地震仪器和台站日常工作。在此需求的基础上,使用C++语言,基于Qt框架开发完成了前兆台站数字化展示软件,实现了台站宣传展示及仪器状态监控功能,该软件通过简单配置即可应用于前兆台站。
1 系统架构
前兆台站数字化展示软件主要包含2个子模块:宣传展示模块和仪器状态监控模块。宣传展示模块下面包含:台站简介、仪器介绍、人才队伍和其他风采4个部分,通过图片和文字,配合台站职工的讲解,用于向来台人员展示台站的基本情况。仪器状态监控模块主要有仪器网络状态监控和仪器数据曲线显示两大功能,除了方便工作人员日常对仪器进行监控外,也可以向来台参观人员进行展示(图1)。
软件的使用者主要是来台参观人员和台站工作人员。来台参观人员可以查看用于展示的宣传信息也可以查看台站仪器的状态信息,而台站工作人员除了有来台参观人员的权限外,还负责维护台站用于宣传展示的材料以及台站仪器信息(图2)。
2 系统实现
前兆台站数字化展示软件将宣传展示模块和仪器状态监控模块用2个界面分别展示,可通过软件左上角的模式切换功能进行切换。
2.1 宣传展示模块
软件打开后的主界面是宣传展示模块界面,分为台站简介、人才队伍、仪器介绍和其他风采4个子模块,点击相应子模块进入展示材料界面。为了方便展示材料编辑和呈现,统一采用左侧文字介绍和右侧图片介绍的界面(图3)。台站工作人员可以通过文字和图片向参观人员进行介绍,点击右侧的导航按键,可方便切换展示材料。
2.2 宣传展示材料编辑
本文软件采用可编辑模板的方式使宣传展示材料可以自由的增减和替换,满足本台站宣传展示多样性的同时,还可使软件应用于其他前兆台站。在软件所在文件夹中的images文件夹下存放宣传展示的图片和配置文件(图4),其中文件夹用于存放用于展示的图片,而与之同名的xml文件中可编写与图片对应的文字介绍。
将想要展示的图片放在相应展示模块的文件夹下,编辑对应的xml文件即可实现自定义展示材料。
以“其他风采”展示模块为例,4_Others文件夹下存放的是台站获奖情况的图片。在xml文件中,intro为一个宣传展示材料,name为展示的标题,pic为展示图片名称,instruction内容为文字介绍部分。使用人员可通过编辑xml实现自定义宣传展示内容(图5)。
2.3 仪器状态监控
点击左上角“模式切换”按钮将模式切换到仪器状态监控模块。界面左侧区域为仪器列表区,中间区域为数据曲线显示区,右侧为信息区和控制区。该模块可以供台站工作人员日常检查仪器状态使用,也可以用于向外来参观人员展示仪器数据曲线(图6)。工作人员可以根据仪器列表区的状态判断仪器网络状况是否正常,可以通过控制区选取查看仪器数据的时间范围,可以通过信息区查看仪器在收取数据时的状态,可以在数据曲线区域查看仪器数据曲线。
2.3.1 仪器网络状态监控
仪器列表不但有显示和选取仪器的作用,还可以用于判断列表内仪器的网络状态。软件会定时自动ping仪器列表的仪器,如果ping不通,仪器列表内对应仪器的名称会变为红色;如果可以ping通,则为绿色(图7)。台站人员通过仪器列表可以对仪器网络状态一目了然。
2.3.2 仪器曲线显示
本功能提供仪器曲线显示功能。点击左侧“仪器列表”中对应的仪器,在软件的右下角有数据日期选择下拉框,可选择最近15天的仪器数据曲线(图8)。
此时点击“全天曲线”按钮,软件会尝试与仪器建立TCP连接并获取数据,台站人员可通过右侧的信息框查看与仪器的连接情况和数据读取情况(图9)。当仪器获取数据后,会在显示区按照各个测项显示每个测项的数据曲线,可通过鼠标拖动或放大缩小曲线。
2.4 仪器信息配置
为了方便软件的推广,使其可应用于其他台站,软件将仪器的IP、ID等信息存放到instruments.xml配置文件中,通过修改instruments.xml中的字段,其他台站也可使用本软件查看仪器状态(图10)。xml中各字段名称含义如表1 所示。
表 1 仪器信息配置文件含义Table 1. Meaning of instrument information configuration file字段名称 含义 name 仪器在软件中的名称 ip 仪器IP id 仪器ID num 测项分量个数 item* 测项分量代码,*从0递增 samplerate 采样率 instruction 简介 3 主要功能实现方法
3.1 仪器数据读取
前兆仪器入网需满足“十五”通信规程,与仪器建立TCP连接后,可按照通讯协议格式发送命令与仪器互动。与仪器进行网络TCP连接时,需使用Socket技术。套接字(Socket)是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开、读写和关闭等操作。套接字允许应用程序将I/O插入到网络中,并与网络中的其他应用程序进行通信。
与仪器通讯的主要代码如下:
QByteArray logByte=m_currentCommand.toUtf8();//将命令转换成byte
tcpClient->connectToHost(m_IP,**);//连接到主机
if (tcpClient->waitForConnected(2000)) { // 连接成功发送命令
tcpClient->write(logByte);}else{ //将命令传入TCP
emit ErrorDetected(m_Name+":连接超时");}//连接失败发出错误信息
3.2 数据曲线显示
仪器数据曲线展示采用QCustomPlot控件。QCustomPlot是一个基于Qt图形库,用于绘制和数据可视化,制作曲线图、趋势图、坐标图、柱状图等,并为实时可视化应用程序提供高性能服务。QCustomPlot使用简单,易于使用,只需要在项目中加入头文件qcustomplot.h和qcustomplot.cpp文件,然后将界面中的widget控件提升为QCustomPlot类即可使用。
4 结论
按照软件开发流程开发前兆台站数字化展示软件一套,软件分为展示宣传子模块和仪器状态监控子模块,实现了仪器数据曲线显示、台站概况简介、仪器信息简介等功能。在满足工作人员仪器状态监控的同时,还具有对外展示宣传的作用。软件具有较好的可推广性,通过简单编辑几个配置文件即可应用于其他台站,目前已应用于丰宁台和易县台的日常工作中。
-
表 1 仪器信息配置文件含义
Table 1 Meaning of instrument information configuration file
字段名称 含义 name 仪器在软件中的名称 ip 仪器IP id 仪器ID num 测项分量个数 item* 测项分量代码,*从0递增 samplerate 采样率 instruction 简介 -
[1] 李雨泽, 陶鑫, 肖健, 等. 九江台前兆仪器监控软件[J]. 科技创新与应用, 2017(29): 50-51. [2] 丁成, 孙贵成, 鞠永. SQ-70D型石英水平摆倾斜仪状态监控软件[J]. 地震地磁观测与研究, 2018, 39(3): 213-217. doi: 10.3969/j.issn.1003-3246.2018.03.032 [3] 李俊超, 赵瑞, 王秋良. 地震台站综合观测仪器自动化监控报警系统的设计与实现[J]. 大地测量与地球动力学, 2019, 39(1): 107-110. doi: 10.14075/j.jgg.2019.01.021