CSM框架抛砖引玉

一、简介

可通讯状态机框架CSM框架全称Communicable State Machine,是基于JKI状态机而开发的框架,作者是个中国人,下面贴出github的地址:

https://github.com/NEVSTOP-LAB/Communicable-State-Machine

开发该框架的大佬是个中国人,所以在github中的一些文档也是中文的(但好像还是英文的写的更全),相对比较容易学习。JKI状态机也是个人在开发过程中很喜欢的一套模板,CSM框架基于JKI状态机,添加了多个状态机之间通信的功能(某些地方有点像AMC框架,个人感觉比网上一些大佬提出的AMC+JKI状态机的方式更好更完善),相比于JKI SMO而言,CSM更易于上手。

通过VI Package Manager安装该框架。

搜索csm,全安装。其实主要部分是Communication State Machine,但我个人习惯把所有的都装了。

二、CSM框架简单讲解

2.1 官方例子和帮助

下载安装完这个工具包后,有一些作者提供的例子,在如下图的位置,双击点开即可。

安装完这个工具包后还有一些小的框架模板,也可以拿来看下。

最好的帮助文档是github上作者自己写的文档

https://github.com/NEVSTOP-LAB/Communicable-State-Machine/blob/main/README(CN).md

2.2 例子讲解

这部分讲解我准备自己写一个例子来讲(Labview 2020),代码中我做了很多注释(当然这个例子本身也比较简单),所以希望大家能多看代码,我这篇文章会讲的比较简单。

代码分为main、订阅源和订阅者,三者的关系也很简单,main用来启动订阅源和订阅者,并作为一个命令交互的终端。订阅源负责产生数据,订阅者是一个UI用来订阅订阅源的数据,并作一个展示。

百度网盘链接:https://pan.baidu.com/s/1WWslgrNS3G7mPf6rdM8DZQ?pwd=9kji 提取码:9kji

代码效果图如下:

总的来说CSM框架没啥东西,很多和JKI状态机都是重复的,主要讲一下多个状态机之间的交互方式。

  1. 在state后加一些命令字符串

    如“-> 目标状态机名字”

    官方文档给出了更多的命令,我没有一一尝试,读者可以根据自己的兴趣爱好去尝试这些命令的效果。
  2. 订阅和广播的方式

    订阅:


    广播:

三、小结

我这篇文章其实很早就开始写了,但是写文章真的是一件很累人的事情。我本人有点强迫症,一旦写的细了,很多细节就要去细究是否正确,这个真的很折磨人,所以一直拖到现在。后来我稍微修改了一下思路,把很多东西像笔记一样写到代码里,也不去纠结每个模块的写法后,突然觉得海阔天空,刷刷就写完了。说出来你们可能不信,目前你们看到的这篇文章写到现在也就花了半小时。

除了我上面文章里写的东西,CSM还提供了很多东西,比如异步或同步的调用模块:

以及一些JKI的if结构中的分支设定,有很多细节。我觉得这些对于一个初学Labview或者说工作了一段时间想看看高手是怎么较为规范的去使用JKI的人,都是一份很宝贵的学习资料。

具体这个框架,是否值得深入地去学习和实际使用,我持保留意见,和三多聊了一下他觉得该框架不如DQMH,我自己是更注重该框架的构建逻辑和作者所写范例的一些思想。觉得该框架有趣的朋友,可以在一些小的项目或者自己假想一些小项目,尝试着使用一下这个框架。

感谢您看完该篇文章,如果有什么问题可以后台留言,我统计后看看需不需要再写(水)一篇较为详细的文章集中解答一下大家的问题。

  • 48
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 16
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值