1

DataDriver と DataReader の両方である OpenDDS ノードがあります。その結果、ノードがトピックを送信すると、同じトピックが同じノードから受信されます。

この動作を回避する QoS ポリシーはありますか? ノードがそれ自体以外のすべてのノードからトピックを受信できるようにしたい。

4

1 に答える 1

1

ノードがそれ自体以外のすべてのノードからトピックを受信できるようにしたい。

関連するトピックのデータ型に、データのソースに関する情報を含む属性が含まれている場合は、その属性を使用して、ContentFilteredTopic を介してフィルター処理できます。データ型にノードを識別するフィールドがあると仮定するとnodeId、次のような ContentFilter 式を使用してnodeId <> %0、パラメーターを独自の に設定できますnodeId。ミドルウェアは、独自の を持つものを除いて、すべての更新を DataReaders に配信しますnodeId詳細については、DDS 仕様を確認してください。

アプリケーションが独自のノードからのデータを無視したい場合、データ型には実際にそれがnodeId属性として必要であると主張します。これは明らかにアプリケーションに関連する情報であるためです。したがって、現時点でそれを持っていない場合は、追加する必要があるかもしれません。

そのようなフィールドをデータ型に追加することが許可されていない場合、または追加したくない場合は、ignore_publication()またはignore_participant()メソッドを利用して、別のより複雑なメカニズムを使用することもできます。これらは仕様書でも説明されています。そのルートに進みたい場合は、質問があればお知らせください。

最後に、探しているものをより簡単に実現する方法を提供する、API に対するベンダー固有の拡張機能が存在する場合があります。たとえば、DataReader が同じ DomainParticipant に属する DataWriter を無視するようにするにはどうすればよいですか? を参照してください。RTI 製品を使用したソリューションの場合。

于 2016-01-06T03:26:14.627 に答える