How to dynamically change the Mask dialog box in Simulink

8 ビュー (過去 30 日間)
Sylvain
Sylvain 2021 年 7 月 30 日
コメント済み: Sylvain 2021 年 8 月 4 日
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 日
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 件のコメント
Sylvain
Sylvain 2021 年 8 月 4 日
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 件)

カテゴリ

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

製品


リリース

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by