#include <stdio.h>
#include <curses.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <termios.h>
/* TIOCM_CAR, TIOCM_RTS, TIOCM_DTR, TIOCM_RNG, TIOCM_DSR, TIOCM_CTS */
main()
{
unsigned int modem_info;
int fd;
char tmp[80];
initscr();
noecho();
keypad(stdscr, TRUE);
nodelay(stdscr, TRUE);
fd = open("/dev/ttyS3", O_RDWR | O_NONBLOCK);
if (fd == -1) {
addstr("Error opening serial port\n");
refresh();
endwin();
exit(1);
}
while (1) {
move(1, 1);
if (ioctl(fd, TIOCMGET, &modem_info) == -1)
sprintf(tmp, "IOCTL error");
else
sprintf(tmp, "CD: %d DSR: %d CTS: %d",
(modem_info & TIOCM_CD) >> 6,
(modem_info & TIOCM_DSR) >> 8,
(modem_info & TIOCM_CTS) >> 5);
addstr(tmp);
refresh();
if(getch() != ERR)
break;
}
close(fd);
endwin();
exit(0);
}