| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Программирование под Unix/Linux > pppd и проверка состояния COM-порта |
| Автор: eXtremal7 19.7.2010, 14:31 | ||
Есть софт, который использует соединение через COM-порт по протоколу IP(поверх PPP). В софте этом требуется отображать статус соединения, что сводится к циклическому опросу(скорее всего) бита DCD. Для тестирования запускаю следующий код:
Если запускать после установки соединения - как бы и работает, но если сначала пустить подобный код, а уже потом pppd - то тут облом, вылезает ошибка функции tcgetaddr(требуется, чтоб больше никто устройство /dev/ttySx кроме pppd в данный момент не использовал). Примерно то же самое и с приложением setserial, если пытаться изменить какие-нибудь параметры порта. Есть ли выход из положения? Может использовать какие-нибудь данные директории /proc, или указывать некие особые параметры функции open при открытии файла /dev/ttySx или при старте pppd? Проверять статус соединения на уровне IP не подходит, т.к. на другом конце есть находится некий ретранслятор, который вообще не понимает в каком формате идут через него данные(т.е. обычный пинг не покатит). |
| Автор: Tima22 22.7.2010, 16:53 |
| Не могу сказать как это делается, но ppp сам знает своё состояние. Тебе надо только спросить у IPCP ( ip control plane ) "как дела?". LCP знает состояние самого линка |