[Wine]Serial Communication

michael at cherryblossom.homelinux.com michael at cherryblossom.homelinux.com
Sun Aug 22 22:09:33 CDT 2004


 On Thu, Aug 19, 2004 at 08:37:40PM +0200, Jochen Roedenbeck wrote:
> I try to use SimoComU, a tool to control frequency converters, on Wine.
> Since version 2004-07-16 it opens its main window, and most functions
> seem to work. Anyway, it does not communicate over the serial line. I
> see the following output:
> 
> trace:file:CreateFileW L"COM1" GENERIC_READ GENERIC_WRITE OPEN_EXISTING
> attributes 0x0
> trace:file:RtlDosPathNameToNtPathName_U (L"COM1",0x4066eed4,(nil),(nil))
> trace:file:RtlGetFullPathName_U (L"COM1" 520 0x4066ec4c (nil))
> trace:file:get_dos_device L"COM1" -> "/home/met/.wine/dosdevices/com1"
> trace:file:CreateFileW returning 0x9c
> fixme:comm:GetCommProperties (0x9c 0x4132b414 )
> trace:comm:GetCommState handle 0x9c, ptr 0x4132b454
> trace:comm:GetCommState OK
> trace:comm:GetCommState bytesize 8 baudrate 38400 fParity 0 Parity 2
> stopbits 1
> trace:comm:GetCommState ~IXON ~IXOFF
> trace:comm:GetCommState fOutxCtsFlow 1 fRtsControl 2
> trace:comm:GetCommState fOutxDsrFlow 0 fDtrControl1
> trace:comm:GetCommState CRTSCTS
> trace:comm:GetCommTimeouts (0x9c,0x4132b470)
> trace:comm:BuildCommDCBAndTimeoutsA (38400,e,8,1,0x4066ef88,(nil))
> trace:comm:BuildCommDCBAndTimeoutsW (L"38400,e,8,1",0x4066ef88,(nil))
> trace:comm:SetCommState handle 0x9c, ptr 0x4066ef88
> trace:comm:SetCommState bytesize 8 baudrate 38400 fParity 1 Parity 2
> stopbits 1
> trace:comm:SetCommState ~IXON ~IXOFF
> trace:comm:SetCommState fOutxCtsFlow 0 fRtsControl 3
> trace:comm:SetCommState fOutxDsrFlow 0 fDtrControl2
> warn:comm:SetCommState DSR/DTR flow control not supported

Might this line ^^^^^ be any imprtant?  It looks pecuilar, but I have no
experience in wine-devel...

> fixme:comm:SetCommState RTS_CONTROL_TOGGLE is not supported.
> fixme:comm:SetupComm insize 970 outsize 970 unimplemented stub
> trace:comm:SetCommTimeouts (0x9c,0x4066ef74)
> 
> As I understand that log, the program tries to set the speed to
> 38400 bit/s and to configure the line to even parity (among others).
> But, if I run "stty -a -F /dev/ttyn00" (to which com1 is a link to),
> then I see no change. The parameters are not set. So I set them
> using stty to get further.

I know this sounds stupid, but you're 100% sure that the program, it's
processes, and the running user have permission to read/write to the
device, right?

> The program apparently tries to write to the line, then, as the
> output is:
> 
> trace:file:WriteFile 0x9c 0x4132b160 24 0x415640d4 (nil)
> trace:comm:ClearCommError handle 0x9c cbInQue = 0 cbOutQue = 0
> trace:comm:PurgeComm handle 0x9c, flags f
> trace:file:WriteFile 0x9c 0x4132b160 24 0x415640d4 (nil)
> trace:comm:ClearCommError handle 0x9c cbInQue = 0 cbOutQue = 0
> trace:comm:PurgeComm handle 0x9c, flags f
> [etc.]
> 
> But nothing happens on the line. On the other hand, if I enter the
> command "echo xxxxx >/dev/ttyn00", the bytes are transmitted.

What OS are you using? Linux?  Which kernel version (if so)?  And what
do you mean by /dev/ttyn00? Is that literally '/dev/ttyn00'?  (Since my
system, which is probably outdated, uses /dev/ttyS0...ttyS3 to access
com ports 1-4 on the host system...)  And are you 100% sure that this
link is correct, and that is the correct type (either hard or soft
linked)?

> I have no idea where to look now. Could anyone help me?

Hopefully some of the others can help better.  You could ask wine-users,
although I have a feeling that if you did that they *might* redirect you
back to wine-devel.  Also, have you looked at the code behind serial
communications?

> Jochen Roedenbeck
> 
> _______________________________________________
> wine-users mailing list
> wine-users at winehq.org
> http://www.winehq.org/mailman/listinfo/wine-users

Hope I helped any.
-Michael Chang



More information about the wine-users mailing list