Linux. У меня есть реальный serial port /dev/ttyS5.
До записи и после записи в этот порт мне нужно выполнять некое действие. Костыль в сам драйвер не могу вставить, нет возможности.
Я подумал создать виртуальный порт и программу, которая будет за ним следить. Т.е.
/dev/ttyS5 < — > program <—> /dev/virtualS5
Как создать виртуальный serial порт, может ли программа отслеживать с какими атрибутами и скоростью(baudrate) открыт этот виртуальный порт? Чтобы открыть реальный порт с теми атрибутами что и виртуальный, гонять туда сюда данные и выполнять некое действие до и после записи в реальный порт.
Это не вопрос Qt.
Это надо в чат по Линукс идти
Драйвер написать проксирующий
Там проблема в том, что у драйвера нету системных вызовов(open, write, read) и доступа к /dev/ttyS5
Я наконец решил проблему, мне помогло openpty() и select(). Правда костыль пришлось написать для отслеживания смены скорости у виртуального порта(мастер и слейв). Поставил таймаут для select и чекаю tcgetattr у слейва на изменение, если поменялось, то назначаю реальному и мастер порту атрибуты слейва
Обсуждают сегодня