2012/06/14

mbedで相手のMACアドレスを指定する

mbedのBlueUsbで接続デバイスのMACアドレスを指定する方法.
TestShell.cppのConnectDevices()を以下のように書き換える.

void ConnectDevices()
    {
        BTDevice* devs[8];
        int count = gHCI->GetDevices(devs,8);
        for (int i = 0; i < count; i++)
        {
            printfBytes("DEVICE CLASS",devs[i]->_info.dev_class,3);
            if (devs[i]->_handle == 0)
            {  
                BD_ADDR* bd = &devs[i]->_info.bdaddr;
                if(bd->addr[5]== 0x## && bd->addr[4]== 0x## && bd->addr[3]== 0x## && bd->addr[2]== 0x## && bd->addr[1]== 0x## && bd->addr[0]== 0x##);
                else continue;

                printf("Connecting to ");
                printf(bd);
                printf("\n");
                gHCI->CreateConnection(bd);
            }
        }
    }

太字部分を追加.
bd->addr[5]を先頭アドレスとして##に接続したいデバイスのMACアドレスを入力する.

これでbluetoothが飛び交う環境でも目的のデバイスに接続できるようになる.