Получение адреса реального непрерывного сигнала, поступающего во входной порт
const real_T *ssGetInputPortRealSignal(SimStruct *S, int_T inputPortIdx)
SSimStruct представляет S-функциональный блок.
inputPortIdxИндекс порта, сигнал которого требуется.
Указатель (real_T *) к реальному сигналу на входном порте, указанном индексом inputPortIdx.
Используется для получения реального сигнала на определенном входном порте. Метод должен использовать этот макрос только в том случае, если известно, что входной сигнал является реальным и mdlInitializeSizes указал, что элементы входного сигнала являются смежными, используя ssSetInputPortRequiredContiguous.
Примечание
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™.