基于ASP.NET的RFID刷卡系統(tǒng)設計
1.4 服務器端關鍵技術實現(xiàn)
本文引用地址:http://www.ex-cimer.com/article/266057.htm該刷卡系統(tǒng)是通過B/C模式與服務器端進行數(shù)據(jù)交換的。工作人員瀏覽完數(shù)據(jù)并關掉網頁后,服務器端就會相應地把對應客戶端的頁面文件從內存清除,刪除所有頁面的變量內存空間,并且不再運行后臺文件cs的代碼。因此為了能夠一直運行監(jiān)聽讀卡信息的模塊,必須在Global.asax[6]啟動監(jiān)聽模塊的線程。
Global.asax是ASP.NET的一個全局文件,一直保存在內存中,能夠一直運行代碼。因此把監(jiān)聽模塊的開始線程放到Global.asax下。
Monitor是監(jiān)聽模塊的開始線程。這個線程在服務器開始運行的時候就開始執(zhí)行,一直保存在InProc的運行進程中。這樣就可以保證系統(tǒng)能夠一直監(jiān)聽刷卡數(shù)據(jù)的輸入并進行處理。Monitor線程與頁面代碼相互獨立,不受各自影響,也就是就算用戶不瀏覽網頁,也可以刷卡通過讀卡器查看數(shù)據(jù)。
Application是全局變量,也就是保存數(shù)據(jù)緩沖區(qū)。如果直接采用客戶讀取端口數(shù)據(jù)的方法,那么同時只能一個用戶讀取,而且這位用戶讀取完之后,數(shù)據(jù)就消掉,因此要放在全局變量中,這樣就能夠同時讓多終端查看數(shù)據(jù)。
當線程發(fā)現(xiàn)有數(shù)據(jù)輸入的時候,馬上讀取每個字節(jié)的數(shù)據(jù),并且通過判斷協(xié)議判斷讀卡器地址取出唯一的RFID標志號。過程如圖6。
評論