VISA通信を使って機器の制御を行うことになり、コマンドの受け手としてのVISA通信ソフトを作成しています。
VISA通信のコマンドは、複数のキーワードをコロン”:”で結んで階層化したり、キーワードの後ろにクエスチョンマーク”?”を付けると問い合わせを意味するなど、実装する側から見ると面倒だなと感じる仕様がちらほら。
面倒に感じていて手を付けずにしばらく放置していましたが、取り掛かってみると結構おもしろい。
久しぶりに”文字列の切り出し”を多用するプログラムを書くことになりました。
とりあえず、コロン、スペース、クエスチョンマークとNULLをデリミタにしたトークンの切り出しから開始。
もともと使っていたコマンドラインインタフェース用のプログラムを改造しているので、動かしながら少しずつ作業できるのも良かったです。
開発環境の制約から標準ライブラリに在りそうな関数が使えないので、コードが増大しつつあります。(stricmp とか、 toupper などが何故か使えないのです。。)
こういった関数も自分で書いてみると、”スピード重視ならどのように書くか?”とか色々と考えることがあって楽しいです。
単にヒマなのかもしれないけど。。