Repo

kjana00@gmail.com

older <-

2010-09-15 01:10:27

今朝は晴れ。朝ごはんはパンとソーセージとゆでたまごとサラダ。起きた時にはくもり? って言いたくなるところだったけど、出掛ける頃にはすっかり晴れ渡ってた。その割には涼しめ。人身事故のため電車の運行を見合わせております、には参ったけど。

何をやろうかと思いつつ仕事場に出てみたら、質問だの要望だのがちまちま来てましたというころでその対応へ。その状態が観測出来ないのは仕様ですっていうのを実行サイクル数の計測も踏まえて述べてみるとか。デバッグモニタの出力にこの辺追加してというので突っ込んでみたり。それで出来たつもりでモニタ眺めてみると出力が変だったり。何でと思って ICE で出力部分を眺めてみても何もおかしいところが無かったり。実はデバッグモニタの解析設定を間違えてるだけだったり。

二つのモジュールでインターリーブさせるようにデバッグモニタ向けの出力が出るようにしたわけだけど、モジュール番号 1 の方だけ繋いで動かした場合ログが取れないフォーマットがありますなんていう質問が来てたんで調べてみる。確かにそういうのがある。このフォーマットでモジュール 0 に出力を指示した場合はログ取れないけど 1 に出力を指示した場合は取れるっていうのも再現。他のフォーマットではどうなんだと見てみると、取れるのと取れないのがあって……というのを見てるとどうも、ログ出力の最初のパケットが取れたかどうかで話が決まってる節があるのに気付く。どうやっても取れないのは完全にインターリーブしてるフォーマット。つまりモジュール 1 はモジュール 0 と同じ ID のパケットを決して吐かないフォーマット。出力を指示してやれば取れるっていうのは、前半はインターリーブしてるけど後半は指示された方のモジュールだけが通信を占有するフォーマット。

モニタプログラムの最新ソースってどこにあるんだろうとちょっと探してみ見つからなかったんで、ちょっと古いバージョンのソースを漁って調べてみる。エントリポイントがここでこっちいってこうなってこのスレッドで受信パケットに対してログの書き出しだの画面表示の更新だのやってて……で、そこで予想通り、以前のままならログ出力の先頭パケットになる ID を見たらそこで同期を取ってログ出力と画面更新をするようになってるのを確認。とりあえず実験的に確認しようと見る ID にモジュール 1 がインターリーブさせて吐く場合の先頭パケットのを足してやったらさくっと動くようになった。タイミングが変になるかもしれないけどとりあえず更新かかるようになるよねっていう確認のつもりだったから上手く行き過ぎてびっくり。それにしてもこいつってば予想通り、全力で busy loop でポーリングしてるんだな…… Sleep() でも適当に挟んでやったら負荷はだいぶ下がるだろうな。どうせ通信は最短でも 10 ms 間隔なんだしって、ログに関してはそうだけど、コマンドに対する応答もあったか。うーん。ちょっと試してみてもばちは当たらないだろうけど。

明後日出張して動作確認してくるから明日の午前中には欲しいなと言われた辺りが片付いたんで帰る。頭の方のログがちゃんと取れない場合が多いんだけどっていう質問については、まあ、明日以降で構わないでしょう。そもそもこのモニタプログラムいじるのはあんまり本来の作業の範疇に無いんだし。時間が出来てるからやってるけど。

それで帰って晩ごはんに冷奴ととろろ昆布のつゆと五目寿司。ちょっとにんじんが多かったか。でもまあ、特別悪くはない。煮込み方が足らなくて微妙に味の染み込みが足りない風味っていうのそんなに気になる程じゃなく。

それから後は WWW 見たりゲームしたり。粘ってみたものの結局はぼろ負けとか、全然避ける気無いだろうと言われそうなありさまとかはあれな感じ。で、混沌の戦士でワーグを殲滅してからモリバントまで出てみました、と。チャードロスは今のところ現世利益が薄い。

older <-

goto

hint can be:

Tags

old

2007-05 -- 2006-12

ゲーム関係の古い記録

before 2005-12