(测试计量技术及仪器专业论文)vxi总线测试软件平台——数据控件、打印及部分数学函数.pdf_第1页
(测试计量技术及仪器专业论文)vxi总线测试软件平台——数据控件、打印及部分数学函数.pdf_第2页
(测试计量技术及仪器专业论文)vxi总线测试软件平台——数据控件、打印及部分数学函数.pdf_第3页
(测试计量技术及仪器专业论文)vxi总线测试软件平台——数据控件、打印及部分数学函数.pdf_第4页
(测试计量技术及仪器专业论文)vxi总线测试软件平台——数据控件、打印及部分数学函数.pdf_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

v x i 总线测试软件平台”之数据控件、打印及部分数学函数 “m x l 总线测试软件平台”之数据控件、打印及部分数学函数 中文摘要 v x i 总线测试系统是一种优秀的测试平台它具有互操作性好、数据传输速率 高、体积小、重量轻、可靠性和可移动性好等特点,特别适用于军事装备测试系 统。现在比较通用的软件测试平台有h p 的v e e 、n i 的l a b v i e w 和c v i 等。为了 提高我国测试技术的水平,我们教研室承担了国家九五预研项目v x i 总线测 试软件平台,这种测试软件平台也采用的是图形化编程方式。使用这种编程软件 不要求用户具有太高的软件编程专业技能和经验,只需要对测试方法和流程有一 定的了解。恢用这种测试平台进行测试软件开发有以下优点: 1 显著增加生产率,根据客户使用后的反馈使用这种软件进行软件开发可 以缩短8 0 的开发时间。 2 使用p c 上的a c t i v e x 自动化控件去控制其他能辅助生成报告、显示并 分析数据或把用户测试结果转换成数据库以供未来使用。 3 很方便的建立更大型的软件,控制仪器也更加灵活。这种开发工具都带 有编译器、专业开发环境以配合大型,复杂的程序。并且都有高级仪器 管理能力。 4 支持各种操作系统平台。 5 这种测试平台应用范围广泛包括函数测试,设计验证,校准,和数据采 集与控制等。 6 支持g p i b ,v x i ,串口,g p i o ,p cp l u g i n 和l a n 等各种类型仪器, 对仪器的控制的方法很多。可以使用面板驱动,v x i 即插即用驱动器等。 7 因为解决了v x i 系统硬件和软件的标准化,从而提高了系统的互用性。 而我所负责的开发任务就是平台中的数据控件、打印震现、部分数学函数以 及使用我们研制的平台开发合肥3 8 所的雷达测试程序。体文的重点在于以”v x i 总线测试软件平台”中的数据控件为对象,对这类控件的构成、功能和设计原理 等进行了阐述,以及对平台整体性能改进的构想。论文分为以下几个部分:第一 章介绍v x i 总线测试软件平台中控件的构成和实现,第二章介绍数据控件中的 滑块控件,第三章介绍常数控件,第四章介绍变量控件,第五章介绍访问数组和 数组映射控件,第六章介绍收集器控件和打印,第七章介绍部分数学函数,第八 章介绍使用我们平台编制的合肥3 8 所雷达测试程序,第九章介绍提出我的改进 意见。 l l l, 关键字:v x i 总线测试软件平台;数据控件;打印;数学函数 a b s t r a c t t h ev x i b u sb a s e dt e s ts y s t e mi sa ne x c e l l e n tt e s tp l a t f o r mw i t hi n t e r a c t i v e ,h i g h t r a n s f e r r i n g d a t ar a t e ,s m a l lb u l k ,r e l a t i v e l y l i t t l e w e i g h t ,a n dp o r t a b l ea n dm o b i l e f e a t u r e s m i l i t a r ye q u i p m e n t sn e e de s p e c i a l l yt h i sk i n do f t e s ts y s t e m n o wa g i l e n t s v e ea n dn i sc v ia n dl a bv i e wa r ep o p u l a rt e s t p l a t f o r m s f o ri m p r o v i n go u r c o u n t r y s t e s t t e c h n o l o g y ,o u r s t a f fr o o mt a k e so nt h en i n t h f i v e y e a rp l a n i t e m 一一v x i b u sb a s e dt e s tp l a t f o r m t h i sk i n do fs y s t e mu s eg r a p h i cp r o g r a m m i n g m o d e ,u s e r sm a yn o th a v ea d v a n c e dp r o g r a m m i n gs k i l l sa n de x p e r i e n c e ,b u tt h e y s h o u l d1 e a r nt e s tm e t h o d sa n df l o w t h em e r i t so ft h ev x i b u sb a s e dt e s tp l a t f o r mh a v e : 1 n o t a b l yi m p r o v i n gp r o d u c t i v i t y , a c c o r d i n gt of e e d b a c k ,t h i sk i n do fs y s t e m m a y r e d u c e8 0 d e v e l o p i n gt i m e 2 v x i b u sb a s e dt e s tp l a t f o r mf o rw i n d o w ss u p p o g sa c f i v e xa u t o m a t i o na n d c o n t r o l so np c s r u n n i n gw i n d o w s ? 9 5 n t ? 4 0o rg r e a t e r ( n o ts u p p o r t e do n u n i x ) y o um a y u s ei ta sa na u t o m a t i o nc o n t r o l l e r t h i sl e t s y o uc o n t r o l o t h e ra p p l i c a t i o n ss u c ha sm i c r o s o f t ? w o r d ,e x c e l ,a n da c c e s sf o ra c t i v i t i e s s u c ha ss e n d i n gd a t at ot h ea p p l i c a t i o n sf o r r e p o r tg e n e r a t i o n 3 y o uc a ne a s i l yc o n s t r u c ta l a r g ep r o g r a ma n df l e x i b l yc o n t r o li n s t r u m e n t s t h i sk i n do f d e v e l o p m e n t k i t sh a sa d v a n c e di n s t r u m e n tm a n a g e n 4 f o rm o s to f o p e r a t i o ns y s t e m s 5 t h e s c o p e o f u s i n g t h ev x l b u sb a s e dt e s t p l a t f o r m i n c l u d e t e s t i n g , d e s i g n v a l i d a t e ,c a l i b r a t ea n dd a t ag a t h e r i n ga n d c o n t r o la n ds oo n 6 i n s t r u m e n tm a n a g e rt o d i s p l a yt h ei n s t r u m e n tm a n a g e rd i a l o gb o x u s e t h i sd i a l o gb o xt oa d d ,d e l e t e ,e d i t ,a n dl o c a t ei n t e r f a c e sa n di n s t r u m e n t sf r o m t h el i s to fc o n f i g u r e di n s t m m e n t s y o uc a na l s os e l e c ta n dd i s p l a yt h ef o u r t y p e s o fi n s t r u m e n ti o o b j e c t s :d i r e c ti o ,p l u g & p l a yd r i v e r s ,p a n e l d r i v e r s ,a n dc o m p o n e n t d r i v e r s m yt a s k sj a r ed e s i g n i n g a n dr e a l i z a t i o no fd a t a c o n t r o l s ,p r i n t i n g a n ds o m e m a t h e m a t i c sf u n c t i o n s ;m o r e o v e r , ih a v et od e v e l o pat e s tp r o g r a mf o rt h er a d a ro f t h i r t y e i g h t h i n s t i t u t et h a ti sl o c a t e di nh o f e i t h i sp a p e rf o c u s e so nt h es t r u c t u r e f u n c t i o na n dd e s i g np r i n c i p l eo fd a t ac o n t r o l s c h a p t e r1 d e s i g n i n ga n dr e a l i z a t i o no f v x i b u sb a s e dt e s tp l a t f o r m ;c h a p t e r2s l i d e rc o n t r o l so fd a t ac o n t r o l s ;c h a p t e r3 c o n s t a n t c o n t r o l s ;c h a p t e r4 v a r i a b l e c o n t r o l s ;c h a p t e r5 a c c e s s a r r a y a n da r r a y m a p p i n g ;c h a p t e r 6c o l l e c t o ra n dp r i n t ;c h a p t e r7s o m em a t h e m a t i c sf u n c t i o n s ; c h a p t e r 8r a d a rt e s tp r o g r a m ;c h a p t e r9m ys o m ea d v i c e sf o rt e s tp l a t f o r m k e vw o r d s v x l b u sb a s e dt e s tp l a t f o r m ;d a t a c o n t r o l s ;p r i n t ;m a t h e m a t i c sf u n c t i o n 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的 研究成果。具我所知,除了文中特别加以标注和致谢的地方外,论文中不包含 其他人已经发表或撰写过的研究成果,也不包含为获得电子科技大学或其它教 育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任 何贡献均已在论文中作了明确的说明并表示谢意。 签名:互燮日期:玉,浒;月1 日 , 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文的规定, 有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅 和借阅。本人授权电子科技大学可以将学位论文的全部或部分内容编入有关数 据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解秘后应遵守此规定) 签名:鸱 导师签名? 识彩 日期:钞一b 年;月日 电子科技大学硕士论文 第一章“v x t 总线测试软件平台”控件的构成和实现 1 1 控件的基本概念 “v x i 总线测试软件平台”提供的是一个可编程和可调试的可视化开发环境。 因此,必须为用户提供大量的编程元素,这些编程元素就称之为控件。每个控件 用一特定的窗口对象来表示。作为一个编程元素控件,它可以代表一个仪 器,也可以是一个控制元素( 如循环,条件分支) 或是一个与用户交互的界面( 如 输入输出,显示框) 。每个控件由一段执行代码来实现,控件可实现i o 与仪器 的接口以及子程序对其他软件模块的访问。 控件按其功能可分为五大类:流程控制类,数据类,数据处理和设备类,数 据显示类,i o 类。这些类控件抽象于编程语言。测试软件的开发是通过构建虚 拟仪器来构造测试软件的,一个特定的测试任务是由通过”连接线”连在一起的控 件组成的方框图程序来表述。”连接线”体现了控件间的逻辑关系和执行的先后顺 序。 1 2 控件基类及其设计 控件的种类繁多,功能各异,但它们却具有许多共同的特性。每一个具体 v x i 控件就是一个包含了所有控件的共同特征,并具有自己特有行为方式的集 合,然后用c + + 语言描述的对象。根据控件这种特性,我们采用面向对象程序设 计( o b j e c t o r i e n t e dp r o g r a m m i n g ) 技术进行设计。面向对象程序设计方法是将一 种问题分解成各个相关部分的子模块,然后用语言将这些子模块翻译成被称为对 象的自含单元。面向对象程序设计语言具有3 个共同的特点: 封装:把有关一个数据结构的函数( 行为或方法) 组合在一起称为封装, 封装是借助于一个新的结构或数据机制一类来实现。一个类对象是 即含有数据又含有处理该数据代码的一个逻辑实体; 继承:继承是一个对象获取另一个对象某些性质的过程。它从一个或多 个先前定义的基类中继承函数和数据,并且有可能重新定义或增加新的 数据和行为,这样就建立了类的层次; 多态性:不同的行为可以取同一个名字称为多态性,多态性的目的是允 许一个名字能被用来说明一种具有通用性的操作。通过函数的重载和虚 函数来实现。 控件的共同特征包括如控件的属性设置,控件菜单,控件的最小化,对连接 线的支持等。利用面向对象的设计方法,先把各个控件的共同特征提取出来,形 成一个控件基类。在基类中实现所有控件的共有的功能,并制定一系列标准的接 “v x i 总线测试软件平台”之数据控件、打印及部分数学函数 口规范供派生类( 具体的控件) 调用。在设计具体的某个控件时,只需从控件基 类派生下来,再增加自己特有的成员变量和完成特定功能的成员函数,就形成了 既包含所有控件共同特征又具有自己特定功能的控件,这样大大节省开发成本。 控件与控件之间的关系体现在控件运行的时候。在可视化编程阶段,用户通过连 线建立控件间关系。在整个测试阶段,各个控件根据这个关系来判断什么时候开 始运行,分别从那些前驱控件中得到输人数据,向那些后继控件送出输出数据等。 按照上面的要求在设计基类时,必须完成如下要求: 1 实现所有控件具有的共性; 2 为派生类提供统一、标准的接口; 3 为具体控件设计提供便利。 一个图形化的控件对象,携带了足够的编程信息。在控件的表示方式上,可 以使用图标、窗口和对话框形式。在我们的平台中采用c w n d ( 窗口) 来实现v x i 控件。通过v i s u a lc 十+ 提供资源编辑器,可方便地将w i n d o w s 标准控件组合起 来加入到资源模板中,通过模板来生成控件地外表特性,并把其操作和数据封装 到类中实现。窗口有完整地数据交换和更新处理手段,其消息处理机制功能很强 且比较简单,利用这些特点简化编程控件的数据交换和更新处理。 在控件外观和属性的基础上确定控件基类c b a s e 应具有的控件共性有:控件 的数据流、控制流输入输出管脚、控件弹出式菜单,最小化按钮、控件菜单按钮、 控件的属性页、控件字体、控件标题颜色、控件窗体颜色、控件的拖大放小、对 连接线的支持等。因此我们首先设计了一个从c w n d 派生下来的控件基类c b a s e 。 在这个类中定义了所有关于控件公共特性的成员变量和处理函数。其他控件类都 是从基类派生,并在其实现的程序体中定义了其特殊的成员变量和处理函数或根 据需要重载基类的某些函数。利用v i s u a lc + + 的资源编辑器建立资源模板,完成 界面的设计,用c l a s s w i z a r d 生成w i n d o w s 控件的变量,并以对话框编程的方法 设计,形成各个外观功能各异的v x i 控件,从而为具体控件的界面和程序设计 提供便利。图1 是一个典型的控件外特性。 图1 1 控件外特性 电子科技大学硕士论文 由于m f c 类库中不能提供满足上述特征的所有窗口对象,所以我们设计了 c c o l o r b u t t o n ,c p i n ,c t e r m i n a l ,c c a p t i o n 类,来分别完成控件菜单按钮、最小化按 钮、管脚指示器、管脚、控件标题栏等控件的外特性。在控件基类中包含了表示 外特性对象的成员变量和操作这些对象的成员函数。于是在一个控件就是以一个 窗口对象来体现,而这个窗口中又包含若干个子窗口,通过对这些窗口的重绘函 数进行扩充,就可以实现控件的外观显示。同时由于管脚是控件的子窗口,可以 很方便地建立起相互之间的关系。 根据设计要求,在运行期间,控制流和数据流必须分离。为此,设计了数据 输入、数据输出、控制输入和控制输出四种类型的管脚来实现控件对数据流与控 制流的输入输出。在控件外特性( 如图1 所示) 中,控件的上下左右四个方向上 的管脚分另0 完成控制流输入、控制流输出、数据流输入和数据流输出的功能。一 个控件可有多个四种类型的管脚,为此设计了一个管脚信息类p i n i n f o 来保存 控件所有管脚信息和初试化管脚的函数。 当需要改变控件属性时,在标题栏上双击鼠标或点击控件菜单上的属性设 置,都会激发i d o p r o p e r t y s e t u p ( ) 函数的调用。控件最小化时,仅显示控件的标 题和管脚,通过改变对话框和各子窗口( w i n d o w s 的标准控件,最小化按钮,管 脚指示器窗口等) 的外观,就可达到要求。在最小化时,通过调用基类的 r e c o r d o c x c o n t r 0 1 s p o s ( ) ,将控件中的所有子窗口的位置记录到c p t r l i s t 指针链表 类型的m w n d p o s r e c t 成员变量中。同时隐含除标题栏管脚窗口以外的其他窗 口,再根据标题栏字体的大小,调整整个控件窗口的大小,接着,对各管脚重新 排列显示,设置最小化状态标志m _ s t a t u s _ b o c x m i n 为t r u e 。从最小化恢复在最小 化时保存的各窗口位置和最小化状态标志。 所有这些功能的实现都是在控件基类中完成的。利用面向对象的编程方法, 基类实现所有控件的共性特征,派生类通过继承,获得基类的功能。从而减轻了 v x i 具体控件开发人员的设计工作量。同时在基类中对控件共性的改变不会影响 具体控件的设计。一个具体控件的构造过程如图2 所示: “v x i 总线测试软件平台”之数据控件、打印及部分数学函数 。 图1 2v x i 控件建立过程 1 3 数据控件的作用 测试中常常需要获取客观事物的定量数据。因此,数据控件是”v x i 总线测 试软件平台”开发环境中重要的控件组之一。在平台中包含的数据控件有:选 择控件组( s e l e c t i o nc o n t r 0 1 ) 一主要完成的功能是获得用户在已建立的表中 选中项目的索引值以便产生不同的程序流程分支、开关控件组( t o g g l e c o n t r 0 1 ) 一一产生布尔值、对话框控件组( d i a l o g b o x ) 产生人机交互、 连续数控件组( c o n t i n u o u s ) 一一给用户提供一个产生较大范围数的选择、常 数控件组( c o n s t a n t ) 一产生常数、变量控件组( v a r i a b l e ) 一使用户可以 定义需要的变量、数据组合控件组( b u i l dd a t a ) 一把从仪器采集到的数据 经过数据组合生成用户需要的各种新数据、数据分离控件组( u n b u i l dd a t a ) 一把从仪器采集到的数据或经过组合的数据重新分解成非复合意义的数 据、分配数组控件组( a l l o c a t ed a t a ) 一产生数组数据、访问数组控件组( a c c e s s a r r a y ) 一对数组中的值进行操作、访问记录控件组( a c c e s sr e c o r d ) 一一对 记录数据进行操作,收集器控件一把从仪器中采集到的数据打包成一个数 组等1 4 个小类,而在每个控件组里面又包含了多个控件。由此可见数据控 件的品种是很全面的,因此我们的平台可以完成多方面的要求。在以下的几 章中我会详细的介绍数据控件的功能、设计思想、流程图、主要函数的实现 方法等各个技术细节。 电子科技大学硕士论文 第二章数据控件滑块的构成和实现 2 1 概述 滑块是一种输出单一数据的控件,通常滑块控件产生的数是在指定范围内。 用户通过拖动它的滑杆产生自己需要的数据。 2 2 整数滑块 2 2 1 控件功能 用户可以通过编辑框指定整数变化的范围。能够在一个指定的范围内通过拖 动滑块得到一个用户需要的整数并输出之。由于滑块的变化范围太大所以用户也 可以通过一个微调按钮小范围地调整输出数以得到一个精确的值。用户可以通过 在编辑框中输入一个希望得到的数据并按e n t e r 键确定后定位滑块。编辑框可 以转换用户输入的字符串,比如:2 k 。该控件可以在面板上显示,以供用户在 程序运行时可以根据需要改变它。当然,面板上和编程区中的的数据要一致。 2 2 2 端口特征 输入端口数:默认1 个,不能增加或减少 输出端口数:默认1 个,不能增加或减少 2 2 3 外特性描述 图2 - 1 整数滑块外观 2 2 4 设计说明: 2 2 4 1 编程思路 整数滑块应包括”显示”和”滑动”两个部分。“显示”分为”当前值显示编辑框” 和”最小值、最大值编辑框”。“滑动”包括可以大幅度调整输出值的滑块和单值调 整的微调按钮。”最小值编辑框”和”最大值编辑框”可以同时接受象”2 k ,2 m ” “v x i 总线测试软件平台”之数据控件、打印及部分数学函数 之类的字符输叭和数字输入。字串转化为数值是通过一个动态库函数来实现在 有,这样就可以在不同的地方调用该函数,以减少重复开发的开销。 ”当前值 显示编辑框”不仅可以显示滑块在当前位置所对应的值而且可以在输人一个值并 确认后可以使滑块滑到它对应的位置。( 当输入一个比最小值小的数时滑块滑到 最小值的位置,并显示最小值;当输入一个比最大值大的数时滑块滑到最大值的 位置,并显示最大值。) 该控件的实现是通过如下的方式实现的:首先截获用户的消息进行判断如果 是滑块消息则调用o n v s c r o l l ( u i n tn s b c o d e ,u i n tn p o s ,c s c r o l l b a r * p s c r o l l b a r ) 函数进行处理。当前值窗口赋新值。如果用户按下s p i n 按钮则对滑块的值进行 单步操作。如果用户改变最大或最小值则调用o n o k o 函数得到它们的值。如果 用户进行面板操作则调用m e m b e r f x n i n i t d i a l o g ( ) 进行面板视和编程视的数据交 换。该控件重要变量通过s e r i a l i z e ( c a r c h i v e & a r ) 函数进行保存。 2 2 4 2 流程图: 图2 - 2 整数滑块流程图 上面处理消息的函数有下面几个 c i n t s l i d e r ( c w n d * p p a r e n t = n u l l ) ; s t a n d a r dc o n s t r u c t o r 描述:默认的类构造函数,指定所在的视指针为空,同时初始化各变量 v o i dm e m b e r f x n l n i t d i a l o g ( ) ; 描述:实现此控件在面板上的显示和数据传递。该函数采用的方法如下: 更新当前视编辑框对应变量的值 当前视对应控件中编辑框的变量值赋给对应视中的变量。 如果当前视对应控件不是最小化则根据当前视中各变量的值算出对应视中 电子科技大学硕士论文 滑块的位置。 如果滑块不是最小化则更新滑块的位置。 更新各静态框表示的分段标尺的值。 v i r t u a lv o i ds e r i a l i z e ( c a r c h i v e & a r ) 描述:存储计数值、控件位置和各项数据。 v o i do n o k 0 ; 描述:在显示编辑框中输人数据后进行确认时调用该函数。该函数执行的操作有: 当用户对编辑框中新的输入表示认可时更新编辑框变量的值。 调用动态库获得编辑框对应字符串变量的值 如果最大、最小值不一致则交换值。 根据当前视中各变量的值算出对应视中滑块的位置,更新滑块的位置 对应视中各个编辑框更新显示,改变刻度表。 2 3 实数滑块 2 3 1 控件功能: 用户可以通过编辑框指定实数变化的范围。能够在一个指定的范围内通过拖 动滑块得到一个用户需要的实数并输出之。由于滑块的变化范围太大所以用户也 可以通过一个微调按钮小范围地调整输出数以得到一个精确的值。用户可以通过 在编辑框中输入一个希望得到的数据并按e n t e r 键确定后定位滑块。编辑框可 以接受用户输入的字符串数,比如:2 9 k 。 2 3 2 端口特征 输入端口数:默认1 个,不能增加或减少 输出端口数:默认1 个,不能增加或减少 图2 - 3 实数滑块外观 “v x l 总线测试软件平台”之数据控件、打印及部分数学函数 2 3 4 设计说明: 2 3 4 1 编程思路 实数滑块应包括”显示”和”滑动”两个部分。“显示”分为”当前值显示编辑框” 和”最小值、最大值编辑框”。“滑动”包括可以大幅度调整输出值的滑块和单值调 整的微调按钮。”最小值编辑框”和”最大值编辑框”可以同时接受像”2 2 k ,2 m ” 之类的字符输入和”2 0 0 0 1 1 1 ”数字输入。”当前值显示编辑框”不仅可以显示滑块 在当前位置所对应的值而且可以在输入一个值并确认后可以使滑块滑到它对应 的位置。( 当输入一个比最小值小的数时滑块滑到最小值的位置,并显示最小值; 当输入一个比最大值大的数时滑块滑到最大值的位置,并显示最大值。) 该控件的实现是通过如下的方式实现的:首先截获用户的消息进行判断如果 是滑块消息则调用o n v s c r o l l ( u i n tn s b c o d e ,u i n tn p o s ,c s c r o l l b a r * p s c r o l l b a r ) 函数进行处理。当前值窗口赋新值。如果用户按下s p i n 按钮则对滑块的值进行 单步操作。如果用户改变最大或最小值则调用o n o k o 函数得到它们的值。如果 用户进行面板操作则调用m e m b e r f x n i i l i t d i a l o g ( ) 进行面板视和编程视的数据交 换。该控件重要变量通过s e r i a l i z e ( c a r c h i v e & a t ) 函数进行保存。 2 。3 4 2 流程图: 图2 - 4 实数滑块流程图 上面处理消息的函数有下面几个 c o c x r e a l s l i d e r ( c w n d * p p a r e n t = n u l l ) ; s t a n d a r dc o n s t r u c t o r 描述:默认的类构造函数,指定所在的视指针为空,同时初始化各变量 v o i dm e m b e r f x n r e a l s l i d e r0 ; 描述:实现此控件在面板上的显示和数据传递。该函数采用的方法如下 电子科技大学硕士论文 更新当前视编辑框对应变量的值 当前视对应控件中编辑框的变量值赋给对应视中的变量。 如果当前枧对应控件不是最小化则根据当前视中各变量的值算出对应视中 滑块的位置。 如果滑块不是最小化则更新滑块的位置。 、,更新各静态框表示的分段标尺的值。 v i r t u a lv o i ds e r i a l i z e ( c a r c h i v e & a r ) 描述:存储计数值、控件位置和各项数据。 v o i do n o k ( ) ; 描述:在显示编辑框中输人数据后进行确认时调用该函数。该函数执行的操作有: 当用户对编辑框中新的输入表示认可时更新编辑框变量的值。 调用动态库获得编辑框对应字符串变量的值 如果最大、最小值不一致则交换值。 根据当前视中各变量的值算出对应视中滑块的位置,更新滑块的位置 对应视中各个编辑框更新显示,改变刻度表。 “v x i 总线测试软件平台”之数据控件、打印及部分数学函数 第三章常数控件 3 1 概述: “常数控件”顾名思意就是输出常数的控件,“常数控件”又根据数据类型 的不同分为几个不同控件:“整数控件”、“实数控件”、“字符串控件”、“复常数 控件”、“极坐标控件”等。对于常数控件来说,“1 2 3 ”是一个数,“2l k ”也是 一个数,同样“2 e + 1 0 ”也同样是一个数,这就要求控件有区别数的不同表现形式 的能力。在我们平台中解决这个问题的办法是通过调用动态库f u n t i o n d l l d l l 来 完成的。此外。“常数控件”还应具有接受外部输入数据的能力,所以这个控件可 以加数据输入引脚。 3 2 常整数、常实数、常复数、常极坐标控件 因为这四个控件的外观都很相似而且都用到动态库函数进行字串转数值操 作。所以在一块描述。 3 2 1 端口特征 输入端口数:默认0 个,可以增加一个 输出端口数:默认1 个,不能减少 3 2 2 外特性描述 图3 - 1 常数控件外观 3 2 3 设计说明: 3 2 3 1 编程思路 “常数控件”的功能实现主要是调用“f u n c t i o n d l l d l l ”函数。该函数主要完 成的任务是把编辑框中的字符串转化为数据,这些数据包括二进制数,八进制数, 十六进制数和十进制数。为了完成这些功能编辑框中的字符必须对各种进制数有 标志位,在这里我们规定字符b 代表二进制数,o 代表八进制数,o x l 代 表十六进制数,没有关键字的字符串被认为是十进制数。为了判断字符串是否合 法这里定义了四个函数对字符串中的每个字符进行判断,如果不是合法的字符就 弹出对话框提示。这四个函数分别是“i s b d i g i t ( c h a r ) ”,“i s o d i g i t ( c h a r ) ”,“i s d d i g i t ( c h a r ) ”,“i s h d i g i t ( c h a r ) ”对应着从二进制到是十六进制的数据。二进制的合 电子科技大学硕士论文 法字符是b 、0 、1 三个字符,八迸制的合法字符是o 、数字17 到7 , 十进制的合法字符是数字1 到9 ,字符p 、 n 、u 、m 、 k 、 m 、g 、t 这些字符分别代表1 0 e 1 2 ,1 0 e 9 ,1 0 e 一6 ,1 0 e 3 ,1 0 e + 3 ,1 0 e + 6 , 1 0 e + 9 ,1 0 e + 1 2 。如果判断字符串合法后就开始把字符串转换为相应的数据。这 里也使用了四个函数完成这一任务c o n v e r t b i n t o d e c ( c h a r * s t r , v o i d * d a t a ) , c o n v e r t o c x t o d e c ( c h a r + s t r v o i d 4d a t a ) ,c o n v e r t t o d e c ( c h a r * s t r , v o i d + d a t a ) , c o n v e r t h e x t o d e c ( c h a r4 s t r , v o i d 4d a t a ) 。 3 2 3 2 函数的流程图如下: 图3 2 常数控件流程图 当常数控件的编辑框失去焦点或用户按下e n t e r 键时调用该动态库函数。“常 复数控件”需要检查字串中的逗号,以便从字串中提取复数的实部和虚部。在“常 复数”控件中使用了两个函数i s b r a c k e t m a t c h ( c s t r i n gs t r ) 和 i s d a t a l e g a l ( c s t r i n gs t r ) 去判断该字串的合法性。i s b r a c k e t m a t c h ( c s t r i n g s t r ) 根据传进来的字串进行检查,看是否该字串的括号是否匹配。根据情况给用 户不同的提示b 在上一个函数完成合法性检查后调用i s d a t a l e g a l c s t r i n gs t r ) 函数进行字串到数据的转换。这个函数所做的工作是先分别把逗号左右的字串提 “v x i 总线测试软件平台”之数据控件、打印及部分数学函数 出来,在进行字串到数值转换。 3 3 常字符串控件 3 3 1 端口特征 输入端口数:默认0 个,可以增加一个 输出端口数:默认1 个,不能减少 3 3 2 外特性描述 图3 - 3 字符串控件外观 3 3 3 设计说明: 编程思路 获得编辑框中的变量的字串,然后输出。 电子科技大学硕士论文 第四章变量控件 4 1 设置变量 4 1 1 控件功能 “设置变量”控件应该完成对变量的赋值操作。赋值的数据类型应该包括整 型、实型、字符型、整数数组型、实数数组型、字符数组型、记录型。“设置变 量”控件应接受中文变量。在没有使用“定义变量”控件声明一个变量时,用“设 置变量”控件声明的变量应该为全局变量。 图4 - 1 设置变量控件外观 4 1 3 端口特征 输入端口数:默认1 个,不能增加或减少 输出端口数:无 4 1 4 设计说明: 4 1 4 1 编程思路 由于“设置变量”控件是用于对已经定义的变量赋初值所以它应该对变量名 敏感,所以对英文名它是区分大小写的,但不能同名。对于未声明的变量,“设 置变量”控件首先应对其声明,然后再对其赋初值。“设置变量”控件应该可以 改变变量的值“设置变量”控件应该可以声明中文变量名。从该控件的外观可以 看出它对数据类型的处理是自动的,这样就要求该控件必须对平台所支持的数据 类型全部包含。这样在源程序中就必须有一张表把数据类型和其处理函数一一对 应起来。 该控件的实现方法如下:首先获得数据输入引脚数据的类型,然后调用函数 获取主框架m a i n f r a m e 中全局变量链表指针。然后遍历该链表把变量编辑框中 的变量名与链表中各变量的名字进行比较。如果变量名与数据类型都一致,则对 变量赋新值。同时把变量初始化标记置为t r u e ,然后退出循环。如果名字一致 而数据类型不广致则同时改变值和数据类型并把初始化标志置为t r u e ,然后退 出循环。如果在全局变量链表没有该变量,则调用局部变量链表指针然后遍历该 链表把变量编辑框中的变量名与链表中各变量的名字进行比较。如果变量名与数 据类型都一致,则对变量赋新值。同时把变量初始化标记置为t r u e ,然后退出 循环。如果名字一致而数据类型不一致则同时改变值和数据类型并把初始化标志 “v x i 总线测试软件平台”之数据控件、打印及部分数学函数 置为t r u e ,然后退出循环。如果在局部变量链表中也没有找到该变量,则说明 该变量还未声明,则在全局变量链表中加入该变量。 4 1 4 2 流程图如下: 图4 - 2 设置变量流程图 该控件用到的主要函数有: v o i do n p r o c e s s n o w ( w p a r a mw p a r a m ,l p a r a mi p a r a m ) 描述:在全局变量链表中查找变量,并对它赋值,如果没有则声明一个全局变量。 这个函数完成的操作是以下几个方面: 更新编辑框值。 从数据输入引脚得到数据。 设置变量标志为假。 遍历全局变量链表。 如果变量名与编辑框中的值一致,把输入引脚中的数据类型赋给变量链表中 的数据,设置初试化标志为真,退出循环。 如果全局变量链表中查找不到则在局部变量链表中查找。 电子科技大学硕士论文 ,如果变量名与编辑框中的值一致,把输入引脚中的数据类型赋给变量链表中 的数据,设置初试化标志为真,退出循环。 如果在局部变量链表中也没有找到该变量,则说明该变量还未声明,则在全 局变量链表中加入该变量。 交出运行权。 4 2 得到变量 4 2 1 控件功能: “得到变量”控件获得在变量链表中已经存在的变量。“得到变量”控件对变量 的查找方式是按名查找。“得到变量”控件支持中文名。该控件输出的数据只是 变量数据的值而不是该变量的结构。 4 2 2 端口特征 输入端口数:无 输出端口数:默认1 个,不能增加或减少 4 2 3 外特性描述: 图4 - 3 得到变量控件外观 4 2 4 设计说明: 4 2 4 1 编程思路 “得到变量”与“设置变量”是同时使用的,既如果用户要使用变量就必须 首先用“设置变量”控件对一个变量设初值。然后用“得到变量”取得该变量的 值。因为变量分全局变量和局部变量所以“得到变量”控件是先查找局部变量然 后查找全局变量。取得变量值的方法是先获得局部变量链表的指针量,然后通过 便历变量链表,把“得到变量”控件编辑框中的字串与链表中各变量元素的名字 进行比对如果有匹配的名字则提出该变量,如果发现该变量名的初试化标志为假 则给出提示后返回。如果变量的初试化标志为真则提出数据,退出循环然后把数 据值传出,如果在局部变量链表中无法找到该变量名则获得全局变量链表的指针 参照上面的查找方法再按名查找该变量,同样如果找到则检查变量的初试化标志 是否为真,为假则给出提示后返回,否则提出数据,退出循环然后把数据值传出。 如果在全局变量链表中还找不到该变量则给用户以提示。 w x l 总线测试软件平台”之数据控件、打印及部分数学函数 4 2 4 2 流程图: 图4 - 4 得到变量控件流程图 该控件用到的主要函数有: v o i do n p r o c e s s n o w ( w p a r a mw p a r a m ,l p a r a mi p a r a m ) 描述:在全局变量链表中查找变量,如果找到则取值,如果没有则弹出对话框说 明。 更新对话框的值 设置全局变量标志为否。设置局部变量标志为否。 获得局部变量链表的指针, 通过便历变量链表,把“得到变量”控件编辑框中的字串与链表中各变量元 素的名字进行比对如果有匹配的名字则提出该变量。 电子科技大学硕士论文 如果发现该变量名的初试化标志为假则给出提示后返回。 如果变量的初试化标志为真则提出数据,退出循环然后把数据值传出。 如果在局部变量链表中无法找到该变量名则获得全局变量链表的指针参照 上面的查找方法再按名查找该变量。 如果找到贞| j 检查变量的初试化标志是否为真,为假则给出提示后返回。 提出数据,退出循环然后把数据值传出。 4 3 定义变量 4 3 1 控件功能: “定义变量”控件的主要作用是声明平台编程所需要的变量。对一个变量而 言它应该包括变量名、作用域、数据类型和维数四个部分。变量的名字对于英文 名字而言应对大小写敏感,由于我们的平台是中文平台所以它应该支持中文变量 名。对于变量的范围应分为全局变量和局部变量这与一般的程序语言并无二致, 而变量的数据类型则包括整数、实数、数组、记录、复数、极坐标等,至于维数 平台支持5 维数组。 4 3 2 端口特征 输入端口数:无 输出端口数:无 4 3 3 外特性描述: 图4 - 5 定义变量控件外观 4 3 4 设计说明: 4 3 4 1 编程思路 “定义变量”控件只是对变量进行声明而不对其进行初始化所以它只是在链 表中加入了变量名而没有分配存储空间。很明显对于变量的声明应该放到整个程 序运行以前进行设置。在这里采取的方法是在c m a i n l = r a m e 中的运行入口函数中 v x i 总线测试软件平台”之数据控件、打印及部分数学函数 调用o n r u n l n i t ( ) 函数进行变量设置。这个函数的运行是在整个程序运行之前。 所以变量链表的生成是最先完成的。”定义变量”操作的整个过程如下:首先新产 生一个变量链表元素,然后判断“定义变量”对话框定义的变量是全局变量还是 局部变量。根据定义变量作用域的不同获取不同的变量链表指针。再判断变量的 数据类型、维数和大小。当变量的属性确定以后把新生成的变量的属性进行设置 最后再链表中加入该变量元素。对于”定义变量”控件而言一个控件只能声明一个 变量所以用户要想

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论