Получите вектор из элементов сигнала, испускаемых выходным портом
void *ssGetOutputPortSignal(SimStruct *S, int_T port)
SSimStruct, представляющий Блок s-function.
portИндекс выходного порта.
Указатель (void *) к вектору из элементов сигнала выход в порте, заданном индексом port.
Используйте в любой стандартной программе цикла симуляции, mdlInitializeConditions, или mdlStart получить вектор из элементов сигнала, испускаемых выходным портом.
Примечание
Если вы указали, что выходные порты являются допускающим повторное использование использованием , затем вы не можете использовать ssSetOutputPortOptimOptsssGetOutputPortSignal где угодно кроме mdlOutputs. Например, если выходные параметры были заданы как допускающие повторное использование с SS_REUSABLE_AND_LOCAL отметьте, mdlUpdate стандартные ошибки, потому что это пытается получить доступ к выходу memory, который недоступен.
Примечание
Если выходы порта сигнал типа double (real_T), используйте ssGetOutputPortRealSignal получить сигнальный вектор и избежать потребности ввести бросок выход ssGetOutputPortSignal.
C, C++
Примите, что типами данных выходного порта является int16_T.
nOutputPorts = ssGetNumOutputPorts(S);
for (i = 0; i < nOutputPorts; i++) {
int16_T *y = (int16_T *)ssGetOutputPortSignal(S,i);
int_T ny = ssGetOutputPortWidth(S,i);
for (j = 0; j < ny; j++) {
SomeFunctionToFillInOutput(y[j]);
}
}
Смотрите S-функцию sfun_port_constant.c используемый в sfcndemo_port_constant для полного примера, который использует эту функцию.