使用in运算符检查状态活动

在具有并行状态分解的Stateflow®图表中,子状态可以同时处于活动状态。如果检查状态活动,则可以在两个平行状态下同步子状态。
例如,此图表有两个平行的状态:Place和Tracker。Tracker中的转换会在适当的位置检查状态活动,并保持子状态同步。原地活动子状态的更改会导致跟踪器中活动子状态相应的更改。

如果R变为“ in Place”中的活动子状态,则Moved_Right变为“in Tracker”中的激活子状态。
如果“L”成为“ in Place”中的活动子状态,则Moved_Left将成为“in Tracker”的激活子状态。
在这里插入图片描述in运算符
要在图表执行过程中检查某个状态在给定的时间步长内是否处于活动状态,请使用in运算符:
in(S)
in运算符采用限定的状态名S并返回布尔输出。如果状态S处于活动状态,in将返回值1。否则,中返回的值为0。
可以在状态操作和源自状态的转换中使用in运算符。

活动状态解析

检查状态活动是一个由两部分组成的过程。首先,Stateflow通过在图表层次结构中执行匹配状态的本地化搜索来解析限定状态名。然后,Stateflow确定匹配的状态是否处于活动状态。
搜索从出现合格状态名称的层次结构级别开始:
对于状态操作,起点是包含该操作的状态。
对于转换标签,起点是转换源的父级。
解析过程在图表层次结构的每个级别上搜索状态的路径。如果某个状态与路径匹配,则该过程会将该状态添加到可能匹配的列表中。然后,该过程继续搜索层次结构中更高一级的内容。解析过程在搜索层次结构的图表级别后停止。如果存在唯一匹配,in运算符将检查匹配状态是否处于活动状态。否则,解析过程将失败。模拟停止,您会看到一条错误消息。

检查状态活动的最佳实践
正在解析状态活动:
不会对图表中的所有状态执行详尽的搜索。
找到第一个匹配项后不会停止。
要提高在解析合格数据名称时找到唯一搜索结果的几率,请执行以下操作:
在限定的数据名称中使用特定路径。
为各状态提供唯一的名称。
使用状态和框作为外壳来限制路径分辨率搜索的范围。

状态活动解析示例

搜索查找Substate的本地副本
该图表包含具有相同子状态A1和A2的平行状态A和B。(A1.Y)中的条件监视了A.A2和B.A2中从P到Q的转换。Stateflow将每个限定的状态名称解析为子状态Y的本地副本:
在状态A中,in(A1.Y)检查状态A.A1.Y的活动。
在状态B中,in(A1.Y)检查状态B.A1.Y的活动。
在这里插入图片描述

此表列出了状态A.A2中转换条件的解析过程中的不同阶段。

阶段描述结果
1从状态A.A2开始,搜索状态A.A2.A1.Y。找不到匹配项
2向上移动到层次结构的下一个级别(状态A)。搜索状态A.A1.Y找到匹配项。
3向上移动到层次结构的下一个级别(图表级别)。搜索状态A1.Y找不到匹配项

搜索以找到一个匹配项结束。因为解析算法将搜索范围定位,所以监视A.A2中的转换的内部运算符只检测到状态A.A1.Y。监视B.A2中的过渡的内部运算符仅检测到状态B.A1.Y。
要检查Y的另一个副本的状态活动,请使用更具体的限定状态名称:

在状态 A中, 使用表达式 in(B.A1.Y).
在状态 B中, 使用表达式 in(A.A1.Y).

搜索产生未匹配项

在此图表中,状态A.B中的动作过程包含(Q.R)中的表达式。Stateflow无法解析合法的状态名称Q.R。
在这里插入图片描述此表列出了解析过程中的不同阶段。

阶段描述结果
1从状态A.B开始,搜索状态A.B.Q.R。没有匹配项
2向上移动到层次结构的下一个级别(状态A)。搜索状态A.Q.R。没有匹配项
3向上移动到层次结构的下一个级别(chart级别)。搜索状态Q.R。找到匹配项

搜索在图表级别结束,没有找到与Q.R匹配的项,从而导致错误。
若要避免此错误,请使用更具体的合法状态名。例如,使用(P.Q.R)中的表达式检查状态活动。

搜索产生多个匹配项

在此图表中,状态A.B中的动作过程包含(P.Q.R)中的表达式。Stateflow无法解析合法的状态名称P.Q.R。
在这里插入图片描述此表列出了解析过程中的不同阶段。

阶段描述结果
1从状态A.B开始,搜索状态A.B.P.Q.R。找到匹配项
2向上移动到层次结构的下一个级别(状态A)。搜索州A.P.Q.R。没有找到匹配项
3向上移动到层次结构的下一个级别(图表级别)。搜索状态P.Q.R。找到匹配项

搜索在图表级别结束,找到两个与P.Q.R匹配的项,从而导致错误。
要避免此错误,请执行以下操作:
请使用更具体的合法状态名称。例如:
要检查B内部的子状态活动,请使用(B.P.Q.R)中的表达式。
要检查处于顶级状态P的子状态活动,请使用(\P.Q.R)中的表达式。
重命名其中一个匹配的状态。
将顶级状态P封装在一个框或其他状态中。添加enclosure 可防止搜索进程检测到处于顶级状态的子状态。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/689145.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

icap对flash的在线升级

文章目录 一、icap原语介绍(针对 S6 系列的 ICap),之后可以拓展到A7、K7当中去二、程序1设计2.1信号结构框图2.2 icap_delay设计2.3 icap_ctrl设计(可以当模板使用,之后修改关键参数即可) 三、程序2设计四、…

Edge视频增强功能

edge://flags/#edge-video-super-resolution 搜索Video查找 Microsoft Video Super Resolution 设置为Enabled

Selenium 保存会话信息避免重复登录实战!

前言 • 在一些实际开发场景中,我们在使用 Selenium 做自动化测试时需要保留用户的会话信息,从而避免重复登录,今天这篇文章就带大家实战如何使用 Selenium 保存会话信息。 版本 • Python 3.x 整体思路 • 当我们打开页面时,…

Android system property运作流程源码分析

一.序 前文分析了build.prop这个系统属性文件的生成,每个属性都有一个名称和值,他们都是字符串格式。属性被大量使用在Android系统中,用来记录系统设置或进程之间的信息交换。属性是在整个系统中全局可见的。每个进程可以get/set属性&#x…

【教学类-54-01】20240510超级对对碰(圆点拼图)(9*5、0-255随机)

作品展示 背景需求: 奕娃幼儿园小中大班益智区超级对对碰 - 小红书#幼儿园益智区 #幼儿园益智区素材 #幼儿园区域材料 #幼儿园环创https://www.xiaohongshu.com/discovery/item/6279bb4d000000002103be71?app_platformandroid&ignoreEngagetrue&app_ve…

【Redis】Redis 事务

Redis 的事务的本质是一组命令的批处理。这组命令在执行过程中会被顺序地、一次性 全部执行完毕,只要没有出现语法错误,这组命令在执行期间不会被中断 1.事务特性 仅保证了数据的一致性 这组命令中的某些命令的执行失败不会影响其它命令的执行&#xff…

如何挑选家用洗地机?需要注意什么?这四款洗地机性价比超高

洗地机结合了扫、拖、吸的功能,一台机器,一个推拉的动作便可以清理干净地面上的干湿垃圾,大大的节省了我们做家务的清洁时间,提升了生活质量。但是面对市面上众多的洗地机型号,我们要怎么去挑选呢,需要主要…

Linux下安装mysql8.0(以tar.xz包安装--编译安装)

前言:原文在我的博客网站中,持续更新数通、系统方面的知识,欢迎来访! Linux下安装mysql8.0(以tar.xz包安装--编译安装)https://myweb.myskillstree.cn/126.html 目录 一、下载对应自己glic版本的MySQL …

论文解读--High-resolution Automotive Radar Point Cloud Imaging and Processing

高分辨汽车雷达点云成像和处理 摘要 汽车雷达具有体积小、硬件成本低、全天候工作、高分辨率等公认的优点,是高级驾驶辅助系统(ADAS)必不可少的一类重要传感器。然而,低角度分辨率和低成像性能的限制很难满足下一阶段ADAS的需要。新兴的4D成像雷达采用多…

如何打破数据管理僵局,释放数据资产价值?[AMT企源案例]

引言 数据是企业信息运作的核心和基础,是影响企业决策的关键要素,而主数据是数据中的最基础和公共的部分。面临长期以来的数据治理缺失导致的杂论局面,如何有条不紊推进主数据管理,让数据资产“活”起来?S集团的做法非…

Python可以自学但是千万不要乱学,避免“埋头苦学”的陷阱!

前言 Python可以自学但是千万不要乱学! 归根结底因为学习是个反人性的过程! 复盘没学下去的网课,都有以下特点: 😅 臣妾听不懂啊! 初次接触编程遇到太多抽象高深的概念,不了解老师口中的一个…

Android APP读写外置SD卡无权限 java.io.IOException: Permission denied

在物联网应用里,app需要对挂载SD卡读写文件,从 Android 4.4(KitKat)版本开始,Google 引入了一项名为 "Storage Access Framework" 的新功能,该功能限制了应用对外部存储的直接读写权限,要不然就是…