先日の出張で見付けたバグ潰し。なかなか順調だ。
バグは(ターゲット)装置とホスト(PC)の間で起きている。
ホスト側のプログラムはC++オブジェクト指向で書いてある。測定動作は、フィードバック機能、シーケンス機能、電圧発生、アンプの制御などの多くの機能ブロックから成り立っていて、それぞれの機能を担当するクラスが存在している。
それに対して装置側のプログラムはC言語で書かれているので、機能ごとにきれいに分離できておらず、ホスト側のクラスとは一対一に対応していない。
さらにターゲット-ホスト間の通信の制限で、コマンドがビットフラグだらけになったりすることがある。
できるだけ複雑さを避けてはいるのだが限界がある。装置にリアルタイム性能が要求されているので、冗長性をもたせることが難しいことが原因だ。

かように複雑なので集中力が十分にある状態でないと手が出せない。このところプログラムが順調に進む日が増えてきたのはおそらく気温に関係がある。(職場はせまくるしくて暑いのだ)。プログラムの進行度を数値化できれば、相関関係を調べてみたいものだ。