General serial communications issues

James Courtier-Dutton James at superbug.demon.co.uk
Mon May 31 11:14:40 CDT 2004


David Purucker wrote:
> Hello,
> 
> I have tried several terminal programs (Hyperterm and TeraTerm) under 
> several builds of
> Wine including Wine-20040505 and they seem to have the same generic 
> problem.
> 
> They all exhibit the same situation, DATA seems to go OUT, but never 
> seems to come IN.
> Several other people have experienced the same thing, as seen in this 
> bug report:
> http://bugs.winehq.org/show_bug.cgi?id=2115
> 
> By the way, TeraTerm does work fine in TCP/IP mode, so it's definitely a 
> serial problem.
> It's freeware available here:  
> http://hp.vector.co.jp/authors/VA002416/teraterm.html
> 
> It appears to be a fundamental problem in the serial/file code, which I 
> understand is now
> under the ntdll tree.  Obviously, I don't know much about it, but there 
> is definitely
> something wrong.
> 
> I was wondering if any developers were aware of this problem, as the 
> decreased general
> usage of serial communications may have caused this to slip under the 
> carpet, so to speak.
> 
> I look forward to hearing any ideas, work-arounds, or patches.
> 
> Thanks
> 

I can confirm this problem.
My setup is this.
PC -> Serial Cable -> Loopback plug.

linux based kermit works correctly, and the loopback also loops RTS/CTS.
I type a character, and the loopback plug returns it back to the PC. 
With the loopback plug removed, no character is returned.

It I then use teraterm, teraterm manages to output characters to the 
cable (I see LEDs flashing on the loopback plug).
But, no characters make it back to windows.

I attach two logs taken with the command: -
  WINEDEBUG=+comm wine ttermpro.exe

"no-loop.txt" is without a loopback plug.
"loop.txt" is with a loopback plug.

So, this is certainly a wine bug, and I hope the logs help someone fix this.

Cheers
James
-------------- next part --------------
fixme:comm:SetupComm insize 8192 outsize 2048 unimplemented stub
trace:comm:PurgeComm handle 0x68, flags f
trace:comm:SetCommTimeouts (0x68,0x406cf558)
trace:comm:SetCommState handle 0x68, ptr 0x406cf56c
trace:comm:SetCommState bytesize 8 baudrate 9600 fParity 0 Parity 0 stopbits 1
trace:comm:SetCommState ~IXON ~IXOFF
trace:comm:SetCommState fOutxCtsFlow 0 fRtsControl 1
trace:comm:SetCommState fOutxDsrFlow 0 fDtrControl1
trace:comm:SetCommMask handle 0x68, mask 0
trace:comm:SetCommMask handle 0x68, mask 1
trace:comm:WaitCommEvent (0x68 0x42320178 (nil) )
trace:comm:ClearCommError handle 0x68 cbInQue = 0 cbOutQue = 0
trace:comm:ClearCommError handle 0x68 cbInQue = 0 cbOutQue = 0
trace:comm:COMM_WaitCommEventService iosb 0x4232010c
trace:comm:WaitCommEvent (0x68 0x42320178 (nil) )
trace:comm:ClearCommError handle 0x68 cbInQue = 0 cbOutQue = 0
trace:comm:ClearCommError handle 0x68 cbInQue = 0 cbOutQue = 0
trace:comm:COMM_WaitCommEventService iosb 0x4232010c
trace:comm:WaitCommEvent (0x68 0x42320178 (nil) )
trace:comm:ClearCommError handle 0x68 cbInQue = 0 cbOutQue = 0
trace:comm:ClearCommError handle 0x68 cbInQue = 0 cbOutQue = 0
trace:comm:COMM_WaitCommEventService iosb 0x4232010c
trace:comm:WaitCommEvent (0x68 0x42320178 (nil) )
trace:comm:ClearCommError handle 0x68 cbInQue = 0 cbOutQue = 0
trace:comm:ClearCommError handle 0x68 cbInQue = 0 cbOutQue = 0
trace:comm:COMM_WaitCommEventService iosb 0x4232010c
trace:comm:WaitCommEvent (0x68 0x42320178 (nil) )
trace:comm:ClearCommError handle 0x68 cbInQue = 0 cbOutQue = 0
trace:comm:ClearCommError handle 0x68 cbInQue = 0 cbOutQue = 0
trace:comm:COMM_WaitCommEventService iosb 0x4232010c
trace:comm:WaitCommEvent (0x68 0x42320178 (nil) )
trace:comm:ClearCommError handle 0x68 cbInQue = 0 cbOutQue = 0
trace:comm:ClearCommError handle 0x68 cbInQue = 0 cbOutQue = 0
trace:comm:COMM_WaitCommEventService iosb 0x4232010c
trace:comm:WaitCommEvent (0x68 0x42320178 (nil) )
trace:comm:PurgeComm handle 0x68, flags f
trace:comm:EscapeCommFunction handle 0x68, function=6
trace:comm:EscapeCommFunction CLRDTR
trace:comm:SetCommMask handle 0x68, mask 0
-------------- next part --------------
fixme:comm:SetupComm insize 8192 outsize 2048 unimplemented stub
trace:comm:PurgeComm handle 0x68, flags f
trace:comm:SetCommTimeouts (0x68,0x406cf558)
trace:comm:SetCommState handle 0x68, ptr 0x406cf56c
trace:comm:SetCommState bytesize 8 baudrate 9600 fParity 0 Parity 0 stopbits 1
trace:comm:SetCommState ~IXON ~IXOFF
trace:comm:SetCommState fOutxCtsFlow 0 fRtsControl 1
trace:comm:SetCommState fOutxDsrFlow 0 fDtrControl1
trace:comm:SetCommMask handle 0x68, mask 0
trace:comm:SetCommMask handle 0x68, mask 1
trace:comm:WaitCommEvent (0x68 0x42320178 (nil) )
trace:comm:ClearCommError handle 0x68 cbInQue = 0 cbOutQue = 0
trace:comm:ClearCommError handle 0x68 cbInQue = 0 cbOutQue = 0
trace:comm:ClearCommError handle 0x68 cbInQue = 0 cbOutQue = 0
trace:comm:ClearCommError handle 0x68 cbInQue = 0 cbOutQue = 0
trace:comm:ClearCommError handle 0x68 cbInQue = 0 cbOutQue = 0
trace:comm:ClearCommError handle 0x68 cbInQue = 0 cbOutQue = 0
trace:comm:ClearCommError handle 0x68 cbInQue = 0 cbOutQue = 0
trace:comm:ClearCommError handle 0x68 cbInQue = 0 cbOutQue = 0
trace:comm:ClearCommError handle 0x68 cbInQue = 0 cbOutQue = 0
trace:comm:ClearCommError handle 0x68 cbInQue = 0 cbOutQue = 0
trace:comm:ClearCommError handle 0x68 cbInQue = 0 cbOutQue = 0
trace:comm:ClearCommError handle 0x68 cbInQue = 0 cbOutQue = 0
trace:comm:ClearCommError handle 0x68 cbInQue = 0 cbOutQue = 0
trace:comm:ClearCommError handle 0x68 cbInQue = 0 cbOutQue = 0
trace:comm:ClearCommError handle 0x68 cbInQue = 0 cbOutQue = 0
trace:comm:ClearCommError handle 0x68 cbInQue = 0 cbOutQue = 0
trace:comm:ClearCommError handle 0x68 cbInQue = 0 cbOutQue = 0
trace:comm:ClearCommError handle 0x68 cbInQue = 0 cbOutQue = 0
trace:comm:ClearCommError handle 0x68 cbInQue = 0 cbOutQue = 0
trace:comm:ClearCommError handle 0x68 cbInQue = 0 cbOutQue = 0
trace:comm:PurgeComm handle 0x68, flags f
trace:comm:EscapeCommFunction handle 0x68, function=6
trace:comm:EscapeCommFunction CLRDTR
trace:comm:SetCommMask handle 0x68, mask 0


More information about the wine-devel mailing list