Date: Thu, 04 Dec 2003 02:11:23 -0500 From: Scott W <wegster@mindcore.net> To: francois@montefiore.ulg.ac.be Cc: questions@FreeBSD.org Subject: Re: serial port programming Message-ID: <3FCEDE1B.5030207@mindcore.net> In-Reply-To: <3FC23FE2.5010101@run.montefiore.ulg.ac.be> References: <3FC23FE2.5010101@run.montefiore.ulg.ac.be>
next in thread | previous in thread | raw e-mail | index | archive | help
This may not help much, but I've done some serial port development in the past, across a fair number of *nix platforms. Regardless of 'what should happen,' aside from Linux and Solaris, other variants were just that- this unfortunately is from memory (from a WHILE back on this project), but each OS(Solaris 2.5.1/6/7/8, Linux(RH6.3-7.X), HPUX (10.20/11.X), Irix(agh!) etc all had specific settings, both in opening the file descriptor for the port, as well as in the flags being set in the termios structure. There's a generic Serial Programming FAQ, but dated, at http://www.stokely.com/unix.serial.port.resources/tutorials.html Also see: http://www.easysw.com/~mike/serial/ (a bit more up to date), but the problems I ran into were generally similar to what you seem to be describing- the port seeming to be in an incorrect or unknown state, regardless of the 'standard' way of doing things. Ultimately, I wound up comparing the initial open(), initialization strings via write(), and the termios struct settings to known WORKING code on the problem platforms, #def'fed the hell out of the code, and got most of it working. In this case you should be OK grabbing the source to minicom and doing the same.... I may be missing something obvious in my memory here, but after that one I had no further desire to do serial port/modem coding for quite a while ;-) (And God help me, HP developer support was almost as bad as M$!) Scott Jean-Marc Francois wrote: > Sir, > > > I've posted this question on a newsgroup, but got no response. > Is there a cuaa-guru out there ? :-) > > Thanks ! > Jean-Marc Francois > Université de Liège > > --------------- > I got a strange problem. > > I want to send a binary string to a small device I made via /dev/cuaa0. > The port settings should be 19200, 8N1 (no RTS/CTS, no XON/XOFF). > Looks simple. > > I've written a small program using the standard POSIX API : tcgetattr > and the like. > > When I launch my program, it doesn't work (well, it works with Linux > but not with FreeBSD). > If I first launch minicom (and ask it to setup the serial port), let > it in the > background and launch my program, it works. > > The problem is that the dump of the 'stuct termios' my program is > using with or without > minicom is the same, so that's not the problem (stty -f /dev/cuaa0 > gives the same output > also). > > I thought all the serial settings were in this structure; where am I > wrong ? > > > Thank if you can help (if you can't, thanks for reading anyway :-) ), > JM > > --- > #> stty -f /dev/cuaa0 > speed 19200 baud; > lflags: -icanon -isig -iexten -echo > iflags: -icrnl -ixon -ixany -imaxbel ignbrk -brkint > oflags: -opost -onlcr -oxtabs > cflags: cs8 -parenb clocal > time > 5 > > --- > Dump of struct termios : > > c_iflag : 0x1 > c_oflag : 0x0 > c_cflag : 0xcb00 > c_lflag : 0x0 > c_cc[0] : 0x4 > c_cc[1] : 0xff > c_cc[2] : 0xff > c_cc[3] : 0x7f > c_cc[4] : 0x17 > c_cc[5] : 0x15 > c_cc[6] : 0x12 > c_cc[7] : 0x8 > c_cc[8] : 0x3 > c_cc[9] : 0x1c > c_cc[10] : 0x1a > c_cc[11] : 0x19 > c_cc[12] : 0x11 > c_cc[13] : 0x13 > c_cc[14] : 0x16 > c_cc[15] : 0xf > c_cc[16] : 0x1 > c_cc[17] : 0x5 > c_cc[18] : 0x14 > c_cc[19] : 0xff > c_ispeed : 0x4b00 > c_ospeed : 0x4b00 > > --- > --------------- > > _______________________________________________ > freebsd-questions@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-questions > To unsubscribe, send any mail to > "freebsd-questions-unsubscribe@freebsd.org" >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3FCEDE1B.5030207>