2012年2月27日月曜日

PICでファミコンを操作する(2コン対応) その1

wiiリモコンで、ファミコンの操作ができるようになりました。 ただ1つのwillリモコンしか対応していないため、2つ目のwiiリモコンも接続できるようにします。 bluetoothの機器の探索で、2個見つけられれば良いはず...と考えてソース(main.c)を見ると以下の部分が該当しそうです。
case HCI_CMD_INQUIRY:
  //Inquiry (search bluetooth dongles around you)
  buf1[0]=0x01;
  buf1[1]=0x04;
  buf1[2]=0x05;
  buf1[3]=0x33;
  buf1[4]=0x8b;
  buf1[5]=0x9e;
  buf1[6]=0x05;//waiting time (5 * 1.28 sec)
//org  buf1[7]=0x01;//if there are bluetooth devices around you, you should give a maximum number here. 
  buf1[7]=0x02;//if there are bluetooth devices around you, you should give a maximum number here. 
  data_size=8;
  DemoState = BT_STATE_WRITE_CLASS;
  HciState = HCI_CMD_INQUIRY_RESULT;
  break;
INQUERYの最後の1byteで探索する機器の数を指定できるので、探索機器数を1→2にしてみました。 wiiリモコンを2つ用意して、認識させてみると...INQUIRY RESULT EVENTで返ってくる機器数は1のままでした。 他にまだ対応すべきところがあるんでしょうね、残念。

1 件のコメント:

  1. はじめまして、町田と申します。
    貴重な情報をありがとうございます。
    複数のアドレスを見るには、
    http://phys.sci.hokudai.ac.jp/LABS/yts/pic/GB002/hci1.html
    のHCImasterに関する補足に記載があるようです。

    PICを利用して、iOS機器とBluetooth接続に挑戦しております。
    Bluetooth機器が氾濫する中では、ペアリングしたいiOS製品のBluetoothのアドレスを
    HCI_CMD_INQUIRY_RESULT:にて、的確にとらえることは、難しいことでしょうか?
    他のアドレスをとらえた場合でも、
    case HCI_CMD_SAVE_HANDLE:
    if(buf1[2]!=0x00)
    におきまして、buf1[2]は0となってしまいます。

    返信削除