本發(fā)明屬于無人機(jī)數(shù)據(jù)處理領(lǐng)域,特別涉及一種mvc框架的無人機(jī)地面維護(hù)系統(tǒng)及方法。
技術(shù)背景
隨著航空和電子技術(shù)的發(fā)展,新型無人機(jī)飛行性能越來越強(qiáng),任務(wù)設(shè)備也越來越精良。為了保證無人機(jī)安全可靠地完成飛行任務(wù),對其進(jìn)行日常維檢和放飛前的綜合測試越來越重要。無人機(jī)地面維護(hù)系統(tǒng)的主要功能是對無人機(jī)系統(tǒng)進(jìn)行起飛前檢測和日常的維護(hù)檢測,特別是在起飛前對機(jī)上的關(guān)鍵部件和重要設(shè)備進(jìn)行在線檢測和模擬操控,以確認(rèn)整個(gè)無人機(jī)系統(tǒng)工作狀態(tài),為最終放飛決策提供充足的信息。
目前的無人機(jī)地面維護(hù)系統(tǒng)并沒有一個(gè)統(tǒng)一的標(biāo)準(zhǔn),通常是根據(jù)用戶提出的測試需求以及飛機(jī)管理系統(tǒng)設(shè)計(jì)過程中不斷發(fā)現(xiàn)的測試需求來進(jìn)行設(shè)計(jì)。因此系統(tǒng)的需求可能是隨時(shí)變化的,這就需要地面維護(hù)系統(tǒng)能快速反應(yīng),適應(yīng)飛機(jī)管理系統(tǒng)機(jī)載軟件或其他物理設(shè)備的變化,而目前大多無人機(jī)地面維護(hù)系統(tǒng)未采用一個(gè)合適的框架模型,無法有效處理系統(tǒng)難于維護(hù)和拓展的弊端,當(dāng)需求變化時(shí),難以快速的作出反應(yīng)。
飛機(jī)管理系統(tǒng)采用交叉通道數(shù)據(jù)鏈路(ccdl)方法實(shí)現(xiàn)多余度子系統(tǒng)間的數(shù)據(jù)交換,降低了飛機(jī)管理系統(tǒng)的復(fù)雜度和成本,使得提供給地面維護(hù)系統(tǒng)的通信資源減少為一個(gè),在單一通信資源條件下,若同一時(shí)刻發(fā)送維護(hù)指令和周期性狀態(tài)查詢指令將引起通信資源訪問沖突,破壞發(fā)送的指令和接收的指令執(zhí)行結(jié)果,且目前大多數(shù)維護(hù)系統(tǒng)的實(shí)現(xiàn)不允許同時(shí)發(fā)送維護(hù)指令和周期性狀態(tài)查詢指令;由于周期性狀態(tài)查詢指令會長時(shí)間占據(jù)通信資源,導(dǎo)致維護(hù)指令長時(shí)間無法發(fā)送,降低了維護(hù)效率。
所以現(xiàn)有技術(shù)中,無人機(jī)地面維護(hù)系統(tǒng)存在維護(hù)和拓展困難,維護(hù)效率低等缺點(diǎn)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于,提供一種便于維護(hù)和拓展,維護(hù)效率高的一種mvc框架的無人機(jī)地面維護(hù)系統(tǒng)及方法。
為解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案是,一種基于mvc框架的無人機(jī)地面維護(hù)系統(tǒng),系統(tǒng)可分為三層,第一層視圖層,包括子系統(tǒng)監(jiān)控?cái)?shù)據(jù)顯示模塊、指令輸入模塊及交互回顯模塊,第二層控制層,包括定時(shí)器模塊、多線程模塊及指令映射模塊,第三層模型層,包括多個(gè)對應(yīng)指令類型的通信接口和日志記錄模塊,其中:
子系統(tǒng)監(jiān)控?cái)?shù)據(jù)顯示模塊,用于顯示當(dāng)前用戶需要查看的子系統(tǒng)狀態(tài)界面,子系統(tǒng)狀態(tài)界面顯示周期性狀態(tài)查詢指令執(zhí)行結(jié)果,子系統(tǒng)狀態(tài)界面初始狀態(tài)為默認(rèn)狀態(tài);
指令輸入模塊,用于用戶輸入維護(hù)指令和狀態(tài)查詢指令;
交互回顯模塊,用于顯示用戶輸入指令及其執(zhí)行結(jié)果;
定時(shí)器模塊,用于根據(jù)子系統(tǒng)監(jiān)控?cái)?shù)據(jù)顯示模塊顯示的子系統(tǒng)狀態(tài)界面發(fā)送子系統(tǒng)周期性狀態(tài)查詢指令;
多線程模塊,包含周期性狀態(tài)查詢指令線程和用戶輸入指令發(fā)送線程,用于同步周期性狀態(tài)查詢指令和用戶輸入指令的發(fā)送;
指令映射模塊,用于將多線程模塊發(fā)送的指令映射,根據(jù)多線程模塊發(fā)送的指令類型確定通信接口;
通信接口,用于將用戶輸入指令發(fā)送至飛機(jī)管理計(jì)算機(jī),接收用戶輸入指令執(zhí)行結(jié)果將其緩存至緩存區(qū);將周期性狀態(tài)查詢指令分割成多個(gè)小狀態(tài)查詢指令,使用有限狀態(tài)機(jī)方法按周期依次發(fā)送小狀態(tài)查詢指令至飛機(jī)管理計(jì)算機(jī)并接收小狀態(tài)指令執(zhí)行結(jié)果,將其解析后得到子系統(tǒng)狀態(tài)查詢指令執(zhí)行結(jié)果并緩存至緩存區(qū);
日志記錄模塊,用于記錄通信接口發(fā)送的指令和指令執(zhí)行結(jié)果。
上述基于mvc框架的無人機(jī)地面維護(hù)系統(tǒng)對無人機(jī)的維護(hù)方法,包括如下步驟:
步驟1、指令輸入模塊接收用戶輸入指令并將其發(fā)送至多線程模塊和交互回顯模塊,交互回顯模塊顯示用戶輸入指令;
步驟2、用戶選擇需要查看的子系統(tǒng)狀態(tài)界面顯示于子系統(tǒng)監(jiān)控?cái)?shù)據(jù)顯示模塊,定時(shí)器模塊根據(jù)子系統(tǒng)監(jiān)控?cái)?shù)據(jù)顯示模塊顯示的子系統(tǒng)狀態(tài)界面發(fā)送子系統(tǒng)周期性狀態(tài)查詢指令至多線程模塊;
步驟3、多線程模塊包含周期性狀態(tài)查詢指令線程和用戶輸入指令發(fā)送線程,多線程模塊采用多線程同步方法保證同一時(shí)刻只有一個(gè)線程訪問通信資源進(jìn)行指令發(fā)送;
步驟4、指令映射模塊將多線程模塊傳輸?shù)闹噶钣成?,根?jù)多線程模塊發(fā)送的指令類型確定通信接口;
步驟5、通信接口接收多線程模塊發(fā)送的指令,將用戶輸入指令發(fā)送至飛機(jī)管理計(jì)算機(jī),接收用戶輸入指令執(zhí)行結(jié)果將其緩存至緩存區(qū);將周期性狀態(tài)查詢指令分割成多個(gè)小狀態(tài)查詢指令,按周期依次發(fā)送小狀態(tài)查詢指令至飛機(jī)管理計(jì)算機(jī)并接收小狀態(tài)指令執(zhí)行結(jié)果,將其解析后得到查詢的子系統(tǒng)狀態(tài)緩存至緩存區(qū);
步驟6、日志記錄模塊記錄通信接口發(fā)送的指令和指令執(zhí)行結(jié)果;
步驟7、交互回顯模塊顯示緩存區(qū)中用戶輸入指令執(zhí)行結(jié)果;
步驟8、子系統(tǒng)監(jiān)控?cái)?shù)據(jù)顯示模塊顯示緩存區(qū)中子系統(tǒng)狀態(tài)查詢指令執(zhí)行結(jié)果。
在步驟5中,通信接口將周期性狀態(tài)查詢指令分割成多個(gè)小狀態(tài)查詢指令,采用有限狀態(tài)機(jī)方法發(fā)送小狀態(tài)指令至飛機(jī)管理計(jì)算機(jī)可以保證小狀態(tài)指令全部發(fā)送成功并執(zhí)行。
本發(fā)明的有益結(jié)果在于:系統(tǒng)采用mvc框架模型,將系統(tǒng)模塊分層,子系統(tǒng)狀態(tài)界面相互獨(dú)立,有效克服了以往業(yè)務(wù)邏輯和數(shù)據(jù)操作混雜導(dǎo)致的系統(tǒng)難于維護(hù)和拓展的弊端。采用多線程同步方法,同一時(shí)刻只能有一個(gè)通信接口模塊訪問單一的通信資源,可實(shí)現(xiàn)用戶輸入指令和周期性狀態(tài)查詢指令的同時(shí)發(fā)送,有效解決了并發(fā)訪問的沖突問題,保證了指令發(fā)送或執(zhí)行結(jié)果的完整性;通信接口模塊采用指令分割和有限狀態(tài)機(jī)方法將周期性狀態(tài)查詢指令分割成多個(gè)小狀態(tài)查詢指令發(fā)送,縮短查詢指令對通信資源的占有時(shí)間,提高用戶輸入指令的實(shí)時(shí)性。
附圖說明
圖1是無人機(jī)地面維護(hù)系統(tǒng)的mvc框架模型;
圖2是通信接口模塊中的狀態(tài)轉(zhuǎn)移圖;
圖3是無人機(jī)地面維護(hù)方法流程圖。
具體實(shí)施方式
實(shí)施例1
本實(shí)施例所提供的基于mvc框架的無人機(jī)地面維護(hù)系統(tǒng)如圖1所示,系統(tǒng)可分為三層,第一層視圖層,包括子系統(tǒng)監(jiān)控?cái)?shù)據(jù)顯示模塊、指令輸入模塊及交互回顯模塊,第二層控制層,包括定時(shí)器模塊、多線程模塊及指令映射模塊,第三層模型層,包括多個(gè)對應(yīng)指令類型的通信接口和日志記錄模塊,其中:
子系統(tǒng)監(jiān)控?cái)?shù)據(jù)顯示模塊,用于顯示當(dāng)前用戶需要查看的子系統(tǒng)狀態(tài)界面,子系統(tǒng)狀態(tài)界面顯示周期性狀態(tài)查詢指令執(zhí)行的子系統(tǒng)狀態(tài)查詢結(jié)果,子系統(tǒng)狀態(tài)界面初始狀態(tài)為默認(rèn)狀態(tài);
指令輸入模塊,用于用戶輸入維護(hù)指令和狀態(tài)查詢指令;
交互回顯模塊,用于顯示用戶輸入指令及其執(zhí)行結(jié)果;
定時(shí)器模塊,用于根據(jù)子系統(tǒng)監(jiān)控?cái)?shù)據(jù)顯示模塊顯示的子系統(tǒng)狀態(tài)界面發(fā)送子系統(tǒng)周期性狀態(tài)查詢指令;
多線程模塊,包含周期性狀態(tài)查詢指令線程和用戶輸入指令發(fā)送線程,用于同步周期性狀態(tài)查詢指令和用戶輸入指令的發(fā)送;
指令映射模塊,用于將多線程模塊傳輸?shù)闹噶钣成?,根?jù)指令類型確認(rèn)接收指令的通信接口;
通信接口,用于將用戶輸入指令發(fā)送至飛機(jī)管理計(jì)算機(jī),接收用戶輸入指令執(zhí)行結(jié)果將其緩存至緩存區(qū);將周期性狀態(tài)查詢指令分割成多個(gè)小狀態(tài)查詢指令,使用有限狀態(tài)機(jī)方法按周期依次發(fā)送小狀態(tài)查詢指令至飛機(jī)管理計(jì)算機(jī)并接收小狀態(tài)指令執(zhí)行結(jié)果,將其解析后得到子系統(tǒng)狀態(tài)查詢指令執(zhí)行結(jié)果并緩存至緩存區(qū);
日志記錄模塊,用于記錄通信接口發(fā)送的指令和接收的飛機(jī)管理計(jì)算機(jī)指令執(zhí)行結(jié)果;
當(dāng)系統(tǒng)需要拓展維護(hù)時(shí),如需要增加/刪除對無人機(jī)剎車系統(tǒng)的監(jiān)測和控制,可以通過下面三個(gè)步驟在原有系統(tǒng)的基礎(chǔ)上進(jìn)行維護(hù)和拓展,及時(shí)對系統(tǒng)需求變化做出反應(yīng):
第一步,在第一層視圖層的各子系統(tǒng)監(jiān)控?cái)?shù)據(jù)模塊中添加/刪除一個(gè)剎車子系統(tǒng)界面。
第二步,在第二層控制層的指令映射模塊中添加/刪除剎車子系統(tǒng)相關(guān)指令與對應(yīng)通信接口模塊的映射關(guān)系。
第三步,在第三層模型層中添加/刪除與剎車子系統(tǒng)相關(guān)指令對應(yīng)的通信接口模塊。
若系統(tǒng)需求變化,只是需要增加/刪除已有子系統(tǒng)界面中的顯示數(shù)據(jù)或控制控件時(shí),也只須在該子系統(tǒng)界面,指令映射模塊和對應(yīng)的通信接口模塊中修改,由于每個(gè)模塊相互獨(dú)立,不影響其他模塊,有效提高了系統(tǒng)的可維護(hù)性和可拓展性。
以下結(jié)合附圖3,詳細(xì)介紹本發(fā)明提出的無人機(jī)地面維護(hù)方法,包括以下步驟:
本實(shí)施例使用422串口將飛機(jī)管理計(jì)算機(jī)與安裝該地面維護(hù)系統(tǒng)的便攜式維護(hù)設(shè)備相連接,保證無人機(jī)地面維護(hù)系統(tǒng)與飛機(jī)管理計(jì)算機(jī)連接成功,422串口只是本實(shí)施例選用的通信資源,本地面維護(hù)系統(tǒng)支持422串口通信方式,但不限制于422串口通信方式,啟動飛機(jī)管理計(jì)算機(jī)。
無人機(jī)地面維護(hù)系統(tǒng)對各層的模塊進(jìn)行初始化,創(chuàng)建用戶輸入指令發(fā)送線程和周期性狀態(tài)查詢指令線程,子系統(tǒng)監(jiān)控?cái)?shù)據(jù)顯示模塊初始化各子系統(tǒng)界面后顯示用戶選擇查詢的子系統(tǒng)界面,本實(shí)施例選擇查詢的界面為動力系統(tǒng)界面;定時(shí)器模塊啟動;
定時(shí)周期到,定時(shí)器模塊發(fā)送動力系統(tǒng)周期性狀態(tài)查詢指令至多線程模塊,多線程模塊采用多線程同步方法保證同一時(shí)刻只有一個(gè)線程訪問通信資源進(jìn)行指令發(fā)送;指令映射模塊得到動力系統(tǒng)周期性狀態(tài)查詢指令所對應(yīng)的通信接口模塊,多線程模塊發(fā)送動力系統(tǒng)周期性狀態(tài)查詢指令至對應(yīng)動力系統(tǒng)的通信接口;
通信接口接收多線程模塊發(fā)送的指令,將動力系統(tǒng)周期性狀態(tài)查詢分割成多個(gè)小狀態(tài)查詢指令,按周期依次發(fā)送小狀態(tài)查詢指令至飛機(jī)管理計(jì)算機(jī)并接收指令執(zhí)行結(jié)果解析后得到查詢的子系統(tǒng)狀態(tài)查詢指令執(zhí)行結(jié)果并緩存至緩存區(qū);子系統(tǒng)監(jiān)控?cái)?shù)據(jù)顯示模塊顯示緩存區(qū)中動力系統(tǒng)狀態(tài)查詢結(jié)果。
其中通信接口使用有限狀態(tài)機(jī)方法發(fā)送小狀態(tài)查詢指令,該模塊中的狀態(tài)轉(zhuǎn)移圖如圖2所示,該通信接口模塊共有四個(gè)狀態(tài):s1、s2、s3和s4,s1表示通信接口模塊的初始狀態(tài),指令執(zhí)行成功后從狀態(tài)s1轉(zhuǎn)移到狀態(tài)s2,若指令執(zhí)行失敗,則保持原狀態(tài)s1,依次循環(huán);該狀態(tài)轉(zhuǎn)移圖只是所有通信接口模塊狀態(tài)轉(zhuǎn)移圖的一個(gè)代表,其他通信接口狀態(tài)轉(zhuǎn)移圖的狀態(tài)個(gè)數(shù)視具體情況和指令分割粒度而確定。
以上結(jié)合本發(fā)明的具體實(shí)施例做了詳細(xì)描述,但并非是對本發(fā)明的限制,例如本實(shí)施例采用的通信資源為422串口。采用本發(fā)明的基本框架和方法,在實(shí)際實(shí)施中可有多種等同的變化,但凡是根據(jù)發(fā)明的技術(shù)方案及其發(fā)明構(gòu)思,加以等同替換與改變,均被認(rèn)為屬于本發(fā)明的權(quán)利要求的保護(hù)范圍。