Working with MATLAB classes in the Level-2 MATLAB S-Functions

조회 수: 8 (최근 30일)
Timur
Timur 2012년 2월 2일
댓글: Paramjeet Panwar 2019년 6월 12일
Hello,
I need an access to methods and properties of the Matlab class object (not related to axis) in the Level-2 MATLAB S-Functions. Methods and properties are used through the setup (i.e. port types) and simulation process.
Questions:
1. I need to construct an object inside an s-function. Inside what S-Function Callback Method is it better to do?
2. What are the legal ways to pass an object handle to the Lev2 S-function? Via the DialogPrm().Data?
3. What is the best way to pass object handle to the Callback Methods?
Kind regards,
Timur

채택된 답변

Kaustubha Govind
Kaustubha Govind 2012년 2월 3일
The ideal technique to save data in an S-function in such a way that it is available in all the callback methods is to use Work Vectors. In C-MEX S-functions, PWork vectors can be used to cache data of any type. However, the only type of work vectors available in MATLAB S-functions are DWork vectors, which can only store numeric types. The only other way I can think of sharing data between the S-function methods is to use the block UserData property. You can construct your object in the setup() method and destroy it in Terminate(). You can set/get the object on the block UserData property as follows:
set_param(block.BlockHandle, 'UserData', myobj);
myobj = get_param(block.BlockHandle, 'UserData');
Caveat: This is mostly a hack that I dreamed up - please look out for unintended consequences.
  댓글 수: 1
Paramjeet Panwar
Paramjeet Panwar 2019년 6월 12일
Works well for my use case! (Define and get a COM object handel from the base workspace and use it in a Matlab S-Function)

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Craig
Craig 2014년 4월 28일
More info here

Community Treasure Hunt

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

Start Hunting!

Translated by