Main Content

importFromARXML

ARXML ファイルから AUTOSAR アーキテクチャ モデルにコンポジションをインポートする

説明

importFromARXML(archModel,arxmlInput,compQName) は、コンポジション compQNamearxmlInput からアーキテクチャ モデル archModel にインポートします。引数 archModel は、autosar.arch.createModel または autosar.arch.loadModel への以前の呼び出しにより返されるアーキテクチャ モデル ハンドルです。コンポジションのインポートには、機能コンテンツのない開いている AUTOSAR アーキテクチャ モデルが必要です。

importFromARXML(archModel,arxmlInput,compQName,Name,Value)Name,Value のペアの引数を 1 つ以上使用して追加のインポート オプションを指定します。以下を指定できます。

  • コンポジションの動作を定義する AUTOSAR ソフトウェア コンポーネントを含めるか除外するか。既定では、インポートにコンポジション内のコンポーネントが含まれます。

  • インポートされた AUTOSAR データ型のデータ オブジェクトを配置する Simulink® データ ディクショナリ。

  • インポートされた AUTOSAR ソフトウェア コンポーネントにリンクする既存の Simulink 動作モデルの名前。

  • インポートされた AUTOSAR ソフトウェア コンポーネントの Simulink 動作モデルを作成するときに適用されるコンポーネント オプション。周期的なランナブル、またはコンポーネント変動点を解決するために使用する PredefinedVariant または SwSystemconstantValueSet をモデル化する方法など。

すべて折りたたむ

この例では、次を行います。

  1. AUTOSAR アーキテクチャ モデル myArchModel を作成します。

  2. ソフトウェア コンポジション /Company/Components/ThrottlePositionControlComposition を AUTOSAR サンプル ファイル ThrottlePositionControlComposition.arxml からアーキテクチャ モデルにインポートします。

ARXML ファイルは、既定の MATLAB® 検索パス上の matlabroot/examples/autosarblockset/data にあります。

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

% Import composition from file ThrottlePositionControlComposition.arxml
importerObj = arxml.importer("ThrottlePositionControlComposition.arxml");  % Parse ARXML
importFromARXML(archModel,importerObj,...
  "/Company/Components/ThrottlePositionControlComposition");
Creating model 'ThrottlePositionSensor' for component 1 of 5:
  /Company/Components/ThrottlePositionSensor
Creating model 'ThrottlePositionMonitor' for component 2 of 5:
  /Company/Components/ThrottlePositionMonitor
Creating model 'Controller' for component 3 of 5:
  /Company/Components/Controller
Creating model 'AccelerationPedalPositionSensor' for component 4 of 5:
  /Company/Components/AccelerationPedalPositionSensor
Creating model 'ThrottlePositionActuator' for component 5 of 5:
  /Company/Components/ThrottlePositionActuator
Importing composition 1 of 1:
  /Company/Components/ThrottlePositionControlComposition

この例は、次を実行する関数呼び出し構文を示しています。

  1. 機能コンテンツなしで AUTOSAR アーキテクチャ モデルを作成します。

  2. AUTOSAR ソフトウェア コンポジション /pkg/rootCompositionmySWCs.arxml という名前のファイルからアーキテクチャ モデルにインポートします。

  3. コンポジション内に含まれるソフトウェア コンポーネント mySwc1mySwc2 の場合、新しく作成するのではなく、既存の Simulink コンポーネント モデルをリンクします。

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

% Import composition from ARXML file and link existing component models
importFromARXML(archModel,'mySWCs.arxml','/pkg/rootComposition',...
  'ComponentModels',{'mySwc1','mySwc2'})

この例は、次を実行する関数呼び出し構文を示しています。

  1. 機能コンテンツなしで AUTOSAR アーキテクチャ モデルを作成します。

  2. AUTOSAR ソフトウェア コンポジション /CompositionType/myCompositionmyComposition.arxml という名前のファイルからアーキテクチャ モデルにインポートします。

  3. コンポジション内に含まれているソフトウェア コンポーネントごとに、PredefinedVariant Senior を使用してコンポーネント モデル作成時にコンポーネントの変動点を解決します。

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

% Import composition from ARXML file and use PredefinedVariant for components
importerObj = arxml.importer("MyComposition.arxml"); % Import AUTOSAR information
importFromARXML(archModel,importerObj,"/CompositionType/myComposition",...
  "PredefinedVariant","/pkg/body/Variants/Senior"););

入力引数

すべて折りたたむ

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

例: archModel

指定されたコンポジションをインポートする ARXML ファイル。次のいずれか 1 つとして指定します。

  • 以前 importerObj = arxml.importer(arxmlFiles) で返された、ARXML ファイルからインポートされた AUTOSAR 情報へのハンドル。

  • 1 つ以上の ARXML ファイル名。

例: importerObj"myComposition.arxml"

指定されたコンポジションまたはアーキテクチャ モデルにインポートするコンポジションの短縮名の絶対パス (修飾名)。

例: "/CompositionType/myComposition"

名前と値の引数

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名、Value は対応する値です。名前と値の引数は他の引数の後に配置しなければなりませんが、ペアの順序は重要ではありません。

R2021a より前では、コンマを使用して各名前と値を区切り、Name を引用符で囲みます。

例: 'DataDictionary','ardata.sldd' は、指定された Simulink データ ディクショナリにインポートされた AUTOSAR データ型に対応するデータ オブジェクトを配置するようにインポーターに指示します。

コンポジションの Simulink 表現を作成する際にリンクする既存のアトミック ソフトウェア コンポーネント モデルの名前。コンポジション内に含まれているコンポーネントの場合、新しいモデルを作成するのではなく、指定されたコンポーネント動作モデルをリンクします。

例: 'ComponentModels',{'mySwc1','mySwc2'}

インポートされた AUTOSAR データ型に対応するデータ オブジェクトを配置する Simulink データ ディクショナリ。指定されたディクショナリが存在しない場合は、インポーターが作成します。その後、コンポジションとそのコンポーネントがデータ ディクショナリに関連付けられます。

例: 'DataDictionary','ardata.sldd'

コンポジションの動作を定義するソフトウェア コンポーネントのインポートを許可 (既定) するか、抑制するかを指定します。コンポーネントのインポートが抑制された場合でも (true)、インポートでは引数 ComponentModels で指定されたモデルがリンクされます。

例: 'ExcludeInternalBehavior',true

既定では、コンポジション内に含まれるソフトウェア コンポーネントをインポートすると、importFromARXML は ARXML ファイル内で検出した AUTOSAR の周期的なランナブルをインポートし、周期的レートをもつアトミック サブシステムとしてモデル化します。アトミック サブシステムが使用できない状況の場合、インポーターはエラーをスローします。

周期的なランナブルを周期的レートをもつ Function-Call Subsystem としてモデル化するには、FunctionCallSubsystem を指定します。

Auto を指定した場合、インポーターは周期的なランナブルをアトミック サブシステムとしてモデル化しようと試みます。アトミック サブシステムが使用できない状況の場合、インポーターは周期的なランナブルを Function-Call Subsystem としてモデル化します。

詳細については、複数のランナブルをもつ AUTOSAR ソフトウェア コンポーネントのインポートを参照してください。

例: 'ModelPeriodicRunnablesAs','AtomicSubsystem'

ARXML ファイルで定義された PredefinedVariant へのパス。PredefinedVariant は、複数の有効な可能性のある組み合わせの中で、AUTOSAR ソフトウェア コンポーネントに適用するシステム定数値の組み合わせを記述します。このプロパティを使用して、コンポーネント モデルの作成時に AUTOSAR ソフトウェア コンポーネント内の変動点を解決します。指定した場合、インポーターは PredefinedVariant を使用して、変動点を制御する入力として機能する SwSystemconst データを初期化します。

詳細については、事前定義値の組み合わせを使用した AUTOSAR バリアントの制御を参照してください。

例: 'PredefinedVariant','/pkg/body/Variants/Senior'

ARXML ファイルで定義された 1 つ以上の SystemConstValueSet へのパス。SystemConstValueSet は、AUTOSAR ソフトウェア コンポーネントに適用する一連のシステム定数値を指定します。このプロパティを使用して、コンポーネント モデルの作成時に AUTOSAR ソフトウェア コンポーネント内の変動点を解決します。指定した場合、インポーターは SystemConstValueSet を使用して、変動点を制御する入力として機能する SwSystemconst データを初期化します。

詳細については、事前定義値の組み合わせを使用した AUTOSAR バリアントの制御を参照してください。

例: 'SystemConstValueSets','{'/pkg/body/SystemConstantValues/A','/pkg/body/SystemConstantValues/B'}'

バージョン履歴

R2020b で導入