exponenta event banner

найти

Поиск элементов архитектуры AUTOSAR

Описание

пример

archElements = find(archCCM,category) поиск компонента, композиции или архитектурной модели AUTOSAR archCCM для элементов архитектуры, соответствующих указанной категории. archElements выходной аргумент возвращает дескрипторы для найденных элементов архитектуры. Допустимые значения для category являются Component, Composition, Port, или 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) задает ограничивающее значение для свойства указанной категории элементов, сужая поиск.

Примеры

свернуть все

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

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

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

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

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

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

% Add 2 components inside Sensors composition
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');

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

% Connect specified arch root ports to specified composition and component ports
connect(archModel,archModel.Ports(1),composition.Ports(1));
% Use find to construct port specifications
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, Port, или Connector.

Пример: 'Component'

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

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

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

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

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

свернуть все

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

Представлен в R2020a