COM: port problems

Mike Davies rovoreed at cix.compulink.co.uk
Sat May 24 12:48:00 CDT 2003


In-Reply-To: <67srcv4pa941kjmt83hv19e77numaj478r at smtp.xs4all.nl>

        I do have the [serialports] section completed. This PC actually 
has 34 serial ports. Though I can get away with using just 8 with Wine. 
Because I can't get ANY serial port stuff to work under Wine, I'm 
wondering if somehow my setserial config is wrong - because clearly I've 
had to muck about in this area a lot to get 34 COM: ports working on a PC. 
Here's an extract from "setserial -ag" for COM1: and COM4:. Does this look 
right ? Linux itself doesn't have any problems with the ports setup like 
this. For example "minicom" is happy to chat with a dumb terminal over any 
of the COM: ports.

/dev/ttyS0, Line 0, UART: 16550A, Port: 0x03f8, IRQ: 4
        Baud_base: 115200, close_delay: 50, divisor: 0
        closing_wait: 3000
        Flags: spd_normal skip_test

/dev/ttyS3, Line 3, UART: 16550, Port: 0x02e8, IRQ: 10
        Baud_base: 115200, close_delay: 50, divisor: 0
        closing_wait: 3000
        Flags: spd_normal skip_test


Here follows a bit of log resulting from a --debugmsg +comm on a 
Windows program called datapak.exe which downloads data from a weather 
station data logger.

trace:comm:COMM_Init COM1 = /dev/ttyS0
trace:comm:COMM_Init LPT1 = /dev/lp0
trace:comm:COMM_Init COM2 = /dev/ttyS1
trace:comm:COMM_Init COM3 = /dev/ttyS2
trace:comm:COMM_Init COM4 = /dev/ttyS3
trace:comm:COMM_Init COM5 = /dev/ttyS4
trace:comm:COMM_Init COM6 = /dev/ttyS5
trace:comm:COMM_Init COM7 = /dev/ttyS6
trace:comm:COMM_Init COM8 = /dev/ttyS7
trace:comm:EscapeCommFunction16 cid=0, function=5
fixme:comm:EscapeCommFunction16 no cid=0 found!
trace:comm:EscapeCommFunction16 cid=0, function=5
fixme:comm:EscapeCommFunction16 no cid=0 found!
trace:comm:OpenComm16 COM4, 1024, 512
trace:comm:OpenComm16 COM4 = /dev/ttyS3
trace:comm:GetCommState16 cid 3, ptr 0x408f7e18
trace:comm:GetCommState handle 0x84, ptr 0x41142450
trace:comm:GetCommState OK
trace:comm:GetCommState bytesize 8 baudrate 9600 fParity 0 Parity 0 
stopbits 1
trace:comm:GetCommState IXON ~IXOFF
trace:comm:GetCommState CRTSCTS
trace:comm:ClearCommError handle 0x84 cbInQue = 0 cbOutQue = 0
trace:comm:SetCommState16 cid 3, ptr 0x402f3b4e
trace:comm:SetCommState handle 0x84, ptr 0x411424cc
trace:comm:SetCommState bytesize 8 baudrate 9600 fParity 0 Parity 0 
stopbits 1
trace:comm:SetCommState ~IXON ~IXOFF
trace:comm:SetCommState CRTSCTS
trace:comm:SetCommEventMask16 cid 3,mask 13560
trace:comm:GetCommModemStatus 4006 -> 
trace:comm:SetCommEventMask16  modem dcd construct 0
trace:comm:GetCommModemStatus 4166 -> MS_RLSD_ON MS_DSR_ON MS_CTS_ON 
trace:comm:GetCommError16 cid 3, error 0, stat 0 in 0 out 0, stol b0

This next group of lines repeats 35 times

trace:comm:GetCommEventMask16 cid 3, mask 13560
trace:comm:SetCommEventMask16 cid 3,mask 13560
trace:comm:GetCommModemStatus 4166 -> MS_RLSD_ON MS_DSR_ON MS_CTS_ON 
trace:comm:SetCommEventMask16  modem dcd construct b0
trace:comm:GetCommModemStatus 4166 -> MS_RLSD_ON MS_DSR_ON MS_CTS_ON 
trace:comm:GetCommError16 cid 3, error 0, stat 0 in 0 out 0, stol b0

There is the occasional extra occurrence of the line

trace:comm:GetCommModemStatus 4006 -> 

The next group of lines repeats 5 times

trace:comm:GetCommEventMask16 cid 3, mask 13560
trace:comm:SetCommEventMask16 cid 3,mask 13560
trace:comm:GetCommModemStatus 4006 -> 
trace:comm:SetCommEventMask16  modem dcd construct 0
trace:comm:GetCommModemStatus 4006 -> 
trace:comm:GetCommError16 cid 3, error 0, stat 0 in 0 out 0, stol 0

The we seem to receive some data

trace:comm:GetCommEventMask16 cid 3, mask 13560
trace:comm:SetCommEventMask16 cid 3,mask 13560
trace:comm:GetCommModemStatus 4006 -> 
trace:comm:SetCommEventMask16  modem dcd construct 0
trace:comm:COMM16_ReadComplete async read completed 1 bytes
trace:comm:ClearCommError handle 0x84 cbInQue = 5 cbOutQue = 0
trace:comm:COMM16_ReadComplete async read completed 5 bytes
trace:comm:ClearCommError handle 0x84 cbInQue = 0 cbOutQue = 0
trace:comm:GetCommModemStatus 4166 -> MS_RLSD_ON MS_DSR_ON MS_CTS_ON 
trace:comm:GetCommError16 cid 3, error 0, stat 0 in 6 out 0, stol b0
trace:comm:GetCommModemStatus 4166 -> MS_RLSD_ON MS_DSR_ON MS_CTS_ON 
trace:comm:GetCommError16 cid 3, error 0, stat 0 in 6 out 0, stol b0
trace:comm:ReadComm16 cid 3, ptr 0x402853c8, length 6
trace:comm:ReadComm16 "\317(\020 \"\220"
trace:comm:GetCommModemStatus 4166 -> MS_RLSD_ON MS_DSR_ON MS_CTS_ON 
trace:comm:GetCommError16 cid 3, error 0, stat 0 in 0 out 0, stol b0
trace:comm:GetCommModemStatus 4166 -> MS_RLSD_ON MS_DSR_ON MS_CTS_ON 
trace:comm:COMM16_ReadComplete async read completed 1 bytes
trace:comm:ClearCommError handle 0x84 cbInQue = 9 cbOutQue = 0
trace:comm:COMM16_ReadComplete async read completed 9 bytes
trace:comm:ClearCommError handle 0x84 cbInQue = 0 cbOutQue = 0
trace:comm:GetCommError16 cid 3, error 0, stat 0 in 10 out 0, stol b0
trace:comm:GetCommEventMask16 cid 3, mask 13560
trace:comm:SetCommEventMask16 cid 3,mask 13560
trace:comm:GetCommModemStatus 4166 -> MS_RLSD_ON MS_DSR_ON MS_CTS_ON 
trace:comm:SetCommEventMask16  modem dcd construct b0
trace:comm:COMM16_ReadComplete async read completed 1 bytes
trace:comm:ClearCommError handle 0x84 cbInQue = 8 cbOutQue = 0
trace:comm:COMM16_ReadComplete async read completed 8 bytes
trace:comm:ClearCommError handle 0x84 cbInQue = 0 cbOutQue = 0
trace:comm:COMM16_ReadComplete async read completed 1 bytes
trace:comm:ClearCommError handle 0x84 cbInQue = 1 cbOutQue = 0
trace:comm:COMM16_ReadComplete async read completed 1 bytes
trace:comm:ClearCommError handle 0x84 cbInQue = 0 cbOutQue = 0
trace:comm:GetCommModemStatus 4166 -> MS_RLSD_ON MS_DSR_ON MS_CTS_ON 
trace:comm:GetCommError16 cid 3, error 0, stat 0 in 21 out 0, stol b0
trace:comm:GetCommModemStatus 4166 -> MS_RLSD_ON MS_DSR_ON MS_CTS_ON 
trace:comm:GetCommError16 cid 3, error 0, stat 0 in 21 out 0, stol b0
trace:comm:ReadComm16 cid 3, ptr 0x4117bd50, length 21
trace:comm:ReadComm16 
"\030`E\0011\031\026S\022\200\020t\021\023)\025!\031P l"
trace:comm:GetCommModemStatus 4166 -> MS_RLSD_ON MS_DSR_ON MS_CTS_ON 
trace:comm:GetCommError16 cid 3, error 0, stat 0 in 0 out 0, stol b0
trace:comm:GetCommModemStatus 4166 -> MS_RLSD_ON MS_DSR_ON MS_CTS_ON 
trace:comm:GetCommError16 cid 3, error 0, stat 0 in 0 out 0, stol b0

And then it's back to this group of lines repeated 85 times

trace:comm:GetCommEventMask16 cid 3, mask 13560
trace:comm:SetCommEventMask16 cid 3,mask 13560
trace:comm:GetCommModemStatus 4166 -> MS_RLSD_ON MS_DSR_ON MS_CTS_ON 
trace:comm:SetCommEventMask16  modem dcd construct b0
trace:comm:GetCommModemStatus 4006 -> 
trace:comm:GetCommError16 cid 3, error 0, stat 0 in 0 out 0, stol 0

And then this repeated 12 times

trace:comm:GetCommEventMask16 cid 3, mask 13560
trace:comm:SetCommEventMask16 cid 3,mask 13560
trace:comm:GetCommModemStatus 4006 -> 
trace:comm:SetCommEventMask16  modem dcd construct 0
trace:comm:GetCommModemStatus 4006 -> 
trace:comm:GetCommError16 cid 3, error 0, stat 0 in 0 out 0, stol 0

and then we seem to receive more data

trace:comm:GetCommEventMask16 cid 3, mask 13560
trace:comm:SetCommEventMask16 cid 3,mask 13560
trace:comm:GetCommModemStatus 4006 -> 
trace:comm:SetCommEventMask16  modem dcd construct 0
trace:comm:COMM16_ReadComplete async read completed 1 bytes
trace:comm:ClearCommError handle 0x84 cbInQue = 5 cbOutQue = 0
trace:comm:COMM16_ReadComplete async read completed 5 bytes
trace:comm:ClearCommError handle 0x84 cbInQue = 0 cbOutQue = 0
trace:comm:GetCommModemStatus 4166 -> MS_RLSD_ON MS_DSR_ON MS_CTS_ON 
trace:comm:GetCommError16 cid 3, error 0, stat 0 in 6 out 0, stol b0
trace:comm:GetCommModemStatus 4166 -> MS_RLSD_ON MS_DSR_ON MS_CTS_ON 
trace:comm:GetCommError16 cid 3, error 0, stat 0 in 6 out 0, stol b0
trace:comm:ReadComm16 cid 3, ptr 0x4117c440, length 6
trace:comm:ReadComm16 "\217\025\026\007$5"
trace:comm:GetCommModemStatus 4166 -> MS_RLSD_ON MS_DSR_ON MS_CTS_ON 
trace:comm:GetCommError16 cid 3, error 0, stat 0 in 0 out 0, stol b0
trace:comm:GetCommModemStatus 4166 -> MS_RLSD_ON MS_DSR_ON MS_CTS_ON 
trace:comm:COMM16_ReadComplete async read completed 1 bytes
trace:comm:ClearCommError handle 0x84 cbInQue = 8 cbOutQue = 0
trace:comm:COMM16_ReadComplete async read completed 8 bytes
trace:comm:ClearCommError handle 0x84 cbInQue = 0 cbOutQue = 0
trace:comm:GetCommError16 cid 3, error 0, stat 0 in 9 out 0, stol b0
trace:comm:GetCommEventMask16 cid 3, mask 13560
trace:comm:SetCommEventMask16 cid 3,mask 13560
trace:comm:GetCommModemStatus 4166 -> MS_RLSD_ON MS_DSR_ON MS_CTS_ON 
trace:comm:SetCommEventMask16  modem dcd construct b0
trace:comm:COMM16_ReadComplete async read completed 1 bytes
trace:comm:ClearCommError handle 0x84 cbInQue = 9 cbOutQue = 0
trace:comm:COMM16_ReadComplete async read completed 9 bytes
trace:comm:ClearCommError handle 0x84 cbInQue = 0 cbOutQue = 0
trace:comm:COMM16_ReadComplete async read completed 1 bytes
trace:comm:ClearCommError handle 0x84 cbInQue = 9 cbOutQue = 0
trace:comm:COMM16_ReadComplete async read completed 9 bytes
trace:comm:ClearCommError handle 0x84 cbInQue = 0 cbOutQue = 0
trace:comm:COMM16_ReadComplete async read completed 1 bytes
trace:comm:ClearCommError handle 0x84 cbInQue = 8 cbOutQue = 0
trace:comm:COMM16_ReadComplete async read completed 8 bytes
trace:comm:ClearCommError handle 0x84 cbInQue = 0 cbOutQue = 0
trace:comm:COMM16_ReadComplete async read completed 1 bytes
trace:comm:ClearCommError handle 0x84 cbInQue = 9 cbOutQue = 0
trace:comm:COMM16_ReadComplete async read completed 9 bytes
trace:comm:ClearCommError handle 0x84 cbInQue = 0 cbOutQue = 0
trace:comm:COMM16_ReadComplete async read completed 1 bytes
trace:comm:ClearCommError handle 0x84 cbInQue = 8 cbOutQue = 0
trace:comm:COMM16_ReadComplete async read completed 8 bytes
trace:comm:ClearCommError handle 0x84 cbInQue = 0 cbOutQue = 0
trace:comm:GetCommModemStatus 4166 -> MS_RLSD_ON MS_DSR_ON MS_CTS_ON 
trace:comm:GetCommError16 cid 3, error 0, stat 0 in 57 out 0, stol b0
trace:comm:GetCommModemStatus 4166 -> MS_RLSD_ON MS_DSR_ON MS_CTS_ON 
trace:comm:GetCommError16 cid 3, error 0, stat 0 in 57 out 0, stol b0
trace:comm:ReadComm16 cid 3, ptr 0x4117cd10, length 57
trace:comm:ReadComm16 
"\000\000DeA\0100\007\023\202qA\227\020u\227\006\006\027u\222aaA\227\020\0
10\000\031\237\227q'F\026)G\004C\020\022!\02220%\001`\020\020$\007\300\021
\023)\005"
trace:comm:GetCommModemStatus 4166 -> MS_RLSD_ON MS_DSR_ON MS_CTS_ON 
trace:comm:GetCommError16 cid 3, error 0, stat 0 in 0 out 0, stol b0
trace:comm:GetCommModemStatus 4166 -> MS_RLSD_ON MS_DSR_ON MS_CTS_ON 
trace:comm:GetCommError16 cid 3, error 0, stat 0 in 0 out 0, stol b0
trace:comm:GetCommEventMask16 cid 3, mask 13560
trace:comm:SetCommEventMask16 cid 3,mask 13560
trace:comm:GetCommModemStatus 4166 -> MS_RLSD_ON MS_DSR_ON MS_CTS_ON 
trace:comm:SetCommEventMask16  modem dcd construct b0
trace:comm:COMM16_ReadComplete async read completed 1 bytes
trace:comm:ClearCommError handle 0x84 cbInQue = 9 cbOutQue = 0
trace:comm:COMM16_ReadComplete async read completed 9 bytes
trace:comm:ClearCommError handle 0x84 cbInQue = 0 cbOutQue = 0
trace:comm:COMM16_ReadComplete async read completed 1 bytes
trace:comm:ClearCommError handle 0x84 cbInQue = 9 cbOutQue = 0
trace:comm:COMM16_ReadComplete async read completed 9 bytes
trace:comm:ClearCommError handle 0x84 cbInQue = 0 cbOutQue = 0
trace:comm:COMM16_ReadComplete async read completed 1 bytes
trace:comm:ClearCommError handle 0x84 cbInQue = 8 cbOutQue = 0
trace:comm:COMM16_ReadComplete async read completed 8 bytes
trace:comm:ClearCommError handle 0x84 cbInQue = 0 cbOutQue = 0
trace:comm:COMM16_ReadComplete async read completed 1 bytes
trace:comm:ClearCommError handle 0x84 cbInQue = 9 cbOutQue = 0
trace:comm:COMM16_ReadComplete async read completed 9 bytes
trace:comm:ClearCommError handle 0x84 cbInQue = 0 cbOutQue = 0
trace:comm:COMM16_ReadComplete async read completed 1 bytes
trace:comm:ClearCommError handle 0x84 cbInQue = 8 cbOutQue = 0
trace:comm:COMM16_ReadComplete async read completed 8 bytes
trace:comm:ClearCommError handle 0x84 cbInQue = 0 cbOutQue = 0
trace:comm:GetCommModemStatus 4166 -> MS_RLSD_ON MS_DSR_ON MS_CTS_ON 
trace:comm:GetCommError16 cid 3, error 0, stat 0 in 48 out 0, stol b0
trace:comm:GetCommModemStatus 4166 -> MS_RLSD_ON MS_DSR_ON MS_CTS_ON 
trace:comm:GetCommError16 cid 3, error 0, stat 0 in 48 out 0, stol b0
trace:comm:ReadComm16 cid 3, ptr 0x4117c838, length 48
trace:comm:ReadComm16 
"\024 at 8\014\000\023\257\222\t@\000!(\007\027\021\0220\007\220 \020 
\000\t72\020\021\001pCQQ\t\000\035\277\000\000\002\000g\021'\030\020\034"
trace:comm:GetCommModemStatus 4166 -> MS_RLSD_ON MS_DSR_ON MS_CTS_ON 
trace:comm:GetCommError16 cid 3, error 0, stat 0 in 0 out 0, stol b0
trace:comm:GetCommModemStatus 4166 -> MS_RLSD_ON MS_DSR_ON MS_CTS_ON 
trace:comm:COMM16_ReadComplete async read completed 1 bytes
trace:comm:ClearCommError handle 0x84 cbInQue = 9 cbOutQue = 0
trace:comm:COMM16_ReadComplete async read completed 9 bytes
trace:comm:ClearCommError handle 0x84 cbInQue = 0 cbOutQue = 0
trace:comm:GetCommError16 cid 3, error 0, stat 0 in 10 out 0, stol b0
trace:comm:GetCommEventMask16 cid 3, mask 13560
trace:comm:SetCommEventMask16 cid 3,mask 13560
trace:comm:GetCommModemStatus 4166 -> MS_RLSD_ON MS_DSR_ON MS_CTS_ON 
trace:comm:SetCommEventMask16  modem dcd construct b0
trace:comm:COMM16_ReadComplete async read completed 1 bytes
trace:comm:ClearCommError handle 0x84 cbInQue = 9 cbOutQue = 0
trace:comm:COMM16_ReadComplete async read completed 9 bytes
trace:comm:ClearCommError handle 0x84 cbInQue = 0 cbOutQue = 0
trace:comm:COMM16_ReadComplete async read completed 1 bytes
trace:comm:ClearCommError handle 0x84 cbInQue = 8 cbOutQue = 0
trace:comm:COMM16_ReadComplete async read completed 8 bytes
trace:comm:ClearCommError handle 0x84 cbInQue = 0 cbOutQue = 0
trace:comm:COMM16_ReadComplete async read completed 1 bytes
trace:comm:ClearCommError handle 0x84 cbInQue = 0 cbOutQue = 0
trace:comm:GetCommModemStatus 4006 -> 
trace:comm:GetCommError16 cid 3, error 0, stat 0 in 30 out 0, stol 0
trace:comm:GetCommModemStatus 4006 -> 
trace:comm:GetCommError16 cid 3, error 0, stat 0 in 30 out 0, stol 0
trace:comm:ReadComm16 cid 3, ptr 0x4117bd50, length 30
trace:comm:ReadComm16 "\223\003:\317( 
\031\"\220\030`E\0011\031\026S\022\200\020t\021\023)\025!\031P u"
trace:comm:GetCommModemStatus 4006 -> 
trace:comm:GetCommError16 cid 3, error 0, stat 0 in 0 out 0, stol 0
trace:comm:GetCommModemStatus 4006 -> 
trace:comm:GetCommError16 cid 3, error 0, stat 0 in 0 out 0, stol 0

... and then it's back to this repeated 23 times

trace:comm:GetCommEventMask16 cid 3, mask 13560
trace:comm:SetCommEventMask16 cid 3,mask 13560
trace:comm:GetCommModemStatus 4166 -> MS_RLSD_ON MS_DSR_ON MS_CTS_ON 
trace:comm:SetCommEventMask16  modem dcd construct b0
trace:comm:GetCommModemStatus 4166 -> MS_RLSD_ON MS_DSR_ON MS_CTS_ON 
trace:comm:GetCommError16 cid 3, error 0, stat 0 in 0 out 0, stol b0

... and then it all finishes like this ...

trace:comm:SetCommEventMask16  modem dcd construct b0
trace:comm:SetCommState16 cid 3, ptr 0x402f3b60
trace:comm:SetCommState handle 0x84, ptr 0x411424cc
trace:comm:SetCommState bytesize 8 baudrate 9600 fParity 0 Parity 0 
stopbits 1
trace:comm:SetCommState ~IXON ~IXOFF
trace:comm:SetCommState CRTSCTS
trace:comm:EscapeCommFunction16 cid=3, function=4
trace:comm:EscapeCommFunction handle 0x84, function=4
trace:comm:EscapeCommFunction CLRRTS
trace:comm:SetCommState16 cid 3, ptr 0x402f3b60
trace:comm:SetCommState handle 0x84, ptr 0x411424cc
trace:comm:SetCommState bytesize 8 baudrate 9600 fParity 0 Parity 0 
stopbits 1
trace:comm:SetCommState ~IXON ~IXOFF
trace:comm:SetCommState CRTSCTS
trace:comm:EscapeCommFunction16 cid=3, function=6
trace:comm:EscapeCommFunction handle 0x84, function=6
trace:comm:EscapeCommFunction CLRDTR
trace:comm:FlushComm16 cid=3, queue=0
trace:comm:PurgeComm handle 0x84, flags 1
trace:comm:FlushComm16 cid=3, queue=1
trace:comm:PurgeComm handle 0x84, flags 2
trace:comm:EscapeCommFunction16 cid=3, function=6
trace:comm:EscapeCommFunction handle 0x84, function=6
trace:comm:EscapeCommFunction CLRDTR
trace:comm:CloseComm16 cid=3
err:comm:COMM16_ReadComplete async read failed 000003e3
trace:comm:SetCommState16 cid 3, ptr 0x408f7e18
trace:comm:SetCommState handle 0x84, ptr 0x411424ac
trace:comm:SetCommState bytesize 8 baudrate 9600 fParity 0 Parity 0 
stopbits 1
trace:comm:SetCommState IXON ~IXOFF
trace:comm:SetCommState CRTSCTS

... and the program says it cannot establish connection over the serial 
port.

Now, I don't know how this Windows program is supposed to work, but I'm a 
little suprised not to see any writes to the serial port at all.

Any help appreciated.

Mike





More information about the wine-users mailing list