Добавляет объект определенных данных к пользовательским данным в файле binfo
для модели, в настоящее время создаваемой. Эта функция только вызвана во время сборок для целей модели-ссылки.
Аргумент данных не может быть вектором или матрицей. Чтобы работать вокруг этого ограничения, создайте запись с полем, содержащим векторные или матричные данные, и передайте эту запись в функцию.
Смотрите LibAppendToModelReferenceUserData
в modelrefutil.tlc
.
Возвращает выходной порт, соответствующий входному порту (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
.
Возвращает класс памяти заданного сигнала входного порта блока. Классом памяти может быть "Auto"
, "ExportedSignal"
, "ImportedExtern"
или "ImportedExternPointer"
.
Смотрите LibBlockInputSignalStorageClass
в blkiolib.tlc
.
Возвращает спецификатор типа хранения заданного сигнала входного порта блока. Спецификатор типа может быть чем-либо вводимым пользователем, таким как const
. Спецификатором типа по умолчанию является "Auto"
, что означает, делают действие по умолчанию.
Смотрите LibBlockInputSignalStorageTypeQualifier
в blkiolib.tlc
.
Возвращается 1, если заданный сигнал выходного порта блока объявляется в глобальной области видимости, в противном случае возвращает 0
.
Если LibBlockOutputSignalIsGlobal
возвращает 1
, то переменная, содержащая этот сигнал, доступна отовсюду в сгенерированном коде. Например, LibBlockOutputSignalIsGlobal
возвращает 1
для сигналов, которые являются тестовыми точками, внешними, или инвариантными.
Смотрите LibBlockOutputSignalIsGlobal
в blkiolib.tlc
.
Возвращается 1, если заданный выходной порт блока существует в глобальной структуре данных блока I/O. Вы можете должны быть использовать это, если вы задаете ssSetOutputPortReusable(S,portIdx,TRUE)
в своей S-функции.
Смотрите sfun_multiport.tlc
.
Смотрите LibBlockOutputSignalIsInBlockIO
в blkiolib.tlc
.
Возвращает 1
, если заданный сигнал выходного порта блока может использоваться в качестве допустимого аргумента левой стороны (lvalue
) в выражении присваивания, в противном случае возвращает 0
. Например, LibBlockOutputSignalIsValidLValue
возвращает 1
, если сигнал выходного порта блока находится в памяти чтения-записи.
Смотрите LibBlockOutputSignalIsValidLValue
в blkiolib.tlc
.
Возвращает класс памяти заданного выходного сигнала блока. Классом памяти может быть "Auto"
, "ExportedSignal"
, "ImportedExtern"
или "ImportedExternPointer"
.
Смотрите LibBlockOutputSignalStorageClass
в blkiolib.tlc
.
Возвращает спецификатор типа хранения заданного выходного сигнала блока. Спецификатор типа может быть чем-либо вводимым пользователем, таким как const
. Спецификатором типа по умолчанию является Auto
, что означает, делают действие по умолчанию.
Смотрите LibBlockOutputSignalStorageType
в blkiolib.tlc
.
Возвращает ссылку на блок, который является источником указанного элемента входного порта блока. Возвращаемый аргумент является одним из следующего:
[systemIdx, blockIdx] | Если блок вывод или состояние уникален |
"ExternalInput" | Если внешний вход (базируются импорт), |
"Ground" | Если несвязанный или соединенный с землей |
"FcnCall" | Если вызов функции выводится |
0 | Если не уникальный (т.е. источник для блока Merge или сигнала, снова использованного из-за оптимизации блока I/O) |
Следующий фрагмент кода находит блок, который управляет вторым входом на первом порте текущего блока, затем присваивает входной сигнал этого исходного блока к переменной 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
.
Возвращается 1, если исходное соответствие сигнала указанному элементу входного порта блока дискретно, в противном случае возвращается 0.
Обратите внимание на то, что LibBlockSrcSignalIsDiscrete
также возвращается 0, если ведущий блок не может быть исключительно полон решимости быть объединенным или снова использованным сигналом (т.е. источник является блоком Merge, или сигнал был снова использован из-за оптимизации).
Смотрите LibBlockSrcSignalIsDiscrete
в blkiolib.tlc
.
LibBlockSrcSignalIsGlobalAndModifiable
возвращается 1, если исходное соответствие сигнала указанному элементу входного порта блока удовлетворяет следующие три условия:
Это читаемо везде в сгенерированном коде.
На это может сослаться его адрес.
Его значение может измениться (т.е. это не объявляется как const
).
В противном случае LibBlockSrcSignalIsGlobalAndModifiable
возвращает 0
.
Смотрите LibBlockSrcSignalIsGlobalAndModifiable
в blkiolib.tlc
.
Возвращает 1
, если исходное соответствие сигнала указанному элементу входного порта блока является инвариантным (т.е. сигнал не изменяется).
Например, исходный блок с постоянным TID
(или эквивалентно, бесконечный шаг расчета) вывел бы инвариантный сигнал.
Смотрите LibBlockSrcSignalIsInvariant
в blkiolib.tlc
.
Получает пользовательские данные для данной модели. Это возвращает вектор с одним элементом в течение каждого раза, когда LibAppendToUserData
называется в данной модели. Эта функция не может быть вызвана во время сборок, где целевой тип является SIM.
Смотрите LibGetModelReferenceUserData
в modelrefutil.tlc
.
Получает имена моделей, на которые ссылается модель, которая в настоящее время создается. Возвращает данные как структуру с двумя полями:
NumReferencedModels
: целое число с количеством имен модели
ReferencedModel
: массив структур, где каждая структура имеет поле –Name–
содержащий имя модели, на которую ссылаются,
Смотрите LibGetReferencedModelNames
в modelrefutil.tlc
.
Возвращает true, если процесс сборки генерирует код для цели модели-ссылки.
Смотрите LibIsModelReferenceRTWTarget
в utillib.tlc
.
Возвратите true, если мы генерируем код для цели Симуляции модели - ссылки.
Смотрите LibIsModelReferenceSimTarget
в utillib.tlc
.
Возвратите true, если мы генерируем код для цели модели-ссылки.
Смотрите LibIsModelReferenceTarget
в utillib.tlc
.