Da das Senden schonmal zu funktionieren scheint, geh ich mal darauf ein.
(beim Empfangen ist es ähnlich)
HidD_SetOutputReport liefert unter XP+BlueSoleil ERROR_NOT_SUPPORTED zurück.
Initialisiert wurde es recht "einfach".
- erstmal alles mit 0 füllen und dann die nötigen Werte setzen.
- danach dann die benötigten Werte setzen
- und zum Schluß halt noch abseden
Delphi-Quellcode:
Var Report: TWiiReport;
Report.Clear;
Report.ReportID := WII_RID_LED; // setzt Byte[0] - ReportID
Report.Rumble := blRumble in FOutput; // setzt Byte[1] - OutputFlags dieses Reports
Report.LED1 := blLED1 in FOutput; // setzt Byte[1] ...
Report.LED2 := blLED2 in FOutput; // ...
Report.LED3 := blLED3 in FOutput;
Report.LED4 := blLED4 in FOutput;
{THIDDevice.}Send(Report, WIIMOTE_BT_REPORT_LEN);
Ich lade gleich meine aktuellen Codes hoch.
Der selbe Report wird unter XP+
BlueSoleil nur via WriteFile versendet
und unter Win7 funktioniert nur HidD_GetInputReport.
Dieses RegisterRawInputDevices klingt auch nett ... 'ne Message für die empfangenen Daten würde das Pollen (ständig nachsehn, ob was da ist) und somit dieses ReadFile-Problem obsolete machen.
Aber leider weiß ich nicht, wie man das verwendet, bzw. welche Parameter man übergeben muß.
Das Einzige, was ich mit der Verbindung zur Wii fand, das war
http://blogs.yahoo.co.jp/mummykinoi/58265222.html , aber sehr hilfreich isses nicht unbedingt. (nicht daß ich es nicht verstehen würde, aber
mummykinoi weiß es auch nicht)