ssGetOutputPortSampleTimeIndex

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

Синтаксис

int_T ssGetOutputPortSampleTimeIndex(SimStruct *S,
 int_T outputPortIdx)

Аргументы

S

SimStruct, представляющий блок S-Function.

outputPortIdx

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

Возвраты

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

Описание

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

Simulink® engine возвращает временной индекс расчета в контексте шагов расчета S-функции, а не всего шага расчета модели. Следовательно, индекс шага расчета (sti) возвращен ssGetOutputPortSampleTimeIndex и идентификатор задачи (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) шаги расчета. В этом случае индекс шага расчета и идентификатор задачи всей модели идентичны.

Языки

C, C++

Пример

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

Введенный в R2008a