摘要:本文研究并利用物聯(lián)網(wǎng)內(nèi)大部分傳感器的通訊方式,實(shí)現(xiàn)了一套GPS設(shè)備定位管理系統(tǒng),有設(shè)備管理、實(shí)時(shí)數(shù)據(jù)監(jiān)控和歷史數(shù)據(jù)監(jiān)控等功能。系統(tǒng)具有高效的性能,可以保證大量連接的穩(wěn)定性和數(shù)據(jù)解析的正確性。
關(guān)鍵詞:多傳感器 數(shù)據(jù)采集 實(shí)時(shí)監(jiān)控 歷史軌跡 GPS
1 GPS系統(tǒng)需求分析
GPS系統(tǒng)主要實(shí)現(xiàn)了設(shè)備管理以及設(shè)備數(shù)據(jù)管理兩大功能。要實(shí)現(xiàn)這些功能,必須解決系統(tǒng)與設(shè)備通訊的問題、設(shè)備數(shù)據(jù)處理的問題、各種設(shè)備協(xié)議兼容的問題。通過使用多傳感器數(shù)據(jù)管理模塊,改寫協(xié)議解析器和業(yè)務(wù)處理器,完成了一套高效穩(wěn)定的GPS系統(tǒng)。
設(shè)備管理包括對(duì)設(shè)備的增刪改查等功能。新添加的設(shè)備的處理器會(huì)被插入到處理器容器里進(jìn)行管理。數(shù)據(jù)管理的功能包括實(shí)時(shí)監(jiān)控和歷史軌跡回放,實(shí)時(shí)監(jiān)控是從處理器里獲得設(shè)備的實(shí)時(shí)數(shù)據(jù)在地圖上顯示的功能。歷史軌跡回放是從數(shù)據(jù)庫(kù)里獲得設(shè)備的數(shù)據(jù),在地圖上進(jìn)行歷史軌跡的顯示。
2 GPS系統(tǒng)主要功能分析
2.1 采集數(shù)據(jù)功能 數(shù)據(jù)采集功能主要是要能接入不同廠商生產(chǎn)的定位器,通過多傳感器數(shù)據(jù)管理模塊的采集模塊把數(shù)據(jù)解析成統(tǒng)一格式,進(jìn)行業(yè)務(wù)處理和數(shù)據(jù)庫(kù)數(shù)據(jù)寫入。
設(shè)備數(shù)據(jù)經(jīng)過MSD的數(shù)據(jù)處理后,變成數(shù)據(jù)包,交給MSD的業(yè)務(wù)模塊處理。業(yè)務(wù)模塊會(huì)為設(shè)備保留一個(gè)實(shí)時(shí)數(shù)據(jù)在內(nèi)存里,并把歷史數(shù)據(jù)寫入數(shù)據(jù)庫(kù)。而GPS操作界面則通過與MSD和數(shù)據(jù)庫(kù)交互,來獲得及修改數(shù)據(jù)。
2.2 發(fā)送指令功能 管理者有時(shí)候需要想定位設(shè)備發(fā)生一些指令,如自動(dòng)監(jiān)控設(shè)置命令、清楚報(bào)警命令、里程查詢命令等。由于定位設(shè)備已經(jīng)和數(shù)據(jù)采集系統(tǒng)建立了連接,所以只能通過定位設(shè)備和數(shù)據(jù)采集系統(tǒng)之間的TCP通道向定位設(shè)備發(fā)送命令。數(shù)據(jù)采集系統(tǒng)收到客戶的一條命令,根據(jù)命令中的設(shè)備序列號(hào)找到相應(yīng)的定位設(shè)備的TCP通道,然后將命令發(fā)送給此定位設(shè)備。
2.3 實(shí)時(shí)監(jiān)控 設(shè)備大概每30秒向服務(wù)器上傳一次數(shù)據(jù),該數(shù)據(jù)除了寫入數(shù)據(jù)庫(kù),還會(huì)在內(nèi)存里存放著最新的一條,方便快速查詢?cè)O(shè)備當(dāng)前狀態(tài),不用查找數(shù)據(jù)庫(kù)。當(dāng)用戶想查詢?cè)O(shè)備當(dāng)前位置時(shí),可以選擇設(shè)備的定位功能,就會(huì)獲得該設(shè)備的當(dāng)前位置。
2.4 回放歷史軌跡 用戶選擇一個(gè)時(shí)間段,下載歷史軌跡,系統(tǒng)就讀取數(shù)據(jù)庫(kù)里這個(gè)時(shí)間段的歷史數(shù)據(jù),并計(jì)算停留時(shí)間和里程,返回給客戶端??蛻舳说玫綌?shù)據(jù)后就可以回放歷史軌跡。
3 GPS系統(tǒng)設(shè)計(jì)
3.1 系統(tǒng)總體架構(gòu) 通過MSD設(shè)備數(shù)據(jù)管理模塊來管理設(shè)備、與設(shè)備交互。MSD通過調(diào)用ADO.NET來把數(shù)據(jù)寫入數(shù)據(jù)庫(kù)。
用WCF技術(shù)實(shí)現(xiàn)的Service接口,提供了對(duì)設(shè)備、MSD服務(wù)器、設(shè)備數(shù)據(jù)的操作接口。當(dāng)用戶需要調(diào)用讀取設(shè)備實(shí)時(shí)數(shù)據(jù)就可以從MSD里獲取該設(shè)備的處理器,讀取其實(shí)時(shí)數(shù)據(jù)。當(dāng)用戶需要讀取歷史數(shù)據(jù)時(shí),就可以通過ADO.NET構(gòu)成的數(shù)據(jù)層模塊直接向數(shù)據(jù)庫(kù)查詢。
使用ASP.NET實(shí)現(xiàn)的網(wǎng)站,是為了給用戶提供一個(gè)B/S架構(gòu)的操作界面,僅僅是實(shí)現(xiàn)了一個(gè)視圖層。它通過服務(wù)代理,向WCFService請(qǐng)求數(shù)據(jù)。并以AJAX的方式在客戶端呈現(xiàn)數(shù)據(jù)與地圖。
3.2 調(diào)用多傳感器數(shù)據(jù)管理模塊的開發(fā)方法 要使用多傳感器數(shù)據(jù)管理模塊來開發(fā)傳感器管理系統(tǒng),必須做以下兩步開發(fā)。
3.2.1 解析器的開發(fā):系統(tǒng)可以動(dòng)態(tài)插入解析器,每種解析器對(duì)應(yīng)一種數(shù)據(jù)編碼格式。系統(tǒng)定義了解析器的接口,解析器類只要繼承該接口實(shí)現(xiàn)其數(shù)據(jù)解析的函數(shù)。就能完成數(shù)據(jù)的解析。
3.2.2 業(yè)務(wù)處理類的開發(fā):業(yè)務(wù)處理基類,有關(guān)于設(shè)備連接、設(shè)備認(rèn)證、設(shè)備數(shù)據(jù)接收、設(shè)備斷開的事件函數(shù)。用戶可以通過函數(shù)重寫,來實(shí)現(xiàn)各種業(yè)務(wù)擴(kuò)展。
4 GPS系統(tǒng)實(shí)現(xiàn)
4.1 設(shè)備管理實(shí)現(xiàn)
4.1.1 設(shè)備信息查詢
上圖是設(shè)備管理的主界面,左邊是操作菜單,分為設(shè)備信息和設(shè)備數(shù)據(jù)。
設(shè)備信息,用于管理設(shè)備的增刪改查。在設(shè)備信息的最后一列是定位,當(dāng)點(diǎn)擊點(diǎn)位功能,頁面就會(huì)跳到設(shè)備數(shù)據(jù)選項(xiàng)卡。并進(jìn)入實(shí)時(shí)數(shù)據(jù)模式。
4.2 設(shè)備數(shù)據(jù)管理實(shí)現(xiàn)
設(shè)備數(shù)據(jù)包括地圖欄、歷史數(shù)據(jù)操作欄歷史數(shù)據(jù)列表欄。側(cè)欄都收起后,地圖會(huì)達(dá)到最大化。我們可以看到設(shè)備的當(dāng)前信息。
打開設(shè)備歷史數(shù)據(jù)操作欄,可以選擇時(shí)間段。通過AJAX下載歷史數(shù)據(jù)并播放歷史軌跡。下載的歷史數(shù)據(jù)可以在歷史數(shù)據(jù)列表欄查看,如果點(diǎn)擊播放,就會(huì)在地圖欄繪制數(shù)據(jù)的歷史軌跡。
5 總結(jié)
本系統(tǒng)通過對(duì)多種傳感器的研究,研究出一套利用多傳感器數(shù)據(jù)采集技術(shù)實(shí)現(xiàn)的GPS定位設(shè)備管理系統(tǒng)。通過簡(jiǎn)單的業(yè)務(wù)擴(kuò)展,便能完成對(duì)各種傳感器的設(shè)備與數(shù)據(jù)管理。從而有效的解決了物聯(lián)網(wǎng)中數(shù)據(jù)采集的核心技術(shù)問題以及設(shè)備識(shí)別管理的技術(shù)問題。
參考文獻(xiàn):
[1]Robert Vieira.Beginning SQL Server 2005 Programming[M]. 北京:清華大學(xué)出版社,2007.
[2]彭仁夔.ExtJS源碼分析與開發(fā)實(shí)例[M].北京:電子工業(yè)出版社,2009.
[3]Juditb Bisbop.C# 3.0 Design Patterns[M].北京:機(jī)械工業(yè)出版社,2009.
基金項(xiàng)目:國(guó)家基金(60903165)和廣東省基金(9151064007000004)。