witchの日記: (ROBO) X-17 最近の進捗 (無線モジュールテスト継続中…) 4
日記 by
witch
パケットサイズ(1byte,16byte,128byte,可変、から選択)を増やせばデータ落ちが減るかと思って試したけど、マニュアルから使いかたを読み取れない… orz
面倒になったので、ソフトウェアフロー無し、パケットサイズ1byteにして、同じデータを数個繰り返して送ることに。
一つのデータを4回繰り返して送信し、4バイトごとに 0.2秒、16バイトごとに0.5秒のウェイトを入れるようにしたら、それなりにエラーを回避できるみたい。(受信側では同じデータを無視するだけ)
送受信メッセージの形式を1フレームを4バイト、各バイトの上位2ビットをフレーム内オフセットに使えば、受信側でエラーチェックとメッセージ再構成ができるはず。
でも、この通信レート(1メッセージに1.5秒)じゃあちょっと話にならないかな…
週末の練習会にはこれで行くとしても、ロボファイトまでに何か別の方法考えなきゃ。
そういえばバイト落ちはするのにビット反転とかのエラーが起きないのはなんでだろう…
無線部分のプロトコルがどうなってるのか謎。
(チェックエラーのデータを捨ててる?)
--- 2007.04.25 01:12 追記
16バイトごとのウェイトを無くし、4バイトごとに0.1秒のウェイトだけにしてもエラー率はそれほど変わらなそう。
ん?これって (スコア:1)
Re:ん?これって (スコア:1)
私のテストプログラムがどっかおかしいのでしょう。
Re:ん?これって (スコア:0)
Re:ん?これって (スコア:1)
パケットモードでのデータの渡し方がまずかったのが原因のようで、パケット内でのデータ落ちは発生しないようになりました。
次は、L-Card側からのステータス返信と再送制御です。
(再送しなくてもいいようなデータ形式にしてしまうかも)
あ、L-CardのFIFOはちゃんと有効になっています。