基于ARM9與Linux的門禁監(jiān)控系統(tǒng)軟件設(shè)計
3.2 后臺設(shè)計
當(dāng)系統(tǒng)運行后,門禁控制器會一直運行主監(jiān)控程序,主監(jiān)控程序存在兩種工作方式,分別為調(diào)試模式和監(jiān)控模式。
3.2.1 調(diào)試模式
在調(diào)試模式下,可以對門禁控制器進(jìn)行一些基本的設(shè)置:包括有門禁控制器的IP設(shè)置,系統(tǒng)管理員用戶名及密碼設(shè)置,卡權(quán)限設(shè)置等操作,在此部分,需要配合圖形環(huán)境方便調(diào)試,本系統(tǒng)采用minigui嵌入式圖形庫。
MiniGUI下的通訊是一種類似于Win32的消息機制,是由某公司開發(fā)的自由軟件,遵循LGPL協(xié)議,可以為嵌入式linux系統(tǒng)建立的一個快速,穩(wěn)定和輕量級的圖形用戶界面支持系統(tǒng)。
3.2.2 監(jiān)控模式
在工作模式下,后臺駐留程序會時刻監(jiān)視是否有刷卡信息,在檢測到刷卡信息后,后臺駐留程序通過訪問數(shù)據(jù)庫進(jìn)行卡信息的比對,只有當(dāng)比對通過后,方可進(jìn)行門打開動作。
由于在開門的同時,需要保存圖片至數(shù)據(jù)庫,而此時,可能會存在客戶端對系統(tǒng)存儲圖片的訪問,這會造成對相同數(shù)據(jù)庫的訪問沖突,所以系統(tǒng)在接收到客戶端訪問系統(tǒng)存儲圖片請求的時候,前端CGI服務(wù)程序通過命名管道的進(jìn)程間通信方式和后臺監(jiān)控程序通信,以獲得數(shù)據(jù)庫訪問句柄,在客戶端訪問結(jié)束后,前端CGI服務(wù)程序會釋放數(shù)據(jù)庫句柄。
本系統(tǒng)中由于涉及到頻繁的數(shù)據(jù)庫存取操作,基于ARM9的硬件平臺,選用數(shù)據(jù)庫為Berkeley DB數(shù)據(jù)庫,Berkeley DB是歷史悠久的嵌入式數(shù)據(jù)庫系統(tǒng),主要應(yīng)用在UNIX/LINUX操作系統(tǒng)上,其設(shè)計思想是簡單、小巧、可靠、高性能,滿足本系統(tǒng)的需求。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論