Matlab S-Function: Warum gibt ssGetInputPortSignal() NULL zurück?

Es gibt mehrere verschiedene Gründe, warum ssGetInputPortSignal() NULL oder nullptr zurückgibt:

  • Du könntest falsche Parameter an ssGetInputPortSignal() übergeben. Eine typische Verwendung wäre
ssgetinput_example.cpp
real_T *input = ssGetInputPortSignal(S, 0);
  • Der Eingabe-Port könnte nicht verbunden sein. In diesem Fall wird ssGetInputPortSignal() NULL oder nullptr zurückgeben. Du kannst prüfen, ob der Port verbunden ist, mit ssGetInputPortConnected():
check_input_port_connected.cpp
if (!ssGetInputPortConnected(S, 0)) {
    mexPrintf("Input port 0 is not connected\n");
}
  • Du rufst ssGetInputPortSignal() möglicherweise am falschen Ort auf. Wenn du es beispielsweise in den Funktionen mdlInitializeSizes() oder mdlOutputs() aufrufst, wird es NULL oder nullptr zurückgeben. Du solltest es stattdessen in den Funktionen mdlStart() oder mdlUpdate() aufrufen.

Ähnliche Beiträge nach Kategorie: Matlab/Simulink