Hello everybody,
I'm currently using callbacks in parameter masks to switch block choice for configurable Subsystems. So I have a system tree like
parent
- Isolierung (configurable subsystem) - Bypass (Option 1) - Schichtteil (Option 2) - Isolierung1 (configurable subsystem) - Bypass (Option 1) - Schichtteil (Option 2)etc.
When I use a parameter 'iso', it Looks (and works) like this for one subsystem:
switch (get_param(gcb,'iso')) case 'mit Isolierung' set_param([gcb '/Isolierung'], 'BlockChoice', 'Schichtteil') case 'ohne Isolierung' set_param([gcb '/Isolierung'], 'BlockChoice', 'Bypass')end
'iso' is Dropdown…
When I try to change more than one system, I get errors:
switch (get_param(gcb,'iso')) case 'mit Isolierung' set_param([gcb '/Isolierung'], 'BlockChoice', 'Schichtteil') set_param([gcb '/Isolierung1'], 'BlockChoice', 'Schichtteil') case 'ohne Isolierung' set_param([gcb '/Isolierung'], 'BlockChoice', 'Bypass') set_param([gcb '/Isolierung1'], 'BlockChoice', 'Bypass')end
Error:Error invoking object method –> Error in Rohr_mit_Wand/Rohr NTU5: Initialization commands cannot be evaluated. –>Invalid Simulink object name: Rohr_mit_Wand/Rohr NTU5/Isolierung/Schichtteil/Isolierung1
Update: I investigated further:
>> gcbans =comp_smscp/Rohre_Ventile/Rohr NTU5>> get_param([gcb '/Isolierung3'], 'BlockChoice')ans =Bypass>> gcbans =comp_smscp/Rohre_Ventile/Rohr NTU5>> set_param([gcb '/Isolierung3'], 'BlockChoice', 'Schichtteil')>> gcbans =comp_smscp/Rohre_Ventile/Rohr NTU5/Isolierung3/Schichtteil
So with every set_param, gcb changes its path. How can I step back to the previous path or set multiple subsystem parameters at once?
Best Answer