I have some legacy code written in C that I would like to integrate with SIMULINK. Some nonsense code to describe the structure of the C-code is shown below:
legacy.h
typedef float myType1;
typedef int myType2;
typedef struct {
myType1 var1;
myType2 var2;
} myStruct;
void myFcn(myStruct* a, myType1* b, myType2 c);
legacy.c
#include "legacy.h"
void myFcn(myStruct* a, myType1* b, myType2 c)
{
// Function does something.
}
My goal is to end up with a block in SIMULINK with the same functionality as the function myFcn
written in C. Both the legacy code tool and the C-caller block work well when using only the standard data types, or even structures comprising of the standard data types as input arguments. But I can't get it to work with either of these methods when one of the input arguments is a struct comprising of other non-standard data types (or pointers to them), such as myStruct*
. Is there a way to solve this problem?
question from:
https://stackoverflow.com/questions/65940585/how-to-integrate-nested-structures-in-c-with-simulink 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…