基于指紋模板的考勤系統設計
3 通信實(shí)施本文引用地址:http://dyxdggzs.com/article/162040.htm
3.1 通信設置
計算機與考勤機聯(lián)機的步驟如下,其流程如圖2所示。
?。?)通信之前,設置考勤機的波特率、數據位、校驗位、為考勤機選擇串口等。
?。?)計算機向考勤機發(fā)送聯(lián)機通信命令,并啟動(dòng)計時(shí)器響應超時(shí)。
?。?)考勤機收到聯(lián)機命令,如果允許聯(lián)機向計算機回復允許聯(lián)機的應答。
?。?)如果計算機收到考勤機的允許應答,聯(lián)機成功。如果在等待時(shí)間內沒(méi)有收到考勤機的應答,認為超時(shí),重新發(fā)送聯(lián)機命令,返回再執行(2)。超時(shí)三次以上認為聯(lián)機失敗。
圖2 計算機考勤機聯(lián)機流程圖
3.2 上傳考勤記錄
考勤機中的考勤記錄上傳到計算機的步驟如下,流程如圖3所示。
?。?)計算機向考勤機發(fā)送上傳考勤記錄命令。
?。?)考勤機收到命令,比較考勤記錄總數與已經(jīng)上傳的考勤記錄數,若考勤記錄總數等于已上傳的考勤記錄數,表明現在沒(méi)有新的考勤記錄,向計算機發(fā)送無(wú)新考勤記錄應答;若考勤記錄總數大于已上傳的考勤記錄數,表明有新的考勤記錄沒(méi)有上傳,將20條新的考勤記錄組成一個(gè)數據包(如2.2節所述),向計算機發(fā)送數據包。若剩余考勤記錄小于20條,將不足部分的每個(gè)字節設置為255。
?。?)計算機收到數據包檢查該數據包是否是考勤記錄包。
?。?)如果是考勤記錄包,校驗該記錄包;如果不是考勤記錄包,重新執行(1)。
?。?)如果校驗正確,將每條考勤記錄保存到數據庫;如果校驗錯誤,重新執行(1)。
?。?)如果保存數據成功,轉到(1),上傳剩余的考勤記錄,直到上傳完畢所有考勤記錄;如果保存錯誤,轉到(1)重新執行。(4),(5),(6)步中重新執行(1)最多三次,三次以上就認為上傳考勤記錄失敗。
圖3 上傳考勤記錄流程圖
評論