Repo
kjana00@gmail.com
2014-09-17 02:00:22
今朝は……くもり? 朝ごはんはパンとトマトとソーセージ。昨日まで涼しかったのに、またちょっと蒸してるような。気のせいかもしれないけど。
何も情報が無いところでとりあえず作ると概ね全部捨てて書き直しても手間が変わらない感じになったりするよね、の続き。ちょっと変なタイングで動くからテストコードを書き難い、という程のこともなく。リセット直後の初期化中にチェックした上で、リセット要因が関連するものだったら上書きで異常とするっていう形にしてみた。で、テストコードの方では無条件でリセット要因とフラグをセットするっていう塩梅。一応、思った通りの動作はするね。
もう一つリセット要因を気にするようになったモジュールの方もいじって、それから別件。このモジュールが保存するデータにここの分足しといて、っていう話。手で書き下すのは嫌な気分。でも、テーブルで情報持って舐めようっていうと、スタイルガイド的に好ましくないキャストを大いに多用することになる。個人的には気にしないんだけどね……でも char と short と int のポインタに互換性がある保証は本来無い、とか思うとあれでそれ。void * で持てばいいじゃないかっていうのは置いておくとして。
テーブルを作るの自体が面倒臭いんだっていう話もあって、結局 EXCEL の表から書き下しコードに近いものを生成する VBA マクロをでっちあげる方向へ。最初、セルの範囲指定もらって範囲内だけ変換っていうコードを書こうとしたけど ActiveRange みたいなプロパティもメソッドも見当たらないもんだから、面倒臭くなって ActiveSheet.UsedRange で済ませたり。Rows 取らないで For Each r In rng とかしたら、r にセルが入ってきて間抜けなことになったりしつつもとりあえず、使えるようにはなった。テンプレートコードはこの出力で良くて、例外的なところだけ手で書こうという趣向。
同じセンサの出力は単にループで回すとして、ビットフラグをパックしてるところを出来るだけ間抜けっぽく見えないように書く方法というので悩む。どうせこの部分、最終的な製品には載らないコードだからどうでもいいって言えばいいんだけどね……多分数が増えたり減ったりもしないっていうかその分はマクロでカバーしてるから、そのマクロをパックする数だけずらずら並べるっていうのが一番簡単かつどの方面に対しても問題が無いやり方ではある。後で直したくなったら泣くっていうのを除けば。……ちゃんと書いても泣きそうではあるんだけど。
残ってたモジュールの仕様レビューがあったりもしつつ、今日はこれでおしまい。仕様を見たモジュールを書く役目も降ってきたんであんまり悩んでもいられないな。あきらめが肝心? それで帰って、晩ごはんは刻み蓮根天と豚汁うどん。しばらくぶりの天ぷらがまたおいしいこと。しゃきしゃき、もっちり。
後は WWW 見たりゲームしたり本を読んだり。54 階まで降りて微妙な収穫を得たり、ミミック部屋に手を出すのはやっぱり不毛だというのを再確認したり。