2016-07-19 8 views
1

現在、Linuxベースのマシン(Ubuntu)のC++での実験用のデータ収集プログラムを開発しています.Labviewには、WindowsでプログラミングされたVI実験機器(モーター、シグナルジェネレータ)を制御します。目的は、2台のPC間で双方向の通信を行うことです.LinuxはどのVIを実行するかを尋ね、終了すると、Linuxマシンに信号を返します。 私の質問は以下のとおりです。LinuxマシンからWindowのLabviewへの信号/テキストの送信

  1. は、私は、LinuxからWindowsでのLabVIEW信号またはコマンドを送ることができます(ターミナル、それは私のCコードに実装することができます)、その逆と?どうやって?
  2. TCP Labviewはソリューションですか?または、シリアル通信(物理的にセットアップするのは簡単です)を介してPC間の「会話」を設定しようとしますか?

答えて

1

(も最も簡単な)方法は、TCPベースのクライアント - サーバ間の通信を実装することです(TCPは、データが損失がないことを確認します。あなたは常にあなたのコマンドが受信されていることを確認する必要がありますUDPまたはシリアルのような他のメカニズムを使用する場合のベスト正しく)。

LabVIEWサイトでは、指定したポートのLinuxマシンからのコマンドをリッスンするTCPリスナー(サーバー)が用意されています。

コマンド受信時に、LabVIEWコードは同じTCP接続で作業を行い、応答することができます。

これは、あなたの質問については非常に良い記事です:https://decibel.ni.com/content/docs/DOC-9131

-1

はC++とLabVIEWの間で通信するためのいくつかの選択肢が彼らのです。 (Linux/Windowsだけでなく)。

LinuxマシンでLabVIEWを実行したい場合は、いくつかのLabVIEW通信アーキテクチャを利用できます。ここにNIの白書があります。 http://www.ni.com/white-paper/12079/en/ 共有変数、ネットワークストリーム、Webサービス、TCP/IPなどの選択肢を提供します。

LabVIEWコードをDLLにコンパイルしてC++から呼び出すことで、上記の機能を利用することもできます。そうでなければ、TCP/IPルートまたはWebサービスに行く必要があります。

TCP/IPを使用することをお勧めします。両者を実装するのは非常に簡単です。 シリアルプロトコルをよく知っている場合は、それらを使って通信することもできます。

関連する問題