主要内容

检查 Stateflow 中的隐式类型转换

检查 IDmathworks.jmaab.jc_0802

规范:jc_0802:禁止在 Stateflow® 中使用隐式类型转换

描述

标识 Stateflow 中的隐式类型转换。

此检查需要 Simulink® Check™ 和 Stateflow 许可证。

检查参数化

此检查不包括子检查,因为 MAB 建模规范仅提供一个子 ID。

作为参考,NA-MAAB 和 JMAAB 建模标准组织建议使用的 MAB 规范子 ID 为:

  • NA-MAAB - a

  • JMAAB - a

结果和建议的操作

条件建议的操作
Stateflow 图中的一个或多个运算和/或函数调用的数据类型不匹配。所有运算和函数调用都必须在相同数据类型的变量之间进行。如果数据类型不同,则需要对变量进行显式类型转换,使数据类型匹配。

功能和限制

  • 如果未给枚举类型指定完整的类名称,则此检查不会分析 Stateflow 中的枚举类型。例如,如果枚举类命名为 Colors 并且其中一个枚举为 Red,则正确的用法是 Colors.Red

  • 此检查不分析定点上下文相关常量。

  • 此检查将 Simulink.IntEnumType 视作单独的数据类型。

  • 无法在库模型上运行。

  • 允许排除模块或图。

  • 可以分析库链接模块的内容。默认情况下,输入参数 Follow links 设置为 on

  • 可以分析封装子系统中的内容。默认情况下,输入参数 Look under masks 设置为 graphical

  • 不分析 C 函数调用及其返回值。

  • 在某些情况下,不能由此检查来确定数据类型时,检查结果将报告为信息状态。

  • 不支持 Truth Table (Stateflow) 模块和 Stateflow 转移表。