[openrtm-users 00086] アプリケーションからの入出力ポートのアクセス

Akio Uda uda @ inc.cl.nec.co.jp
2006年 10月 26日 (木) 13:29:33 JST


いつも御世話になります。宇田@NECシステムテクノロジーです

アプリケーションからコンポーネントの入出力ポートにアクセスする方法
についてお伺いします。

通常、入出力ポートに対するアクセスは入力ポートならm_InPort.read()、
出力ポートならm_OutPort.write()のようにread/writeメソッドを使って
行なわれるかと思いますが、この場合に例えばC++のアプリケーションか
ら外部のコンポーネントを利用しようとすると、その外部コンポーネント
との仲介役を果たすコンポーネントをアプリケーションが生成・所有する
必要が生じるかと思います。

    ┌──────────┐
    │  アプリケーション  │
    └──────────┘
            ↑    │
    ┌───│──│───┐            ┌──────────┐
    │┌──│──│──┐│            │┌────────┐│
    ││    │    │    ││            ││                ││
in  ││    │    ↓    ││  out   in  ││                ││  out
○─┤──→┘    └──→├─○─→○─┤│                │├─○
↑  ││read()   write()││            ││                ││  │
│  ││                ││            ││                ││  │
│  │└────────┘│            │└────────┘│  │
│  └──────────┘            └──────────┘  │
│     仲介コンポーネント                  外部コンポーネント     │
│                                                                ↓
└←───────────────────────────────┘


入出力ポートのインターフェースには、read/writeの逆相であるput/get
も用意されているようですが、アプリケーションがput/getを使って直接
入出力ポートにアクセスするのは、RTミドルウェアの設計思想上問題ない
のでしょうか?

それともコンポーネント以外のもの(アプリケーション)が入出力データ
フローに直接割込むという意味で、あまり推奨はされないのでしょうか?

  ┌──────────┐
  │  アプリケーション  │
  └──────────┘
            │    ↑
      put() │    │ get()
┌←────┘    └────←┐
│                            │
│  ┌──────────┐  │
│  │┌────────┐│  │
↓ ││                ││  │
in  ││                ││ out
○─┤│                │├─○
    ││                ││
    ││                ││
    │└────────┘│
    └──────────┘
       外部コンポーネント

zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
z  宇田 安規男                                                        z
z  NECシステムテクノロジー株式会社  システムテクノロジーラボラトリ  z
z  神奈川県川崎市中原区下沼部 1753  NEC 玉川事業場 9号館               z
z  〒 211-8666   Tel: 044-431-7574  Fax: 044-431-7588                  z
z  E-mail: uda-axa @ necst.nec.co.jp                                     z
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz




openrtm-users メーリングリストの案内