LabVIEW论坛
直播中

荣琪

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

荣小菜补钙记第40期:基于LabVIEW Actor Framework的连续测量和记录系统4

本帖最后由 荣琪 于 2021-7-17 12:07 编辑

荣小菜补钙记第40期:基于labview Actor Framework的连续测量和记录系统4
同步更新于 WeChat:荣小菜在补钙
欢迎关注 内容更丰富
大家好,我是荣小菜,也可以叫我Richie,本期终于回到系列的讲解啦,建议阅读本期前先回顾一下前面的33~35期。
1.     简介
系统的Top Level设计如下,和第28期(非AF无Class,推荐新人学习)类似,简单的插件式架构。增加了项目树,各“Function”启动后将记录在“项目树”中,可在项目树中切换后台运行的Function。Function可重复调用,对于想要同时测试多个同型产品的突发需求,只需要多打开几次Function即可。
                               TOP Gif.gif
TopLevel效果图
UI设计方法和第28期差别不大,都是使用分隔栏进行设计,只是在对话框和控件样式上做了一些优化。
2.     Top Level核心1-启动各Function
本系统的核心之一是如何根据按下的控件来启动对应的NActor,这里的逻辑是按下按钮,根据按钮的标题String进行映射,得到对应自定义枚举类型Vi Name(该类型作为条件较为方便),之后根据Vi Name启动对应NActor。
按下Launch Cluster.JPG
单击对应Function按钮
Launch NAcot.JPG
启动NActor
需要注意的是,这里我们将一个用户事件Msg写入将要启动的NActor中,该Msg主要是方便NActor通知Top Level本身的启停状态。除了用户事件,使用AF架构的Message也是可以的,这里为了以后可能兼容非OOP架构。
3.     Top Level核心2-各Function的Msg处理
当NActor启动/退出后,会产生Msg用户事件,将相应的Msg数据上传,我们在Top Level中对其进行处理,Msg Hadle Vi如下图所示,当NActor启动后发送已启动Msg,MsgHandle将对应的Name、ID、VI Ref和 NActor Enqueuer写入,并更新项目树和子面板。
Msg Handle.JPG
MsgHandle 已启动
同样的,当NActor退出时,我们将其对应的Name、ID、VI Ref和NActor Enqueuer删除并再次更新项目树和前面板。注意,本程序中IDNum是唯一标识,因此我这里我们使用ID Num获得删除索引。
Msg Handle2.JPG
MsgHandle 已退出
4.     项目树更新
在Msg Hadle中我们使用该函数更新项目树,程序很简单,就是清空项目树后按名称重新添加项。通过Glyph Index我们可以选择各种项目符号,我这里默认设为5。
项目树更新.JPG
项目树更新
5.     子面板更新
最后介绍一下子面板更新Vi,由于将哪个Vi刷新至子面板中是根据用户在项目树中的选择决定的,因此这里我们通过项目树的值来索引Vi Ref。注意,由第3,4节可知,项目树的各项由名称决定,而名称是由NActor Name(枚举)和ID Num决定的,NActor Name(枚举)和ID Num又与Vi Ref都是按顺序写入或删除。因此,项目树Value所在位置就是该NActor对应的Vi Ref。
子面板更新.JPG
子面板更新
6.     总结
本期基本介绍完了Top Level里的TopActor的各项功能。宏观上讲,Top Actor只负责调用各NActor(或者说各功能块)并对其启停Msg进行处理,不具备任何具体功能。具体什么功能,如连续测量和记录,需要在NActor里实现,这保证了Top Actor是一个独立的、可复用的大框架。
个人感觉,对于中小规模的程序,AF实用价值不高,容易过度设计 (AF写个小游戏还是不错滴:https://bbs.elecfans.com/jishu_1943690_1_1.html  LabVIEW Actor Framework学习之八皇后) 。而对于规模达到大型的程序,如果仅仅是一个人或者是小团队来开发,AF的强大之处依旧施展不开。可能只有到了超大型规模,需要大团队协同编程才能更好的发挥出AF的优势。
庆祝一下,"荣小菜在补钙"公众号的关注人数终于要满100啦。
Actor Framework,期望各位大神分享更多实用资料^_^
本期源代码:
TOP Level设计(AF)2016.rar (2 MB)
(下载次数: 139, 2021-7-17 12:03 上传)

回帖(12)

LVGT

2021-7-17 16:51:48
感谢,如果再不学,有点对不住你的辛苦
举报

赵磊

2021-7-19 15:32:44
感谢,楼主分享,正需要,谢谢!
举报

whl33539790

2021-7-22 11:06:32
谢谢楼主分享!
举报

efans_776edd

2021-7-26 11:08:52
支持支持 继续输出
举报

更多回帖

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