Hallo,
Winfried Ritsch wrote:
The OS is Windows 2000, the comport.c was compiled with MS VS6.0 using the makefile.
for WINDOWS 2000 i had a #ifdef WIN2000 in my code which wasnt in CVS, i just committed now. This means the FILE_FLAG_OVERLAPPED at open is not used. I never found out why but then WINDOWS2000 worked,
Else the recommended code for Windows read is using
SetCommMask() and WaitCommEvent() before reading a byte
I put the code commented out in the external, maybejust uncomment and
compile again. This code dindt work for Windows NT so it was commented out,
even i copy and pasted it from seriell example of MS VS6.00 which also didnt
work.
Two years ago IOhannes sent me a version of the comport external. It didn't work on Windows 2000 properly so I tuned it a little bit. I tested it, unfortunetaly, with slow traffic and short time period only (9600 baud, one or two minutes of communication) and thus, I thought I fixed the problem. Now, I use a higher baudrate (57600baud) and streamed data, which means, I get appr. 5000 Bps for the serial port and pd crashes like this:
The complicated thing is that under Settings in Windows you can specify the baud rate and sometimes it was not possible to overwrite it with the example.
I create the comport object with the proper baudrate in naked pd on the machine receiving the data stream and wait (the data stream from the periphery must have been started before). Half an hour later, pd increases the CPU load to 50% and becames not responsible...
This looks like a blocked read (see above).
I looked to the CVS repository for a newer version, but it seems to be the one I got from IOhannes. Do you have a newer one? If yes - could you put your version into CVS or just send me the comport.c file - I'd like to diff it against mine to see what I'm doing wrong here.
I just updated the CVS now.
mfg winfried