Date: Tue, 22 Oct 2002 15:03:20 -0500 From: Martin McCormick <martin@dc.cis.okstate.edu> To: freebsd-questions@freebsd.org Subject: Serial Data Acquisition Problem Message-ID: <200210222003.g9MK3KG47670@dc.cis.okstate.edu>
next in thread | raw e-mail | index | archive | help
I have written a program to receive serial data and store
it in a file. There is nothing particularly esoteric going on
here, but I have done something wrong because my program almost
works, but not quite.
First, I tested the serial port and cable to rule out
hardware issues. The port is /dev/ttyd0 and it works perfectly
as a serial login port when I turn that feature on in /etc/ttys.
When I test the program I wrote, I set that flag back to
off, of course.
The program runs as a daemon and opens the serial port
after it goes daemon, but I think the problem is more likely the
way I open the port. I am calling it as /dev/ttyd0. I have also
tried /dev/cuaa0 and even /dev/ttyp0.
No data are being received in the file and the serial
port strangely begins to echo all input data to the output line
as if it was a loopback connecter.
If I kill the process, the port is properly deaf again
since it isn't doing anything at all.
Here is the code snippet that opens the file handle for
reading. I use an external file containing the name but I know
that works because I have used gdb to check that and also have
seen it in an error message when it couldn't open it once.
FILE *fp_inputstream;
/*lots of other variables and code*/
if ((fp_inputstream = fopen(serialcomm,"r")) == NULL) {
perror(serialcomm);
exit(1);
}
while ((c = fgetc(fp_inputstream)) != EOF)
{ /*Read in another character.*/
/*This works with standard input and files.*/
}
When I run the program, the devices attached to the first
serial port show up as busy if you try to access them so that
further proves I am opening the device name I am calling, but am
I calling the right serial device for text data?
In this case, the data are human-readable text with
newlines and all.
I did get this same algorithm to work on a Linux system.
Thanks for any constructive ideas.
Martin McCormick 405 744-7572 Stillwater, OK
OSU Center for Computing and Information services Network Operations Group
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200210222003.g9MK3KG47670>
