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@winehq.org
> http://www.winehq.org/mailman/listinfo/wine-users
Hope I helped any.
-Michael Chang