付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、LabVIEW程序设方f模式(五)一生产者/消费者模式(5)_生产者/消费者模式扩展结合状态机模式、事件结构和动态调用技术,能够归纳出针对较复杂应用程 序的通用设计模式。对常见的测试测量程序而言,主要由数据采集、数据分析、 外围菜单项响应、报表生成、数据显示这五个部分组成。其中数据采集是相对独 立和长时间运行的一个模块,可以与其它的模块同时运行。因此,在大多数持续 采集的程序设计中需要将它单独作为一个模块运行。与此同时,子程序也需要一 条数据通道发送一些反馈命令给主程序。于是可以构成如图44所示的一个通讯回路。图44通讯回路LabVIEW提供了多种主程序与子程序之间的通讯方式,如队列、Refe
2、rence 事件等。为了介绍这些方式的具体使用方法,将结合最常用的数据采集实例进行 阐述。【叵用7本例以“计算机组件测试”为应用介绍消费者和生产者循环的具体使用方 法和数据交互过程。例子并不是为了说明计算机组件测试的过程和方法,而是重 在强调对该应用而言应该采用什么样的程序设计模式。因此,例子中使用了多种 数据交互方式,这些交互方式的选择并不是唯一的,可以根据实际情况选择合适 的数据交互方法。假设计算机的整个测试过程由 CPU、RAM、CDROM、Power,.等等数项子 测试项组成,程序需要充分考虑可扩展性要求,使得后期增加新的待测组件时对 主程序的影响不大或者没有影响。测试过程应能够实现暂
3、停和提前停止的功能, 并且测试过程不受其它界面操作的影响。根据以上的测试要求,可以把整个测试程序分为两个部分:控制部分和执行 部分。其中前者是用户主界面,用来响应用户界面事件以及控制测试流程的执 行;后者是执行程序,用来根据控制命令运行测试流程并且产生测试结果。系统 的结构如图45所示。图45 ”计算机组件测试系统”结构从上图可以看出,该应用与消费者和生产者模式是相符的,不同的是还涉及到消费者(执行部分)向生产者(控制部分)的数据传输。本例使用的是队列型 的生产者和消费者模式,而反向的数据传输使用了 “用户自定义事件”和“Reference方法。当然,也可以使用队列等其它的方式。程序的主界面如
4、图46所示,包括菜单栏,测试才S制按钮和测试项列表 3大 部分。背面板如图47所示,生产者部分采用状态机和事件结构相结合的设计模 式,共包含5大类的状态。PC Test图46 PC Test前面板图47 PC Test背面板在PInitialize状态中,主要实现前面板控件的初始化以及调用待测组件,如 图48所示。为了满足测试系统的可扩展性要求,将目前的测试组件统一集中放 置到Testitems目录中。如果后续需要增加测试组件项,只需要编写相应的测试 组件代码并且放置到Testitems目录中即可。图 48 PInitialize 状态在 DInitialize、 Run、 Pause和 St
5、op 状态中都使用到了 PCTest_Execute_Controller.vi程序,该VI用来启动和控制消费者循环,如图 49 所示。卤中使用/新建队列函数,并且将该队列和主程序有关控件的Reference通过VI Server方法传递给了消费者循环。图 49 PCTest_Execute_Controller.vi消费者循环采用典型的状态机模小,如图- 50所示。使用Testitems字符串 记录需要执行的vi的名字(与测试组件相对应),Testindex表示当前运行的测 试项的Index值,该值可以用于记录当前的运行状态以暂停程序的运行。图50消费者循环消费者共有3种运行状态:运行(Ru
6、n)、暂停(Pause和停止(Stop), 在每一种状态下主程序前面板控件的显示均会有所不同,因此消费者会根据不同 的运行状态修改生产者程序前面板上控件的属性(通过Reference。图51所示为Run状态的执行代码,程序首先选择当前的测试组件并且调用相应的测试代 码;然后将Testindex加1,不断地调用Run状态直至收到其它的控制指令(如 Stop或Pause或者测试项执行完毕。图51消费者Run状态整个程序的退出与其它的设计模式略有不同,其退出流程如图52所示。关键在于确保消费者循环能够顺利退出,然后再退出生产者循环。因为消费者的 Reference均是来源于生产者,一旦生产者先于消费者退出,则会导致消费者循 环报错。这里重点强调退出的顺序主要是为了避免程序报错和系统资源没有释 放。图52
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 蚌埠市五河县2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 深度解析(2026)《CBT 3637-1994船用锅炉本体管件修理技术要求》
- 深度解析(2026)《AQT 1089-2020煤矿加固煤岩体用高分子材料》
- 时针题目及答案
- 《谁是最可爱的人》教学评一体化设计
- 室内设计师专业技能考核题库及答案
- 区块链工程师专业知识与实践技能考题及答案
- 执业药师冲刺试题核心及答案
- 雅思练习题基础试题及答案
- 报检员资格考试专业知识题库及答案
- 2025年广德县辅警招聘考试真题附答案
- 人工智能在小学数学知识图谱构建与学生个性化学习中的应用教学研究课题报告
- 中医足少阳胆经
- 《AQ 2085-2025石油天然气开采重大事故隐患判定准则》专题研究报告
- 厂区安全生产会议
- 2025应急管理部国家自然灾害防治研究院劳务派遣合同制技术人员招聘(公共基础知识)综合能力测试题附答案解析
- 2026节点营销全年年度活动规划案
- 招标投标培训课件
- 2025年10月自考13124英语专试题及答案
- 空域管理及规则
- 湖南省生地会考真题卷岳阳市2025年及答案
评论
0/150
提交评论