Задайте, может ли один из входных портов S-функции быть перезаписан одним из ее выходных портов
void ssSetInputPortOverWritable(SimStruct *S, int_T port, int_T isOverwritable)
S
SimStruct, представляющий Блок s-function.
port
Индекс входного порта, overwritability которого устанавливается.
isOverwritable
Значение, задающее, сверхперезаписываем ли port
.
Используйте в mdlInitializeSizes
(после ssSetNumInputPorts
), чтобы задать, сверхперезаписываем ли port
одним из выходных портов S-функции. Механизм Simulink® использует эту установку в качестве одного критерия в определении, может ли один из выходных портов этой S-функции совместно использовать память с port
. Если isOverwritable=1
и другие критерии удовлетворены, механизм выделяет общий блок памяти для входного порта и одного из выходных портов S-функции, таким образом уменьшая требования к памяти симуляции. Значением по умолчанию является isOverwritable=0
, что означает, что port
не может совместно использовать память ни с одним из выходных портов S-функции.
Если вы устанавливаете входной порт быть сверхперезаписываемым, необходимо также указать, что входной порт и по крайней мере один из выходных портов S-функции являются допускающими повторное использование. Используйте ssSetInputPortOptimOpts
и ssSetOutputPortOptimOpts
, чтобы сделать это.
C, C++
Смотрите S-функцию sfun_multirate.c
, используемый в sfcndemo_sfun_multirate
и S-функции sdotproduct.c
, используемый в sfcndemo_sdotproduct
.
ssSetNumInputPorts
, ssSetInputPortOptimOpts
, ssSetOutputPortOptimOpts
, ssGetInputPortBufferDstPort