« ファームウェアがおかしいのか? | トップページ | Urg invalid response. »

2010年10月 4日 (月)

ファームウェアがおかしかった。(解決)

昨日の日記で書いた件。解決しました。

昨日は、ファームが制御用PCのプログラムが送ったコマンドをちゃんと受信してくれない問題についていろいろ試行錯誤しました。その結果、ファームがおかしいんじゃないか、昨年のつくばチャレンジ本番以降に、ファームを変更したんじゃないかという疑いが出てきました。

そこで、今日はWinMergeを使って、昨年の11/29付でバックアップしてあったファームのソースコードと、日付が無くておそらく一番新しいであろうソースコードを比較してみました。あれ、いろいろいじってますね。結果的には、ファーム側のシリアル通信の受信処理に追加したコードが悪さをしていることが判明しました。

その過程で、制御用PC側のプログラムにもまだ拙いところがあることも判明しました。例えば、ファーム側は受信データがおかしいと、チェックサムが無い、そんなコマンドは無いなどのエラーコードを返し、受信データが正しければACKを返すのですが、制御用PC側のはその返ってくるレスポンスを完全に無視していました。

ファームも制御用PC側のプログラムも、エラー処理等がかなり甘い状態です。トラブル発生時に原因を探しやすくするためにも、この際エラー処理をきっちり入れてあげたいところです。が、先週立てたスケジュールが既にスリップし始めているので、後回しにしちゃいそうな雰囲気です。

« ファームウェアがおかしいのか? | トップページ | Urg invalid response. »

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/167990/49650908

この記事へのトラックバック一覧です: ファームウェアがおかしかった。(解決):

« ファームウェアがおかしいのか? | トップページ | Urg invalid response. »

最近の写真