How do I get the port names of a block based on their port handles?
    34 次查看(过去 30 天)
  
       显示 更早的评论
    
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 个评论
回答(2 个)
  Christopher Wallace
      
 2018-7-19
        Select the subsystem and then use the following code:
find_system(gcb, 'SearchDepth', 1, 'BlockType', 'Inport')
find_system(gcb, 'SearchDepth', 1, 'BlockType', 'Outport')
3 个评论
  Rafael Souza Baquero
 2023-8-3
				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
      
 2021-2-26
        
      编辑:Simon Ellwanger
      
 2021-2-26
  
      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 个评论
另请参阅
类别
				在 Help Center 和 File Exchange 中查找有关 Programmatic Model Editing 的更多信息
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!





