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 CenterFile Exchange에서 Author Block Masks에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by