Russian Qt Forum
Ноябрь 24, 2024, 05:25 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Работа с СОМ-портом  (Прочитано 2532 раз)
U.B.M.
Гость
« : Октябрь 16, 2012, 16:04 »

Доброго времени суток!

Делаю программу для работы с устройством по СОМ-порту (отлаживаю на двух компах, соединенных нуль-модемным кабелем). По сути делаю чат Смеющийся

Прием с СОМ-порта должен работать постоянно, передача только по нажатию кнопки. Сделал 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 (армейский линукс) - поэтому сторонние компоненты нельзя - только встроенными функциями можно.
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #1 : Октябрь 16, 2012, 16:16 »

Что-то сегодня прям аврал по ком-портам Улыбающийся

Цитировать
P.S. Пишу на Qt 4.4.3 под МСВС 3.0 (армейский линукс) - поэтому сторонние компоненты нельзя - только встроенными функциями можно.

Возьми это  переделай под свою задачу.
Исходники то открыты. Делов то на день два максимум, если не спеша.

ЗЫ: За "безопасность" страны я спокоен пока такие люди пишут на МСВС. Улыбающийся
ЗЫЗЫ: А вообще гуголь в помощь.


« Последнее редактирование: Октябрь 16, 2012, 16:18 от kuzulis » Записан

ArchLinux x86_64 / Win10 64 bit
U.B.M.
Гость
« Ответ #2 : Октябрь 16, 2012, 16:22 »

Я за Qt сел 2 дня назад  В замешательстве Но в любом случае спасибо за ответ. Попробую
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.07 секунд. Запросов: 22.