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