2011-03-04 4 views
5

Im пытается получить выход с Wii Fit (баланс). Я могу найти устройство через C++ Bluetooth-счетчики, но попытки подключения через сокет Windows не работают.Прочитанные данные с Wii-balanceboard

Мне интересно, был ли у кого-то успех в таком направлении (C++, windows), я бы хотел услышать, как вы это сделали.

+2

Просто случайная идея - вы изучили Wiimote библиотеки? Я не удивлюсь, если подключение к плате баланса несколько схоже. – EboMike

+0

.. Я изучаю «WiiYourself» ... – ethrbunny

+1

Используйте gamedev.stackexchange.com –

ответ

5

Плата Wii Balance - это устройство HID. Чтобы понять связь с балансом, вам нужно немного узнать о Bluetooth HID. Есть хорошая информация о WiiBrew о Wiimote и Wii Balance Board.

Я не думаю, что вы можете использовать Windows Sockets для подключения к HID-устройству. Интерфейс Bluetooth Socket Bluetooth позволяет подключаться только к службам RFCOMM. HID основан на L2CAP, который далее находится в стеке протокола Bluetooth. Есть некоторая информация at MSDN об этом ограничении.

Если вы просто хотите взломать его, вы можете попробовать Bluecove для Java. Вы можете сделать что-то, используя другой стек (например, Widcomm). Если вы заперты в Windows и C++, вам, возможно, придется задуматься о написании пользовательского драйвера HID для платежного баланса.

+0

Да, мне было интересно, было ли это HID-устройством (это избыточно?). – ethrbunny

+0

Я думаю, что он говорит о Windows XP/Vista/7, а ссылка на MSDN - о Windows CE 6.0 R3. – garzanti

+0

У меня создалось впечатление, что ограничение предназначено для настольных Windows, а также для Windows CE. – pwc

1

Как говорит pwc, в MS Bluetooth API есть ограничение, поэтому с сокетами вы не можете иметь что-то другое, кроме RFCOMM, но это не значит, что вы не можете спуститься на уровне L2CAP. То, что вы должны сделать, это реализовать драйвер профиля клиента, и вы можете использовать в качестве отправной точки статьи из MSDN: Creating a L2CAP Client Connection to a Remote Device и наоборот: Accepting L2CAP Connections in a Bluetooth Profile Driver

Далее, конечно же, как ПкА сказали, что вы должны изучить Bluetooth HID и WiiBrew для протокол связи.

Также хороший документ для чтения - Bluetooth Wireless Technology FAQ - 2010, в котором говорится, что возможно подключение L2CAP с драйвером стека Microsoft Bluetooth. Конечно, не с сокетами.

1

При использовании HID на устройстве Bluetooth, как правило, нет необходимо создать соединение L2CAP напрямую. Все (???) стеки Bluetooth на Win32 имеют поддержку Bluetooth HID и обеспечивают доступ к потоку/управлению HID через собственный API HID Windows. Нет (прямой) L2CAP требуется! :-)

В WinCE есть встроенная поддержка Bluetooth HID, но я не уверен, что есть способ получить доступ к API HID.

Вот как работает библиотека Wiiimore Брайана Пика - она ​​использует API HID. Хорошая вещь в том, что каждый получает поддержку для всех (?) Стеков Bluetooth именно так: каждый из них поддерживает HID-устройства через API HID Windows, тогда как для непосредственного использования L2CAP необходимо поддерживать каждый из API стеков. .. (Если это так, у меня нет BlueSoleil API L2CAP).

Итак, на Win32 нужно просто установить соединение с устройством и проверить, что флажок HID установлен на вкладке панели управления Bluetooth Service (в зависимости от того, какой стек Bluetooth используется). В моей библиотеке 32feet.NET можно обнаружить устройство и убедитесь, что HID включен для нее с:

BluetoothDeviceInfo[] list = btCli.DiscoveryDevices(); 
var deviceInfo = list[n]; // Select the correct device 
deviceInfo.SetServiceState(BluetoothService.HumanInterfaceDevice, true); 

(Это должно работать на MSFT и BlueSoleil, нет API для этого на Widcomm AFAIK - хотя, когда в паре он может автоматически включаться).

Один из возможных случаев исключения состоит в том, что, по-видимому, некоторые устройства не полностью соответствуют спецификациям Bluetooth/HID, мне говорят, что контроллер PS3 blu-ray аналогичен этому. Затем можно попробовать напрямую подключиться к L2CAP, но, скорее всего, поддержка этого пакета для HID будет мешать сторонним приложениям, пытающимся предоставить ту же услугу ...

+0

FWIW: Я использовал библиотеку «wii yourself» и смог получить вес, баланс и т. Д. С баланса с помощью простого приложения MFC. – ethrbunny

Смежные вопросы