Serial Port Processing

Gregory B. Newby gbnewby at rodan.acs.syr.edu
Wed Apr 3 01:00:00 AEST 1991


Hi, all.  I could use some insight into reading/writing my serial port.
I'm working with a Sparcstation 1 (also tried on a Personal Iris).

I can use 'cat > /dev/ttyb' to write to the device (a interface adapter
for a PowerGlove, believe it or not).  'cat < /dev/ttyb' just hangs,
though.

But, I've been unable to get my C program to read/write to the device.  I
am able to get a FILE descriptor, but then it hangs when trying to read or
write.  Have tried fopen() and open() (which both succeed).

For reading/writing, have tried such things are fprintf(), putc(), even
printf() piped via the shell to the port (which have all hung until
interrupted via ^c).

Any ideas on what the trouble might be?  Do I need to use a socket, or is
there trouble with buffering?  Or, an fcntl call?  The SunOS manuals have
not proved to be illuminating, and I've never tried this sort of thing
before.

I tried variations on buffer size (and unbuffered), on opening the file,
and on reading/writing.  All to no avail.

I tested the whole shebang with my PC and a demo program (also Kermit),
and was able to interact correctly.  The demo program (no source, alas!)
reads and writes successfully to the glove.

Specifics on the incoming signal:  9-bytes, generated 30 times per second
- so, there's plenty of time when it's not sending.  I tried a null modem,
but then couldn't even use 'cat' to write to /dev/ttyb (yes, that is
definitely the correct device. /ttya doesn't work any better).

The Sun port is set at its defaults:  9600 baud, 7 bits.  The glove is
also at 9600 baud, tho with 8 bits.  This doesn't seem to matter at all on
the PC.

Thanks for any insight you might provide.
-- Greg Newby
gbnewby at rodan.acs.syr.edu		gbnewby at sunrise.bitnet



More information about the Comp.sys.sun mailing list