計測用のインターフェースを購入すると、機能拡張またはコントロールパネルとしてドライバが提供される。さらに、CやPascal, HyperCardなどからインターフェースの機能を使うためのライブラリがついてくる。仕事の規模や種類によっては、このような言語を使ってプログラムを書くよりも、LabViewなどを利用した方が効率的だろう。しかし、規模がLabViewを使うほどでもないとか、予算の都合でLabViewが買えない(最近は学生版が安く入手できるようですが)とか、計測は簡単だがその後の処理の方をたくさん書く必要があり、LabViewではかえってやりにくいとかいう場合もある。こういうときは言語を使って組むしかない。
C/C++、Pascal、Javaの統合開発環境。Windows用の開発もできる。とりあえずこれがあれば、計測用ボード付属のサンプルプログラムはコンパイルして動かすことができる。
WaveMetricsという会社が作っているデータ解析ソフト。波形をいじくり回すような解析をするなら、これをおいて他には考えられない。とにかくこれを使ったら、カレイダグラフなどその他のソフトを使う気はしなくなる。
WaveMetricsのページからはデモ版をダウンロードできる。このソフトの特徴は、グラフを描く、解析のための計算をする、といった操作をメニューから選んで行うたびに、それに対応する命令が生成されて実行されること、その命令の文字列がコマンドウィンドウに表示されていて、いつもそれを眺めながら使うことになるところである。1回やりたい操作をして命令を生成してしまうと、次に同じようなことをするときには、すでにできた命令をコピーして、必要な部分だけ書き換えて実行するだけでよい。よく、GUIは初心者はとっつきやすいがベテランの生産を上げるわけではないと言われるが、初心者は初心者なりの使い方ができ、慣れてくるとコマンドを一部編集というCUI的な使い方が可能になるところが、Igor Proは実にバランスのとれたソフトだと思う。
Igor Proは、プロシージャ言語を持っていて、自分のやりたい操作をプログラムしておくこともできるし、プログラムだけ別ファイルに分けて保存しておくこともできる。プロシージャ言語の制御構造以外の部分は、普段コマンドウィンドウに表示されているものがそのまま使えるので、普段の操作で自然とプロシージャの書き方まで身に付く。組み込み関数も数が多く、フィッティングの解析などで自分の定義する任意の関数を使うことができる。
プロシージャ言語だけでもかなりのことができるが、さらに機能を拡張したい人のために、XOP Toolkitが別売されている。フォトショップやNetscapeのプラグインのIgorPro版を作るツールだと思えばよい。しかるべき手順でCでプログラムを書いて、Toolkitで提供されているリソースやライブラリをリンクすると、Igor用のプラグイン(XOP,XFUNCと呼ぶ)ができる。これを、IgorProフォルダの中にある、Igor Extensionsフォルダに入れてからIgorProを動かすと、XOP,XFUNCを読み込んでからIgorProが立ち上がってくる。XOP,XFUNCて定義された命令や関数は、IgorProのプロシージャから元々あった関数と同様に呼び出すこともできるし、IgorProのメニューに項目を追加するという形にもできる。CコンパイラはCodeWarriorを使っている。
XOP Toolkitを利用して、測定装置から出されるヘッダ付きのファイルを読み込むときにヘッダを解釈しながら読み込むような機能を作ったり、プロシージャで組むと少し辛いような計算をCで書いてIgorから使えるようにしたり、GPIBを使うための橋渡しをCで書いてIgor側からはプロシージャ内で呼び出すようにしてみたりといった使い方をしている。WaveMetricsのウェブページからたどれるstanford大学のサイトには、いろんな人がつくったXOP,XFUNCやプロシージャが公開されている。
私も、Igor用のXOP,XFUNCをいくつか作っているので、順次公開していくつもりである。最初からmacアプリを作るのはそれなりに手間がかかる。必要な機能だけ作って、他の表示などの機能は全部Igorのものを利用すると、楽に仕事をすることができる。