(测试计量技术及仪器专业论文)vxi总线测试软件平台数学函数、公式控件的设计和实现.pdf_第1页
(测试计量技术及仪器专业论文)vxi总线测试软件平台数学函数、公式控件的设计和实现.pdf_第2页
(测试计量技术及仪器专业论文)vxi总线测试软件平台数学函数、公式控件的设计和实现.pdf_第3页
(测试计量技术及仪器专业论文)vxi总线测试软件平台数学函数、公式控件的设计和实现.pdf_第4页
(测试计量技术及仪器专业论文)vxi总线测试软件平台数学函数、公式控件的设计和实现.pdf_第5页
已阅读5页,还剩51页未读 继续免费阅读

(测试计量技术及仪器专业论文)vxi总线测试软件平台数学函数、公式控件的设计和实现.pdf.pdf 免费下载

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

文档简介

电子科技大学硕士论文 摘要 我们根据总装备部下达的“九五”、“十五”v x i 总线测试软件平台 的预研课题,进行了可视化的测试软件开发环境的研究和设计。本硕士学位 论文是根据自己在该课题中所承担的任务撰写完成的。 v x i 总线测试软件平台为自动测试系统提供了一个可视化的图形 编程环境,用户能方便的组建自动测试系统而不需要熟悉高级编程语言。该 平台作为测试应用的集成开发环境提供丰富的编程元素( 控件) 及方便的调 试和运行方式;此外作为图形化的编程语言还要提供友善的编程界面及简便 直观的运行界面( 面板、虚拟仪器控制器) 。我们利用当前计算机上丰富的 图形资源环境进行可视化的测试软件编程环境的研究和设计。这个平台是建 立在w i n d o w s 操作系统之上,完全中文化的软件平台。 根据项目的安排,我主要负责( v x l 总线测试软件平台中的数学函数控 件的研究和设计;( v x i 总线测试软件平台公式表达式控件的研究和设计;以 及对数学函数控件和公式表达式控件的测试任务。本论文的主要内容安排如 下: 第一章介绍了平台的研制背景和意义、平台的技术实现、开发工具以及 自动测试系统的软件开发工具的现状和相关技术。 第二章论述了数学函数及数学函数加载的统一接口的实现的原理及 其实现过程,以及数学函数控件的生成和功能的实现过程。 第三章论述了软件测试的重要性,以及软件测试应用在数学函数控件的 综合测试。经过测试证明,数学函数控件不但能够完成单元测试,而且还能够 完成组合测试,完全达到了用户要求。 第四章论述了公式控件的编程思路和实现方法,以及重要函数的描述及 对公式表达式的测试。 第五章论述了控件类的设计以及产生过程,控件创建函数的实现。 其次介绍了计数器、累加器、比较器、多路输出选择、移位寄存器控件; 数据类中的收集器、访问记录部分输出记录等控件的功能介绍和编程思 路以及使用实例 第六章对平台的完善和改进阐述了一些个人的建议和想法。 关键词:v y d 总线测试软件平台,数学函数,公式表达式,软件测试 电予科技大学硕士论文 a b s t r a c t a c c o r d i n gt ot h ep r o j e c to f t h en i n t ha n dt e n t hf i v ey e a rp l a no f e q u i p m e n t d e p a r t m e n to fn a t i o n a ld e l e n s ef o rt h ev x ib u st e s ts o f t w a r ep l a t f o r m w e h a v ec a r r i e do nas e r i e so fr e s e a r c h e sa n dd e v e l o p m e n t sf o rv i s u a l d e v e l o p m e n t e n v i r o n m e n to ft e s tc o m p u t e rs o f t w a r e t h em a s t e rd i s s e r t a t i o nw a sw r i t t e nw i t h t h et a s kih a d a c c o m p l i s h e d v x l b u s t e s ts o f t w a r ep l a t f o r mp r o v i d e sav i s u a lp r o g r a m m i n ge n v i r o n m e n t f o ra u t o m a t i ct e s t s y s t e m ( a t s ) u s e rc a l lb u i l da t sc o n v e n i e n t l yt h r o u g ht h e s 0 1 a r ew i t h o u lk n o w i n ga d v a n c e d p r o g r a m m i n gl a n g u a g e a sad e v e l o p m e n t e n v i r o n m e n to fa t s ,t h ep l a t f o r mp r o v i d e sa b u n d a n tp r o g r a m m i n ge l e m e n t sa n d c o n v e n i e n c e d e b u g g i n g o r n m n i n g m o d e b e s i d e s t h e s e ,i tp r o v i d e s f i i e n d l y p r o g r a m m i n ga n dr u n n i n gi n t e r f a c e 。w ed e s i g ni tb a s e do nt h ea b u n d a n tg r a p h i c r e s o u r c eo fp c i ti sac o m p l e t e l yc l l i n e s ep h f f o r mb u i l to nw i n d o w so p e r a t i o n s y s t e m a c c o r d i n g t ot h ea r r a n g e m e n to f t h e p r o j e c t , lm a i n l y t a k ec h a r g e o f r e s e a r c h i n g a n dd e v e l o p i n gm a t hf u n c t i o na n df o r m u l ai nv x i b u st e s ts o f t w a r ep l a t f o r m i a l s ot a k e c h a r g eo f t h et e s t i n gt a s kf o rt h e s eo b j e c t s 弧l em a i nc o n t e n to f t h et h e s i si s a r r a n g e d a sf o l l o w i n g : c h a p t e ro n ei n t r o d u c e st h eb a c k g r o u n d ,t h es i g n i f i c a t i o n ,t h ea r c h i t e c t u r e ,t h e d e v e l o p i n gt o o la n d t h e t e c h n o l o g yo f v x ib u s t e s ts o f t w a r ep l a t f o r m c h a p t e rt w od i s c u s s e st h ep r i n c i p l ea n dt h ep r o c e s so ft h er e a l i z a t i o nf o rm a t h f u n c t i o na n dt h eu n i t i v ei n t e r f a c eo f m a t h f u n c t i o nl o a d i ta l s od i s c u s s e st h ec r c a t i o n o f m a t hf u n c t i o na n dt h er e a l i z a t i o n p r o c e s so f t h ef u n c t i o n c h a p t e r t h r e ed i s c u s s e st h es i g n i f i c a t i o no f t h es o f tt e s ta n dt h e a p p l i c a t i o no f t h e s o ri n t e g r a t i o nt e s ti l lm a t hf u n c t i o n i tp r o v et h a tm a t hf u n c t i o nh a sn o to n l y a c c o m p l i s h e dt h eu n i tt e s t , a n da l s oa c h i e v e dt h es y n t h e t i c a lt e s t i th a sa c h i e v e d 氆e c u s t o m e r sr e q u e s t c h a p t e rf o u rd i s c u s s e st h er e a l i z i n gm e t h o da n dt h ep r o g r a m m e dm e t h o do f f o r m u l a t h e ni td i s c u s s e st h e d e s c r i p t i o no f t h em a i nf u n c t i o na n dt h es o f tt e s tf o r f o r m u l a c h a p t e r f i v ed i s c u s s e st h e d e s i g na n dt h ep r o c e s so f t h e g e n e r a t i o n o f t h ec o n t r o l f u n c t i o n , i n c l u d i n gc o u n t e r ,a c c u m u l a t o r , c o m p a r a t o r , s h i f t r e g i s t e r d e m u l t i p l e x e r , c o l l e c t o r , a c c e s sr e c o r d c h a p t e rs i xg i v e ss o m ea d v i c ea n do p i n i o n so nh o wt oi m p r o v et h i sc o m p u t e r s o f t w a r e k e yw o r d s :v x i _ b u st e s ts o f t w a r ep l a t f o r m ,m a t hf u n c t i o n ,f o r m u l a , s o f tt e s t 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作 及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地方 外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为 获得电子科技大学或其它教育机构的学位或证书而使用过的材料。与 我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的 说明并表示谢意。 签名:翌i 查 日期:j m 弓年弓月乡日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁盘, 允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文的全 部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描 等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名皿导师签名: 户讹侈 jji一 日期:扣弓年弓月弓日 毫予瓣控夫擎矮士论文 第一耄雩l 言 测薰豹览驱魏零文说过,一个攀物铱姆祭能够测量京,并且缝耀数字象表达 窀,依对它就存了深刻的了鳃;假如果休不知道如何测薰它,且不能用数字袭达 它,那么体艟知识帮能就是翁瘠戆,是不令入潢意的。著名霉; 学家门捷魏夫两一 句话概括了测量对举i 学的作用,这句话就是:“没有测量,就没裔科学”。那么骨 么怒测量瓣? 测薰就是对一个事物辩试设遭程,藏憝将来躲麓与个碾宛已知量 遴行眈较的避程,髓测试怒测蠹和试验酪总称,它包含对事物( 产晶) 特性的定璧钡 爨帮对事秘产菇) 特往酶试骏。测试豹本麓就建入突与容溉物薅鬣界懿稳疆箨 麓,它摄供一种秘瑗世界定薰的w 黧复和可信赖盼方法,它题认谈客观物理傲界 貔遗程。 电予测爨仪器楚联系信惠世界和客观世界盼纽带,是秩取信患的重要学段霸 王基。毫予溺羹蔽器不坟胃获取稿惑和禊叛傣惠,褥显运可缒理绩惠。骢罄魄予 学、诗算税辩学的发展及其广泛威用,目箍复杂静溅试经务对电子测匿技术及电 予浏羹役糕汝备褥出了越采越嵩鲶簧求。“没有灏熬,藏没露科攀”,“便器仪表 置越是信悫王韭,慰信惠豹源头”的蕊赢酲褥刮众多有谈之士静共谈。现代的灏 试任务苓茨辩要簿多参数、翱关参数、瓣阉痿怠避纾快速、突簿、逡续、糙确豹 撩瓣裙测爨,且嚣完痰港繁瓣数攒斑理工作,完藏邀楚工俸都远 # 入工溪l 试掰麓 熬馁。帮使怒筵攀瓣产鑫瓣试,魄鬟簧袋蔫是动滚试替我效率稳下豹久王涎试。 毽楚没骞经秘一耱遴髑溺试焱统戆够金舔满足蘧茨、精寝、w 靠瞧、舞缀经 主l 及 琰箨筹套方甄麴蘩裳,涎试繁绞爨绥壤攥琴溺匏瘫翅送行致滋。羧彗乏慰塞貔测试 搜零熬磅究舆奏专分霪要瓣缀论价蕊和癜建囊蓼最。 , ¥x l 总线奔缨及v x l 总线测试软髂平鑫斧发撅述 v x i 总线是由h p 、c o l o r a d od a t as y s 、r a c a ld a n e 、t e k t r o n i x 馥w a v e t e k 麓纛窳公司予1 9 8 7 年联会撵娃l 的浏装仪器憨线豁潦。y x i 总线是秘蹇逮诗箨 规总线v m e 憨线在仪器领域瓣扩殿。经过这些霉豹发展,v x i 系统戆纽建鞠饺 耀越来趱穷傻,焚箕是缝建太、孛戴模鑫动测量系拣漩疑慰速度、壤度要墩寓 的场会,霄其他仪嚣无法比拟的优势。熬卷我謇攀搴测试技零逐渐发展,军题 藉势幽赠试设备( a t e ) 丈塞深矮,v x i 技零辑究飘缀越来越褥戮务个部门熬滚 视。 在v x i 总线裂试系统孛,诗磐壤在溅试系统审广泛瘫簿,软锌残翅 拳平已戏为提豢i l | | 试拳乎熬萋要方嚣。蘩先,系绞怒力瓣据蹇大塞辫獭 电子霉i 技大学琰圭论文 予软转,除了能弱诗算飙代替人工指撂操作、记录数摄、存档、报袭等 工作外,还可根据具体需要与硬件相甄配合,进行多种数据处理和交换, 例如f f t 变换、误差分析等。其次,测试系统改进和舞级孛最方便的手 段是改变软件,它能延长测试系统的斑命周期,动态适应用户的多种需 要。最愿,子变万化的软件也是构成廉拟仪器最核心豹因素。 流行的软件开发平台比如v i s u a lc + + ,c + + b u i l d e r 等等,这类软件没 鸯专门锋慰测试镞域,入翅选毙骏困难。嚣囱测试领域豹图形健编程软终, 圜外目前肖:安捷伦公司的a g i l e n t - v e e 和n i 公司的l a b v i e w 。鉴于国内尚 没有鑫主舨掇旦瓣淘溅试静语言投图形纯编程软箨,因v x i 产熬软硬修毽产 化的需要,我们所开发的( v x l 总线测试软件平台就是为了实现v x i 测 试软搏的疆产纯,提供一个方理数v x i 惑线测试黪图形能编程强壤。 v x i 总线测试软件平台的目标是提供一套基于中文环境的麒有 蠢主凝权豹v x i 慧线测试较转秀发乎螽,同辩装窖箕继总线溺试系统攘l 试软件的开发。并经实际使用之后,逐步完善,提高版本,以推动我国 鑫动测试系统豹发曩。我露嚣发瓣 v x l 总线溺斌软传平台提供7 霹 视化图形编程环境,用户不需要熟悉高级编程语害,利用它能方便的组建自 动 壤l 试系统,提蹇璐户编豢l 测控程序熬效搴露缩姣嚣发羼期,弱辩实理了溅控 领域的软件平台的国产化,在国内属首创。 l 。2v x i 总线测试软俘平台技术麓实现 ¥x i 总线测试软搏乎螽是一个集体磺霹,憋令顼爨魏难度秘 工作量非常大,需要大家相互团结合作。完成整个项目需要分析和借鉴 l a b v i e w ,l 8 b l j | i n d o 书s e y i 秘a g i l e n t - v e e 送些测试款终平台斡功能 和构造,但是这类平台设计的核心技术没有公开,也无这方面的源程 游可借鉴,只能通过其帮助文档和试验,测试其功愁,了鳞它们的外 特性,敞在分析和编稔时会有定的难度。此外,软件的w 靠性、模 块化及农不同平台阉豹可移植性等等,也都楚编制软件中簧要注意的 问题。特别是软件的可靠性,是测试w 靠性中重要的组成部分。 v x 恿线溺试软穆警台瓣曩魏燕隽了掇获一个鼙程馥豹麴影绽撩浯 裔及环境,实现w 视化图形编程功能是( v x i 总线测试软件平台的核心。 必了溃是瓣v x i 测试软耱平台熬簧求,我搬嚣发熬“v x i 测试软终平台”也 具备如下功能: 爨有w i n d o w s 瘦耀程痔酌密疆癸嚣,提供常蕊麓雏,懿:文律的簇 电子科技大学硕士论文 建,打开,存储,打印及编辑。 提供丰富的图形化编程元素( 编程控件) ,其中包括:基本数据产生 控件、数据运算及操作控件、显示控件、流程设计控件、仪器管理 控件以及i o 控件。此外,该测试软件平台具有丰富的测试波形显 示功能。 提供程序调试功能,其中包括:程序运行、单步执行、断点设置。 支持对外部a c t i v eo c x 组件的调用。 支持对c 编译器的调用,用户可以直接在平台的开发环境中实现对 c 语言程序的编辑和编译。 为实现以上功能,我们拟采取的技术路线及方案如下: 以a g i l e n t v e e 作为参照模型,在接口和界面上尽量做到与其 匹配。 选择w i n d o w s9 8 操作系统( 兼容w i n d o w s2 0 0 0 ) 。 1 3 毕业设计的主要任务 作: 在导师的悉心指导下,与项目组成员一起,我主要完成了以下的工 在v x i 总线测试软件平台中实现对数学函数及数学函数加载的统 一接口的实现的原理及其实现过程,以及数学函数控件的生成 和功能的实现过程。 在v x i 总线测试软件平台中实现对对学函数控件的综合测试,经过测 试证明不但能够正确处理基本的数学运算,而且能够正确处理比较复 杂的对数据处理的功能。经过数学控件组合,也完全能够达到其预想 的功能,而且系统集成后测试也无误。 在v x i 总线测试软件平台中实现对由一串字符串组成的公式表达式 进行解析,然后计算出结果,并且能够正确辨析其正确的形式,对不 规范的或者是错误的表达式报错。 在v x i 总线测试软件平台中对部分控件类( 计数器、累加器、比 较器、多路输出选择、移位寄存器控件、数据类中的收集器、 访问记录部分输出记录等控件) 设计及功能实现。 电子瓣按大学矮士论文 第二章数学函数及数学函数加载的统一接口 2 。1 数学函数麓贪 2 i 1 数学函数接件在y x l 总线测试软件平台巾的位鬣 黧2 一l 数学丞数靛辨盘差 2 。l ,2 数攀黼数功麓篱奔 v x i 总线测试软件乎台搀为一个开发平台,用户在乎台上开发应用稷序 时采用生成控件,建立连接( 连线) 等图形化编程的方式直接进行所需的工 穆,嚣元缀霉键入钱玛。这极大骢方便了弱户,提蹇了王终效率。嚣数攀遗 魄子瓣援大学联论变 数控髂剿是搀我稍象挺袋的黎瘸戆数攀滚数珙震户热载,为溺户遴抒数攥娥 3 鹾巍数搭运算挺供了摄灾躲嚣爱。窘苓蕊熬够避褥楚攀熬数学逶簿,嚣蠢还 黥够滋行院较复杂静数缮缝穗。数学避数控黪不住熊够避孬攀个独鼗运行, 舔纛还激多个豢数避器骞撬瓣缀合窳遮裂一定瓣特殊数捺魅壤麓黥。藤时 我雷3 的数学溺数共有灏大舱数据处璎渤携,奄提供了惫攒二十嚣个樊剐 具 体类弼觅滚2 4 ) 共二百多个函数,越串氮禚基零靛簸攀运算翔四燕避舞、 逻辑遮冀靼魄较遂募、三舞类避鼗、霉遨数、基予安数攥薅静蘧数类、蕊予 字籍皋操器豹醋数类、鍪予一缝耪:缨数龌灏警母撩掺黪函数关。秘及程铸 警鞭竣嗲套嫠建掰豹装予数学嚣数翔蕊学产撬器数、鞭蠛秘辩壤露数,滚及 壤率绞谤瓣数筹。魏豁逐包禽菠数魏蹩戒酾遴嚣黼数、薅列鹣雯皴秘糖关撩 穆、鸯陵洚交噻凌数譬惑滚嚣嚣数饔嚣隈狰遗嚷艨数字瘩滚器瑟羧等簿。 2 2 静惑涟搂瘴和漤悫遴接痒菠零 蛰淼逡接鼯提供了溺数船兜熬鹩瓣拣代礤,如聚稳窿调用游泰述搂撵孛构 瓣鼗,粼在避孬连接雾尊述接獠痔将静态连接蓐审掰镪裔的该骚数兹代码拷贝至涎 行文掌 垮。 动悉连接枣蹩一个群技行撩块,其魁窘豹函数霹以蘸lw i n d o w s 艨恩褪净潺鼹 黻羧杼鬯璃黪。旗态连接薅奎娶必庭耀程痔模块爨爨默势。w i n d o w s 蠹棱蠡冬三 个攘块u s e r 。e x e 、k e n e r l e x e 秘1 e x e 实舔上都是秘态连接箨,势粼提拱穗 产溪惑毅务、邀援警毽、辇澎辕逛攀黧务。 魂森恣撩瘁瞧镰含了箕掰擒供静霹羧豹箍糖健麓,麓楚在糕侉逡按溺态连接 簿孛戆题数瓣,连接程露劳攀褡毽孪在瓣态遥按疼孛瓣黼鼗麓霹标我褥簿贸愿纛 雩亍文件,蕊必是麓攀媲诡录丁爨数麴位截谤惫( 鄂卺禽予骤个动态恣接麟串叛及 在动态逑接露中靛佼麓) 。鸯了这些穰惑蠢,程泞在挽豁游,静胃找戴该逶数斡 鼹橡栈秘。甄为只爨在执行孵才褥劐赛拦魏连接,辩越稼为鹚态连接。挺供嚣数 在动态涟按摩审链鬟载壤患存教鸯一个独嵌豹交撵中,这个文襻魏怒孳l 入露 ( i m p o r t l i b ) 。凄予羚悫连接瘁将囊蠢蕊瓣涟搂鹫纛嚣疆黟孛,鋈麓枣运器辩, 躲暴嚣个疆痔调攥了露黪态鬻巾豹露漱,内存巾将寤溪该瓣数懿多份拷瑟。 搿 麓悫连按摩瓣嚣遗舍于多锤务繇壤:囊掰令藏霜褪廖褥裰了鬻一滋瘩涟搂津枣懿 阗一个璐数辩,内存中哭僚辩该涵数静静拷受,这祥瘫存潮愆率爨离。 电子辩技大学联圭论文 零用动态连接艨还可以实瑰资源共享:像w i n d o w s 下的串行翻、并行翻驱动 程序都是动态连接岸;另外,w i n d o w s 下的字体也是动态涟接库。但是,静态库 壹予将要撂代码连入应建释痔孛,瘫爱程澎霹独纛逶霉。褥使霉动态连接疼薅, 随同应用程序还要提供动态连接库文件( d l l 文件) 。比如,发布v i s u a lc + + 编 写瓣程序辩,翔莱搜雳了动态连接,舞g 在掇供可扶纾文停闻睁还需辩提供v i s u a l c + + 的动态连接库。 那么,应用程序是怎样找到d l l 文件的昵? 如果残月程序使用l o a d l i b r a r y 显式链接,那么在这个遁数的参数中可以指 定d l l 文件的完整路径。如果不指定路径,或是进行隐式链接,w i n d o w s 将遵循 下嚣翁搜索颞痔来楚槛跣l ; 1 包含e x e 文件的目录, 2 。进程豹当蘸王侔蠢录, 3 w i n d o w s 系统蹦录, 4 w i n d o w s 莓录, 5 列在p a t h 环境变量中的一系列目录。 2 3 数学函数实现的原理 如同个软件开发环境一样,我们的软件测试平台要其备程序输入的界 露,功能强大的黪蘧数,绽译翻邂行等多种基本璇戆。如果没鸯内联函数秘 可加载的库函数,c 语言就不会如此地方便实用和功能强大。同样的,我们 瓣软终秀发繇壤魄必矮具备完善豹臻戆豢大戆瘁滋数,瓣游提供穷霞豹麴载 接口,这样才具有实用价值。 应用程序导入函数与d l l 文件中的罨出函数避行链按有两种方式:隐式 链接和显式链接。所谓的稳式链按是指在应用程序中不嚣指明上文件的实 际存储路径,程序员不需关心d l l 文件的实际装载。而最式链接与此相反。 采媚显式链接方式,程痔受在建轰一令d l l 文律瓣,链接程痔会囊魂生成 个与之对成的l i b 导入文件。该文件包含了每一个d l l 导出函数的符号名和 霹选鼢标识号,穰楚并不会骞实繇豹代筠。l i b 文律俸隽d l l 静鼙健文伟被 编译到应用程序项目中。崩程序员通过静态链接方式编译生成应用程序时, 电子科技大学硕士论义 应用程序中的调用函数与l i b 文件中鼯出符号相匹配,这些符号或标识号进 入劐垒残藜e x e 文释审。l i b 文箨串囊包含了对应的d l l 文黪名( 毽不是完 全的路径名) ,链接程序将其存储在e x e 文件内部。当成用程序运行过程中需 要加载d l l 文件时,w i n d o w s 掇据这些信息发璐并加载d l l ,然后通过符号名 或标识号实现对d l l 函数的动态链接。 显斌链接方式对于集成化的开发谣言( 例如v b ) 比较适合。有了照式链 接,程澎受藏举登秀傻用导入文俘,嚣楚壹按溺蕉w i n 3 2 魏l o a d l i b a r y 交 数,并指定d l l 的路径作为参数。l o a d l i b a r y 返回h i n s t a n c e 参数,威用程 序在谲掰g e t p r o c a d d r e s s 函数时使用这一参数。g e t p r o c a d d r e s s 函数将符 号名或标识号转换为d l l 内部的地址 v c 提供了动态链接库( d y n a m i cl i n kl i b r a r y ) 的方式,使得我们可以 考霞豹定义丞数蠢动态豹热载瓣数,圈簿魄霹双方蓑瓣秘戳扩兖。因魏我露 采用动态库的方式来编写需要的函数以达到动懑加载和外部扩充的目的。 我们采用静态链按的方式,誊接将渤态库髭式的镰入系统巾,在需要调用 动态库瀚数的代鹅里直接i n c l u d e 数学蝤数定义的头文 孛,就w 以方便的如同 使用m f c 库函一样直接调用该函数。 下鬻绘塞鬻器豹详缨步骤j 窭程。 | 嚣麓;盖警麓鬟参楚蜜墓落 | 横嫦甓肇酶鬣装;凝磬添撇 + 山 ! 在热支嚆霸嚣鬣岔寸加定义所 l 上 l 将一“v 镶肇翟肇入软件种i o i :l 譬9 ;现盈i 撒:曲t 蠢妊 钍搠i 块中 ii n c l u d e a l y s i h l 0 r l i 蜘调用勰散 l 錾2 2 2 ,4 数学函数加载的统一接日 2 4 1o d b c 介绍 电予辩技大学颈士论文 o d b c ( o p e nd a t a b a s ec o n n e c t i v i t y 开放数据库连接) 是微软开放的服务 结构( w o s a :m i c r o s o f t 译i n d o w so p e ns e r v i c ea r c h i t e c b t r u e ) 牛有关数据库 的个组成部分,它规定“以统一的a p i 存取异构数据库傣息”是对s q la c c e s s g r o u p 的c l i 标准的一种实现,得到了世界上领先的数据库和应用程序开发商的 广泛支持。逶过使耀这统一豹a p i 建立戆疲臻程露,对数撰痒豹掇炸不菝赖于任 何数据库管理系统,不直接与任何d b m s ( 数据库管理系统) 打交道,从而直接 实糯应磊稔滓砖不鬻d b m s 鹃共享。采震o d b c 技本,应震强磐只嚣关心数攒豹处 理而不必考虑数据的存取,编程人员不必了解具体的d b m s ,从而极大地减少了 软件开发入员的工作量,缩短了嚣发周麓,提高了效率积软件静w 靠往。 o d b c 接口臻s o l 俸受栋准静蠢海语言袋存取涟按垂瓣数舞滚。o d b c 灸许荤 个应用存取多个不同的数据库管理系统,邋使得应用开发糟可以开发、编辑和发 行应蘑雨不管它操作的数攒库管毽系统( d b m s ) 究窝是许么。焉户可以通过加载 连接到不同数据库的驱动獠序来建斑与各种数据库的连接。 2 4 2 数学函数加载的实现 v x i 总线钡l 试平台菸脊两百夥个函数,我们不可能为每一个函数建藏一个 菜单项或按纽来调用,因此我 f 】爨要提取添数约共性,建立一个必用豹w 扩充 的接口模块来实现函数的调用。前面我们提到在系统中摭件是运行的主体,每 一今丞数东运露黪爨是菝援手控移,在控锋运孬辩完藏鹭数动麓戆。嚣羧释是 有挟性的,为此我们定义类c b a s e 作为控件的基熊来实现控件的基本功熊,通 过c r e a t e 黼数在翎建控髂澍象时襁密络蠢身翡个褴特征佟为参数传递。按件终 为遮行的主体,必然包含有数据输入。执行的操作和数据输出以及和运行调度 褶关盼若吊数据络梅。吴体体现在左部端口表示数籀输入端,右部端日表示数 据输出端,上部端妇= 表示攘制输入流,下部端口表示控制输出流。用响应运行 消息的消息函数实现具体操作。控带流和数据流加上控件自身与逡行相关的逻 辑限豢l 共瓣构成了控磐,实现了运行潺度麴具髂逻辑实现。 我们通过o d b c 接口连接a c c e s s 数据库,得到函数的具体属性特征来生 成数学函数控侔。闲诧,根据数学黼数控伟的属往特征我们对其进行加戳分类和 细化来构造a c c e s s 库的袭单结构。首先,每个瞒数( m e m b e r ) 都属于某个类型 电子科技犬学硕士论文 ( t y p e ) 的某个分类( c a t e g o r y ) 。比如d i v ( 整除) 函数属于o p e r a t o r s ( 运算符) 类型戆a r i t h m e t i c ( 数学运算分类。s i n 丞数藩予b u t i t i nf u n c t i o n s ( 内 联函数) 类型的t r i g ( 三角函数) 分类。其次,每个函数都有若干数据输入和 输出( 魂可能为0 令) ,每伞输入或输瓤豁有其散蕹类掇,胃黢还有控蠲输入鹣 控囊l 输出。虫此我们根握这些辨在特征,构造出如下豹袭单结孛奄: 表争l 数学控侔特征 名称鼗蠢娄楚落骥 奄辨文末遵数秘樊墼 c a t e g o r y 文本遗数的分类 m e m b e r文本 函数的稿称 t o p p i n n u m 整型 控制输入端口的个数( o 硪i ) 8 0 t t o m p i n n u m整型 控制输出端口的个数( 0 或1 ) l e f l p i n n u m墼型 输入数据熊个数( 志帮端日静个数) l e f i s t r i n g 文本辖入数据簿名称( 多令) h 鑫f 淞 文本辘入数摇数类墼 r i g h t p i n n u m 整型 输出数据的个数 右郝糍口的数据) r i g h t s t r i n g 文本输出数据的名称( 多个) r i g h t l , 文本 输出数据的类型 i d整型 函数的唯一数字标谈,主要用于运行 禳撂诧衰,我霞j 可敬把数学涵数按英海在瘸佳包禽关系势为三个分类,分 别为c t y p e ,c c a t e g o r y ,c m e m b e r 。分别案4 你三个表,分别为f u n c t y p e , f u n c c a t e g o r y 和f u n c t i o n 。 毫予辩技大学臻士论文 最爱我搬遵过支持数学露数嶷示露逡行的类c m y f u n c t i o n 秘实现数学医数 调用统一接口的擞c f u n c t a b 以及和类c c a t e g o r y 、类c t y p e 及娄c m e m b e r 共同 实凌了数学亟数豹鞠载秘实臻。 2 。4 3 类c c a t e g o r y 、类c t y p e 及类c m e m b e r 你用及其功能 类c t y p e :对数学函数的t y p e ( 类型) 进行初始化,并进行遍历。构成 亵令类型,o p e r a t o r 葶爨b u l i t - - i nf u n c t i o n s ,爨鸯熬嚣数都嚣予这嚣个类象。 表2 - 2 数学函数成员类型 c m e m b e r :对袋f u n c t i o n 进瑟扔始纯并进行遗历。镪含数学灏数懿掰有属 性,共分为十三个属性,分别如下: 表龄3 数攀遁鼗藏爨名 电子科技大学硕士论文 类c c a t e g o r y :对数学函数的表c a t e g o r y ( 类别) 进行初始化,井进行 游历。京o p e r a t o r 和瑟u l i t i nf u n c t i o n s 下,按丞数夔毪矮怒函数褥分走 二十五个类别,分别如下表所示: 表2 - 4 数学蘧数成员炎麓 1o p e r a t o r s a r i t h m e t i c 2o p e r a t o r s l o g i c 40 p e r n t o r s c o m p r a s i o n 1 0 0b u l i t i nf u n c t i o n s p o w e r 1 0 1b u l i t - i nf u n c t i o n s s t r i n g 1 0 2b u li t - i nf u n o t i o n sb e s s e l 1 0 3b u l i t i nf u n c t j o n s a r r a y l d 1 0 4b u l i t - i nf u n c t i o n s r r a y 2 d 1 0 5b u l i t i nf u n c t i o n s c o m p l e x 1 0 6b u l i t - i nf u n c t i o n s f r e q u e n c yd o m a i n 1 0 7b u l i t i n 轧n c t i o n s t i m ed o m a i n 1 0 9b u l i t - i nf u n c t i o n s o n e - s t e pf i l t e rf u n c t i o n s 1 l lb u l i t i nf u n c t i o n s f i rd i g i t a lf i l t e r s 1 1 2b u l i t i nf u n c t i o n s w i n d o w s 1 1 3b u l i t - i nf u n c t i o n sm e a s u r e m e n t 1 1 4b u li t i nf u n c t i o n s s t a t i s t i c sb a s i c s 1 1 5b u l i t - i nf u n c t i o n s p r o b a b i l i t yn i s t r i b u t i o n s 1 1 6b u l i t - i nf u n c t i o n sc u r v ef i t t i n g 1 1 7b u l i t i nf u n c t i o n sr e a lm a t r i c e s n 9b u li t - i nf u n c t i o n sd a t af i l t e r i n g 1 2 0b u li t - i nf u n c t i o n s t r i g 1 2 1b u l i t - i nf u n c t i o n s r e a lp a r t s 1 2 2b u l i t - i nf u n c t i o n s i n t e r p o l a t i o n 1 2 3 | b u li t i nf u n c t i o n s s i g n a lg e n e r a t i o n 电子科技大学硕士论文 2 4 4c f u n c t a b 类的作用及功能 在c f u n c t a b 中实现了通过函数名生成对应控件的功能。其作用就是根据 通过0 d b c 接口连接a c c e s s 数据库生成数学函数控件,并生成其所有属性,依 据函数输入输出的参数个数和类型生成左右端口,并在运行时执行函数的相关 操作。 c f u c t a b 类是在c d i a l o g 类上派生的,通过o d b c 接口连接a c c e s s 数据库, 得到函数的具体属性特征来生成控件。在生成数学函数控件时,以函数名作为 选择的标识来定位库中的相应记录项,得到属性特征值作为参数创建控件对象。 这样就实现了在一个统一的接口下生成控件的要求。其具体流程如下: 图2 - 3 数学函数产生流程 - 1 2 o 电子霉毒技大学硬士论文 这样,通过按下c r e a t ec a l l 按纽或者双击数学函数成员控件就创建了数学函 数控件。但是只是创建而已,其劝能没有实现,不会产生饺何结果。其功能实现还 褥依靠c m y f t m c t o n 类来实现。 2 4 。5 麓要函数讲解: b o o l o n i n i t d i a l o g o : 接述:逮舞动态痒,慰数学瓣数裂表鼹话穰遴露更凝; v o i do n d b l c l k t y p e o : 描述:单击t y p e 类,全程进行搜索,以得至所需函数类型; v o i do n d b l e l k c a t e g o r y o ; 描述;单击c a t e g o r y 类,全程进行搜索,以建到所嚣匾数类别; v o i do n d b l c l k m e m b e r o ; 描述:单击m e m b e r 类,全稷进行接索,戬褥到其数学函数成员名,使其与 所器函数类型和类别匹配; v o i d o n c l o s e o ; 描述;关闭藤个数攀滋数控佟窗酲; v o i d o n s e l e h a n g e m e m b e r o ; 描述:改变数学函数成员名; v o i do n s e l c h a n g e t y p e o ; 接述:竣交残贯类黧; v o i d o n s e l e h a n g e c a t e g o r y o ; 描述:改变成员类别; v o i dc f u n e t a b :o n c r e a t e c a l l o ; 描述;通过搜索整个库,提取随数的其外在属性,根据这些属性,生成控件。 2 5 数学函数控件功能的实现 电子科技大学硕士论文 现在,数学函数控件已经生成,但是它什么作用也起不了,没有任何功能, 只是虚有其外表。要实现其应有的功能,这就需要类c m y f u n c t o n 来实现。运行 时,在控件对象( c m y f u n c t o n ) 的运行消息响应函数中,依据数学函数的i d 号( 数 据库的i d 字段中的值) 调用动态库中的或者自己编写的相应函数,就可以实现相 应的操作了。而我们的数学函数库共有二十几个类别共二百多个函数,因此需要 编制二百多个函数,而且每一个数学函数所实现的功能都是不同的,复杂程度也 是不同的。有的函数是调用c v i 的库函数,我们负责给它们传递相应的输入和输 出参数,并且判断其输入参数的合法性,但是有的函数却是需要我们根据其特性, 其输入和输出特点,自己编写,因此工作量是很大的。同时数学函数要处理很多 数据类型,其中包括整型,实数型,字符型,复数,整型数组,实数数组,记录 等数据类型。譬如加法的实现,它是二目运算,需要两个输入数据。因此就需要 判断两种输入数据。而数据类型就有整数、实数、整数数组、实数数组、字符、 复数等类型,所以就需要三十六种判断,然后再进行计算。如果输入管角再多一 点,那需要判断就会更多,就更复杂。下面就分别以自己编写的函数和调用c v i 的函数各作为一个例子来说明其具体实现的过程。 2 5 1 自编数学函数的实现 就以产生斜坡的数学函数( r a m p ) 的具体实现来作为例子进行讲解。r a m p 的 功能及参数设置如下: r a m p ( i n tn ,d o u b l ef i r s t ,d o u b l el a s t ,d o u b l er a m p v a l s 口) :产生一列数 组,元素从f i r s t 到l a s t 的n 位均匀分布的斜坡数组 参数说明 输入参数: 参数名称 参数类型参数描述 n 整型数组元素个数 f i r s t 双精度型斜坡的初始值 l a s t 双精度型斜坡的最终值 输出参数: 参数名称 参数类型参数描述 r a m p v a ls双精度数组斜坡数组 例子: 电子辩技文学硬士论文 图2 4 斜坡函数 瓣玻就燕一组等麓数列缀藏懿,靼其公麓秀d - - ( 1 a s t - - f i r s t ) ( n 1 ) ,霞我 热应用的公式为: x i = f i r s t + d 宰( i 1 ) 其实现的具体流程如下: 图2 - 5 斜坡酾数流程图 毫予零辜技丈学磺士论文 2 s 2 调用o v i 的库函数的实现 而调用c v i 的函数就以f f t ( 快速傅藏叶变换) 为例予进行讲解,其输入、 输爨糁熹为: f f r ( d o u b l ex 口,d o u b l eye ) :快速傅立叶变换 参数说明 输入参数: 参数名称参数类型参数描述 x 双精度数缎复数数缎豹实部 y双精度数缎复数数缎的虚部 输出参数: 参数名稔 参数类型参数接述 x 双精度数缀 f f t 的实部 y双精度数缀 f f t 的盛部 备淀: 输入数组的意素个数必须必2 豹委整数次方 例子: 其爨搭工终浚程熬下: 圈2 6 阱踊数 电子科技大学硕士论文 强2 7 措譬函数实现滚黎图 这样,函数快速傅娆叶变换就实现了。我们就可以调用其函数,能够正确 鲶遴它静输入数撵,并镌够计冀藏确,熬薏输密结采。 现在一个完整的动;基加载数学函数的接口融经完成了,以厝需要添加数学 函数时,只要在a c c e s s 庠的表中加入一项记录,同时在动态库中添加该函数, 电子科技大学硕士论文 然后在c m y r u c f i o n 中的o n p r o c e s s n o w 0 i 泵i 数中加入运行时的入口,然后在添加 实现其数学函数功能的函数,一个新的数学函数就加入我们的软件开发环境了。 2 5 3

温馨提示

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

评论

0/150

提交评论