使用射頻IC卡管理貨場的系統設計
文章出處:http://5052h112.com 作者:孫玉潔 余雪麗 李玉冰 人氣: 發表時間:2011年12月02日
[文章內容簡介]:主要介紹一種射頻IC卡就貨場事務管理的硬件和軟件設計。硬件設計方面簡述系統結構;軟件方面給出了開發環境.設計架構和關鍵代碼。數據庫服務器采用SQLServer。靈活的C/S結構使得系統擴充很容易。
1、引言
如何對大型貨場中的貨物進行管理,是一個非常關鍵的問題 本文介紹了一種對貨物進入貨場進行驗證和查收的解決方案。即:使用手持電腦與遠程數據服務器聯系,對貨物進行管理。
2、系統總體方案
本系統采用美國HP公司的SI850射頻識別IC卡讀寫器、HP掌上電腦、HP射頻卡、無線接收裝置、以太網絡開發貨場管理系統 系統具有目標識別、身份驗證、數據采集、數據加密和數據庫管理的功能。系統由掌上電腦、與掌上電腦匹配的讀寫卡器、本地服務器、數據庫管理系統、掌上電腦和數據庫管理微機及本地服務器的通訊系統部分組成。本地主機與掌上電腦之間的通信采用TCP/IP協議。采用C/S模式。本地服務器和數據庫服務器之問用基于以太網的ADO接口進行數據交流。
本系統主要目的是對物流運輸行業中的貨場部分進行管理, 當有車輛到達時。如網絡連通.使用車輛所帶的IC卡查詢遠程數據庫.如網絡不通.則讀出IC卡中的物料清單.并將貨物清單顯示在掌上電腦上.供貨場管理人員審核,如無誤.則將貨物已到貨場信息寫入數據庫服務器.并寫入IC卡.通過使用IC卡的方式.管理物流問題,具體流程如圖1所示。
3、系統硬件結構
系統由遠程數據服務器,本地服務器,若干掌上電腦及讀卡器組成。如圖2所示。若干個掌上電腦通過無線通訊網絡與本地服務器通訊.本地服務器與遠程數據庫服務器使用以太網通訊。
4、軟件結構
掌上電腦使用微軟WINCE操作系統.該客戶端軟件使用EVC4.0為開發工具.使用Pocket PC 2003 SDK庫.本地服務器程序使用VC6.0開發.數據庫服務器使用SQL Server為數據庫平臺,通訊都采用TCP, 中的面向連接的服務。其中掌上電腦與本地服務器之間通訊采用無線通訊。掌上電腦使用紅外端口。而本地服務器采用無線網卡。本地服務器與數據庫服務器通訊使用以太網。
1.掌上電腦軟件
掌上電腦軟件分為兩部份。第一部分為讀,寫卡軟件。第二部分為無線通訊部分.無線通訊與普通通訊軟件沒有任何區別,系統底層屏蔽了有線與無線的通訊差異,都采用WINSOCKET通訊。
(1) 讀寫卡部份
HP公司提供了掌上電腦的讀寫器.并將掌上電腦安裝在其中。通過這一單元來進行卡的讀寫。編寫卡讀寫軟件時,只須將隨讀寫器一起提供的動態連接庫安裝到臺式機上,并且連接到EVC4、0的工程內。對于此動態連接庫來說。常用的函數有四個:
第一個函數用來打開與讀寫器的連接。第一個參數為返回的句柄hCom.第二個參數為用來通訊的端口。可以設為“COM1:”到“COM9”中的一個。第二個函數用來關閉打開的句柄。
第三個函數用來向卡中寫入一個32位整數.hCom 為端口句柄,word 為寫入整數的地址。data為寫入的32位整形數據。標志flags一般設為0。
第四個函數用來從卡中讀人數據,*data為指向讀人的整形數據的指針。word_ start為讀人數據的起始地址,word_length要讀入的數據個數.flags同上。使用這些函數時應按如下步驟:首先用RFIDOpen打開一個與讀寫器相連的端口.并獲得一個句柄:接著用SaharaWfitd SaharaRead讀寫卡;讀寫完畢后用RHDCIose關閉端口以釋放資源。必須注意的是打開通訊口時必須用一個循環從Com1開始向上試探。如果某個口被成功打開(返回值為scs_OK)時退出循環。另外須注意讀寫卡時可能會出錯.所以用循環讀取,如果成功則退出,否則等待100豪秒后繼續讀寫.如果讀寫循環次數用完還未成功,則寫錯誤日志并退出。
(2) 通訊程序
掌上電腦通訊軟件為客戶端軟件.所以在這里主動與本地服務器通訊。遵循以下步驟:
第一根據本地服務器的IP地址和給定的端口打開一個與服務器的連接。
第二根據協議類型使用此連接向本地主機發送協議數據,或從本地主機接收數據。進行數據傳輸。
第三完成流程后斷開連接.以釋放本地服務器和掌上電腦資源。
從掌上電腦打開與本地服務器的連接使用TCP/IP協議.雖然使用無線網卡與本地服務器通訊. 由于系統屏蔽了無線通訊與有線通訊的差別,所以對程序員來說是透明的,無線通訊與有線通訊是一樣的接口,沒有任何區別。每次發送或接收的數據類型都是BYTE型的,所以當接收到一定數量的數據后。都將其轉換為相應的數據結構。關鍵代碼如下:
打開連接的關鍵代碼:
以上代碼中m_psecket是Csecket派生類的對象.
2.本地服務器端的程序
本地服務器端的程序由以下兩功能.一是建立一個監聽服務線程.用于接收掌上電腦端的連接請求。二是接收到掌上電腦的連接請求后。建立一個單獨的線程用于和掌上電腦進行通訊,并且和遠程服務器進行通訊。處理數據流動。
(1)監聽服務線程
本地服務器軟件啟動后。首先建立監聽服務線程。用于監聽掌上電腦的連接請求.即用來啟動服務程序.在本軟件中是通過菜單來啟動的.建立一個新的線程使用函數AfxBeginThread(Re.ceiveSeivice。&data)來實現,第一個參數為線程函數的執行體的函數名。第二個參數為傳遞給此線程的數據結構。用于向該線程給出一些具體的數據.成功執行此函數后.線程函數便獨立于主程序運行.直至正常退出或被異常中斷.以下是關鍵代碼:
以上代碼顯示在服務線程中接收到客戶請求后。啟動客戶線程的流程。
(2)客戶線程
客戶線程啟動后.根據接收到的套接字句柄建立新的套接字,與掌上電腦端進行通訊,接受協議數據,根據協議數據要同遠程數據庫或掌上電腦端進行數據交流.同遠程數據庫服務器進行數據交換是采用ADO組件.以下是關鍵代碼:
3.遠程數據庫服務器
遠程數據庫服務器使用SQL Server 20o0作為數據庫平臺.建立數據庫.并向本地服務器提供數據。
參考文獻:
1.方可燕主編,VC6.0實戰與精通,清華大學出版社,2000
2.Steve Holzner著,瀟湘工作室譯,VC6.0高級鳊程,人民郵電出版社2000
本文關鍵詞:射頻ic卡,tcp/ip服務程序,貨物管,頻ic卡,tcp/ip服務程序,貨物管理,ic卡,tcp/ip服務程序,貨物管理,,c卡,tcp/ip服務程序,貨物管理,i,卡,tcp/ip服務程序,貨物管理,ic,,tcp/ip服務程序,貨物管理,ic卡,tcp/ip服務程序,貨物管理,ic卡,,cp/ip服務程序,貨物管理,ic卡,i,p/ip服務程序,貨物管理,ic卡,ic,/ip服務程序,貨物管理,ic卡,ic卡,ip服務程序,貨物管理,ic卡,ic卡讀,p服務程序,貨物管理,ic卡,ic卡讀寫,服
上一篇:智能識別市場現狀及未來幾年發展趨勢[ 12-01 ]
下一篇:手機支付與IC卡應用關系分析[ 12-02 ]