Repo

kjana00@gmail.com

older <-

2010-09-08 00:20:27

今朝はくもりっぽく。朝ごはんはパンとソーセージとゆでたまごとサラダ。ちょっと風もあって涼しめ……と言ったところで暑いものは暑い。

たまったメールを眺めたり、質問が来てるのを眺めたりしつつ仕事を開始。先週実行サイクル数の計測をしたコードで一番時間がかかってるここは何してるんでしょうというのに答えようとしたら、引数を間違えてて平常時にろくに仕事してないのが判明したりして。慌てて直して計測もやり直し。最悪の時間が悪化しなかったんで一安心……初期化、初期出力と初期状態の設定、通常モードっていうフラグが引数だったらそう並んでると思うじゃないねぇっていうのは、文書をちゃんと読んでなかったいいわけとしては弱いか。

さて次の質問。ログ通りなら確かに変に思えるけど何だろうね……って、これ、本当なら異常値はログに見えないはずなんだ。見えてるっていうことは、故障確定後に所定のアクションを取れてないっていうことね。何だ? ……ああ、単なるバグ……デバウンス処理にアクションの実行まで含めてあるんだけど、デバウンス条件が空だったら何もしないで帰るようになってた。で、今回見てた故障は回復しないから故障確定後はデバウンス条件が無い。predicate はあったら呼ぶ、threshold があったら比べるっていう風にして early return を避けたら問題無し、というか、ちゃんと異常値がオーバーライドされてログから見えなくなった。

で、改めて質問された現象を考えるに、デバッグモニタ出力にオーバーライドされた後の値を出してるから、デバウンス処理無しに唐突に故障が検出されてるように見えるだけだな、これ。実際さっきのデバッグ中には異常値をオーバーライドする処理が呼ばれてるのを見てるわけで。上書きしてる間にデバウンス処理が進んで確定したところでバグでオーバーライド処理が止まってた、と。デバウンス処理の様子を見ようと思ったら、デバッグ出力を別の変数にしなきゃいけないか。やろうと思えば簡単に直る……まあ、質問を返しておこうか。ついでに重複して検出出来るセンサ故障は全部検出出来るように直しておく。今まで enum で表現してた上に if () {...} else if () {...} else if () {...} だったんで一つしか見えなかってん。ビットフラグにして if 文もばらした。ん、動いてるね。

別の質問は、単に仕様通りに出力してるから、仕様で未使用として gray out されてるビットは立たないですよというだけの話。これも立てます? って質問しておいておしまい。通信系の方は調べてもらった結果をまとめてもうちょっと質問を突っ込もうかというところ。コード生成をやり直してもらった分は、軽く見直したところではまあ大丈夫っぽい。共通の変数とか定数を参照するようにしてもらいたかったところではあるけど、片手間でやってもらうには大がかりになり過ぎるかな? ……と、とりあえず今日はそんなところ。

帰って晩ごはんに冷奴と枝豆と豚汁うどん。どうも傷みがちな大根を使い切ろうなんて考えたらちょっと多くなった。お腹一杯。それでも枝豆は食べるんだ、なんてしてるからますます。おいしいんだけどね……

WWW 見たりゲームしたり。吟遊詩人は柔らかくてしょうがないな……油断するとすぐ死にかける。

older <-

goto

hint can be:

Tags

old

2007-05 -- 2006-12

ゲーム関係の古い記録

before 2005-12