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