model.rtwСуществует несколько библиотечных функций, обеспечивающих доступ к входам блоков, выводам, параметрам, времени выборки и другой информации. Рекомендуется использовать эти библиотечные функции для доступа ко многим парам имен параметров/значений параметров в записи блока, а не к парам имен параметров/значений параметров непосредственно из кода TLC блока. Дополнительные сведения об использовании этих функций (рекомендуемый метод доступа ), см. раздел Обзор функций библиотеки компилятора целевого языка.model.rtw
Исключением из использования этих функций является доступ к настройкам параметров блока. Параметры настройки могут быть записаны с помощью mdlRTW функции S-функции C MEX. Они могут содержать данные в виде строк, скалярных значений, векторов и матриц. Они могут использоваться для передачи фиксированных значений и информации, которая используется для изменения сгенерированного кода для блока или непосредственно как значения в результирующем коде блока.
Следующий пример демонстрирует доступ к параметрам для блока с помощью mdlRTW функции S-функции 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");
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
Целевые файлы блоков могут генерировать код для данного блока путем непосредственного использования полей в записи блока. Этот процесс не рекомендуется по двум причинам:
Содержание файл может изменяться от версии к версии. Это может привести к блокированию файлов TLC, имеющих доступ к model.rtw непосредственно для прекращения работы.model.rtw
Предусмотрены функции библиотеки TLC, которые существенно уменьшают количество кода TLC для реализации блока при обработке различных конфигураций (ширины, типы данных и т.д.), которые может иметь блок. Эти библиотечные функции предоставляются целевыми файлами системы для обеспечения доступа к входам, выходам, параметрам и т.д. Использование этих функций в скрипте TLC делает его достаточно гибким для создания кода для нескольких экземпляров или конфигураций блока, а также для всех версий. Однако исключения возникают, например, при необходимости прямого доступа к полю в записи блока. Это происходит с настройками параметров, как описано в TLC Code to Access the Parameter Settings.