農事信息采集系統的研究與設計
typedef struct
{
BYTE MenuState; // 菜單狀態
BYTE MenuLines; // 菜單總行數
BYTE MenuSelLine; // 選中的行在當前窗口中的編號
BYTE WindowUp; //顯示窗口上限
BYTE WindowDown; // 顯示窗口下限
}MenuStruct;
整個操作是由一系列的菜單界面組成。一個菜單棧描述了菜單的操作層次關系,比如,在啟動界面下,當按下菜單鍵后,進入到主菜單界面,此時首先要保存原來的菜單界面以方便用戶按返回按鍵時重新顯示啟動界面。這一功能是通過對菜單棧的操作實現的[3]。其主要實現函數:
PushMenu():菜單入棧函數;
PopMenu():菜單彈棧函數;
MoveSel():移動當前選擇的行函數;
程序中定義了若干個菜單狀態,代表了不同的操作階段,根據階段進行顯示和操作;每個操作階段就是一個菜單項。比如,主菜單共有4個子菜單,其地址由MAINMENU表示,MAINMENU是一個數組的名稱,定義入下:
code BYTE MAINMENU[][16]=
{{1 農事操作},{2 農事信息},{3 參數設置},{4 設備信息}};
4.2按鍵子程序
按鍵是在定時中斷中進行掃描的。標準的4×4矩陣鍵盤掃描,當檢測到有鍵按下時,產生按鍵消息,并降按鍵的代碼保存到變量中。主循環檢測到按鍵消息后,調用按鍵處理函數,該函數根據按鍵的代碼和當前菜單的狀態調用響應的處理函數進行處理。
4.3上下位機通信子程序
定義字庫和產品信息下載通信協議如下:
格式: [起始符][命令][地址][幀序號][長度][內容][校驗]
起始符:0xAA
命令: 不同命令代表不同操作,一個字節,取值范圍0x00-0xFF
地址: 0x02
禎序號:下載的數據禎的編號
長度: 數據禎信息內容的的長度,2字節,低字節在前,高字節在后。
內容: 信息內容
校驗: 從[起始符]開始到信息內容結束的所有數據字節求和,溢出的部分丟棄。
4.4軟件系統主要流程
軟件總體結構采用消息驅動的前/后臺結構,程序主體在中斷(定時、串口)的驅動下運行[4],系統軟件主流程見圖4,軟件中定義了兩類信號:UART0通信信號和主節拍信號。

定義主節拍信號定義如下:
MSI_HSEC:半秒信號
MSI_SECD:秒信號
MSI_MINU: 分信號
MSI_10MS: 10ms信號
MSI_SKEY: 按住不放,每秒產生一個按鍵信號
MSI_KEYC: 確定和取消鍵按鍵信號
MSI_DISP: 顯示信號
MSI_KEYD: 按鍵信號
系統定時器0中斷處理流程如圖5。
5 系統應用
上位機數據庫用SQL Server開發,該系統研制成功后,在四格莊示范基地投入試驗;有效實現了農事信息的電子存檔和管理,操作簡單、可靠[5],上傳部分數據庫資料見表1。
6 結語
電子技術和計算機技術的有機結合,使得農事信息采集系統能很好的迎合農業現代化生產的需求,實現了全程電子無紙化可靠、便捷操作;如果現有網絡充分利用互聯網技術,則可以有效實現大范圍區域農產品質量追蹤體系的建立;而且區域越大,本系統體現的的技術優勢和實現的經濟效益更為顯著.
本文作者創新點:1、手持操作終端及其多層菜單式操作方式便于農事信息記錄。
2、運用數據庫技術管理上傳的農事資料。
導師評語:本文針對農產品安全追蹤體系的建立,提出了一種基于現代電子技術和計算機技術全新的信息記錄和管理思路,尤其是手持操作終端的引入,方便了信息的采集和存儲;而數據庫技術和網絡技術的引入,無疑方便了信息的管理和傳輸。
評論