Добавление нового системного вызова в Linux 3.2.x с загружаемым модулем ядра [закрыто]

Как и в случае с ИБП, я полагаю, вы можете позволить себе опрашивать сигналы модема каждые 10 секунд или около того (из freebsd tty (4) ):

int state;
if(ioctl(fd, TIOCMGET, &state)...)
if(state & TIOCM_DTR)...

Однако, если вы хотите немедленно получать уведомления об изменениях ровно в одном сигнале модема , а именно DCD, вы можете установить для флагов tty значение сброса CLOCAL {{ 1}} (см. termios ), то более поздний open () на порту будет зависать до тех пор, пока сигнал модема DCD не станет активным. Когда вы теряете DCD, вы также получаете SIGHUP.

Другой механизм - подключить одну из ваших линий к входному выводу данных RX. Если вы поднимете это значение дольше, чем время символа, соответствующее установленной вами скорости, это вызовет ошибку кадрирования.Если вы установите IGNBRK = 0 и BRKINT = 0, тогда драйвер поместит нулевой байт \ 0 во входную очередь, который может разблокировать ожидающее чтение () , если оно находится в необработанном режиме.

11
16.09.2012, 20:21
0 ответов

Теги

Похожие вопросы