was erhältst Du den wenn Du die Input / Output Datenlänge des PIC Programms ausließt?
Mehrere interessante Phänomene:
1. Fehlermeldung, dass die Konstante #Listview_0 unbekannt sei. Ich habe sie daher durch #Listview_INPUT ersetzt wie bei den sonstigen Textausgaben. Damit geht es.
[Nachtrag: Sehe gerade, dass dein Code in diesem Thread ganz anders aussieht als meine Version - habe offenbar eine alte Version, die speziell für deinen PIC mit Temperaturmodul usw. ausgelegt war ...]
2. Ich habe deine beiden Zeilen in der WinProc direkt hinter "If DeviceHandle" eingefügt. Interessanterweise wird dieser Programmteil anscheinend dreimal durchlaufen, denn ich bekomme die Ausgabe dreifach. Ich hätte erwartet, dass das nur einmal durchlaufen sollte (Initialisierung nach Erkennen des Gerätes).
3. Es wird eine Input/Output-Datenlänge von
2 ausgegeben. Der USB-Deskriptor für meinen PIC ist aber definitiv auf eine Reportlänge von 1 eingestellt. Das wird vom HID-Terminal auch so angezeigt. Verpasse ich dem PIC eine Reportlänge von 2, zeigt dein Programm 3 an. Stelle ich sie aber auf 0, zeigt auch dein Programm 0 an. Bei den zuletzt genannten beiden Einstellungen empängt dein Programm überhaupt keine Daten vom PIC.
[Rödel, rödel, test, hack ...]

Aha!!! Wenn ich zum Senden und Empfangen BufferOut/In(1) statt BufferOut/In(0) benutze, dann funktioniert plötzlich alles wie gewünscht! Ich habe das dumpfe Gefühl, dass das Problem irgendwie mit den Arraylängen in PB zusammenhängt. Genau verstanden habe ich es allerdings noch nicht. Wenn die Reportlänge 1 ist, sollte doch auch das erste Byte des Buffer-Arrays (0) relevant sein und nicht das zweite (1)? Und selbst wenn PB von einer Reportlänge von 2 ausgeht (warum auch immer), müsste man das erste (und hier einzig relevante) Byte doch trotzdem im Element (0) des Arrays finden, oder? Sehr seltsam.
Wäre noch interessant, was passiert, wenn man einfach eine normale Byte-Variable statt eines Arrays als Buffer nimmt, da ja ohnehin nur ein Byte benötigt wird. Aber da das Programm ja offenbar immer mindestens eine Reportlänge von 2 annimmt, wird das vermutlich Probleme geben.
Wie auch immer, dein Tipp hat es zum Laufen gebracht - vielen Dank!
