6.1 ポート
6.1.1 P ポート
A
「Pポート」(PPort: 提供ポート)は、ソフトウェアコンポーネントが他のソフトウェアコンポーネントにデータまた はサービスを提供するために使用するものです。Pポートには「センダポート」と「サーバーポート」とがあります。
センダポートを作成する:
“Software Component Editor for: Swc”ウィンドウの Insert → Compo-nent を選択します。
“Select item…”ダイアログボックスが開きます。
ツリーペインをナビゲートし、インターフェースSRInterfaceを選択してOK をクリックします。
図25: ソフトウェアコンポーネント“Swc”内のアイテム“SRInterface”を選択する
“Properties for complex element: SRInterface”ダイアログボックスが開きま す。
このポートの名前をSenderにし、内部アクセスプロパティ(“Internal Access”フィールド)で“Provided”を選択して OK をクリックします。
ツリーペインの“Outline”タブにあるエレメントSender::SRInterfaceを 選択し、それをソフトウェアコンポーネントのブロックダイアグラム上に配置し ます。
エレメントSpeedを持つPポートSenderが、下図のようなグラフィックで表 現されます。
図27: ソフトウェアコンポーネントのブロックダイアグラムエディタに表示されるPポート“Sender”
ソフトウェアコンポーネントの型定義内で、Pポートの名前は<SHORT-NAME>エレメントで定義されます。この 名前は、このソフトウェアコンポーネント型を参照する他のエレメントの中で使用されます。
Pポートのショート名は有効なC識別子である必要があります。
また<REQUIRED-INTERFACE-TREF>エレメントでは他のポートとの通信に使用する定義済みインターフェ ース型への参照が定義されます。
この<PROVIDED-INTERFACE-TREF>エレメントには要求されるインターフェースを明記する必要があります。
サーバーポートを作成する:
“Software Component Editor for: Swc”ウィンドウの Insert → Compo-nent を選択します。
“Select item…”ダイアログボックスが開きます。
ツリーペインをナビゲートし、インターフェースCSInterface を選択して OK をクリックします。
“Properties for complex element: CSInterface”ダイアログボックスが開きま す。
このポートの名前を Serverにし、内部アクセスプロパティ(“Internal Access”フィールド)で“Provided”を選択して OK をクリックします。
図28: “CSInterface”型のPポート“Server”
ASCETによって以下のものが生成されます。
サーバーノードServer::CSInterface (Realized Interfaces フォルダの下)
ダイアグラムServer_CSInterface
クライアント/サーバーインターフェースCSInterface内の各オペレー ション用のサーバーランナブル。下図ではServer_MaximumValueお よびServer_Notificationという2つのランナブルが作成されてい ます。
図29: ソフトウェアコンポーネント“Swc”のツリーペイン内のPポート“Server”
サーバーランナブルのエントリ関数の戻り値の型は、そのサーバーがアプリケーションエラーを返す場合は Std_ReturnType、返さない場合はvoidです。
Pポートの場合、<PROVIDED-INTERFACE-TREF>エレメント内で、他のポートとの通信に使用する定義済み インターフェース型への参照が定義されます。
さらに、ASCETはソフトウェアコンポーネントSwcの内部ビヘイビアに情報を追加します。1つのオペレーショ ンが呼び出すイベントがサーバーポート内の各オペレーション用に作成され、ランナブルエンティティも同様に 1つずつ作成されます。詳細は第 7章「内部ビヘイビア」を参照してください。
注記
クライアント/サーバーインターフェースは、サーバーがソフトウェアコンポーネントに挿入される際に変更さ れるると編集される可能性があります。この場合、メニューコマンド 、ユーザーはBuild → Update Inter-faces メニューオプションを実行使用して、ソフトウェアコンポーネント内のサーバーインターフェースを更新 する必要があります。