午前中は制御関連の調べもの。ようやく現代制御を一通り学習した。が、理解できたとはとても言えないので、あとでもう一回繰り返さねばなるまい。
午後からは装置からパソコンへのデータ転送を高速化する方法をいろいろ試してみた。高速化手段の最有力はデータ型をint(4byte)からshort(2byte)に変えること。これだけで転送量をほぼ半分に減らすことができる。これまでint型でやってきたのは従来の装置に組み込まれているDSPエンディアンがパソコンと逆になっていて、2byte単位でメモリ内容を転送すると値がおかしくなってしまうから。新しい機種ではこの問題は無いので2byte単位で転送できる。
今日はこの機種ごとの差異を#defineで条件分けして、新しい機種での転送を2byteにする。パソコン側のプログラムはどちらの機種とも通信できるようにしておく必要がある。そうするための方法には、機種ごとに読み取りクラスを切替え可能にするとか、いろいろ考えられるが、今回は単純にif文で分けることにした。これは実装の楽さと将来的に2byte以外のデータを扱う可能性を考慮してのこと。データブロックごとに処理の仕方をifで分岐するために、転送されるデータブロック自身にバイトサイズの情報を持たせておく。
やってみると転送後のデータが変になる。原因にはいくつか心当たりがあるが今日のところは終わりにしてまた明日。