Radio Button Mask for Simscape Block

12 views (last 30 days)
I have a stock Simscape block (Cauer Element) that has two parameters - Resistance and Tau.
I am trying to add a mask to modify these parameters, but am unsure of how to handle the Callback with the radio buttons.
Depending on which radiobutton selection is made, the underlying resistance and tau get updated with some values. There is also an option to add a custom entry, which enables some custom edit fields.
For the Custom fields, I can enable/disable the edit field container from the command line like this when the Radio Button is set to custom:
h = get_param(gcb,'MaskObject').getDialogControl('ContainerCustom')
h.Enabled = 'off'
So I wish to have the edit container disabled for all radio options except custom.
I also wish to have each radio option update the parameters of the underlying block.
I am not certain how to do these with the radio button element.

Accepted Answer

Matthew Mishrikey
Matthew Mishrikey on 10 Feb 2022
I figured out a way. I saw a snippet of code in one of the videos on the topic, and it gave me enough clues to write a callback. Here is the radio button callback in case it helps anyone!
rbc = get_param(gcbh,'HS_Select');
h = get_param(gcbh,'MaskObject').getDialogControl('ContainerCustom');
switch rbc
case 'Sink Vert'
r = '1.6';
t = '1800';
h.Enabled = 'off';
set_param(gcbh,'rthedit',r);
set_param(gcbh,'tauedit',t);
case 'Sink Horiz'
r = '1.3';
t = '1300';
h.Enabled = 'off';
set_param(gcbh,'rthedit',r);
set_param(gcbh,'tauedit',t);
case 'Ideal Heat Sink'
r = '1e-9';
t = '1e-9';
h.Enabled = 'off';
set_param(gcbh,'rthedit',r);
set_param(gcbh,'tauedit',t);
case 'Undersized Heat Sink'
r = '7';
t = '30';
h.Enabled = 'off';
set_param(gcbh,'rthedit',r);
set_param(gcbh,'tauedit',t);
case 'Custom'
h.Enabled = 'on';
end

More Answers (0)

Categories

Products


Release

R2021a

Community Treasure Hunt

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

Start Hunting!