本發(fā)明屬于水位檢測控制,具體涉及一種地鐵軌行區(qū)水位監(jiān)測方法及系統。
背景技術:
1、隨著地鐵行業(yè)的飛速發(fā)展與迅速普及,我們無可避免的會想到安全的相關問題。在強降雨的時候,雨水會流入地鐵的通道,如果地下排水管道堵塞不能及時排水,水就會進入地鐵站,極易出現洪水倒灌。因此,開發(fā)一款能夠實時檢測水位的系統對于預防地鐵水位倒灌具有重要意義。
2、地鐵軌行區(qū)水位態(tài)勢系統主要實現對水位傳感器傳來的數據通過各類表進行實時監(jiān)控,并存儲規(guī)定時間內的數據對水位進行動態(tài)的觀察,并針對監(jiān)測點在不同環(huán)境下的數據需求和預警要求進行管理,其中主要通過串口技術即java的擴展包rxtxcomm進行數據的獲取,并建立websocket連接進行數據實時監(jiān)聽,能夠高效的實現數據傳送。目前的地鐵軌行區(qū)水位態(tài)勢系統存在以下缺陷:
3、(1)數據獲取和處理問題:當前系統使用java獲取地鐵軌行區(qū)水位態(tài)勢系統的數據,雖然可以通過設置串口號和波特率實現打開串口和接收數據的功能,但需要進一步解決數據分類和提取的問題。
4、(2)數據展示和性能問題:當前的動態(tài)數據展示界面涉及多個圖表組件,每次數據變動都需要重新發(fā)送多個請求來獲取數據。由于傳感器數據每秒傳遞一次,頻繁的數據渲染對前端界面造成較大開銷。此外,每次發(fā)送http請求建立連接也會消耗較大資源。因此,需要采取措施來優(yōu)化數據傳輸和前端渲染的效率。
5、(3)數據時效性問題:為了解決上述問題,使用websocket連接來實現全雙工通信協議。通過建立websocket連接,可以實現數據的實時監(jiān)聽和傳輸,同時可以建立多個連接,并且服務端能夠向連接的客戶端統一發(fā)送數據,從而高效地實現數據傳送和展示。
技術實現思路
1、針對現有技術中的上述不足,本發(fā)明提供的一種地鐵軌行區(qū)水位監(jiān)測方法及系統解決了目前的地鐵軌行區(qū)水位態(tài)勢系統存在的數據獲取和處理問題、數據展示和性能問題以及數據時效性問題。
2、為了達到上述發(fā)明目的,本發(fā)明采用的技術方案為:一種地鐵軌行區(qū)水位監(jiān)測方法,包括以下步驟:
3、s1、采集水位數據,對水位數據進行處理,存儲生成的水位信息;
4、s2、在服務端和客戶端建立websocket連接,向客戶端發(fā)送水位信息。
5、進一步地:所述s1包括以下分步驟:
6、s11、根據openserialport方法打開串口,并監(jiān)聽串口獲取的水位數據;
7、s12、判斷當前監(jiān)聽串口獲取的水位數據是否為首次獲取,若是,則對串口進行初始化,進入s13;若否,則進入s13;
8、s13、通過setlistenertoserialpor方法打開串口監(jiān)聽器;
9、s14、當串口監(jiān)聽器識別到有水位數據發(fā)送時,通過getdat方法對識別到的水位數據進行處理,將生成的水位信息發(fā)送至業(yè)務邏輯層,通過業(yè)務邏輯層將水位信息存儲至redis。
10、進一步地:所述s12中,進行串口初始化的方法為:
11、通過數據持久層的getlastinfo方法獲取數據庫中存儲的最后一條水位數據,并將其存儲到redis中。
12、進一步地:所述s2中,在服務端和客戶端建立websocket連接的方法包括:
13、通過服務端根據onopen方法開啟連接,在客戶端要連接服務器時,通過客戶端調用connect方法與服務器建立連接,并通過websocketserver向服務端和客戶端發(fā)送連接信息,將連接結果渲染到客戶端,完成websocket連接的建立;
14、向客戶端發(fā)送水位信息的方法具體為:通過sendmessage方法向客戶端群發(fā)水位信息。
15、進一步地:所述服務端根據onopen方法開啟連接之前,還包括:
16、通過服務端寫入websocketserver服務類,聲明用于存儲將要連接客戶端信息的集合。
17、進一步地:所述客戶端調用connect方法與服務器建立連接的方法具體為:
18、通過客戶端編寫socketservice類,根據connect方法分別對onopen事件、onclose事件和onmessage事件進行處理,并通過registercallback方法和unregistercallback方法進行回調函數的注冊和釋放,對特定事件的監(jiān)聽和處理,完成客戶端建立websocket連接。
19、地鐵軌行區(qū)水位監(jiān)測方法的系統,包括相互連接的水位數據監(jiān)測模塊和網絡通訊模塊;
20、其中,水位數據監(jiān)測模塊包括業(yè)務邏輯層、工具類和數據持久層;
21、所述業(yè)務邏輯層用于運行openserialport方法和getdat方法,openserialport方法用于打開指定串口,并設置串口的通信參數,如串口號和波特率,getdat方法用于接收從串口監(jiān)聽器識別到的數據;
22、所述工具類用于運行setlistenertoserialpor方法,setlistenertoserialpor方法用于為指定的串口設置串口監(jiān)聽器;
23、所述數據持久層用于運行getlastinfo方法,所述getlastinfo方法用于獲取數據庫中存儲的最后一條水位數據,并將其存儲到redis中;
24、所述網絡通訊模塊包括服務端和客戶端;
25、所述服務端用于運行sendmessage方法、onopen方法和onclose方法;
26、sendmessage方法用于向客戶端發(fā)送消息,作為onmessage事件,onopen方法用于建立websocket連接時打印連接成功的消息,作為onopen事件,onclose方法用于關閉websocket連接時打印連接失敗的消息,作為onclose事件;
27、所述客戶端用于運行connect方法、registercallback方法和unregistercallback方法,connect方法用于連接服務端,在服務器支持websocket連接時建立websocket連接對象,并對連接對象的onopen事件、onclose事件和onmessage事件進行處理,registercallback方法用于注冊回調函數,unregistercallback方法用于取消注冊回調函數。
28、本發(fā)明的有益效果為:
29、(1)本發(fā)明通過使用java的擴展包rxtxcomm以及分類、提取、存儲數據到redis的處理方法,可以更有效地獲取和處理地鐵軌行區(qū)水位態(tài)勢數據,這將確保準確性和可靠性,為后續(xù)的數據分析和決策提供可信的基礎,解決了數據獲取和處理問題。
30、(2)本發(fā)明采用websocket連接實現全雙工通信協議,可以減少前端界面的數據請求次數和連接建立的開銷。這將大大降低系統的網絡負載,提高數據展示的性能和響應速度,使用戶能夠更流暢地查看實時的水位態(tài)勢數據,實現數據展示性能的提升。
31、(3)本發(fā)明通過建立多個websocket連接并統一向連接的客戶端發(fā)送數據,可以高效地傳輸水位態(tài)勢數據,這樣一來,系統可以快速、實時地將最新的數據傳送給前端界面,為用戶提供即時準確的信息,使其能夠更好地監(jiān)控和分析地鐵軌行區(qū)的水位情況,實現高效的數據傳輸和展示。