Re: Help with : send "hello world" ASCII text to Linux serial port and read into a text file in java virtual machine...
lang.help wrote:
Hello. Excuse the fact that I'm a newbie.
I have a linux v 2.4 box with serial port something like ttyS0.
I have a java VM running.
I want to be able to pass the phrase"hello world" that is sent to the
serial port with hyperterminal from a PC to a .java program running
inside java virtual machine.
I'm not sure if I'm on the right track with:
FileInputStream, fis read()
I guess the idea is to read 1 character at a time and
build up a file like textfile.txt
I can only use printable characters.
Maybe I need some flags like: start_of_text
and
end_of_text
are needed?
I just want to able to read the text file after it has been sent, and
the "hello world" is now there!
Any help with this would be greatly appreciated!!!
Thanks in advance.
I think you should try opening the device special file and reading from it. See
what happens. One of the fundamentals of UNIX/Linux devices is that they should
appear to a program as any regular file, and a device driver provides the four
fundamental operations of open/close/read/write to do this. Devices fall into
two basic categories, character and block, and a tty is a character special
file so should be read byte-by-byte.
So, if the device /dev/ttsS0 behaves as it should, you ought to be able to open
and read from it as though it were a plain text file. But don't rely on any
other file operations beyond those basic four, though.
I think you are on the right track with FileInputStream's open() and read()
methods. This should be fine for ASCII data. If you need to structure the data
into some kind of "records" with start-of-text and end-of-text then you will
need to define that protocol yourself. About the only control information
you'll receive will be an EOF indication when whatever is writing to the device
closes it.
Have a look at the section "Basic I/O" in the Java Tutorial:
http://java.sun.com/docs/books/tutorial/essential/io/index.html
for some simple examples of how to do I/O. As I said above, you ought to be able
to substitute any device special file in UNIX/Linux for a regular file where
basic read/write is concerned. There are, as always, exceptions and caveats to
that rule. Whether a plain tty is one of them, only experience will tell.
--
Nigel Wade, System Administrator, Space Plasma Physics Group,
University of Leicester, Leicester, LE1 7RH, UK
E-mail : nmw@ion.le.ac.uk
Phone : +44 (0)116 2523548, Fax : +44 (0)116 2523555