Repo

kjana00@gmail.com

older <-

2013-05-11 00:57:57

今朝はくもり。朝ごはんはパンとサラダとソーセージ。業務部屋に入る時点でぽつぽつ来てて、これは降られるかと思ったけど作業場所に移るまではどうやら保ってくれた。ありがたい。

何でこんな変な壊れ方をするのかを確かめようとデバッグ出力を足してみて、そのデバッグ出力に到達する前にもう壊れてるというのを確認。で、もう一度真面目に起動からの流れを追ってみて、ようやくソケットの対向にいる話し相手から受け取ったデータそのままなんだなっていうのに気付く。こっち側は情報増えた分で構造体にメンバー足したりしてたけど、相手の方は全然いじってないもんだから、そんなメンバーがあるとは当然思ってない。で、電文は要するに単なるバイト列なもんだから、メンバー足りない分読み取れる値がずれる。バイト数固定でのコピーしかしてなかったからたまたま落ちることも無く動き続けた結果が妙な壊れ方。道理で構造体の中身出力してるのに値だけずれたような格好になるわけだ……話し相手を直すのは面倒臭いんで、メンバーの順番を入れ替えてバイナリ互換性を高めてみたら無事、壊れなくなった。

それからこっち側だけいじってとりあえず動かすっていう方向だと、という線でもうちょっと押してみる。送ってもらえない情報のせいで追加した分の情報が蹴られるから、送ってもらったかのように適当な値をセットしてマッチングを通してみるとか。もう一つ通ってないように見えるのは、通らなくて当然な情報だから放っておいて OK、と。

今回ファームウェア更新機能を追加したした機器の場合は外部コマンドで実際の書き換えをしてるわけだけど、このコマンドをインストールしてないんで当然、実行に失敗する。で、失敗した場合にどうもタッチパネルの表示が戻らない。これは何だろうと思いつつ話し相手の方を見てみると、ちゃんと失敗した場合にはエラーを報告して通常状態に戻るようになってる。これってタッチパネルのファームウェア更新の後に持って来たから当然のようにそうなってるだけで、前で失敗してたらちゃんと表示出来るんじゃないかという気がしてきてそうしてみたら、どうやら、正解。本当はタッチパネルのファームウェア更新入った後でも表示を復帰してほしい気はするけどね。

echo $0 "$@" なんてするだけのダミースクリプトを作って実行すると、全体の工程を終了してリブートするまで無事、通過。一応、こんなものかな……そこから結局話し相手の方もいじり出して、必要最小限っていうか、通信に使ってる構造体にメンバー足してその値をとりあえず固定値セットして返すだの、今回足した要求の応答を何もしないで成功したって言い張るだけのコードを足すだのしてみた。それで組み合わせて動かしてみて、一応ちゃんと動いてるように見えるのを確認。こんなものでいいかなという気分。いくつかある動作モードのうち一つしか見てないとか、色々なところで途中中断した場合の動作も本当は確認しなきゃいけないとか、本物のファームウェア書き換えコマンドとの組合せも見なきゃいけないだろうとかはまた、先で……製品情報とファームウェアバージョンとして設定ファイルに書く値がまだ適当っていう問題もある。実機から得られない情報だと比べられないからねぇ。

まあ今の設計が複雑過ぎるんだけどなと思いつつ帰る。もっとずっと単純な作りで十分だよな、あれ……状態遷移にしても、コンポーネント毎に準備と実行と終了確認があれば、後はコンポーネントの順序だけでいい。中途での電源断への対処も all or nothing で構わないはずだし。最後のコンポーネントの終了確認まで出来てなかったら全部やり直しで問題になりそうなケースって別に無いだろう……それで差分更新と強制全更新をまとめて同じロジックの載せられるし。さすがに作り直せないけどね。QA 完全にやり直させることになるから。

まあとにかく帰って晩ごはんにとろろ昆布のつゆとお寿司と枝豆。何となく寿司食べたいなという気分になって。たまにはいいかと。食品売り場で買えるものにしてはなかなか悪くない感じ。もう二つ、三つあると量的にも丁度いいのかな……食べた直後は十分なんだけど、多分これは後でお腹空くな。

後は WWW 見たりゲームしたりまんが読んだり。対混乱の付いたアーティファクトなアミュレットが手に入って、今までのアミュレットで確保してた経験保持は武器の持ち替えでカバーして、持ち替えた武器に対劣化が付いてるんで鎧を替えて失われる対混沌を鎧で確保。結果。前に買ってずっと装備したかったけど耐性面で困るから使えなかったスピード +6 の指輪を装備出来るようになりました。色々合わせてこれでスピード +17。だいぶ楽になるねということで 30 階レベルクエストに挑んで無事、片付ける。やっぱりスティングは永遠光源付いてて忍者にはそぐわなかったよ……

older <-

goto

hint can be:

Tags

old

2007-05 -- 2006-12

ゲーム関係の古い記録

before 2005-12