主要内容

使用可访问的库函数的例外模型.rtw

有几个库函数提供对块输入、输出、参数、样本时间和其他信息的访问。建议您使用这些库函数来访问块记录中的许多参数名称/参数值对,而不是直接从块TLC代码访问参数名称/参数值对。有关使用这些函数的更多信息(推荐的访问方法)模型.rtw),看目标语言编译器库函数概述

使用这些函数的一个例外是访问块的参数设置。参数设置可以使用mdlRTW函数的一个C MEX s -函数。它们可以包含字符串、标量值、向量和矩阵形式的数据。它们可以用来传递固定的值和信息,这些值和信息用于更改块的生成代码,或者直接作为块的结果代码中的值。

使用标准库函数的异常示例

方法访问块的参数设置mdlRTW函数的一个C MEX s -函数。有关参数设置的详细信息,请参见内联S-Functions

mdlRTW函数在C MEX s -函数代码

static void mdlRTW(SimStruct *S) {if (!ssWriteRTWParamSettings(S, 1, SSWRITE_VALUE_QSTR, "Operator", "AND")) {ssSetErrorStatus(S,"Error writing parameter data to .rtw file");返回;}}

生成的块记录模型.rtw文件

Block {Type "S-Function" Name "/S-Function"…SFcnParamSettings{操作符"AND"}}

访问参数设置的TLC代码

%function Outputs(block, system) Output %% %% Select Operator %switch(SFcnParamSettings.Operator) %case "AND" %assign LogicOp = "&" %break…% endswitch % endfunction

注意不要直接访问记录字段

当调用块目标文件中的函数时,它们将作为参数传递给该实例的块和系统记录。第一个参数,,在作用域中,这意味着该实例的块记录中的变量名可以按名称访问。例如:

%assign fast = SFcnParamSetting。快

块目标文件可以通过直接使用块记录中的字段为给定的块生成代码。这个过程是推荐有两个原因:

  • 文件的内容模型.rtw文件可以在不同的版本中改变。这可能会导致阻塞TLC文件访问模型.rtw文件直接停止工作。

  • 提供了TLC库函数,在处理块可能具有的各种配置(宽度、数据类型等)的同时,大大减少了实现块的TLC代码的数量。这些库函数由系统目标文件提供,以提供对输入、输出、参数等的访问。在块TLC脚本中使用这些函数可以使它足够灵活,可以为块的多个实例或配置以及跨版本生成代码。但是,也会有例外,比如当您想要直接访问块记录中的字段时。这在参数设置中发生,如访问参数设置的TLC代码

相关的话题