exponenta event banner

ssGetInputPortSampleTimeIndex

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

Синтаксис

int_T ssGetInputPortSampleTimeIndex(SimStruct *S,
 int_T inputPortIdx)

Аргументы

S

SimStruct представляет S-функциональный блок.

inputPortIdx

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

Прибыль

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

Описание

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

Модуль Simulink ® возвращает индекс времени выборки в контексте времени выборки 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