概要
该系列学习笔记预计一共是15篇专栏文章,将同步记录自己在学习与梳理汤姆.麦奎兰(Tom McQuillan)制作的操作者框架(Actor Framework)系列教学讲解视频过程中的个人理解与心得,并借此相应地做好每个视频所涉及相关知识点的资料归纳与汇总工作,便于自己今后回顾及其他工程师们借鉴学习,也由衷地希望社区能够成为大家在学习与应用操作者框架、乃至LabVIEW面向对象编程技术的国内讨论社区。
本篇是学习笔记的准备篇。
目录
- 操作者框架背景及定义
- 操作者框架系列视频简介
- 视频作者介绍
- 学习方式及开发练习环境要求
- 范例代码及主要资料支持
- 学习笔记模板
- 笔记编写方式及计划安排
- 总结
1.操作者框架背景、历史及定义
NI公司应用面向对象技术在原先的队列驱动状态机(QDSM)基础上,迭代开发出了操作者框架(Actor Framework),目前该框架是在LabVIEW环境下创建大型,高度并行化,可扩展的应用系统的不二选择!
操作者框架(Actor Framework)首次发布于2010年NI Week,核心开发者是来自于NI公司研发团队的Stephen Loftus-Mercer 和Allen Smith ,该框架推出的初衷是为了简化在单个应用程序中创建多个独立运行(多线程)且需要相互通信VIs,从而最终让创建复杂并发状态机(state machine)交互的场景更为便捷。
2012年8月,操作者框架(AF)正式随LabVIEW 2012版本推出项目内建模板和消息脚本制作工具。从2012年至2015年期间,该框架不断的迭代更新,逐渐成为LabVIEW中最为重要的并发开发框架,并在NI公司内部以及测控领域都得到广泛的应用。
根据NI官方操作者框架技术白皮书对该框架的定义为:
操作者框架(Actor Framework)是一个软件类库,用以支持编写有多个VI独立运行且相互间可通信的应用程序,在该类型应用程序中,每个VI即代表着一些操作者(Actors)执行着一组独立的系统任务,操作者本身维持着自己的内部状态,并传递消息给其它的操作者,在LabVIEW编程环境中已经有了一些创建此类架构程序的技术存在,而操作者框架聚则焦于容易学习(相对于其它可能强大的工具而言),同时能够降低死锁和竞态条件,并拥有最大限度代码复用的优点。
操作者框架技术白皮书
2.操作者框架系列视频简介
系列教学讲解视频的原网址为YouTube上的汤姆.麦奎兰(Tom McQuillan)的LabVIEW Adventure视频频道:https://www.youtube.com/tomslabviewadventure ;
具备科学上网条件的朋友可以自行前去学习交流,有疑问还可以留言直接与汤姆.麦奎兰沟通。
为了便于大家在国内学习,我的同事B站的UP主——雾丨以类聚与汤姆.麦奎兰电子邮件联系后,得到了视频作者的同意授权后转载到国内最好、最大的自由学习网站——B站上,具体的视频地址为:
1. Recap of Modular Applications in LabVIEW_哔哩哔哩 (゜-゜)つロ 干杯~-bilibiliwww.bilibili.com
全部系列视频一共有13集,总时长 03:20:52 ,即将近201分钟。
1. Recap of Modular Applications in LabVIEW 时长:08:55 ;
2. Deriving the Actor Core in Actor Framework (The Command Pattern) 时长:10:49;
3. Creating Your First Actor - Hello World! 时长:10:40;
4. User Interface Basics with Actor Core Override 时长:15:26;
5. User Events in Actor Framework (+ Chat Window Project Intro) 时长:16:46;
6. Actor System Design and Messaging 时长:18:39;
7. How Actor Systems Stop and What Happens When an Error Occurs 时长:03:14;
8. User Interfaces in Actor Framework and User Event Scripting 时长:08:17;
9. Abstract Messages in LabVIEW Actor Framework 时长:13:53;
10. Top Five Actor Framework Overrides 时长:12:22;
11. Using Subpanels with the LabVIEW Actor Framework 时长:16:39;
12. LabVIEW Maps (feat. Actor Framework) 时长:11:59;
13. Trying out Actor Framework in LabVIEW NXG 4.0... 时长:53:04;
另外,作者自己本身其实并没有提供视频字幕,但Youtube的英语自动听译字幕的准确性颇高,我们也已将该方式产生的英文字幕同步上传到B站,可以非常好的辅助大家进行学习。
英文字幕显示效果
大家在看视频的时候不要忘记点喜欢点赞、投币与收藏哟,感谢一下UP主:雾丨以类聚的辛勤搬运。
为UP主鼓励加油
该套系列视频具备以下优点:
A.系统性
视频的顺序逻辑安排,以循序渐进的方式提供了优良的系统性,从模块化需求背景问题挑战开始引入操作者框架,详细地演示了框架的迭代演化过程,并从始至终的使用一个完整的聊天室(Chat Room)的范例来演示操作者框架的诸多概念和编程知识点。
B.全面性
概念与知识涵盖范围广的全面性:包含模块化、QMH与AF的演化、树状通信结构、用户界面、抽象消息、命令与MVC设计模式;
开发版本覆盖的全面性:即使用了LabVIEW 2019版本(主要开发版本),也实验了LabVIEW NXG 4.0中的操作者框架的开发功能验证。
C.专业性
视频作者本身经历与能力的专业性:视频作者——汤姆.麦奎兰(Tom McQuillan)有着电子工程的高等教育专业背景,多年LabVIEW工作实战开发经验和会议交流的技术演讲者,以及在NI工作两年的多年培训经验以及多个官方认证能力资格,使其对起源于NI官方的操作者框架具有良好的专业概念理解。
视频制作的匠心专业性:作者汤姆.麦奎兰在此系列视频中精心准备了PPT演示(含动画演示),
编程关键点文字说明提示,
配套的范例代码,并真人实镜实操的详尽演示代码开发过程,有重复或与主题关联度不高的镜头会被剪辑掉或者快进节约时间,
因此整套视频(除去第13集为实验练习及NXG版本的功能漫游验证,时间与节奏较为冗长外)短小精悍不拖沓,节奏快且信息量大!
视频作者汤姆.麦奎兰(Tom McQuillan)现为Scientifica公司的软件开发人员,现致力于神经科学研究领域的软件改进,工作地点为英国布赖顿市。
他独立运营维护有LabVIEW YouTube频道,并以认证专业讲师的身份定期教授诸多LabVIEW,TestStand,VeriStand和DIAdem的培训课程。
在为Scientifica公司工作之前,其在National Instruments工作了两年,并为数百种独特的应用程序提供了技术支持,以解决业界的工程难题,并取得了LabVIEW架构师认证。
在National Instruments工作之前,汤姆还曾与两个NI的联盟合作伙伴一起工作,主要工作内容为:开发定制软件并设计配套自动化测试设备。
认证履历:认证LabVIEW架构师,认证嵌入式系统开发人员,认证TestStand架构师,认证专业讲师
教育学历:The University of Huddersfield 电子工程专业硕士学位
https://www.linkedin.com/in/thomasmcquillan/www.linkedin.com
4.视频知识点的讲解方式及开发练习环境要求
在如何学习并应用该框架开发程序问题上,国外的LabVIEW大牛圈界们有两种截然不同的方式,一种是掌握其核心理念,能够模仿使用运转起来即可,重点关注自己的实际应用领域场景即可,考虑到Actor Framework的框架内部的源代码较为复杂和概念容易混淆,不建议初学者深究它的内部的工作原理与源代码细节。另外一方则建议在通读过源码后才能真正地掌握Actor Framework的精髓,也才能正确地、合理地用好该框架,否则物极必反,得不偿失。
视频作者汤姆.麦奎兰(Tom McQuillan)在该系列教学视频中很好的结合了上述两者的优点,既有底层源码原理与概念的清晰讲解,又有工程实例样码实际练习应用,特别是其积累的丰富培训经验能够知道如何准确地把知识难点讲透彻,使得视频观众有实质收获。
视频代码开发练习环境为LabVIEW 2009 和LabVIEW NXG 4.0,其中LabVIEW 2009为主力开发版本,视频2到12集均是使用该版本开发与演示,特别是第12集用通过多个嵌套操作者的管理功能演示Map数据结构,该数据结构是LabVIEW 2019版本新增加的功能特点。NXG 4.0 为实验面向功能的版本,如果精力有限、可暂且不用安装该版本,不会影响系列课程的学习。
5.范例代码及主要资料支持
视频配套的范例代码作者全部上传到了编程基友乐园Github上的个人项目存储库中,方便大家下载练习。
https://github.com/TomsLabVIEWAdventuregithub.com
点击页面按钮“Clone or download”中的“Download ZIP”即可方便快捷的下载打包源代码。
配套的资料网站:
(1).学习操作者框架最好的起点
https://forums.ni.com/t5/Actor-Framework-Documents/READ-THIS-FIRST-to-get-started-with-Actor-Framework/ta-p/3493762?profile.language=zh-CNforums.ni.com
(2).学习操作者框架的根据地和大本营——NI操作者框架的讨论社区
https://forums.ni.com/t5/Actor-Framework/ct-p/7001?profile.language=zh-CNforums.ni.com
(3).NI官方白皮书
李时珍:操作者框架(Actor Framework)技术白皮书(翻译)zhuanlan.zhihu.com
(4).我的两篇专栏文章
李时珍:LabVIEW面向对象编程_初窥门径(8):操作者框架(Actor Framework)之演化zhuanlan.zhihu.com
李时珍:LabVIEW面向对象编程_初窥门径(9):操作者框架Actor Framework之开发zhuanlan.zhihu.com
6.学习笔记模板
每篇学习笔记将对应一集视频,其模板格式如下:
A.知识背景介绍,也就是学习该视频应该具备的基本概念、知识点和编程技能;
B.视频内容介绍,分主要逻辑段落简要介绍主要内容;
C.代码练习中的注意事项;
D.我个人认知与理解;
E.官方培训概念与知识点对比
F.其他相关辅助配套资料。
7.笔记编写方式及计划安排
关于编写方式我将采用边学边记录,并长期在线保持持续更新。
计划安排预计从2020年02月11日开始连载,直至2020年03月18日,希望能够持之以恒,向汤姆.麦奎兰(Tom McQuillan)讲师学习,高标准、严要求地坚持做完本系列的视频学习笔记。
编写计划
8.总结,一路有你!
该套精品视频是目前料最足、成系统、有体系的最佳操作者框架(Actor Framework)学习视频,学到就是赚到!要知道参加NI官方的三天操作者框架培训课程近一万七千元(当然如果所在单位不差钱的话并愿意为员工技能培训投入的话,我还是十分推崇你去参加学习的,应为该课程是操作者框架开发者之一的Allen C.Smith精心编写的教程,该课程大纲如下链接),
Training Course Details: Actor-Oriented Design in LabVIEWwww.ni.com
而视频资料基本涵盖了官方培训的85%的概念与知识点,所以不必东奔西走,只需埋头刻苦同步学习,并完成配套代码的认真研读与模仿练习,必有成效。如果你是个完美主义者,还想免费获取剩下的15%的知识点,其实只要认真一些,NI公司内部优秀的工程师们其实在操作者讨论社区中也都发布出来了,只不过是零散的不像教材那么系统而已。
一个人走(学习或做事)更快一些,一群人走(学习或做事)走的会更远!现在就让我们一起学猫叫,哈哈,不对一起学AF!
Photo by Pixabay from Pexels
让我们开始这段学习旅程吧!
希望我们完成该段旅程后,大家已经战胜了新冠肺炎!加油!
Photo by Pixabay from Pexels
閱讀更多 labats 的文章