Получите количество мест назначения вызова функции.
int_T ssGetCallSystemNumFcnCallDestinations(SimStruct *S, int_T elemIdx)
SSimStruct, который представляет Блок s-function
elemIdxОснованный на нуле индекс элемента, который выводится на первом выходном порте.
int_T
Используйте, чтобы определить количество мест назначения вызова функции, когда сигнал вызова функции будет разделен блоком Function-Call Split.
C, C++
В этой модели в качестве примера пользовательский Блок s-function выводит сигнал вызова функции на своем первом порте и запрашивает количество мест назначения вызова функции через его второй выходной порт и вызов ssGetCallSustemNumFcnCallDestinations (S, 0). Сигнал разделен блоком Function-Call Split и затем вызывает два места назначения вызова функции: f и h. Выходной порт Out3 правильно выходные параметры 2.
static void mdlOutputs(SimStruct *S, int_T tid) {
/*
* The second output port outputs the number of blocks
* being called to Out3
*/
real_T *y = ssGetOutputPortRealSignal(S, 1);
int_T numFC = ssGetCallSystemNumFcnCallDestinations(S, 0);
y[0] = (real_T)numFC;
UNUSED_PARAMETER(tid);
/* The first output (function-call port) makes a function-call */
if (!ssCallSystem(S,0)) {
/* Error occurred which will be reported by Simulink */
/* Not true, Simulink does not report it*/
}
}