Russian Qt Forum

Компиляторы и платформы => Linux => Тема начата: juvf от Июнь 07, 2008, 11:21



Название: Почему занятый компорт открывается? Как сделать проверку на занятость?
Отправлено: juvf от Июнь 07, 2008, 11:21
есть приложение которое общяется по нескольким компортам. Для каждого соединения указываеться ком порт, потом порт открываеться, в конце сесии закрываеться. Так вот если оба соединения указывают на 1 компорт, например на /dev/cuad0, то если уставновить первое, то оно работает, но если установить второе, в то время когда первое работает, то оба соединения делят один компорт, в результате обмена вообще нет. В винде если компорт занят, то программы говорят, что-то типа "Соединение не установленно, т.к. порт COM1 занят!".

Как в FreeBSD можно организовать проверку на занятость компорта? Как сделать, чтоб занятый компорт не открывался?


Название: Re: Почему занятый компорт открывается? Как сделать проверку на занятость?
Отправлено: lit-uriy от Июнь 07, 2008, 16:49
>>Почему занятый компорт открывается?
потому что в юниксах файлы не блокируются, и это полезно при отладке COM-ортов, подглядфвать за обменом можешь.
а вот по второму пункту не помню, вроде можно сделать и блокировку файла


Название: Re: Почему занятый компорт открывается? Как сделать проверку на занятость?
Отправлено: Pupil от Июнь 21, 2012, 10:30
Юрий, а как можно "промониторить" то, что делается с настройками COM-порта и данными, идущими через порт в момент действия программы "не одним снимком", а, грубо говоря, "по таймеру" - ,всё и регулярно, аналогично win программе FreeSerialPortMonitor? Спасибо!


Название: Re: Почему занятый компорт открывается? Как сделать проверку на занятость?
Отправлено: kuzulis от Июнь 21, 2012, 11:22
Аналогично не получится, но можешь использовать strace