Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Как считать статус Rx линии в RS232?  (Прочитано 9655 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Karloson
Гость
« : 27-12-2006 10:10 » 

Есть прога работающая с СОМ портом, но не как ни могу найти метод как узнать (по состоянию вх.линии) подключено ли к порту устройство или нет.
Нашел толко событие EV_BREAK (состояние разрыва приемной линии), но его надо ждать с помощью WaitCommEvent(), а что если устройство уже подключено? Когда я выйду из этого Wait..?

Может быть кто-то уже сталкивался с такой проблемой?
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 27-12-2006 14:28 » 

Karloson, для такого типа сигналов есть отдельные линии: RTS и CTS для управление потоком, DTR и DSR для управлением готовностью устройства, DCD и RI для трансляции событий.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Vlaor
Гость
« Ответ #2 : 12-02-2007 16:07 » 

попробуй
BOOL GetCommMask(
  HANDLE hFile,
  LPDWORD lpEvtMask
);

Записан
zaytsewa
Гость
« Ответ #3 : 09-12-2007 17:45 » 

у меня та же проблема
мне надо отследить подключение устройства
нашла кучу вариантов написания кода
но ничего не работает
а вообще прерывания от порта отлавливает waitcommevent?
и чем отличаются getcommmask и setcommmask?
Записан
Vlaor
Гость
« Ответ #4 : 09-12-2007 19:26 » 

GetCommMask- читает текущую маску.
SetCommMask- устанавливает маску.
Сначала необходимо установить маску по SetCommMask, а потом WaitCommEvent().
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #5 : 09-12-2007 19:32 » 

Вопрос в неправильной теме. Надо точно указать под какой осью и какой системой. Станадарт С/С++ не поддерживает прямой работы с портами. Это происходит только через ф-ции драйверов или осевой API.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 09-12-2007 19:45 » 

Джон, я не в теме, но, как определяется подключение plug&play устройств по ком порту?
Драйвер слушает порты, отдает события.
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #7 : 09-12-2007 23:56 » 

Слав, я незря сказал про ось. Например под NT4 можешь забыть про p-n-p. Под ней тебе надо самому пОлить порт.
В любом случае драйверы тоже к стандарту языка С/С++ отношения не имеют. Ага
Определившись с системой можно дать ответ.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines