Main Content

addPort

ポートの AUTOSAR コンポーネント、コンポジションまたはアーキテクチャ モデルへの追加

R2020a 以降

説明

ports = addPort(archCCM,portKind,portNames) は、タイプが portKind の 1 つ以上のポートをコンポーネント、コンポジションまたはアーキテクチャ モデル archCCM に追加します。

Classic アーキテクチャの場合、portKind の有効な値は、'Receiver' および 'Sender' です。Adaptive アーキテクチャの場合、portKind の有効な値は、'Receiver''Sender''Client''Server' です。portNames 引数は、追加する 1 つ以上のポートの名前を指定します。

archCCM 引数は、addComponentaddCompositionautosar.arch.createModel または autosar.arch.loadModel への以前の呼び出しにより返されるコンポーネント、コンポジションまたはアーキテクチャ モデルのハンドルです。ports 出力引数は、autosar.arch.CompPort オブジェクトまたは autosar.arch.ArchPort オブジェクトである 1 つ以上の端子ハンドルを返します。

すべて折りたたむ

AUTOSAR Classic アーキテクチャ モデルで、次を実行します。

  1. Sensors という名前のコンポジションを追加します。

  2. モデルの最上位レベルで、Controller1 という名前のアプリケーション コンポーネントと Actuator という名前のセンサー/アクチュエータ コンポーネントを追加します。

  3. アーキテクチャ モデルには、2 つの受信 (入力) ポートと 1 つの送信 (出力) ポートを追加します。ポートはアーキテクチャ モデルの境界に表示されます。

  4. コンポジション ブロックには、2 つの受信ポートと 2 つの送信ポートを追加します。コンポジションの受信ポートの名前は、それらが接続するアーキテクチャ モデルの受信ポートの名前と一致します。

  5. コンポーネント ブロックには、受信ポートと送信ポートを追加します。コンポーネントの受信ポートと送信ポートの名前は、それらが接続するコンポーネント ポート、コンポジション ポートまたはアーキテクチャ モデル ポートの名前と一致します。

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

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

% 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');

layout(archModel);  % Auto-arrange layout

既定では、autosar.arch.createModelは、Classic Platform の AUTOSAR アーキテクチャ モデルを作成します。Classic Platform を明示的に指定するには、autosar.arch.createModel を呼び出すときに名前と値の引数 platform を使用します。同じアーキテクチャ モデル内で Classic コンポーネントと Adaptive コンポーネントを混在させることはサポートされていません。

AUTOSAR Adaptive アーキテクチャ モデルで、次を実行します。

  1. Sensors という名前のコンポジションを追加します。

  2. モデルの最上位レベルで、Filter という名前の Adaptive アプリケーション コンポーネントを追加します。

  3. アーキテクチャ モデルには、2 つの受信 (入力) ポートと 2 つの送信 (出力) ポートを追加します。ポートはアーキテクチャ モデルの境界に表示されます。

  4. コンポジション ブロックには、2 つの受信ポートと 2 つの送信ポートを追加します。コンポジションの受信ポートの名前は、それらが接続するアーキテクチャ モデルの受信ポートの名前と一致します。

  5. コンポジション ブロックでもクライアント ポートを追加します。

  6. コンポーネント ブロックには、サーバー ポートを追加します。コンポーネントのサーバー ポートの名前は、それが接続するコンポーネント ポート、コンポジション ポートまたはアーキテクチャ モデル ポートの名前と一致します。

% Create AUTOSAR adaptive architecture model
modelName = 'myArchAdaptive';
archModel = autosar.arch.createModel(modelName,'platform','Adaptive');

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

% Add component at architecture model top level 
addComponent(archModel,'Filter'); % defaults to AdaptiveApplication

% Add architecture ports
addPort(archModel,'Receiver',{'Data_Snsr1','Data_Snsr2'});
addPort(archModel,'Sender',{'FilteredData_Snsr1','FilteredData_Snsr2'});

% Add composition ports
addPort(composition,'Receiver',{'Data_Snsr1','Data_Snsr2'});
addPort(composition,'Sender',{'FilteredData_Snsr1','FilteredData_Snsr2'});
addPort(composition,'Client','Filter_CSPort');

% Add component ports
filter = find(archModel,'Component','Name','Filter');
addPort(filter,'Server','Filter_CSPort');
layout(archModel);  % Auto-arrange layout

同じアーキテクチャ モデル内で Classic コンポーネントと Adaptive コンポーネントを混在させることはサポートされていません。

入力引数

すべて折りたたむ

1 つ以上のポートを追加する AUTOSAR コンポーネント、コンポジションまたはアーキテクチャ モデル。この引数は、addComponentaddCompositionautosar.arch.createModel または autosar.arch.loadModel への以前の呼び出しにより返されるコンポーネント、コンポジションまたはアーキテクチャ モデルのハンドルです。

例: archModel

指定したコンポーネント、コンポジションまたはアーキテクチャ モデルに追加する AUTOSAR ポートのタイプ。指定したタイプは、すべての追加するポートに適用されます。

Classic アーキテクチャの場合、portKind の有効な値は、'Receiver' および 'Sender' です。

Adaptive アーキテクチャの場合、portKind の有効な値は、'Receiver''Sender''Client''Server' です。

例: 'Receiver'

指定したコンポーネント、コンポジションまたはアーキテクチャ モデルに追加するポートの名前。

例: {'TPS_Hw','APP_Hw'}

出力引数

すべて折りたたむ

autosar.arch.CompPort オブジェクトまたは autosar.arch.ArchPort オブジェクトであり、ポート プロパティをもつ 1 つ以上の AUTOSAR ポート ハンドルを返します。

バージョン履歴

R2020a で導入

すべて展開する