LabVIEW操作者框架(Actor Framework)范例集锦之四:官网论坛(上)

这篇具有很好参考价值的文章主要介绍了LabVIEW操作者框架(Actor Framework)范例集锦之四:官网论坛(上)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

2022年10月05日,国庆长假的第五天,假期余额已不多啦!

学习软件框架,特别是学习与掌握难度大、复杂性高,且尚处在不断演进变化的LabVIEW操作者框架(Actor Framework),离不开关键的各类范例的研读、模仿转换和工程实用。

NI官方以及开发者社区,为LabVIEW操作者框架(Actor Framework)这个在LabVIEW图形化开发环境中,开发能力最为强大的多任务并发框架,提供了诸多项目快速模板和多种范例例程。

在这里,我将操作者框架的相关例程做一个统一梳理和汇总,方便各位小伙伴们在学习中按图索骥,从而少走弯路和节约时间。

LabVIEW操作者框架(Actor Framework)的范例按其出处来源分为下面几类:随系统所带的范例例程,NI官网社区论坛中的范例,讲解视频配套的范例,技术交流大会演讲范例附件、VIPM(VI Package Manager)中范例模板。

由于操作者框架的范例非常多,单用一篇文章的篇幅是肯定讲解不完的,因此我先按照上面的范例出处分类写一个系列文章。

本篇就是范例的第四篇,讲解一下官方操作者框架技术讨论论坛中的相关推荐例程。

前面的几篇系列文章内容连接分别为:

LabVIEW操作者框架(Actor Framework)范例集锦之一:系统自带范例

LabVIEW操作者框架(Actor Framework)范例集锦之二:视频范例

LabVIEW操作者框架(Actor Framework)范例集锦之三:网络搜索范例

NI的官方技术讨论论坛中有一个特别的兴趣小组就是关于操作者框架(Actor Framework)的主题讨论,讨论的主题涉及编程思想、概念质疑、源码改进、设计开发、应用问题、脚本工具、会议分享等诸多方面,是真正的名副其实的操作者框架的知识大本营,自然也少不了多国各路大神在其中共享优秀范例。

https://forums.ni.com/t5/Actor-Framework/ct-p/7001

LabVIEW操作者框架(Actor Framework)范例集锦之四:官网论坛(上)

由于操作者框架(Actor Framework)技术论坛中的讨论内容,自身是按照时间序列进行的自然排序,为了更好的进行查找和便于学习,在本文中我简单的按照基础概念、设计模式、网络分布式以及工程实战四个维度进行分类汇总,这样大家学习起来,可以更加的有的放矢,由于篇幅内容过长了,网络论坛的内容分为上下两篇内容,上篇基础概念和设计模式的维度,下篇为网络分布式和工程实战的维度。

1. 基础概念篇

基础概念篇中的范例均是在开发各类多任务并发程序时,所需要掌握的操作者框架的基础知识内容,主要包括操作者系统、层级任务树、多种耦合方式(紧耦合、松耦合和零耦合),以及打包库包libp的发布技术等等内容。

1.1 简单的三操作者范例

LabVIEW操作者框架(Actor Framework)范例集锦之四:官网论坛(上)

这是一个2015年初较为早期的操作者框架的讲解范例,使用简单的一主两从的三操作者完成简单的加法和乘法算法委托,虽然很简单,但是该套范例却有着全网最为详实的的概念讲解和步骤细分操作,我一直自语自己是讲解LabVIEW编程知识最为“啰嗦”的开发者,但是和该套范例配套的PDF讲解内容比起来,那真是小巫见大巫,差了一大截呢!

https://forums.ni.com/t5/Actor-Framework-Documents/Beginner-Tutorial-Very-Simple-3-Actor-System/ta-p/3509538#comment-42903

在该范例配套PDF教程中,作者先从三操作者的范例概念讲起,再详细给出如何一步一步从零开始打造该范例程序。

LabVIEW操作者框架(Actor Framework)范例集锦之四:官网论坛(上)

其中在范例概念中给出了详细的概念设计图,关闭流程图、操作者和消息类的继承类图,以及消息传递的队列示意图图。清晰明了的概念图非常有助于初学者对开发一个简易操作者系统的学习认知。

LabVIEW操作者框架(Actor Framework)范例集锦之四:官网论坛(上)

此外,在该配套PDF教程中,由于操作者框架的自动消息方法制作器还没有发布,采用的还是纯手工打造的消息封装制作,也有助于初学者了解自动消息方法制作器在系统背后所做的具体脚本操作工作。

LabVIEW操作者框架(Actor Framework)范例集锦之四:官网论坛(上)

在该简易范例中,负责进行简单加法和乘法的计算的嵌套操作者,向其调用者主操作者发送消息使用的直接耦合的方式,为了演示零耦合的消息传递方式,即嵌套操作者向主调用操作者发送抽象消息予以解耦,并使得主从操作者都能更好的得到复用,作者又重新编写了一个全新的零耦合版本予以讲解。

https://forums.ni.com/t5/Actor-Framework-Documents/Beginner-Tutorial-Zero-Coupled-Actor-Project/ta-p/3533889

LabVIEW操作者框架(Actor Framework)范例集锦之四:官网论坛(上)

1.2 Hands-On: Actor Framework

这是一个更早期的操作者简易系统的开发练习范例,是从LabVIEW系统自带的“反馈式冷凝器”范例中简化而来的小型范例,最早是作为NI Week 2012年度会议的动手参与练习的单元资料,后来也被作者justAcs(也是操作者框架的两位创始人之一)收录到官方的操作者培训课程当中作为动手的简易练习使用。

LabVIEW操作者框架(Actor Framework)范例集锦之四:官网论坛(上)

该套资料ZIP压缩包中有用以进行开发的脚手架范例起点,以及详细的手把手开发步骤说明PDF文档,也是一套初学者良好的培训资料。

LabVIEW操作者框架(Actor Framework)范例集锦之四:官网论坛(上)

LabVIEW操作者框架(Actor Framework)范例集锦之四:官网论坛(上)

LabVIEW操作者框架(Actor Framework)范例集锦之四:官网论坛(上)

1.3 Actor Framework from basic to PPL plugins 系列例程

这是由Stefan Lemmens开发一套系列的范例,从最基础的三操作者系统开始,在此基础上逐级演化,不断的增加新的知识点内容,从范例命名可以得出其要讲解演示的主要内容。

LabVIEW操作者框架(Actor Framework)范例集锦之四:官网论坛(上)

https://forums.ni.com/t5/Actor-Framework-Documents/Actor-Framework-from-basic-to-PPL-plugins/ta-p/3776945

其中,主要的的知识点有:操作者系统简易组成、同步消息处理范式、嵌套子面板、父类插件松耦合消息、抽象消息、单元测试,以及发布程序的打包库(PPL)等内容。

LabVIEW操作者框架(Actor Framework)范例集锦之四:官网论坛(上)

LabVIEW操作者框架(Actor Framework)范例集锦之四:官网论坛(上)

并且在每个范例文档中都给出了详细的对象组成逻辑图,便于大家上手学习。

LabVIEW操作者框架(Actor Framework)范例集锦之四:官网论坛(上)

另外,由于PPL打包需要特别注意相互依赖关系和打包制作步骤,大神还为此特意另外开了一个相关讲解帖子说明,即PPL制作的相关必要流程PDF的讲解。

https://forums.ni.com/t5/Actor-Framework-Discussions/How-to-build-a-PPL-including-Actor-classes-messages-and-AF-Debug/td-p/3871512

大叔特别推荐说明:

在多数操作者概念讲解中,对于消息耦合和同步回复消息的讲解,这套系列范例是演示的最为清晰的!多数讲解材料中一般讲一下嵌套操作者直接调用主调用操作者消息的紧耦合方式,马上跳到抽象消息的使用,而现在则是直接用接口替代抽象消息的方式。

但是对于松、紧、零三种消息的具体实现中的针对具体、针对操作者类类族和针对抽象消息,以及针对多继承抽象接口的技术概念层级变化,学习者往往难以直接跳跃。而这套范例得以充分的展示,非常有助于学习者理解面向对象编程的核心思想。

2. 设计模式篇

使用操作者框架(Actor Framework)开发的操作者类也是典型的面向对象编程范型中的类,只不过不是普通的被动类,是有着消息循环处理(MHL)的主动类,并且用消息间接调用取代了对象实例方法的直接调用。

因此,既然是面向对象自然也就少不了和绕不开面向对象编程的经典范式——设计模式,在操作者框架论坛中以范例的形式给出了若干操作者系统讲解的设计模式。

2.1 状态模式

状态模式的操作者系统的具体演示,也是社区大神justACS的范例作品,任何学习操作者框架的开发者都绕不开他开发的各种(消息制作、调试)辅助脚本工具和大量的范例例程。

https://forums.ni.com/t5/Actor-Framework-Discussions/Implementing-the-State-Pattern-in-Actor-Framework/td-p/3409456?tstart=0

如果一个操作者系统中某个操作者的状态行为逻辑较为复杂,就可以使用状态模式进行细化分解,将一组逻辑行为由某个状态负责承担,从而更好地体现关注点分离和独立变化的封装特性。

2.2 Event Source Actor Package

通常,默认的操作者组成系统是以自顶向下层级组成面向对象组合关系,层级分解的任务映射到各层调用操作者和其嵌套操作者当中,为此,操作者框架特别提供了嵌套操作者的层级管理自动关停机制。

但是在实际应用过程中,也有不同于层级组合应用的操作者系统,比较典型的就有观察者模式和中介者模式。其中观察者模式对应的操作者系统范例就是事件源操作库包程序(Event Source Actor Package)。

https://forums.ni.com/t5/Actor-Framework-Documents/Event-Source-Actor-Package/ta-p/3538542

LabVIEW操作者框架(Actor Framework)范例集锦之四:官网论坛(上)

2.3 MVA

而另外一个典型的操作者个体多对多通信的方式就是中介者模式,也是有开发者贡献了其模板模式,并命名为MVA框架。

LabVIEW操作者框架(Actor Framework)范例集锦之四:官网论坛(上)

MVA框架代码开源共享到了Bitbucket的仓储代码库中,大家可以自行进行下载。

https://bitbucket.org/composedsystems/mva-framework/src/master/

MVA框架代码的核心开发人员来源自美国的Composed Systems公司,在其官网技术产品展示页中对其框架进行了概要性的说明。

https://www.composed.io/#mva

LabVIEW操作者框架(Actor Framework)范例集锦之四:官网论坛(上)

上述MVA框架的技术说明,描述的比较含糊抽象!而在另外的技术博客博主Samuel Taggart 的技术文章中对其解释和说明的更加清晰一些。

https://blog.sasworkshops.com/oop-design-patterns-in-actor-framework-part-2/

LabVIEW操作者框架(Actor Framework)范例集锦之四:官网论坛(上)

另外,多提一句,Composed Systems公司的主创人员的技术博客“LabVIEW Craft”也是干货满满,强烈推荐,不过需要你会kexue上网。

LabVIEW操作者框架(Actor Framework)范例集锦之四:官网论坛(上)

写完这篇文章,国庆节已经过去大半,LOL2022年总决赛,RNG也顺利出线了,范例集锦的系列文章还预计剩下三篇可以完成:最后三篇内容的题目分别是:

  • 第五篇、官网论坛(下)

  • 第六篇、VIPM范例

  • 第七篇、范例总动员

再次感谢您的支持与鼓励,让我们在学习的道路上持续进步。文章来源地址https://www.toymoban.com/news/detail-447354.html

到了这里,关于LabVIEW操作者框架(Actor Framework)范例集锦之四:官网论坛(上)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Labview-3D虚拟平台】Labview与Solidworks联合仿真(保姆级)(中)在Labview中使用Solidworks的3D模型——3D模型的变换操作

    🎉欢迎来到Labview专栏~Labview-3D虚拟平台(中) ☆* o(≧▽≦)o *☆ 嗨 ~我是 小夏与酒 🍹 ✨ 博客主页: 小夏与酒的博客 🎈该系列 文章专栏: Labview-3D虚拟平台 文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏 📜 欢迎大家关注! ❤️ 上一篇文章介绍了从sol

    2024年02月06日
    浏览(37)
  • 【django2.0之Rest_Framework框架一】rest_framework序列器介绍

    Django RestFramework(简称DRF) 提供了序列化器Serialzier的定义,可以帮助我们简化序列化与反序列化的过程,不仅如此,还提供丰富的类视图、扩展类、视图集来简化视图的编写工作。REST framework还提供了认证、权限、限流、过滤、分页、接口文档等功能支持。 github地址: https://

    2024年02月07日
    浏览(35)
  • IDEA 2022 add framework support(添加框架支持)

    设置setting  -- menu and toolbars-- project view popup menu -- 新建 点击  + 号,添加操作,搜索 add framework support  --apply 正片开始  搜索 add framework support     点击apply后 ok  完成

    2024年02月09日
    浏览(38)
  • 【C#】.Net Framework框架下的Authorize权限类

    2023年,第31周,第3篇文章。给自己一个目标,然后坚持总会有收货,不信你试试! 在C#的.NET Framework中,你可以使用 Authorize 类来处理权限认证。 Authorize 类位于 System.Web.Mvc 命名空间中,它提供了一种简单的方式来限制对控制器中的操作方法的访问。 要在控制器中使用权限认

    2024年02月13日
    浏览(42)
  • idea 没有 add framework support(添加框架支持)选项

    在我的idea中项目右键,发现没有添加项目支持这个选项 解决方案 参考贴吧老哥的分享,成功解决。 原贴地址 1.打开idea文件 2.点击设置 3.点击外观与行为 4.点击菜单与工具栏 5.点击项目视图弹出窗口菜单 6.点击新建(没有点击新建就点击右上角小加号添加不了) 7.点击右上角小

    2024年03月17日
    浏览(41)
  • 解决IDEA没有Add Framework Support添加框架支持

    在 IDEA 2023 版本右键模块,没有添加框架支持,我们可以使用快捷键来搜索该操作: 在 IDEA 中输入 ctrl + N 或者双击 shift 即可进入搜索界面: 如果 IDEA 是中文版搜索 添加框架支持 ,英文版搜索 Add Framework Support 即可。

    2024年04月15日
    浏览(26)
  • 【C#】.Net Framework框架下使用SQLike以及基本概念

    2023年,第32周,第2篇文章。给自己一个目标,然后坚持总会有收货,不信你试试! 在C#的.NET Framework框架下,有很多轻量级数据库选择,比如:SQLike就是其中一款,一起来了解SQLike的简单使用吧。 轻量级数据库是指具有较小的存储需求、资源消耗较低、易于部署和使用的数据

    2024年02月11日
    浏览(64)
  • C# .NET 7.0和Framework 4.8两个框架的区别

    .NET 7.0和Framework 4.8是微软开发的两个不同版本的框架,用于构建和运行应用程序。虽然它们都是用于C#编程语言的,但它们在功能和性能方面有一些区别。 首先,让我们来看一下.NET 7.0的一些新功能和改进。.NET 7.0是.NET的最新版本,它引入了许多新的功能和改进,以提高开发

    2024年02月13日
    浏览(28)
  • LabVIEW调用VisionPro框架代码 连接相机,相机采图,加载相机采图图片以及显示相机图片

    【LabVIEW调用VisionPro框架代码】 【主要包含内容】 【1】加载vpp,运行vpp,获取vpp结果数据; 【2】连接相机,相机采图,加载相机采图图片以及显示相机图片; 【3】读取本地图片加载至vpp,NI 图片转visionpro图片; 【4】图片保存 原图保存 ROI图片保存; 【5】标定流程 12点标

    2024年01月21日
    浏览(81)
  • 《共建开源》系列:Airtest-Framework - UI自动化框架系统

    Airtest- Framework 是 基于 unittest、Flask、Airtest 搭建的 开源的 UI 自动化框架系统 提供 HTTP API 接口,实现自动解析包名并自动执行 相应目录下的 Case 。 目前仅支持单台设备连接。 多个任务会自动排队处理。 Python = 3.8 1、下载项目: 2、进入项目目录: 3、安装依赖项 手机连接到

    2024年01月16日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包