




已阅读5页,还剩58页未读, 继续免费阅读
(机械制造及其自动化专业论文)工程软件自动化界面控制系统的研究与应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 i 摘要摘要 随着制造业工程软件的集成要求越来越高,需要集成的工程软件种类也越来越多, 系统的规模与界面也变得越来越复杂。 传统的利用系统二次开发编程接口实现工程软件 集成的方法在集成那些缺少开放接口的信息系统时往往无能为力。 对缺少甚至无开发接 口的工程软件进行控制与集成,是集成技术深入发展必须解决的问题。 工程软件自动化界面控制技术是一种不同于传统的利用二次开发完成工程软件控 制集成的方式,是一种新的信息系统集成思路,它能够用于完成普通技术不可能完成, 或代价太高的开发工作。 本文给出了软件界面控制的概念以及控制系统的体系结构, 规划了界面对象及其逻 辑位置定位规则,简化了界面对象的识别过程,将界面对象的划分方式进行统一。同时 在自动化界面控制系统中设置环境变量的概念,使界面控制的脚本编写更加规范,逻辑 也更清晰。工程软件自动化界面控制技术来源于 gui 的自动测试技术,利用发送消息, 运行远程代码的方式可以对工程软件的界面对象进行控制。在此基础之上,控制语句可 以组织为脚本程序。自动化界面控制系统还集成了录制脚本的功能。自动化界面控制系 统不仅能让脚本在其自身的环境中运行,也可以将脚本编译成可执行模块,增强了脚本 程序的可移植性。此外自动化界面控制系统对外还提供了界面控制接口,方便其他开发 应用。 利用自动化界面控制技术能够用于各种信息系统的界面控制, 提取与交换数据的信 息,同时保持集成系统与其他企业信息系统的低耦合性,提高系统集成的能力。 在最后本文还给出了自动化技术在 capp 与 autocad 数据交换,i-deas 图纸转换的 成功应用,展示通过自动化技术进行企业信息集成是一条有效途径。 关键词:关键词:工程软件,gui,界面自动控制 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 ii abstract with the high development of demand in manufacturing information integration, more and more information softwares (is) are integrated and the interfaces become more and more complex. the traditional techniques make use of the secondary development programming to control the engineer software, but this becomes invalidly when the engineer software has less or no development interfaces. technicians should study hard on this condition. automatic software interface control (asic) is a technique different from the traditional secondary-development. it is a new thought to control the is in system integration, and it can bring the development works impossible in secondary development programming to success. firstly, this thesis presents architecture of interface automatic control system and the concept of interface control, gives the regulation of logic location of interface object, and makes the interface objects division unified. then, we introduce the environment variables, making the control scripts more standardized, logical and clear. automatic is control technique is come from automatic software gui testing, enabling us to send message, run some remote code or use some other ways to control is. the simple control codes using these technologies can be assembled in a control script and the control script can be recorded, too. it can be run in automatic software interface control system or compiled into executables code which can be used in some other components. this makes the scripts more transplantable. moreover, automatic software interface control system also provides the interface to facilitate the development of other applications. asic can be used to control is, data extraction and exchange, and it will enhance system integration capabilities without increasing the coupling of different is. at last, there are two examples about the data exchange between capp and autocad, and the drawing files conversion in i-deas. these prove the asic is an effective and successful way in enterprise engineer integration. keywords:engineer software, gui, interface automatically control 独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的 研究成果。尽我所知,除文中已经标明引用的内容外,本论文不包含任何其他个人 或集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体,均已 在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。 学位论文作者签名: 日期: 年 月 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校有权 保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借 阅。 本人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数据库进 行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 本论文属于 (请在以上方框内打“” ) 学位论文作者签名: 指导教师签名: 日期: 年 月 日 日期: 年 月 日 保密,在 年解密后适用本授权书。 不保密。 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 1 1 绪论绪论 1.1 课题的来源与意义课题的来源与意义 1.1.1 课题来源 1.1.1 课题来源 目前, 作为中国制造业信息化软件主要提供商之一的开目公司的产品都基于组件化 和平台化开发,其底层技术平台包含的组件分为:界面组件、非界面组件两大类型。平 台组件都扮演各产品的基石作用,平台所提供的组件的兼容性和稳定性,直接影响到各 个产品的稳定性。其中,界面组件急需一种自动化的 gui(graphics user interface, 图形用户界面)测试工具用来改变传统的人工测试时无法保证其兼容性和稳定性,以及 测试效率处于高投入低产出的状态。在 gui 自动测试的基础之上,将其自动执行控制动 作的功能发展成为一种 gui 自动操作的自动化工具, 为一些对工程软件进行集成时不方 便或不能用二次开发方法时提供解决方案,丰富企业信息集成技术。 1.1.2 课题意义 1.1.2 课题意义 实际上,在日常的应用中,自动化技术已经渗透每个角落,包括金融,科技,制造 业等等;自动化技术的应用,提高了工作效率,用高效的自动技术代替了重复的手工操 作,在节约人力成本的同时,也保证了工作的质量。 图形界面自动控制系统就是在这样的背景下诞生。我们知道,在软件测试领域里, 频繁的测试工作是每个测试员面临的最枯燥的问题,可能同样的一批操作,只是数据不 同,但是类型相同,要做上几十次,甚至几百次,在浪费时间的同时,由于频繁的手工 操作,导致测试结果的质量可信度大打折扣;同样,在信息制造业中,由于机械应用软 件种类的繁多,导致了许多企业图纸的格式是完会不同的,如果要想对库中一批图纸文 件作格式转换,将又会是一批极为枯燥的手工工作,针对这样的一种情况,我们急需一 种新的技术来解决这一枯燥的现状。 界面自动化动作系统就是为解决这样的一类问题而诞生的, 它的主要功能是用自动 化操作代替频繁的手工操作,为人们节省更多的时间去做其它的事。 界面自动化系统的应用,保证了工作结果的完整性。在频繁的手工操作中,由于存 在着大量的重复性工作,很容易引起手工操作失误,从而也就会导致工作结果的错误, 这一点在软件测试中表现得尤为突出;但是利用界面自动化系统却能改变这一缺点,所 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 2 有的操作都是通过预先设计的脚本来实现, 自动化执行的顺序及响应的结果都是在预料 之中,因此,界面自动化系统的普及应用,有效地保证了工作结果的质量。 界面自动化系统的应用,提高了工作效率,节省了宝贵的时间。在界面自动化系统 应用中,所有的操作将会是用自动化操作代替手工操作,执行过程中的每步操作都是紧 扣着上步执行完毕后才执行的,不需要直观地用肉眼去观察应用程序是否响应结束,因 此,界面自动化系统提高了工作效率,节省了宝贵的时间。在自动操作执行过程,无需 人工值守,人们利用宝贵的时间,去做更多其它有意义的事情。 界面自动化系统的应用,降低了人力资源成本。在人力成本宝贵的今天,将成本降 为最低,是每个企业都梦寐以求的一种战略计划。界面自动化系统的应用,正好满足企 业的这一希望。程序设计人员只需通过编写或辅助生成脚本,反复运行一段脚本实现自 动化操作可能会代替一位员工几天的手工操作,同样,在自动化操作实现的过程中,还 可实现无人值守。所以说,界面自动化系统的应用,大大降低了人力资源成本和工作效 率。 1.2 课题的现状课题的现状 1.2.1 课题的国内外研究概况 1.2.1 课题的国内外研究概况 制造业企业先进技术的引用,主要有两条途径,其中一条是技术主线,另一条是信 息主线。技术主线主要是关注于企业设计的深度,如二维 cad 技术、三维 cad 技术、cae 技术、cam 技术、数控技术等均是其考虑的空间;而信息主线,主要是实现企业内、外 部信息在企业中的准确、快捷的流动,为决策提供依据,其关键就是实现设计信息、生 产信息、管理信息的有效整合1。利用自动控制系统对 cad、cae、cam 以及其他信息系 统进行集成就是属于技术主线。 自动化界面控制技术是由自动化 gui 软件测试技术衍生出来的, 它的很多基础技术 与自动化 gui 软件测试技术是通用的,例如自动识别图形界面对象,模拟用户输入等, 但它和普通的自动化 gui 软件测试又是有差别的。 自动化界面控制偏重与对图形界面对 象的控制,有针对的控制界面对象,而对自动生成控制脚本的要求不高,不需要像自动 化 gui 软件测试那样要对所有的图形元素进行测试。另外,gui 软件测试的脚本只能在 测试软件中解释执行,而自动化界面控制系统则必须能将测试脚本转换为可执行模块, 能让其在信息集成系统(如 capp、pdm 等)中使用。 自动化界面控制技术是来源于自动化 gui 软件测试技术的,相当于黑盒自动化 gui 测试,其形成的过程就是自动化 gui 软件测试技术发展的过程,在此我们只关注其与自 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 3 动化界面控制技术相关的部分。自动化软件测试技术自 20 世纪 60 年代以来2,国内外 许多学者在软件自动测试方面开展了大量的研究工作, 形成了一些经典的软件测试技术 和软件测试流程管理规范。 在自动化软件测试理论中, 根据软件界面自动生成测试用例的技术对于自动化界面 控制的控制脚本自动生成是很有借鉴作用的3-5,国外的很多学者在这方面也取得了很 多成果。 white 在文献3中介绍的一种将拉丁方应用到图形用户界面测试中的方法,有效地 减少了试用例的数量,但该方法假定对象之间的交互是成对出现的,这就具有一定的局 限性。 hehady 和 siewiorek 在文献6中介绍了一种基于状态有限状态机的 gui 测试方法, 该方法通过减少测试状态达到简化测试的目的。memon、pollack 和 sofia 在文献8,9中 介绍了一种将人工智能中划分技术应用到 gui 测试用例生成的方法。这些测试方法在 gui 测试过程中的适用性和可操作性较差。文献10提出了 cis 概念并对 cis 的独立测试 进行了讨论,但对一个 gui 系统中的多个 cis 或所有 cis 的集成测试没有进行讨论。 目前,面向对象的软件开发方法已被人们广泛接受,并且被基于 uml (unified modeling language) 的建模工具以及 c + 、java 等程序设计语言所支持。与传统的 软件开发方法相比,面向对象引入了类、对象、继承等新特征。面向对象中的继承、多 态、动态绑定等机制对面向对象软件的测试产生了影响。以传统的软件开发方法为背景 发展起来的测试技术,并不能完全适用于面向对象软件的测试11-15 。 从面向对象软件结 构的角度出发,面向对象软件测试可分为类测试、类簇测试和系统测试13 ,15-17。其中类 测试可分为三个部分:方法测试、基于状态的测试和基于状态响应的测试13,18。方法测 试和系统测试分别与传统的单元测试和确认测试相对应。 关于类测试的概念只能应用于 使用面向对象的编程语言所编写的程序,例如 c+等,对于一般的软件,只能使用常规 的方法。 国内的各大高校的软件工程实验室也在积极进行软件测试自动化的研究。 北京大学 软件工程实验室致力于黑盒测试技术研究,研制了青鸟软件测试平台;北京航空航天大 学在 c 语言和 ada 语言测试、 航空技术研究所在嵌入式软件模拟测试以及西北工业大学 在 client/server 系统的测试方面进行了许多研究工作, 并研制了一系列的软件测试工 具。 目前国内在功能测试模型的研究上已取得了许多重要成果, 但这些都是基于模型技 术的,如北京大学的王立福19教授提出一种界面类对象建模技术;北京航空航天大学的 刘超20教授通过程序交互流程图(program interactive execution flowchart)给出交 互式软件的测试用例生成策略及其自动化方法等。 对于基于软件界面的测试技术研究比 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 4 较少, 比较有代表性的有浙江大学的杜栓柱博士21等提出了基于界面构件关联图的软件 功能测试技术等。 测试自动化是很多软件开发公司追逐的热点,随之也诞生了很多自动测试工具 22-24。其中不乏优秀的 gui 自动测试软件,如 mercury 公司的 quicktest pro,是一个 b/s 系统的自动化功能测试的利器,能针对网站页面进行自动测试工作;最早由 apache 软件组织的 stefano mazzocchi 编写的 jmeter,用于测试 jserv 的性能,新增强了图 形用户接口,并添加了功能测试支持;ibm 公司的 rational robot,对 vc+,vb,pb, java 等工具开发的图形界面程序的识别功能非常强,而且其脚本语言 sqabasic 功能十 分强大;以及以色列 mi(mercury interactive)公司的 winrunner,loadrunner 和 testdirector 等25。gui 测试软件售价通常比较昂贵,许多公司在选择 gui 测试工具时 偏向自己在已有平台上自行开发。 进行 gui 自动测试比以往的基于数据流的测试要困难 的多,它需要重新分配输入流,单击按钮,移动箭头,还要击键。脚本还需要专门的机 制用于记录软件的响应和动态的变化26,而且对于不同的平台,进行 gui 测试还要做出 调整。基于当前的测试技术,gui 测试自动化总是需要人工编写、编辑和调试脚本27生 成的脚本也不能及时跟踪 gui 部件的变化。 1.2.2 课题的发展趋势预测 1.2.2 课题的发展趋势预测 在图形界面越来越丰富多彩的软件应用中, 不管是 gui 自动测试还是自动化界面控 制系统都必须适应这一趋势。要开发出实用的自动化界面控制系统,应当使其具备以下 特点: (1) 不依赖于特定的平台与语言。为了使自动化界面控制系统能胜任各种平台的控 制工作,自动化界面控制应有针对性的扩展到任何环境中,使用不同的语言开 发,也不需要购买另外的硬件来处理测试开销。 (2) 智能的 gui 部件识别与跟踪。现在地 gui 部件五花八门,对已经开发的部件由 于维护的需要也经常需要改动,系统应该能自动的识别这些部件,并对部件的 改动进行跟踪。在控制的过程中系统也能自动能够的寻找被控制的 gui 部件, 产生最小最优的控制脚本。 (3) 更安全的测试过程。自动控制过程中经常需要加入具有控制能力的钩子程序, 这些钩子程序有时需要侵入被控制的程序,造成被控制程序出现错误和异常。 自动化界面控制系统应当尽量避免这种情况,使系统的侵入性更低,更安全。 (4) 重用性。控制脚本应该是可以回放的。这种回放应该不仅能在原来的生成环境 中重放,也应该能在其他的系统中重放,这样控制脚本可以用于多个工程软件 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 5 中,增大控制脚本的通用性,减小其开发负担。 1.3 论文的主要研究内容论文的主要研究内容 1.3.1 课题的总体目标 1.3.1 课题的总体目标 提供针对工程软件程序的图形界面的自动控制功能。自动控制系统主要针对 vc+、 vb、pb 等主流开发工具开发的程序,提供功能强大的界面元素识别,并对其主要的表示 信息进行读取, 在程序许可得权限内设置其某些属性等。 记录控制结果并监视执行过程, 提供多种方式与基准进行对比,如截图、指定界面元素的属性(标题,绝对或相对位置, 表示内容等) 。 提供对脚本的支持。该脚本能够被解释执行和调试,并可以被编译成可知性模块。 脚本程序可以是系统录制自动生成或是由用户编辑生成,格式为文本文件,以开放、易 读、易于维护为原则。 在 windows 操作系统环境下提供模拟鼠标、键盘等人工输入设备(hid)自动操作 功能,操作接口为脚本。 1.3.2 主要研究内容 1.3.2 主要研究内容 本文的主要研究内容如下: (1) 传统的二次开发需要基于二次开发接口进行编程,当某工程软件提供的二次开 发接口不足或者根本未开放接口,传统的二次开发就无法实现软件集成。对于 autocad、pro/e、i-deas 等工程软件经常需要深入集成或扩展应用,开放接口 往往不够用。本文将绕过接口限制,以暴露的界面作为突破口进行自动控制从 而实现集成; (2) pro/e 等工程软件的界面通常比较丰富,可操作性很强,远比它们提供的开发 接口灵活。首先对它们的界面进行划分、识别和定位,继而实现模拟操作是对 它们进行集成和控制的关键; (3) 用二次开发的方式对各种 cad、 cam 等工程软件的图纸等一些内容进行提取不仅 复杂,有些根本无从实现,然而只要人们能从界面看到,通过界面技术就有可 能提取信息,而且十分直观,很容易被一般人员掌握。但是,控制系统要跨越 工程软件的进程对其界面进行操控,本文将从技术上克服此难点; (4) 为了模拟人们操控界面和从界面获取信息,日复一日的重复操作必须组织成为 脚本自动运行。本文将研制自动化界面控制系统脚本,并提供解释、运行的自 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 6 动化界面控制系统,为工程软件的深入集成提供用户解决方案。 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 7 2 对工程软件的控制方式对工程软件的控制方式 2.1 传统集成技术对工程软件的控制传统集成技术对工程软件的控制 信息化软件和平台多种多类,有 cad/cam 系统,文档管理系统,各种工艺、材料、 零件数据库系统等等。其中很多都开放了二次开发和网络访问的接口,如 autocad, pro/e,office,sql server,oracle 等,尤其是各种数据库系统,已经形成了访问与 操作接口标准。利用这些接口,在能够有效的管理各种子系统,为数据库提供统一的访 问操作而不必关心数据库的类型,在集成系统中管理各种设计图纸、产品信息及文档数 据而不必担心这些信息是由哪种工程软件产生, 为异地的工程师提供良好的协同设计平 台而不必担心地域的限制。现有的绝大多数制造业企业信息系统各种子系统的信息集 成,也都是以各种子系统的二次开发接口或网络通信方式进行开发。 2.1.1 二次开发接口控制 2.1.1 二次开发接口控制 对工程软件进行二次开发需要工程软件提供的接口库文件和各种开发文档。 通过编 程调用这些接口,能够开发进一步的功能。 在 pro/e 中, 只要安装了 pro/toolkit, 用 vc+就能够建立 pro/e 的应用程序模块。 pro/toolkit 是 ptc 公司提供给用户使用 c 语言客户化 pro/engineer 的 api。在 pro/e 16.0 以前是 pro/develop, 从第 17 版开始换成 pro/toolkit, 但 pro/develop 仍可以和 pro/toolkit 混合在一起使用。 图 2.1 显示了 pro/toolkit 挂载点下的目录文件情况28: 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 8 protoolkit prodevelop include readmeprotkdoc protk_appls machine obj proansi.h proanimate.h . . proedge.h . . profeature.h . . protoolkit.a protk_drill make_examples make_install pt_examples.dll prodev_dll.a . . 图 2.1 pro/toolkit 挂载点目录结构 图 2.2 显示了 pro/develop 挂载点下的目录文件情况: prodevelop protoolkit include readme machine obj pd_prototype.h prodevelop.h prodev_*.h select3d.h . . . protoolkit.a protk_dll.a make_examples make_install pt_examples.dll prodev.dll.a . . pd_drillpd_examples pd_install _test pd_tinkert oy prodev_appls include user_wchar_t.h user.eror.h . . . 图 2.2 pro/develop 挂载点目录结构 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 9 在 vc+工程添加头文件目录、库文件目录和设置 ignore libraries: msvcrt.lib 来配置好用来编译、连接 pro/toolkit 程序的开发环境之后,就可以开始编写程序了。 pro/toolkit 的程序必须包括 user_initialize() 和 user_terminate()函数。 user_initialize() 函数中必须至少调用一个 pro/toolkit api 函数。如果调用失败将 导致 pro/toolkit 应用程序失败,并返回 pro_tk_general_error。user_initialize() 函数初始化一个同步模式的 pro/toolkit 应用程序。任何同步模式的 pro/engineer 应 用程序必须被包含 user_initialize()函数, 以便其被加载到 pro/engineer 中时能安装 界面插件,或被非交互式的程序作为命令来运行。 在工程目录中添加一个.dat 文件(例如 protk.dat) ,在其中添加 pro/engineer 程 序加载信息项。经过编译和连接之后生成的 pro/toolkit 应用程序,通过在已经运行的 pro/engineer 实例中将.dat 文件注册就能使用了。 2.1.2 网络通信命令控制 2.1.2 网络通信命令控制 严格来讲网络命令控制也属于二次开发的范畴, 由于其并不在工程软件中加载任何 附加程序,具有一定的独立性。通过网络交换数据和控制信息是一种很好的远程控制思 路。 acis/hoops 的 3d 开发平台就是一种基于网络的协同三维设计软件开发平台,兼容 多种三维模型格式。 acis 是美国 spatial technology 公司推出的三维几何造型引擎,它集线框、曲面 和实体造型于一体,为各种 3d 造型应用的开发提供了几何造型平台,许多著名的大型 系统都是以 acis 作为造型内核,如 autocad,cadkey,mechanical desktop,bravo, trispectives, turbocad,solid modeler,vellum solid 等。hoops 组件是建立在 opengl、 direct3d 等图形编程接口之上的更高级别的应用程序框架, 由美国 tsa 公司开 发并由 tsa 和 spatial 公司负责发布和提供技术支持。 hoops 不仅为软件开发人员提供了强大的图形功能,如高质量的模型显示、便捷的 人机交互、包括 opengl 和 direct3d 在内的多种渲染管道的支持、高级渲染、2d 图形的 矢量化输出、动画、动态干涉检查以及图形数据流化处理等,此外 hoops 中还内嵌了对 网络流的支持,使模型设计的数据可以在各个协同设计的客户端之间传递。 hoops 组件按功能可进一步分为 hoops/3daf、hoops/stream 以及 hoops / net 三个 子组件, 其中 hoops/net 组件就是用于网络协同的模块, 便于开发 c/s (client/server) 应用程序29。在建立网络会议之后,就能通过发送命令的方式控制其他参加会议的客户 端程序。 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 10 图 2.3 hoops 3d 应用程序框架 协同设计过程类似于网络会议。各个 hoops 客户端能够单独运行,就像普通的 cad 软件一样使用,在网络协同时作为客户端使用,不仅可以进行设计,还能传送和接受设 计数据,使得参加协同设计的每个客户端都呈现统一的设计模型和数据。 hoops 客户端和网络服务器可以不在同一台机器上运行。开始协同设计时,首先管 理员应连接到 hoops 网络服务器,建立协同设计会议。建立会议时必须提供会议名称和 密码,其他人必须提交密码才能参加会议。然后建立会议者就可以导入或者建立设计模 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 11 型。模型的控制权在会议建立时在创建人手中,其他参加协同设计的人必须申请到控制 权才能更改模型,而占有模型控制权的人决定是否释放对模型的控制。模型被修改时, 修改动作及其参数会传递给 hoops/net 模块,hoops/net 模块在将这些动作命令传递给 hoops 网络服务器,然后再由 hoops 网络服务器将动作命令分发给各个 hoops 客户端, 最后 hoops 客户端解析收到的动作命令,并根据命令执行相应的操作,就像在本地有参 加协同会议人员自己修改设计模型一样。 hoops/net 的命令消息为 ascii 码串,通常由命令标志头和命令参数构成,通过发 送预先约定的命令就可以达到控制远程客户端的目的。例如在远程客户端中生成剖切 面,约定命令格式为“hps_create_cutplane %s”, “hps_create_cutplane”为命令标 志头, “%s”表示剖面应插入到模型树中的段值。只要知道了消息命令的格式,就能对 其他客户端进行有效的控制。 2.2 界面控制技术原理界面控制技术原理 工程软件界面是工程软件内部信息的视图,用户通过界面与工程软件进行交互,对 信息数据进行操作。工程软件的所有功能,几乎都是通过其界面进行展示,用户的所有 操作也都是通过界面进行传递。 工程软件的界面的功能非常强大,如果用二次开发的方式实现某种界面操作的功 能,往往代价巨大甚至不可能实现。界面控制技术就提供一种控制工程软件界面实现界 面操作组合功能的技术。按照通常我们操作工程软件的过程,只需要少量的控制代码, 就能实现传统二次开发不可能达到的效果和功能。 2.2.1 工程软件中的界面对象 2.2.1 工程软件中的界面对象 自动控制平台的任务主要是对工程软件的界面进行控制。 界面对象是工程软件中的具有独立功能的可视化图形元素。界面对象具有以下特 点: (1) 可视性:只有可视(即在工程软件界面上显示)的对象才能进行控制,不可见 的对象对其控制是不安全的。 (2) 完整性:界面对象的功能是完整的,不能再细分为其他对象。 (3) 独立性:界面的对象必须具有独立的一种或几种功能,这些功能在作用时是不 需要依赖其他的界面对象的。 界面对象主要分为文字对象和图形对象,其中图形对象包括控制对象、功能对象和 其他对象。 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 12 文字对象是对象界面上有文字显示的对象, 这种文字是由 windows 系统中存在的字 体进行显示的,而不是由图形来构成。常见的文字对象如按钮,菜单,编辑框等,但艺 术字,图标文字不属于文字对象,它们是不能由文字来标识的。 图形对象是指以图形表示的界面对象, 泛指对象界面不以某种系统字体显示文字的 对象。 其中, 控制对象是控制其他对象动作的界面对象。 控制对象上一般没有文字显示, 通常只提供一个或多个操作柄,接收鼠标拖动或点击动作。在响应用户的动作是,控制 对象一般除了操作柄的外观变化外,通常还会驱动其他的对象产生变化。控制对象一般 由滚动条,调节器(音量调节、进度调节等)等。 功能项对象是实现某种功能的对象。功能项对象类似按钮,但其上一般也没有文字 显示,以图形标识。图形的工具按钮和普通按钮都属于这一类。 其他对象涵盖了其他的所有对象。其他对象一般为静态对象,作为辅助信息的显示 载体。图片显示框就是典型的其他对象。 确定界面对象的类别是很重要的工作。虽然很多对象都有类似或相同的控制选项, 但如果能确定对象的类别, 能节省对象查找的时间, 也降低系统对界面对象识别的难度, 提高系统的执行效率。 2.2.2 工程软件的环境变量 2.2.2 工程软件的环境变量 环境变量是一组系统信息的参数, 为监视器和控制执行过程提供足够的信息和默认 参数,是系统的重要运行参数。环境变量主要包括两大类:自动平台参数和工程软件界 面状态信息。 自动平台参数主要有当前目录信息(包括默认程序执行路径、日志文件路径、结果 保存路径等),错误处理方式等系统设置信息。软件界面状态信息主要有进程信息,当 前界面标识符及界面属性,当前弹出菜单,当前对象等等,为当前的操作提供必要的参 数,也简化了脚本的编写。 所有的界面对象标识工作都是以环境变量的设置为默认条件的。 指定要查找对象的 属性后,自动平台会在当前环境变量中记录的运行的工程软件的界面上查找。如果有多 个工程软件 a、b、c 在运行,当前环境变量中记录的工程软件为 a,若要查找 b 中的对 象,这必须先将环境变量的当前运行程序改为 b,并进入查找对象所在对象层次的上一 层,这样才能有效的查找到对象。 2.2.3 界面对象的控制 2.2.3 界面对象的控制 界面对象的控制分为两步:一、查找界面对象;二控制界面对象。查找界面对象涉 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 13 及到界面对象的识别与定位,是最关键的一步。界面对象识别的正确与否,直接关系到 控制能否实施以及是否能执行成功。首先以环境变量的设置为先决条件,将处于环境变 量中当前界面层次的下一逻辑层中的所有界面对象找出, 然后在其中查找符合条件的界 面对象。在模糊查找时还要判断界面对象标识时应根据界面对象的特征确定它们的类 别,检查该对象是否支持指定的控制动作。工程软件界面对象的识别和表示将在第 4 章 详细介绍。 在查找到目标对象之后就能对其进行控制了。控制的过程就是触发界面对象事件, 让界面对象响应动作事件,执行界面对象所拥有的功能的过程。控制工程软件界面对象 的方法有很多种,有基于 windows 消息机制的发送消息的方法,有在远程工程软件中直 接运行控制代码的方法等,这些方法的原理将在第 5 章详细论述。 控制界面对象完成一定的动作之后,自动平台会记录这些动作的执行结果,并更新 环境变量中的各种属性值,并判断动作是否成功,若成功则继续执行其他的控制动作, 否则根据设置进行处理,默认情况下为停止执行余下动作。 2.3 本章小结本章小结 很多信息集成平台都是利用二次开发接口来控制工程软件,比如 kmcapp,km pdm 等,大多都是利用 autocad,pro/e 等 cad、cam 软件提供了二次开发的接口对设计文件 进行访问。有些平台还能够通过网络进行访问,比如 acis/hoops 开发平台,以便提供 协同设计的功能。但这样的方式在软件的开放程度低时则不是很有效,例如 auto cad 的图纸文件在进行转换为标准格式以便存入数据库方便管理时就会丢失信息。 本章讨论了利用控制软件界面对象的方法,突破工程软件接口的限制,利用工程软 件的界面元素进行数据交换的基本原理。此外,本章给出了界面对象以及环境变量的概 念,在环境变量的限定下,按照“查找界面对象-控制”的方式进行工程软件控制与集 成以及数据交换的开发是可行的。 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 14 3 自动化界面控制系统的体系结构自动化界面控制系统的体系结构 3.1 信息集成对自动化界面控制系统的总体需求分析信息集成对自动化界面控制系统的总体需求分析 信息集成要求集成平台或各种工程软件(如 pro/e、autocad 与 pdm)之间,各种文 件的格式之间能够方便, 有效的进行信息交换和转换。 经常的, 我们能碰到这样的问题: pdm 中的各种数据要自动填写到 autocad、proe 的图纸的明细表、各种说明文字块中; 以前用 i-deas 设计的零件的图纸文件( .lgs 格式等) ,现在必须转换为其他的标准文 件格式 (如 .dwg和 .dxf格式 .prt等) , 以便pdm系统管理或方便在现在换用的autocad 和 ug 中查看、编辑或打印等。 这些应用由于开发环境的限制,看似简单,根本不能实现或者实现非常困难,难以 满足在短时间内快速部署的要求。例如,在 autocad 和 pro/e 的二次开发包中没有直接 对块和明细表,以及各种插件对话框中的数据进行操作的接口,而只能通过软件界面进 行数据传递。i-deas 的图纸文件有很多种,有多图幅的,也有单图幅的。由于 i-deas 的图纸文件格式还没有公布, 第三方提供的文件格式转换器进行文件转换的效果往往出 现尺寸或轮廓线错位等问题,只有通过 i-deas 本身提供的文件格式转换菜单才能有效 地将 i-deas 图纸文件转换为.dwg 或 .dxf 等 autocad 能够查看和修改的文件。诸如此 类的应用还有很多。 因此,自动化界面控制系统应具备以下功能: (1) 自动操作工程软件界面; (2) 自动查找要操作的按钮,菜单,表单等界面元素; (3) 自动判断操作条件, 排除意外情况, 如自动保存对话框等事先没有预料的情况; (4) 能记录人工操作并多次回放操作动作; (5) 能对操作动作进行条件和分支的控制。 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 15 3.2 自动化界面控制系统的系统结构自动化界面控制系统的系统结构 界面对象2 控制器 . . . . . . 界面对象1 界面对象识别引擎 监视与记录引擎 系统框架 图 3.1 自动化界面控制系统结构图 依据前文所述的原理, 如图 3.1 所示, 整个自动化界面控制系统分为三大功能模块: 控制器,对象识别引擎,监视与记录器。对象识别引擎能够识别和查找界面对象;由对 象识别引擎查找界面对象,控制器能够产生界面对象事件,触发界面对象对应的功能执 行;监视与记录引擎监视工程软件界面对象,记录用户动作。 由结构图可以看出,主框架是系统的支撑部分,其它各模块都加载在它的上面。记 录引擎记录两个方面的内容: 用户的操作流程和被控制工程软件在控制过程中以及用户 操作工程软件时界面的变化序列。因此,它包括三个子模块:记录引擎控制器、流程记 录器和被控制工程软件运行状态监视器。 记录引擎控制器负责控制与协调另外两个子模 块的运行,接受来自系统其它模块的控制信息和用户的交互信息;流程记录器用来记录 下用户的操作流程;状态监视器监视系统的运行状态的。 下面对这自动化界面控制系统的三大功能模块进行详细的介绍。 3.3 自动化界面控制系统的功能模块自动化界面控制系统的功能模块 3.3.1 工程软件对象识别系统 3.3.1 工程软件对象识别系统 gui 界面对象识别器是系统的核心模块,它负责查找界面对象,并分析界面对象的 逻辑位置关系,将界面对象及其属性存入 gui 界面对象数据库。在执行自动化控制时, 执行器也需要 gui 界面对象识别器的配合,查找要控制的 gui 界面对象,并在控制动作 执行之后确认界面的正确性,并在出现意外时(如有未知对话框弹出)进行处理。其结 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 16 构如图 3.2 所示。 gui界 面 对 象 数 据 库 信 息 软 件 界 面 界 面 对 象2 . . . 界 面 对 象1 界 面 对 象 查 找 器 界 面 对 象 位 置 分 析 器 gui界 面 对 象 识 别 器 图 3.2 gui 界面对象识别器 3.3.2 动作执行系统 3.3.2 动作执行系统 gui 界面对象控制系统也是自动化界面控制系统的核心模块之一,只有控制器才能 控制 gui 界面对象或者改变界面对象的属性。 控制器的输入有界面对象 id 与动作参数, 这两种输入都在脚本语句中进行编写。脚本可以由用户编写,也可以在用户操作工程软 件界面时由自动平台的过程记录引擎记录用户动作后,由动作分析器解析为脚本语句, 自动生成脚本文件。 脚本文件中包括有环境变量设置,对象属性设置于获取,执行动作和其他判断、循 环以及过程块等语言层的内容。控制器并不能直接执行脚本语句,必须由脚本解析器将 脚本语句解析为辅助(包括环境变量设置与判断)与执行的动作和参数,并判断当前工 程软件界面是否符合环境变量的设置,只有在符合时才执行控制语句。 控制器是整个动作执行系统的核心,是真正的执行模块。脚本分析器为控制器提供 控制动作种类与控制参数, 而 gui 界面对象识别器则将当前环境中的界面对象及其属性 保存于对象数据库中。控制器将在界面对象数据库查找要控制的对象,并将数据库中界 面对象的逻辑层次与环境变量中设置进行判断是否符合设置的条件, 符合时就执行脚本 语句的动作。 动作执行系统的结构如图 3.3 所示。 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 17 信 息 软 件 界 面 界 面 对 象2 . . . 界 面 对 象1 gui界 面 对 象 数 据 库 脚 本 脚 本 分 析 器 控 制 器 gui界 面 对 象 识 别 器 图 3.3 界面对象控制系统 3.3.3 过程监视与记录引擎 3.3.3 过程监视与记录引擎 过程监视与记录引擎能够监视和记录用户与自动平台操作或者控制工程软件界面 时的动作及其参数,以及工程软件的界面的变化和响应。过程监视与记录引擎的核心是 状态监视器与分析器,以及
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 民爆知识安全培训课件
- 初三算术考试卷子及答案
- 保洁四级考试题及答案
- 发展新质生产力的过程误区
- 六一儿童节班级游园活动方案
- 民族表演课件
- 新质生产力激活智慧农业发展
- 民族管弦乐器课件
- 安全生产图片讲解
- 2025年老年医学基础知识综合考试答案及解析
- 2024年纺织行业招聘要点试题及答案
- 苏少版小学美术三年级上册全册教案
- 气道净化护理团体标准解读
- 医疗设备采购项目实施进度计划
- 试油监督培训班
- 实木全屋定制合同协议
- 学校财务培训课件
- 保险权益转让协议书
- 2025版校园食堂日管控、周排查、月调度记录表
- 项目规划表-数字化转型计划
- GB/T 45133-2025气体分析混合气体组成的测定基于单点和两点校准的比较法
评论
0/150
提交评论