<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 消費電子 > 設計應用 > 基于Android智能手機的車載監(jiān)控管理系統(tǒng)

          基于Android智能手機的車載監(jiān)控管理系統(tǒng)

          作者: 時間:2012-02-16 來源:網絡 收藏

          1 概述

          本文引用地址:http://www.ex-cimer.com/article/165889.htm

            隨著3G業(yè)務在中國的全面鋪開, 性能和用戶群體的不斷上升,將互聯(lián)網強大的應用服務能力擴展到終端上,為用戶隨時隨地的提供信息服務是社會信息化發(fā)展的必然趨勢。GIS技術也由傳統(tǒng)的單機應用向互聯(lián)網應用做轉變。隨著的迅猛發(fā)展,平臺將成為GIS技術互聯(lián)網應用新的應用平臺。

            2

            Linux內核的操作系統(tǒng),是Google 公司在2007 年11 月5 日公布的手機操作系統(tǒng),早期由Google 開發(fā),后由開放手持設備聯(lián)盟(Open Handset Alliance)開發(fā)。它采用了軟件堆層(software STack,又名以軟件疊層)的架構,主要分為三部分。底層Linux內核只提供基本功能;其他的應用軟件則由各公司自行開發(fā),部分程序以Java 編寫。目前 SDK已發(fā)布了2.2 版本,與以往的版本相比,不管是功能上還是應用程序的執(zhí)行運行速度上都做了大大的改進和提高。

            3 管理平臺的總體架構

            車輛系統(tǒng)是由終端、數據中心、終端和地圖服務器四個部分組成。終端把采集的GPS 定位信息和車輛狀態(tài)信息通過GPRS 網絡傳給數據中心,并由數據中心保存該信息和轉發(fā)給監(jiān)控終端,監(jiān)控終端得到信息后,結合地圖服務器提供的地圖信息進行顯示,直觀的展現(xiàn)監(jiān)控車輛的當前狀態(tài),并下達指令給車載終端。(見圖1)

            圖1 車載監(jiān)控管理系統(tǒng)架構

            圖1 車載監(jiān)控架構

            3.1 車載終端

            車載終端主要由GPS信號接收模塊、數據處理模塊和GPRS模塊構成。GPS信號模塊主要是接收來自定位衛(wèi)星的GPS信號,數據處理模塊采集GPS信號模塊的GPS信號并定時通過GPRS模塊向后臺監(jiān)控中心發(fā)送GPS定位數據實現(xiàn)實時監(jiān)控。

            3.2 數據中心

            數據中心包括中心數據庫、數據通訊服務兩個部分。中心數據庫存放GPS數據及其他的數據;數據通訊服務基于C/S 模式,主要功能是維護車載終端、監(jiān)控終端與數據中心的連接,并承擔車載終端數據與監(jiān)控終端數據交互的橋梁。

            3.3 監(jiān)控終端

            監(jiān)控終端是利用智能手機(Android 智能手機)上的監(jiān)控與數據中心服務器連接,接收車載終端轉發(fā)數據,并下發(fā)控制指令。監(jiān)控管理平臺是C/S模式的應用程序,為用戶提供一個基于地圖的監(jiān)控管理平臺,包括車輛后臺管理和車輛監(jiān)控系統(tǒng)兩個部分,車輛監(jiān)控系統(tǒng)的主要功能包括電子地圖服務、車輛實時監(jiān)控跟蹤、車輛歷史軌跡回放、車輛圍欄服務、報警處理模塊等。具體設計見第4 節(jié)。

            3.4 地圖服務器

            地圖服務器在該系統(tǒng)中指的是Google 公司提供的地圖服務器。監(jiān)控終端利用Google Android 系統(tǒng)中自帶的Google API 插件直接訪問地圖服務器,提供監(jiān)控用戶需要的電子地圖,為用戶的監(jiān)控提供直觀的可視化地理信息。

            4 基于Android 的監(jiān)控設計

            基于Android 的監(jiān)控管理主要包括監(jiān)控和管理兩大部分。管理是車輛相關信息的管理,包括駕駛員基本信息、車輛基本信息、用車記錄、警報記錄等;監(jiān)控是以電子地圖為顯示方式對車輛進行監(jiān)控,功能包括車輛位置實時跟蹤、車輛歷史軌跡回放、車輛圍欄設置、報警信息處理等。以下重點主要是對基于地圖的車輛監(jiān)控設計進行討論。

            4.1 Google API 插件

            Google API 插件是Android SDK 開發(fā)環(huán)境的擴展,通過該插件,Android 應用程序可以輕松地訪問Google 服務和數據。該插件的核心功能是地圖外部庫,可以通過其將功能強大的地圖功能添加到Android應用程序中。

            4.2 車輛實時監(jiān)控

            用戶在電子地圖上實時監(jiān)控車輛位置。本系統(tǒng)是通過Android 上的Google API 插件調用地圖服務器柵格圖像數據給予地圖顯示。(見圖2)用戶希望實時的監(jiān)控車輛,并把其車輛位置信息顯示在地圖之上。首先需要用戶選擇車輛,向服務器發(fā)起實時監(jiān)控請求,中心服務器在接收到車載終端發(fā)回的定位信息后,就轉發(fā)給監(jiān)控端。得到定位信息后,通過Google API 插件獲取當前位置的相關地圖并呈現(xiàn)在用戶面前。整個過程是中心服務器和Google 地圖服務器協(xié)同工作的結果,高效的把分布式網絡資源整合在一起。

            圖2 車輛實時監(jiān)控流程

            圖2 車輛實時監(jiān)控流程

            4.3 歷史軌跡回放

            歷史軌跡回是重現(xiàn)車輛某一段時間內的行駛情況,在地圖上已點、線的形式表現(xiàn)出來。監(jiān)控系統(tǒng)首先需要向中心服務器發(fā)起請求,請求某輛車某一時間段內的歷史數據。中心服務器在接收到請求后從數據庫中查詢在這一段時間內的車輛歷史數據,打包發(fā)給監(jiān)控端。監(jiān)控端再調用插件獲取地圖信息進行顯示。(見圖3)這里,中心服務器發(fā)回的歷史數據可能不是車載終端某段時間內的所有數據。在請求的某段時間內,車輛可能停留在某一位置或者在一個較小的范圍活動,此時監(jiān)控終端就沒有必要把這段的數據全部顯示出來,只需把這些點當做一個位置顯示出來即可,避免了歷史軌跡回放時,車輛終端停留在電子地圖某一位置過長時間,給用戶“死機”的假象,提高了用戶的直觀感受,也減少了中心服務器與監(jiān)控端之間數據傳輸。

            圖3 歷史軌跡回放流程

            圖3 歷史軌跡回放流程

            值得注意的是當歷史數據過多時,監(jiān)控端接收數據時需要較長的傳輸時間,為了避免用戶過多的等待,中心數據服務器可以把數據分包分批發(fā)送,讓監(jiān)控端一邊接收數據,一邊顯示數據,采用異步進行的方式,從而提高系統(tǒng)的工作效率。

            結束語

            本文基于Android 智能手機平臺實現(xiàn)了車載監(jiān)控管理系統(tǒng)的設計,為車載監(jiān)控輔助決策提供了靈活、快捷的解決方案。類似這種的監(jiān)控系統(tǒng)目前已在各行各業(yè)廣泛應用。隨著應用的深入及集成技術的發(fā)展,它將更大地影響到人們的生活。

            參考文獻

           ?。?]高博?;贘2ME 的移動通信技術的研究與應用[D]。沈陽工業(yè)大學碩士學位論文,2006.

           ?。?]張仕成?;贕oogle Android 平臺的應用程序開發(fā)與研究[J]。電腦知識與技術。2009.



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();