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

7 ビュー (過去 30 日間)
MC
MC 2020 年 9 月 30 日
回答済み: MC 2020 年 10 月 1 日
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.

採用された回答

MC
MC 2020 年 10 月 1 日
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;

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeAuthor Block Masks についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by