I hope I won't run into any further issues with timing, serial comms, windows dark magic, etc.
Of course there are further issues.
Win32::SerialPort uses Win32::CommPort which uses Win32::API to export some functions from the Windows API. And it seems that Win32::API doesn't like to work together with Inline::C - at least serial communication doesn't work with the solution derived in the posts above. I get a deluge of error messages, like
Use of uninitialized value in subroutine entry at C:/Perl/site/lib/Win
+32API/CommPort.pm line 213.
Use of uninitialized value in subroutine entry at C:/Perl/site/lib/Win
+32API/CommPort.pm line 247.
Second Read attempted before First is done at measure.pl line 402
Use of uninitialized value $got in numeric ne (!=) at C:/Perl/site/lib
+/Win32/SerialPort.pm line 1216.
Use of uninitialized value in subroutine entry at C:/Perl/site/lib/Win
+32API/CommPort.pm line 213.
Use of uninitialized value in subroutine entry at C:/Perl/site/lib/Win
+32API/CommPort.pm line 247.
Second Read attempted before First is done at measure.pl line 402
Use of uninitialized value $got in numeric ne (!=) at C:/Perl/site/lib
+/Win32/SerialPort.pm line 1216.
| [reply] [d/l] |
| [reply] |
Sorry for replying so late, I wasn't following the thread anymore.
Win32::SerialPort comes in because there are other components of my application beside the data readout that uses TCP/IP: one of these components uses serial communication to drive a positioning system.
But I was mistaken about the purported incompatibility between Inline::C and Win32::SerialPort, they work together just fine. It was I who introduced a subtle bug in my program that caused those error messages.
Sorry for the confusion.
| [reply] |