S-Function de Matlab: ¿Por qué ssGetInputPortSignal() devuelve NULL?

Hay varias razones diferentes por las que ssGetInputPortSignal() devuelve NULL o nullptr:

  • Podrías estar pasando parámetros incorrectos a ssGetInputPortSignal(). Un uso típico sería
ssgetinput_example.cpp
real_T *input = ssGetInputPortSignal(S, 0);
  • El puerto de entrada podría no estar conectado. En este caso, ssGetInputPortSignal() devolverá NULL o nullptr. Puedes verificar si el puerto está conectado usando ssGetInputPortConnected():
check_input_port_connected.cpp
if (!ssGetInputPortConnected(S, 0)) {
    mexPrintf("Input port 0 is not connected\n");
}
  • Podrías estar llamando ssGetInputPortSignal() en el lugar equivocado. Por ejemplo, si lo llamas en las funciones mdlInitializeSizes() o mdlOutputs(), devolverá NULL o nullptr. Deberías llamarlo en las funciones mdlStart() o mdlUpdate() en su lugar.

Echa un vistazo a artículos similares por categoría: Matlab/Simulink