LabVIEW论坛
直播中

荣琪

9年用户 689经验值
擅长:可编程逻辑 测量仪表 嵌入式技术
私信 关注
[文章]

荣小菜补钙记第39期:LabVIEW菜单没图标、字太小还不好看怎么办?那就用簇做一个吧!(SP1)

荣小菜补钙记第39期:labview菜单没图标、字太小还不好看怎么办?
那就用簇做一个吧!(SP1升级版)
同步更新于 WeChat:荣小菜在补钙
大家好,我是荣小菜,也可以叫我Richie,本期对Cluster Menu做一个升级,增加等待前面板打开功能,并增强其可重入能力,为将来融入AF架构打好基础。
另外,基于LabVIEW Actor Framework的连续测量和记录系统系列还在酝酿,大的框架已经完成了,在本期最后给大家做一个简单展示。其实这几期讲的内容也可以算是其中的一小部分。
1.     简介
上一期我们讲到了Cluster Menu在使用中的一些缺陷并给出一些解决思路,其实还有一些缺陷没有讲到。
首先,就是它不具备完整的可重入能力。具体表现为当同时调用多个菜单时,各个菜单在用户单击后的返回值互相覆盖,导致功能失效。
此外,当采用子面板形式时,Cluster Menu可能会因为其调用Vi的前面板延迟插入产生注册事件错误,最终导致Menu Core运行错误。
2.     升级1-可重入能力
完善其可重入能力主要更改的地方有两个。
第一个是修改Run.vi中的打开VI引用参数,如下图所示,将其从0x80修改为0xC0,该参数相当于采用0x40和0x80两参数对应的功能,具体可查看帮助文档。
RUN修改.JPG
                              
此外,另一处需要修改的地方就是Select MenuItem Queue,本来我们采用的是字符串队列的方式,现在将其改为数值引用方式。因为原先的方式会导致多个Cluster Menu共用同一个队列,数据冲突。
如下图所示,我们分别修改了Init.vi,Clear.vi和Menu Core.vi。
Init修改.JPG
Init.vi修改
Clear修改.JPG
Clear.vi修改
Core修改.JPG
MenuCore.vi修改
当然,Menu Core.vi还有其它Property中含有的Vi也要改成可重入的。
注意,改动后Read MenuItem就没有超时了,Set Read timeout可以不用了。
3.     升级2-等待前面板打开功能
在QControl中为了具备更好的兼容性,使用了多用户事件来实现该功能。我这里的实现方式类似,不过只使用了Stop用户事件。
代码如下图所示,在超时事件中不乱尝试注册事件直到无错误注册成功(相当于等待前面板打开),同时,Stop用户事件也能终止轮询(我们可以随时调用Clear.vi停止),当该事件触发时,将向外传递一个错误作为警示。
Wait FP 超时.JPG
WaitFP Open.vi 超时
Wait FP 停止用户事件.JPG
WaitFP Open.vi Stop
最后我们修改Menu Core.vi,将Wait FP Open加入,代码如下。
Core等待前面板修改.JPG
MenuCore.vi 加入Wait FP功能
4.     总结
本期我们讲解了Cluster  Menu SP1升级版,期望对大家有所帮助哈。
预告一下我们” 基于LabVIEWActor Framework的连续测量和记录系统系列”的TOPLEVEL,其中涉及的东西比较多,后面会慢慢讲解。
111.gif Project Tree.JPG
欢迎大家多多分享,共同进步^_^

回帖(13)

荣琪

2021-7-8 19:48:27
举报

yk8356993

2021-7-9 15:09:06
666666
举报

杨申

2021-7-14 17:32:41
需要你这样优质帖,谢谢分享!学习使人进步,分享让人快乐!
举报

杨申

2021-7-14 17:33:14
需要你这样优质帖,谢谢分享!学习使人进步,分享让人快乐
举报

更多回帖

发帖
×
20
完善资料,
赚取积分