丁 成,常玉柱,鞠 永,孫貴成
(1. 河北紅山巨厚沉積與地震災害國家野外科學觀測研究站, 河北 邢臺 055350;2. 河北省地震局, 石家莊 050022)
儀器正常穩定運行是觀測資料產出的基礎,儀器出現網絡故障、供電故障、硬件故障時,如不能及時發現會影響資料的連續性及完整性。為保證儀器能連續正常記錄觀測數據,許多人嘗試開發客戶端軟件對儀器狀態監控[1-3]。
隨著豐寧臺整體搬遷工作的完成,2020年豐寧臺又新增多套儀器,通過網頁查看儀器狀態不但十分繁瑣,且難以確定儀器數據曲線形態是否正常。此外,搬遷后的豐寧地震臺辦公地點位于縣政府大院內,與縣政府內其他單位有了更多交流展示的機會,因此還將承擔部分宣傳展示工作。相對于采用講解和播放視頻的方式進行宣傳展示,將臺站日常處理的數字資料以數據曲線的形式進行展示,可以讓人民群眾更直觀地了解地震儀器和臺站日常工作。在此需求的基礎上,使用C++語言,基于Qt 框架開發完成了前兆臺站數字化展示軟件,實現了臺站宣傳展示及儀器狀態監控功能,該軟件通過簡單配置即可應用于前兆臺站。
前兆臺站數字化展示軟件主要包含2 個子模塊:宣傳展示模塊和儀器狀態監控模塊。宣傳展示模塊下面包含:臺站簡介、儀器介紹、人才隊伍和其他風采4 個部分,通過圖片和文字,配合臺站職工的講解,用于向來臺人員展示臺站的基本情況。儀器狀態監控模塊主要有儀器網絡狀態監控和儀器數據曲線顯示兩大功能,除了方便工作人員日常對儀器進行監控外,也可以向來臺參觀人員進行展示(圖1)。
圖1 功能架構圖Fig. 1 Functional architecture diagram
軟件的使用者主要是來臺參觀人員和臺站工作人員。來臺參觀人員可以查看用于展示的宣傳信息也可以查看臺站儀器的狀態信息,而臺站工作人員除了有來臺參觀人員的權限外,還負責維護臺站用于宣傳展示的材料以及臺站儀器信息(圖2)。
圖2 用例圖Fig. 2 Use case diagram
前兆臺站數字化展示軟件將宣傳展示模塊和儀器狀態監控模塊用2 個界面分別展示,可通過軟件左上角的模式切換功能進行切換。
軟件打開后的主界面是宣傳展示模塊界面,分為臺站簡介、人才隊伍、儀器介紹和其他風采4 個子模塊,點擊相應子模塊進入展示材料界面。為了方便展示材料編輯和呈現,統一采用左側文字介紹和右側圖片介紹的界面(圖3)。臺站工作人員可以通過文字和圖片向參觀人員進行介紹,點擊右側的導航按鍵,可方便切換展示材料。
圖3 宣傳展示界面Fig. 3 Publicity and display interface
本文軟件采用可編輯模板的方式使宣傳展示材料可以自由的增減和替換,滿足本臺站宣傳展示多樣性的同時,還可使軟件應用于其他前兆臺站。在軟件所在文件夾中的images 文件夾下存放宣傳展示的圖片和配置文件(圖4),其中文件夾用于存放用于展示的圖片,而與之同名的xml 文件中可編寫與圖片對應的文字介紹。
將想要展示的圖片放在相應展示模塊的文件夾下,編輯對應的xml 文件即可實現自定義展示材料。
以“其他風采”展示模塊為例,4_Others 文件夾下存放的是臺站獲獎情況的圖片。在xml 文件中,intro 為一個宣傳展示材料,name 為展示的標題,pic 為展示圖片名稱,instruction 內容為文字介紹部分。使用人員可通過編輯xml 實現自定義宣傳展示內容(圖5)。
點擊左上角“模式切換”按鈕將模式切換到儀器狀態監控模塊。界面左側區域為儀器列表區,中間區域為數據曲線顯示區,右側為信息區和控制區。該模塊可以供臺站工作人員日常檢查儀器狀態使用,也可以用于向外來參觀人員展示儀器數據曲線(圖6)。工作人員可以根據儀器列表區的狀態判斷儀器網絡狀況是否正常,可以通過控制區選取查看儀器數據的時間范圍,可以通過信息區查看儀器在收取數據時的狀態,可以在數據曲線區域查看儀器數據曲線。
圖6 儀器狀態主界面Fig. 6 Main interface of instrument status
2.3.1 儀器網絡狀態監控
儀器列表不但有顯示和選取儀器的作用,還可以用于判斷列表內儀器的網絡狀態。軟件會定時自動ping 儀器列表的儀器,如果ping 不通,儀器列表內對應儀器的名稱會變為紅色;如果可以ping通,則為綠色(圖7)。臺站人員通過儀器列表可以對儀器網絡狀態一目了然。
圖7 儀器網絡狀態Fig. 7 Network status of instrument
2.3.2 儀器曲線顯示
本功能提供儀器曲線顯示功能。點擊左側“儀器列表”中對應的儀器,在軟件的右下角有數據日期選擇下拉框,可選擇最近15 天的儀器數據曲線(圖8)。
圖8 數據日期選擇Fig. 8 Data date selection box
此時點擊“全天曲線”按鈕,軟件會嘗試與儀器建立TCP 連接并獲取數據,臺站人員可通過右側的信息框查看與儀器的連接情況和數據讀取情況(圖9)。當儀器獲取數據后,會在顯示區按照各個測項顯示每個測項的數據曲線,可通過鼠標拖動或放大縮小曲線。
圖9 儀器數據曲線展示Fig. 9 Instrument data curve display
為了方便軟件的推廣,使其可應用于其他臺站,軟件將儀器的IP、ID 等信息存放到instruments.xml 配置文件中,通過修改instruments.xml 中的字段,其他臺站也可使用本軟件查看儀器狀態(圖10)。xml 中各字段名稱含義如表1 所示。
表1 儀器信息配置文件含義Table 1 Meaning of instrument information configuration file
圖10 instrments.xml 內容Fig. 10 The content of instruments.xml
前兆儀器入網需滿足“十五”通信規程,與儀器建立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+":連接超時");}//連接失敗發出錯誤信息
儀器數據曲線展示采用QCustomPlot 控件。QCustomPlot 是一個基于Qt 圖形庫,用于繪制和數據可視化,制作曲線圖、趨勢圖、坐標圖、柱狀圖等,并為實時可視化應用程序提供高性能服務。QCustomPlot 使用簡單,易于使用,只需要在項目中加入頭文件qcustomplot.h 和qcustomplot.cpp 文件,然后將界面中的widget 控件提升為QCustomPlot 類即可使用。
按照軟件開發流程開發前兆臺站數字化展示軟件一套,軟件分為展示宣傳子模塊和儀器狀態監控子模塊,實現了儀器數據曲線顯示、臺站概況簡介、儀器信息簡介等功能。在滿足工作人員儀器狀態監控的同時,還具有對外展示宣傳的作用。軟件具有較好的可推廣性,通過簡單編輯幾個配置文件即可應用于其他臺站,目前已應用于豐寧臺和易縣臺的日常工作中。