新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > UPS監(jiān)控軟件設計

UPS監(jiān)控軟件設計

作者: 時間:2011-02-20 來源:網絡 收藏

2.2 軟件實現(xiàn)

該軟件包含2個部分:數據庫部分和應用程序部分。在本程序里面,將使用Microsoft Access 2000來建立數據庫,使用VisualBasic6.0來編制應用程序。數據庫部分包含3個表格:用戶表,事件日志表和數據日志表。用戶表中包含該用戶的帳號,密碼和用戶類型;事件日志表中包含日期,時間,事件描述,事件處理等各項內容;數據日志表中包含日期,時間和UPS的主要運行狀態(tài)參數。

要使用該軟件必須輸入用戶名和密碼,軟件根據數據庫中的資料判斷該用戶的注冊類型,決定該軟件的使用權限。如果沒有這個用戶,則請求用戶注冊成為新用戶。用戶注冊時,要填寫一些必要的個人信息,如果該注冊名已經存在,系統(tǒng)將要求采用其它的用戶名重新注冊,保存后存放到用戶表中去。只有系統(tǒng)管理員級別的用戶才能使用該軟件的所有功能,一般用戶只能使用該監(jiān)視方面的功能。

電源監(jiān)控軟件開發(fā)的關鍵環(huán)節(jié)是如何實現(xiàn)計算機串并口與電源設備的通信(即計算機采集電源設備送出的狀態(tài)信號,經分析處理后在終端上顯示或發(fā)出控制信號送往電源設備),而最簡單的信息傳送方式就是使用串行通信。VB中提供了一個重要的通信控件:MSComm。在本程序中使用到該軟件的5個重要屬性:CommPort,Settings,PortOpen,Input,Output。Settings屬性設置為“1200,N,8,1”。PortOpen屬性使用前必須打開,用完后必須關閉。圖3是該監(jiān)控軟件的主流程圖。

圖3 上位機監(jiān)控軟件主流程圖

該軟件包含對30多種電源事件的處理,處理的方式有:通知系統(tǒng)管理員,執(zhí)行命令文件,發(fā)送電子郵件或傳呼信息給指定的用戶報警,在嚴重的情況下執(zhí)行文件自動保存后關閉系統(tǒng)。這里主要通過調用系統(tǒng)的API函數來實現(xiàn)。實際上,在整個軟件的編寫過程中,很多子程序都用到了相應的API函數調用。使用Windows API,可以訪問常用代碼庫,使用通過測試的和認證過的代碼,獲得跨平臺的兼容性,得到一個更小巧的應用程序。

該軟件通過輸出電流來推算負載百分比,而蓄電池的電壓可以反映電池的剩余容量,所以程序通過測量電池電壓并查表來近似推算蓄電池的剩余容量。并通過當前輸出電流和計算得到的電池剩余容量估算出電池的剩余放電時間,再根據得到的剩余放電時間來決定是否需要進行計算機的自動保存操作。如果自動存檔時,檔案未賦予文件名,軟件以temp格式暫存或離開,供電系統(tǒng)正常后,用戶還可查看上次關閉Windows時關閉的應用程序名稱和儲存的檔案。

由于該軟件要適應各種主流操作系統(tǒng),如Win9X和Win2000。當文件自動保存后,要退出操作系統(tǒng),安全關機。這時,要注意兩類操作系統(tǒng)的區(qū)別。在Win9X中退出操作系統(tǒng),只需調用一個底層的API函數ExitWindowsEx()就可以了,但是Win2000用的是NT的內核,Windows NT不象Win9X和DOS那樣可以隨意進行底層的操作,它非常注重系統(tǒng)每個進程的權利(這也是為什么Win9X和DOS底下病毒成災的原因),在Win2000下,要退出操作系統(tǒng),必須賦予它足夠的權限。圖4是關機子程序流程圖。

圖4 關機子程序流程圖

為了繪制UPS各個運行參數的實時平滑曲線,得到掃描的效果,本程序中使用了一個重要的API函數BitBlt。在主窗體的菜單中,“窗口”主菜單在設計時,選取“顯示窗口列表”項。這樣,不用編寫任何代碼,“窗口”主菜單下就會自動顯示MDI窗體的已打開子窗體的列表。其它子菜單的程序也很簡單,只需調用MDIForm對象的Arrange方法就可以了。“語言”菜單下的“英文”或簡體中文,編程的思路和過程是一樣的,只不過是做做翻譯工作而已。對于菜單中的“關于UPS監(jiān)控軟件”,主要是獲得注冊表中的一些系統(tǒng)信息,Visual Basic開發(fā)軟件本身也帶有這方面的例示窗體和源代碼,可以根據需要作相應的改變。

3 結語

該軟件在Windows98和Windows2000下調試通過,其功能也基本上能滿足一般UPS監(jiān)控系統(tǒng)的要求。不過,程序運行時總覺得不是很流暢,這是因為當一個窗體界面的設計中要容納多張圖片和多個控制時,將出現(xiàn)窗體顯示速度明顯變慢的現(xiàn)象。為此,將“界面設計窗體”和“功能實現(xiàn)窗體”分開處理,基本可以解決這一問題。即在設計時根據需要設計漂亮的界面,但是在全屏運行時將該界面復制到剪貼板上,然后將其作為一張圖片粘貼在功能實現(xiàn)窗體的背景上。這樣,從外觀上看效果相同,但是顯示速度明顯加快。不過,不可避免地增加了程序本身的存儲容量。


上一頁 1 2 下一頁

關鍵詞:

評論


相關推薦

技術專區(qū)

關閉