Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <fcntl.h>
- #include <unistd.h>
- #include <string.h>
- #include <termios.h>
- #include <stdio.h>
- #include <stdlib.h>
- /* baudrate settings are defined in <asm/termbits.h>, which is included by <termios.h> */
- #define BAUDRATE B38400
- /* change this definition for the correct port */
- #define MODEMDEVICE "/dev/ttyUSB0"
- #define _POSIX_SOURCE 1 /* POSIX compliant source */
- #define FALSE 0
- #define MAX 50
- #define TRUE 1
- volatile int STOP=FALSE;
- int
- main()
- {
- int i, fd, res;
- char line[MAX], c;
- struct termios oldtio,newtio;
- char buf[255];
- /* Open modem device for reading and writing and not as controlling tty because we don't want to get killed if linenoise sends CTRL-C. */
- fd = open(MODEMDEVICE, O_RDWR | O_NOCTTY );
- if (fd <0) {
- perror(MODEMDEVICE); exit(-1);
- }
- tcgetattr(fd,&oldtio); /* save current serial port settings */
- bzero(&newtio, sizeof(newtio)); /* clear struct for new port settings */
- /* BAUDRATE: Set bps rate. You could also use cfsetispeed and cfsetospeed. CRTSCTS : output hardware flow control (only used if the cable has
- all necessary lines. See sect. 7 of Serial-HOWTO) CS8 : 8n1 (8bit,no parity,1 stopbit) CLOCAL : local connection, no modem contol
- "putty_emul.c" 83L, 3563C 1,1 Top
- newtio.c_cc[VSWTC] = 0; /* '\0' */
- newtio.c_cc[VSTART] = 0; /* Ctrl-q */
- newtio.c_cc[VSTOP] = 0; /* Ctrl-s */
- newtio.c_cc[VSUSP] = 0; /* Ctrl-z */
- newtio.c_cc[VEOL] = 0; /* '\0' */
- newtio.c_cc[VREPRINT] = 0; /* Ctrl-r */
- newtio.c_cc[VDISCARD] = 0; /* Ctrl-u */
- newtio.c_cc[VWERASE] = 0; /* Ctrl-w */
- newtio.c_cc[VLNEXT] = 0; /* Ctrl-v */
- newtio.c_cc[VEOL2] = 0; /* '\0' */
- /* now clean the modem line and activate the settings for the port */
- tcflush(fd, TCIFLUSH);
- tcsetattr(fd,TCSANOW,&newtio);
- /* terminal settings done, now handle input In this example, inputting a 'z' at the beginning of a line will exit the program. */
- i = 0;
- while ((c = getchar()) && i < MAX - 1) {
- line[i++] = c;
- if (c == '\n')
- break;
- }
- line[i] = 0;
- write(fd, line, i);
- i = 0;
- while ((c == getchar()) != '\n')
- line[i++] = c;
- line[i] = '\0';
- printf("%s\n", line);
- /* restore the old port settings */
- tcsetattr(fd,TCSANOW,&oldtio);
- return (0);
- }
Advertisement
Add Comment
Please, Sign In to add comment