Rhapsody® の中にアトミック・ソフトウェア・コンポーネント (SWC) を実装するには、
最初に Rational® Rhapsody 実装ブロック (RIMB) を定義し、
次に、それを、ソフトウェア・コンポーネント・タイプの下のパーツとしてインスタンス化する必要があります。
AUTOSAR SW/C は、次の 2 つの方法で実装できます。
- AUTOSAR InternalBehavior および Implementation セクションを直接定義する:
- さまざまな AR Internal Behavior、Implementation、および Code の各セクションを定義します。
- Rhapsody を使用して、XFiles および RunnableEntities 実装コードを作成します。
- Rhapsody 実装ブロックを利用する:
- ARBMT の中に、Rhapsody 実装ブロックを定義します。
- RIMB をインスタンス化して、RIMBO (RIMB でタイプ) を
アトミック SWC タイプのパーツとして取得し、AR から Rhapsody への委譲コネクターを通して、RIMBO のポートを SWC タイプのポートに接続します。
- アプリケーションのコードおよび AUTOSAR に関連する成果物 (Internal behavior、Implementation、ARXML、C/H File など) を生成します。SWC のブラウザーの中で右クリックし、「AR-SWC 実装オブジェクト (RIMBO) の作成 (Create
AR-SWC Implementation Object (RIMBO))」を選択して、
作成、インスタンス化、および AR SWC ポートと RIMBO ポートのリンクに、ツール・オートメーションを使用します。
- Rhapsody は、RIMB ベースの実装の一部の側面を自動化できます。
- SWC のブラウザーの中で右クリックし、「AR-SWC 実装オブジェクト (RIMBO) の作成 (Create AR-SWC Implementation Object (RIMBO))」を選択して、
作成、インスタンス化、および AR SWC ポートと RIMBO ポートのリンクに、ツール・オートメーションを使用します。

- 次のいずれかの方法を使用して、Rational Rhapsody 実装ブロックを作成します。
- SWC のブラウザーの中で右クリックし、「AR-SWC 実装オブジェクト (RIMBO) の作成 (Create AR-SWC Implementation Object (RIMBO))」を選択します。この機能の説明は、
付録 A を参照してください。
- 「ARBMTPackages」カテゴリーのパッケージの下の Rational Rhapsody
実装ブロック図の場合は、描画ツールバーから、Rational Rhapsody 実装ブロック・ツール
を選択し、
描画領域で、ダイアグラムをクリックします。
- 「ARBMTPackages」カテゴリーの下で、
パッケージを右クリックし、を選択します。
- Rational Rhapsody 実装ブロックの一般フィーチャーを定義します。例えば、
「RIMB」ウィンドウの「アクセスおよびアクティベーション」タブで、SWC タイプの振る舞いを作成する
プロジェクトの値を定義します。
LightManager プロジェクトの中で、
「アクティブ要素」には
「アクティベーション」の値として「
周期的」が設定されています。
「アクティブ要素」の「
digitalPushedDispatcher」の値として「
非同期」が設定されています。
注: RIMBO の自動作成の詳細は、オンライン・ヘルプの『RIMBO の自動作成』のトピックを参照してください。

- 自動生成のヘルパー機能を使用して、RIMB ステートチャートの振る舞いを記述できます。

- RIMB の「ActiveOperations」を実装するには、
操作を右クリックして「プロパティー」ウィンドウを開き、「実装」タブを選択します。 次の図は、「ActiveOperations」振る舞いをどのようにして設定できるかを示しています。

- RIMB 実装ブロックを右クリックして、を選択します。
- アクティブ操作のアクティベーション・ポリシーを指定します。「RIMBimplementation」ブロックを定義したのと同様に、
アクティブ操作のアクティベーションを指定する必要があります。アクティブ操作の「一般」タブの「ポリシー」フィールドで、
「非同期」または「周期的」のどちらかを選択します。
- 「非同期」を選択した場合は、「アクセスおよびアクティベーション」タブで、実際のアクティベーション・ポリシーを定義します。
- 「周期的」を選択した場合は、「一般」タブの「アクティベーション」セクションで、期間、オフセット、および所要時間を指定します。
- 必要であれば、「ガード済み」を選択します。このチェック・ボックスが選択されると、
このフィールドは、すべてのガード済みのアクティブ操作が相互排他的であることを指定します。このアクションは、
ガード済みの操作に対して生成されたすべての実行可能が「内部で実行」と指定された、
専用の AUTOSAR 排他領域の中に実装されます。
注: Rational Rhapsody 実装ブロック (RIMB) の特性、
「アクセスおよびアクティベーション」タブ要素、および実装ブロック
(RIMB) インターフェースの追加方法の詳細は、『Rational Rhapsody 実装ブロック (RIMB) の特性の定義』、
『非同期アクティブ要素のアクセスおよびアクティベーション・ポリシーの指定』、
および『Rhapsody 実装ブロック (RIMB) インターフェースの追加』の各トピックを参照してください。
このチュートリアルの場合、例えば
LightsManager サンプルでは、次の図で、生成された
AR 成果物がどのように「アクセスおよびアクティベーション」表から引き出されるかが示されます。

生成されたヘルパー機能は、次の図のようになります。

次に、AUTOSAR SW/C の実装結果の例を示します。