В нашли здесь следующий фрагмент: http://wiibrew.org/wiki/Wiimote#Bluetooth_Pairing
Здесь также есть другой фрагмент кода для преобразования адреса в пин-код: https://www.richlynch.com/2009/11/18/permanently-pair-wiimotewii-balance-board/
То, что он пытается сделать, - это преобразовать mac-адрес nintendo wiimote в пин-код, который запрашивается во время сопряжения Bluetooth.
Я предполагаю, что это C или C ++, но ничего не знаю о C / C ++, но я знаю javascript и python.
Я хотел бы преобразовать этот код в javascript или python, чтобы я мог сгенерировать действительный номер STRING , который можно вводить при запросе во время сопряжения Bluetooth, или даже сделать это вручную, как только я пойму, что именно это код делает.
Это оригинальный фрагмент:
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-байтовый массив, и когда я запускаю этот код, используя MAC-адрес в примере на repl.it, он действительно производит то, что кажется быть удобочитаемой 4-символьной строкой, которую можно ввести как пин-код bluetooth:
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-кода Bluetooth:
��n�� @
Может ли кто-нибудь пролить свет на это, поскольку я не могу понять, каким образом предоставленный код может создать читаемую человеком строку, которую можно использовать в качестве номера контакта bluetooth ??
В конечном итоге я хотел бы закодировать это в Javascript или Python, но даже возможность сделать это вручную и генерировать допустимые строки из mac-адресов была бы полезной.