Название: Работа с СОМ-портом Отправлено: U.B.M. от Октябрь 16, 2012, 16:04 Доброго времени суток!
Делаю программу для работы с устройством по СОМ-порту (отлаживаю на двух компах, соединенных нуль-модемным кабелем). По сути делаю чат ;D Прием с СОМ-порта должен работать постоянно, передача только по нажатию кнопки. Сделал 2 приложения - одно отсылает, другое принимает. При одновременном запуске обе прицепляются к СОМ-порту (lsof /dev/ttyS0 показывает так), что не айс и, как не трудно догадаться, обе работают коряво. Начал решать следующим образом: - открываю СОМ-порт в главном окошке Код: int fd = open("/dev/ttyS0", O_RDWR | O_NOCTTY | O_NDELAY) - по нажатию кнопки создаю диалоговое окошко (эдит + кнопка) для отправки сообщения; - печатаю текст в эдите, по нажатию кнопки в диалоговом окошке отправляю Код: int n = write(fd, <текст>, <длина>) - далее с грустью смотрю как на соседнем компе множество раз принимается это сообщение. Если СОМ-порт закрывать после отправки сообщения - всё замечательно работает. Но проблема в том, что его закрывать нельзя - потеряется инфа которая приходит на комп отправителя. Как его притормозить при отправке чтоб он отправил только 1 раз сообщение? ??? P.S. Пишу на Qt 4.4.3 под МСВС 3.0 (армейский линукс) - поэтому сторонние компоненты нельзя - только встроенными функциями можно. Название: Re: Работа с СОМ-портом Отправлено: kuzulis от Октябрь 16, 2012, 16:16 Что-то сегодня прям аврал по ком-портам :)
Цитировать P.S. Пишу на Qt 4.4.3 под МСВС 3.0 (армейский линукс) - поэтому сторонние компоненты нельзя - только встроенными функциями можно. Возьми это (http://qt-project.org/wiki/QtSerialPort_Russian) переделай под свою задачу. Исходники то открыты. Делов то на день два максимум, если не спеша. ЗЫ: За "безопасность" страны я спокоен пока такие люди пишут на МСВС. :) ЗЫЗЫ: А вообще гуголь в помощь. Название: Re: Работа с СОМ-портом Отправлено: U.B.M. от Октябрь 16, 2012, 16:22 Я за Qt сел 2 дня назад :-\ Но в любом случае спасибо за ответ. Попробую
|