Получите вектор элементов сигнала, испускаемых выходным портом
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 для полного примера, который использует эту функцию.