Получите адрес реального смежного сигнала, входящего во входной порт
const real_T *ssGetInputPortRealSignal(SimStruct *S, int_T inputPortIdx)
S
SimStruct, представляющий блок S-Function.
inputPortIdx
Индекс порта, сигнал которого требуется.
Указатель (real_T *
) на действительный сигнал на входном порте, заданный индексом inputPortIdx
.
Используйте, чтобы получить действительный сигнал на конкретном входном порте. Метод должен использовать этот макрос, только если известно, что входной сигнал действителен и mdlInitializeSizes
определил, что элементы входного сигнала являются смежными, используя ssSetInputPortRequiredContiguous
.
Примечание
The ssGetInputPortRealSignal
макрос становится функцией, когда вы компилируете свою S-функцию в режиме отладки (mex -g
).
C, C++
Следующий код демонстрирует использование ssGetInputPortRealSignal
.
Установите флаги, чтобы потребовать, чтобы входные порты были смежными:
void mdlInitializeSizes(SimStruct* S) { int_T i; /* snip */ if (!ssSetNumInputPorts(S,2)) return; for (i = 0; i < 2; i++) { /* snip */ ssSetInputPortDirectFeedThrough(S,i,1); ssSetInputPortRequiredContiguous(S,i,1); } /* snip */ }
Теперь можно использовать ssGetInputPortRealSignal
в mdlOutputs
:
void mdlOutputs(SimStruct* S, int_T tid) { int_T i; /* snip */ for (i = 0; i < 2; i++) { int_T nu = ssGetInputPortWidth(S,i); const real_T* u = ssGetInputPortRealSignal(S,i); UseInputVectorInSomeFunction(u, nu); } /* snip */ }
Смотрите S-функцию sfun_frmdft.c
используется в sfcndemo_frame
для полного примера с использованием этой функции. Для выполнения этой модели требуется лицензия DSP System Toolbox™.