2. 概念
3.6 ランナブル
ランナブルのエントリポイント関数を提供するヘッダ
RTEGENは,ランナブルのエントリポイント関数のプロトタイプをアプリケーションヘッダに生成
する【rte_sws_1132】.
サポート範囲の制限
AUTOSAR仕様では,以下のように<name>の前に<prefix>を指定してエントリポイント関数のプロ トタイプを生成可能とされているが,本RTEでは,<prefix>の指定をサポートしない
【nrte_sws_0062】.
<void|Std_ReturnType> <prefix><name> ([role parameters]);
3.6.3 ロールパラメータ
RTEは,ロールパラメータの各パラメータの存在の有無,およびパラメータの型をランナブルの起 動契機となるRTEイベントから決定する.
各RTEイベントのロールパラメータの詳細は,3.6.5節を参照.
3.6.4 返り値
RTEは,C/S連携のオペレーション呼出しのエラーコードをアプリケーションに返すためにのみ,
ランナブルの返り値を使用する.
ランナブルがサーバランナブルであり,C/Sインタフェースにおいて,使用アプリケーションエラー が定義されている場合のみ,ランナブルのエントリポイント関数の返り値は,Std_ReturnTypeとなり,
それ以外の場合,エントリポイント関数の返り値はvoidである【rte_sws_1130】.
サーバランナブルは,返り値の下位6ビットのみをアプリケーションエラーに使用し,上位2ビット は"0"に設定して,返り値を返さなければならない.【rte_sws_ext_2704】.
3.6.5 ランナブルを起動するイベント
RTEは,RTEイベントに対応したランナブルを起動する.以降の節では,各RTEイベントについて,
ランナブルを起動する条件について説明する.
各イベントに対して,ランナブルのエントリポイント関数のシグネチャが定義されている.エント
3.6.5.1 周期イベント
C言語I/F void <name>(void) 【rte_sws_1131】
パラメータ[in] - パラメータ[in/out] - パラメータ[out] - 返り値 -
機能
コンフィギュレーションで定義された起動周期で,ランナブルを周期起動する.
3.6.5.2 バックグラウンドイベント
C言語I/F void <name>(void) 【rte_sws_7177】
パラメータ[in] - パラメータ[in/out] - パラメータ[out] - 返り値 -
機能
バックグラウンド動作実行に利用される循環型イベント.周期イベントと同様だが,固定周期を持た ず,低優先度でのみ起動される.
3.6.5.3 データ送信完了イベント
C言語I/F void <name>(void) 【rte_sws_1137】
パラメータ[in] - パラメータ[in/out] - パラメータ[out] - 返り値 -
機能 送信ACK発生により,ランナブルを起動する.
3.6.5.4 データ受信イベント
C言語I/F void <name>(void) 【rte_sws_1135】
パラメータ[in] - パラメータ[in/out] - パラメータ[out] - 返り値 -
機能 データ受信時に,ランナブルを起動する.
3.6.5.5 データ受信エラーイベント
C言語I/F void <name>(void) 【rte_sws_1359】
パラメータ[in] - パラメータ[in/out] - パラメータ[out] - 返り値 -
機能
データ要素のエラー状態検出時に,ランナブルを起動する.
3.6.5.6 オペレーション呼出しイベント
C言語I/F <void | Std_ReturnType> <name> ( [IN <portDefArg 1>, ..., <portDefArg n>],
[IN|INOUT|OUT <param 1>, ..., IN|INOUT|OUT <param n>])
【rte_sws_1166】
パラメータ[in] <portDefArg 1>, ...,
<portDefArg n>
ポート定義引数
パラメータ[in/out] <param 1>, ..., <param n>] オペレーション引数 パラメータ[out] -
返り値 アプリケーションエラー 機能
ポート定義引数はオプションである.
オペレーション引数<param 1>, …, <param n>は,オペレーション呼出しイベント (OperationInvokedEvent)に関連するオペレーションのオペレーション引数で定義される.
オペレーション引数の順序は,オペレーション内のオペレーション引数の定義順に従う
【rte_sws_7023】.
オペレーション引数のサーバ引数実装ポリシ(ServerArgumentImplPolicy)がuseArgumentTypeに 設定されている場合,<param>のデータ型は,オペレーション引数の実装データ型
(ImplementationDataType)で定義される【rte_sws_7024】.本RTEでは,サーバ引数実装ポリシ (ServerArgumentImplPolicy)は常にuseArgumentTypeに設定されているものとして扱い,サーバ引 数実装ポリシ(ServerArgumentImplPolicy)のコンフィギュレーションはサポートしない
【nrte_sws_0063】.
同一のランナブルに対して,複数のオペレーション呼出しイベント(OperationInvokedEvent)が設定 されることでシグニチャが異なる場合,RTEGENは設定を拒否する【rte_sws_3526】.本RTEGENで は,生成コードがコンパイル時にエラー検出されることをもって,本仕様に対応したこととする.
返り値の仕様
C/Sインタフェースにアプリケーションエラーが定義されている場合,これらのエラーは
Std_ReturnType型の返り値で返される.アプリケーションエラーの定義がない場合,返り値はvoid
になる.
RTE_E_OKを常に返すようなサーバランナブルであっても,ランナブルの返り値を
Std_ReturnTypeとするため,アプリケーションエラーコードの定義は必要である.
3.6.6 リエントラント性
ランナブルのリエントラント性を保証するのはSW-Cの実装者の責任である.