1

Qt を使用した Ubuntu 10.04 LTS で netcat ユーティリティを使用して、デバイスで SCPI コマンドを起動したいと考えています。私のコードは次のようになります:

env = "echo TRIG | nc 192.168.1.100 23 -q1";
process1.execute(env);
process1.waitForFinished(1000);

このコマンドはデータを返しませんが、単にデータ取得をトリガーします。同じ「echo TRIG | nc 192.168.1.100 23 -q1」コマンドでターミナルを使用すると、すべて正常に動作します。Qtからは動作しません。デバッグ出力は「TRIG | nc 10.0.3.250 23 -q1」です...したがって、「エコー」はありません。デバイスが TRIG コマンドを受信しません。

私が間違っていることを教えてください。どうもありがとう。

4

2 に答える 2

1

そのように QProcess でパイプ コマンド (|) を使用することはできません。

これに取り組むにはいくつかの方法があります: -

最初のコマンドを呼び出してその出力を取得してから、Qt で処理するか、QProcess を別の呼び出しで処理することができます。

または、QProcess から呼び出して出力を取得するスクリプトを作成します。

最後に、Linux / OSX を使用していると仮定すると、/bin/bash で QProcess を呼び出し、それにコマンドを渡すことができます。例えば: -

env = "/bin/bash \"echo TRIG | nc 192.168.1.100 23 -q1\"";
process1.execute(env);

おそらく、Windows の /bin/bash に相当するもの、おそらく cmd.exe を見つけることができます。

于 2013-10-29T08:49:04.400 に答える