基于GPRS與TCP的車輛載重數(shù)據(jù)管理系統(tǒng)設(shè)計
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)定的要求。
c++相關(guān)文章:c++教程
評論