ssGetInputPortSampleTimeIndex

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

Синтаксис

int_T ssGetInputPortSampleTimeIndex(SimStruct *S,
 int_T inputPortIdx)

Аргументы

S

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

inputPortIdx

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

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

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

Описание

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

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

Языки

C, C++

Пример

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

Смотрите также

ssSetInputPortSampleTime

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