How do I get the port names of a block based on their port handles?
    35 vues (au cours des 30 derniers jours)
  
       Afficher commentaires plus anciens
    
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.


0 commentaires
Réponses (2)
  Christopher Wallace
      
 le 19 Juil 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 commentaires
  Rafael Souza Baquero
 le 3 Août 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')".
  Simon Ellwanger
      
 le 26 Fév 2021
        
      Modifié(e) : Simon Ellwanger
      
 le 26 Fév 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
0 commentaires
Voir également
Catégories
				En savoir plus sur Programmatic Model Editing dans Help Center et File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!





