How do I get the port names of a block based on their port handles?

140 Ansichten (letzte 30 Tage)
I'm trying to find A,B,C,a,b or c from the port handle they are set from inside the mask but if I try something like
get_param(porthandle, 'name')
I get an empty string, but name is a valid object parameter.

Antworten (2)

Christopher Wallace
Christopher Wallace am 19 Jul. 2018
Select the subsystem and then use the following code:
find_system(gcb, 'SearchDepth', 1, 'BlockType', 'Inport')
find_system(gcb, 'SearchDepth', 1, 'BlockType', 'Outport')
  3 Kommentare
Rafael Souza Baquero
Rafael Souza Baquero am 3 Aug. 2023
Matthew Calder: the answer is 'PMIOPort'.
When you don't know the exact string you need to find the desired block, I suggest you create a blank Simulink model, place the block, click on it and then run the command "get_param(gcb,'BlockType')".

Melden Sie sich an, um zu kommentieren.


Simon Ellwanger
Simon Ellwanger am 26 Feb. 2021
Bearbeitet: Simon Ellwanger am 26 Feb. 2021
try this:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% please load and select/mark the block before execution !!!
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%get block handles and port handles
rootmodel= gcb;
porthandles=get(gcbh,'PortHandles')
% get OUTPORT PortNames:
simBlockH = get_param(gcbh, 'Handle')
handles = find_system(simBlockH, 'LookUnderMasks', 'on', 'FollowLinks', 'on', 'SearchDepth', 1, 'BlockType', 'Outport');
portInfo = [get_param(handles, 'Name'), get_param(handles, 'Port')]
for i = 1: size(porthandles.Outport,2)
%draw line at each port
pos = get(porthandles.Outport(i), 'Position');
Linepos = [pos(1)+200 pos(2)-5 pos(1)+200+10 pos(2)+5];
temp_block = add_block('simulink/Commonly Used Blocks/Terminator',[gcs '/Term_' int2str(i)],'Position', Linepos);
h1 = get_param(temp_block,'PortHandles');
add_line(gcs,porthandles.Outport(i),h1.Inport);
% name line
linehandle = get(porthandles.Outport(i), 'Line');
set(linehandle, 'Name', portInfo{i});
end

Kategorien

Mehr zu Programmatic Model Editing finden Sie in Help Center und File Exchange

Produkte


Version

R2017a

Community Treasure Hunt

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

Start Hunting!

Translated by