find

Найдите элементы архитектуры AUTOSAR

Описание

пример

archElements = find(archCCM,category) поисковые запросы компонент AUTOSAR, состав или модель archCCM архитектуры для элементов архитектуры, которые совпадают с заданной категорией. archElements выходной аргумент возвращает указатели для найденных элементов архитектуры. Допустимые значения для category Component, CompositionПорт, или Connector. archCCM аргумент является компонентом, составом или указателем модели архитектуры, возвращенным предыдущим вызовом addComponent, addComposition, autosar.arch.createModel, или autosar.arch.loadModel. Осциллограф по умолчанию find верхний уровень заданного состава или модели архитектуры, не всех уровней иерархии модели.

archElements = find(archCCM,category,'AllLevels',value) позволяет вам расширять поиск элементов архитектуры AUTOSAR ко всем уровням состава AUTOSAR или иерархии модели архитектуры. Чтобы искать все уровни, задайте value как true.

archElements = find(archCCM,category,property,value) задает значение ограничения на свойстве заданной категории элементов, сужая поиск.

Примеры

свернуть все

В модели myArchModel архитектуры AUTOSAR:

  • Найдите компоненты, которые расположены только в верхнем уровне модели архитектуры.

  • Найдите компоненты расположенными на всех уровнях иерархии модели.

  • Найдите порты блока состава и перечислите их Kind и Name значения.

% Create and open AUTOSAR architecture model
modelName = 'myArchModel';
archModel = autosar.arch.createModel(modelName,true);

% Add a composition
composition = addComposition(archModel,'Sensors');

% Add 2 components inside Sensors
names = {'PedalSnsr','ThrottleSnsr'};
sensorSWCs = addComponent(composition,names,'Kind','SensorActuator');
layout(composition); % Auto-arrange layout

% Add components at architecture model top level
addComponent(archModel,'Controller1');
actuator = addComponent(archModel,'Actuator');
set(actuator,'Kind','SensorActuator');

% Add architecture ports
addPort(archModel,'Receiver',{'TPS_Hw','APP_Hw'});
addPort(archModel,'Sender','ThrCmd_Hw');

% Add composition ports
addPort(composition,'Receiver',{'TPS_Hw','APP_Hw'});
addPort(composition,'Sender',{'TPS_Perc','APP_Perc'});

% Add component ports
controller = find(archModel,'Component','Name','Controller1');
addPort(controller,'Receiver',{'TPS_Perc','APP_Perc'});
addPort(controller,'Sender','ThrCmd_Perc');
addPort(actuator,'Receiver','ThrCmd_Perc');
addPort(actuator,'Sender','ThrCmd_Hw');

% Connect composition and components based on matching port names
connect(archModel,composition,controller);
connect(archModel,controller,actuator);

% Connect specified architecture ports to specified composition and component ports
connect(archModel,archModel.Ports(1),composition.Ports(1));
% Instead of connect(archModel,archModel.Ports(2),composition.Ports(2)), use find
connect(archModel,...
    find(archModel,'Port','Name','APP_Hw'),...
    find(composition,'Port','Name','APP_Hw'));
connect(archModel,actuator.Ports(2),archModel.Ports(3));

layout(archModel);  % Auto-arrange layout

% Find components in architecture model top level only
components_in_arch_top_level = find(archModel,'Component')
% Find components in all hierarchy
components_in_all_hierarchy = find(archModel,'Component','AllLevels',true)
% Find ports for composition block only
composition_ports = find(composition,'Port')

% List Kind and Name property values for composition ports 
for ii=1:length(composition_ports)
    Port = composition_ports(ii);
    portName = get(Port,'Name');
    portKind = get(Port,'Kind');
    fprintf('%s port %s\n',portKind,portName);
end
components_in_arch_top_level = 
  2×1 Component array with properties:
    Name
    Kind
    Ports
    ReferenceName
    Parent
    SimulinkHandle

components_in_all_hierarchy = 
  4×1 Component array with properties:
    Name
    Kind
    Ports
    ReferenceName
    Parent
    SimulinkHandle

composition_ports = 
  4×1 CompPort array with properties:
    Kind
    Connected
    Name
    Parent
    SimulinkHandle

Receiver port TPS_Hw
Receiver port APP_Hw
Sender port TPS_Perc
Sender port APP_Perc

Входные параметры

свернуть все

Компонент AUTOSAR, состав или модель архитектуры, в которой можно искать указанные элементы архитектуры. Аргумент является компонентом, составом или указателем модели архитектуры, возвращенным предыдущим вызовом addComponent, addComposition, autosar.arch.createModel, или autosar.arch.loadModel.

Пример: archModel

Тип элемента архитектуры AUTOSAR, чтобы найти. Допустимыми категориями является Component, CompositionПорт, или Connector.

Пример: 'Component'

Задайте true искать все уровни состава AUTOSAR или иерархии модели архитектуры для указанных элементов архитектуры. Осциллограф по умолчанию find верхний уровень заданного состава или модели архитектуры, не всех уровней иерархии модели.

Пример: 'AllLevels',true

Допустимое свойство заданной категории элементов архитектуры и значение, чтобы соответствовать для того свойства в поиске.

Пример: 'Name','APP_Hw'

Выходные аргументы

свернуть все

Возвращает один или несколько указателей для найденных элементов архитектуры.

Введенный в R2020a