問題タブ [data-distribution-service]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
data-distribution-service - DDS の idl でモデル化する方法
私は DDS と IDL を初めて使用します。IDL で以下をモデル化する方法について、誰かがアドバイスを提供できることを願っています。
これは OO の観点からのモデルに基づいており、簡単な例として意図されています。
そして、これは IDL での私の最初のデータモデルです - 正しく行われていますか? IDL で継承と依存関係を「モデル化」するにはどうすればよいですか? オンラインの例の多くは非常に単純です-私が見つけたものは単純すぎます...
これは継承の構成例にすぎず、適切には最適ではありません ;o)
これは正しいですか、それとも同じモデルを作成するためのより良い方法がありますか? DDS の IDL を操作するための適切な「HOWTO」へのリンクを提供できる人はいますか? 注: RTI Connext DDS を使用しています。
c++ - DDS DomainParticipantFactory エラー CORBA
Opensplice DDS をテストするプログラムを作成しようとしています。しかし、私はかなり長い間立ち往生してきたいくつかの問題に直面しています。
を作成しようとするとDomainParticipantFactory
、エラーが発生しましたCORBA:NO_IMPLEMENT
。私が作成しなければプログラムは機能するDomainParticipant
ので、問題はそこにあると思いました。
誰かがそのような問題に直面したことがありますか?
data-distribution-service - RTI ルーティング サービスのセットアップ
アプリケーションで RTI ルーティング サービスを動作させるのに問題があります。
簡単な DDS パブリッシャー アプリケーションと簡単な DDS サブスクライバー アプリケーションを作成しました。アプリケーションは、LAN 経由で 2 台の異なるコンピューターで実行中に通信しますが、RTI ルーティング サービスを使用して WAN 経由で動作させることができません。
「RTI ルーティング サービス - 入門ガイド」の「例 8 - ルーティング サービスでの TCP トランスポートの使用」に従いました。また、RTI ルーティング サービス上で RTI Shapes Demo を実行することもできます。注意。私のアプリケーションは、RTI Shapes Demo と同じドメイン ID を使用しています
パブリッシャーは PC1 にあり、サブスクライバーは PC2 にあります。(rtiddsspy を使用して) PC2 が RTI ルーティング サービスからデータを受信していることを確認できますが、サブスクライバー アプリケーションは PC2 で通知を受けません。
RTI ルーティング サービスで使用する DDS アプリケーションを作成する際に、特に注意する必要があることはありますか?
よろしくジョン
data-distribution-service - RTI DDS Src HostId から IP アドレスへ
RTI DDS Spyを使用して DDS アプリケーションをデバッグしています。Spy ツールで、自分のアプリケーションからのものではないと思われる奇妙なメッセージに気付きました。
問題はSrc HostId
、送信者の IP アドレスを取得して把握する方法です。(Wireshark はオプションではありません。)
data-distribution-service - RTI DDS サブスクライバーがパブリッシャーからデータを取得しない
短い話:私の DDS サブスクライバーは、私の DDS パブリッシャーからのデータを見ることができません。私は何が欠けていますか?
長い話:
QNX VM (自分のマシンではなく、ネットワーク上でホストされている) があり、RTI DDS 経由でデータを公開しています。Windows 7 サブスクライバー アプリケーションにデータが表示されません。
興味深いことに、同じコードを VM B に置くと、サブスクライバーがデータを取得できます。これは Windows 7 のファイアウォールの問題に違いないと考えて、VM A の IP アドレスを VM B と交換しましたが、これは役に立ちませんでした。
Wireshark を使用すると、VM A からのハートビート トラフィックを確認できますが、データはありません。VM B からは、ハートビート トラフィックとデータが表示されます。以下は、無害化された Wireshark のスニペットです。
NDDS_DISCOVERY_PEERS
マルチキャストと、各会話の反対側の明示的な IP アドレスの両方を含めるように設定されています。QOS プロファイルは同じで、RTI アナライザーは一致分析が成功したことを示します (すべて緑色)。
仮想マシン A:
NDDS_DISCOVERY_PEERS=udpv4://239.255.0.1,udpv4://127.0.0.1,udpv4://BLAH.203
仮想マシン B:
NDDS_DISCOVERY_PEERS=udpv4://239.255.0.1,udpv4://127.0.0.1,udpv4://BLAH.203
Windows 7 ボックス:
NDDS_DISCOVERY_PEERS=udpv4://239.255.0.1,udpv4://127.0.0.1,udpv4://BLAH.113,udpv4://BLAH.114
それらをNDDS_DISCOVERY_PEERS
行に含めると、ネットワーク上の他の人々は、Windows 7 ボックスで DDS SPY を使用して VM A からの DDS トラフィックを見ることができます。私の Windows 7 ボックスではできません。
Windows 7 のイベント ログには、データ パケットを停止しているファイアウォールまたは WFP が表示されていないようです。
Windows 7 マシンから RTI DDS Spy を実行すると、VM A (0A061071) ライターがネットワーク上に表示されますが、データは受信されません。また、Windows 7 マシンのサブスクライバーのリーダーが表示されていることも示されていますが、奇妙な IP アドレスで表示されています。
おまけの質問(主な質問ではなく、単なる好奇心から): ローカル マシンのトラフィック192.168.11.1
が、マシンの IP または の代わりにDDS SPY に表示されるのはなぜ127.0.0.1
ですか?
主な質問:何が欠けていますか?
更新:
route print
私の Windows 7 ボックスでは、VM A でマルチキャスト グループに参加したことが示されている
netsh interface ip show joins
ように見えます。
調査の更新:
VM を再起動しても効果はありませんでした。
Windowsボックスを再起動しても効果がありませんでした。
NDDS_DISCOVERY_PEERS
両側の環境変数からマルチキャストを削除しましたが、効果はありませんでした。Windows 7 ボックスには、3 つのネットワーク インターフェイス (およびループバック) があります。1 つの LAN 接続と 2 つの (関連のない) VM アダプターです。LAN接続で作業しています。QNX VM には 1 つのネットワーク インターフェイス (およびループバック) があります。動作中の VM と故障した VM は、QNX 6.4.1 のフレーバーがわずかに異なるため、互いに異なるイーサネット ドライバーを使用していることに注意してください。壊れたものは
wm0
インターフェースとして、機能しているものはインターフェースとして持っen0
ています。これが問題だとは思いませんが、違いです。「壊れた」QNX VM の再生中に DDS SPY を実行し、DDS データを取得しました。VM がホストされている場所と Windows 7 マシンとの間のネットワークをスニッフィングして、インターフェイスから抜け出すかどうかを確認する良い方法はありませんが、QNX VM のイーサネット インターフェイスから送信されたパケット数を調べます。は確実に何かを送信していることを示しており、Windows 7 マシン自体での Wireshark キャプチャは、少なくとも一部のトラフィックが通過していることを示しています。
ここのLAN上の他の人々は、「壊れた」VMからのDDSトラフィックを見ることができます. ファイアウォールを再確認しましたが、役に立ちませんでした。ファイアウォールの問題であれば、VM A と VM B の間で IP アドレスを交換すれば問題は解決したと思います。いずれにせよ、Windows 7 のファイアウォールは現在オフになっているため、役に立ちません。
以下は、Wireshark 出力のいくつかの画面です。4回目以降は最後までトラフィックが4回目の最下位のように見える傾向があったため、3回目と4回目の間をスキップしました。
(ここではたくさんスキップしました) (上記の最後の 11 行のようにほとんど続きます)
他に何を試す必要がありますか?
更新:
以下の Rose の質問に答えるrtiddsping -publisher
には、悪い VM で使用し、rtiddsping -subscriber
適切に動作します。
この問題は、変な IP アドレスが原因なのだろうか。たまたま公開され、何らかの形でラッチされる IP アドレスは、ローカル VM イーサネット アダプター (VM A とは別) です。以下のスクリーンショットを参照してください。
添付したいアドレスは 10.6.6.203 です。それを特定する方法はありますか?
c++ - この C++ コード構造はどういう意味ですか?
次のコードを見つけました (自動生成されますが、コンパイルされません)。今、それが何を意味するのか知りたいです:
一部の人が指摘したように、## はマクロ用であり、実際にコードはマクロ内にありました。私はこれに気づいていなかったので、コードに直接入れて、より明確なエラー メッセージを取得しようとしました。元のマクロは次のとおりです。
元のコンパイラ エラーは次のとおりです: 構文エラー: ';' がありません 識別子「タイプ」の前
手動でマクロを挿入し、## を適用しました。
しかし、typedef: missing ';' の行に直接記載されています。識別子 'type' の前 (コンパイラは SP1 がインストールされた VS2010 です)
誰でも教えてもらえますか?(コードは OpenSplice の idlpp.exe によって生成されます)
その理由は明らかです (idl の #pragma keylist エントリを忘れていました) - UnboundedStringWithKeyTypeSupport が生成されていません。しかし、それは別の質問です。
よろしくトバイアス
data-distribution-service - Opensplice DDS 永続データのサイズはどのくらいですか?
自分のソフトウェアに大量のデータを入れることができるのか、それとも外部ソリューションを使用する義務があるのか 疑問に思っています.
OpenSplice DDS または RTI の DDS の永続性を使用して、どのくらいのデータを配置できますか?
qt - Qt と RTI DDS の相互作用 --- ガイダンスが必要
QStackedWIdget に複数のフォームがある GUI を作成しています。これらのフォームのデータが利用可能になったときに更新する必要があります。データは RTI DDS を介して受信されます。GUIデータが非GUIスレッドから更新される例やリンクをいくつか提案してもらえますか。
ありがとうございました。
c++ - C++ マップを RTI DDS connext Publisher に渡し、RTI Subscriber で受信する方法
RTI DDS connext は初めてです。rti のいくつかの C++ の例 (Hello_dynamic、Hello_simple) を実行してみましたが、正常に動作しています。次に、C++ マップをトピック タイプとしてパブリッシャーからサブスクライバーに渡すことを考えました。 . ここで私を助けてください..??