model
.rtwСуществует несколько библиотечных функций, которые обеспечивают доступ к входам блоков, выходам, параметрам, шагам расчета и другой информации. Рекомендуется, чтобы вы использовали эти функции библиотеки для доступа ко многим парам имя/значение параметра в записи блока, в отличие от доступа к парам имя/значение параметра непосредственно из кода TLC блока. Для получения дополнительной информации об использовании этих функций (рекомендуемый метод доступа
), см. Обзор функций библиотеки компилятора целевого языка.model
.rtw
Исключение для использования этих функций - когда вы получаете доступ к настройкам параметра для блока. Настройки параметра могут быть выписаны с помощью mdlRTW
функция S-функции MEX на C. Они могут содержать данные в виде строк, скалярных значений, векторов и матриц. Они могут использоваться, чтобы передать фиксированные значения и информацию, которая используется для изменения сгенерированного кода для блока или непосредственно как значения в полученном коде блока.
Следующий пример демонстрирует доступ к настройкам параметра для блока, используя mdlRTW
функция S-функции MEX на C. Для получения дополнительной информации об использовании параметров смотрите Inlining S-Functions.
static void mdlRTW(SimStruct *S) { if (!ssWriteRTWParamSettings( S, 1, SSWRITE_VALUE_QSTR, "Operator", "AND")) { ssSetErrorStatus(S,"Error writing parameter data to .rtw file"); return; } }
model
.rtw ФайлBlock { Type "S-Function" Name "<Root>/S-Function" ... SFcnParamSettings { Operator "AND" } }
%function Outputs(block, system) Output %% %% Select Operator %switch(SFcnParamSettings.Operator) %case "AND" %assign LogicOp = "&" %break ... %endswitch %endfunction
Когда вызываются функции в целевом файле блока, они передаются в блок и системные записи для этого образца в качестве аргументов. Первый аргумент, block
, находится в возможностях, что означает, что имена переменных в записи блока этого образца доступны по наименованию. Для примера:
%assign fast = SFcnParamSetting.Fast
Блочные целевые файлы могут сгенерировать код для данного блока, непосредственно используя поля в записи Block для блока. Этот процесс не рекомендуется по двум причинам:
Содержимое
файл может меняться с релиза на релиз. Это может вызвать блок файлов, которые обращаются к model
.rtw
файл непосредственно, чтобы остановить работу.model
.rtw
Предусмотрены функции библиотеки TLC, которые существенно уменьшают количество кода TLC для реализации блока при обработке различных строений (ширины, типов данных и т.д.), которые могут иметь блок. Эти функции библиотеки предоставляются системными целевыми файлами для обеспечения доступа к входам, выходам, параметрам и так далее. Использование этих функций в блочном TLC скрипте делает его достаточно гибким, чтобы сгенерировать код для нескольких образцов или строений блока, а также между релизами. Исключения из этого, однако, происходят, например, когда вы хотите получить прямой доступ к полю в записи блока. Это происходит с настройками параметра, как обсуждается в TLC Code для доступа к параметрам Settings.