ssGetInputPortSampleTimeIndex

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

Синтаксис

int_T ssGetInputPortSampleTimeIndex(SimStruct *S,
 int_T inputPortIdx)

Аргументы

S

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

inputPortIdx

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

Возвраты

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

Описание

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

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

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

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

Языки

C, C++

Пример

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

См. также

ssSetInputPortSampleTime

Представлено до R2006a