テレパシーを実現するためには、他のロボットの情報(少なくともIPアドレス)を得ていなければならない。これを対話的に与えるのはとても面倒なので、ロボット同士で、相互に情報を交換するシステムにする。
モジュールの中に、探索開始イベントハンドラを用意して、ALMemoryによってこのイベントが発生したことが伝えられたら探索を開始する(イベントの発生は対話で、ALDialogをとおして行えるので)。
探索は、前にも書いたように、ネットワークにブロードキャストパケットを送り出す。ローカルネットワークに繋がっている全てのロボットから送り出させる。それらを受信しあって、相手の存在を確認する。現状では、そのロボットのIPアドレスと、システムが保管しているロボットの名前を情報にする。自分のプロファイルをロボットクラスオブジェクトとして保存し、相手のロボット情報も同じクラスのオブジェクトとして保存する。
いずれ自分の初期位置情報も交換させたい。
確認した相手ロボットの名前を喋らせてもよい。
こうすれば、いちいち相手ロボットの情報を入力しなくて済む。
モジュールのコンパイルは済んだが、C++のnaoqiシミュレーターが、ALSystem を持っていない(不思議だ)、ので、そのロボットの名前を取得するシミュレーションができない。そこだけを適当に名前をつけて、シミュレーションするしかない。あとは、実機でシミュレーションだが、これは2台以上ロボットがないとテストできない。
ただ、対話のトピックファイルの中に、相手ロボットのIPを書き込まないとけないのか、その辺りが解決していない課題となっている。名前を書いておけば、モジュールがIPに変換するというのがいいのかもしれない。