How to integrate nested structures in C with Simulink?

3 visualizaciones (últimos 30 días)
Mattias Granström
Mattias Granström el 28 de En. de 2021
Respondida: Fangjun Jiang el 28 de En. de 2021
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?

Respuestas (1)

Fangjun Jiang
Fangjun Jiang el 28 de En. de 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.

Categorías

Más información sobre Additional Math and Discrete en Help Center y File Exchange.

Productos


Versión

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by