---------- Forwarded message ---------- Date: Sun, 10 Feb 2002 21:32:31 +0100 From: "[iso-8859-2] Du¹ko Rusmir" drusmir@gmx.ch Reply-To: wine-users@winehq.com To: wine-users@winehq.com Subject: Re: Problem with COM
Dana nedelja 10. februar 2002. 04:11 napisali ste:
On Sun, 10 Feb 2002, [iso-8859-2] Du¹ko Rusmir wrote:
I must use 5726, 5760 and 9600. My app need this to work. On 4800 and 9600 I got error.
With other app I can use 38400, 57600 and 115200 wery well.
I thing the handling of COM Port on these BaudRate is't good.
Thanks
-- trace:comm:BuildCommDCBAndTimeoutsA (COM1: baud=5760 parity=N data=8 stop=2,0x405608ac,(nil)) trace:comm:SetCommState handle 64, ptr 0x405608ac trace:comm:SetCommState bytesize 8 baudrate 5760 fParity 0 Parity 0 stopbits 2 trace:comm:SetCommState ~IXON ~IXOFF err:comm:SetCommState baudrate 5760
Now nobody is going to convince me there is any software that will make a normal 16550a run at 5726, but with effort I managed to explain the linux setserial spd_cust kluge, and at last report the app was working:
/dev/ttyS0, Line 0, UART: 16550A, Port: 0x03f8, IRQ: 4 Baud_base: 115200, close_delay: 50, divisor: 20 closing_wait: 3000 Flags: spd_cust skip_test
trace:comm:BuildCommDCBAndTimeoutsA (COM1: baud=38400 parity=N data=8 stop=1,0x405608ac,(nil)) trace:comm:SetCommState handle 76, ptr 0x405608ac trace:comm:SetCommState bytesize 8 baudrate 38400 fParity 0 Parity 0 stopbits 0 trace:comm:SetCommState ~IXON ~IXOFF trace:file:ReadFile 76 0x405607d0 255 0x405607c4 (nil) trace:file:ReadFile 76 0x405607d0 255 0x405607c4 (nil) trace:comm:EscapeCommFunction handle 76, function=3 trace:comm:EscapeCommFunction SETRTS trace:comm:EscapeCommFunction handle 76, function=4 trace:comm:EscapeCommFunction CLRRTS
Now I am not particularly fussed that Wine should be exactly as Windows, and I am willing to try to explain (again) the spd_cust kluge in Wine doco, if I don't have to use sgml, but I wonder if it wouldn't be better in the long run to figure out what Windows does with off-brand speeds like this (little help? I don't have any Windows.) and cobble up a TIOCMGSERIAL/TIOCMSSERIAL to handle them, at least for Linux. Anybody know how to do a ./configure test for an ioctl? Oh.. looks like we already have some. I guess I can figure it out.
5760 is easy, I believe that is just a divisor of 20, but 5726? Does it round up to the next possible speed? Round down? Count the feet and divide by 4?
Lawson