Javacomm Problems
Wednesday, October 8th, 2003The java comm api works well on 2 Linux boxes but not on a third. While runinng the program to write to the serial port then read back the result I was able to read directly from /dev/ttyS0 the expected results even though the Java program did not. The Java code used the .available() method to get a byte count. It always came back 0. When the .read() method was used, a byte was returned. I guess I’ll have to rewrite the section of code which returns results to take an expected length rather than letting the comm input drive the result size.
I’m using the IBM JDK 1.4.1 on Red Hat 7 and 9. Its a COMPAQ machine with FIFO that has the problem.
setserial returns this:
/dev/ttyS0, UART: 16550A, Port: 0×03f8, IRQ: 4
on the working system and this:
/dev/ttyS0, UART: 16550A, Port: 0×03f8, IRQ: 4
on the non working system. I’ve got IBM JDK 1.3.0 on the working system and 1.4.1 on the non-working system. I do recall upgrading a long time ago from 1.3.0 to 1.3.1 and having the comms fail. I wonder whether the InputStream class ot the comm classes changed between 1.3.0 and 1.4.1.