Agilent や Tektronix など、 多くの計測器には画面ダンプ(screen dump)の機能がありますが、 WEB サーバーを内蔵する比較的最近の一部の機種以外は、 出力先が専用プロッタか専用プリンタになっていて、そのインタフェースは、 パラレルポート、シリアルポート、GP-IB ポートのいずれかです。
ところが、計測器に比べて、プロッタやプリンタの製品寿命が極端に短いため、 サポート対象の出力デバイスが存在しないほうが普通で、例えば、GP-IB の プロッタやプリンタは既に入手できませんし、 その他のインタフェースのプリンタも、それに近い状態です。
また、今の時代なら、印刷よりコンピュータで扱える画像データのほうが有利で、 できれば、印刷だけでなく、画像イメージデータも得られるようにしたいですから、 計測器から見たらサポート対象のプリンタに見えるが、 実際には受け取った印刷データ(コマンド)を LAN 上の他のコンピュータに送って、 コンピュータが印刷コマンドを画像変換する仕組みを実現するのがよさそうです。
そこで、 計測機器のプリンタインタフェースとして最も一般的なのがパラレルポートですから、 パラレルポートから印刷データを受け取って、 LAN 変換するツールを実現することにしました。
さして難しい仕事ではないので、自作の手間もさほどではありませんが、 念のため既成品を探してみたら、 SI-40LA という製品が見付かりました。 Lantronix Xport を使った簡単な設計ですから、 Unix で使うのも簡単で、 3 万円弱ですから、自作のほうが高くつきます。
一方、計測機器の出力データは、プロッタ用の HP-GL か PCL が多く、 HP-GL はほとんどの計測機器でサポートしていますので、 わざわざプログラムを自作しなくても、 FreeBSD なら ports/print/hp2xx で画像変換できます。 PCL のほうは自作せざるを得ませんが、 HP8714ES, HP8753ES, HP54616, Tektrinix 11801C など、 手持ちの測定機はすべてラスターグラフィックス形式で出力してきますので、 ラスターグラフィックス限定の画像変換プログラムを自作することにしました。
というわけで、 si40la と pcl2xx というプログラムを作ってみましたので、 お役にたつことがありましたら、どうぞお使いください。
コマンド si40la - LINEEYE SI-40LA によるプリントデータの読みとり 構文 si40la [オプション] 例 si40la # 入力データを標準出力に表示 si40la >file # 入力データを file に格納 si40la -P # 入力データを標準(lp)プリンタで印刷 si40la -P{printer} # 入力データを指定したプリンタで印刷 si40la | hp2xx - # HP-GL データを描画 LINEEYE SI-40LA はパラレル(プリンタ)ポートから入力した印刷データを LAN 接続 されたホストに送信するデバイスで、計測機器のプリンタポートに接続して、計測 機器が出力するデータをファイルに保存したり、ネットワークプリンタで印刷する ことができます。測定機の画面ダンプが典型的な用途ですが、出力データは測定機 によってまちまちで、HP-GL, PCL などが混在しますので、印刷が始まった後、一定 時間データが出なくなったところで、印刷終了と判断しています。-P オプションで プリンタ出力を指定した場合は、lpr(1) コマンドを使って印刷します。
コマンド pcl2xx - HP-PCL Raster Graphics viewer 構文 pcl2xx [オプション] [ファイル] オプション -g GIF 形式のデータを出力 -j JPEG 形式のデータを出力 -p PBM 形式のデータを出力 例 pclview <file # 画面に表示して確認 pclview -g <file # GIF 形式で file に出力 解説 計測機器の画面ダンプで使われる HP-PCL 形式のラスターイメージデータを オプションで指定された形式の画像データに変換し標準出力に書き出します。画像 形式オプションを指定しないときは画面(X11)に描画します。表示画面を閉じるには、 表示画面内にマウス・カーソルを移動して「q」キーを押します。HP-PCL コマンドで 処理できるのはラスターグラフィックのみです。
平林 浩一, 2011-01-07