テレパシーでデータを受け取るときの仕様の変更

M-1目前で、昨日からグダグダになっている。その詳細は、余裕がないのでまたいずれ。

ここで、記憶のために書いておくことは、サリーやハル、あるいはそれぞれ同士の間でメッセージをやり取りする場合に、telepathyというプロトコルを使用している。元々は、qichatで制御されるnao同士の間でのやり取りの仕様として開発したが、その後、emilyを積んだhal型のロボットと規格を統一してやり取りできるようにしている。

基本、相手のイベントを発生させるような信号を送るシステムだったが、さらに、メッセージも送れるようにした。送られたメッセージは、$telepathy_dataという変数に自動的に格納されるようにしていたのだが、ここにきて、同時に複数のデータを送るときに、同じ、$telepathy_dataに入れておくと、当然バッティングしてしまう。

だから、以後発生させるイベント名に_dataを付けた変数に格納する。例えば、telepathy_hal_subjectというイベント発生を相手の求めた場合、それにつけている「お題は」(実際は、ネットワークの制約からurlencodeしたものを送っている)というデータは、
$telepathy_hal_subject_data という変数に格納される。こうすれば、同じイベントで違うデータを送ろうとしない限りバッティングしないし(これはあり得ない、訂正とかであり得るかもだが)、やり方も覚えやすい。

naoの組み込みライブラリーの改訂が必要になる。ああ、面倒。

システムが、ハードとソフトにまたがって複雑すぎて、覚えられなくなっている。ので、せめてここに書いて、記憶の助けにする。