在这里找到了以下代码片段:http ://wiibrew.org/wiki/Wiimote#Bluetooth_Pairing
这里还有另一个将地址转换为密码的代码片段:https ://www.richlynch.com/2009/11/18/permanently-pair-wiimotewii-balance-board/
这样做的目的是将任天堂 wiimote 的 mac 地址转换为蓝牙配对期间请求的 pin 号。
我猜这是 C 或 C++,但对 C/C++ 一无所知,但我知道 javascript 和 python。
我想将此代码转换为 javascript 或 python,这样我就可以生成一个有效的STRING pin 号码,在蓝牙配对过程中出现提示时可以输入该号码,甚至在我了解此代码的确切作用后手动执行此操作。
这是原始片段:
Lets assume the Wiimote has the bluetooth address "00:1E:35:3B:7E:6D". If you want the PIN for bluetooth pairing in a simple string, do the following:
char pin[6];
pin[0] = 0x6D;
pin[1] = 0x7E;
pin[2] = 0x3B;
pin[3] = 0x35;
pin[4] = 0x1E;
pin[5] = 0x00;
Now "pin" contains your bluetooth pin that should be used for pairing your devices.
另一个使用函数的片段:
_TCHAR * FormatBTAddress(BLUETOOTH_ADDRESS address)
{
static _TCHAR ret[20];
_stprintf(ret, _T("%02x:%02x:%02x:%02x:%02x:%02x"),
address.rgBytes[5],
address.rgBytes[4],
address.rgBytes[3],
address.rgBytes[2],
address.rgBytes[1],
address.rgBytes[0]
);
return ret;
}
现在虽然我对 C++ 一无所知,但我知道这是使用某种(反转的)6 字节数组,当我使用 repl.it 上示例中的 MAC 地址运行此代码时,它确实会产生看起来像人类的东西可读的 4 个字符串,可以作为蓝牙 Pin 输入:
m~;5
但是,当我用我的实际 mac 地址替换原始 mac 地址时,它会生成不可读的字符,在我看来,这段代码实际上无法工作,wiibrew.org 上的原始海报一定有一些遗漏。
这是使用我的实际 MAC 地址:
char xpin[6];
xpin[0] = 0x03;
xpin[1] = 0xF4;
xpin[2] = 0xB9;
xpin[3] = 0x6E;
xpin[4] = 0xAE;
xpin[5] = 0xB8;
printf(xpin);
这就是结果,其中包括在提示为有效蓝牙 PIN 码时绝对无法输入的不可打印字符:
��n�� @
任何人都可以对此有所了解,因为我看不到提供的代码如何创建可用作蓝牙密码的人类可读字符串?
最终我想用 Javascript 或 Python 编写代码,但即使能够手动执行此操作并从 mac 地址生成有效字符串也会有所帮助。