《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > GPS定位數據的提取與存儲系統的設計
GPS定位數據的提取與存儲系統的設計
2016年微型機與應用第11期
鮑萍萍,陳光,王朋,王鵬輝
(東華大學 信息科學與技術學院 上海 201620)
摘要: 針對傳統的在VC++平臺上實現的GPS定位數據的提取與存儲系統已經不能滿足系統的實時性和可靠性等需求,以及軟件方面存在擴展性、兼容性、移植性差等問題,運用GPS定位技術、多線程串口通信處理技術和數據庫存儲訪問技術,應用Java語言編寫,在Eclipse開發工具上設計并實現了一套GPS定位數據的實時提取與存儲系統。測試結果表明,該系統運行穩定,實驗數據有效可靠,達到了預期的目標。
Abstract:
Key words :

  鮑萍萍,陳光,王朋,王鵬輝

  (東華大學 信息科學與技術學院 上海 201620)

  摘要:針對傳統的在VC++平臺上實現的GPS定位數據的提取與存儲系統已經不能滿足系統的實時性和可靠性等需求,以及軟件方面存在擴展性、兼容性、移植性差等問題,運用GPS定位技術、多線程串口通信處理技術和數據庫存儲訪問技術,應用Java語言編寫,在Eclipse開發工具上設計并實現了一套GPS定位數據的實時提取與存儲系統。測試結果表明,該系統運行穩定,實驗數據有效可靠,達到了預期的目標。

  關鍵詞:GPS;多線程;串口通信;數據存儲;Java

0引言

  隨著衛星導航定位技術的發展,全球衛星定位系統(Global Position System,GPS)成為目前最為常用的一種導航定位系統,其全方位、全天候、全時段、高精度等特點使得GPS的應用遙遙領先。其原理是用戶通過GPS接收機接收衛星信號,結合地理信息系統對信號進行處理,從而獲得用戶所需的經緯度、速度等信息,最終實現導航和定位 [1]。而GPS接收機中的數據提取與存儲是GPS定位中的重要組成部分。

  目前,GPS定位數據處理系統大多數在VC++平臺上實現,其擴展性、移植性、兼容性差。為改善其性能,2003年王緩緩等人[2]對GPS定位數據進行提取,增強了系統的擴展性和兼容性,但仍然存在數據不能實時接收、同步處理及存儲等問題。2006年李新源等人基于Java語言的GPS接收機的串口通信程序設計[3],整個系統結構雖然較為清晰,但其只是實現了GPS數據的提取,對數據的存儲并未研究。

  為改善已有GPS定位數據的提取與存儲功能,有效提高數據的可靠性和實時性等要求,本文基于Java的跨平臺性、開放性與面向對象等特點[3],運用GPS定位技術、多線程串口通信編程技術和數據庫存儲技術,設計了一套GPS定位數據的提取與存儲系統。該系統能實時地接收、處理和存儲GPS數據。

1系統組成

001.jpg

  GPS定位數據的提取與存儲系統主要包括GPS串口通信和GPS數據存儲兩部分,其結構圖如圖1所示。圖1系統架構圖其中,GPS串口通信部分主要實現多線程編程、串口的打開、串口數據的接收、提取處理與串口的關閉等操作;GPS數據存儲部分實現將提取處理后的數據保存在MySQL數據庫中 [24]。

2GPS串口通信

  傳統的用Java實現串口通信通常采用串口API,它以獨立jar包的方式提供一個標準擴展[5]。此系統中,采用串口和并口通信的開源Java類庫RXTX,其提供了多操作系統下的兼容javax.comm串口通信包API的實現。在Windows操作系統下,包含3個文件:RXTXcomm.jar、rxtxParallel.dll和rxtxSerial.dll,其提圖2串口通信流程圖供了通信用的Java API及相應的驅動類接口。系統在串口通信前,必須對串口驅動程序裝載。其串口操作流程圖如圖2所示[6]。

002.jpg

  2.1多線程技術

  對串口進行操作的過程中,為提高CPU的使用效率,系統采用了多線程處理技術,很好地滿足了多任務和實時性的需求[78]。

  Java有兩種實現多線程的方式:一是創建一個類繼承Thread類,并重寫run()方法;二是實現Runnable接口。本文采用繼承Thread類的方式實現多線程,主要涉及串口數據接收線程、數據提取處理線程、數據存儲線程,系統的關鍵是處理好線程之間的同步、安全和死鎖[78]。

  2.2多線程串口通信

  (1)串口數據接收

  在對GPS串口數據接收之前,必須明確GPS接收機的數據接收格式[24]。GPS接收機遵守NEMA0183標準協議,該協議內容包含GPS定位的經緯度、速度、日期時間、地面航向、衛星狀況、磁偏角等信息。本系統中,使用NEMA0183協議中的“MYMGPRMC”幀格式進行數據的提取處理。

  在進行數據接收前,首先打開串口并進行參數設置。然后,調用數據接收線程中的類實例方法對串口數據進行接收。為保證數據的可靠性和實時性,系統中設置了串口事件監聽器。其部分關鍵代碼如下,數據接收結果圖如圖3所示。

003.jpg

  (2)串口數據提取處理

  在成功接收GPS數據串后,要對其解析,轉化成相應的格式。其思路如下:首先,判斷數據串中是否含有“MYMGPRMC”數據,若存在,則截取MYMGPRMC包含的70 B數據;其次,對MYMGPRMC包含的GPS定位信息進行提取;最后,對數據作進一步的處理運算并保存在GpsData對象中,提高了代碼的健壯性。為了簡化問題,本文只提取出日期時間、經緯度、狀態、速度信息[9]。其部分關鍵代碼如下所示[2],數據提取處理圖如圖4、圖5所示。

  

004.jpg

005.jpg

3數據庫存儲

  對GPS定位數據進行提取處理后,需要將數據保存在數據庫中,方便后期的使用。本設計將GPS定位數據存儲部分作為后臺數據庫,不僅作為定位數據的容器,同時還可以隨時隨地地訪問數據庫與進行增、刪、改、查等操作[4]。

  在本系統中,將靈活可靠的MySQL作為后臺數據庫,應用JDBC技術連接數據庫。下面從數據庫的配置設計、存儲和互聯來實現高效可靠的數據存儲。

  3.1數據庫的配置與數據表的設計

  對MySQL數據庫操作前,需要對其配置。配置信息封裝在dbconfig.properties配置文件中,如圖6所示。

  

006.jpg

  本系統采用JDBC方式連接數據庫,在MySQL中,需要新建一個數據庫命名為mydb1,并添加一張數據表gpsdata用于存儲GPS定位數據。數據表的列分別命名為日期時間datetime、定位狀態status、緯度latitude、經度longitude、速度speed,并設置相應的列屬性,允許為NULL。

  3.2數據的存儲與互聯

  數據的存儲與互聯技術是存儲系統設計的核心。本設計中定義了兩個核心類:JdbcUtils工具類和JdbcUtilsImpl類。其中,JdbcUtils類主要用于實現加載配置文件、加載驅動類與獲取連接操作;JdbcUtilsImpl類主要用于向數據庫中存儲GPS數據、數據表的更新、釋放等。其部分關鍵代碼如下所示,圖7為數據存入情況。

  InputStream in = JdbcUtils.class.getClassLoader().getResourceAsStream("dbconfig.properties");

  props = new Properties();

  props.load(in);

  Class.forName(props.getProperty("driverClassName"));

  DriverManager.getConnection(props.getProperty("url"),props.getProperty("username"),props.getProperty("password"));

  String sql = "INSERT INTO gpsdata VALUES(?,?,?,?,?)";

  pstmt=con.prepareStatement(sql);pstmt.setString(1, gpsdata.getDatetime());

  ......

  pstmt.setDouble(4, gpsdata.getSpeed());

  pstmt.executeUpdate();

007.jpg

4結論

  本系統在Eclipse開發環境下,結合MySQL數據庫技術,對GPS定位數據進行接收和提取處理,并將其存入數據庫中,以供開發者后期使用。其中,系統中利用了Java中的多線程技術,將數據接收與提取處理高效地分離,有效地提高了數據的處理能力。同時,系統中加入了數據存儲部分,為數據的有效性和可靠性提供了保障,更加體現了系統的整體性能。

參考文獻

  [1] 張帥帥, 崔紅霞. GPS數據的采集提取和顯示[J]. 科技創新導報, 2013(25):2223.

  [2] 王緩緩, 李虎. 用Java實現GPS全球定位系統定位數據的提取[J]. 計算機與現代化, 2004(11):8991.

  [3] 李新源, 趙樹法, 魏宗壽,等. 基于Java語言的GPS接收機的串口通信程序設計[J]. 鐵路計算機應用, 2007, 16(5):46.

  [4] 徐涴砯, 陳光, 高孟茹. GPS船舶試航數據提取與存儲系統的開發[J]. 微型機與應用, 2013,32(23):8689.

  [5] 丁振凡, 王小明, 鄧建明,等. 基于Java的串口通信應用編程[J]. 微型機與應用, 2012, 31(13):8486.

  [6] 牛立, 王景中. GPS導航數據提取的設計與研究[J]. 微型機與應用, 2010, 29(20):13.

  [7] 李良, 朱善安. 基于Java的串口通信[J]. 電子器件, 2007, 30(2):714716,720.

  [8] 吳金鋒, 劉偉平, 黃紅斌. Java串口通信數據采控系統的設計與實現[J]. 微計算機信息, 2010, 26(10):6566.

  [9] 袁林, 曹杰. 利用VC++實現GPS全球定位系統定位數據的提取[J]. 現代電子技術, 2004, 27(24):105107.


此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 给我免费观看视频 | 久久免费播放视频 | 爱啪啪影视 | 五月天激情综合 | 婷婷草| 2021国产成人精品久久 | 99在线观看视频 | 欧美一级在线观看 | 国产精品二区三区免费播放心 | 日本不卡一二三区 | 99视频精品免视3 | 久久免费99精品久久久久久 | 国产在线成人精品 | 男人的天堂2021 | 国产永久在线观看 | 国产人人艹| 欧美视频亚洲视频 | 色婷婷六月天 | 丁香六月五月婷婷 | 99视频免费观看 | 久久99精品久久久久久青青日本 | 五月婷香 | 久久99热精品 | 免费毛片视频60分钟 | 伊人网在线视频观看 | 青草影视 | 青青艹视频在线 | 四虎网址大全 | 免费国产一区 | 欧美老女人bb | 国产欧美日韩综合精品一区二区三区 | 国外免费精品视频在线观看 | 国内精品视频九九九九 | 皮耶里诺再次出击意大利在线观看 | 免费色网址 | 天天想你在线视频免费观看高清版 | 97天天操| 久久99精品国产99久久 | 精彩视频一区二区 | 久久艹精品 | 国产婷婷高清在线观看免费 |