基于GPRS與TCP的車輛載重數(shù)據(jù)管理系統(tǒng)設(shè)計
掃描二維碼
隨時隨地手機看文章
隨著當(dāng)今社會的發(fā)展和人們物質(zhì)生活水平的提高,機動車已經(jīng)進入了千家萬戶,車輛的過多給公路管理起來造成一定的困難,特別是貨車的管理。
盡管公路局已經(jīng)在公路的每一段才設(shè)置了稱重收費站,但貨車司機還是采用站外卸貨,繞行,或者液壓裝置等一些高科技的手段,逃避檢測,同時貨車排隊等候檢測,也會造成公路的堵塞。
在貨車行駛的過程中稱重可以很好的解決公路交通問題,但是貨車的車載終端系統(tǒng)的配置不適合對大量數(shù)據(jù)進行分析和存儲,因此在貨車行駛中將檢測到的載重數(shù)據(jù)傳輸?shù)焦芾硐到y(tǒng),是解決問題的一個關(guān)鍵步驟。
1 系統(tǒng)的開發(fā)環(huán)境
本系統(tǒng)是由Visual C++6.0結(jié)合SQL Server 2000開發(fā)而成,使用ODBC操作數(shù)據(jù)庫,VC為數(shù)據(jù)庫開發(fā)提高了良好的開發(fā)環(huán)境,ODBC能以統(tǒng)一的方式處理所以的數(shù)據(jù)庫。
在數(shù)據(jù)傳輸方面,本系統(tǒng)采用GPRS和TCP兩種傳輸方式,實現(xiàn)了對數(shù)據(jù)庫管理系統(tǒng)的操作。與以往的車載系統(tǒng)采用GSM傳輸相比較,有一下優(yōu)點:
①GPRS采用分組交換技術(shù),發(fā)送數(shù)據(jù)長度不受限制,而GSM每次發(fā)送最多只能有140個字節(jié)。
②GPRS是雙向的,可以確切知道信息發(fā)送成敗,而GSM是單向的。
③GPRS費用為0.01元/k,即1分錢可以傳輸數(shù)據(jù)1024個字節(jié)。而GSM發(fā)送140個字節(jié)需要0.1元。
④GPRS的延時時間很短。GPRS發(fā)送60字節(jié)延時5s左右,而GSM要延時10s以上。
2 系統(tǒng)的結(jié)構(gòu)設(shè)計
2.1 系統(tǒng)模塊設(shè)計
系統(tǒng)有6個模塊,用戶管理模塊、貨車信息模塊、貨車載重模塊、貨車超載模塊、載重查詢模塊、超載處理模塊。各個模塊直接的關(guān)系示意圖如圖1所示。
2.2 系統(tǒng)模塊功能
1)用戶管理模塊 此模塊用來管理用戶的信息,用戶分為管理權(quán)限和使用權(quán)限,用戶以管理的權(quán)限進入管理系統(tǒng)后,可以添加、刪除和查看用戶信息,還可以修改用戶的密碼。
2)貨車信息模塊 此模塊用來管理貨車的基本信息,用戶可以查看貨車的信息,可以根據(jù)貨車的車牌號、車主或者注冊時間查詢貨車信息,當(dāng)用戶以管理權(quán)限進入時,可以添加、刪除貨車信息。
3)貨車載重模塊 此模塊用來顯示貨車最后一次檢測時的載重值,包括查詢貨車載重時的時間,用戶可以根據(jù)車牌號查詢這輛車的載重時間和載重值。信息不可以被修改,只能通過查詢覆蓋。
4)貨車超載模塊此模塊顯示貨車的超載信息,包括所有的歷史超載信息,因為要保護超載數(shù)據(jù),信息不能被添加、修改和刪除,任何權(quán)限的用戶只能查詢這些信息,可通過車牌號來查詢貨車的的超載信息。
5)栽重查詢模塊此模塊能夠讓用戶查詢到貨車當(dāng)前的載重,并將查詢到的信息記錄到貨車載重數(shù)據(jù)庫中,如果查詢到的信息超載,同時會查詢得到的數(shù)據(jù)記錄到貨車超載數(shù)據(jù)庫中去。
6)超載處理模塊此模塊能夠自動處理從車載終端得到的超載信息,并且處理信息,將信息內(nèi)容記錄到貨車超載表中。此過程在后臺進行,不需要用戶對其進行操作,用戶只能夠看到超載信息。
3 系統(tǒng)數(shù)據(jù)庫設(shè)計
數(shù)據(jù)庫是儲存和處理數(shù)據(jù)的倉庫,是一個系統(tǒng)的重要部分,數(shù)據(jù)庫不僅能夠存儲個管理數(shù)據(jù),而且能夠提供用戶所需的數(shù)據(jù)管理方式。
本系統(tǒng)的數(shù)據(jù)庫使用SQL Server 2000設(shè)計,主要包括5方面的數(shù)據(jù):
1)用戶管理表(TABUSER):用戶名(主鍵)、密碼、權(quán)限;
2)貨車信息表(TABMESSAGE):車牌號(主鍵)、車主姓名、注冊時間、歸屬地、貨車品牌、貨車類型、貨車載重、超載次數(shù)、關(guān)聯(lián)字符;
3)貨車載重表(TABLOAD):編號(主鍵)、車牌號、日期、時間、載重、是否超載;
4)貨車超載表(TABOVERLOAD):編號(主鍵)、車牌號、超載日期、超載時間、載重;
5)貨車車牌號管理模塊(TABTRUCKNUMBER):車牌標(biāo)志(主鍵)、歸屬省、歸屬地。
4 系統(tǒng)界面設(shè)計
系統(tǒng)主界面采用MFC下的對話框模式,主界面由用戶登陸管理和貨車信息管理組成,包括貨車基本信息、載重信息和超載信息等,通過Tab控件,對貨車信息的顯示進行控制。界面圖形如圖2所示。
5 數(shù)據(jù)無線傳輸設(shè)計
本系統(tǒng)中,對貨車車載終端的數(shù)據(jù)通信有兩個部分,一是系統(tǒng)服務(wù)器主動查詢車載終端的載重信息,終端得到命令后,將載重信息返回給系統(tǒng)服務(wù)器。二是車載終端自動檢測載重信息,并將超載信息自動發(fā)送到系統(tǒng)服務(wù)器。
當(dāng)車載終端的數(shù)量很多時,系統(tǒng)要接受的信息量就比較大,而主動查詢信息時,從命令發(fā)出到數(shù)據(jù)到終端信息返回需要一定的時間,所以只用一種通信方式會給信息接受產(chǎn)生混亂,這里主動查詢用GPRS通信,自動接受用TCP通信。如圖3所示。
5.1 GPRS通信
本系統(tǒng)中,使用的GPRS模塊的產(chǎn)品型號是AL-GPRS-S100,通過串口和終端連接。AL-GPRS-5100是南京沃龍電子科技有限公司設(shè)計的一款GPRS透明傳輸終端(GPRSDTU),內(nèi)置工業(yè)級GPRS模塊,支持DDP、DNS、VIPS多種通訊模式。具有RS232接口的工業(yè)設(shè)備無需更改任何軟件即可通過GPRS無線聯(lián)網(wǎng)。
VC連接串口要插入MSComm串口控件,作為一個串行通訊控件為程序員串口通訊編程節(jié)省了很多時間,當(dāng)控件載入對話框中時,會自動創(chuàng)建控件CMSComm的類。
5.2 TCP通信
系統(tǒng)和車載終端不是一個局域網(wǎng),所以首先要穿透局域網(wǎng),這里采用“TCP打孔”,“TCP打孔”與其他的方法相比較,具有較易實現(xiàn)、效率高等優(yōu)點,基本原理是:處于局域網(wǎng)的用戶先與公網(wǎng)上的一個連接服務(wù)器建立輔助連接,在呼叫發(fā)生時,通過連接服務(wù)器的協(xié)助在呼叫雙方間建立TCP直連。
VC進行網(wǎng)絡(luò)通信要插入CSocket類,CSocket支持同步操作,可以單獨使用,通常情況下與CSocketFile、CArchive類一起實現(xiàn)數(shù)據(jù)的發(fā)送和接收。
TCP接收數(shù)據(jù)程序:
6 數(shù)據(jù)傳輸設(shè)計
6.1 數(shù)據(jù)發(fā)送設(shè)計
在載重查詢模塊中,用戶通過車牌號對貨車載重查詢時,發(fā)送數(shù)據(jù)。具體過程是:當(dāng)輸入查詢的車牌號時,通過在貨車信息表(TABMESS AGE)查詢車牌號,將對應(yīng)的關(guān)聯(lián)字符作為查詢命令,發(fā)送出去。數(shù)據(jù)發(fā)送過程如圖4所示。
6.2 數(shù)據(jù)接收設(shè)計
在載重查詢模塊和超載處理模塊中,系統(tǒng)接收數(shù)據(jù),具體過程是:系統(tǒng)接受的每一個數(shù)據(jù)是由兩部分組成,關(guān)聯(lián)字符+貨車載重,先將數(shù)據(jù)分開,通過關(guān)聯(lián)字符在貨車信息表(TABMESSAGE)查詢出對應(yīng)的車牌號,再根據(jù)車牌號在貨車載重表(TABLOAD)中查找,將貨車載重的數(shù)據(jù)修改或者新建。
同時通過關(guān)聯(lián)字符在貨車信息表(TABMESSAGE)查詢出對應(yīng)的載重,比較數(shù)據(jù)表中的載重值和接收到的載重值大小,決定是否將得到時間保存到貨車超載表(TABOVERLOAD)中。數(shù)據(jù)接受過程如圖5所示。
6.3 對話框界面設(shè)計
界面主要包括串口連接部分、發(fā)送數(shù)據(jù)部分和接受數(shù)據(jù)部分。串口部分的參數(shù)選擇由組合框提供,要發(fā)送的數(shù)據(jù)有編輯框輸入發(fā)送,接收的數(shù)據(jù)和接受數(shù)據(jù)的時間保存在列表框中,對話框的界面如圖6所示。
例:在貨車信息表中,車牌號為“陜A00000”,對應(yīng)的關(guān)聯(lián)字符為“SHAN0000”,載重為“20”。當(dāng)查詢此貨車載重時,在文本框中輸入“陜A00000”,通過貨車信息表查到關(guān)聯(lián)字符“SHAN0000”。
將關(guān)聯(lián)字符發(fā)送出去。當(dāng)接受到字符“SHAN000025.000”時,先將字符分開成“SHAN0000”與“25.000”,在貨車信息表中查找關(guān)聯(lián)字符,得到車牌號和載重,比較載重和字符“25.000”大小,得到超載,然后將車牌號和超載字符“25.000”保存到貨車超載表中。
7 結(jié)束語
文中闡述了使用Visual C++6.0和SQL server 2000設(shè)計一個管理系統(tǒng)的實現(xiàn)思想和管理方法,以及詳細介紹了對外界進行數(shù)據(jù)通信,達到了系統(tǒng)對車載終端的檢測,以及對貨車信息的管理,滿足了高可靠、高穩(wěn)定的要求。