FHEM auf Windows10 64Bit Win32::SerialPort mit Perl64Bit

Begonnen von joffi, 11 März 2019, 20:12:28

Vorheriges Thema - Nächstes Thema

joffi

Hallo,
habe gerade Perl 5.26 64Bit für mein FHEM upgedatet. Da gibt es Probleme mit Win32::SerialPort.
Hier eine Kurzanleitung wie es geht.
cpan> install Win32:Serialport  bricht ab. siehe
https://wiki.fhem.de/wiki/Windows_-_FHEM_installieren
Also ins CPAN build gehen in cmd als Administrator, dann (COM Port muss vorhanden sein, bei mir ist CUL auf COM5)
perl makefile.pl TESTPORT=COM5
dann
perl nomake_install
Win32:SerialPort installiert sich nun, funktioniert aber nicht.
Lösung:https://rt.cpan.org/Public/Bug/Display.html?id=113337#txn-1691722
Kurz:
The fix is trivial, and allows both bitnesses to share the same Perl Module.  Here are the edits I made to CommPort.pm which got it working:

Line 467
Original:
    my $OVERLAPPEDformat="LLLLL";
Edited:
    my $OVERLAPPEDformat = (length pack 'P') * 8 == 32 ? "LLLLL" : "QQLLQ";
    # "length pack 'P'" gives you the size of a null pointer, then I multiply by 8 to get a bit count, just for clarity.

Lines 768 and 769
Original:
    $self->{"_R_OVERLAP"}            = " "x24;
    $self->{"_W_OVERLAP"}          = " "x24;
Edited:
    $self->{"_R_OVERLAP"}            = " "x32;
    $self->{"_W_OVERLAP"}          = " "x32;

und Juhu es funzt.
Für alle mit den gleichen Problemen.