王磊
摘要:文章通過對無線網(wǎng)絡電子時鐘軟件部分實現(xiàn)過程的介紹,為在信息技術和網(wǎng)絡技術高速發(fā)展的環(huán)境下開發(fā)嵌入式設備與服務器端交互的軟件,提供了一種有效的解決方案。
關鍵詞:無線網(wǎng);電子鐘;C/S架構
隨著信息技術和網(wǎng)絡技術的高速發(fā)展,國內各高校,包括一些中小學,大多對學?,F(xiàn)有的網(wǎng)絡設備進行了升級改造,而且很多學校都擁有了自己的無線網(wǎng)絡環(huán)境,從而滿足了互聯(lián)網(wǎng)時代運用現(xiàn)代化教學手段進行教學的需要。遼寧軌道交通職業(yè)學院于2014年9月搬遷到新校區(qū),新校區(qū)的網(wǎng)絡基礎設施采用了國內領先、國際先進的網(wǎng)絡設備,校園實現(xiàn)了無線網(wǎng)絡全覆蓋。為了更好地發(fā)揮校園網(wǎng)絡的作用,學院在信息化建設上作了大量工作,自主開發(fā)了很多信息系統(tǒng),無線網(wǎng)絡電子時鐘就是其中之_。
1 項目描述
無線網(wǎng)絡電子時鐘項目是遼寧軌道交通職業(yè)學院的一項院級科研項目,系統(tǒng)從設計到調試、制作和安裝,全部由校內教師和學生完成,其總體架構如圖l所示,系統(tǒng)完成的功能和實現(xiàn)方式如下所述。
1.1 系統(tǒng)功能
無線網(wǎng)絡電子時鐘(以下簡稱電子鐘)通過無線網(wǎng)絡與無線電子時鐘服務器(以下簡稱服務器)通信,實現(xiàn)各種功能。
1.1.1 自動校時功能
系統(tǒng)可以實現(xiàn)電子鐘與服務器時間同步,電子鐘在每次啟動時,通過無線網(wǎng)絡自動與服務器連接,從服務器獲得時間后,通過程序控制時間;電子鐘正常運行過程中,定時與服務器進行時間同步;服務器定期與互聯(lián)網(wǎng)上的標準時間服務器進行同步。通過以上3種手段,保證電子時鐘的時間準確,保證全院各個場所的時間統(tǒng)一。
1.1.2 時間顯示和響鈴
服務器可以為每個電子鐘下發(fā)響鈴時間列表,在保證時間準確的前提下,電子鐘顯示當前的北京時間,并通過電子鐘中存儲的時間列表和音樂,在規(guī)定的時間響鈴,作為學生上下課或各項活動開始的鈴聲。因為每個時鐘可以設置不同的時間列表,這樣就為學院實現(xiàn)錯時上下課創(chuàng)造了條件。
1.1.3 音頻會議功能
系統(tǒng)在軟件設計時采用組播技術,而且電子鐘的使用環(huán)境是在局域網(wǎng)中,能夠保證網(wǎng)絡帶寬,因此,本文設計了音頻廣播功能,根據(jù)組播技術的特點,將廣播分組,不同的組廣播不同的內容,這樣就滿足了各系在同一時間給不同的學生開會的需要,學生只需要在班級就可以聽到會議的內容。
1.1.4 狀態(tài)查詢功能
為了保證電子時鐘的正常運行,電子鐘定時向服務器發(fā)送自己的狀態(tài),同時服務器也定期去檢查電子鐘的狀態(tài),當某個電子鐘出現(xiàn)故障時,在服務器端會給出警告,提示管理人員處理相應的故障。
1.2 系統(tǒng)實現(xiàn)
系統(tǒng)的實現(xiàn)分為硬件部分和軟件部分,硬件部分采用嵌入式技術,由學院其他教師完成,這里就不再贅述其工作過程,只給出其原理框圖,供感興趣的技術人員參考(見圖2)。
軟件部分采用c/s架構,客戶端為電子鐘,通過無線網(wǎng)絡與服務器端通信,實現(xiàn)電子鐘的各項功能。本文將詳細介紹客戶端和服務器端的軟件設計思路和實現(xiàn)方法。
2 客戶端軟件設計
客戶端軟件設計過程中,首先應考慮的是加載硬件各模塊的驅動,包括無線WIFI驅動、音頻芯片驅動、顯示模塊驅動等。為了提高開發(fā)效率,也為了體現(xiàn)模塊化編程在嵌入式系統(tǒng)中的優(yōu)勢,本文采用了多進程方式設計軟件,每個模塊獨立開發(fā),運行時根據(jù)需要創(chuàng)建進程,進程間通過管道實現(xiàn)數(shù)據(jù)共享,進程運行結束后釋放相關資源,這樣既節(jié)省了系統(tǒng)資源,也可以方便、快速地查找系統(tǒng)調試過程中出現(xiàn)的問題在哪里。 客戶端軟件分為shell程序、主模塊、顯示模塊、聲音播放模塊。
2.1 shell程序
shell程序實現(xiàn)加載WIFI模塊驅動,連接校園網(wǎng),獲取IP地址,成功后創(chuàng)建主模塊進程;不成功,則調用顯示進程,提示錯誤信息。
2.2 主模塊
主模塊實現(xiàn)以下功能:通過無線網(wǎng)絡與服務器端進行交互,向服務器端發(fā)送請求和接收服務器端的命令;創(chuàng)建顯示進程;在接收到服務器端某些需要客戶端共享的數(shù)據(jù)時,負責共享數(shù)據(jù)的管理等。圖3為主模塊的程序框圖。
2.3 顯示模塊
顯示模塊實現(xiàn)以下功能:加載顯示驅動;定時獲得客戶端系統(tǒng)時間,并顯示時間;通過管道獲取響鈴時間列表,并在需要響鈴的時間創(chuàng)建聲音播放進程播放鈴聲;定時向服務器端發(fā)送電子鐘狀態(tài)。圖4為顯示模塊的程序框圖。
2.4 聲音播放模塊
聲音播放模塊實現(xiàn)以下功能:加載音頻驅動程序;播放存儲器中的音樂文件。圖5為聲音播放模塊的程序框圖。
3 服務器端軟件設計
服務器端軟件采用MVC架構,在.net
framework4.5框架下,使用C#語言開發(fā),數(shù)據(jù)庫采用soL Server2008。軟件使用UDP技術,實現(xiàn)組播和單播技術,組播用來實現(xiàn)時鐘同步、響鈴策略發(fā)放和網(wǎng)絡廣播等功能,單播用來接收電子鐘的狀態(tài)。服務器端軟件的總體架構如圖6所示。