Задайте возможность многократного использования памяти, выделенной выходному порту S-функции
void ssSetOutputPortOptimOpts(SimStruct *S, int_T port, uint_T val)
S
SimStruct, представляющий Блок s-function.
порт
Индекс выходного порта S
.
val
Возможность многократного использования port
. Допустимые значения
SS_NOT_REUSABLE_AND_GLOBAL
(значение по умолчанию)
SS_REUSABLE_AND_LOCAL
SS_REUSABLE_AND_GLOBAL
SS_NOT_REUSABLE_AND_LOCAL
Используйте этот макрос, чтобы задать возможность многократного использования и осциллограф памяти, выделенной выходному порту S-функции. Возможность многократного использования указывает, может ли память, сопоставленная с выходным портом, быть перезаписана. Необходимо указать, что выходной порт является допускающим повторное использование, если выходной порт соединяется с блоком Merge. Осциллограф указывает, сохранены ли образцовые переменные локально или глобально.
Вы не можете использовать ssGetOutputPortSignal
или ssGetOutputPortRealSignal
нигде кроме стандартной программы mdlOutputs
, если вы указали, что выходные порты являются допускающими повторное использование.
Продукт Simulink® только использует установку возможности многократного использования во время моделирования. Это игнорирует установку memory scope, i. e., локальный или глобальный, вместо этого обрабатывая все порты S-функции как глобальную переменную во время моделирования.
Продукт Simulink Coder™ использует установку memory scope, которую вы задали при генерации кода от модели. Если ваша S-функция получает доступ к выходным параметрам только в mdlOutputs
, продукт Simulink Coder пытается объявить локальные переменные для любых выходных параметров с локальным осциллографом. Если ваша S-функция использует выходные параметры способом, который устраняет использовать локальный осциллограф, сгенерированный код использует глобальные переменные для выходных параметров. Смотрите S-функции для Сред Многозадачности Мультиуровня (Simulink Coder) для получения дополнительной информации.
C, C++
Смотрите S-функцию sdotproduct.c
, используемый в sfcndemo_sdotproduct
и S-функции sfun_multirate.c
, используемый в sfcndemo_sfun_multirate
.