diff options
Diffstat (limited to 'src/clear_rts.c')
-rw-r--r-- | src/clear_rts.c | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/src/clear_rts.c b/src/clear_rts.c index 52da3f5..c50a9fc 100644 --- a/src/clear_rts.c +++ b/src/clear_rts.c @@ -1,9 +1,9 @@ /* Compile with: - gcc -o toggle_rts toggle_rts.c + gcc -o clear_rts clear_rts.c Change PORT if necessary. */ -#define PORT "/dev/ttyS0" +#define PORT "/dev/ttyUSB0" #include <sys/types.h> #include <sys/stat.h> @@ -16,8 +16,14 @@ #include <sys/ioctl.h> #include <linux/serial.h> -int main() { +int main(int argc, char **argv) { int fd, status; + char *port; + + if(argc == 2) + port = argv[1]; + else + port = PORT; fd = open(PORT, O_RDWR); if(fd < 0) { @@ -25,18 +31,21 @@ int main() { return 1; } - // fprintf(stderr, "ioctl(fd, TIOCMGET, &status);\n"); ioctl(fd, TIOCMGET, &status); + + /* This always says it was on. Opening the port sets it? */ /* + fprintf(stderr, "%s: RTS was ", port); if(status & TIOCM_RTS) { - fprintf(stderr, "RTS set\n"); + fputs("on", stderr); } else { - fprintf(stderr, "RTS clear\n"); + fputs("already off", stderr); } + fputc('\n', stderr); */ + status &= ~TIOCM_RTS; ioctl(fd, TIOCMSET, &status); - // fprintf(stderr, "ioctl(fd, TIOCMSET, &status);\n"); - fprintf(stderr, "RTS forced off (Tucker SIO2PC)\n"); + fprintf(stderr, "%s: RTS forced off (Tucker SIO2PC)\n", port); return 0; } |