火曜日, 12月 09, 2008

pipeを通して他のプログラムからgnuplot for Windowsを操作する (2)

昨日調べたことを元にgnuplotをfortranから操作するコードを書いていたのです。

インストールしましたgnuplot for windowsのバイナリファイルを見ますといくつかあることに気が付きます。調べますとgnuplot for windowsでpipeを使うにはpgnuplot.exeというのを使うのが流儀みたいです。pgnuplotはgnuplot for windowsとは別に入手して自分でコンパイルする必要があったのだそうですが、現在配布されているバージョンでは同梱しているようです。

でこれとpipeで繋いでコマンドとデータを送ってグラフを書かせてみるのですが…酷く動作が不安定です orz どうもデータ落ちが激しく発生している様子です。いろいろ試行錯誤してみましたが改善する様子がありません。やけくそになって、データを送る毎に2msecのウェイトを入れるととりあえず目に見えたデータ落ちは発生しません。1msecではダメです…が負荷をかけた時も2msecで大丈夫という保証なんてありません orz

「これでお茶を濁しておくか…」と思ったその時に、ふとgnuplot for windowsのバイナリファイルでgnuplot.exeというファイルが目に留まりました。「…これは何?」と思って動かしてみると、なんとコマンド入力画面が独自GUIではなく、コマンドプロンプトを使用したものです。「これはひょっとして」と思い、pgnuplot.exeでなくgnuplot.exeとpipeを繋いでみると…データ落ちがまったくなくなり、動作も軽くなりました!すばらしい!

これからはpipe以外でもwgnuplot.exeを使わずにgnuplot.exeを使うことにしようと思いましたなのです。

0 件のコメント: