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

        ?

        界面可定制的北斗用戶機(jī)監(jiān)控軟件動(dòng)態(tài)鏈接庫(kù)的設(shè)計(jì)

        2017-07-18 12:01:32
        山西電子技術(shù) 2017年3期
        關(guān)鍵詞:界面用戶功能

        史 峰

        (國(guó)營(yíng)七八五廠,山西 太原 030024)

        界面可定制的北斗用戶機(jī)監(jiān)控軟件動(dòng)態(tài)鏈接庫(kù)的設(shè)計(jì)

        史 峰

        (國(guó)營(yíng)七八五廠,山西 太原 030024)

        在Microsoft Windows XP操作系統(tǒng)下使用Microsoft Visual C++ 6.0作為編譯環(huán)境,運(yùn)用面向?qū)ο蟮墓S模式設(shè)計(jì)支持用戶定制界面的運(yùn)行于計(jì)算機(jī)上的北斗用戶機(jī)監(jiān)控軟件動(dòng)態(tài)鏈接庫(kù)。

        北斗用戶機(jī);定制界面;設(shè)計(jì)模式;動(dòng)態(tài)鏈接庫(kù)

        隨著我國(guó)北斗定位系統(tǒng)的發(fā)展,與北斗相關(guān)的技術(shù)越來越多的應(yīng)用在軍事和民用方面。北斗用戶機(jī)是和北斗衛(wèi)星通訊的一種硬件終端,可以通過串口與計(jì)算機(jī)通訊。為了提高軟件開發(fā)的效率,需要設(shè)計(jì)北斗用戶機(jī)監(jiān)控軟件的動(dòng)態(tài)鏈接庫(kù)(以下簡(jiǎn)稱北斗監(jiān)控動(dòng)態(tài)鏈接庫(kù)),通過在主程序中調(diào)用該動(dòng)態(tài)鏈接庫(kù),在計(jì)算機(jī)上顯示北斗用戶機(jī)的狀態(tài)和數(shù)據(jù)。

        1 概述

        北斗監(jiān)控軟件的界面由一個(gè)主對(duì)話框和一個(gè)標(biāo)簽控件(CTabCtrl)以及綁定在該標(biāo)簽控件上的若干子對(duì)話框(CDialog)組成,每個(gè)子對(duì)話框以卡片的形式實(shí)現(xiàn)一個(gè)功能或顯示一類數(shù)據(jù),有相關(guān)性的幾種功能或數(shù)據(jù)的卡片可以按順序顯示在同一個(gè)標(biāo)簽頁上。

        為了能在不同類型的軟件中調(diào)用北斗監(jiān)控動(dòng)態(tài)鏈接庫(kù),提高軟件的復(fù)用性,做到在不修改代碼的前提下,通過修改配置文件即可定制軟件界面,北斗動(dòng)態(tài)鏈接庫(kù)應(yīng)具備一定的通用性,包含比較完整的北斗數(shù)據(jù)解析和顯示能力;同時(shí)也要具備一定的靈活性,允許用戶根據(jù)不同的應(yīng)用場(chǎng)合定制和裁剪監(jiān)控軟件的頁面,只顯示某些功能或數(shù)據(jù)所對(duì)應(yīng)的子對(duì)話框,并根據(jù)其重要程度改變頁面在面板上的排列順序以及子對(duì)話框在頁面上的排列順序。

        圖1為在某個(gè)軟件中調(diào)用北斗監(jiān)控動(dòng)態(tài)鏈接庫(kù)后顯示的北斗監(jiān)控軟件界面,經(jīng)過界面定制后,該界面共包含6個(gè)標(biāo)簽頁13個(gè)子對(duì)話框,圖中顯示為第5個(gè)標(biāo)簽頁(歷史數(shù)據(jù))中的第一個(gè)子對(duì)話框(接收到數(shù)據(jù)),北斗監(jiān)控軟件最大可支持10個(gè)標(biāo)簽頁,每個(gè)標(biāo)簽頁可顯示10個(gè)子對(duì)話框。

        圖1 北斗監(jiān)控面板在計(jì)算機(jī)上的顯示界面

        北斗監(jiān)控軟件的功能主要由CTabBoard.dll和CBeiDouMonitor.dll兩個(gè)動(dòng)態(tài)鏈接庫(kù)完成,另外還用到了CSerialPortDlg.dll來實(shí)現(xiàn)串口通訊功能以及Config.ini文件保存界面布置參數(shù),主程序和各動(dòng)態(tài)鏈接庫(kù)之間的調(diào)用關(guān)系如圖2。

        圖2 主程序和北斗監(jiān)控軟件動(dòng)態(tài)鏈接庫(kù)的調(diào)用關(guān)系圖

        2 基類動(dòng)態(tài)鏈接庫(kù)的設(shè)計(jì)

        CTabBoard.dll中主要包含了一個(gè)抽象類CTabBoard,提供界面顯示和數(shù)據(jù)交換的運(yùn)行框架,負(fù)責(zé)創(chuàng)建和顯示主對(duì)話框及其標(biāo)簽控件、顯示和排列子對(duì)話框,而子對(duì)話框的創(chuàng)建和具體業(yè)務(wù)有關(guān)的功能由其派生類實(shí)現(xiàn)。

        CTabBoard類負(fù)責(zé)與主程序進(jìn)行數(shù)據(jù)交換;與派生類中的子對(duì)話框進(jìn)行數(shù)據(jù)交換;根據(jù)界面配置文件的參數(shù)自動(dòng)調(diào)整標(biāo)簽頁的標(biāo)題和數(shù)量,調(diào)用其派生類的函數(shù)動(dòng)態(tài)創(chuàng)建并顯示子對(duì)話框并綁定至指定的標(biāo)簽頁面;自動(dòng)布置子對(duì)話框在標(biāo)簽頁的順序和位置并根據(jù)每個(gè)標(biāo)簽頁面上子對(duì)話框的數(shù)量和大小動(dòng)態(tài)調(diào)整標(biāo)簽控件及主對(duì)話框的高度和寬度;支持子對(duì)話框縱向排列、橫向排列、平鋪、最小化等顯示模式;支持串口通訊。

        基類CTabBoard的主要結(jié)構(gòu)如圖3。

        圖3 CTabBoard類的主要結(jié)構(gòu)

        3 派生類動(dòng)態(tài)鏈接庫(kù)的設(shè)計(jì)

        CBeiDouMonitor.dll中包含了一個(gè)CTabBoard類的派生類CBeiDouMonitor類和若干實(shí)現(xiàn)北斗用戶機(jī)監(jiān)控功能的子對(duì)話框類,包括顯示北斗用戶機(jī)狀態(tài)、顯示衛(wèi)星信號(hào)狀態(tài)、顯示定位信息、發(fā)送本機(jī)位置、發(fā)送和接收北斗數(shù)據(jù)、保存和查詢歷史數(shù)據(jù)、保存操作日志、設(shè)置參數(shù)等等,完成北斗數(shù)據(jù)的解析和交換,實(shí)現(xiàn)北斗監(jiān)控軟件的具體業(yè)務(wù)功能。

        3.1 CBeiDouMonitor類的設(shè)計(jì)

        作為CTabBoard類的派生類,在CBeiDouMonitor類中實(shí)現(xiàn)了基類的虛函數(shù)和與北斗用戶機(jī)有關(guān)的具體業(yè)務(wù)功能。增加了保存北斗用戶機(jī)狀態(tài)的數(shù)據(jù)結(jié)構(gòu),增加了解析和處理北斗數(shù)據(jù)的函數(shù),添加了串口通訊和串口數(shù)據(jù)編解碼的功能。

        CBeiDouMonitor類在創(chuàng)建實(shí)現(xiàn)具體業(yè)務(wù)功能的子對(duì)話框時(shí),使用了面向?qū)ο蟮暮?jiǎn)單工廠模式,可以根據(jù)配置文件的參數(shù)有選擇地動(dòng)態(tài)創(chuàng)建和初始化所需類型的子對(duì)話框而不是創(chuàng)建和初始化所有的子對(duì)話框。

        在處理和分析數(shù)據(jù)時(shí),CBeiDouMonitor類作為中間緩沖層,有效地保證了數(shù)據(jù)的統(tǒng)一性和安全性。例如:在收到串口的數(shù)據(jù)時(shí),由該類中的串口數(shù)據(jù)解析函數(shù)過濾掉無效數(shù)據(jù)后,將有效數(shù)據(jù)提取出來后以消息的形式發(fā)送給對(duì)應(yīng)的子對(duì)話框;當(dāng)子對(duì)話框需要通過串口發(fā)送數(shù)據(jù)時(shí),可以向CBeiDouMonitor類發(fā)送消息,由該類中的串口通訊函數(shù)讀取北斗用戶機(jī)數(shù)據(jù)完成編碼后向串口發(fā)送數(shù)據(jù)。

        派生類CBeiDouMonitor的主要結(jié)構(gòu)如圖4。

        圖4 CBeiDouMonitor類的主要結(jié)構(gòu)

        3.2 CBeiDouMonitor類與主程序之間的通訊

        這里的主程序指的是調(diào)用北斗動(dòng)態(tài)鏈接庫(kù)的程序,主程序與北斗動(dòng)態(tài)鏈接庫(kù)的數(shù)據(jù)交換通過主對(duì)話框的函數(shù)來實(shí)現(xiàn)。在收到主程序發(fā)送來的消息時(shí),由該類中的解析函數(shù)處理消息中的數(shù)據(jù)后發(fā)送給對(duì)應(yīng)的子對(duì)話框。

        3.3 CBeiDouMonitor.dll中子對(duì)話框類的設(shè)計(jì)

        為了保證數(shù)據(jù)的獨(dú)立性和安全性,提高不同功能內(nèi)部數(shù)據(jù)的聚合度,降低不同功能之間的耦合度,使用面向?qū)ο蟮脑O(shè)計(jì)思想將北斗用戶機(jī)監(jiān)控軟件的一個(gè)功能或一類數(shù)據(jù)設(shè)計(jì)為一個(gè)子對(duì)話框類,在用戶界面上以功能卡片的形式顯示,不同功能的卡片可以按照任意順序排列在一個(gè)標(biāo)簽頁面上,也可以分布在不同的標(biāo)簽頁面上。

        3.4 CBeiDouMonitor.dll中子對(duì)話框類與主對(duì)話框之間的通訊和數(shù)據(jù)交換

        子對(duì)話框與主對(duì)話框(由CBeidouMonitor類實(shí)現(xiàn))之間通過消息傳遞的方式進(jìn)行數(shù)據(jù)交換。例如:在主對(duì)話框收到串口發(fā)送來的消息時(shí),由該類中的消息解析函數(shù)將過濾后的數(shù)據(jù)通過消息發(fā)送給對(duì)應(yīng)的子對(duì)話框,收到數(shù)據(jù)的子對(duì)話框提取和加工其中的有效數(shù)據(jù),更新對(duì)話框上的文字、數(shù)字、圖形或符號(hào),顯示北斗用戶機(jī)狀態(tài)監(jiān)控、數(shù)據(jù)顯示、操作記錄等功能;當(dāng)通過點(diǎn)擊子對(duì)話框的按鈕發(fā)送本機(jī)位置時(shí),子對(duì)話框?qū)⑿枰瓿傻墓δ芤韵⒌男问桨l(fā)送給主對(duì)話框,由主對(duì)話框去調(diào)用串口數(shù)據(jù)編碼和發(fā)送函數(shù)去完成相關(guān)功能。

        完成接收數(shù)據(jù)列表功能的子對(duì)話框類的主要結(jié)構(gòu)如圖5。

        圖5 接收數(shù)據(jù)列表子對(duì)話框類的主要結(jié)構(gòu)

        3.5 CBeiDouMonitor.dll中子對(duì)話框之間的通訊和數(shù)據(jù)交換

        為了降低子對(duì)話框之間的耦合程度,在定制界面時(shí)做到各個(gè)子對(duì)話框之間無相互依賴關(guān)系,它們之間的通訊和數(shù)據(jù)交換通過CBeiDouMonitor的主對(duì)話框作為中介來實(shí)現(xiàn),例如:在保存某個(gè)子對(duì)話框中的操作記錄時(shí),該子對(duì)話框?qū)⑾蛑鲗?duì)話框發(fā)送一個(gè)包含了有關(guān)操作的信息的消息,主對(duì)話框收到該消息后,將該消息加工后發(fā)送給歷史數(shù)據(jù)標(biāo)簽頁中的操作記錄子對(duì)話框,操作記錄子對(duì)話框提取數(shù)據(jù)中的操作信息后再調(diào)用其添加操作記錄函數(shù)在操作記錄列表中增加一條操作記錄。

        4 界面設(shè)計(jì)工具及其配置文件的設(shè)計(jì)

        將用戶界面的相關(guān)參數(shù)保存在配置文件中,通過修改配置文件中的參數(shù),就可以在不修改程序源代碼的條件下為不同的主程序定制不同的顯示界面,這樣既保證了代碼和數(shù)據(jù)的安全性,又提高了軟件的復(fù)用性和開發(fā)效率,例如:如果我們只關(guān)心定位功能,就可以在配置文件中設(shè)置主對(duì)話框只包含一個(gè)定位功能標(biāo)簽頁,在該標(biāo)簽頁上只顯示具有定位功能的子對(duì)話框;或者我們非常關(guān)心北斗用戶機(jī)狀態(tài),就可以在配置文件中改變子對(duì)話框排列順序的參數(shù),將顯示北斗用戶機(jī)狀態(tài)的子對(duì)話框排列在第一個(gè)標(biāo)簽頁的第一個(gè)位置。

        但是如果通過手動(dòng)修改配置文件來完成以上操作,不僅操作不便而且不夠直觀,還有可能出現(xiàn)寫錯(cuò)參數(shù)寫錯(cuò)格式的情況,所以,我們還要設(shè)計(jì)一個(gè)可視化的界面定制工具,通過它來高效直觀地針對(duì)不同應(yīng)用場(chǎng)合的不同需求設(shè)計(jì)北斗用戶機(jī)監(jiān)控軟件的用戶界面。該軟件可以單獨(dú)運(yùn)行,可以新建、打開、修改和保存配置文件的參數(shù)。

        北斗用戶機(jī)監(jiān)控軟件界面定制工具如圖6。

        圖6 北斗用戶機(jī)監(jiān)控軟件界面定制工具

        5 結(jié)束語

        用這樣的思路設(shè)計(jì)出的動(dòng)態(tài)鏈接庫(kù),在兼顧了通用性和靈活性的同時(shí),有效地減小了軟件的體積,降低了其對(duì)計(jì)算機(jī)資源的占用,提高了軟件的運(yùn)行效率,并且降低了與主程序的耦合程度,能夠方便地進(jìn)行功能升級(jí)和版本更新。

        在增強(qiáng)功能的版本中也可以添加使用網(wǎng)口或CAN口到通訊方式,可以通過派生類來實(shí)現(xiàn)更多的功能,也可以將子對(duì)話框類設(shè)計(jì)為單獨(dú)的動(dòng)態(tài)鏈接庫(kù),以便于功能擴(kuò)展和維護(hù)。

        [1] Stanley B.Lippman,Josee Lajoie,Barbara E.Moo.C++ Primer中文版[M].北京:人民郵電出版社,2010.

        [2] 趙永發(fā),由大偉,楊麗.Visual C++開發(fā)寶典[M].北京:機(jī)械工業(yè)出版社,2012.

        [3] Erich Gamma,Richard Helm,Ralph Johnson.設(shè)計(jì)模式:可復(fù)用面向?qū)ο筌浖幕A(chǔ)[M].北京:機(jī)械工業(yè)出版社,2007.

        [4] Grady Booch.面向?qū)ο蠓治雠c設(shè)計(jì)[M].北京:機(jī)械工業(yè)出版社,2008.

        [5] 程杰.大話設(shè)計(jì)模式[M].北京:清華大學(xué)出版社,2009.

        Designment of Interface Customizable BeiDou Monitoring System’s Dlls

        Shi Feng

        (Stateowned785Plant,TaiyuanShanxi030024,China)

        This paper uses Microsoft Visual C++ 6.0 as the compiler environment in the Microsoft Windows XP operating system and applies the objected oriented factory mode to design the dynamic link library of Beidou user monitoring software which supports the user interface customizable and runs on the computer.

        BeiDou; interface customizable; design mode; dynamic link library

        2017-03-23

        史 峰(1981- ),男,山西潞城人,工程師,本科學(xué)歷,研究方向?yàn)樽詣?dòng)控制。

        1674- 4578(2017)03- 0045- 03

        TP277;TP311.52

        A

        猜你喜歡
        界面用戶功能
        也談詩(shī)的“功能”
        國(guó)企黨委前置研究的“四個(gè)界面”
        基于FANUC PICTURE的虛擬軸坐標(biāo)顯示界面開發(fā)方法研究
        關(guān)于非首都功能疏解的幾點(diǎn)思考
        關(guān)注用戶
        商用汽車(2016年11期)2016-12-19 01:20:16
        人機(jī)交互界面發(fā)展趨勢(shì)研究
        關(guān)注用戶
        商用汽車(2016年6期)2016-06-29 09:18:54
        關(guān)注用戶
        商用汽車(2016年4期)2016-05-09 01:23:12
        手機(jī)界面中圖形符號(hào)的發(fā)展趨向
        新聞傳播(2015年11期)2015-07-18 11:15:04
        如何獲取一億海外用戶
        亚洲中文字幕无码爆乳av| 久久99热国产精品综合| 国产又爽又大又黄a片| 久久av无码精品人妻出轨| 四虎影视国产884a精品亚洲| 亚洲中文字幕免费精品| 国产熟女自拍视频网站| 亚洲av专区一区二区| 人妻洗澡被强公日日澡电影| 丰满岳乱妇久久久| 无码高潮久久一级一级喷水 | 国产av熟女一区二区三区密桃| 伊人精品久久久久中文字幕 | 久久精品—区二区三区无码伊人色| 国产目拍亚洲精品二区| 国产高清一区二区三区四区色| 国产精品熟女视频一区二区| 国产精品美女白浆喷水| 一区二区三区黄色一级片| 无套内谢孕妇毛片免费看| 国产日韩精品中文字无码| 天天干夜夜躁| 丝袜美腿亚洲综合在线播放| 亚洲av乱码一区二区三区按摩| 广东少妇大战黑人34厘米视频| 亚洲日韩国产精品不卡一区在线| 国产婷婷成人久久av免费| 人妻少妇偷人精品无码| 亚洲天堂成人在线| 白白色福利视频在线观看| 国产成人精品优优av| 亚洲色大网站www永久网站| 国产AV高清精品久久| 毛片在线播放亚洲免费中文网 | 国产精品日韩经典中文字幕| 成人免费777777被爆出| 久久久AV无码精品免费 | 丰满人妻熟妇乱又伦精品软件 | 人人妻人人爽人人澡人人| 久久波多野结衣av| 亚洲av成人永久网站一区|