exponenta event banner

ssGetOutputPortSampleTimeIndex

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

Синтаксис

int_T ssGetOutputPortSampleTimeIndex(SimStruct *S,
 int_T outputPortIdx)

Аргументы

S

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

outputPortIdx

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

Прибыль

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

Описание

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

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