宇田様
安藤です
いつもお世話になっております。
> いつも御世話になります。宇田@NECシステムテクノロジーです
>
> アプリケーションからコンポーネントの入出力ポートにアクセスする方法
> についてお伺いします。
> 入出力ポートのインターフェースには、read/writeの逆相であるput/get
> も用意されているようですが、アプリケーションがput/getを使って直接
> 入出力ポートにアクセスするのは、RTミドルウェアの設計思想上問題ない
> のでしょうか?
アプリケーションに単体のInPort/OutPortを持たせてコンポーネントと
通信するのが設計的にはきれいだとは思いますが、現在の実装では、
直接put/getを呼ぶしかいい方法はありませんね。
当面は、そのようにしておいていただければと存じます。
逆に、こうしたほうがいい等アドバイスなどありましたら、
お教えいただければ幸いです。
いつも御世話になります。宇田@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
○─┤│ │├─○
││ ││
││ ││
│└────────┘│
└──────────┘
外部コンポーネント