完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
现在在做一个子面板项目,就是上面一排按钮,下面一个子面板框,每一个按钮对应一个VI,点击按钮可以切换VI。
现在的问题是,程序主体肯定是运行在外面的,要如何用外面的程序控制子面板VI。 比如我要切换VI,我需要把当前的VI停止掉,但是如果使用“中止VI”这类强制命令,容易造成数据出错。最好的方法是触发当前VI的正常停止功能。 我的子面板VI都是用“消息队列”的框架,停止VI的方法是向队列中发送一个“exit”消息,请问这个操作可以在主VI中用程序的方式,控制子面板VI么。如果是写入一个控件值,倒是有相关的“调用节点”方式,不过如果要向队列中发送一个消息,还不知道如何处理。 子面板类的项目,请问有没有大神知道哪里有模板?好像这一块还有个预初始化的问题,否则子面板VI切换很卡,这一块还不知道去哪里查找相关知识,请大神不吝赐教! |
|
相关推荐
28个回答
|
|
|
我觉得最方便的方法是把子面板启动后把的队列引用保存在全局变量里面,这样就可以从外部发消息给子面板了。反应慢可能是你子面板vi比较大,在主程序启动时使用打开vi引用试一下吧
|
|
|
|
|
|
我感觉可以用case结构,首先通过条件分支语句,发送exit停止Vi,接着仍然用case语句调用具体Vi,这里面的主程序和之程序的切换主要在于分支条件的设立。可以尝试取一个输出值,然后加上一个数,作为条件等。
|
|
|
|
|
|
本帖最后由 羊驼啊 于 2017-3-18 13:00 编辑
ShuiMoLise 发表于 2017-3-18 12:23 真的假的,队列引用都可以作为全局变量啊。。。我试试看。 目前我已经想到一个解决方案了,在每个子面板VI中,增加一个while,一旦检测某个控件值置高,则发送exit信息。修改控件值还是方便地,无论是用“调用节点”还是全局变量。 补充,确实可以把队列引用放到全局变量里,实在是强大。 |
|
|
|
|
张_大白 发表于 2017-3-18 12:34 唔,不是很明白你的意思,不过还是感谢回复
|
|
|
|
|
|
只用全局变量和局部变量就搞定,哪有那么麻烦。
|
|
|
|
|
|
队列是可以在不同vi之间传递的,既然只用发送一个“exit”消息就可以关闭子面板,可以在点击另一个vi的时候发送“exit”消息给当前vi的队列即可。附上自己由NI范例改写的两个vi,希望对你有帮助!
|
|
|
|
|
宁静致远。。 发表于 2017-3-24 16:10 谢谢谢谢谢谢,非常感谢 |
|
|
|
|
宁静致远。。 发表于 2017-3-24 16:10 666666666666666666666666666 |
|
|
|
|
|
感谢分享,,,,,,,,,,,
|
|
|
|
|
|
|
|
|
请参考11楼链接
|
|
|
|
|
|
|
|
|
|
|
宁静致远。。 发表于 2017-3-24 16:10 谢谢大神 无私分享 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
这就是完全用子面板做的啊,每个页面都是一个独立的线程,可以通过同一个子面板或不同的子面板加载显示,不显示的就在后台运行,每个面板之间都可以传递数据。 |
|
|
4 条评论
|
|
sszx2007 发表于 2018-1-27 09:17 哦哦哦,好的好的,谢谢谢谢~ |
|
|
|
|
|
不知道
|
|
|
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
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:28 , Processed in 1.161875 second(s), Total 101, Slave 87 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
4356