このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
プログラムによる AUTOSAR コンポーネントの構成とマッピング
Simulink® では、グラフィカルな構成の代わりに、プログラムによって AUTOSAR ソフトウェア コンポーネントを構成できます。AUTOSAR のプロパティ関数と map 関数を使用すると、AUTOSAR コンポーネント モデルの AUTOSAR ディクショナリおよびコード マッピング エディターのビューに表示される情報と同一のコンポーネントのプロパティやマッピングの情報を取得、設定、追加、削除できます。
AUTOSAR のプロパティ関数と map 関数
AUTOSAR のプロパティ関数と map 関数を使用して、プログラムによって AUTOSAR ソフトウェア コンポーネントの Simulink 表現を構成できます。次に例を示します。
AUTOSAR プロパティ関数を使用して、AUTOSAR 要素の追加、要素の検索、要素のプロパティの取得および設定、要素の削除、要素の ARXML パッケージ化の定義を行います。
AUTOSAR map 関数を使用して Simulink モデル要素を AUTOSAR 要素にマッピングし、モデル要素の AUTOSAR マッピング情報を返します。
AUTOSAR のプロパティ関数と map 関数は、AUTOSAR のプロパティとマッピングの変更要求に関する構文とセマンティクスを検証することもできます。
プロパティ関数と map 関数の完全なリストについては、コンポーネントの開発に記載されている関数を参照してください。
スクリプト例については、AUTOSAR のプロパティ関数と map 関数の例を参照してください。
メモ
AUTOSAR ソフトウェア コンポーネントの作成やインポートを行う関数の詳細については、コンポーネントの作成を参照してください。
AUTOSAR の構成のツリー ビュー
次に示す AUTOSAR 構成のツリー ビューは、AUTOSAR のプロパティ関数および map 関数を適用可能な AUTOSAR 要素のタイプを示しています。このビューは AUTOSAR ディクショナリのツリー表示に対応していますが、一部のコンフィギュレーションに表示されない要素も含まれる可能性があります。italics
で表示されている名前はユーザーの選択によるものです。
AUTOSAR
AtomicComponents
MyComponent
ReceiverPorts
SenderPorts
SenderReceiverPorts
ModeReceiverPorts
ModeSenderPorts
ClientPorts
ServerPorts
NvReceiverPorts
NvSenderPorts
NvSenderReceiverPorts
ParameterReceiverPorts
TriggerReceiverPorts
Runnables
IRV
パラメーター
S-R Interfaces
SRInterface1
DataElements
M-S Interfaces
MSInterface1
C-S Interfaces
CSInterface1
Operations
operation1
Arguments
NV Interfaces
NVInterface1
DataElements
パラメーター インターフェイス
ParameterInterface1
DataElements
トリガー インターフェイス
TriggerInterface1
トリガー
CompuMethods
XML Options
AUTOSAR 要素のプロパティ
AUTOSAR 要素に関連付けられているプロパティを次の表に示します。
AUTOSAR 要素のクラス | プロパティ |
---|---|
AtomicComponent |
|
ApplicationComponentBehavior |
|
DataReceiverPort DataSenderPort DataSenderReceiverPort ClientPort ServerPort ModeReceiverPort NvDataReceiverPort NvDataSenderPort NvDataSenderReceiverPort ParameterReceiverPort TriggerReceiverPort |
|
Runnable |
|
TimingEvent |
|
DataReceivedEvent DataReceiveErrorEvent OperationInvokedEvent |
|
ModeSwitchEvent |
|
InitEvent |
|
IrvData |
|
ParameterData |
|
SenderReceiverInterface NvDataInterface ParameterInterface |
|
FlowData |
|
ModeSwitchInterface |
|
ModeDeclarationGroupElement |
|
ClientServerInterface |
|
TriggerInterface |
|
AUTOSAR 要素の場所の指定
通常 AUTOSAR プロパティ関数では要素の名前と場所を指定する必要があります。AUTOSAR パッケージおよびオブジェクト階層内の AUTOSAR 要素の場所は、完全修飾パスを使用して一意に指定できます。完全修飾パスには、次のようにパッケージ階層とオブジェクト階層内の要素の場所が含まれる場合があります。
/pkgLevel1/pkgLevel2/pkgLevel3/grandParentName/parentName/childName
addPackageableElement
以外の AUTOSAR プロパティ関数については、次のようなパッケージ階層を含まない部分修飾パスを指定できます。
grandParentName/parentName/childName
次のコードは、モデル例 autosar_swc_expfcns
内のパス Interface1
にある送信側/受信側インターフェイスの IsService
プロパティを true
に設定します。この場合、名前 Interface1
を指定すれば要素の場所を十分特定できます。
hModel = 'autosar_swc_expfcns'; addpath(fullfile(matlabroot,'/examples/autosarblockset/main')); open_system(hModel); arProps = autosar.api.getAUTOSARProperties(hModel); set(arProps,'Interface1','IsService',true);
次に、AUTOSAR ディクショナリの [S-R Interfaces] ビューでの結果の表示を示します。
送信側/受信側インターフェイスをコンポーネント パッケージに追加していた場合は、次のように完全修飾パスを指定します。
hModel = 'autosar_swc_expfcns'; addpath(fullfile(matlabroot,'/examples/autosarblockset/main')); open_system(hModel); arProps = autosar.api.getAUTOSARProperties(hModel); addPackageableElement(arProps,'SenderReceiverInterface','/pkg/if','Interface3',... 'IsService',true);
完全修飾パスではなく部分修飾パスを使用する利点として考えられるのは、AUTOSAR コンポーネントの AUTOSAR ディクショナリのビューを参照すると、部分修飾パスが作成しやすくなることです。不利な点として考えられることは、部分修飾パスは AUTOSAR の構成内の 1 つを超える要素を参照する可能性があることです。たとえば、パス s/r
は、送信側/受信側インターフェイスのデータ要素とコンポーネントのランナブルの両方を指す可能性が考えられます。競合が発生した場合、エラーと完全修飾パスのリストが表示されます。
ほとんどの AUTOSAR 要素は複数の要素で構成された (複合) プロパティをもちます。たとえば、アトミック ソフトウェア コンポーネントは、ReceiverPorts
、SenderPorts
、InternalBehavior
などの複合プロパティをもちます。コンポーネントの ReceiverPorts
プロパティのような、操作可能な複合プロパティをもつ要素については、親要素の中で子要素に名前が付けられて一意に定義されます。複合プロパティ内の子要素を特定するには、プロパティ名を付けずに親要素のパスと子の名前を使用します。たとえば、親のアトミック ソフトウェア コンポーネントの修飾パスが /A/B/SWC
で、子の受信ポートの名前が RPort1
の場合、受信ポートの場所は /A/B/SWC/RPort1
になります。