基於Java EE和websocket的無人機網頁監控系統(網頁地面站/源碼)

前段時間接了一個項目是關於無人機飛行監控系統的,衆所周知,目前無人機地面站已經存在兩個強大好用的開源軟件——Mission planner和QGroundControl,前者是基於C#編寫,只能運行在WIN系統,後者基於QT開發,可以跨平臺運行。市場存在的地面站都是PC端軟件,在跨平臺安裝使用方面存在短板,爲了迎合項目的需求和軟件系統的可拓展性,我和小組成員開發了網頁版的無人機監控系統,也可以把它稱作網頁地面站,但功能略微簡陋。

平臺基於無人機飛行控制系統的GPS設備、數傳設備等基礎上,通過公共移動網絡接收被監控設備傳輸的數據,在網頁平臺上顯示被監控飛行器的位置和相關參數並繪製出相應的軌跡,目前可同時監控上百架設備。通過平臺的各項飛行參數,決策者能夠隨時掌握飛行器的飛行動態,並對當下狀態做出及時響應。本系統是嵌入式平臺和計算機軟件系統共同結合的系統,採用先進的網絡通信協議和web設計方法,通過兩者的協調運行可以達到理想的監控效果,主要功能包括數據採集、數據處理、軌跡展示、地圖座標抓取、系統管理等。

前端可實時顯示被監控設備的各項指定參數,程序調用了高德地圖API的多項功能,用戶完全可以像用普通高德地圖一樣使用該平臺。

該平臺目前只是處於對無人機實時飛行狀態的監控階段。如圖所示,

首先介紹一下運行平臺:

1、eclipse Java EE、JDK1.8

2、MySQL數據庫

3、編輯語言:JAVA、JavaScript、HTML5、CSS、SQL

4、運行協議:websocket、TCP/IP

5、項目工程文件:

  • Java Resources:Java資源類文件中包含了兩個包,一個是數據庫相關的
    data類包,一個是websocket服務器Thread類包。

  • WebContent:存放關於網頁設計的全部代碼內容和配置文件。

下面分模塊介紹一下:

前端系統

前端主要應用了高德地圖JS API組件。

基於高德開發平臺

在高德發開着平臺申請賬號並申請對應的功能祕鑰,其中平臺內包括了大量的應用實例和詳細地說明文檔,前端設計思路都是基於其內部的功能接口實現的。

基於JAVA Websocket

ws的出現打破了HTTP協議的壁壘,並且豐富了網絡服務器的交互功能。雖然HTTP基於TCP/IP協議實現,但是並沒有像TCP協議一樣可以全雙工實時通信,只能是被動或單雙工交互。應用ws協議可以完全像TCP一樣進行實時雙向通信,即服務器在接收客戶端的數據同時,也可以向客戶端主動發送信息。因爲該系統需要與嵌入式系統聯動,在保證雙向實時通信的條件下,ws協議是最好的選擇。

後端系統

後端系統主要是爲數據的收發和存儲服務,即數據庫的操作和字節流的通信。其中也包括ws協議的節點功能。

基於JAVA Socket

從這一部分開始,主要用於嵌入式系統的通信。服務器程序應用了JAVA Socket字節流通信的基本的API,通過TCP協議與嵌入式系統交互。

MySQL數據庫

根據實際情況,我將TCP服務器和網頁服務器部署在了兩臺不同的主機上,並分別設計了兩個相同的數據庫,應用MySQL自有的主從複製功能,實現兩個數據庫的同步。

系統的主要構件如圖所示:

服務器如果細分的話按照上文可以分爲網頁服務器和TCP服務器兩部分。總體來說,系統主要由四部分組成,硬件數傳模塊,網頁端,服務器和數據庫組成。

將項目部署到服務器上,在瀏覽器輸入正確網址“http://localhost:8080/WebSocketDemo/”,即可進入系統。

關注公衆號HonorWang,回覆"無人機網頁地面站",即可獲得源碼。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章