APP下载

界面可定制的北斗用户机监控软件动态链接库的设计

2017-07-18

山西电子技术 2017年3期
关键词:配置文件对话框串口

史 峰

(国营七八五厂,山西 太原 030024)

界面可定制的北斗用户机监控软件动态链接库的设计

史 峰

(国营七八五厂,山西 太原 030024)

在Microsoft Windows XP操作系统下使用Microsoft Visual C++ 6.0作为编译环境,运用面向对象的工厂模式设计支持用户定制界面的运行于计算机上的北斗用户机监控软件动态链接库。

北斗用户机;定制界面;设计模式;动态链接库

随着我国北斗定位系统的发展,与北斗相关的技术越来越多的应用在军事和民用方面。北斗用户机是和北斗卫星通讯的一种硬件终端,可以通过串口与计算机通讯。为了提高软件开发的效率,需要设计北斗用户机监控软件的动态链接库(以下简称北斗监控动态链接库),通过在主程序中调用该动态链接库,在计算机上显示北斗用户机的状态和数据。

1 概述

北斗监控软件的界面由一个主对话框和一个标签控件(CTabCtrl)以及绑定在该标签控件上的若干子对话框(CDialog)组成,每个子对话框以卡片的形式实现一个功能或显示一类数据,有相关性的几种功能或数据的卡片可以按顺序显示在同一个标签页上。

为了能在不同类型的软件中调用北斗监控动态链接库,提高软件的复用性,做到在不修改代码的前提下,通过修改配置文件即可定制软件界面,北斗动态链接库应具备一定的通用性,包含比较完整的北斗数据解析和显示能力;同时也要具备一定的灵活性,允许用户根据不同的应用场合定制和裁剪监控软件的页面,只显示某些功能或数据所对应的子对话框,并根据其重要程度改变页面在面板上的排列顺序以及子对话框在页面上的排列顺序。

图1为在某个软件中调用北斗监控动态链接库后显示的北斗监控软件界面,经过界面定制后,该界面共包含6个标签页13个子对话框,图中显示为第5个标签页(历史数据)中的第一个子对话框(接收到数据),北斗监控软件最大可支持10个标签页,每个标签页可显示10个子对话框。

图1 北斗监控面板在计算机上的显示界面

北斗监控软件的功能主要由CTabBoard.dll和CBeiDouMonitor.dll两个动态链接库完成,另外还用到了CSerialPortDlg.dll来实现串口通讯功能以及Config.ini文件保存界面布置参数,主程序和各动态链接库之间的调用关系如图2。

图2 主程序和北斗监控软件动态链接库的调用关系图

2 基类动态链接库的设计

CTabBoard.dll中主要包含了一个抽象类CTabBoard,提供界面显示和数据交换的运行框架,负责创建和显示主对话框及其标签控件、显示和排列子对话框,而子对话框的创建和具体业务有关的功能由其派生类实现。

CTabBoard类负责与主程序进行数据交换;与派生类中的子对话框进行数据交换;根据界面配置文件的参数自动调整标签页的标题和数量,调用其派生类的函数动态创建并显示子对话框并绑定至指定的标签页面;自动布置子对话框在标签页的顺序和位置并根据每个标签页面上子对话框的数量和大小动态调整标签控件及主对话框的高度和宽度;支持子对话框纵向排列、横向排列、平铺、最小化等显示模式;支持串口通讯。

基类CTabBoard的主要结构如图3。

图3 CTabBoard类的主要结构

3 派生类动态链接库的设计

CBeiDouMonitor.dll中包含了一个CTabBoard类的派生类CBeiDouMonitor类和若干实现北斗用户机监控功能的子对话框类,包括显示北斗用户机状态、显示卫星信号状态、显示定位信息、发送本机位置、发送和接收北斗数据、保存和查询历史数据、保存操作日志、设置参数等等,完成北斗数据的解析和交换,实现北斗监控软件的具体业务功能。

3.1 CBeiDouMonitor类的设计

作为CTabBoard类的派生类,在CBeiDouMonitor类中实现了基类的虚函数和与北斗用户机有关的具体业务功能。增加了保存北斗用户机状态的数据结构,增加了解析和处理北斗数据的函数,添加了串口通讯和串口数据编解码的功能。

CBeiDouMonitor类在创建实现具体业务功能的子对话框时,使用了面向对象的简单工厂模式,可以根据配置文件的参数有选择地动态创建和初始化所需类型的子对话框而不是创建和初始化所有的子对话框。

在处理和分析数据时,CBeiDouMonitor类作为中间缓冲层,有效地保证了数据的统一性和安全性。例如:在收到串口的数据时,由该类中的串口数据解析函数过滤掉无效数据后,将有效数据提取出来后以消息的形式发送给对应的子对话框;当子对话框需要通过串口发送数据时,可以向CBeiDouMonitor类发送消息,由该类中的串口通讯函数读取北斗用户机数据完成编码后向串口发送数据。

派生类CBeiDouMonitor的主要结构如图4。

图4 CBeiDouMonitor类的主要结构

3.2 CBeiDouMonitor类与主程序之间的通讯

这里的主程序指的是调用北斗动态链接库的程序,主程序与北斗动态链接库的数据交换通过主对话框的函数来实现。在收到主程序发送来的消息时,由该类中的解析函数处理消息中的数据后发送给对应的子对话框。

3.3 CBeiDouMonitor.dll中子对话框类的设计

为了保证数据的独立性和安全性,提高不同功能内部数据的聚合度,降低不同功能之间的耦合度,使用面向对象的设计思想将北斗用户机监控软件的一个功能或一类数据设计为一个子对话框类,在用户界面上以功能卡片的形式显示,不同功能的卡片可以按照任意顺序排列在一个标签页面上,也可以分布在不同的标签页面上。

3.4 CBeiDouMonitor.dll中子对话框类与主对话框之间的通讯和数据交换

子对话框与主对话框(由CBeidouMonitor类实现)之间通过消息传递的方式进行数据交换。例如:在主对话框收到串口发送来的消息时,由该类中的消息解析函数将过滤后的数据通过消息发送给对应的子对话框,收到数据的子对话框提取和加工其中的有效数据,更新对话框上的文字、数字、图形或符号,显示北斗用户机状态监控、数据显示、操作记录等功能;当通过点击子对话框的按钮发送本机位置时,子对话框将需要完成的功能以消息的形式发送给主对话框,由主对话框去调用串口数据编码和发送函数去完成相关功能。

完成接收数据列表功能的子对话框类的主要结构如图5。

图5 接收数据列表子对话框类的主要结构

3.5 CBeiDouMonitor.dll中子对话框之间的通讯和数据交换

为了降低子对话框之间的耦合程度,在定制界面时做到各个子对话框之间无相互依赖关系,它们之间的通讯和数据交换通过CBeiDouMonitor的主对话框作为中介来实现,例如:在保存某个子对话框中的操作记录时,该子对话框将向主对话框发送一个包含了有关操作的信息的消息,主对话框收到该消息后,将该消息加工后发送给历史数据标签页中的操作记录子对话框,操作记录子对话框提取数据中的操作信息后再调用其添加操作记录函数在操作记录列表中增加一条操作记录。

4 界面设计工具及其配置文件的设计

将用户界面的相关参数保存在配置文件中,通过修改配置文件中的参数,就可以在不修改程序源代码的条件下为不同的主程序定制不同的显示界面,这样既保证了代码和数据的安全性,又提高了软件的复用性和开发效率,例如:如果我们只关心定位功能,就可以在配置文件中设置主对话框只包含一个定位功能标签页,在该标签页上只显示具有定位功能的子对话框;或者我们非常关心北斗用户机状态,就可以在配置文件中改变子对话框排列顺序的参数,将显示北斗用户机状态的子对话框排列在第一个标签页的第一个位置。

但是如果通过手动修改配置文件来完成以上操作,不仅操作不便而且不够直观,还有可能出现写错参数写错格式的情况,所以,我们还要设计一个可视化的界面定制工具,通过它来高效直观地针对不同应用场合的不同需求设计北斗用户机监控软件的用户界面。该软件可以单独运行,可以新建、打开、修改和保存配置文件的参数。

北斗用户机监控软件界面定制工具如图6。

图6 北斗用户机监控软件界面定制工具

5 结束语

用这样的思路设计出的动态链接库,在兼顾了通用性和灵活性的同时,有效地减小了软件的体积,降低了其对计算机资源的占用,提高了软件的运行效率,并且降低了与主程序的耦合程度,能够方便地进行功能升级和版本更新。

在增强功能的版本中也可以添加使用网口或CAN口到通讯方式,可以通过派生类来实现更多的功能,也可以将子对话框类设计为单独的动态链接库,以便于功能扩展和维护。

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

[2] 赵永发,由大伟,杨丽.Visual C++开发宝典[M].北京:机械工业出版社,2012.

[3] Erich Gamma,Richard Helm,Ralph Johnson.设计模式:可复用面向对象软件的基础[M].北京:机械工业出版社,2007.

[4] Grady Booch.面向对象分析与设计[M].北京:机械工业出版社,2008.

[5] 程杰.大话设计模式[M].北京:清华大学出版社,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- ),男,山西潞城人,工程师,本科学历,研究方向为自动控制。

1674- 4578(2017)03- 0045- 03

TP277;TP311.52

A

猜你喜欢

配置文件对话框串口
浅谈AB PLC串口跟RFID传感器的通讯应用
正常恢复虚拟机
互不干涉混用Chromium Edge
Bootlace Worms’Secret etc.
What Is Beauty?
基于Zookeeper的配置管理中心设计与实现
忘记ESXi主机root密码怎么办
为View桌面准备父虚拟机
浅谈VB的通用对话框《CommonDialog》控件的使用
数字电源内部数据传输的串口通信方法实现