ssGetOutputPortSampleTimeIndex

Получите индекс частоты дискретизации выходного порта

Синтаксис

int_T ssGetOutputPortSampleTimeIndex(SimStruct *S,
 int_T outputPortIdx)

Аргументы

S

SimStruct, представляющий Блок s-function.

outputPortIdx

Индекс выходного порта, индекс частоты дискретизации которого должен быть возвращен.

Возвращается

Значение int_T, указывающее на частоту дискретизации, индексирует для выходного порта, заданного индексом outputPortIdx. Возвращает CONSTANT_TID (-2) для постоянного (inf) частоты дискретизации.

Описание

Используйте в любой стандартной программе после распространения частоты дискретизации (i. e., в или после mdlInitializeSampleTimes), чтобы определить индекс частоты дискретизации выходного порта. Необходимо использовать этот макрос, только если вы задали основанные на порте частоты дискретизации.

Механизм Simulink® возвращает индекс частоты дискретизации в контексте частот дискретизации S-функции, не частот дискретизации целой модели. Следовательно, индекс частоты дискретизации (sti), возвращенный ssGetOutputPortSampleTimeIndex и ID задачи (tid), переданный в S-функцию механизмом Simulink, не эквивалентен. Используйте индекс, возвращенный ssGetOutputPortSampleTimeIndex в вызовах ssIsSampleHit, и т.д., чтобы определить, достигает ли S-функция одной из ее частот дискретизации. Например, следующий метод mdlOutputs использует индекс частоты дискретизации, чтобы проверить, выполняется ли первый выходной порт.

static void mdlOutputs(SimStruct *S, int_T tid)
{
   int sti = ssGetOutputPortSampleTimeIndex(S,0);
   if (ssIsSampleHit(S, sti, tid)) {
          CodeForThisSampleRateHere()
   }
}

Механизм Simulink возвращает индекс CONSTANT_TID (-2) для постоянного (inf) частоты дискретизации. В этом случае индекс частоты дискретизации и ID задачи всей модели идентичны.

Языки

C, C++

Пример

Смотрите S-функцию sfun_multirate.c, используемый в sfcndemo_sfun_multirate.

Введенный в R2008a

Была ли эта тема полезной?