Clear Filters
Clear Filters

How I change a block mask programmatically using a Level 2 Matlab S function?

1 view (last 30 days)
I would like to change items in a block mask for a Level 2 Matlab S function using the S function.
For example, I have an S function that reads a file and sets the number of outports based on the data in that file. I have a mask on that S function block. How do I configure the port labels of the mask using the S function. Using callbacks in the mask would be acceptable.
I have tried set_param(gcb, 'MaskDisplay', display_code) in the setup function of the S function code but ended up in an unrecoverable recursion situation.
I was going to try to use a callback in the mask itself but have not found a good way to get the data from the S function to the callback.

Accepted Answer

MC
MC on 1 Oct 2020
I figured it out. I used "Simulink.Mask..." to set the property of the mask in the S function setup which doesn't seem to trigger the S function to run like set_param does.
mask_object = Simulink.Mask.get(gcb);
display_script = mask_object.Display;
Do some stuff to the value of display_script
mask_object.Display = display_script;

More Answers (0)

Categories

Find more on Author Block Masks in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!