The UNIX and Linux Forums  

Go Back   The UNIX and Linux Forums > Top Forums > High Level Programming
Google UNIX.COM


High Level Programming Post questions about C, C++, Java, SQL, and other programming languages here.

More UNIX and Linux Forum Topics You Might Find Helpful
Thread Thread Starter Forum Replies Last Post
How to embeded programm within programm shankarao Shell Programming and Scripting 2 11-13-2006 06:29 PM
how do i run am encrpyrtic programm on unix ghoz High Level Programming 4 10-08-2004 10:26 AM
Devices in Unix derekc132002 UNIX for Dummies Questions & Answers 1 11-06-2002 08:52 AM
Unix devices GW01 UNIX for Dummies Questions & Answers 2 08-27-2002 05:00 AM
UNIX problem? Unix programm runs windows 2000 CPU over 100% zerocool UNIX for Dummies Questions & Answers 2 11-06-2001 02:25 AM

Reply
 
Submit Tools LinkBack Thread Tools Display Modes
  #1  
Old 12-20-2001
Registered User
 

Join Date: Dec 2001
Posts: 6
Question How to programm TTY devices under UNIX platform?

Dear Export,

I want to begin an serial-communication application codes associated with TTY devices. But I don't know what key settings should be concerned after opening a TTY device file under UNIX plarform(SunOS 5.7)?

Could you give me some adivce? Thanks!
__________________
Maybe another e-mail address: wb_yang@chinaren.com is more convenient than the above one. welcome!

Last edited by WayneYang; 12-20-2001 at 01:51 AM.
Reply With Quote
Forum Sponsor
  #2  
Old 12-20-2001
rwb1959's Avatar
Registered User
 

Join Date: Aug 2001
Location: Virginia, USA
Posts: 438
Check your system's man pages on...

termio (and/or termios)
ioctl
read
write
Reply With Quote
  #3  
Old 12-20-2001
Registered User
 

Join Date: Dec 2001
Posts: 6
Thank you, rwb1959,

Actually I have a look at man pages of TERMIO. But you know, it is simple that some contents mentioned is still not clear to me. the most puzzling question is How to set the value of BAUD to a opened TTY file? And what is the detailed reason?

Looking forward to you reply!
__________________
Maybe another e-mail address: wb_yang@chinaren.com is more convenient than the above one. welcome!
Reply With Quote
  #4  
Old 12-21-2001
Perderabo's Avatar
Unix Daemon
 

Join Date: Aug 2001
Location: Washington DC Area
Posts: 8,616
There is the old unix way to do this and the new posix way. I wrote a program to put the tty into raw mode using both methods so I could compare them. You should probably understand both techniques since there is a lot of old code out there. But I think the posix revision is a win, so I would suggest going the posix route with new code. I would add the following man pages to your list:

tcattribute(3c)
cfspeed(3C)
tccontrol(3C)

You should use the routines in cfspeed(3C) to change the baud rate.

Here is the sample program that I wrote:
Code:
/*   #define OLD_TERMIO  */

#ifdef __STDC__
#define PROTOTYPICAL
#endif
#ifdef __cplusplus
#define PROTOTYPICAL
#endif

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

#ifdef OLD_TERMIO
#include <termio.h>
#else
#include <termios.h>
#endif

#ifdef PROTOTYPICAL
int main(int argc, char *argv[])
#else
main(argc,argv)
char *argv[];
#endif

{
#ifdef OLD_TERMIO
        struct termio orig,now;
#else
        struct termios orig,now;
#endif
        int c, i, rc, done;
        setvbuf(stdout, NULL, _IONBF ,0);

#ifdef OLD_TERMIO
        ioctl(0, TCGETA, (char *) &orig);
#else
        tcgetattr(0, &orig);
#endif
        now=orig;
        now.c_lflag &= ~(ISIG|ICANON|ECHO);
        now.c_cc[VMIN]=1;
        now.c_cc[VTIME]=2;
#ifdef OLD_TERMIO
        ioctl(0,TCSETA, (char *) &now);
#else
        tcsetattr(0, TCSANOW, &now);
#endif
        done=0;
        while(!done) {
                printf("hit a key: ");
                c=getchar();
                printf(" got a  %03X \n", c);
                done = c=='q';
        }
#ifdef OLD_TERMIO
        ioctl(0,TCSETA, (char *) &orig);
#else
        tcsetattr(0, TCSANOW, &orig);
#endif
        exit(0);
}

Last edited by Perderabo; 01-16-2005 at 11:48 AM. Reason: remove html which is no longer supported
Reply With Quote
  #5  
Old 12-21-2001
rwb1959's Avatar
Registered User
 

Join Date: Aug 2001
Location: Virginia, USA
Posts: 438
Perderabo is most correct. The Posix way
is certainly cleaner in general.
Sometimes old guys like me have
a hard time letting go
Reply With Quote
  #6  
Old 12-24-2001
Registered User
 

Join Date: Dec 2001
Posts: 6
Thank you! Perderabo.

I would like to try your dedication.

Maybe you know, I work now on the SunOS 5.7 platform. Surely I have looked up the TERMIOS library. But I could not find that thress functions listed in your mail as follows:

tcattribute(3c)
cfspeed(3C)
tccontrol(3C)

I know, the SunOS 5.7 should obey to the POSIX standard. But where these functions?

Another one, would you like tell me what do you mean by the 'win' in your mail? I guess if it is "what is needed'?

Thanks again!
__________________
Maybe another e-mail address: wb_yang@chinaren.com is more convenient than the above one. welcome!
Reply With Quote
  #7  
Old 12-24-2001
Perderabo's Avatar
Unix Daemon
 

Join Date: Aug 2001
Location: Washington DC Area
Posts: 8,616
Sun does a fairly reasonable job of complying with posix. There is no standard for exactly where to put information in the man pages. On Sun, start with the termio man page and look at all the man pages it references in the "SEE ALSO" section.


From dictionary.com:
Quote:
win [MIT; now common everywhere] 1. vi. To succeed. A program wins if no unexpected conditions arise, or (especially) if it sufficiently robust to take exceptions in stride. 2. n. Success, or a specific instance thereof. A pleasing outcome. "So it turned out I could use a lexer generator instead of hand-coding my own pattern recognizer. What a win!" Emphatic forms: `moby win', `super win', `hyper-win' (often used interjectively as a reply). For some reason `suitable win' is also common at MIT, usually in reference to a satisfactory solution to a problem. Oppose lose; see also big win, which isn't quite just an intensification of `win'.
Reply With Quote
Google The UNIX and Linux Forums
Reply

Thread Tools
Display Modes




All times are GMT -7. The time now is 07:02 AM.


Powered by: vBulletin, Copyright ©2000 - 2006, Jelsoft Enterprises Limited.
The UNIX and Linux Forums Content Copyright ©1993-2008. All Rights Reserved.Ad Management by RedTyger Visit The Complex Event Processing Blog

Content Relevant URLs by vBSEO 3.2.0