Получите количество мест назначения вызова функции.
int_T ssGetCallSystemNumFcnCallDestinations(SimStruct *S, int_T elemIdx)
S
SimStruct, который представляет Блок 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*/ } }