Перейти к содержанию

Получение модемных бит RTS/CTS, DTR/DSR по прерванию


Рекомендуемые сообщения

Начну с того, что пишу на С++ прогу работы с одной железкой, обмен осуществляется с использованием сигналов RTS/CTS, DTR/DSR. Как известно ioctl() позволяет извлечь состояния этих сигналов, но только по опросу. Мне необходимо как можно скорее получеть состояния этих сигналов после их изменения. В книге Михаила Гука Аппаратные ср-ва ПК говорится о изменении состяния региста MSR UARTа - регистр состояния модема.

Назначение бит регистра MSR:

Бит 7 - DCD (Data Carrier Detect) - состояние линии DCD.

Бит 6 - Rl(Ring Indicator) - состояние линии Rl.

Бит 5 - DSR(Data Set Ready) - состояние линии DSR.

Бит 4 - CTS(Clear To Send) - состояние линии CTS.

Бит 3 - DDCD(Delta Data Carrier Detect) - изменение состояния DCD.

Бит 2 - TERI(Trailing Edge OfRing Indicator) -спад огибающей Rl (окончание звонка).

Бит 1 - DDSR (Delta Data Set Ready) - изменение состояния DSR.

Бит 0 - DCTS (Delta Clear To Send) - изменение состояния CTS.

Меня в данном случае интересуют биты 0,1,3. Нет ли в системных вызовах функций позволяющих получить сигнал(в смысле SIGALRM или SIGUSR) при изменении состояния этих трех бит регистра.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...