問題タブ [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.
sql - 2 つの別々のシステム、それらを通信させる方法
無線で ROS ノードと通信している DDS システム (OMG DDS) を入手しました。受信される情報は、速度、状態、経度、緯度などを含む構造体です。これはうまく機能し、私の DDS クライアントはノードから無線で送信される情報を問題なく出力します。これで、Qt で記述された GUI アプリケーションができました。モデルを作成し、定義済みのマップに配置します。これらのモデルには一連の情報関数が定義されており、トリガーされるとマップを更新して、受信した情報をスムーズに視覚化します。
ここに問題があります。GUI アプリケーションを DDS クライアントと通信させる方法がわかりません。DDS クライアントと送信側を動作させ、ROS でコンパイルするだけで十分な問題が発生したため、これら 2 つを絡み合わせたくはありません。DDSクライアントとGUIアプリケーションに含めることができる別のキューシステムについて考えましたが、これが機能するかどうかはわかりません. また、SQL データベースを作成し、新しいデータをプッシュし、GUI アプリケーションで検出されたときに新しいデータをプルすることについても検討しました。プル関数をトリガーするある種の on_data_available 関数。継続的に更新されている 1 つのデータ セット (モデルは 1 つの USV を表す) のみを使用して作業しているため、最後のものは悪い考えだと聞いたことがあります。 .
これが十分な情報でない場合は申し訳ありませんが、さまざまな理由でコード例を実際に提供することはできません. 誰かが意見を持っている場合は、大声で言ってください。ぜひ聞いてください。そして、私が十分に具体的でない場合は、できる限り最善を尽くして書き直そうとします.
c++ - pragma keylist キーワードは何をしますか?
さまざまな IoT メッセージング プロトコルについて読んでいるときに、以下のように定義された構造に出くわしました。
私の質問は: この#pragma keylistキーワードは何をするのか、#pragmaプリプロセッサ ディレクティブの使用に関するドキュメントはどこにありますか (そのようなディレクティブだと思います..)。
ありがとう。
ace - OpenDDS - message_writer->write(...) エラー DDS::RETCODE_TIMEOUT
openDDS で簡単なメッセージ プログラムを作成しています。このプログラムは、パブリッシャーとサブスクライバーを使用します。パブリッシャーで、次のメッセージを書きます。
180 バイトから 3012 バイトに送信しようとすると、ライターは次のエラーで失敗します。
エラー 10 (== DDS::RETCODE_TIMEOUT)
、約260メッセージの後(1500メッセージを送信しようとしています)。私が奇妙だと思うのは、1 <= x < 180 および 3012 > x > 102400+ バイトからのメッセージを送信したときに機能することです。
ライター側でエラーが発生しています。私が行うライターの下:
私のidlファイルは次のようになります:
したがって、これは TAO 文字列マネージャーを使用します。メッセージに char* を渡します。
その後、前のようにメッセージを書きます
参加者:
トピック:
出版社:
ライター:
どんな助けでも大歓迎です。ありがとう!
c++ - ポリモーフィック C++ オブジェクトを非ポリモーフィック C オブジェクトに変換
奇妙な質問のほんの少しの背景: 私はネットワーク フレームワーク (RTI DDS) を持っています。これには、ポインターを取り、C 構造体を文字列に変換する C シリアル化関数があります。
また、C++ クラスでも使用できます (動作するように設計されています)。しかし、仮想関数を追加して C++ クラスをポリモーフィックにすると、このシリアル化関数によってセグメンテーション違反が発生するか、さらに悪い場合には間違った出力が提供されます。
構造体のメモリ レイアウトについて内部的に仮定していると思います。
ポリモーフィック C++ オブジェクトから生の C ポインタを取得することは可能ですか?
すべての構造体を 2 回 (1 回はポリモーフィック、もう 1 回は非ポリモーフィック) 作成するだけでよいことはわかっていますが、これは途方もない量のグルー コードにつながります。
現在、私はアイデアがありません。
いくつかの技術的背景: C 関数は RTI DDS ソース パッケージにあります。
DynamicData.c DDS_ReturnCode_t DDS_DynamicData_to_cdr_buffer(...) { ..
data-distribution-service - OpenSplice (DDS) へのデータの送信
私はDDSとopenspliceを初めて使用するので、これは簡単かもしれませんが、理解できません。
私は、opensplice のドキュメントでリーダー キャッシュとライター キャッシュについて読んでいます。データが datawriter キャッシュに入り、datareader キャッシュに送信されることを理解しています。しかし、そもそもどのようにして持っている情報を datawriter キャッシュにプッシュするのでしょうか?
そのための別のコマンドはありますか?それとも、デバイスまたはアプリケーションをトピックに発行またはサブスクライブするときに、データが自動的にキャッシュに送信されますか?
全体として、私の質問は、どのようにしてデータが opensplice/datawriter キャッシュに入るのかということです。
助けていただければ幸いです。私が言ったように、私はチュートリアルとリファレンス ガイドを読んでいます。情報がopenspliceにあるときに何が起こるかについてはよくわかりますが、そこにどのように配置するかわかりません. 可能であれば、例にもリンクしていただけますか?
ありがとう
c++ - DDS システムで後方互換性メッセージを壊さないでください
私は、通信するためのプロトコルとしてDDSを使用し、言語としてC++を使用するプロジェクトに携わっています。ご存じのとおり、やり取りされるメッセージはトピックと呼ばれます。チームがトピック定義を変更しなければならない場合があります。その結果、このトピックに依存する他のソフトウェアが動作しなくなり、トピックをどこでも更新して再コンパイルする必要があります。それで、私の質問は、後方互換性を壊さない方法を知っていますか? 私は検索していて、Google プロトコル バッファを見つけました。彼らは次のように言っています。
「下位互換性を損なうことなく、メッセージ形式に新しいフィールドを追加できます。古いバイナリは、解析時に新しいフィールドを単に無視します。そのため、プロトコル バッファをデータ形式として使用する通信プロトコルがある場合は、プロトコルを拡張する必要なくプロトコルを拡張できます。既存のコードを壊す心配はありません。」
他のアイデアはありますか?
前もって感謝します。
data-distribution-service - ワイルドカードを使用して類似の DDS トピックのグループにサブスクライブする方法
私はデータ配信サービス (DDS) を初めて使用します。ワイルドカードを使用して DDS のトピックのグループにサブスクライブできるかどうか知りたいです。似たような名前のトピックからまとめてデータを受信できるようにします。たとえば、IN_Temperature、NEP_Temperature という 2 つのトピックがあります。温度を持つ名前を持つすべてのトピックをサブスクライブする方法があります。
iot - 渦霧渦ゲートウェイ統合
データ配信サービスは初めてです。DDS に PrismTech 製品を使用しています。ネットワークに vortex lite があります。パブリック クラウドで vortex ゲートウェイと対話するために、vortex fog サービスを使用しています。しかし、相互作用を確立することができませんでした。誰でも同じことを入力してください。
ネットワークで実行されている DDS サブシステムがあり、そこからのデータをクラウドで実行されている vortex ゲートウェイと共有する必要があります。この目的のために、vortex fog を使用しようとしています。ボルテックス フォグの構成で、クラウド サーバーのパブリック IP について言及しました。ネットワークで実行されているサブシステムから dds データを受信するために、クラウドで実行されている vortex ゲートウェイ サブスクライバー ジョブがあります。
フォグ サービスは、NAT の背後の LAN で実行されています。フォグサービスを実行するための構成を以下に設定しました
クラウド サーバーでは、さまざまなトピックにサブスクライブする渦ゲートウェイを実行しています。
この問題を解決するために私を修正/ガイドしてください
publish-subscribe - Messenger の実行中の OpenDDS エラーの例
編集: DCPSInfoRepo から RTPS に切り替えましたが、すべて正常に動作しています。DCPSInfoRepoで作業しているすべての人の問題に答えるために、この質問を開いたままにしておくべきかどうかわかりません
私は OpenDDS の使用を検討しており、現在 Windows の「はじめに」ガイドに従っています。コマンドを使用してメッセンジャーの例を実行するステップに到達しました
エラーだと思われる次の出力が得られます。
この問題を解決する方法を教えてください。
qos - 私が送信したのと同じトピックを受信しないようにする
DataDriver と DataReader の両方である OpenDDS ノードがあります。その結果、ノードがトピックを送信すると、同じトピックが同じノードから受信されます。
この動作を回避する QoS ポリシーはありますか? ノードがそれ自体以外のすべてのノードからトピックを受信できるようにしたい。