[purejavacomm] Re: PureJavaComm no response received after error 997

  • From: ant elder <ant.elder@xxxxxxxxx>
  • To: purejavacomm@xxxxxxxxxxxxx
  • Date: Fri, 23 May 2014 12:55:51 +0100

Sure ok, was really just asking right away to see if the 997 meant anything
obvious.

I can easily and repeatedly recreate it, but thats with my app which has
quite a lot of code around PureJavaComm. I'll go strip all that out and
make a simple test case and report back...

   ...ant


On Fri, May 23, 2014 at 12:05 PM, Kustaa Nyholm
<Kustaa.Nyholm@xxxxxxxxxxxx>wrote:

>   Hi,
>
>  when you say it is not working, what exactly is happening?
>
>  How do you test it...does anything get transmitted...how about
> received...
>
>  Error 997 per se is not suspicious, as you can see from the code,
> WinAPI.java:835, this is
> expected to happen at times an the code is prepared to handle it (or at
> least that is
> the intent).
>
>  What we need is a repeatable test case and see where or who gets stuck.
>
>  br Kusti
>
>   From: ant elder <ant.elder@xxxxxxxxx>
> Reply-To: "purejavacomm@xxxxxxxxxxxxx" <purejavacomm@xxxxxxxxxxxxx>
> Date: Fri, 23 May 2014 12:57:16 +0300
> To: "purejavacomm@xxxxxxxxxxxxx" <purejavacomm@xxxxxxxxxxxxx>
> Subject: [purejavacomm] PureJavaComm no response received after error 997
>
>  I've been using PureJavaComm 0.0.21 for a while now and its working
> really well talking to lots of different types of Arduino and compatible
> mcu's, so thank you for it.
>
> I've just got a new device today (
> http://www.dfrobot.com/wiki/index.php/Bluno_SKU:DFR0267) and this one
> does not work. It is working ok talking to other Windows Terminal programs
> and with the Arduino serial monitor which use RXTX, so the board itself
> seems to be working ok.
>
> I've a debug log from PureJavaComm which i've attached here. I don't
> completely understand all the debug output but i do see there is an error
> 997 which sounds suspicious. Does this indicate anything to you?
>
> Thanks for any help.
>
>    ...ant
>
> log: 705295,class jtermios.windows.JTermiosImpl line 264, thread id 1,
> main, instantiating jtermios.windows.JTermiosImpl
> log: 705829,class jtermios.windows.WinAPI line 763, thread id 1, main, >
> QueryDosDeviceW(null,[C@a894af68,16384)
> log: 705833,class jtermios.windows.WinAPI line 765, thread id 1, main, <
> QueryDosDeviceW(null,[C@a894af68,16384) => 14155
> log: 705843,class jtermios.JTermios line 390, thread id 1, main, >
> open('COM15',00020006)
> log: 705856,class jtermios.windows.WinAPI line 533, thread id 1, main, >
> CreateFileW(\\.\COM15, 0xC0000000, 0x00000000, null, 0x00000003,
> 0x40000000,null)
> log: 705859,class jtermios.windows.WinAPI line 535, thread id 1, main, <
> CreateFileW(\\.\COM15, 0xC0000000, 0x00000000, null, 0x00000003,
> 0x40000000,null) => native@0x5a8 (jtermios.windows.WinAPI$HANDLE@5a8)
> log: 705860,class jtermios.windows.WinAPI line 642, thread id 1, main, >
> SetCommTimeouts(native@0x5a8 (jtermios.windows.WinAPI$HANDLE@5a8), 2048,
> 2048)
> log: 705862,class jtermios.windows.WinAPI line 644, thread id 1, main, <
> SetCommTimeouts(native@0x5a8 (jtermios.windows.WinAPI$HANDLE@5a8), 2048,
> 2048) => true
> log: 705863,class jtermios.windows.WinAPI line 621, thread id 1, main, >
> GetCommState(native@0x5a8 (jtermios.windows.WinAPI$HANDLE@5a8), [BaudRate
> 0 fFlags 0000 wReserved 0 XonLim 0 XoffLim 0 ByteSize 0 Parity 0 StopBits 0
> XonChar 00 XoffChar 00 ErrorChar 00 EofChar 00 EvtChar 00 wReserved1 0])
> log: 705869,class jtermios.windows.WinAPI line 623, thread id 1, main, <
> GetCommState(native@0x5a8 (jtermios.windows.WinAPI$HANDLE@5a8), [BaudRate
> 1000000 fFlags 0001 wReserved 0 XonLim 0 XoffLim 0 ByteSize 8 Parity 0
> StopBits 0 XonChar 11 XoffChar 13 ErrorChar 00 EofChar 00 EvtChar 0A
> wReserved1 0]) => true
> log: 705872,class jtermios.windows.WinAPI line 628, thread id 1, main, >
> SetCommState(native@0x5a8 (jtermios.windows.WinAPI$HANDLE@5a8), [BaudRate
> 9600 fFlags 0001 wReserved 0 XonLim 0 XoffLim 0 ByteSize 8 Parity 0
> StopBits 0 XonChar 00 XoffChar 00 ErrorChar 00 EofChar 00 EvtChar 0A
> wReserved1 0])
> log: 705878,class jtermios.windows.WinAPI line 630, thread id 1, main, <
> SetCommState(native@0x5a8 (jtermios.windows.WinAPI$HANDLE@5a8), [BaudRate
> 9600 fFlags 0001 wReserved 0 XonLim 0 XoffLim 0 ByteSize 8 Parity 0
> StopBits 0 XonChar 00 XoffChar 00 ErrorChar 00 EofChar 00 EvtChar 0A
> wReserved1 0]) => true
> log: 705879,class jtermios.windows.WinAPI line 635, thread id 1, main, >
> SetCommTimeouts(native@0x5a8 (jtermios.windows.WinAPI$HANDLE@5a8),
> [ReadIntervalTimeout -1 ReadTotalTimeoutMultiplier 0
> ReadTotalTimeoutConstant 0 WriteTotalTimeoutMultiplier 0
> WriteTotalTimeoutConstant 0])
> log: 705880,class jtermios.windows.WinAPI line 637, thread id 1, main, <
> SetCommTimeouts(native@0x5a8 (jtermios.windows.WinAPI$HANDLE@5a8),
> [ReadIntervalTimeout -1 ReadTotalTimeoutMultiplier 0
> ReadTotalTimeoutConstant 0 WriteTotalTimeoutMultiplier 0
> WriteTotalTimeoutConstant 0]) => true
> log: 705881,class jtermios.windows.JTermiosImpl line 752, thread id 1,
> main, vmin 0 vtime 0 ReadIntervalTimeout -1 ReadTotalTimeoutConstant 0
> ReadTotalTimeoutMultiplier 0
> log: 705882,class jtermios.windows.WinAPI line 684, thread id 1, main, >
> CreateEventA(null, false, false, null)
> log: 705883,class jtermios.windows.WinAPI line 686, thread id 1, main, <
> CreateEventA(null, false, false, null) => 
> native@0x5ac(jtermios.windows.WinAPI$HANDLE@5ac
> )
> log: 705884,class jtermios.windows.WinAPI line 684, thread id 1, main, >
> CreateEventA(null, true, false, null)
> log: 705884,class jtermios.windows.WinAPI line 686, thread id 1, main, <
> CreateEventA(null, true, false, null) => 
> native@0x5b0(jtermios.windows.WinAPI$HANDLE@5b0
> )
> log: 705885,class jtermios.windows.WinAPI line 684, thread id 1, main, >
> CreateEventA(null, true, false, null)
> log: 705885,class jtermios.windows.WinAPI line 686, thread id 1, main, <
> CreateEventA(null, true, false, null) => 
> native@0x5b4(jtermios.windows.WinAPI$HANDLE@5b4
> )
> log: 705886,class jtermios.windows.WinAPI line 684, thread id 1, main, >
> CreateEventA(null, true, false, null)
> log: 705887,class jtermios.windows.WinAPI line 686, thread id 1, main, <
> CreateEventA(null, true, false, null) => 
> native@0x5b8(jtermios.windows.WinAPI$HANDLE@5b8
> )
> log: 705888,class jtermios.windows.WinAPI line 684, thread id 1, main, >
> CreateEventA(null, true, false, null)
> log: 705889,class jtermios.windows.WinAPI line 686, thread id 1, main, <
> CreateEventA(null, true, false, null) => 
> native@0x5bc(jtermios.windows.WinAPI$HANDLE@5bc
> )
> log: 705889,class jtermios.windows.WinAPI line 684, thread id 1, main, >
> CreateEventA(null, true, false, null)
> log: 705890,class jtermios.windows.WinAPI line 686, thread id 1, main, <
> CreateEventA(null, true, false, null) => 
> native@0x5c0(jtermios.windows.WinAPI$HANDLE@5c0
> )
> log: 705891,class jtermios.JTermios line 392, thread id 1, main, <
> open('COM15',00020006) => 0
> log: 705892,class jtermios.JTermios line 307, thread id 1, main, >
> fcntl(0, 3, 0)
> log: 705893,class jtermios.JTermios line 309, thread id 1, main, <
> fcntl(0, 3, 0) => 131078
> log: 705893,class jtermios.JTermios line 307, thread id 1, main, >
> fcntl(0, 4, 131074)
> log: 705894,class jtermios.JTermios line 309, thread id 1, main, <
> fcntl(0, 4, 131074) => 0
> log: 705895,class jtermios.JTermios line 369, thread id 1, main, >
> tcgetattr(0,jtermios.Termios@a1323da0)
> log: 705895,class jtermios.JTermios line 371, thread id 1, main, <
> tcgetattr(0,jtermios.Termios@d0c82aa0) => 0
> log: 705896,class jtermios.JTermios line 363, thread id 1, main, >
> cfmakeraw(0,jtermios.Termios@d0c82aa0)
> log: 705897,class jtermios.JTermios line 365, thread id 1, main, <
> cfmakeraw(0,jtermios.Termios@d0c82aa0)
> log: 705897,class jtermios.JTermios line 376, thread id 1, main, >
> tcsetattr(0,0,jtermios.Termios@975081c2)
> log: 705898,class jtermios.windows.WinAPI line 621, thread id 1, main, >
> GetCommState(native@0x5a8 (jtermios.windows.WinAPI$HANDLE@5a8), [BaudRate
> 9600 fFlags 0001 wReserved 0 XonLim 0 XoffLim 0 ByteSize 8 Parity 0
> StopBits 0 XonChar 00 XoffChar 00 ErrorChar 00 EofChar 00 EvtChar 0A
> wReserved1 0])
> log: 705901,class jtermios.windows.WinAPI line 623, thread id 1, main, <
> GetCommState(native@0x5a8 (jtermios.windows.WinAPI$HANDLE@5a8), [BaudRate
> 9600 fFlags 0001 wReserved 0 XonLim 0 XoffLim 0 ByteSize 8 Parity 0
> StopBits 0 XonChar 00 XoffChar 00 ErrorChar 00 EofChar 00 EvtChar 0A
> wReserved1 0]) => true
> log: 705902,class jtermios.windows.WinAPI line 628, thread id 1, main, >
> SetCommState(native@0x5a8 (jtermios.windows.WinAPI$HANDLE@5a8), [BaudRate
> 9600 fFlags 0001 wReserved 0 XonLim 0 XoffLim 0 ByteSize 8 Parity 0
> StopBits 0 XonChar 11 XoffChar 13 ErrorChar 00 EofChar 00 EvtChar 0A
> wReserved1 0])
> log: 705908,class jtermios.windows.WinAPI line 630, thread id 1, main, <
> SetCommState(native@0x5a8 (jtermios.windows.WinAPI$HANDLE@5a8), [BaudRate
> 9600 fFlags 0001 wReserved 0 XonLim 0 XoffLim 0 ByteSize 8 Parity 0
> StopBits 0 XonChar 11 XoffChar 13 ErrorChar 00 EofChar 00 EvtChar 0A
> wReserved1 0]) => true
> log: 705909,class jtermios.JTermios line 378, thread id 1, main, <
> tcsetattr(0,0,jtermios.Termios@975081c2) => 0
> log: 705910,class jtermios.JTermios line 342, thread id 1, main, >
> setspeed(0,jtermios.Termios@975081c2,9600)
> log: 705911,class jtermios.JTermios line 344, thread id 1, main, <
> setspeed(0,jtermios.Termios@975081c2,9600) => 0
> log: 705912,class jtermios.JTermios line 376, thread id 1, main, >
> tcsetattr(0,0,jtermios.Termios@975081c2)
> log: 705913,class jtermios.JTermios line 378, thread id 1, main, <
> tcsetattr(0,0,jtermios.Termios@975081c2) => 0
> log: 705914,class jtermios.JTermios line 376, thread id 1, main, >
> tcsetattr(0,0,jtermios.Termios@975081c2)
> log: 705914,class jtermios.JTermios line 378, thread id 1, main, <
> tcsetattr(0,0,jtermios.Termios@975081c2) => 0
> log: 705915,class jtermios.JTermios line 418, thread id 1, main, >
> ioctl(0,1074033770,[00000000])
> log: 705916,class jtermios.windows.WinAPI line 663, thread id 1, main, >
> GetCommModemStatus(native@0x5a8 (jtermios.windows.WinAPI$HANDLE@5a8
> ),0x00000000)
> log: 705917,class jtermios.windows.WinAPI line 665, thread id 1, main, <
> GetCommModemStatus(native@0x5a8 
> (jtermios.windows.WinAPI$HANDLE@5a8),0x00000000)
> => true
> log: 705918,class jtermios.JTermios line 420, thread id 1, main, <
> ioctl(0,1074033770,[00000000]) => 0
> log: 705919,class jtermios.JTermios line 459, thread id 1, main, >
> pipe([2,0,0])
> log: 705919,class jtermios.JTermios line 461, thread id 1, main, <
> pipe([2,0,0]) => -1
> log: 705921,class jtermios.JTermios line 342, thread id 1, main, >
> setspeed(0,jtermios.Termios@975081c2,1000000)
> log: 705922,class jtermios.windows.WinAPI line 621, thread id 1, main, >
> GetCommState(native@0x5a8 (jtermios.windows.WinAPI$HANDLE@5a8), [BaudRate
> 9600 fFlags 0001 wReserved 0 XonLim 0 XoffLim 0 ByteSize 8 Parity 0
> StopBits 0 XonChar 11 XoffChar 13 ErrorChar 00 EofChar 00 EvtChar 0A
> wReserved1 0])
> log: 705925,class jtermios.windows.WinAPI line 623, thread id 1, main, <
> GetCommState(native@0x5a8 (jtermios.windows.WinAPI$HANDLE@5a8), [BaudRate
> 9600 fFlags 0001 wReserved 0 XonLim 0 XoffLim 0 ByteSize 8 Parity 0
> StopBits 0 XonChar 11 XoffChar 13 ErrorChar 00 EofChar 00 EvtChar 0A
> wReserved1 0]) => true
> log: 705926,class jtermios.windows.WinAPI line 628, thread id 1, main, >
> SetCommState(native@0x5a8 (jtermios.windows.WinAPI$HANDLE@5a8), [BaudRate
> 1000000 fFlags 0001 wReserved 0 XonLim 0 XoffLim 0 ByteSize 8 Parity 0
> StopBits 0 XonChar 11 XoffChar 13 ErrorChar 00 EofChar 00 EvtChar 0A
> wReserved1 0])
> log: 705932,class jtermios.windows.WinAPI line 630, thread id 1, main, <
> SetCommState(native@0x5a8 (jtermios.windows.WinAPI$HANDLE@5a8), [BaudRate
> 1000000 fFlags 0001 wReserved 0 XonLim 0 XoffLim 0 ByteSize 8 Parity 0
> StopBits 0 XonChar 11 XoffChar 13 ErrorChar 00 EofChar 00 EvtChar 0A
> wReserved1 0]) => true
> log: 705933,class jtermios.JTermios line 344, thread id 1, main, <
> setspeed(0,jtermios.Termios@760249c2,1000000) => 0
> log: 705934,class jtermios.JTermios line 376, thread id 1, main, >
> tcsetattr(0,0,jtermios.Termios@760249c2)
> log: 705934,class jtermios.JTermios line 378, thread id 1, main, <
> tcsetattr(0,0,jtermios.Termios@760249c2) => 0
> log: 705935,class jtermios.JTermios line 418, thread id 1, main, >
> ioctl(0,1074033770,[00000000])
> log: 705936,class jtermios.windows.WinAPI line 663, thread id 1, main, >
> GetCommModemStatus(native@0x5a8 (jtermios.windows.WinAPI$HANDLE@5a8
> ),0x00000000)
> log: 705937,class jtermios.windows.WinAPI line 665, thread id 1, main, <
> GetCommModemStatus(native@0x5a8 
> (jtermios.windows.WinAPI$HANDLE@5a8),0x00000000)
> => true
> log: 705937,class jtermios.JTermios line 420, thread id 1, main, <
> ioctl(0,1074033770,[00000000]) => 0
> log: 705938,class jtermios.JTermios line 418, thread id 1, main, >
> ioctl(0,-2147191699,[00000002])
> log: 705939,class jtermios.windows.WinAPI line 670, thread id 1, main, >
> EscapeCommFunction(native@0x5a8 (jtermios.windows.WinAPI$HANDLE@5a8
> ),0x00000005)
> log: 705940,class jtermios.windows.WinAPI line 672, thread id 1, main, <
> EscapeCommFunction(native@0x5a8 
> (jtermios.windows.WinAPI$HANDLE@5a8),0x00000005)
> => true
> log: 705941,class jtermios.windows.WinAPI line 670, thread id 1, main, >
> EscapeCommFunction(native@0x5a8 (jtermios.windows.WinAPI$HANDLE@5a8
> ),0x00000004)
> log: 705941,class jtermios.windows.WinAPI line 672, thread id 1, main, <
> EscapeCommFunction(native@0x5a8 
> (jtermios.windows.WinAPI$HANDLE@5a8),0x00000004)
> => true
> log: 705942,class jtermios.JTermios line 420, thread id 1, main, <
> ioctl(0,-2147191699,[00000002]) => 0
> cmd: 1,16
>
> log: 705945,class jtermios.JTermios line 376, thread id 26, Thread-6, >
> tcsetattr(0,0,jtermios.Termios@6a4bbae1)
> log: 705946,class jtermios.windows.WinAPI line 635, thread id 26,
> Thread-6, > SetCommTimeouts(native@0x5a8(jtermios.windows.WinAPI$HANDLE@5a8),
> [ReadIntervalTimeout 0 ReadTotalTimeoutMultiplier 0
> ReadTotalTimeoutConstant 0 WriteTotalTimeoutMultiplier 0
> WriteTotalTimeoutConstant 0])
> log: 705947,class jtermios.JTermios line 404, thread id 1, main, >
> write(0,[8192,0x31,0x2C,0x31,0x36,0x0A,0x00,0x00,0x00...],5)
> log: 705947,class jtermios.windows.WinAPI line 637, thread id 26,
> Thread-6, < SetCommTimeouts(native@0x5a8(jtermios.windows.WinAPI$HANDLE@5a8),
> [ReadIntervalTimeout 0 ReadTotalTimeoutMultiplier 0
> ReadTotalTimeoutConstant 0 WriteTotalTimeoutMultiplier 0
> WriteTotalTimeoutConstant 0]) => true
> log: 705948,class jtermios.windows.WinAPI line 698, thread id 1, main, >
> ResetEvent(native@0x5bc (jtermios.windows.WinAPI$HANDLE@5bc))
> log: 705949,class jtermios.windows.JTermiosImpl line 752, thread id 26,
> Thread-6, vmin 1 vtime 0 ReadIntervalTimeout 0 ReadTotalTimeoutConstant 0
> ReadTotalTimeoutMultiplier 0
> log: 705950,class jtermios.windows.WinAPI line 700, thread id 1, main, <
> ResetEvent(native@0x5bc (jtermios.windows.WinAPI$HANDLE@5bc)) => true
> log: 705950,class jtermios.JTermios line 378, thread id 26, Thread-6, <
> tcsetattr(0,0,jtermios.Termios@6a4bbae1) => 0
> log: 705951,class jtermios.windows.WinAPI line 549, thread id 1, main, >
> WriteFile(native@0x5a8 (jtermios.windows.WinAPI$HANDLE@5a8),
> [5,0x31,0x2C,0x31,0x36,0x0A], 5, [0], auto-allocated@0x647a20 (32 bytes))
> log: 705952,class jtermios.JTermios line 438, thread id 26, Thread-6, >
> select(1,[0],[],[],jtermios.TimeVal@8a7fa8b9)
> log: 705952,class jtermios.windows.WinAPI line 600, thread id 26,
> Thread-6, > ClearCommError(native@0x5a8(jtermios.windows.WinAPI$HANDLE@5a8),
> [0], [fFlags 0000 cbInQue 0 cbInQue 0])
> log: 705953,class jtermios.windows.WinAPI line 551, thread id 1, main, <
> WriteFile(native@0x5a8 (jtermios.windows.WinAPI$HANDLE@5a8),
> [5,0x31,0x2C,0x31,0x36,0x0A], 5, [0], auto-allocated@0x647a20 (32 bytes))
> => false
> log: 705954,class jtermios.windows.WinAPI line 602, thread id 26,
> Thread-6, < ClearCommError(native@0x5a8(jtermios.windows.WinAPI$HANDLE@5a8),
> [0], [fFlags 0000 cbInQue 0 cbInQue 0]) => true
> log: 705955,class jtermios.windows.WinAPI line 740, thread id 1, main, >
> GetLastError()
> log: 705956,class jtermios.windows.WinAPI line 698, thread id 26,
> Thread-6, > ResetEvent(native@0x5c0 (jtermios.windows.WinAPI$HANDLE@5c0))
> log: 705956,class jtermios.windows.WinAPI line 742, thread id 1, main, <
> GetLastError() => 997
> log: 705957,class jtermios.windows.WinAPI line 700, thread id 26,
> Thread-6, < ResetEvent(native@0x5c0 (jtermios.windows.WinAPI$HANDLE@5c0))
> => true
> log: 705958,class jtermios.JTermios line 406, thread id 1, main, <
> write(0,[8192,0x31,0x2C,0x31,0x36,0x0A,0x00,0x00,0x00...],5) => 5
> log: 705958,class jtermios.windows.WinAPI line 607, thread id 26,
> Thread-6, > SetCommMask(native@0x5a8 (jtermios.windows.WinAPI$HANDLE@5a8),
> 0x00000001)
> log: 705959,class jtermios.JTermios line 356, thread id 1, main, >
> tcdrain(0)
> log: 705960,class jtermios.windows.WinAPI line 609, thread id 26,
> Thread-6, < SetCommMask(native@0x5a8 (jtermios.windows.WinAPI$HANDLE@5a8),
> 0x00000001) => true
> log: 705960,class jtermios.windows.WinAPI line 572, thread id 1, main, >
> FlushFileBuffers(native@0x5a8 (jtermios.windows.WinAPI$HANDLE@5a8))
> log: 705961,class jtermios.windows.WinAPI line 705, thread id 26,
> Thread-6, > WaitCommEvent(native@0x5a8 (jtermios.windows.WinAPI$HANDLE@5a8),
> [0], auto-allocated@0x647a50 (32 bytes))
> log: 705961,class jtermios.windows.WinAPI line 574, thread id 1, main, <
> FlushFileBuffers(native@0x5a8 (jtermios.windows.WinAPI$HANDLE@5a8)) =>
> true
> log: 705962,class jtermios.windows.WinAPI line 707, thread id 26,
> Thread-6, < WaitCommEvent(native@0x5a8 (jtermios.windows.WinAPI$HANDLE@5a8),
> [0], auto-allocated@0x647a50 (32 bytes)) => false
> log: 705963,class jtermios.JTermios line 358, thread id 1, main, <
> tcdrain(0) => 0
> log: 705964,class jtermios.windows.WinAPI line 740, thread id 26,
> Thread-6, > GetLastError()
> log: 705964,class jtermios.windows.WinAPI line 742, thread id 26,
> Thread-6, < GetLastError() => 997
> log: 705965,class jtermios.windows.WinAPI line 726, thread id 26,
> Thread-6, > WaitForMultipleObjects(2, 
> [2,native@0x5c0(jtermios.windows.WinAPI$HANDLE@5c0
> ),native@0x5ac (jtermios.windows.WinAPI$HANDLE@5ac)], false, 2147483647)
>
>
>
>
>
> ------------------------------
> This e-mail may contain confidential or privileged information. If you are
> not the intended recipient (or have received this e-mail in error) please
> notify the sender immediately and destroy this e-mail. Any unauthorized
> copying, disclosure or distribution of the material in this e-mail is
> strictly forbidden. We will not be liable for direct, indirect, special or
> consequential damages arising from alteration of the contents of this
> message by a third party or as a result of any virus being passed on or as
> of transmission of this e-mail in general.
>

Other related posts: