パラメーター コンポーネントと通信するための AUTOSAR ポート パラメーターの設定
AUTOSAR 規格ではパラメーター通信のポートベース パラメーターを定義しています。AUTOSAR パラメーター通信は、パラメーター ソフトウェア コンポーネント (ParameterSwComponent
) およびパラメーター データへのポートベースのアクセスを要する 1 つ以上のアトミック ソフトウェア コンポーネントに依存します。ParameterSwComponent
は AUTOSAR パラメーターを含むメモリを表し、接続されたアトミック ソフトウェア コンポーネントにパラメーター データを提供します。ポートベースのパラメーター ワークフローについては、ポート パラメーターを参照してください。
Simulink® では、AUTOSAR ポートベース パラメーター通信の受信側をモデル化できます。AUTOSAR アトミック ソフトウェア コンポーネントをパラメーター受信側として設定するには、以下を行います。
AUTOSAR コンポーネント モデルで、AUTOSAR ディクショナリに AUTOSAR パラメーター インターフェイス、パラメーター データ要素、およびパラメーター受信側ポートを作成します。
Simulink モデル ワークスペースで、パラメーターを作成し、そのパラメーターを引数としてマークして、初期値を設定します。Simulink パラメーター、ルックアップ テーブル、およびブレークポイント オブジェクトを使用できます。
Simulink モデル ワークスペース パラメーターまたはルックアップ テーブルを AUTOSAR パラメーター受信ポートとパラメーター インターフェイス データ要素にマッピングします。コード マッピング エディターの [パラメーター] タブまたは関数
mapParameter
を使用します。
この例では、AUTOSAR ソフトウェア コンポーネントをパラメーター通信の受信側として設定する方法を示します。
ソフトウェア コンポーネントがパラメーター データへのポートベースのアクセスを必要とする、AUTOSAR コード生成用に設定されたモデルを開きます。
AUTOSAR ディクショナリを開きます。パラメーター インターフェイスをモデルに追加するには、[パラメーター インターフェイス] ビューを選択し、[追加] ボタン をクリックします。[インターフェイスの追加] ダイアログ ボックスで、新しいインターフェイスの名前を指定し、[データ要素数] を 1 に設定します。[追加] をクリックします。
[パラメーター インターフェイス] を展開し、[DataElements] ビューを選択します。作成した関連データ要素のプロパティ (名前など) を調べて修正します。
[AtomicComponents] を展開し、コンポーネントを展開します。パラメーター受信ポートをモデルに追加するには、[ParameterReceiverPorts] ビューに移動し、[追加] ボタン をクリックします。[ポートの追加] ダイアログ ボックスで、新しいポートの名前を指定し、[インターフェイス] を作成したパラメーター インターフェイスの名前に設定します。[追加] をクリックします。
Simulink モデル ワークスペースで、パラメーターのデータ オブジェクトを作成します。たとえば、モデル エクスプローラーを使用します。データ オブジェクトを選択した状態で、[Name] および [Value] フィールドを設定します。パラメーターをモデル引数として (複数インスタンス モデルの各インスタンスに固有) 設定するには、[引数] チェック ボックスをオンにします。
モデルのデータ オブジェクト名を参照します。たとえば、Gain ブロックの [ゲイン] パラメーター フィールドに
k1
を入力します。コード マッピング エディターを開き [パラメーター] タブを選択します。[Model Parameter Arguments] グループで、作成したパラメーター データ オブジェクトを選択します。[マッピング先] メニューで、AUTOSAR パラメーター タイプ
[PortParameter]
を選択します。パラメーターの他のコードとキャリブレーション属性を表示および変更するには、 アイコンをクリックします。
[ポート] を AUTOSAR ディクショナリで設定したパラメーター受信ポートの名前に設定します。
[DataElement] を AUTOSAR ディクショナリで設定したパラメーター インターフェイス データ要素の名前に設定します。
詳細については、モデル ワークスペース パラメーターの AUTOSAR コンポーネント パラメーターへのマッピングを参照してください。
AUTOSAR コンポーネント モデルのコードを生成すると、次のようになります。
エクスポートされた ARXML ファイルには、パラメーター受信側コンポーネント、パラメーター インターフェイス、パラメーター データ要素、およびパラメーター受信ポートが含まれます。
<PARAMETER-INTERFACE UUID="..."> <SHORT-NAME>myParamInterface</SHORT-NAME> <IS-SERVICE>false</IS-SERVICE> <PARAMETERS> <PARAMETER-DATA-PROTOTYPE UUID="..."> <SHORT-NAME>ParamElement</SHORT-NAME> ... </PARAMETER-DATA-PROTOTYPE> </PARAMETERS> </PARAMETER-INTERFACE>
生成された C コードには、AUTOSAR ポート パラメーターの関数
Rte
の呼び出しが含まれます。/* Model step function */ void mArPortParam_Step(void) { ... Rte_IWrite_mArPortParam_Step_Out2_Out2(Rte_Prm_myParamPort_ParamElement() * Rte_IRead_mArPortParam_Step_In2_In2()); }
実行時に、ソフトウェアはパラメーター データ要素にポートベース パラメーターとしてアクセスできます。