




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
COM组件技术在测试语言ATLAS的资源定位中的应用李爱萍,女,1974年2月生,在读博士研究生,讲师。2王家礼,男,1942年4月生,教授,博士生导师。3段利国,男,1970年9月生,讲师。项目名称及编号:通用测试语言ATLAS翻译器研究与设计(00404X04)李爱萍12,王家礼1,段利国2(1西安电子科技大学机电工程学院 西安710071,2太原理工大学计算机学院 太原030024)摘要:本文对ATLAS编译器构造中资源定位的难点问题进行了研究。引入COM组件技术解决测试程序对测试仪器的多样性以及不同生产厂家的同一种仪器的统一调用问题。关键字:通用测试语言ATLAS; 编译器构造; COM组件; 资源定位The application of COM technology in Resource Locating of ATLASLi AiPing12 , Wang JiaLi1 , Duan LiGuo2(1. School of Electronic Mechanics, Xidian University, xian, 7100712. Computer College of TUT, Taiyuan, 030024)Abstract : The difficult problem of Resource Locating appeared in the process of ATLAS Compiler Design is studied in this paper. The COM Technology is introduced to solve the problem of uniform invoking account for the diversity of the kind of testing equipments and the manufactories. Keywords : General Test Language ATLAS; Compiler Design; COM; Resource Locating;引言COM(Component Object Model)即组件对象模型,是Microsoft提出的组件标准,它不仅定义了组件程序之间进行交互的标准,并且也提供了组件程序运行所需的环境1。在Microsoft Windows系统平台上,COM技术被应用于系统的各个层次,从底层COM对象到上层的应用程序交互都用到了COM标准。ATLAS是目前自动测试领域广泛使用的一种编程语言,它是一种面向信号的、用来描述独立于任何具体测试仪器的测试流程的高级语言。作为测试用编程语言,ATLAS涉及到与检测仪器之间的交互作用(比如:写数据、取数据等),因此关于该语言的编译器设计具有一些和普通编程语言编译器设计所不同的特点,关键是语言与检测仪器之间的交互。基于COM组件提供的搭积木式的构建系统方法,本文提出,采用COM组件技术为ATLAS语言编译器构造中资源定位实践(与检测仪器之间的交互)提供一种有益高效的解决方法。1、COM组件简介COM是一种跨应用和语言共享二进制代码的方法。COM对象不同于一般面向对象语言中的对象概念,COM对象建立在二进制可执行代码级的基础上,是语言无关的,这一特性使得用不同编程语言开发的组件对象进行交互成为可能。COM组件是动态连接的,是完全与语言无关的,可以以二进制的形式发布,同时, COM组件可以在不妨碍老客户的情况下被升级成新的版本。COM的所有这些特点使得COM成为一种灵活的软件实现模式。2、通用测试语言ATLAS简介 目前测试领域广泛使用的语言ATLAS,是一种用来描述独立于任何具体测试系统的测试流程的高级语言。经过20多年的发展完善,ATLAS语言已经在多个测试领域内具有测试规范,包括:模拟测试、数据总线测试、数字测试、电光测试、燃气涡轮发动机测试、惯性导航系统测试、导航系统测试、定时和同步、视频测试等多个方面2。该语言是基于英语及其缩略语设计的,关键字除了常用英语操作词外,大多是测试领域中常见的词汇,程序可读性很强。标准ATLAS语言主要有以下特点3:(1)适用面广,扩充性强;基于ATLAS语言核心部分内容,用户可根据不同测试领域需求建立测试领域框架。这种结构特点使得该语言在保证描述基础可靠的同时,不限制用户对它扩展以构造用于某些专门测试领域的新的语言单元和结构。(2)设备无关性;ATLAS语言是一种面向信号的编程语言,该语言的开发方式是基于被测对象的测试需求和测试资源的测试/激励能力,将对测试的需求映射成对信号激励/测量的需求,这个虚拟资源需求通过语言编译器和系统平台的解释和定位,转换成真实资源,再驱动仪器完成测试任务。该语言源程序中不含具体的硬件设备信息,由编译器在编译过程中导入相关的自动测试设备、适配器和测试资源等信息。因而在一台自动测试设备上开发的源程序可以不加修改地拿到另一台上使用,在系统平台的配合下,编译器需要自动导入新的硬件设备描述文件,这样大大增强了测试程序的通用性。(3)与其它语言的兼容性强。ATLAS标准通过INCLUDE语句可以包含ATLAS模块和非ATLAS模块(目标码形式),从而实现ATLAS语言与其它语言编写的测试程序的兼容性。ATLAS测试程序独立于测试设备,提供了一种在UUT(Unit Under Test)、TPS(Test Program Set)开发人员和TPS最终用户之间明确传送信息的方式。ATLAS语言用标准信号和基于事件的表达方式描述UUT的测试需求。所有ATLAS语言的这些设备无关特性最后都需通过ATLAS编译器对应到具体的仪器设备去执行,以便使得ATLAS 测试程序描述的代码可在指定的ATS(Auto Test System)上执行。而ATLAS语言的可移植性又要求仪器设备可随时更换,这样导致ATLAS语言编译器的构造中对面向信号的语句很难定位翻译。作为测试领域的一种通用测试语言,ATLAS语言编译器的构造,除了与普通编程语言一样的成分需要解释处理外,还有一大难点就是信号相关的语句如何解释处理。针对语言中的通用性如何给出具体到某一领域中时不同信号相关语句的实际解决办法?不同测试领域涉及不同的仪器设备,如何给出通用仪器设备的低层调用的解决办法?针对上述信号相关语句所带来的这一系列问题,我们给出利用COM组件技术的“灵活性”来解决上述问题的一种解决思路。 3、COM组件技术在通用测试语言ATLAS编译器构造中的作用31 ATLAS编译器构造编译器是将一种高级语言翻译为另一种语言(目标代码)的计算机软件。这一过程可以用下图来表示4:图1 一般语言编译器模型Figure 1 General Compiler Model一般语言编译器构造可按照词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成等几个前后衔接的几个环节组成。作为通用的测试语言,ATLAS语言编译器的一般结构如下图25所示:其中,词法分析和语法分析可以使用现有的比较成熟的LEX/YACC系列工具辅助完成,使开发者可以将精力集中在源程序语言本身的特点分析上。但对于其余环节,则必须用人工的方式来完成。图2 ATLAS语言编译器模型Figure 2 Typical ATLAS Compiler Model作为一种面向信号的通用测试语言,ATLAS语言中有许多需要测试设备配合进行完成的语句,对这些语句的翻译则涉及到很多普通语言编译器构造中所没有的问题,比如测试不同的信号时应该如何选用合适的设备,对这些设备应如何控制从而完成某个或某些信号要求的测试;针对不同厂家生产的同类测试仪器,应该如何加以区分,选择使用等,这些问题集中在ATLAS语言编译器模型中“仪器选择和分配”模块中完成。本文主要讨论ATLAS编译器构造中“仪器选择和分配”模块的实现,即借助于COM组件技术给出的资源定位问题和信号相关语句的翻译问题。32 COM组件技术在通用测试语言ATLAS编译器构造中的作用组件对象,是指预先定义好的、能完成一定功能的服务或接口。组件对象之间以及组件对象与应用程序之间的相互通信和交互是通过COM规范和系统提供的COM库来实现的。一般来说,COM库由操作系统加以实现,开发人员不必关心其实现的细节。ATLAS语言是一种面向信号的、与设备无关的语言,所以所有对测试仪器的选择(资源定位)和控制(与检测仪器的交互)都依赖ATLAS编译器和测试系统平台来协作完成。321 典型的ATLAS信号语句REQUIRE,DMM3, SENSOR(RES), IMPEDANCE, CONTROL, RES RANGE 0 OHM to 10000000 OHM continuous, CNX HI LO $ VERIFY, (RES INTO IMPEDANCE), IMPEDANCE, NOM 1 KOHM UL 1.1 KOHM LL 0.9 KOHM, RES MAX 50 KOHM, CNX HI X2-A5 LO X2-C5 $ 上面是一个ATLAS程序中较典型的信号语句的使用情况,在测试程序的开始“前文段”由测试人员用“REQUIRE”语句给出测试程序中可能需要用到的测试资源要求;测试程序的“执行段”中的每个信号语句需要从“REQUIRE”语句所列的虚拟资源中寻找和该信号语句匹配的虚拟资源,然后根据所匹配的虚拟资源从“可供选择的仪器数据库”中选择某个(组)合适的实际资源供这个测试程序使用。针对某个虚拟资源,“可供选择的仪器数据库”中很可能有多个不同生产厂家的仪器符合测试需求,测试过程选择哪个实际仪器是由TPS开发平台或者人工给出选择。ATLAS编译器需要做的是,根据选定的实际仪器完成该仪器所匹配驱动程序的加载及检测仪器执行过程并完成与仪器的交互等一系列操作。一旦选定某个实际仪器,ATLAS编译系统需要加载选定的实际仪器的驱动程序,通过仪器对应的驱动程序执行信号语句指出的各项操作。前面已提到,“仪器数据库”可以配置不同厂家的仪器;测试程序也可以选择不同厂家的仪器完成某个测试程序的执行。因此ATLAS编译器如何灵活处理不同仪器驱动的加载是个比较棘手的问题。而COM组件的“灵活性”正好为我们解决上述问题提供了一种解决思路。322 COM组件技术在通用测试语言ATLAS信号语句的资源定位实践中的作用下面以上述ATLAS信号语句为例讨论COM 组件技术在信号语句的资源定位实践中的应用。针对ATLAS测试程序中“VERIFY”语句,经过与虚拟资源匹配,“前文段”中的这条“REQUIRE”语句列出的虚拟资源符合“VERIFY”语句的需求,于是我们可将该资源定为本“VERIFY”信号语句对应的虚拟资源填入数据库中。待程序中所有信号相关语句均找到对应的虚拟资源(若找不到,则将资源需求作为虚拟资源并作出标识)并填入数据库中后,由TPS开发平台根据实际资源的配置情况为数据库中每个虚拟资源填入对应的实际资源。上面提到,选定实际仪器后,需要加载该仪器驱动程序以及执行其它的和实际仪器相关的动作。对于各种各样的仪器,我们通过COM组件技术可以达到统一处理的目的。因为测试仪器所执行的任务(功能)基本上是一致的,所以我们可以通过COM组件技术的接口一致性来达到对实际资源打包的目的。COM组件技术通过接口暴露其功能,并且接口一旦发布就不允许轻易更改,而对内部功能的实现则没有具体要求,这一点与我们测试过程中测试仪器所具备的特点非常相似,所以在分析测试仪器所具备的功能后,利用COM组件技术可以很容易地给出实际资源。下面是实现过程中所定义的资源接口文件的部分说明:class _declspec(uuid(92527F51-331A-4F58-B38E-2C407277F00E) IDriver : public IUnknownpublic:virtual HRESULT _stdcall setup(IVariableCollectPtr pVariable) = 0;virtual HRESULT _stdcall fetch(IVariableCollectPtr pVariable) = 0;virtual HRESULT _stdcall change(IVariableCollectPtr pVariable) = 0;virtual HRESULT _stdcall enable_event(IVariableCollectPtr pVariable) = 0;virtual HRESULT _stdcall disable_event(IVariableCollectPtr pVariable) = 0;virtual HRESULT _stdcall arm(IVariableCollectPtr pVariable) = 0;virtual HRESULT _stdcall monitor(IVariableCollectPtr pVariable) = 0;virtual HRESULT _stdcall reset(IVariableCollectPtr pVariable) = 0;virtual HRESULT _stdcall compare(IVariableCollectPtr pVariable) = 0;class _declspec(uuid(ED071509-E5AC-4057-ADA4-9F4185AC0D32) IRelay : public IUnknownpublic:virtual HRESULT _stdcall connect(IVariableCollectPtr pVariable) = 0;virtual HRESULT _stdcall disconnect(IVariableCollectPtr pVariable) = 0;也就是说,每个实际资源都会被以COM组件形式打包,向外界提供包括setup()、fetch ()、change()、enable_event()、disable_event()、arm()、monitor()、reset()、compare()等方法来实现对实际仪器的操作,而测试程序与实际仪器之间的交互可能涉及到个数及类型都不固定的参数传递,因此参数传递我们也采用组件形式传递(如上述代码中每个方法的参数位置的形式参数说明)。每个实际资源的管脚连接同样也采用组件形式传递,参见上述代码中的connect()、disconnect()方法,其中的参数要求是实际开关矩阵的连接方式。通过实现上面提到的公共接口,不同仪器的对应驱动程序都被隐藏到COM的实现中,对于TPS开发平台来说,很好地解决了多种多样测试仪器的统一调用问题,同时也为ATLAS编译器实现中信号语句的语义翻译提供了简捷的解决办法。4、结论笔者在实现ATLAS编译器的“仪器选择和分配”模块中,利用上面提
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 汽车展会活动授权及运营合同
- 旅游线路策划合作协议
- 车辆挂靠与汽车维修保养服务协议
- 绿色能源项目厂房抵押贷款协议
- 礼仪仪态培训标准体系
- 2025年汽车销售协议
- 2025年农村房屋转让协议书
- 2025年明股实债协议
- 肾上腺肿瘤病人的护理
- 2025年江苏省镇江市新区中考数学二模试卷
- 2025年7月浙江省普通高中学业水平考试历史仿真模拟卷01(含答案)
- 安徽省合肥市45中学2025届七年级数学第二学期期末监测模拟试题含解析
- 中学生成就目标导向下的学习满意度影响机制探讨
- 预防医学知识试题及答案汇编
- 法人变更交接协议书
- 地七年级下册全册知识要点总复习-2024-2025学年七年级地理教学课件(人教版2024)
- 财务培训:AI与财税合规的未来
- 全国农业行业职业技能大赛(农业技术员)理论考试题(附答案)
- 直招军官面试题库及答案
- 2025至2030中国磷石膏市场行情走势监测及未来发展展望报告
- 青少年足球训练营未来三年计划
评论
0/150
提交评论