2. 概念
3.3 API データ型
3.3.5 共用体実装データ型
データ型名 <name>【rte_sws_7144】
概要 RTE APIで使用するデータ型
備考 <name>は,共用体実装データ型のショートネーム
共用体実装データ型を提供するヘッダ
共用体実装データ型は,RTEタイプヘッダ内に定義する〔rte_sws_7144〕.
共用体実装データ型の設定
共用体実装データ型は,カテゴリ(category)がUNIONの実装データ型(ImplementationDataType) として定義する.
共用体実装データ型に対して,RTEタイプヘッダは以下の型宣言を含む〔rte_sws_7144〕.
typedef union { <elements> } <name>;
ここで,
・ <elements>は,共用体要素の集合を表す.共用体要素の数は2以上でなければならない
【rte_sws_ext_7147】.
・ <name>は,共用体実装データ型のショートネームを表す.
共用体要素の集合
共用体要素の集合は,共用体実装データ型の実装データ型要素(ImplementationDataTypeElement) の集合に対応し,共用体要素の並び順は実装データ型要素(ImplementationDataTypeElement)の定義 順である〔rte_sws_7144〕.
実装データ型要素(ImplementationDataTypeElement)のカテゴリ(category)がVALUEで,ベース型 (BaseType)がネイティブ宣言(nativeDeclaration)を持つ場合の共用体要素の出力形式は以下の通りで ある〔rte_sws_7115〕.
<nativeDeclaration> <name>;
ここで,
・ <nativeDeclaration>は,ベース型(BaseType)のネイティブ宣言(nativeDeclaration)を表す.
・ <name>は,実装データ型要素(ImplementationDataTypeElement)のショートネームを表す.
カテゴリ(category)がTYPE_REFERENCEの実装データ型要素
(ImplementationDataTypeElement)で,その実装データ型 (ImplementationDataType) のカテゴリ (category)がVALUEの場合, RTEタイプヘッダは以下の型宣言を含む〔rte_sws_7116〕.
<type> <name>;
ここで,
・ <type>は,実装データ型 (ImplementationDataType) のショートネームを表す.
・ <name>は,実装データ型要素(ImplementationDataTypeElement)のショートネームを表す.
AUTOSAR仕様との違い
AUTOSAR仕様では,実装データ型要素(ImplementationDataTypeElement) のカテゴリ(category) にプリミティブ実装データ型以外を定義できる【rte_sws_7116】【rte_sws_7117】【rte_sws_7118】
【rte_sws_7119】【rte_sws_7145】【rte_sws_7146】.しかし,本RTEは共用体の実装データ型要素 (ImplementationDataTypeElement) としては,プリミティブ実装データ型のみサポートする
【nrte_sws_0245】.
同一のデータ型の再定義の防止
実装データ型再定義を提供するヘッダ
再定義実装データ型は,RTEタイプヘッダ内に定義する〔rte_sws_7109〕.
実装データ型再定義の設定
再定義実装データ型は,カテゴリ(category)がTYPE_REFERENCEの実装データ型 (ImplementationDataType)として定義する.
再定義実装データ型に対して,RTEタイプヘッダは以下の型宣言を含む〔rte_sws_7109〕.
typedef <type> <name>;
ここで,
・ <type>は,再定義実装データ型が参照する実装データ型(ImplementationDataType)のショート ネームを表す.
・ <name>は,再定義実装データ型のショートネームを表す.
同一のデータ型の再定義の防止
再定義型実装データ型のショートネーム,および再定義型と互換する実装データ型のショートネー ムが等しい複数のプリミティブ実装データ型が定義されている場合,RTEタイプヘッダは
〔rte_sws_7109〕に従った型宣言を1度だけ含む【rte_sws_7167】.
3.3.7 ポインタ実装データ型
データ型名 <name>【rte_sws_7148】
概要 RTE APIで使用するデータ型
備考 <name>は,ポインタ実装データ型のショートネーム
ポインタ実装データ型を提供するヘッダ
ポインタ実装データ型は,RTEタイプヘッダ内に定義する〔rte_sws_7148〕.
ポインタ実装データ型の設定
ポインタ実装データ型は,カテゴリ(category)がDATA_REFERENCEの実装データ型 (ImplementationDataType)として定義する.
ポインタ実装データ型に対して,RTEタイプヘッダは以下の型宣言を含む〔rte_sws_7148〕.
typedef <type> * <name>;
ここで,
・ <name>は,ポインタ実装データ型のショートネームを表す.
・ <type>は,ポインタ実装データ型のターゲットカテゴリ(targetCategory)がVALUEの場合,ベ ース型(BaseType)のネイティブ宣言(nativeDeclaration)を表す【rte_sws_7162】.ポインタ実装 データ型のターゲットカテゴリ(targetCategory)がTYPE_REFERENCEの場合,実装データ型 (ImplementationDataType)のショートネームを表す【rte_sws_7163】.
AUTOSAR仕様との違い
AUTOSAR仕様では,ポインタ実装データ型として,型修飾子を付加することができる
【rte_sws_7149】【rte_sws_7166】【rte_sws_7036】【rte_sws_7037】.しかし,本RTEはポインタ実 装データ型の型修飾子はサポートしない【nrte_sws_0311】.
同一のデータ型の再定義の防止
ショートネーム,およびそのC言語のポインタ型宣言が等しい複数のポインタ実装データ型が定義 されている場合,RTEタイプヘッダは〔rte_sws_7148〕に従った型宣言を1度だけ含む
【rte_sws_7169】.
3.3.8 モードのデータ型
データ型名 Rte_ModeType_<ModeDeclarationGroup>【rte_sws_7292】
概要 モード連携のAPIで使用するデータ型
備考 < ModeDeclarationGroup>は,モード宣言グループのショート
ネーム
モードのデータ型を提供するヘッダ(SCHM)
モードのデータ型は,モジュール連結タイプヘッダ内に定義する〔rte_sws_7292〕.
モードのデータ型の設定
各モード宣言グループに対して,モード連結タイプヘッダは以下の型宣言を含む〔rte_sws_7292〕.
#ifndef RTE_MODETYPE_<ModeDeclarationGroup>
#define RTE_MODETYPE_<ModeDeclarationGroup>
typedef <type> Rte_ModeType_<ModeDeclarationGroup>;
#endif ここで,
・ <ModeDeclarationGroup>は,モード宣言グループ(ModeDeclarationGroup) のショートネーム を表す.
#ifndef RTE_TRANSITION_<ModeDeclarationGroup>
#define RTE_TRANSITION_<ModeDeclarationGroup> ¥ <n>U
#endif ここで,
・ <ModeDeclarationGroup>は,モード宣言グループ(ModeDeclarationGroup) のショートネーム を表す.
・ <n>は,モード宣言グループに含まれるモード宣言の数を表す.
モード宣言の定義
モード宣言グループに含まれるモード宣言毎に,モード連結タイプヘッダは以下の定義を含む
【rte_sws_7294】.
#ifndef RTE_MODE_<ModeDeclarationGroup>_<ModeDeclaration>
#define RTE_MODE_<ModeDeclarationGroup>_<ModeDeclaration> ¥ <index>U
#endif ここで,
・ <ModeDeclarationGroup>は,モード宣言グループ(ModeDeclarationGroup) のショートネーム を表す.
・ <ModeDeclaration>は,モード宣言 (ModeDeclaration) のショートネームを表す.
・ <index>は,モード宣言グループに含まれるモード宣言をアルファベット順で並べたときのイン
デックス番号(最小値は0)を表す.