Names of connected outputs to inports of selected subsystem

6 Ansichten (letzte 30 Tage)
Ewela
Ewela am 12 Okt. 2021
Bearbeitet: Ewela am 20 Okt. 2021
I want to get the proper name of the connected port but the get_param gives me the incorrect names:
block_of_interest_params = get_param(block_of_interest,'PortConnectivity');
connected_inports_handle = find_system(block_of_interest_params(i).SrcBlock,'SearchDepth',1,'LookUnderMasks','all','BlockType','Outport','Port',block_of_interest_params(i).Type)
connected_block_nameport{i} = get_param(connected_inports_handle,'Name') %connected block portname
I need to have port names of the outport that are connected to In5 and In6.
and my incorrect result:
correct is when tags out2 are out1.
Thank you in advance for help!
  10 Kommentare
Ewela
Ewela am 12 Okt. 2021
I need the name: Out1 and Out3 not: Subsystem:2. It is possible?
Ewela
Ewela am 12 Okt. 2021
The line:
get(get(a.Inport,'line'),'SourcePort')
get the error:
Error using get
Conversion to double from cell is not possible

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

C B
C B am 12 Okt. 2021
Bearbeitet: C B am 12 Okt. 2021
@Ewelina Cholodowicz I hope this will solve your issue :)
Please let me know if you stuck at any point, or any point is not clear.
load_system('sampleModel')
block_of_interest = 'sampleModel/Subsystem1';
block_of_interest_PH = get_param(block_of_interest,'PortHandles');% get all ports
for i= 1: length(block_of_interest_PH.Inport)% loop through all inports
lineHnd = get(block_of_interest_PH.Inport(i),'line');%get line handle to trace back
if lineHnd~= -1 % if line handle is present
SubName = get(lineHnd,'SourcePort');% get source port number of sub
SubHnd = get(lineHnd,'SrcBlockHandle');% get source block i.e Subsystem
OPName = get(find_system(SubHnd,'BlockType','Outport'),'Name');% get all outport name of subsystem
GotoBlockName = OPName{str2num(extractAfter(SubName,':'))}% get specific outport name
%add goto block logic below GotoBlockName have correct name
end
end
GotoBlockName = 'Out1'
GotoBlockName = 'Out3'
The above code shows how to get outport name please add from and gotot logic below that
  5 Kommentare
C B
C B am 20 Okt. 2021
Bearbeitet: C B am 20 Okt. 2021
Does line connected to multiple subsystem?
Ewela
Ewela am 20 Okt. 2021
Bearbeitet: Ewela am 20 Okt. 2021
yes, line is connected to two subsystems.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Simulink Functions finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by