基于GPRS與TCP的車(chē)輛載重數據管理系統設計

5.2 TCP通信
系統和車(chē)載終端不是一個(gè)局域網(wǎng),所以首先要穿透局域網(wǎng),這里采用“TCP打孔”,“TCP打孔”與其他的方法相比較,具有較易實(shí)現、效率高等優(yōu)點(diǎn),基本原理是:處于局域網(wǎng)的用戶(hù)先與公網(wǎng)上的一個(gè)連接服務(wù)器建立輔助連接,在呼叫發(fā)生時(shí),通過(guò)連接服務(wù)器的協(xié)助在呼叫雙方間建立TCP直連。
VC進(jìn)行網(wǎng)絡(luò )通信要插入CSocket類(lèi),CSocket支持同步操作,可以單獨使用,通常情況下與CSocketFile、CArchive類(lèi)一起實(shí)現數據的發(fā)送和接收。
TCP接收數據程序:

6 數據傳輸設計
6.1 數據發(fā)送設計
在載重查詢(xún)模塊中,用戶(hù)通過(guò)車(chē)牌號對貨車(chē)載重查詢(xún)時(shí),發(fā)送數據。具體過(guò)程是:當輸入查詢(xún)的車(chē)牌號時(shí),通過(guò)在貨車(chē)信息表(TABMESS AGE)查詢(xún)車(chē)牌號,將對應的關(guān)聯(lián)字符作為查詢(xún)命令,發(fā)送出去。數據發(fā)送過(guò)程如圖4所示。

6.2 數據接收設計
在載重查詢(xún)模塊和超載處理模塊中,系統接收數據,具體過(guò)程是:系統接受的每一個(gè)數據是由兩部分組成,關(guān)聯(lián)字符+貨車(chē)載重,先將數據分開(kāi),通過(guò)關(guān)聯(lián)字符在貨車(chē)信息表(TABMESSAGE)查詢(xún)出對應的車(chē)牌號,再根據車(chē)牌號在貨車(chē)載重表(TABLOAD)中查找,將貨車(chē)載重的數據修改或者新建。
同時(shí)通過(guò)關(guān)聯(lián)字符在貨車(chē)信息表(TABMESSAGE)查詢(xún)出對應的載重,比較數據表中的載重值和接收到的載重值大小,決定是否將得到時(shí)間保存到貨車(chē)超載表(TABOVERLOAD)中。數據接受過(guò)程如圖5所示。

6.3 對話(huà)框界面設計
界面主要包括串口連接部分、發(fā)送數據部分和接受數據部分。串口部分的參數選擇由組合框提供,要發(fā)送的數據有編輯框輸入發(fā)送,接收的數據和接受數據的時(shí)間保存在列表框中,對話(huà)框的界面如圖6所示。

例:在貨車(chē)信息表中,車(chē)牌號為“陜A00000”,對應的關(guān)聯(lián)字符為“SHAN0000”,載重為“20”。當查詢(xún)此貨車(chē)載重時(shí),在文本框中輸入“陜A00000”,通過(guò)貨車(chē)信息表查到關(guān)聯(lián)字符“SHAN0000”。
將關(guān)聯(lián)字符發(fā)送出去。當接受到字符“SHAN000025.000”時(shí),先將字符分開(kāi)成“SHAN0000”與“25.000”,在貨車(chē)信息表中查找關(guān)聯(lián)字符,得到車(chē)牌號和載重,比較載重和字符“25.000”大小,得到超載,然后將車(chē)牌號和超載字符“25.000”保存到貨車(chē)超載表中。
7 結束語(yǔ)
文中闡述了使用Visual C++6.0和SQL server 2000設計一個(gè)管理系統的實(shí)現思想和管理方法,以及詳細介紹了對外界進(jìn)行數據通信,達到了系統對車(chē)載終端的檢測,以及對貨車(chē)信息的管理,滿(mǎn)足了高可靠、高穩定的要求。
c++相關(guān)文章:c++教程
評論