Main Content

find

AUTOSAR アーキテクチャ要素の検索

説明

archElements = find(archCCM,category) は、指定したカテゴリと一致するアーキテクチャ要素の AUTOSAR コンポーネント、コンポジションまたはアーキテクチャ モデル archCCM を検索します。archElements 出力引数は、見つかったアーキテクチャ要素のハンドルを返します。category の有効な値は、ComponentCompositionPort または Connector です。archCCM 引数は、addComponentaddCompositionautosar.arch.createModel または autosar.arch.loadModel への以前の呼び出しにより返されるコンポーネント、コンポジションまたはアーキテクチャ モデルのハンドルです。find の既定のスコープは、指定したコンポジションまたはアーキテクチャ モデルの最上位レベルであり、モデルの階層構造のすべてのレベルではありません。

archElements = find(archCCM,category,'AllLevels',value) を使用すると、AUTOSAR アーキテクチャ要素の検索を AUTOSAR コンポジションまたはアーキテクチャ モデルの階層構造のすべてのレベルに拡張できます。すべてのレベルを検索するには、valuetrue として指定します。

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 コンポーネント、コンポジションまたはアーキテクチャ モデル。この引数は、addComponentaddCompositionautosar.arch.createModel または autosar.arch.loadModel への以前の呼び出しにより返されるコンポーネント、コンポジションまたはアーキテクチャ モデルのハンドルです。

例: archModel

検索する AUTOSAR アーキテクチャ要素のタイプ有効なカテゴリは、ComponentCompositionPort または Connector です。

例: 'Component'

指定したアーキテクチャ要素の AUTOSAR コンポジションまたはアーキテクチャ モデルの階層構造のすべてのレベルを検索するには、true を指定します。find の既定のスコープは、指定したコンポジションまたはアーキテクチャ モデルの最上位レベルであり、モデルの階層構造のすべてのレベルではありません。

例: 'AllLevels',true

アーキテクチャ要素の指定したカテゴリの有効なプロパティと、検索でそのプロパティに一致させる値。

例: 'Name','APP_Hw'

出力引数

すべて折りたたむ

見つかったアーキテクチャ要素の 1 つ以上のハンドルを返します。

バージョン履歴

R2020a で導入