「HP 54600 シリーズ・オッシロスコープ」の画面ダンプ
「HP 54616B」というデジタル・オッシロスコープを購入して、アイダイアグラム をコンピュータで読もうとしたら、「プログラマーズ・ガイド」に、まともなプロ グラミングのドキュメントがないのにびっくり。「メジャメント・ストレージ・モ ジュール ユーザーズ・ガイド」を見ると「利用可能な全オッシロスコープ・コマ ンドの詳細については、『HP 5400 - Series Oscilloscope Programmer's Guide』 を参照してください」と書いてあるものですから、それを入手すれば良いのかと 思ったら、これはその不完全なプログラミング・マニュアルそのものだというので す。

そこで、もう一度見直してみると、Windows 3.1 用のヘルプ・ビューアで見られる 「オンライン・ヘルプ・ファイル」というのが ftp できるようになっているとい うことで、それを取ってきてみると、実はこちらがまともなドキュメントで、どう も印刷コストの低減策みたいです。しかし、私のところには Windows マシンがな いものですから、印刷に一苦労。せめて、PostScript 形式のドキュメントも用意 してほしいものです。

さて、これで、時系列のデータの読みだしは簡単にできましたが、アイ・ダイアグ ラムのようなものは、「WAVeform:DATA?」といったコマンドでは無理です。思いつ くのは、プリンタ出力用と思われる「PRINT?」というコマンドを使うことぐらいで すが、データ・フォーマットを含めて、詳細がわかりません。

そこで、サポート窓口に聞いてみると、「アイ・ダイアグラムのようなものは、 34810B という Windows 向けのソフトウェアを使わないとできません。お客様は Unix しか使わないからだめですね」という回答。サポート窓口は、つれなく断る 仕事が多いのか、女性をあてるケースが多いようで、これはまさに適任。

仕方がないので、「PRINT?」コマンドで出てくるデータを解析すると、どうも、プ リンタ向けらしい、ESC シーケンスが見られます。それでは、というわけで、昔の HP のコンピュータのドキュメントを見つけてきて、突き合わせると「HP standard raster scan method」という、素直なラスター・データになっていて、あっさり解 決しました。

このコマンドの出力で使われているシーケンスは、次のとおりです。

ESC * r dots S
	dots は「640」といった数字で、画像イメージの1行あたりのドット数
ESC * r A
	左マージンをカレント・カラムに設定
ESC * b bytes W ラスタ・イメージ・データ ..
	bytes は W の後に続くラスタ・イメージ・データのバイト数
ESC * r B
	グラフィック・モード終了(テキスト・モードに戻る)
ESC & a position H
        position は 720 等の数値で 1/720 インチ単位のカーソル位置
ラスタ・イメージ・データは、1ラスタ毎のピクセルを8ピクセル単位にまとめた バイト列ですが、各バイトの内容は、MSB が一番左で LSB が一番右、ピクセルが ON なら対応するビットが 1 という規則になっています。

ここまで解れば、後は「PRINT?」コマンドで読みだしたデータを「PBM」形式等に 変換すれば、後はどうにでもなるわけですが、同じような問題に遭遇される方のた めに、簡単ですがpbm 形式に変換するプログラムを付け ておきます。

その後、このコマンド体系は「PCL Document Package」(5021-0330) というマニュ アル・セットにまとめられていることがわかり、カラーの扱いかたもわかりました。 かなり複雑なコマンド・セットですから、すべての可能性を網羅するのは大変です が、手もとにある測定器のカラー出力を処理するものは作ってありますので、ご希 望があれば追加します。

なお、「Tektronix」のオッシロスコープは、標準的なプログラムで扱える、デフ ァクト・スタンダードのイメージ・フォーマットを出力しますので、こういった苦 労をしなくて済みます。

平林浩一, 1997