2017-02-04T07:31:08
FIFOEin struct pointer als Rückgabetyp ist ein 'P' (oder 'N', vgl. Empfehlung in der Doku). Wenn man das struct selbst nachbaut (pack), muss man die tatsächlichen Bytegrößen kennen, incl. vielleicht nicht-Standard-alignement. Oder schau Dir mal
Win32::API::Struct und
diesen Abschnitt an. Das Arbeiten mit C-structs unter Win32::API ist kein wirkliches Vergnügen außer in simplen Fällen, Unicode (bzw. UTF16-LE)-Strings funktionieren z.B. nicht richtig ...
Device::USB ist leider nur Linux-tauglich.
P oder N hab ich auch durch:
my $usb_get_busses = Win32::API->new("libusb0", "usb_get_busses()","V","N") or die $^E;
=> Die angegebene Prozedur wurde nicht gefunden
Aber so schnell geb ich nicht auf ;)
Ich WILL dass dass da unten auch in Perl geht:
D:\>pxhex.exe 1A 1A F0 DB 20 0A 00 18
success: device FFFF:1122 opened
success: set configuration #1
success: claim_interface #0
success: bulk write 8 bytes
Done.
Da hängt nämlich meine Heizung dran ;)