荣小菜补钙记第35期:基于labview Actor Framework的连续测量和记录系统3 同步更新于 WeChat:荣小菜在补钙 大家好,我是荣小菜,也可以叫我Richie,本期继续上一期,着重讲解嵌套操作者的消息上传方式。 1. 简介 上一期我们介绍了创建调用者抽象消息的优缺点,并在总结部分说明了缺点的规避方法。但是说的比较笼统,本期额外用一个Demo来进行专门演示说明。下面先看类层次结构。
可以看到,继承关系为: Actor <-Top Actor,Parent Actor,Actor3 Parent Actor <- Actor1,Actor2 2. 利用Actor继承的方式设计传递 让多个需要上传消息的Actor继承同一个Top Actor。在本Demo中我们使用Actor有Parent Actor,Actor1和Actor2,它们的继承关系如下Actor 很明确,Parent Actor发送抽象消息,触发执行Top Actor中的“Updata STR.vi”,这样就将消息传递给上级了Top Actor了。而由于Actor1,Actor2继承了Top Actor的数据和方法,我们只需在调用前将Top Actor的“Updata STR消息.lvclass”写入即可。
需要注意的是,本Demo中Top Actor是没有重写Actor Core的,这是为了减少调用关系,方便理解。若是有需要,Top Actor可以重写Actor Core以复用公共代码,但需要谨慎处理。 3. 直接使用抽象消息传递 熟练掌握上述方法后,我们其实可以发现最关键的部分其实是Top Actor和Parent Actor中的存在继承关系的消息类。其实,只要将正确的抽象消息类传递,即可实现数据的上传。 因此,我们建立了Actor3,它的继承关系为Actor <- Actor3 ,可见它和其它Actor都没啥关系。在本Demo中,我们让Actor3的类私有数据包含了抽象消息“Actor Run.lvclass”并建立了相关读写方法。 ‘
这样,和调用Actor1,2类似,我们只要在调用Actor3时将Top Actor中的“UpdateSTR消息.lvclass”写入即可,只不过写入方法是属于Actor3本身的。
4. 总结 最后,我们在Top Actor中调用Actor1,2,3,并显示一下被调用方传输的消息如下:
程序运行后会依次打开几个Actor界面并在几秒后自动关闭,全部打开后可在字符串控件中查看它们上传的数据据。可见,采用不同的方式已经成功上传了数据。 不论哪种方式,核心就是Msg类,建立并传递正确的Msg类,就能在低耦合的情况下实现嵌套Actor数据向调用方Actor上传。
Actor Framework,期望各位大神分享更多实用资料^_^
|