Расширенные функции

LibAppendToModelReferenceUserData (данные

)

Добавляет данный объект данных к пользовательским данным в binfo файл для создаваемой модели. Эта функция вызывается только во время построений для целей модели-ссылки.

Примечание

Аргумент данных не может быть вектором или матрицей. Чтобы обойти это ограничение, создайте запись с полем, содержащим векторные или матричные данные, и передайте эту запись в функцию.

См. LibAppendToModelReferenceUserData в modelrefutil.tlc.

LibBlockInputSignalBufferDstPort (portIdx

)

Возвращает выход порт, соответствующий входному порту (portIdx), которые совместно используют ту же память, в противном случае (-1) возвращается. Вам нужно будет использовать LibBlockInputSignalBufferDstPort когда вы задаете ssSetInputPortOverWritable(S,portIdx,TRUE) в вашей S-функции.

Если вход порт и некоторые выходы порты блока

  • Не тестовые точки, и

  • Порт входа перезаписывается

тогда порт выхода может повторно использовать тот же буфер, что и порт входа. В этом случае LibBlockInputSignalBufferDstPort возвращает индекс выходного порта, который повторно использует буфер заданного входного порта. Если ни один из выходных портов блока не повторно использует указанный буфер входного порта, то LibBlockInputSignalBufferDstPort возвращает -1.

LibBlockInputSignalBufferDstPort - TLC-версия Simulink;® макрос ssGetInputPortBufferDstPort.

Пример

Предположим, что у вас есть блок, который имеет два входных порта, оба из которых получают комплексное число в 2-х широких векторах. Блок выводит продукт двух комплексных чисел.

%assign u1r = LibBlockInputSignal (0, "", "", 0)
%assign u1i = LibBlockInputSignal (0, "", "", 1)
%assign u2r = LibBlockInputSignal (1, "", "", 0)
%assign u2i = LibBlockInputSignal (1, "", "", 1)
%assign yr  = LibBlockOutputSignal (0, "", "", 0)
%assign yi  = LibBlockOutputSignal (0, "", "", 1)
%if (LibBlockInputSignalBufferDstPort(0) != -1)
  %% The first input is going to be overwritten by yr so
  %% we need to save the real part in a temporary variable.
  {
  real_T tmpRe = %<u1r>;
%assign u1r = "tmpRe";
%endif
%<yr> = %<u1r> * %<u2r> - %<u1i> * %<u2i>;
%<yi> = %<u1r> * %<u2i> + %<u1i> * %<u2r>;
%if (LibBlockInputSignalBufferDstPort(0) != -1)
  }
%endif

Обратите внимание, что, поскольку существует только один выходной порт, этот пример мог использовать (LibBlockInputSignalBufferDstPort(0) == 0) как логическое условие для %if операторы.

См. LibBlockInputSignalBufferDstPort в blkiolib.tlc.

LibBlockInputSignalStorageClass (portIdx, sigIdx

)

Возвращает класс памяти указанного входа порта блока. Класс памяти можно "Auto", "ExportedSignal", "ImportedExtern", или "ImportedExternPointer".

См. LibBlockInputSignalStorageClass в blkiolib.tlc.

LibBlockInputSignalStorageTypeQualifier
(portIdx, sigIdx)

Возвращает классификатор типа памяти указанного входа порта блока. Определитель типа может быть любым, что введено пользователем, таким как const. Классификатор типов по умолчанию "Auto", что означает выполнить действие по умолчанию.

См. LibBlockInputSignalStorageTypeQualifier в blkiolib.tlc.

LibBlockOutputSignalIsGlobal (portIdx

)

Возвращает 1, если указанный выходной сигнал блока объявлен в глобальных возможностях, в противном случае возвращается 0.

Если LibBlockOutputSignalIsGlobal возвращает 1затем переменная, удерживающая этот сигнал, доступна из любого места сгенерированного кода. Для примера, LibBlockOutputSignalIsGlobal возвращает 1 для сигналов, которые являются тестовыми точками, внешними или инвариантными.

См. LibBlockOutputSignalIsGlobal в blkiolib.tlc.

LibBlockOutputSignalIsInBlockIO (portIdx

)

Возвраты 1, если указанный выходной порт блока существует в глобальной структуре данных вводов-выводов блоков. Вам может понадобиться использовать это, если вы задаете ssSetOutputPortReusable(S,portIdx,TRUE) в вашей S-функции.

См. sfun_multiport.tlc.

См. LibBlockOutputSignalIsInBlockIO в blkiolib.tlc.

LibBlockOutputSignalIsValidLValue (portIdx

)

Возвращает 1 если указанный выходной сигнал блока может использоваться как допустимый левый аргумент (lvalue) в выражении назначения, в противном случае возвращается 0. Для примера, LibBlockOutputSignalIsValidLValue возвращает 1 если выходной сигнал блока находится в памяти чтения/записи.

См. LibBlockOutputSignalIsValidLValue в blkiolib.tlc.

LibBlockOutputSignalStorageClass (portIdx

)

Возвращает класс памяти заданного выходного сигнала блока. Класс памяти можно "Auto", "ExportedSignal", "ImportedExtern", или "ImportedExternPointer".

См. LibBlockOutputSignalStorageClass в blkiolib.tlc.

LibBlockOutputSignalStorageTypeQualifier
(portIdx)

Возвращает классификатор типа памяти заданного выходного сигнала блока. Определитель типа может быть любым, что введено пользователем, таким как const. Классификатор типов по умолчанию Auto, что означает выполнить действие по умолчанию.

См. LibBlockOutputSignalStorageType в blkiolib.tlc.

LibBlockSrcSignalBlock (portIdx, sigIdx

)

Возвращает ссылку на блок, который является источником указанного элемента входного порта блока. Возвращаемый аргумент является одним из следующих:

[systemIdx, blockIdx]

Если выход блока или состояние уникально

"ExternalInput"

Если внешний вход (корневой входной порт)

"Ground"

Если не соединен или соединен с землей

"FcnCall"

Если вызов функции вывод

0

Если не уникальный (то есть источник для блока Merge или сигнала, повторно используемого из-за оптимизации ввода-вывода блока)

Пример

Следующий фрагмент кода находит блок, который управляет вторым входом на первом порте текущего блока, затем присваивает входной сигнал этого исходного блока переменной y:

%assign srcBlock = LibBlockSrcSignalBlock(0, 1)
%% Make sure that the source is a block
%if TYPE(srcBlock) == "Vector"
  %assign sys = srcBlock[0]
  %assign blk = srcBlock[1]
  %assign block = CompiledModel.System[sys].Block[blk]
  %with block
    %assign u = LibBlockInputSignal(0, "", "", 0)
    y = %<u>;
  %endwith
%endif

См. LibBlockSrcSignalBlock в blkiolib.tlc.

LibBlockSrcSignalIsDiscrete (portIdx, sigIdx

)

Возвращает 1, если исходный сигнал, соответствующий указанному элементу входного порта блока, дискретен, в противном случае возвращает 0.

Обратите внимание, что LibBlockSrcSignalIsDiscrete также возвращает 0, если ведущий блок не может быть однозначно определен как объединенный или повторно используемый сигнал (т.е. источник является блоком Merge или сигнал был повторно использован из-за оптимизации).

См. LibBlockSrcSignalIsDiscrete в blkiolib.tlc.

LibBlockSrcSignalIsGlobalAndModifiable
(portIdx, sigIdx)

LibBlockSrcSignalIsGlobalAndModifiable возвращает 1, если исходный сигнал, соответствующий указанному элементу входного порта блока, удовлетворяет следующим трем условиям:

  • Он читается везде в сгенерированном коде.

  • На него можно ссылаться по его адресу.

  • Его значение может измениться (то есть оно не объявляется как const).

В противном случае LibBlockSrcSignalIsGlobalAndModifiable возвращает 0.

См. LibBlockSrcSignalIsGlobalAndModifiable в blkiolib.tlc.

LibBlockSrcSignalIsInvariant (portIdx, sigIdx

)

Возвращает 1 если исходный сигнал, соответствующий указанному элементу входного порта блока, инвариантен (т.е. сигнал не меняется).

Например, исходный блок с постоянным TID (или эквивалентно, бесконечный шаг расчета) выводит инвариантный сигнал.

См. LibBlockSrcSignalIsInvariant в blkiolib.tlc.

Lib Get Model Reference User Data (model Name

)

Получение пользовательских данных для данной модели. Это возвращает вектор с одним элементом для каждого временного LibAppendToUserData вызывается в данной модели. Эта функция не может быть вызвана во время построений, где целевой тип является SIM.

См. LibGetModelReferenceUserData в modelrefutil.tlc.

LibGetReferencedModelNames ()

Получение имен моделей, на которые ссылается создаваемая модель. Возвращает данные как структуру с двумя полями:

  • NumReferencedModels: целое число с количеством имен модели

  • ReferencedModel: массив структур, где каждая структура имеет поле - Name- содержащее имя ссылочной модели

См. LibGetReferencedModelNames в modelrefutil.tlc.

LibIsModelReferenceRTWTarget ()

Возвращает true, если процесс сборки генерирует код для цели модели-ссылки.

См. LibIsModelReferenceRTWTarget в utillib.tlc.

LibIsModelReferenceSimTarget ()

Верните true, если мы генерируем код для модели-ссылки Симуляции цели.

См. LibIsModelReferenceSimTarget в utillib.tlc.

LibIsModelReferenceTarget ()

Верните true, если мы генерируем код для цели модели-ссылки.

См. LibIsModelReferenceTarget в utillib.tlc.

Похожие темы