Для использования встроенными S-функциями в подсистеме. Добавляет #include к системному заголовочному файлу.
Вызовите эту функцию из метода BlockInstureSetup (block, system) блока, чтобы различные S-функции могли включать различные заголовочные файлы. Укажите файл заголовка без фигурных скобок (например ,"myInclude.h") и включить системный файл заголовка в фигурные скобки (например, "<sysinclude.h>").
Каждый вызов этой функции добавляет файл в список включенных файлов заголовков, только если он еще не включен.
%function BlockInstanceSetup(block, system) Output %assign incFileName = "sfun_custincl.h" %<LibAddToSystemCustomIncludes(system, incFileName)> %endfunction %function Outputs(block, system) Output %endfunction
Посмотрите LibAddToSystemCustomIncludes в commonhdrlib.tlc.
Для использования встроенными S-функциями с выходами вызова функции. Возвращает строку для вызова подсистемы вызова функции с требуемыми аргументами или генерирует код подсистемы на месте (встроенный).
%foreach callIdx = NumSFcnSysOutputCalls
%if LibIsEqual(SFcnSystemOutputCall[callIdx].BlockToCall,...
"unconnected")
%continue
%endif
%% call the downstream system
%<LibBlockExecuteFcnCall(block, callIdx)>\
%endforeachПосмотрите LibBlockExecuteFcnCall в syslib.tlc.
Используется встроенными S-функциями для вызова функции отключения системы вызова функций. Возвращает строку для вызова функции disable подсистемы function-call с требуемыми аргументами или для вызова созданного кода disable подсистемы (inlined).
%foreach callIdx = NumSFcnSysOutputCallDsts %if LibIsEqual(SFcnSystemOutputCall[callIdx].BlockToCall, "unconnected") %continue %endif %% call the downstream system %<LibBlockExecuteFcnDisable(block, callIdx)>\ %endforeach
Посмотрите LibBlockExecuteFcnDisable в syslib.tlc.
Для использования встроенными S-функциями для вызова функции включения системы вызова функций. Возвращает строку для вызова функции enable подсистемы function-call с обязательными аргументами или созданного кода enable подсистемы (inlined).
%foreach callIdx = NumSFcnSysOutputCallDsts %if LibIsEqual(SFcnSystemOutputCall[callIdx].BlockToCall, "unconnected") %continue %endif %% call the downstream system %<LibBlockExecuteFcnEnable(block, callIdx)>\ %endforeach
Посмотрите LibBlockExecuteFcnEnable в syslib.tlc.
Возвращает идентификатор типа данных, на который наложен входной сигнал.
См. LibBlockInputSignAliesthThruDataTypeId в dtypelib.tlc.
Возвращает идентификатор типа данных, для которого выполняется совмещение выходного сигнала.
Посмотрите LibBlockOutputSignalAliasedThruDataTypeId в dtypelib.tlc
Возвращает инициализированную строку статической переменной вида:
static const typeName varId[] = { data }; typeName генерируется из typeId, который может быть одним из
tSS_DOUBLE, tSS_SINGLE, tSS_BOOLEAN, tSS_INT8, tSS_UINT8, tSS_INT16, tSS_UINT16, tSS_INT32, tSS_UINT32
Аргумент ввода данных должен быть числовым скаляром или вектором и должен быть конечным (нет Inf, -Inf, или NaN значения).
Посмотрите LibGenConstVectWithInit в utillib.tlc.
Получение значения поля внутри записи блока.
%if LibIsEqual(LibGetBlockAttribute(ssBlock,"MaskType"), ... "Task Block") %assign isTaskBlock = 1 %endif
Возвращает значение атрибута (поля) или пустую строку, если она не существует.
Посмотрите LibGetBlockAttribute в asynclib.tlc.
Для использования асинхронными S-функциями с выходами вызова функции. Асинхронные задачи могут управлять собственным временем. LibGetCallerClockTickCounter используется для доступа к счетчику времени асинхронной задачи в восходящем направлении. Это предпочтительно при управлении другой асинхронной скоростью (например, блок прерывания, управляющий блоком задачи), поскольку используется время возникновения прерывания, а не время, когда задача разрешена для выполнения.
Возвращает строку переменной счетчика для асинхронной задачи в восходящем направлении.
Посмотрите LibGetCallerClockTickCounter в asynclib.tlc.
Для использования асинхронными S-функциями с выходами вызова функции. Асинхронные задачи могут управлять собственным временем. LibGetCallerClockTickCounterHigh используется для доступа к высокому слову счетчика времени асинхронной задачи в восходящем направлении. Это предпочтительно при управлении другой асинхронной скоростью (например, блок прерывания, управляющий блоком задания), поскольку используется время возникновения прерывания, а не время, когда задание разрешено.
Возвращает строку для верхнего слова переменной счетчика для асинхронной задачи в восходящем направлении.
Посмотрите LibGetCallerClockTickCounterHigh в asynclib.tlc.
Возвращает имя сложного типа данных, соответствующего идентификатору типа данных. Например, если id==tSS_DOUBLE тогда LibGetDataTypeComplexNameFromId прибыль "creal_T".
Посмотрите LibGetDataTypeComplexNameFromId в dtypelib.tlc.
Возвращает тип данных enum соответствует идентификатору типа данных. Например, если id==tSS_DOUBLE, то enum является "SS_DOUBLE". Если id не соответствует встроенному типу данных, LibGetDataTypeEnumFromId прибыль "".
Посмотрите LibGetDataTypeEnumFromId в dtypelib.tlc.
Возвращает тип данных IdAliasedThruTo соответствует идентификатору типа данных. Например, если yourfloat является псевдонимом для myfloat, и myfloat является псевдонимом для double, то IdAliasedThruTo для обоих yourfloat и myfloat равно 0 (потому что идентификатор для double равно 0).
Посмотрите LibGetDataTypeIdAliasedThruToFromId в dtypelib.tlc.
Возвращает тип данных IdAliasedTo соответствует идентификатору типа данных. Например, если yourfloat является псевдонимом для myfloat, и myfloat является псевдонимом для double, то IdAliasedTo для yourfloat - идентификатор для myfloat, и IdAliasedTo для myfloat равно 0 (потому что идентификатор для double равно 0).
Посмотрите LibGetDataTypeIdAliasedToFromId в dtypelib.tlc.
Возвращает тип данных IdResolvesTo соответствует идентификатору типа данных.
Посмотрите LibGetDataTypeIdResolvesToFromId в dtypelib.tlc.
Возвращает имя типа данных, соответствующее типу данных ID.
Посмотрите LibGetDataTypeNameFromId в dtypelib.tlc.
Возвращает размер (как известно Simulink ®), соответствующий идентификатору типа данных.
Посмотрите LibGetDataTypeSLSizeFromId в dtypelib.tlc.
Возвращает тип данных StorageId соответствует идентификатору типа данных. Например, если входной идентификатор является идентификатором для 16-битного типа данных с фиксированной точкой со знаком, то StorageId соответствует int16.
Посмотрите LibGetDataTypeStorageIdFromId в dtypelib.tlc.
При наличии S-функционального блока и индекса вызова возвращает запись блока для блока подсистемы нисходящего функционального вызова.
%assign ssBlock = LibGetFcnCallBlock(block,0)
Блочная запись подсистемы function-call, подключенной к этому элементу (индекс вызова).
Посмотрите LibGetFcnCallBlock в asynclib.tlc.
Возвращает идентификатор типа данных указанной записи в виде целого числа.
Посмотрите LibGetRecordDataTypeId в dtypelib.tlc.
Возвращает размеры указанной записи в виде вектора целых чисел.
Посмотрите LibGetRecordDimensions в dtypelib.tlc.
Возвращает значение 1, если указанная запись является комплексной, и нулевое значение в противном случае.
Посмотрите LibGetRecordIsComplex в dtypelib.tlc.
Возвращает ширину указанной записи в виде целого числа.
Посмотрите LibGetRecordWidth в dtypelib.tlc.
Возвращает строку для доступа к абсолютному времени, которое является числом с плавающей запятой. Однако если модель настроена на генерацию кода только для целых чисел (отменив выбор параметра Поддерживать числа с плавающей запятой), строка представляет целое число, равное числу делений базовой скорости (абсолютное время, деленное на базовое время выборки), а не абсолютному времени.
Вы должны использовать LibGetT для доступа только ко времени.
LibGetT является версией TLC макроса SimStruct ssGetT.
Посмотрите LibGetT в utillib.tlc.
Прибыль 1 если переданный аргумент сложен, 0 в противном случае.
Посмотрите LibIsComplex в utillib.tlc.
LibIsFirstInitCond возвращает созданный код, предназначенный для размещения в функции инициализации. Этот код определяет во время выполнения, вызывается ли функция инициализации впервые.
LibIsFirstInitCond также устанавливает флаг, который сообщает генератору кода, если он должен объявить и поддерживать first-initialize-condition флаг.
LibIsFirstInitCond является версией TLC макроса SimStruct ssIsFirstInitCond.
Посмотрите LibIsFirstInitCond в syslib.tlc.
Возвращает строку для определения того, является ли текущий шаг моделирования основным шагом времени.
LibIsMajorTimeStep является версией TLC макроса SimStruct ssIsMajorTimeStep.
Посмотрите LibIsMajorTimeStep в utillib.tlc.
Возвращает строку для определения того, является ли текущий шаг моделирования второстепенным шагом времени.
LibIsMinorTimeStep является версией TLC макроса SimStruct ssIsMinorTimeStep.
Посмотрите LibIsMinorTimeStep в utillib.tlc.
Для использования асинхронными S-функциями с выходами вызова функции. Асинхронные задачи могут управлять собственным временем и использовать LibManageAsyncCounter для определения, существует ли необходимость в асинхронном счетчике для управления собственным таймером.
%if LibManageAsyncCounter(block,callIdx) %% %<LibSetAsyncCounter(block,callIdx), CodeGetCounter)>
где CodeGetCounter - целевой аппаратный таймер считывания кода.
Прибыль TLC_TRUE если для управления собственным счетчиком требуется асинхронный счетчик, в противном случае TLC_FALSE.
Посмотрите LibManageAsyncCounter в asynclib.tlc.
Для встроенного типа целочисленных данных: LibMaxIntValue возвращает отформатированное максимальное значение этого типа данных.
Посмотрите LibMaxIntValue в dtypelib.tlc.
Для встроенного типа целочисленных данных: LibMinIntValue возвращает отформатированное минимальное значение этого типа данных.
Посмотрите LibMinIntValue в dtypelib.tlc.
Для использования асинхронными S-функциями с выходами вызова функции. Использование асинхронных задач LibNeedAsyncCounter чтобы определить, существует ли необходимость в асинхронном счетчике.
%if LibNeedAsyncCounter(block,0) %<LibSetAsyncCounter(block,0), "tickGet()")>
Прибыль TLC_TRUE если требуется асинхронный счетчик, в противном случае TLC_FALSE.
Посмотрите LibNeedAsyncCounter в asynclib.tlc.
Для использования асинхронными S-функциями с выходами вызова функции. Асинхронные задачи могут управлять собственным временем. Использовать LibSetAsyncClockTicks для возврата кода, который устанавливает clockTick счетчики, которые должны поддерживаться асинхронной задачей. Если тип данных clockTick счетчик, поддерживаемый асинхронной задачей tSS_TIMER_UINT32_PAIR, низкое и высокое слово clockTick установлены счетчики.
buf1 - Код, считывающий нижнее слово счетчика аппаратных средств
buf2 - Код, считывающий верхнее слово счетчика аппаратных средств. Отпуск buf2 пустой, если длина аппаратного счетчика меньше 32 бит.
Возвращает код, который задает clockTick счетчики, которые должны поддерживаться асинхронной задачей.
%if LibNeedAsyncCounter(block, callIdx) %<LibSetAsyncCounter(block, 0, buf1, buf2)> %endif
Посмотрите LibSetAsyncClockTicks в asynclib.tlc.
Для использования асинхронными S-функциями с выходами вызова функции. Асинхронные задачи могут управлять собственным временем. Использовать LibSetAsyncCounter для возврата кода, устанавливающего переменную счетчика, которая должна поддерживаться асинхронной задачей.
Возвращает код, задающий переменную счетчика, которую должна поддерживать асинхронная задача.
%if LibNeedAsyncCounter(block,0) %<LibSetAsyncCounter(block,0, "tickGet()")> %endif
Посмотрите LibSetAsyncCounter в asynclib.tlc.
Для использования асинхронными S-функциями с выходами вызова функции. Асинхронные задачи могут управлять собственным временем. Использовать LibSetAsyncCounterHigh для возврата кода, устанавливающего более высокое слово переменной счетчика, которое должно поддерживаться асинхронной задачей.
Возвращает код, задающий более высокое слово переменной счетчика, которое должно поддерживаться асинхронной задачей.
%if LibNeedAsyncCounter(block,0) %<LibSetAsyncCounterHigh(block,0, "hightTickGet()")> %endif
Посмотрите LibSetAsyncCounterHigh в asynclib.tlc.
Возвращает идентификатор задачи (TID), если он находится в области функции подсистемы и может вызываться до или во время генерации кода TLC.
LibTIDInSystem(
system, fcnType)
systemЗапись в глобальной записи CompiledModel.
fcnTypeОдно из следующих: 'Output', 'Update', 'Outputupdate'.
Эта функция возвращает TID, если он находится в области функции подсистемы и может вызываться до или во время генерации кода TLC. Он возвращает имя аргумента TID, если TID передается в качестве аргумента в области системной функции. Если TID не передается в качестве аргумента в области, эта функция возвращает:
"0", если модель является одиночной задачей ".
Значение TID подсистемы, если подсистема является односкоростной.
Имя локальной переменной TID, если подсистема является многоскоростной. Локальная переменная TID добавляется к коду подсистемы.
Примечание
Эта функция выдает сообщение об ошибке, если она вызывается для повторно используемой подсистемы, экземпляры которой работают с различными скоростями.
Посмотрите LibTIDInSystem в syslib.tlc.
Возвращает значение true, если текущая модель использует макет главного массива строк.
Посмотрите LibIsRowMajor в dtypelib.tlc.
В следующей таблице представлены устаревшие функции и функции, которые их заменили.
| Устаревшая функция | Эквивалентная функция замены |
|---|---|
|
|
| Использовать функцию блока |
|
|
|
|
|
|
| Функция не используется при создании кода. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Использовать встроенную функцию |
|
|
| Функция не используется при создании кода Simulink Coder™. |
| Функция не используется при создании кода Simulink Coder. |
| Функция не используется при создании кода Simulink Coder. |
|
|
|
|
|
|
|
|
| Функция не используется при создании кода Simulink Coder. |
| Функция не используется при создании кода Simulink Coder. |
| Функция не используется при создании кода Simulink Coder. |
| Указание имен параметров теперь поддерживается с помощью |