完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>

|
相关课程推荐: 《8周LabVIEW视觉项目编程实战特训营》 写在前面:之所以选择这个软件作为例子分享给大家,最主要的目的是想通过这个例子让刚刚入门labview的程序员接触程序架构的概念,其所利用的队列状态机,相对来说较简单,是复杂架构的基础,通过这类结构,可以让大家窥探到复杂代码编写的思路,希望大家在阅读代码之后能有所体会。 在《【实例】细说动态注册事件实例(附程序框图+代码)》这篇文章的末尾,我贴出了几张软件中实际应用动态注册事件的图片,该软件是今年虚拟仪器大赛软件组进入复审作品,今天在这里我将详细的解读该作品的编程思路以及一些编写背后的故事。 虚拟仪器大赛的赛制时间比较长,不过2014年我并没有花太多时间投入到这项比赛中(因为其他比赛的原因),接手该软件的时间在2015年1月中旬(放松了2个月后),距离提交代码2个星期左右。从这个角度说,没有进入决赛也属于正常,毕竟投入的时间太少,创意自然也不足。
代码结构 打开项目文件SmartCampus.lvproj,启动项目管理器,如下图所示。其中前三个文件夹:Database、Map、Video分别用于存储软件的附件;StartPage、DigitalMap、Inquiry、Workbench、Surround、Setting(未启用)是软件的6个模块;Menu用于存储软件菜单文件;Main函数为程序入口。
程序入口 双击Main.vi进入Main函数。Front panel由功能按钮、滚动条、状态栏、时间显示栏以及subpanel构成,利用splitter将界面分为不同的pane,以适应不同屏幕的分辨率;由于Main函数功能较少,没有设计复杂的结构,只是用了简单的单线程队列状态机,来实现各个模块的调用。需要注意的是,程序需要在每个状态后添加Idle状态,使程序重新回到事件检测状态,否则程序将无法运行;也可在Dequeue处添加超时,并设Idle为default,但是此时错误处理需要注意,大家可自己根据情况设计不同的结构。 除了结构,main函数需要额外说明的是文字滚动条的实现。此功能主要是利用了移位寄存器来改变字符串的位置,来实现文字的滚动。需要注意的有两点:[img=352,175][/img] [img=461,335][/img] 1. 1个汉字占2个字符,因此移动是2个字符; 2. 字符串显示控件需要设置limit to single line,否则可能出现混乱。
Start page是程序运行后的起始界面。其实现的功能相对简单,同样利用了单线程的队列状态机。首先调用.net控件播放MP4短片,同时在右侧的文字显示区域显示介绍性文字。需要注意的是:文字显示控件上面用了一块透明的装饰阻挡了鼠标对字符串显示控件的操作,这样既没有选中文字的效果,同时垂直滚动条依旧可用;MP4播放器做了同样的处理,挡住了操作按钮。
|
|
|
相关推荐
|
|
|
非常很感谢楼主的分享
|
|
|
|
|
|
|
|
|
学习一下!学习一下!
|
|
|
|
|
|
|
|
|
超哥,这是什么版本?14?
|
|
|
|
|
|
|
|
|
谢谢楼主分享!
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
就是滚轮的问题,2012以前的版本是不支持滚轮事件的,所以用2012以前版本的LabVIEW打开,可能无法实现滚轮放大缩小图片的效果。 |
|
|
|
|
|
|
|
211 浏览 0 评论
请教大神,在labview里面对实时扫描资源中的C系列模块NI9234进行配置发生非预期错误
1709 浏览 0 评论
1585 浏览 0 评论
LABVIEW 2023 Q1调用python后一直报错1671
1960 浏览 2 评论
5207 浏览 3 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 18:01 , Processed in 1.171645 second(s), Total 79, Slave 69 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖