Получите вектор элементов сигнала, излучаемых портом выхода
void *ssGetOutputPortSignal(SimStruct *S, int_T port)
SSimStruct, представляющий блок S-Function.
portИндекс выходного порта.
Указатель (void *) к вектору элементов сигнала, выводимых на порт, заданный индексом port.
Используйте в любой стандартной программе цикла симуляции, mdlInitializeConditions, или mdlStart получение вектора сигнальных элементов, излучаемых портом выхода.
Примечание
Если вы указали, что выходные порты переиспользуются , тогда вы не можете использовать ssSetOutputPortOptimOptsssGetOutputPortSignal где угодно, кроме mdlOutputs. Для примера, если выходы были заданы как переиспользуемые со SS_REUSABLE_AND_LOCAL флаг, mdlUpdate обычные ошибки, поскольку он пытается получить доступ к недоступной выходной памяти.
Примечание
Если порт выводит сигнал типа 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 для полного примера, который использует эту функцию.