Simulink Mask Port Visibility
Ältere Kommentare anzeigen
Hello!
I have a masked simulink block which has 3 models with different level of fidelity.
I would like to add a check box that when selected turns on/off the visibility of certain ports that are/are not required in the block depending of the user selection.
I see that in some blocks such as the battery one in the figure. This functionality is already added. The port Ta is activated or deactived as a function of the check box.
Does anyone know who to do this?

Thanks in advance.
Antworten (4)
Nikhil Sonavane
am 27 Nov. 2020
0 Stimmen
Arthur Reis
am 23 Mär. 2022
0 Stimmen
Katherine May
am 20 Apr. 2022
If you're running a custom S-function using a MEXed C-file, you can add the checkbox value to the S-function parameters to send it through to your C file, then selectively enable only the number of ports that you need. Also make sure that accompanying TLC files & port labels will set/grab the correct values from the correct ports.
Like this:
static void mdlInitializeSizes(SimStruct *S) {
boolean usePort = mxGetScalar(ssGetSFcnParam(S, INDEX_USE_PORT)) == 1;
[...]
if(usePort){
ssSetNumInputPorts(S, 1);
ssSetNumOutputPorts(S, 1);
} else {
ssSetNumInputPorts(S, 0);
ssSetNumOutputPorts(S, 0);
}
}
I'm still investigating a solution for when the controlling block is a subsystem containing S-function blocks.
Alexander
am 22 Dez. 2023
0 Stimmen
I think this is what you are after:
Kategorien
Mehr zu Model, Block, and Port Callbacks finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!