Is there a way to access class data and methods with the scope (::) operator with the Legacy Code Tool in Simulink 6.4 (R2006a)?
1 view (last 30 days)
Show older comments
I am using the Legacy Code Tool (LCT) to import some existing C++ code. In my .cpp function calls, I am accessing class data and methods via the scope operator ( :: ). I am not sure how this would translate over to the wrappers for methods used in Simulink.
Accepted Answer
MathWorks Support Team
on 27 Jun 2009
This is a limitation in the Legacy Code Tool.
You can workaround the limitation by writing simple preprocessor macros (if the methods you want to call are static):
#define Common_DDM_Type Common::DDM_Type
#define CCommon_vectorType CCommon::vectorType
...
#define CCommon_computeVectorDotProduct CCommon::computeVectorDotProduct
...
You will have to create the bus objects corresponding to the Common::DDM_Type and CCommon::vectorType structures. Do not forget to specify the header file for each bus object. The LCT function specification should be like:
def.OutputFcnSpec = 'FDCommandType y1 = computeFlightDirectorCommand(
int32 u1,
Common_DDM_Type u2,
Common_DDM_Type u3,
Common_DDM_Type u4,
Common_DDM_Type u5,
CCommon_vectorType u6,
CCommon_vectorType u7, double u8);'
This is a common workaround.
0 Comments
More Answers (0)
See Also
Categories
Find more on Simulink Environment Customization in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!