張亞嬌,張智剛,羅錫文,單鵬輝
(華南農(nóng)業(yè)大學(xué) a.工程學(xué)院;b.南方農(nóng)業(yè)機(jī)械與裝備關(guān)鍵技術(shù)教育部重點(diǎn)實(shí)驗(yàn)室,廣州 510642)
?
基于WinCE的農(nóng)機(jī)導(dǎo)航監(jiān)控終端軟件系統(tǒng)設(shè)計(jì)與實(shí)驗(yàn)
張亞嬌a,b,張智剛a,b,羅錫文a,b,單鵬輝a,b
(華南農(nóng)業(yè)大學(xué) a.工程學(xué)院;b.南方農(nóng)業(yè)機(jī)械與裝備關(guān)鍵技術(shù)教育部重點(diǎn)實(shí)驗(yàn)室,廣州510642)
摘要:隨著農(nóng)業(yè)機(jī)械自動(dòng)導(dǎo)航技術(shù)的發(fā)展,農(nóng)機(jī)導(dǎo)航監(jiān)控終端技術(shù)已經(jīng)成為農(nóng)業(yè)機(jī)械自動(dòng)導(dǎo)航技術(shù)的重要組成部分。為了滿足農(nóng)業(yè)信息化發(fā)展的需求,更好地管理控制農(nóng)機(jī)自動(dòng)導(dǎo)航系統(tǒng),實(shí)現(xiàn)對(duì)農(nóng)機(jī)自動(dòng)導(dǎo)航系統(tǒng)的實(shí)時(shí)監(jiān)控與農(nóng)機(jī)作業(yè)的控制,開發(fā)了農(nóng)機(jī)自動(dòng)導(dǎo)航監(jiān)控終端軟件系統(tǒng),可進(jìn)行農(nóng)機(jī)車輛的導(dǎo)航狀態(tài)監(jiān)控、農(nóng)機(jī)具的操縱控制及系統(tǒng)的故障診斷等。通過(guò)對(duì)農(nóng)田工作的特點(diǎn)與導(dǎo)航需求分析,采用VS2005開發(fā)環(huán)境,C++語(yǔ)言,開發(fā)基于WinCE嵌入式操作系統(tǒng)的農(nóng)機(jī)車輛自動(dòng)導(dǎo)航監(jiān)控終端軟件。軟件程序的總體功能模塊包括:人機(jī)交互界面顯示、基于RS232的串口通訊模塊、路徑規(guī)劃模塊、文件讀寫模塊及系統(tǒng)參數(shù)調(diào)節(jié)模塊等,并制定導(dǎo)航監(jiān)控終端與導(dǎo)航控制器之間的數(shù)據(jù)通訊協(xié)議。將該導(dǎo)航監(jiān)控終端軟件系統(tǒng)裝在拖拉機(jī)上測(cè)試運(yùn)行,結(jié)果表明:導(dǎo)航監(jiān)控終端軟件系統(tǒng)可長(zhǎng)時(shí)間連續(xù)穩(wěn)定的工作,有效實(shí)現(xiàn)了對(duì)農(nóng)機(jī)車輛導(dǎo)航系統(tǒng)的操作與監(jiān)控。
關(guān)鍵詞:WinCE;監(jiān)控終端;農(nóng)機(jī)導(dǎo)航系統(tǒng);MFC ;VS2005
0引言
隨著現(xiàn)代農(nóng)業(yè)的發(fā)展,農(nóng)業(yè)生產(chǎn)也逐步走向機(jī)械化與信息化,農(nóng)業(yè)機(jī)械自動(dòng)導(dǎo)航技術(shù)成為現(xiàn)代智能農(nóng)業(yè)的研究重點(diǎn)。目前,基于GPS的農(nóng)機(jī)自動(dòng)導(dǎo)航技術(shù)應(yīng)用最為廣泛,該技術(shù)可極大地減輕勞動(dòng)者的作業(yè)強(qiáng)度,提高作業(yè)效率[1-3];而導(dǎo)航監(jiān)控終端技術(shù)作為農(nóng)機(jī)自動(dòng)導(dǎo)航技術(shù)的重要組成部分,也是智能化精準(zhǔn)農(nóng)業(yè)研究的重點(diǎn)之一。
導(dǎo)航監(jiān)控終端是實(shí)現(xiàn)人機(jī)交互的橋梁,通過(guò)監(jiān)控終端軟件,用戶可以實(shí)時(shí)地獲取和控制車輛的工作狀態(tài)。在國(guó)內(nèi),許多學(xué)者對(duì)此進(jìn)行了研究。如在道路智能交通領(lǐng)域,武奇生[4]、王琛[5]分別利用LINUX、WinCE平臺(tái)進(jìn)行了基于GPS的導(dǎo)航終端軟件的設(shè)計(jì)研究,并取得了很好的應(yīng)用效果。楊寧[6]提出了一種基于ARM和WinCE的車載智能顯示終端的設(shè)計(jì)方案,滿足了機(jī)車信息化的需求。然而,在農(nóng)業(yè)領(lǐng)域,由于農(nóng)業(yè)生產(chǎn)的智能化發(fā)展較為緩慢,有關(guān)農(nóng)機(jī)車輛導(dǎo)航監(jiān)控終端系統(tǒng)的研究也較少,高校研究大多處于實(shí)驗(yàn)室階段。如羅夢(mèng)佳等[7]基于GNSS、WebGIS和移動(dòng)通信等技術(shù),設(shè)計(jì)和研發(fā)了農(nóng)機(jī)移動(dòng)監(jiān)控與導(dǎo)航技術(shù)體系,并進(jìn)行實(shí)際試驗(yàn),結(jié)果表明:可有效地優(yōu)化農(nóng)機(jī)資源配置,提高作業(yè)效率。國(guó)外的農(nóng)業(yè)智能化與信息化技術(shù)較為成熟,以美國(guó)的Trimble公司為首,在智能化農(nóng)業(yè)終端界面顯示方面,已經(jīng)研發(fā)出適用于不同功能需求的完善的監(jiān)控顯示終端,如FmX綜合型號(hào)、CFX-750型號(hào)等顯示器,這些監(jiān)控終端不僅能夠?qū)崿F(xiàn)控制農(nóng)用車輛的對(duì)壟導(dǎo)航,還能實(shí)現(xiàn)農(nóng)作物產(chǎn)量、營(yíng)養(yǎng)元素等作物狀態(tài)的監(jiān)測(cè)。日本的Hamada, Yasuyuki等[8]也對(duì)農(nóng)用車輛自動(dòng)導(dǎo)航監(jiān)控系統(tǒng)方面進(jìn)行了研究,并已經(jīng)進(jìn)行產(chǎn)品化的實(shí)驗(yàn)性銷售,具有較高的實(shí)用性。本文依據(jù)現(xiàn)在高速發(fā)展的計(jì)算機(jī)技術(shù)與嵌入式系統(tǒng),借鑒交通等領(lǐng)域自動(dòng)導(dǎo)航與監(jiān)控技術(shù),根據(jù)目前中國(guó)基于GPS的農(nóng)機(jī)自動(dòng)導(dǎo)航系統(tǒng)的研究現(xiàn)狀與發(fā)展[9-12],結(jié)合農(nóng)機(jī)導(dǎo)航監(jiān)控的功能與需求,針對(duì)性地設(shè)計(jì)了應(yīng)用于農(nóng)業(yè)生產(chǎn)車輛上的車載式導(dǎo)航終端監(jiān)控的應(yīng)用程序軟件。該監(jiān)控終端軟件采用WinCE嵌入式操作系統(tǒng),能夠?qū)崟r(shí)監(jiān)控農(nóng)用車輛狀態(tài)和繪制田間信息,可完成對(duì)農(nóng)機(jī)車輛的導(dǎo)航狀態(tài)的監(jiān)控、農(nóng)機(jī)具的操縱控制及系統(tǒng)的故障診斷等,具有良好的實(shí)時(shí)性、操控性和多任務(wù)處理功能。
1監(jiān)控終端硬件系統(tǒng)
1.1農(nóng)機(jī)導(dǎo)航控制系統(tǒng)的總體結(jié)構(gòu)
自動(dòng)導(dǎo)航監(jiān)控終端系統(tǒng)根據(jù)農(nóng)機(jī)車輛在田間實(shí)際工作需求進(jìn)行分析設(shè)計(jì),可實(shí)現(xiàn)農(nóng)機(jī)具的狀態(tài)監(jiān)測(cè)、位置預(yù)測(cè)、導(dǎo)航路徑規(guī)劃、文件的導(dǎo)入導(dǎo)出及系統(tǒng)參數(shù)調(diào)節(jié)等功能,進(jìn)而實(shí)現(xiàn)對(duì)農(nóng)機(jī)具的電控操作。農(nóng)機(jī)導(dǎo)航控制系統(tǒng)結(jié)構(gòu)框圖如圖1所示。從圖1中可以看出,農(nóng)機(jī)導(dǎo)航監(jiān)控的過(guò)程為:①通過(guò)GPS定位系統(tǒng)與姿態(tài)傳感器獲取到農(nóng)用車輛的各狀態(tài)信息;②將狀態(tài)信息數(shù)據(jù)傳送至自動(dòng)導(dǎo)航控制器,進(jìn)行數(shù)據(jù)的融合與分析;③最后將處理結(jié)果傳送至導(dǎo)航監(jiān)控終端,呈現(xiàn)給用戶。同時(shí),用戶也可借助監(jiān)控終端平臺(tái)進(jìn)行農(nóng)機(jī)車輛狀態(tài)參數(shù)的調(diào)節(jié),選擇農(nóng)機(jī)車輛的工作模式與行駛狀態(tài)方式等,實(shí)現(xiàn)對(duì)農(nóng)機(jī)車輛的電控操作。
圖1 農(nóng)機(jī)導(dǎo)航控制系統(tǒng)結(jié)構(gòu)圖
1.2監(jiān)控終端硬件平臺(tái)
導(dǎo)航監(jiān)控終端的硬件平臺(tái)選用LILLIPUT的顯示器[14],硬件結(jié)構(gòu)以微處理器S3C2416X為核心,基于ARM11內(nèi)核,主頻高達(dá)400MHz;配備2G的FLASH處理器和128M的ARM。該微處理器集成度高、功耗低,整機(jī)功耗小于10W,包括豐富的外圍接口,如SD卡接口、2個(gè)USB接口、耳機(jī)輸出接口、4個(gè)RS232接口、12V的電源接口,以及外接一個(gè)7寸的TFT LCD顯示屏等。RS-232是目前主流的串行通信接口之一,只需3根傳輸線,配線簡(jiǎn)單,傳送距離較遠(yuǎn),完全滿足導(dǎo)航監(jiān)控終端與導(dǎo)航控制器之間的數(shù)據(jù)通訊。系統(tǒng)硬件結(jié)構(gòu)圖如圖2所示。
圖2 導(dǎo)航監(jiān)控終端系統(tǒng)硬件結(jié)構(gòu)圖
2導(dǎo)航監(jiān)控終端軟件系統(tǒng)設(shè)計(jì)
導(dǎo)航監(jiān)控終端軟件系統(tǒng)使用嵌入式WinCE操作系統(tǒng)作為終端應(yīng)用程序的軟件開發(fā)平臺(tái),具有良好的可移植性,占用較少的硬件資源,根據(jù)實(shí)際需要可方便地增加和減少各項(xiàng)功能模塊。WinCE則是微軟公司針對(duì)嵌入式設(shè)備開發(fā)的一款基于32位的實(shí)時(shí)的嵌入式操作系統(tǒng),具有實(shí)時(shí)性好、多任務(wù)、易操作、通信功能強(qiáng)大及模塊化特性等特點(diǎn),擁有穩(wěn)定的性能結(jié)構(gòu)。該操作系統(tǒng)為上層應(yīng)用程序提供了win32應(yīng)用程序編程接口,可以方便的調(diào)用win32API函數(shù)[13],縮減了系統(tǒng)軟件的開發(fā)周期與后期的系統(tǒng)維護(hù)。因此,選用WinCE操作系統(tǒng)作為軟件的開發(fā)平臺(tái),可以滿足農(nóng)機(jī)車輛導(dǎo)航監(jiān)控終端的設(shè)計(jì)功能要求。
2.1總體功能結(jié)構(gòu)
導(dǎo)航監(jiān)控終端的顯示界面是人機(jī)交互的窗口,用于顯示自動(dòng)導(dǎo)航過(guò)程中農(nóng)機(jī)車輛的狀態(tài)以及系統(tǒng)參數(shù)信息等。自動(dòng)導(dǎo)航主界面提供各類功能按鈕,用戶通過(guò)選擇相應(yīng)的功能按鈕下的子界面完成農(nóng)機(jī)車輛導(dǎo)航路徑設(shè)置、系統(tǒng)參數(shù)調(diào)節(jié)、數(shù)據(jù)傳送,以及文件的讀寫等功能。導(dǎo)航監(jiān)控終端軟件可實(shí)現(xiàn)的具體功能如圖3所示。其中,路徑規(guī)劃功能包括直線跟蹤和全區(qū)域路徑規(guī)劃[15-17];系統(tǒng)參數(shù)調(diào)節(jié)主要是對(duì)農(nóng)機(jī)車輛和農(nóng)機(jī)具的一些參數(shù)的調(diào)節(jié)設(shè)置,包括控制GPS導(dǎo)航的控制參數(shù)、農(nóng)機(jī)車輛的轉(zhuǎn)向的控制參數(shù)及機(jī)具調(diào)控參數(shù)等。
圖3 自動(dòng)導(dǎo)航監(jiān)控終端功能圖
2.2監(jiān)控終端與導(dǎo)航控制器的通訊協(xié)議
為保證監(jiān)控終端與導(dǎo)航控制器之間進(jìn)行有效、準(zhǔn)確的數(shù)據(jù)交換,兩者間必須制定規(guī)范的通訊協(xié)議。本文使用的農(nóng)機(jī)自動(dòng)導(dǎo)航控制系統(tǒng),數(shù)據(jù)協(xié)議采用了兩大類型,分別為導(dǎo)航控制器發(fā)往監(jiān)控終端的報(bào)文和監(jiān)控終端發(fā)往導(dǎo)航控制器的報(bào)文。串口接收與發(fā)送的數(shù)據(jù)協(xié)議為兩種不同的語(yǔ)句格式,所有語(yǔ)句格式都以$為幀命令起始位,導(dǎo)航控制器發(fā)送導(dǎo)航顯示終端的自定義通訊格式為$AGC0x,導(dǎo)航顯示終端發(fā)送導(dǎo)航控制器的自定義通訊格式為$MT0x。x代表不同的數(shù)值,如0,1,2,3…,語(yǔ)句格式形如$AGC05。aaa,aaa…,aaa*gg ,表示導(dǎo)航控制器向?qū)Ш奖O(jiān)控終端發(fā)送包含導(dǎo)航控制系統(tǒng)運(yùn)行狀態(tài)的數(shù)據(jù)包,共計(jì)27個(gè)參數(shù);AGC05表示地址域,前2位為識(shí)別符,后1位為語(yǔ)句名;aaa…aaa表示信息數(shù)據(jù),*gg表示校驗(yàn)碼, 表示結(jié)束符。其中,信息數(shù)據(jù)里可包含當(dāng)前農(nóng)用車輛所處的經(jīng)緯度及導(dǎo)航線上的坐標(biāo)值,以及農(nóng)用車輛姿態(tài)方向、速度、跟蹤誤差等參數(shù)。語(yǔ)句格式如$MT01,aaa,aaa…,aaa*gg , 則表示用戶通過(guò)監(jiān)控終端的路徑規(guī)劃設(shè)置界面確定路徑規(guī)劃參數(shù)后,作為對(duì)收到的導(dǎo)航控制系統(tǒng)狀態(tài)報(bào)文進(jìn)行應(yīng)答,發(fā)送該報(bào)文。當(dāng)打開導(dǎo)航監(jiān)控終端系統(tǒng),監(jiān)控終端必須先接收到導(dǎo)航控制器發(fā)出的數(shù)據(jù)包,進(jìn)行初始化工作后,才能正常進(jìn)行兩者間的正常通訊。
2.3軟件系統(tǒng)主界面
良好的人機(jī)交互界面可使上述功能的實(shí)現(xiàn)更加直觀且易操作。根據(jù)對(duì)自動(dòng)導(dǎo)航監(jiān)控終端的功能分析,從人機(jī)交互界面簡(jiǎn)潔性、友好型、易操作性等特點(diǎn)出發(fā),采用基于MFC對(duì)話框應(yīng)用程序的框架上進(jìn)行軟件程序設(shè)計(jì)。
系統(tǒng)軟件的主界面如圖4所示。
圖4 導(dǎo)航監(jiān)控終端主界面
其中,導(dǎo)航監(jiān)控終端的核心顯示部分,在圖4的左側(cè)為農(nóng)機(jī)導(dǎo)航的狀態(tài)參數(shù)顯示區(qū)域,包括地塊名稱、經(jīng)緯度、衛(wèi)星數(shù)目、農(nóng)機(jī)車輛的前進(jìn)速度及轉(zhuǎn)向輪偏角等信息;右側(cè)上方為系統(tǒng)工作狀態(tài)顯示區(qū)域,系統(tǒng)工作狀態(tài)包括AB直線導(dǎo)航模式、無(wú)人駕駛模式等;右側(cè)中間為田間信息動(dòng)態(tài)顯示區(qū)域,主界面下方為相應(yīng)的功能按鈕,包括AB線設(shè)置、作業(yè)路徑設(shè)置、電控操作設(shè)置、系統(tǒng)參數(shù)調(diào)節(jié)及開始導(dǎo)航等共5個(gè)主功能按鈕。通過(guò)點(diǎn)擊各個(gè)功能按鈕,進(jìn)入相應(yīng)的功能界面。創(chuàng)建窗體界面時(shí),通過(guò)調(diào)用CDialog::DoModal來(lái)顯示和主界面相關(guān)聯(lián)的一個(gè)子功能對(duì)話框界面。通過(guò)給窗體添加背景位圖、修改顯示字體來(lái)簡(jiǎn)單美化界面,通過(guò)響應(yīng)WM_CTLCOLOR消息,并在OnInitDialog函數(shù)體里實(shí)現(xiàn)其功能。
3基于WinCE的導(dǎo)航監(jiān)控終端應(yīng)用程序開發(fā)
3.1開發(fā)流程
①選用VS2005作為WinCE系統(tǒng)的應(yīng)用程序開發(fā)環(huán)境。由于VS2005集成開發(fā)環(huán)境支持智能設(shè)備項(xiàng)目的開發(fā),在VS2005開發(fā)環(huán)境里就可一體化的完成WinCE操作系統(tǒng)的定制、驅(qū)動(dòng)程序與應(yīng)用程序的設(shè)計(jì)。②MFC作為微軟開發(fā)的一套面向?qū)ο蟮暮瘮?shù)庫(kù),支持可重用性、自包含性及其他面向?qū)ο蟪绦蛟O(shè)計(jì)的原則,其框架結(jié)構(gòu)設(shè)計(jì),與提供的設(shè)計(jì)好的類庫(kù)極大地減少了程序代碼的編寫量[18]。因此,使用MFC與C++編程語(yǔ)言開發(fā)導(dǎo)航監(jiān)控終端的程序。③除此之外,在進(jìn)行應(yīng)用軟件開發(fā)的之前,需要安裝支持該操作系統(tǒng)硬件平臺(tái)的SDK,它是操作系統(tǒng)與應(yīng)用程序之間的紐帶,包含定制的WinCE系統(tǒng)的各種頭文件與庫(kù)文件。④與硬件平臺(tái)進(jìn)行在線運(yùn)行調(diào)試時(shí),還需要安裝ActiveSync軟件,這是一款wince設(shè)備與PC機(jī)之間進(jìn)行同步通信的軟件,通過(guò)此軟件可以實(shí)現(xiàn)PC機(jī)與設(shè)備之間進(jìn)行及時(shí)通訊,還可以實(shí)現(xiàn)PC機(jī)訪問(wèn)WinCE設(shè)備上的文件信息[15]。軟件程序的開發(fā)流程框圖如圖5所示。
圖5 應(yīng)用程序開發(fā)流程
3.2串行通訊模塊
導(dǎo)航監(jiān)控終端系統(tǒng)通過(guò)RS-232串口與導(dǎo)航控制器進(jìn)行數(shù)據(jù)交換。由于WinCE的串口驅(qū)動(dòng)不支持重疊I/O口,串口程序需采用多線程設(shè)計(jì)。為簡(jiǎn)化串口通訊框架編寫,本文使用一種適用于WinCE嵌入式平臺(tái)的多線程串口編程工具CESerialPort類。該類在建立數(shù)據(jù)的讀寫操作線程時(shí),通過(guò)調(diào)用windowsAPI提供的CrateThread函數(shù)創(chuàng)建一個(gè)新的線程。而串口通訊讀取采用事件觸發(fā)的方式,使用WaitCommEvent函數(shù)監(jiān)視該事件是否發(fā)生:當(dāng)串口輸入緩沖區(qū)中,該事件在輔助線程中被觸發(fā);當(dāng)緩沖區(qū)中收到數(shù)據(jù)后,就執(zhí)行ReadFile函數(shù)讀取串口。
通過(guò)調(diào)用GetCommTimeouts函數(shù)查詢和設(shè)置串口讀寫的時(shí)間間隔,使用OnTimer定時(shí)器每隔1s接收導(dǎo)航控制器傳送的數(shù)據(jù),并對(duì)接收到數(shù)據(jù)包進(jìn)行異或校驗(yàn),判斷是否為一個(gè)完整數(shù)據(jù)包;然后再交由數(shù)據(jù)的處理函數(shù),對(duì)導(dǎo)航控制器發(fā)送的數(shù)據(jù)進(jìn)行分析處理。為保證線程之間的同步,在對(duì)串口數(shù)據(jù)進(jìn)行寫入與讀取時(shí),使用互斥類CMutex對(duì)象來(lái)訪問(wèn)同一個(gè)內(nèi)存空間,其中Lock函數(shù)與Unlock函數(shù)必須成對(duì)出現(xiàn)[19]。
導(dǎo)航監(jiān)控終端向?qū)Ш娇刂破靼l(fā)送消息響應(yīng)和命令時(shí),利用UpdateData(TURE)函數(shù)獲取編輯框的內(nèi)容,按照相應(yīng)的數(shù)據(jù)格式,形成完整的通訊協(xié)議格式,并調(diào)用串口通訊中的WritePort函數(shù)將設(shè)置參數(shù)發(fā)送給導(dǎo)航控制器。
3.3動(dòng)態(tài)導(dǎo)航顯示模塊
為更加直觀地在終端顯示屏上觀測(cè)到農(nóng)用車輛在田間作業(yè)時(shí)的工作情況、顯示車輛在田間的相對(duì)位置,可根據(jù)從導(dǎo)航控制器接收的車輛位置與狀態(tài)等信息,在導(dǎo)航主界面上進(jìn)行農(nóng)機(jī)車輛工作情景的動(dòng)畫繪制。在窗體界面上先定義模擬地塊的范圍大小,當(dāng)農(nóng)機(jī)車輛處在直線導(dǎo)航狀態(tài)時(shí),實(shí)際采集的AB導(dǎo)航線坐標(biāo)點(diǎn),轉(zhuǎn)換成界面顯示AB坐標(biāo)點(diǎn),界面車輛圖片根據(jù)實(shí)際車輛導(dǎo)航坐標(biāo)實(shí)時(shí)重繪車輛的行駛軌跡。采用雙緩沖技術(shù),解決窗體在重繪時(shí)引起的閃爍現(xiàn)象,在窗體添加WM_PAINT消息的消息處理函數(shù)OnPaint函數(shù),在該函數(shù)里實(shí)現(xiàn)動(dòng)態(tài)界面顯示,具體實(shí)現(xiàn)過(guò)程:使用封裝了Windows(GDI)中畫刷的MFC類CBrush,創(chuàng)建畫刷對(duì)象,通過(guò)CreateCompatibleDC函數(shù)創(chuàng)建一個(gè)設(shè)備上下文環(huán)境,使用SelectObject函數(shù)將位圖選入內(nèi)存設(shè)備描述表中;通過(guò)FillRect函數(shù)實(shí)現(xiàn)使用不同畫刷在內(nèi)存設(shè)備描述表中繪制動(dòng)畫工作場(chǎng)景,使用BitBlt函數(shù)實(shí)現(xiàn)將內(nèi)存設(shè)備描述表中的圖像拷貝到窗口,顯示出來(lái)。最后,利用DelectDC函數(shù)與DelectObject函數(shù)釋放資源。
3.4文件讀寫模塊
為后續(xù)研究地塊作業(yè)數(shù)據(jù)和避免再次在該地塊作業(yè)時(shí)進(jìn)行重復(fù)的導(dǎo)航設(shè)置操作,農(nóng)機(jī)車輛作業(yè)過(guò)的地塊信息、車輛狀態(tài)和系統(tǒng)的參數(shù)設(shè)置信息,都需進(jìn)行保存。導(dǎo)航控制器與導(dǎo)航監(jiān)控終端的傳輸數(shù)據(jù)可通過(guò)CreateFile函數(shù)創(chuàng)建文本文件形式保存。例如,存儲(chǔ)導(dǎo)航監(jiān)控終端系統(tǒng)設(shè)置的參數(shù)信息,則創(chuàng)建一個(gè)WriteSysRecordToFile函數(shù),該函數(shù)功能實(shí)現(xiàn)過(guò)程中包括使用Cfile類通過(guò)write函數(shù)將內(nèi)容寫入到指定的文件中。通過(guò)調(diào)用此函數(shù),向文件中保存用戶的輸入信息。主要代碼如下:
Void Cmonitor_emulatorDlg::WriteSysRecordToFile
(char *fmt,...) {
CFile SysRecordFile;
……
CString str(buf);
CopyMemory(buf,str.GetBuffer(str.GetLength()),
(valid_string_length)*2);
SysRecordFile.SeekToEnd();
SysRecordFile.Write(buf,(valid_string_length)*2);}
……
WriteSysRecordToFile("The Parameters was set : %.2f. ", m_xe_coefficient);
// m_xe_coefficient 控制參數(shù)變量
對(duì)于寫入文件的讀取,同樣創(chuàng)建一個(gè)ReadIniParaFromFile函數(shù),利用CFile類中的open函數(shù)和read函數(shù),打開數(shù)據(jù)文件,并讀取文件內(nèi)容。
voidCmonitor_emulatorDlg::ReadIniParaFromFile
(LPCTSTRlpFileName) {
CFile paraFile;
……
paraFile.Open(lpFileName,CFile::modeReadWrite);//打開文件
paraFile.Read(buf,512); //讀取文件
……
paraFile.Close();}//關(guān)閉文件
4軟件系統(tǒng)測(cè)試
將完整的應(yīng)用程序進(jìn)行編譯調(diào)試,生成解決方案。編譯成功后,通過(guò)ActiveSync軟件,與硬件設(shè)備進(jìn)行聯(lián)調(diào),點(diǎn)擊調(diào)試按鈕,則出現(xiàn)導(dǎo)航監(jiān)控終端主界面,如圖6所示。
利用串口助手發(fā)送一包模擬的導(dǎo)航信息數(shù)據(jù)包,模擬測(cè)試結(jié)果表明:程序運(yùn)行正常,導(dǎo)航監(jiān)控終端軟件可以穩(wěn)定準(zhǔn)確地接收該數(shù)據(jù)包。主界面各功能按鈕,能正常響應(yīng)消息函數(shù),界面顯示清晰,如圖7所示。
圖6 導(dǎo)航監(jiān)控終端工作主界面
圖7 系統(tǒng)參數(shù)調(diào)節(jié)界面
將導(dǎo)航監(jiān)控終端系統(tǒng)軟件,裝載在拖拉機(jī)上進(jìn)行田間測(cè)試。啟動(dòng)監(jiān)控終端軟件,并選擇其中的直線導(dǎo)航模式,系統(tǒng)初始化完成后,獲取了目前的拖拉機(jī)自動(dòng)導(dǎo)航初始化狀態(tài)信息;再進(jìn)行地塊、機(jī)具等參數(shù)設(shè)置后,最后啟動(dòng)導(dǎo)航,即可實(shí)現(xiàn)對(duì)拖拉機(jī)自動(dòng)導(dǎo)航狀態(tài)的監(jiān)測(cè)。測(cè)試過(guò)程中,導(dǎo)航監(jiān)控終端能夠很好實(shí)現(xiàn)與導(dǎo)航控制器之間的數(shù)據(jù)傳輸、數(shù)據(jù)的讀寫、導(dǎo)航控制參數(shù)的設(shè)置及文件的導(dǎo)入導(dǎo)出等功能,能夠高效、穩(wěn)定地處理串口接收的數(shù)據(jù)。動(dòng)畫顯示部分可以實(shí)現(xiàn)農(nóng)用車輛導(dǎo)航跟蹤的實(shí)時(shí)繪制。自動(dòng)導(dǎo)航終端的顯示界面簡(jiǎn)潔,易操作,界面操作實(shí)際體驗(yàn)良好,適合農(nóng)田工作者使用。實(shí)驗(yàn)表明:該導(dǎo)航監(jiān)控終端軟件能夠?qū)崿F(xiàn)自動(dòng)導(dǎo)航農(nóng)用車輛的狀態(tài)監(jiān)測(cè),軟件總體性能良好。
5結(jié)論
1)本文從實(shí)際需求出發(fā),完成了農(nóng)用車輛導(dǎo)航監(jiān)控終端的設(shè)計(jì)。從系統(tǒng)軟件的開發(fā)平臺(tái)選擇、開發(fā)流程、功能分析、實(shí)現(xiàn)過(guò)程及系統(tǒng)軟件測(cè)試等方面進(jìn)行詳細(xì)的闡述。
2)基于WinCE的農(nóng)機(jī)導(dǎo)航監(jiān)控終端軟件的開發(fā)與設(shè)計(jì)采用MFC編程框架結(jié)構(gòu)。VS2005的開發(fā)環(huán)境內(nèi)也包含了基于WinCE的智能設(shè)備開發(fā)項(xiàng)目,極大的縮短了監(jiān)控終端軟件的開發(fā)周期,能夠?qū)崿F(xiàn)農(nóng)用車輛的路徑規(guī)劃、系統(tǒng)參數(shù)調(diào)節(jié)及動(dòng)態(tài)導(dǎo)航顯示等基本功能,完成對(duì)農(nóng)機(jī)導(dǎo)航系統(tǒng)的監(jiān)控。其中,使用CESerialPort串口類能夠?qū)崿F(xiàn)數(shù)據(jù)穩(wěn)定、高效的數(shù)據(jù)傳送。
3)實(shí)驗(yàn)結(jié)果表明:所開發(fā)的監(jiān)控終端軟件系統(tǒng)用戶體驗(yàn)良好,可以長(zhǎng)期穩(wěn)定的工作,非常方便用戶對(duì)自動(dòng)導(dǎo)航系統(tǒng)進(jìn)行參數(shù)設(shè)定和工作狀態(tài)監(jiān)控。
4)農(nóng)機(jī)導(dǎo)航監(jiān)控終端軟件系統(tǒng)目前只適用于旱田拖拉機(jī)使用,對(duì)于水田插秧機(jī)等還不具備通用性。使用MFC框架類結(jié)構(gòu)簡(jiǎn)化了編程難度,但也為界面的美化設(shè)計(jì)增加了難度,這些都是在以后工作中需要改進(jìn)的地方。
參考文獻(xiàn):
[1]羅錫文,張?zhí)X,洪添勝. “精細(xì)農(nóng)業(yè)”技術(shù)體系及其應(yīng)用[J].農(nóng)業(yè)機(jī)械學(xué)報(bào), 2001(2): 103-106.
[2]武寶傳,馬立萍.淺談GPS自動(dòng)導(dǎo)航在農(nóng)用拖拉機(jī)上的推廣與應(yīng)用[J].農(nóng)業(yè)機(jī)械, 2012(25): 125-127.
[3]李小兵.GPS自動(dòng)導(dǎo)航駕駛系統(tǒng)在田間機(jī)械作業(yè)上的推廣應(yīng)用[J].農(nóng)業(yè)機(jī)械, 2012(26): 121-122.
[4]武奇生.車載多媒體導(dǎo)航終端軟件設(shè)計(jì)與實(shí)現(xiàn)[J].武漢理工大學(xué)學(xué)報(bào):交通科學(xué)與工程版, 2010(3): 573-576.
[5]王琛.基于WindowsCE的手持GPS導(dǎo)航系統(tǒng)的設(shè)計(jì)[J].深圳職業(yè)技術(shù)學(xué)院學(xué)報(bào), 2009(1): 38-41.
[6]楊寧,王立德,王蘇敏,等.基于ARM&WinCE的車載智能顯示終端的開發(fā)[J].機(jī)車電傳動(dòng),2010(1):45-48.
[7]羅夢(mèng)佳,吳彩聰,丁連軍,等.農(nóng)機(jī)移動(dòng)監(jiān)空與導(dǎo)航技術(shù)[C]//第三屆中國(guó)衛(wèi)星導(dǎo)航學(xué)術(shù)年會(huì)電子文集—S01北斗/GNSS導(dǎo)航應(yīng)用,2012.
[8]Hamada Y Y A G, Y Matsuo, T Yamashita.Agricultural Vehicle Navigation System: Development of a Guidance Information Display[J].JARQ, 2009,43(3):187-192.
[9]陳威,郭書普.中國(guó)農(nóng)業(yè)信息化技術(shù)發(fā)展現(xiàn)狀及存在問(wèn)題[J].農(nóng)業(yè)工程學(xué)報(bào),2013,29(22):196-205.
[10]張智剛,羅錫,周志艷,等.久保田插秧機(jī)的GPS導(dǎo)航控制系統(tǒng)設(shè)計(jì)[J].農(nóng)業(yè)機(jī)械學(xué)報(bào),2006,37(7):95-97.
[11]高雷,胡靜濤,白小平,等.面向精準(zhǔn)農(nóng)業(yè)應(yīng)用的農(nóng)機(jī)自動(dòng)導(dǎo)航控制系統(tǒng)研究[C]//2010 International Conference on Broadcast Techology and Multimedia Communication,2010:315-322.
[12]楊瑋,李明贊,王秀.農(nóng)田信息傳輸方式現(xiàn)狀及研究進(jìn)展[J].農(nóng)業(yè)工程學(xué)報(bào),2008.24(05):297-301.
[13]王浩,楊正校.Windows CE系統(tǒng)應(yīng)用程序開發(fā)編程[M].北京:中國(guó)水利水電出版社,2011.
[14]苗玉彬,王明軍.農(nóng)業(yè)車輛導(dǎo)航系統(tǒng)中路徑規(guī)劃策略的研究進(jìn)展[J]. 農(nóng)機(jī)化研究, 2011,33(5): 12-15.
[15]孟志軍.農(nóng)田作業(yè)機(jī)械路徑優(yōu)化方法[J].農(nóng)業(yè)機(jī)械學(xué)報(bào), 2012(6): 147-152.
[16]蘆帥, 馬蓉,安光輝.基于GIS/GPS拖拉機(jī)播種作業(yè)路徑規(guī)劃系統(tǒng)的設(shè)計(jì)與研究[J].石河子大學(xué)學(xué)報(bào):自然科學(xué)版,2011(6):767-771.
[17]Jeff Prosise.MFC Windows 程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2007.
Design of Navigation Monitoring Software Based on WinCE for Agricultural Vehicle
Zhang Yajiaoa,b, Zhang Zhiganga,b, Luo Xiwena,b, Shan Penghuia,b
(a.Engineering College; b.Key Laboratory of Key Technology on Agricultural Machine and Equipment of Education Ministry, South China Agricultural University, Guangzhou 510642, China)
Abstract:Intelligent navigation monitoring terminal is an important component of automatic navigation technology system for agricultural machinery. In order to meet the needs of agricultural informationization development,and real-time monitor and control the agricultural machinery operation, the navigation monitoring software for agricultural vehicle is developed. The navigation state of the agricultural vehicle can be monitored, controlled, and the fault can be diagnosed with the intelligent monitoring terminal. According to the feature of field work, the automatic navigation monitoring terminal software is designed based on WinCE with embedded touching screen technology. The navigation monitoring terminal software included the following modules : man-machine interaction interface, serial port communication module with RS232, measure control module, path planning module, file read and write module. Besides, data communication protocol between navigation monitoring terminal and navigation controller is formulated. The actual test result showed that navigation monitoring terminal software system could realize the operation and monitoring of the navigation system for agricultural vehicle.
Key words:WinCE; monitoring software system;MFC; VS 2005
文章編號(hào):1003-188X(2016)01-0070-06
中圖分類號(hào):S127
文獻(xiàn)標(biāo)識(shí)碼:A
作者簡(jiǎn)介:張亞嬌(1990-),女,江蘇淮安人,碩士研究生,(E-mail)yingguangdog@163.com。通訊作者:張智剛(1977-),男,鄭州人,副教授,(E-mail)zzg208@scau.edu.cn。
基金項(xiàng)目:廣東省高等學(xué)??萍紕?chuàng)新重點(diǎn)項(xiàng)目(cxzd1136);國(guó)家“863計(jì)劃”項(xiàng)目(2013AA102307)”
收稿日期:2014-12-23