How to integrate nested structures in C with Simulink?

3 views (last 30 days)
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 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. Is there a way to solve this problem?

Answers (1)

Fangjun Jiang
Fangjun Jiang on 28 Jan 2021
myType1 would be a Simulink.AliasType, myStruct would be a Simulink.Bus
Look in document for this objects and you should be able to generate the code as your template.

Products


Release

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!