LabVIEW论坛
直播中

汪刚刚

11年用户 3155经验值
擅长:电源/新能源 测量仪表 嵌入式技术 连接器 EMC/EMI设计 EDA/IC设计 接口/总线/驱动 控制/MCU RF/无线
私信 关注
[文章]

Actor Framework中的定时结构 (LabVIEW中的定时结构详解----终)

本帖最后由 一只耳朵怪 于 2018-6-26 08:54 编辑

        Actor Framework中的定时结构  (labview中的定时结构详解----终)思考了很久怎么样将这个帖子完结,想到了两个方案实现Actor Framework中的定时结构
1.使用上一贴中定时类,做定时结构,这个方法是仿写Unclad的实例写的,再实现一次也没撒新意。
2.利用 Actor Framework自带的定时方法来写的(有点挑战)
       一、了解一下Actor Framework定时类函数,以下设计主要通过该控件功能实现AF定时类
这个定时函数重点输入输出端口介绍
1.定时副本 即循环次数  =0无限循环 ≥1  按照次数循环
2.消息待入列  所发消息的队列发送
3.消息  需要循环发送的消息
4.等待时间  每次消息执行时间
5.传送通知器  最主要的功能是销毁当前循环消息
  二、类设计
由于VISIO类图软件版本有问题没法画,下面只能简要介绍一下类设计定时类timer Manager
数据:

Timer Info array  保存定时启动后的定时任务名称和控制消息数组
方法:
Add Time Task()增加定时任务
Stop a Timer Task()删除指定名称的定时任务


Timer LOOP Actor(接受定时新的定时任务或停止某个定时任务消息)
数据:
Timer Manager.lvclass
add Timer Event:Event
Delete Timer Event:Event
方法:
Actor Core() 重写父类
Updata ADD Timer()  接受增加定时
Updata Delete Timer()接受停止定时
消息
Send Updata ADD Timer()  接受增加定时消息
Send Updata Delete Timer()接受停止定时消息


测试Test Actor

数据:
ADD NO Event
Subm NO Event
方法:
Updata ADD NO()
Updata Subm NO()
Actor Core() 重写父类
实现功能如下
手动发消息 自+1 -1 一次
定时发消息 自+1-1 N次 或无限次发送消息
删除定时任务
具体实现具体实现请自行翻阅代码
  • QQ图片20180626003802.png
  • QQ图片20180626003329.jpg
  • www.gif

回帖(35)

王栋春

2018-6-26 12:57:30
了解一下
举报

muz

2018-6-26 14:53:32
下下来看看                  
举报

H

2018-6-26 16:15:11
了解一下.............................
1 举报

汪刚刚

2018-6-27 21:08:22
经过高手指点,将上面设计冗余部分简化:
功能不变,设计如下
1.取消Timer LOOP Actor
2.将Timer Manager 改成Timer Manager Actor
3.增加一个类Timer Parameter 保存Timer Task的参数
这样设计思路更加清晰,结构也简单了很多,例子是2015的
如果有不足之处,欢迎大家来怼
1 举报
  • Test

更多回帖

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