亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Qt的衛(wèi)星通信上位機(jī)軟件架構(gòu)設(shè)計(jì)

        2018-08-24 11:15:14李敬李昕岳
        現(xiàn)代計(jì)算機(jī) 2018年21期
        關(guān)鍵詞:數(shù)據(jù)處理數(shù)據(jù)庫用戶

        李敬,李昕岳

        (廣州海格通信集團(tuán)股份有限公司,廣州 510663)

        0 引言

        Qt是桌面、嵌入式和移動(dòng)的跨平臺(tái)應(yīng)用開發(fā)框架,支持的平臺(tái)包括 Linux、Windows、VxWorks、Android等。Qt本身不是一種編程語言,它是一個(gè)用C++編程的框架。但它不僅僅只是一個(gè)GUI工具包,它提供了在網(wǎng)絡(luò)、數(shù)據(jù)庫、OpenGL、Web技術(shù)、傳感器、通信協(xié)議、XML和JSON處理、打印、PDF生成等領(lǐng)域的跨平臺(tái)開發(fā)模塊[1-2]。Qt5采用新的模塊化代碼庫,使得移植更加簡單,只需移植所需模塊即可。

        上位機(jī)和下位機(jī)的操作方式為:上位機(jī)是指可以直接發(fā)出操控指令的計(jì)算機(jī)或軟件,下位機(jī)是直接控制設(shè)備獲取設(shè)備狀況的計(jì)算機(jī)或軟件。根據(jù)上位機(jī)界面上的觸生成相應(yīng)命令,此命令傳輸給下位機(jī)后,下位機(jī)再把命令翻譯成相應(yīng)時(shí)序信號來控制相應(yīng)設(shè)備或機(jī)器。下位機(jī)不定時(shí)地獲取設(shè)備狀態(tài)數(shù)據(jù),把數(shù)據(jù)轉(zhuǎn)成數(shù)字信號,反饋給相應(yīng)的上位機(jī)。本文討論的上位機(jī)軟件運(yùn)行在PC上,主要功能是實(shí)現(xiàn)在PC機(jī)上控制衛(wèi)星通信板卡,對板卡進(jìn)行配置、狀態(tài)查詢、數(shù)據(jù)誤碼等測試。

        1 上位機(jī)軟件模型MVC架構(gòu)

        典型的MVC架構(gòu),如圖1所示:

        圖1 MVC組件類型的關(guān)系和功能

        MVC 的縮寫為模型(Model)、視圖(View)和控制器(Controller),分別指內(nèi)部數(shù)據(jù)、數(shù)據(jù)表示和輸入輸出控制部分。

        (1)模型(Model)

        Model是整個(gè)MVC架構(gòu)的核心,它是與問題相關(guān)數(shù)據(jù)的邏輯抽象,代表對象的內(nèi)在屬性。

        Model的作用有:①抽象應(yīng)用程序,把程序數(shù)據(jù)的結(jié)構(gòu)和操作進(jìn)行封裝;②對Controller提供對程序功能的訪問;③接受View對數(shù)據(jù)的查詢請求;④當(dāng)數(shù)據(jù)變化時(shí),通知對此感興趣的View。

        (2)視圖(View)

        View是Model的外在表現(xiàn),一個(gè)Model可以與一個(gè)或多個(gè)View對應(yīng)。View是應(yīng)用系統(tǒng)跟外界的接口,具有與外界進(jìn)行交互的功能。

        View的作用有:①對數(shù)據(jù)的表現(xiàn)部分進(jìn)行抽象;②將數(shù)據(jù)展現(xiàn)給用戶,獲得用戶輸入;③將用戶輸入轉(zhuǎn)發(fā)給Controller;④當(dāng)接收到來自Model的“數(shù)據(jù)已更新”通知后,更新顯示信息。

        (3)控制器(Controller)

        Controller是連接Model和View的紐帶。

        Controller的作用有:①把用戶的交互和應(yīng)用程序語義的映射抽象出來;②將用戶輸入命令翻譯為應(yīng)用程序可識(shí)別的動(dòng)作,并轉(zhuǎn)發(fā)給Model;③根據(jù)用戶的輸入命令和Model對程序動(dòng)作的輸出,選擇適當(dāng)?shù)腣iew來呈現(xiàn)數(shù)據(jù)。

        MVC是模型用一種業(yè)務(wù)邏輯、數(shù)據(jù)、界面顯示分離的方法組織代碼,將業(yè)務(wù)邏輯聚集到一個(gè)部件里面,在改進(jìn)和個(gè)性化定制界面及用戶交互的同時(shí),不需要重新編寫業(yè)務(wù)邏輯[3-4]。

        Qt上位機(jī)的MVC將View與Controller結(jié)合在一起,添加了代理Delegate,組成了模型Model(表示數(shù)據(jù))、視圖View(表示用戶界面)、代理Delegate(自定義數(shù)據(jù)條目item的顯示與編輯方式)的模式。

        圖2中Model與數(shù)據(jù)(Data)通信,并提供接口,View從Model中獲取Data條目索引,Delegate繪制Data條目。整個(gè)模型的通信方式為:信號&槽。此模型的工作方式為:Data改變時(shí),Model發(fā)出信號給View;用戶對界面進(jìn)行操作時(shí),View發(fā)出信號;Delegate發(fā)出信號告知Model和View編輯器目前的狀態(tài)。

        2 上位機(jī)軟件系統(tǒng)架構(gòu)設(shè)計(jì)

        上位機(jī)系統(tǒng)需要滿足高吞吐量的數(shù)據(jù)處理,同時(shí)需要適應(yīng)多個(gè)通信體制,將上位機(jī)軟件的收發(fā)數(shù)據(jù)、業(yè)務(wù)處理、視圖分別單獨(dú)剝離開來,統(tǒng)一模型、視圖和控制器之間的交互接口,屏蔽不同通信體制內(nèi)部處理的差異[5]。上位機(jī)軟件系統(tǒng)架構(gòu)設(shè)計(jì)如圖3所示:

        圖2 Qt上位機(jī)模型與視圖結(jié)構(gòu)圖

        圖3 上位機(jī)軟件架構(gòu)

        不同體制均采用所示軟件架構(gòu),線程1負(fù)責(zé)讀取接口數(shù)據(jù)并將數(shù)據(jù)傳遞到“讀緩存”,線程2負(fù)責(zé)從“讀緩存”讀取數(shù)據(jù),并分發(fā)到各個(gè)“數(shù)據(jù)接收處理模塊”,“數(shù)據(jù)接收處理模”塊對相應(yīng)消息進(jìn)行響應(yīng),并更新“數(shù)據(jù)庫”相應(yīng)的狀態(tài)。線程3中的“控制器”負(fù)責(zé)“視圖”選擇,將用戶動(dòng)作映射成業(yè)務(wù)“數(shù)據(jù)處理模塊”狀態(tài),并進(jìn)行更新;“視圖”用于人機(jī)交互。線程4負(fù)責(zé)“數(shù)據(jù)發(fā)送處理”,由“控制器”傳遞過來的指令觸發(fā)相應(yīng)數(shù)據(jù)發(fā)送功能,需要發(fā)送的數(shù)據(jù)傳遞到“數(shù)據(jù)發(fā)送緩存”,并通過“數(shù)據(jù)庫管理”更新“數(shù)據(jù)庫”相應(yīng)的狀態(tài)。線程5負(fù)責(zé)從“數(shù)據(jù)發(fā)送緩存”讀取數(shù)據(jù)并發(fā)送到接口。

        2.1 上位機(jī)軟件通信體制加載

        對于不同通信體制,線程1和線程5對應(yīng)的功能和數(shù)據(jù)結(jié)構(gòu)不存在差異,可單獨(dú)開發(fā)成一個(gè)獨(dú)立的模塊,適用于所有體制[6]。

        該上位機(jī)為了兼容不同通信體制,線程2、線程3、線程4以及數(shù)據(jù)庫針對不同體制需要進(jìn)行差異化開發(fā)。針對不同體制,將線程2、線程3、線程4以及數(shù)據(jù)庫進(jìn)行單獨(dú)開發(fā),封裝成DLL,在不同體制下進(jìn)行加載。即在實(shí)現(xiàn)過程中整合各項(xiàng)目的上位機(jī)構(gòu)架,把公共功能做成公共界面,特有功能做成風(fēng)格統(tǒng)一的動(dòng)態(tài)庫加載的形式。這樣不僅能夠大大減少開發(fā)人員的工作量,提高工作效率,還能有效地增強(qiáng)程序的可維護(hù)性和可移植性,實(shí)現(xiàn)多項(xiàng)目資源共享,代碼繼承。同時(shí)統(tǒng)一界面風(fēng)格,進(jìn)一步提升用戶體驗(yàn)。

        2.2 上位機(jī)軟件模塊接口數(shù)據(jù)格式定義

        為了保持各個(gè)模塊的獨(dú)立性,減少程序之間的耦合,提高程序的可移植性,降低開發(fā)難度,需規(guī)定各個(gè)核心功能模塊之間數(shù)據(jù)交互格式[7]。定義了兩種數(shù)據(jù)格式,如下所示:

        接口交互數(shù)據(jù)格式1:

        2.3 上位機(jī)軟件收數(shù)據(jù)處理模塊設(shè)計(jì)

        上位機(jī)軟件收數(shù)據(jù)處理模塊設(shè)計(jì)如圖4所示:

        上位機(jī)軟件接收數(shù)據(jù)按照功能劃分7類,包括物理層接口處收發(fā)數(shù)據(jù)監(jiān)控、接口性能測試、物理層功能模塊監(jiān)測、網(wǎng)絡(luò)協(xié)議層功能模塊監(jiān)測、接入設(shè)備網(wǎng)絡(luò)狀態(tài)監(jiān)控、接入設(shè)備參數(shù)監(jiān)控和接收業(yè)務(wù)數(shù)據(jù)管理。不同體制均采用同樣的功能模塊劃分,模塊對外接口命名、參數(shù)類型均統(tǒng)一,屏蔽不同體制造成的內(nèi)部處理的差異。

        圖4 上位機(jī)軟件收數(shù)據(jù)處理模塊

        2.4 上位機(jī)軟件發(fā)數(shù)據(jù)處理模塊設(shè)計(jì)

        上位機(jī)軟件發(fā)送數(shù)據(jù)處理模塊設(shè)計(jì)如圖5所示:

        圖5 上位機(jī)軟件發(fā)數(shù)據(jù)處理模塊

        上位機(jī)軟件發(fā)數(shù)據(jù)處理模塊按照功能分為5類,包括誤碼測試數(shù)據(jù)發(fā)送、單個(gè)參數(shù)配置/查詢、接入設(shè)備信道資源配置、單個(gè)測試信令發(fā)送、業(yè)務(wù)數(shù)據(jù)發(fā)送。不同體制均采用同樣的功能模塊劃分,模塊對外接口命名、參數(shù)類型均統(tǒng)一,屏蔽不同體制造成的內(nèi)部處理的差異。

        2.5 上位機(jī)數(shù)據(jù)庫設(shè)計(jì)

        上位機(jī)數(shù)據(jù)庫包括宏定義、數(shù)據(jù)結(jié)構(gòu)定義、接入設(shè)備參量定義和管理等。數(shù)據(jù)庫分為公共部分和針對不同體制的個(gè)性化定義部分。數(shù)據(jù)庫通過統(tǒng)一的接口供所有開發(fā)人員調(diào)度,屏蔽對數(shù)據(jù)庫參量的直接操作?!皵?shù)據(jù)管理”主要管理接入設(shè)備參量和狀態(tài),對外提供對相應(yīng)的更新和讀取的接口。

        3 結(jié)語

        目前很多軟件項(xiàng)目的功能測試都是通過上位機(jī)來配合,上位機(jī)作為應(yīng)用中感知節(jié)點(diǎn)信息,進(jìn)行顯示和控制的應(yīng)用控制臺(tái),在項(xiàng)目研發(fā)、調(diào)試、測試等階段起著至關(guān)重要的作用。所以上位機(jī)操作界面的設(shè)計(jì)、開發(fā)、完善的過程都需要進(jìn)行充分的驗(yàn)證,尤其誤碼、誤幀統(tǒng)計(jì)等性能測試時(shí),要求上位機(jī)給出實(shí)時(shí)、準(zhǔn)確的顯示結(jié)果,更需要上位機(jī)具備一套合理的架構(gòu),能夠?qū)崿F(xiàn)后續(xù)功能擴(kuò)展的要求。

        猜你喜歡
        數(shù)據(jù)處理數(shù)據(jù)庫用戶
        認(rèn)知診斷缺失數(shù)據(jù)處理方法的比較:零替換、多重插補(bǔ)與極大似然估計(jì)法*
        ILWT-EEMD數(shù)據(jù)處理的ELM滾動(dòng)軸承故障診斷
        數(shù)據(jù)庫
        關(guān)注用戶
        商用汽車(2016年11期)2016-12-19 01:20:16
        關(guān)注用戶
        商用汽車(2016年6期)2016-06-29 09:18:54
        數(shù)據(jù)庫
        關(guān)注用戶
        商用汽車(2016年4期)2016-05-09 01:23:12
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        基于希爾伯特- 黃變換的去噪法在外測數(shù)據(jù)處理中的應(yīng)用
        国产亚洲精品自在久久77| 久久精品国产亚洲av影院| 亚洲日韩av无码中文字幕美国| 亚洲成a人片在线看| 男人的av天堂狠狠操| 国产一区二区三区免费精品视频| 先锋五月婷婷丁香草草| 久久综合给合久久狠狠狠97色69| 久久99亚洲网美利坚合众国| 国产毛片视频一区二区三区在线 | 亚洲一级毛片免费在线观看| 日韩狼人精品在线观看| 男女av免费视频网站| 久久久久成人精品无码| 国产人成午夜免电影观看| 一区二区三区免费观看在线视频| 国产精品国三级国产a| 国产香蕉国产精品偷在线| 成人免费xxxxx在线视频| 日本久久一区二区三区高清| 一区二区视频在线观看地址| 免费人妻无码不卡中文字幕18禁| 真实国产乱视频国语| 色婷婷一区二区三区77| 国产精品视频亚洲二区| 亚洲av国产精品色午夜洪2| 精品久久综合一区二区| 蓝蓝的天空,白白的云| 国产v片在线播放免费无码 | 久久精品亚洲一区二区三区浴池| 极品熟妇大蝴蝶20p| 蜜桃视频在线免费观看完整版| 国产一区二区三区内射| 亚洲人成未满十八禁网站| 呦泬泬精品导航| 在线观看精品视频网站| 波多野结衣乳巨码无在线| 日本做受高潮好舒服视频| 98国产精品永久在线观看| 熟女少妇精品一区二区三区| 又粗又大又硬毛片免费看|