How to dynamically change the Mask dialog box in Simulink

I have created a dynamic mask, which change if the block parameter "Command" is equal to Reset. The Command is set when I click apply, then it hides the Channel and Channel Electrical Parameters inputs, see below
I would like to improve my mask and make it more dynamic, without the need to click on Apply.
I put the piece of code that is in my Mask Editor belwo. Can anyone advise on how to get access directly to the selected Command?
disp('AD5665r')
mask = Simulink.Mask.get(gcb);
switch get_param(gcb,'Command') % I suppose this is where I need to change the code
case {'Write_To_Input_Register_n' ,'Write_To_Input_Register_n_And_Update_all' ,'Write_To_And_Update_DAC_Channel_n'}
[control,handle]=mask.getDialogControl("ChannelA_param_container");
control.Visible='on';
mask.getParameter("Channel").Visible = 'on';
port_label('input', 1, 'VoltageSetpoint')
case 'Reset'
[control,handle]=mask.getDialogControl("ChannelA_param_container");
control.Visible='off';
mask.getParameter("Channel").Visible = 'off';
port_label('input', 1, 'ResetTrigger')
end
port_label('output', 1, 'i2c status')

 채택된 답변

Mark McBroom
Mark McBroom 2021년 8월 1일

1 개 추천

I am assuming the code you provided is from the "Initialization" tab? You could try putting the same code in the "callback" for the Command parameter on the Mask Editor -> Parameter and Dialog pane.

댓글 수: 1

No, it is from the Icon and Ports. the initialization tab contains the following code, which modify blocks under the mask. Though using the same piece of code (minus the function port_label() ) works very well.
Many thanks
Sylvain

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

추가 답변 (0개)

카테고리

도움말 센터 및 File Exchange에서 Author Block Masks에 대해 자세히 알아보기

제품

릴리스

R2021a

질문:

2021년 7월 30일

댓글:

2021년 8월 4일

Community Treasure Hunt

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

Start Hunting!

Translated by