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