MATLAB Answers

How to access masked model parameter from within referenced model

12 views (last 30 days)
Kyle Huggins
Kyle Huggins on 20 Dec 2018
Commented: Kyle Huggins on 20 Dec 2018
I have a simulink parent model (A) with a model reference to another model (B), named "B_name" within A, with a mask for a parameter (C).
I have a matlab function block func which needs access to C. How can I programmatically access the masked parameter from within the referenced model?
Attempted solutions:
%peudo code for matlab function inside referenced model B
function func()
p = Simulink.Mask.get(bdroot(gcb));
q = p.getWorkspaceVariables;
Doesn't work because the mask it returns is just the mask object. Not what the parameter was actually changed to.
q = get_param(gcs,'modelworkspace'); %gcs is "B"
Also doesn't work, it just gives me the default value. Not the masked value. I can get the value of the masked parameter using this:
p = Simulink.Mask.get('A/B_name');
q = p.getWorkspaceVariables;
But the whole point of a model reference & a mask is that it doesn't care who is calling it. So from within func I have no clue what the calling model named the model reference, so I have no idea how to get there. Nor do I appear to know the root name of the calling model.
So i'm either seriously misunderstanding how to use model masks or there is a path forward that i have missed.
Any help is appreciated.

Answers (0)