UDPパケットの受信で

久しぶりにsqueakネタです。

今度のロボカップジャパンオープンで帝京科学大学の斉藤研究室と合同チームを組みました。最初の計画では別のシステムでやる予定だったのですが、時間的な余裕がないということでDefartを使うことになりました。

ところがDefartを組み込んだAIBOを起動しても、肝心のSqueak側のDefartが反応しません。コマンド送出は問題ないものの、AIBOと通信できていることを示すブルーのランプが表示されないのです。

すったもんだ調べたあげく、ビーコン(2色の筒)を認識するために追加したコードのせいで、PC側に送るUDPパケットが大きくなり、それをPC側で受け取れなくなっていました。

buf := String new: 200.

のようにバッファを確保しており、それ以上のデータが流れてきていたのです。次のバージョンのこともあるので、場当たり的なコード修正にとどめ、サイズを増やすことで解決しました。

ちなみにこれはWindows版のことで、UNIX版のSqueakでは特に問題なく受信できていました。そっち側がどうなっているのか中を見てないので心配(不思議?)です。