• 検索結果がありません。

オペレーション

ドキュメント内 ASCET V6.1 AUTOSAR ユーザーズガイド (ページ 40-45)

5.2 クライアント/サーバー

5.2.1 オペレーション

クライアント/サーバーインターフェース内のオペレーションは0個以上の引数を取ることができます。オペレ ーションの戻り値は、オペレーションがアプリケーションエラーを返すかどうかに応じて、Std_ReturnType 型か列挙型のいずれかです。

オペレーションを作成する:

ƒ コンポーネントマネージャで、クライアント/サーバーインターフェース CSInterfaceを選択して Edit → Open Component を選択するか、

CSInterfaceをダブルクリックします。

“Interface Editor for: CSInterface”ウィンドウが開きます。

ƒ ツリーペイン内のMainダイアグラムを選択します。

ƒ Insert → Method Signature… を選択します。

ƒ このオペレーションの名前を MaximumValue にします。

オペレーションの引数を作成する:

ƒ オペレーション MaximumValueを選択して Edit → Properties… を選択 します。

“Method Signature Editor for: MaximumValue”ダイアログボックスが開きま す。

ƒ Argument → Add を選択し、第1引数の名前をInputAにします。以下 のように設定します。

ƒ Argument Type: sdisc

ƒ Direction: in

ƒ Argument → Addを選択し、第2引数の名前をInputBにします。以下 のように設定します。

ƒ Argument Type: sdisc

ƒ Direction: in

ƒ Argument → Addを選択し、第3引数の名前をOutputMaximumにしま す。以下のように設定します。

ƒ Argument Type: sdisc

ƒ Direction: out

図20: オペレーション“MaximumValue”の引数

ƒ OK をクリックします。

クライアント/サーバーインターフェースCSInterfaceの内容として、オペ レーションMaximumValueとその引数(InputA、InputB、

OutputMaximum)が下図のように表示されます。

図21: クライアント/サーバーインターフェース“CSInterface”のオペレーション“MaximumValue”

オペレーションのインプリメンテーションを設定する:

ƒ “Interface Editor for: CSInterface”ウィンドウの“Elements”タブから

“Implementation”タブに切り替えます。

ƒ ツリーペイン内のエレメントInputAを選択して Edit → Implementation を選択するか、または“Implementation”タブにあるエレメントInputAをダ ブルクリックします。

“Implementation for: InputA”ダイアログボックスが開きます。

ƒ テキストボックスMaxを右クリックしてショートカットメニューを開き、オプショ ン“Default Value”を選択します。

ƒ OK をクリックします。

ƒ 引数InputBおよびMaximumValueについて、このインプリメンテーション 作成手順を繰り返します。

図22: オペレーション“MaximumValue”のインプリメンテーション

ASCETのクライアント/サーバーインターフェースを実装したものは、AUTOSARのクライアント/サーバーイ

ンターフェースに相当します。コンフィギュレーション言語のクライアント/サーバーインターフェースはASCET によりファイルSwc_interfaces.arxml内に生成されます。<OPERATIONS>エレメントにより1つまたは 複数の<OPERATION-PROTOTYPE>エレメントがカプセル化され、その各エレメントがクライアント/サーバー インターフェース内の1つのオペレーションを定義します。

<ARGUMENTS>エレメントにより、オペレーションの各引数を定義する1 つまたは複数の<ARGUMENT-PROTOTYPE>エレメントがカプセル化されます。

各<ARGUMENT-PROTOTYPE>エレメントには以下のものが定義されている必要があります。

ƒ パラメータの<SHORT-NAME>

ƒ パラメータの型への参照 <TYPE-TREF> - 参照される型は定義済みの型である必要があります。

第 4章「データ型」を参照してください。

ƒ パラメータの<DIRECTION> - IN(コンポーネントによる読み取り専用)、OUT(書き込み専用)、

INOUT(読み取りも書き込みも可能)のいずれか

特に定義しない場合、クライアント/サーバーインターフェース内のオペレーションはRTEの標準戻り型

Std_ReturnTypeを返します。また、起こりうるすべてのエラーが定義されているASCET列挙型データを選

択することにより、アプリケーションエラーを返すことも可能です。

アプリケーションエラーで発生しうるエラーが定義された列挙型データを作成する:

ƒ コンポーネントマネージャの Insert → Enumeration を選択するか、また は Enumeration ボタンをクリックします。

ƒ この列挙型データの名前をApplicationErrorにします。

ƒ この列挙型データを選択します。

“Contents”ペインにApplicationErrorの内容が表示されます。

ƒ 値0について、Enumeration → Rename を選択してラベルをE_NOT_OK にします。

アプリケーションエラーをアプリケーションの戻り値に割り当てる:

ƒ コンポーネントマネージャで、クライアント/サーバーインターフェース CSInterfaceを選択して Edit → Open Component を選択するか、ま たはCSInterfaceをダブルクリックします。

“Interface Editor for: CSInterface”ウィンドウが開きます。

ƒ ツリーペインでMainダイアグラムを選択します。

ƒ Insert → Method Signature… を選択します。

ƒ このオペレーションの名前をNotificationにします。

ƒ オペレーションNotificationを選択して Edit → Properties… を選択 します。

“Method Signature Editor for: Notification”ダイアログボックスが開きます。

ƒ “Return”タブを選択してコンボボックス“Return Type”を開きます。

図23: オペレーション“Notification”の戻り値の型

ƒ <enumeration>を選択します。

“Choose a enumeration type…”ダイアログボックスが開きます。

ƒ 列挙型データApplicationErrorを選択します。

ƒ OKをクリックします。

コンフィギュレーション言語のオペレーションNotification、および起こりうるアプリケーションエラーは、

ASCETによりファイルSwc_interfaces.arxml内に以下のように記述されます。

注記

アプリケーションエラーの値はStd_ReturnTypeの下位6ビットにコード化され、値の範囲は[1, 63]で す。ASCETは有効な戻り値を提供するために、1ユニット内のアプリケーションエラー用のASCET列挙型デ ータの値を常にシフトします。

エラーコードが1から始まらない場合や、列挙型の値の増分が1より大きい場合には、生成されるARXML をマニュアル作業で手直しする必要があります。ASCETが生成するCコードは、アプリケーションエラーのシ ョート名を使用して正しく生成されます。

ドキュメント内 ASCET V6.1 AUTOSAR ユーザーズガイド (ページ 40-45)