基于MFC的航空电子系统综合自动检测设备客户端软件设计与实现

2020-03-09 13:12
计算机测量与控制 2020年2期
关键词:自动检测对话框客户端

(中国直升机设计研究所,江西 景德镇 333001)

0 引言

针对不同型号飞机航空电子系统不同分系统分设备测试需求存在较大差异的实际情况,根据测设需求的并集[1],研制规模合理航空电子系统综合自动检测设备可以提高其通用性,提高多型号飞机航空电子系统的维修保障效率。目前,自动测试领域中使用的测试程序(TP)开发环境主要有面向仪器和面向信号两种[2]。面向仪器的开发环境需要把测试程序和测设设备驱动集合在一起,使测试程序设计与开发周期较长、维护困难,可移植性、可重用性较差[2]。而基于PAWS的面向信号的开发环境,测试程序中只包含被测对象(UUT)端口的信号激励与测试要求,测试程序运行环境可自动分配测试资源和路由测试通道,开发的测试程序具有测试资源无关性,提高了平台资源配置利用的效率,利于测试程序的再移植[2-3]。同时,提高自动检测设备的通用性可以解决检测设备和UUT生命周期不匹配的问题[4]。基于PAWS的面向信号的开发环境使用ATLAS语言开发测试程序。ATLAS作为广泛应用于军事和电子测试的通用标准测试语言,具有设备无关性、信号相关性、可扩展性、并行性和定时功能,语法接近自然语言,文法限制不严格的特点[5]。为便于航空电子系统设备TP的管理,在PAWS开发平台上开发的TP一般以生成TP运行环境可执行的PAX文件进行交付。然而,TP运行环境功能单一,人机界面过于简单,为对航空电子系统等大型系统的综合自动检测设备的测试程序、测试报告、使用者权限、测试日志等进行管理,需要开发便于人机交互的客户端软件。

MFC(microsoft foundation classes)是微软提供框架类库,提供了强大的可视化编程环境[6]。依据ABBET标准,PAWS提供了如COM/DCOM、ActiveX等流行的接口功能。针对PAWS的TP运行环境缺乏强大的测试系统文件管理功能等问题,本文在MFC应用程序框架下,利用COM、ActiveX等接口技术实现了测试系统客户端软件对TP运行环境组件和ACCESS数据库的调用,编制了测试程序管理、测试报告管理、用户权限管理、测试日志管理等模块,极大地方便了整套系统的使用与管理。

1 综合自动检测设备总体结构

航空电子系统综合自动检测设备由硬件系统和软件系统两大部分组成。硬件系统主要包括主控计算机、测试资源平台、各被测件适配器(TUA)3大部分组成。其中,测试资源平台是整个综合自动检测设备硬件的主干部分,由1553B总线类仪器、GPIB总线类仪器、VXI总线类仪器、ICA阵列接口、ITA测试接口组件组成。VXI总线类仪器由VXI总线零槽控制器、VXI总线测试仪器板卡、VXI总线开关板卡组成。测试资源平台各仪器的输入输出信号引脚通过直通导线与ICA阵列接口的各信号孔相连。各被测件适配器的主要功能是用于航空电子系统各被测件(UUT)的信号引脚与平台测试资源固定的ICA阵列接口进行匹配耦合,测试单元适配器通过各自的ITA测试接口组件与测试资源平台的ICA阵列接口组件对接。主控计算机用于自动检测设备的人机交互,完成所有测试任务的执行、控制与管理任务。为实现这些功能,计算机需安装与VXI零槽控制器通讯的1394总线通讯卡,与GPIB测试仪器通讯的IEEE488总线通讯卡,与1553B测试仪器通讯的1553B总线通讯卡。计算机软件则需安装VISA库,ACCESS数据库,配置所有硬件资源的底层驱动和TP运行环境组件。设备的总体结构如图1所示。

图1 综合自动检测设备总体结构

2 客户端软件设计

2.1 客户端软件总体结构

综合自动检测设备客户端软件用于系统的人机交互,整个客户端软件由ACCESS数据库、TP管理模块、测试报告管理模块、用户权限管理模块、测试日志管理模块等组成。

ACCESS数据库用于整个系统使用过程中信息的存储,按存储的信息分类,ACCESS数据库包含UUT信息表、TP信息表、测试报告信息表、用户信息表、日志信息表。UUT信息表用于存储UUT的中文名称,型号,生产厂家及年月,产品序列号等信息。TP信息表用于存储各被测件(UUT)的测试程序(TP)及其编制人员,版本号,编写年月,版本修改说明等信息。测试报告信息表的主要功能是存储TP运行后生成的测试报告测试时间和对应的被测件型号等信息。用户信息表用于存储所有可以登录客户端软件的用户名、用户密码、用户权限的信息。用户权限分为管理员用户和普通用户。管理员用户具备操作客户端软件所有功能的权限,包括添加删除用户信息等操作,普通用户只限于运行TP,查看测试报告和浏览客户端软件运行日志等操作。客户端软件的登录运行等信息则存储于日志信息表中。

客户端软件功能模块中的TP管理模块的主要任务是完成被测件TP的加载运行,UUT目录信息显示以目录树的形式显示航空电子系统所有被测件名称或型号,点击相应的被测件后再点击TP加载则导入需要的TP。平台自检模块用于TP运行前平台状态的检查。测试报告管理模块完成测试报告的查找浏览打印等需求。用户权限管理模块对客户端软件的使用者进行管理,可以添加用户、删除用户、更改用户密码和权限。用户使用测试日志管理模块可以浏览客户端软件以往的运行使用信息,打印报告。综合检测设备客户端软件是Windows操作系统下的一款应用软件。在Windows操作系统应用程序开发中,微软基础类(Microsoft Foundation Classes, MFC)提供了在C++环境下编写应用程序的框架和引擎,丰富的类库和开放的API接口特别便于开发者使用。整个软件的总体结构如图2所示。

图2 客户端软件总体结构

2.2 软件数据库设计

综合自动检测设备在使用过程中涉及到较多的数据信息管理,如用户的管理,UUT的管理,测试报告信息的管理等。采用数据库技术对这些数据进行有效的组织和管理,能够准确反映数据之间的联系,方便用户对整套检测设备的操作。Access是一个关系数据库管理系统,可以根据用户定义的关系进行存储、处理和管理数据,容量大,功能强,适合本客户端软件的开发。

客户端软件需要管理的信息包括使用者信息、被测件信息、TP信息、测试报告信息、客户端软件使用日志信息,根据这些信息分类制成5份数据表,各表根据各自需要管理的信息添加相应的字段。

基于MFC类库,比较流行的两种数据库操作方式有开放数据库连接(Open Database Connectivity, ODBC)和ADO(ActiveX Data Object)数据库访问接口。ODBC是一种直观和常用的数据库操作方式,但其执行速速与ADO方式相比存在一定劣势,且ADO便于移植,不需要额外的配置,本客户端软件使用ADO对ACCESS数据库进行操作。

2.2.1 ADO初始化

在本客户端软件应用程序的编制过程中,使用ADO操作数据库时必须先在应用程序中首先初始化COM环境,做法是在MFC生成的应用程序框架下应用程序初始化子函数中加入API函数:AfxOleInit();。在COM环境初始化完成后需要配置ADO运行所指出的动态链接库msado15.dll,所有ADO操作的接口函数与数据结构都依赖于该定义文件。在应用程序中引入该文件的一种简便做法是在stdafx.h头文件中加入语句:#import "C:programfilescommon filessystemadomsado15.dll" rename_namespace("ADOBS") rename("EOF","adoEOF");using namespace ADOBS;。文件的具体路径根据操作系统的安装情况而定。

2.2.2 数据库连接

进行数据库连接是使用ADO操作ACCESS数据库必须建立与ACCESS数据库服务器与ACCESS数据库文件的连接。本客户端所有的数据库表都存储在数据库文件ATE.accdb文件中,数据库服务器是微软的Microsoft.ACE.OLEDB.12.0。ADO连接ACCESS数据库通过ADO连接对象指针_ConnectionPtr和ADO记录集对象指针_RecordsetPtr实现。具体代码如下:

_ConnectionPtr m_pCon; //ADO连接对象

_RecordsetPtr m_pRs; //创建ADO记录集对象

_bstr_t strConnect="Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" + bstr_t(DataPath) + "DataATE.accdb";

m_pCon.CreateInstance(_uuidof(Connection));

m_pCon->Open(strConnect,"","",adModeUnknown);

m_pRs.CreateInstance(_uuidof(Recordset));

2.2.3 数据表的操作

本客户端软件使用ADO操作ACCESS数据库数据表的常用操作包括打开数据表记录、获取记录字段,删除记录字段、写入记录字段。以本客户端软件的“ATE用户信息管理”表为例,ADO定位到该表用户名的代码为:

theApp.IniAdo();

sql.Format("select 用户名from ATE用户信息管理");//格式化一个字符串写入字符串变量sql中

m_pRs->Open((_variant_t)sql,_variant_t((IDispatch*)m_pCon,true), adOpenDynamic, adLockOptimistic, adCmdUnknown);

使用m_pRs->MoveNext();移动记录集指针在表中指向的位置。

获取字段“用户名”的值使用函数GetCollect,参考代码如下“

txt=m_pRs->GetCollect("用户名").bstrVal;

新增一个空记录则通过AddNew()方法,再用PuttCollect(字段名,值)输入每个字段的值,最后再用Update()更新到数据库中即可,参考代码如下:

m_pRs ->AddNew();

m_pRs ->PutCollect(“用户名”,_variant_t(Newname));

m_pRs ->Update();

要对数据库中某一特定记录进行删除,需要移动记录集指针定位到该记录后再行删除。移动记录集指针使用MoveFirst()方法定位到表第一条记录,使用MoveNext()方法往下移动记录集指正,在通过获取字段的值判断是否是所需要删除的记录,删除记录时使用Delete(adAffectCurrent)方法删除当前记录。参考代码如下:

m_pRs -> Delete(adAffectCurrent);

2.2.4 对象释放

在MFC使用ADO操作数据库后,需要人为释放ADO操作对象,整个释放过程需要先关闭记录集对象后关闭连接对象的顺序,参考代码如下:

m_pRs ->Close();//关闭记录集对象

m_pCon->Close();//关闭连接集对象

2.3 TP管理模块设计

TP管理模块的主要功能是实现对应被测件(UUT)测试程序的管理、加载、运行。航空电子系统各被测件(UUT)的测试程序(TP)根据测试需求文档(TRD)使用ATLAS语言进行开发,使用PAWS作为开发平台。为防止用户对TP进行篡改,TP以编译之后的可执行PAX文件的形式进行交付。PAX文件的运行环境为PAWS的RTS服务器,该系统是一个run-time测试执行系统,可实现自动测试控制、人工测试控制功能,但PAWS/RTS只有英文版,不便于航空电子系统维修人员使用,也不具备对测试系统信息的管理功能。

图3 RTS服务器编程接口关系图

RTS服务器可通过RTS控件集(RTS ActiveX controls)、RTS COM适配器(RTS COM Adapters)和TPS服务器(TPS Server)3种方式向客户端程序提供服务[7],如图3所示。在RTS服务器中,其中RTSMachine支持测试程序集TPS(Test Programe Set)的执行和监控,IOSubsystem为系统的输入/输出(I/O)操作提供支持,DataLogger提供系统的数据记录功能,Debugger为系统提供给调试功能[7]。RTS控件集支持MFC、VB、Web浏览器等ActiveX容器,采用Idispatch自动化接口,使得脚本语言能够驱动RTS服务。在本客户端软件中采用RTS控件集接口的方式进行开发。

图4 MFC插入RTS ActiveX控件

图5 RTS服务器状态与动作逻辑

在MFC下开发RTS ActiveX控件集应用程序需要创建RTS ActiveX类库,安装PAWS软件会自带创建该类库。该类库提供了RtsCombo Class、RtsControl Class、RtsMonitor Class三类ActiveX控件,如图4所示。本客户端软件调用RTS的RTSMachine服务,对应在对话框中插入RtsCombo Class控件,同时会在MFC工程中添加rtscombo.h和rtscombo.cpp两个文件。在rtscombo.cpp文件中定义了RTS ActiveX控件对应的类class CRtscomno,其类属性指向RTS服务器运行时的信息,类方法是与RTS服务器交互的接口函数。RTS服务器的动作逻辑如图5所示。代码编写时使用类class CRtscomno创建RTS ActiveX控件对象,通过对象调用Attach方法连接RTS服务器,Load方法加载PAX格式TPS,Run方法运行TPS,Halt方法暂停TPS的运行,Unload方法卸载RTS服务器中的TP,get_StmInfo等方法获取PAX运行中的信息。

为方便用户快速准确导入需要的TP,在TP管理模块中还集成了UUT目录树,航空电子系统的UUT名称通过ACCESS数据库导入到UUT目录树中。用户需要测试某一UUT时,只要选中对应的UUT名称或型号,点击对话框中的加载按钮,则其PAX文件将自动传到RTS服务器的Load方法,进行TP加载。

2.4 测试报告管理模块设计

测试报告管理模块主要实现用户对平台自检、UUT测试历次报告的查阅,其对话框如图6所示。对话框分为自检报告查阅栏、UUT测试报告查阅栏。在自检报告查阅栏点击下拉框会显示以往所有平台自检报告名称。自检报告由平台自检TP生成,文件名按自检时间命名。选中要查看的自检报告名称,点击查看记录该报告文档将自动弹出。打印文档时点击文档中的打印设置进行打印。UUT测试报告根据UUT的名称进行分类,查阅UUT测试报告首先要从产品名称下拉框中选中产品,选中产品后,点击测试数据下拉框会显示以往该产品的所有测试报告名称。UUT测试报告由UUT测试TP生成,文件名按时间命名。选中测试报告名称,点击查看记录,测试报告将自动弹出,打印操作同平台自检报告。

图6 测试报告管理模块对话框

2.5 用户权限管理模块设计

用户权限管理模块实现对自动检测设备使用着权限的授予与管理,其对话框如图7所示。根据权限管理模块的基本功能,对话框分为添加用户栏、用户名和密码修改栏、删除用户栏。添加用户栏用于添加新用户,需要设置新用户的用户名、密码和身份。用户身份有两种,分别是管理员和普通用户,管理员用户具备系统日志删除、ATE平台自检和UUT测试的权限,普通用户只具备ATE平台自检和UUT测试的权限。用户名和密码修改可以分别实现对用户名和密码的修改。删除用户可以根据实际需要把授予平台使用权限的用户删除。录入客户端软件的信息由ADO添加到ACCESS数据库的用户信息表中,用户密码信息在添加到数据表之前使用加密算法进行加密。信息加入数据表后将对应的增加一条记录。进行用户名密码修改时,ADO首先定位到用户信息表中与旧用户名或旧密码相符的记录,再将对话框中输入的信息更新到对应记录的相关字段中。删除用户下拉栏会通过ADO获取用户信息表中所有用户名,根据需要选择要删除的用户名点击删除按钮后,ADO将用户信息表中与此用户名对应的记录删除。

图7 权限管理模块对话框

2.6 日志管理模块设计

客户端软件日志管理模块只有管理员用户具备权限查看,用于查找综合自动检测设备的每一次使用记录,其对话框如图8所示。其中事件类型下拉框分为全部事件、平台自检事件、UUT测试事件、更改用户信息事件,日期下拉框显示全部日期和客户端软件所有使用被记录的日期,用户下拉框可选择全部用户和具有客户端软件使用权限的某一具体用户。日志记录显示对话框显示信息包括登录时间、操作用户、事件类型、事件标题、事件内容。在事件类型选择全部事件,用户选择全部用户、日期选择全部日期时,点击查看记录按钮ADO将把记录在ACCESS数据库中客户端软件的每一次使用记录传至日志管理模块对话框进行显示。选中某一条记录再点击删除记录,管理员用户可将显示在对话框中的该记录进行删除,同时ACCESS数据库中的记录一并删除。事件类型、用户、日期下拉框选择其他选项,对话框中显示的记录信息只显示符合下拉框条件的信息,管理员可快速定位要查找的日志记录。

图8 日志管理模块对话框

3 系统测试与分析

综合自动检测设备客户端软件作为用户与检测设备硬件系统交互的主要工具,其主要功能是实现用户操作设备实现对各UUT的自动检测功能,其人机对话窗口如图9所示。选择测试对象时可根据显示UUT名称或显示UUT型号,下方树状目录将显示各UUT的名称或型号。在树状目录中选中要测试的UUT,点击左下角加载按钮,则该UUT的TP将导入RTS服务器,TP在RTS中运行时的打印信息将显示在图9对话框的测试过程信息显示框中。如图10所示是进行飞控计算机测试时,TP打印的测试过程信息。如图9所示,在综合自动检测设备开启后进行飞控计算机测试前TP会给出测试前准备信息,主要工作有安装TUA连接设备。在设备安装无误之后,TP开始进行飞控计算机测试。首先TP程序要控制平台电源给飞控计算机通电使飞控计算机进入运行状态。上电过程中RTS根据TP中的上电程序代码从ATLAS设备库中分配电源资源并调用该资源的底层驱动与平台电源通讯执行对应动作。上电之后,通过TP程序中使用万用表测量飞控计算机电压输出引脚的电压确定上电是否完成,RTS调用万用表资源的过程同调用电源资源的过程。万用表测得正常电压后在测试过程信息中显示“27V输入电源正确!”后进入后续与飞控计算机的握手测试。握手测试过程中,TP驱动ATE平台RS422总线仿真卡向飞控计算机发送“7F7F7F”命令字,飞控计算机进入维护测试模式后向外发送“8A8A8A”状态字。TP驱动平台RS422总线卡处于侦听状态,当接收到飞控计算机返回的状态字后将测试过程信息显示在测试过程信息显示界面上。经实际使用验证,客户端软件运行飞控计算机TP进行后续模拟输入测试、模拟输出测试等测试操作均正常无误。通过调用客户端软件的日志管理模块可以查阅到用户的该次测试登录信息和测试项目信息,通过调用测试报告管理模块可以调阅本次飞控计算机测试生成的测试报告。

图9 UUT测试对话框及运行结果

图10 UUT测试过程信息

4 结束语

航空电子系统综合自动检测设备作为集成度较高的信息化仪器平台用于航空电子系统的维修保障可提高航空电子设备故障检测的自动化水平与故障隔离率。平台高度的信息化程度,较多的管理信息和自动化测试要求综合自动检测设备具备高效的人机交互能力。本文设计的基于MFC的航空电子系统综合自动检测设备客户端软件集合ACCESS数据库的信息管理与RTS驱动TP自动测试的功能,使用户可快速便捷与平台会话进行UUT测试。通过交付使用验证该客户端软件运行稳定,能够很好的控制ATE平台完成型号直升机各电子设备的自动测试任务,其用户信息管理、测试报告管理、日志信息管理等功能极大地方便了用户对整套系统的信息管理。

猜你喜欢
自动检测对话框客户端
你的手机安装了多少个客户端
一种钢管接头内、外径自动检测设备
“人民网+客户端”推出数据新闻
——稳就业、惠民生,“数”读十年成绩单
基于传感器的船舶设备工作状态自动检测系统
Bootlace Worms’Secret etc.
What Is Beauty?
机器视觉技术发展及其工业应用
心电异常自动检测的研究
媒体客户端的发展策略与推广模式
浅谈VB的通用对话框《CommonDialog》控件的使用