olindgre 2ece01e1d7 Make powertrain-build not overlap with pybuild in site-packages
Change-Id: I7b59f3f04f0f787d35db0b9389f295bf1ad24f56
2024-09-17 10:25:04 +02:00

40 lines
1.8 KiB
Matlab

% Copyright 2024 Volvo Car Corporation
% Licensed under Apache 2.0.
function tmpSrcBlock = getDefBlock(varargin)
%% Find the blocks where the input variables are defined
if length(varargin) == 1
startBlock = varargin{1};
tmpSrcBlock = getSrcBlocks(startBlock);
tmpPort = get(getSrcLines(startBlock),'srcporthandle');
elseif length(varargin) == 2
tmpSrcBlock = varargin{1};
tmpPort = varargin{2};
else
error('Wrong number of input arguments')
end
while 1
%% If the block is a inport, but not a TL-port
if strcmp(get_param(tmpSrcBlock,'blocktype'),'Inport') && isempty(get_param(tmpSrcBlock,'MaskType'))
tmp=get_param(get_param(tmpSrcBlock,'parent'),'linehandles');
tmpPort=get_param(tmp.Inport(str2num(get_param(tmpSrcBlock,'port'))),'srcporthandle');
tmpSrcBlock=get_param(tmp.Inport(str2num(get_param(tmpSrcBlock,'port'))),'srcblockhandle');
%% If the block is a From-block
elseif strcmp(get_param(tmpSrcBlock,'blocktype'),'From')
goto=find_system(get_param(tmpSrcBlock,'parent'),'lookundermasks','on','searchdepth',1,'blocktype','Goto','GotoTag',get_param(tmpSrcBlock,'GotoTag'));
tmp=get_param(goto{1},'linehandles');
tmpPort=get_param(tmp.Inport,'srcporthandle');
tmpSrcBlock=get_param(tmp.Inport,'srcblockhandle');
%% If subsystem
elseif strcmp(get_param(tmpSrcBlock,'blocktype'),'SubSystem')
outport=find_system(tmpSrcBlock,'followlinks', 'on', 'lookundermasks','on','searchdepth',1,'blocktype','Outport','port', num2str(get(tmpPort,'PortNumber')));
tmpPort=get_param(getSrcLines(outport),'srcporthandle');
tmpSrcBlock=getSrcBlocks(outport);
else
break
end
end
end