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

27 lines
1.3 KiB
Matlab

% Copyright 2024 Volvo Car Corporation
% Licensed under Apache 2.0.
function classSortedBlocks = sortSystemByClass(system)
classes={'CVC_DISP'; 'CVC_CAL'};
classSortedBlocks=struct;
for i=1:length(classes)
classSortedBlocks.(classes{i}) = [];
end
%TODO: this parsing is not that nice, as it will find combinations of class
%suffixes, which does not exist.
blksWithType = find_system(system, 'FindAll', 'on', 'lookundermasks', 'on', 'regexp', 'on', ...
'masktype', 'TL(?!_PreProcessorIf|_MilHandler|_Enable|_SimFrame|_MainDialog|_Function|_StateflowLogger|_StateflowLoggingMain|_ToolSelector|_AddFile|_DummyTrigger|_DataStoreRead|_DataStoreWrite|_CustomCode|SAMPLES_BW_LOGICAL_OPERATOR|SAMPLES_ROUNDING_FUNCTION|SAMPLES_16BIT_DECODER|SAMPLES_16BIT_ENCODER).*', 'data', '.*?''output''\,.*?');
classWithType= tl_get(blksWithType, 'output.class');
if ~isempty(classWithType)
for i=1:length(classes)
class = classes{i};
filter_tmp = regexp(classWithType,['(?:ASIL_[ABCD]/){0,1}' class '(?:_MERGEABLE|_BURAM)?' '(?:_ASIL_[ABCD]){0,1}' '$']);
if ~isempty(filter_tmp)
filter = cellfun(@(c)~isempty(c), filter_tmp);
classSortedBlocks.(classes{i}) = blksWithType(filter);
end
end
end
end