文档

跟踪Stateflow生成代码中的元素

验证为状态流生成的代码®元素,你可以通过使用这些类型的导航来跟踪模型中的Stateflow元素到生成的代码:

  • 代码到模型:通过单击注释中的超链接或超链接行号,将生成的代码追溯到模型,这将突出显示Simulink Editor中相应的模型元素。金宝app

  • 模型到代码:通过右键单击模型元素并导航到生成的代码,在Simulink编辑器中跟踪模型元素到生金宝app成代码中的相应行。

这些示例演示了如何跟踪不同的statflow元素。

内联追溯Stateflow元素

内联可追溯性指的是生成代码中可用的行级可追溯性。您可以单击超链接的行号,以同时跟踪单个或多个Stateflow元素。

  1. 打开模型old_sf_car

  2. 将模型配置为ERT目标。

  3. 代码生成>报告窗格中,选择这些模型配置参数:

  4. 选择代码生成>评论>状态流对象注释(金宝app仿真软件编码器)配置参数。此参数启用Stateflow元素的可跟踪性注释。

  5. 代码生成>接口窗格。在软件环境部分中,选择连续时间.点击应用.在生成代码之前,您必须执行此步骤,因为此模型包含一个具有连续采样时间的块。

  6. C代码选项卡上,单击构建

    代码生成过程完成后,将出现代码生成报告。

  7. 在报告中,在左侧导航窗格中,单击old_sf_car.c超链接。

  8. 要查看内联追溯性超链接,请滚动代码。这些行号可能与代码生成报告中显示的行号不同。

  9. 单击行号上的超链接190.相应的元素被突出显示。

状态和转换的双向可跟踪性

  1. 打开模型old_sf_car

  2. 完成步骤2到步骤5状态流元素的内联跟踪

  3. 新闻Ctrl + B的源代码和头文件old_sf_car模型,该模型包含shift_logic图表。代码生成过程完成后,将出现代码生成报告。

  4. 在报告中,单击old_sf_car.c超链接。

查看结果

  1. 要查看可追溯性注释,请滚动代码。这些行号可能与代码生成报告中显示的行号不同。

  2. 单击< S5 >: 2这个可追溯性注释中的超链接:

    /*在` gear_state `中:`< S5 >: 2‘* /

    相应的状态在图表中突出显示。

  3. 单击< S5 >: 12这个可追溯性注释中的超链接:

    /*转换:'< S5 >: 12‘* /

    相应的转换在图表中突出显示。要从图表中的元素中删除高亮显示,请按Esc关键。

  4. 您还可以将模型中的元素跟踪到生成的代码行。在图表中,右键单击元素gear_state并选择C / c++代码>导航到C/ c++代码

    中突出显示了该状态的代码old_sf_car.c

  5. 在图表中,右键单击带有条件的转换[速度]并选择C / c++代码>导航到C/ c++代码

    中突出显示了该转换的代码old_sf_car.c

    请注意

    要获得模型中可跟踪的Stateflow元素的列表,请单击可跟踪性报告代码生成报告中的超链接。

状态转换表的双向可跟踪性

这个例子展示了如何在状态转换表中的元素和生成的C/ c++和HDL代码之间进行双向导航,以实现可跟踪性。

  1. 打开模型sf_cdplayer_STT.这个模型已经为可追溯性进行了配置。

  2. 新闻Ctrl + B的源代码和头文件sf_cdplayer_STT模型。代码生成过程完成后,将出现代码生成报告。

  3. 单击sf_cdplayer_STT.c报告中的超链接。

  4. 要查看可追溯性注释,请滚动代码。显示的行号可能与代码生成报告中显示的行号不同。

  5. 单击< S2 >: 58岁这个可追溯性注释中的超链接:

    /*内部的'ON': '< S2 >: 58岁‘* /

    对应状态“上”在状态转换表中高亮显示。

  6. 可以从状态转换表跟踪状态或转换到生成的代码。右键单击状态备用并选择C / c++代码>导航到C/ c++代码

    该州的入境代码备用在生成的代码中突出显示。

真值表块的双向可追溯性

  1. 打开模型sf_climate_control

  2. 完成步骤2到步骤5状态流元素的内联跟踪

  3. 要建立模型,请按Ctrl + B

  4. 在代码生成报告中,单击sf_climate_control.c超链接。

  5. 要查看可追溯性注释,请滚动代码。这些行号可能与代码中显示的数字不同。

  6. 单击< S1 >: 47秒这个可追溯性注释中的超链接:

    /*操作'3':'< S1 >: 47秒‘* /

    在“真值表编辑器”中,操作表的第3行突出显示。

  7. 您还可以将表中的条件、决策或操作跟踪到生成的代码行。例如,右键单击列中的一个单元格D2并选择C / c++代码>导航到C/ c++代码

    用于该决定的代码显示在sf_climate_control.c

    提示

    选择C / c++代码>导航到C/ c++代码对于条件、决策或操作,右键单击与该真值表元素对应的行或列中的单元格。

图形函数的双向跟踪

  1. 打开模型sf_clutch_enabled_subsystems

  2. 完成步骤2到步骤5状态流元素的内联跟踪

  3. 在“配置参数”对话框中,进入解算器窗格。在解算器的选择部分中,选择固定步类型字段。点击应用.在生成代码之前,您必须执行此步骤,因为该模型不能使用变步长求解器。

  4. 要建立模型,请按Ctrl + B

  5. 在代码生成报告中,单击sf_clutch_enabled_subsystems.c超链接。

  6. 要查看可追溯性注释,请滚动代码。这些行号可能与代码生成报告中显示的行号不同。

  7. 单击< S1 >: 3这个可追溯性注释中的超链接:

    /*图形函数'getSlipTorque': '< S1 >: 3‘* /

    在图表中,图形函数getSlipTorque高亮显示。

  8. 您可以将图表中的图形函数跟踪到生成的代码行。例如,右键单击图形函数detectSlip并选择C / c++代码>导航到C/ c++代码

    中突出显示了该图形函数的代码sf_clutch_enabled_subsystems.c

事件的代码到模型的可跟踪性

  1. 打开模型sf_security

  2. 完成步骤2到步骤5状态流元素的内联跟踪

  3. 要建立模型,请按Ctrl + B

  4. 在代码生成报告中,单击sf_security.c超链接。

  5. 要查看此可追溯性注释,请滚动代码。这些数字可能与出现在代码生成报告中的数字不同。

  6. 单击< S3 >: 56这个可追溯性注释中的超链接:

    /*事件:'< S3 >: 56‘* /

    内容窗格中的事件声音高亮显示。

连接的模型到代码可追溯性

  1. 打开模型sf_abs

  2. 完成步骤2到步骤5状态流元素的内联跟踪

  3. 在“配置参数”对话框中,进入解算器窗格。在解算器的选择部分中,选择固定步类型字段。点击应用.在生成代码之前,您必须执行此步骤,因为该模型不能使用变步长求解器。

  4. 要建立模型,请按Ctrl + B

  5. 在代码生成报告中,打开AbsoluteValue图表。

  6. 右键单击左侧连接点并选择C / c++代码>导航到C/ c++代码

    中突出显示了该结的第一个出站转换的代码sf_abs.c

可追溯性注释的格式Stateflow元素

可跟踪性注释的格式取决于Stateflow元素类型。

状态

语法

/*  '': '< elementHyperlink >‘* /

例子

/*在` gear_state `中:`< S5 >: 2‘* /

此评论指的是国家的行为gear_state,上面有超链接< S5 >: 2

过渡

语法

/*转换:'< elementHyperlink >‘* /

例子

/*转换:'< S5 >: 12‘* /

此注释引用了一个具有超链接的转换< S5 >: 12

MATLAB函数

语法

/* MATLAB函数'': '< elementHyperlink >‘* /

在一个MATLAB的内联代码®函数中,链接到函数各行的注释具有如下语法:

/ *”< elementHyperlink >‘* /

例子

/* MATLAB函数test_function: '< S50 >: 99‘* /
/ *”< S50 >: 99:20‘* /

第一个注释是指MATLAB函数命名test_function,上面有超链接< S50 >: 99

第二个注释引用了图表中MATLAB函数的第20行。

真值表块

语法

/*真值表函数'': '< elementHyperlink >‘* /

在Truth Table块的内联代码中,条件、决策和操作的注释具有以下语法:

/*条件'#': '< elementHyperlink >' */ /* Decision 'D': '< elementHyperlink >' */ /*动作'': '< elementHyperlink >‘* /

< Num >是出现在“真值表编辑器”中的行号或列号。

例子

/* true表函数'truth_table_default': '< S10 >: 100‘* /
/*条件'#1':'< S10 >: 100:8*/ /*决定'D1': '< S10 >: 100:16' / /*操作'1':'< S10 >: 100:31‘* /

第一个注释引用了一个名为truth_table_default,上面有超链接< S10 >: 100

其他三个注释引用了Truth Table块的元素。Truth Table块中的每个条件、决策和操作都有一个惟一的超链接。

真值表函数

有关语法和示例,请参见真值表块

图形函数

语法

/*图形函数'': '< elementHyperlink >‘* /

例子

/*图形函数'hello': '< S1 >: 123‘* /

此注释引用的图形函数名为你好,上面有超链接< S1 >: 123

金宝app函数

语法

/* 金宝appSimulink函数'': '< elementHyperlink >‘* /

例子

/* 金宝appSimulink函数'simfcn': '< S4 >: 10‘* /

这个评论指的是一个Simulink金宝app®函数命名simfcn,上面有超链接< S4 >: 10

事件

语法

/*事件:'< elementHyperlink >‘* /

例子

/*事件:'< S3 >: 33‘* /

此注释引用一个事件,该事件具有超链接< S3 >: 33

相关的话题