Main Content

AUTOSAR Diagnostic Event Manager サービスの呼び出しの構成

AUTOSAR Classic Platform の場合、AUTOSAR 規格では、重要なサービスを AUTOSAR ランタイム環境 (RTE) で実行される基本ソフトウェア (BSW) の一部として定義しています。例としては、Diagnostic Event Manager (Dem)、Function Inhibition Manager (FiM) および NVRAM Manager (NvM) によって提供されるサービスがあります。AUTOSAR RTE では、AUTOSAR ソフトウェア コンポーネントは通常、クライアント/サーバー通信または送信側/受信側通信を使用して BSW サービスにアクセスします。

AUTOSAR コンポーネントおよびサービスのシステムレベルでのモデル化をサポートするために、AUTOSAR Blockset には AUTOSAR Basic Software ブロック ライブラリが備わっています。このライブラリには、AUTOSAR BSW サービスに対するコンポーネント呼び出しと BSW サービスの参照実装をモデル化するために、事前設定されたブロックが含まれています。このブロックを使用して AUTOSAR BSW サービス インターフェイスに対するクライアント呼び出しをモデル化する方法の詳細については、AUTOSAR 基本ソフトウェア サービス呼び出しのモデル化を参照してください。

AUTOSAR BSW サービスのシミュレーションを実行するライブスクリプトの例については、AUTOSAR 基本ソフトウェア サービスとランタイム環境のシミュレーションの例を参照してください。

AUTOSAR ソフトウェア コンポーネントの中で Dem サービス インターフェイスに対するクライアント呼び出しを構成する例を次に示します。

  1. AUTOSAR コード生成向けに構成されたモデルを開きます。ライブラリ ブラウザーを使用するか、モデル ウィンドウにブロック名を入力して、モデルに Dem ブロックを追加します。この例では、DiagnosticInfoCaller ブロックと DiagnosticMonitorCaller ブロックをモデル例 autosar_swc の書き込み可能なコピーに追加します。

  2. 各ブロックを開いて、パラメーター (特に [Operation]) を調べます。別のオペレーションを選択して [適用] をクリックすると、選択したオペレーションの引数と一致するようにブロックの入力と出力がソフトウェアで更新されます。

    この例では、DiagnosticInfoCaller ブロックの [Operation][GetEventStatus] から [GetEventFailed] に変更します([GetEventFailed] をスロットル位置のモニターの実装で使用する例については、AUTOSAR 基本ソフトウェア サービスとランタイム環境のシミュレーションの例を参照してください)。

    [GetEventStatus][SetEventStatus]、[GetDTCOfEvent] などの一部の Dem オペレーションについては、[ブロック パラメーター] ダイアログ ボックスにデータ型パラメーターが表示されます。このパラメーターは、Dem 形式タイプまたはイベントのステータスを表す関数入力の列挙データ型を指定します。Dem_DTCFormatTypeDem_EventStatusType などの既定のデータ型が提供されています。形式タイプまたはイベント ステータス値の詳細については、AUTOSAR 規格の『Specification of Diagnostic Event Manager』を参照してください。

  3. コード マッピング エディターを開きます。モデルの Simulink® から AUTOSAR へのマッピングを Simulink 関数呼び出しの変更で更新するために、[更新] ボタン をクリックします。ソフトウェアで AUTOSAR クライアント サービス インターフェイス、オペレーションおよびポートが作成され、各 Simulink 関数呼び出しが AUTOSAR クライアント ポートとオペレーションにマッピングされます。

    たとえばこの例の DiagnosticMonitorCaller ブロック ([SetEventStatus] オペレーションが選択されている) では次のようになります。

    • C-S インターフェイス DiagnosticMonitor が作成され、DiagnosticMonitor の下にサポートされるオペレーションが作成されます。各オペレーションについて、読み取り専用プロパティを使用して引数が提供されます。AUTOSAR ディクショナリに表示される DiagnosticMonitor オペレーション [SetEventStatus] の引数を次に示します。

    • 既定の名前 DiagnosticMonitor をもつクライアント ポートが作成されます。C-S インターフェイス、オペレーションおよび引数の名前とは異なり、クライアント ポート名はカスタマイズできます。クライアント ポートが DiagnosticMonitor インターフェイスにマッピングされます。

    • コード マッピング エディターの [Function Caller] タブによって DiagnosticMonitor Function Caller ブロックが AUTOSAR クライアント ポート DiagnosticMonitor および AUTOSAR オペレーション [SetEventStatus] にマッピングされます。

  4. 必要に応じてコンポーネント モデルをビルドし、生成された C コードと ARXML コードを確認します。C コードには、たとえば次のような BSW サービスに対するクライアント呼び出しが含まれます。

    /* FunctionCaller: '<Root>/DiagnosticInfoCaller' */
    Rte_Call_DiagnosticInfo_GetEventFailed(&rtb_DiagnosticInfoCaller_o1);
    
    /* FunctionCaller: '<Root>/DiagnosticMonitorCaller' */
    Rte_Call_DiagnosticMonitor_SetEventStatus(DEM_EVENT_STATUS_PASSED);

    生成された RTE インクルード ファイルは、サーバー オペレーションの呼び出しポイント (Rte_Call_DiagnosticMonitor_SetEventStatus など) や引数のデータ型 (Dem_EventStatusType 列挙型など) を定義します。

    ARXML コードでは、サーバー呼び出しポイントとしてコンポーネントによって呼び出される BSW サービス オペレーションを次のように定義します。

    <SERVER-CALL-POINTS>
    ...
        <SYNCHRONOUS-SERVER-CALL-POINT UUID="...">
            <SHORT-NAME>SC_DiagnosticMo_334e61e63627b44b</SHORT-NAME>
            <OPERATION-IREF>
                <CONTEXT-R-PORT-REF DEST="R-PORT-PROTOTYPE">
                  /Company/Powertrain/Components/ASWC/DiagnosticMonitor
                </CONTEXT-R-PORT-REF>
                <TARGET-REQUIRED-OPERATION-REF DEST="CLIENT-SERVER-OPERATION">
                  /AUTOSAR/Services/Dem/DiagnosticMonitor/SetEventStatus
                </TARGET-REQUIRED-OPERATION-REF>
            </OPERATION-IREF>
            <TIMEOUT>1.0E-06</TIMEOUT>
        </SYNCHRONOUS-SERVER-CALL-POINT>
    </SERVER-CALL-POINTS>
  5. コンポーネント モデルのシミュレーションを実行するには、含まれるコンポジション、システム、またはテスト ハーネス モデルを作成します。その含まれるモデルで、Dem の [GetEventFailed] サービス オペレーションおよび [GetEventStatus] サービス オペレーションの参照実装を挿入します。

    AUTOSAR Basic Software ブロック ライブラリには、Diagnostic Service Component ブロックが用意されています。これにより、Dem サービス オペレーションの参照実装が提供されます。含まれるコンポジション、システム、またはハーネス モデルに手動でブロックを挿入することも、Simulink Test™ ハーネス モデルを作成することによって自動的にブロックを挿入することもできます。

    詳細については、シミュレーション用の AUTOSAR 基本ソフトウェア サービス実装の構成およびAUTOSAR 基本ソフトウェア サービスとランタイム環境のシミュレーションを参照してください。

参考

| | | |

関連する例

詳細