StateFlow用法汇总篇

一、状态

1、状态动作组成

图1-1 典型状态动作组成

2、常用状态动作列表

图1-2 状态动作类型

3、特殊案例说明

①,广播事件动作

以单次广播事件动作为例, 关键词为 on event_name, 其中 event_name 表示某一广播事件名, 事件名应是唯一的。 如图 1-3所示, 系统处于状态 A, 当检测到事件 stop, 立即执行 c()

图1-3 广播时间动作

②,bind 动作

关键词为 bind。 如图1-4所示, 变量 y、 事件 start 被绑定在状态 A, 这表示仅有 A 状态及其子状态有权限修改变量 y 并广播事件 start, 其他状态 B 能够读取变量 y、 监听到事件 start, 但无权修改变量 y、 广播事件 start。

图1-4 Bind 动作案例

若运行该状态图, 系统提示变量 y 仅能由状态 A 及其内部的状态迁移修改, 事件 start 仅能在状态 A,会出现如图1-5所示错误提示。

 图 1-5 错误提示

与其他动作不同, bind 动作不需要判断当前状态是否已激活, 也就是说它在整个 Stateflow 状态图范围内都是有效的, 因此不同状态不允许约束同一个变量与事件。如图 1-6所示, 状态 A、 B 同时约束了变量 y, 系统提示这是不允许的。

图1-6 无效Bind动作

图1-7 错误提示

 二、迁移

1、迁移一般格式:event[condition]

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值