реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Ногодрыганье COM порта, пара вопросов
paskal
сообщение Feb 15 2012, 16:53
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 352
Регистрация: 29-10-06
Из: Тула
Пользователь №: 21 769



Под Win32 надо управлять линиями COMа. Для проверки состояния линий вызываю функцию GetCommModemStatus. Она возвращает cts,dsr,ri. А dcd - нету. Как читать состояние DCD?
И второе. Для управления линиями есть EscapeCommFunction. Но она за один вызов может дергать только одной линией RTS,DTR, или TX. А есть ли функция чтоб дергать ими одновременно?
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Feb 15 2012, 17:35
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(paskal @ Feb 15 2012, 18:53) *
Для проверки состояния линий вызываю функцию GetCommModemStatus. Она возвращает cts,dsr,ri. А dcd - нету. Как читать состояние DCD?

DCD=RLSD.
Зачем-то по другому назвали.

Go to the top of the page
 
+Quote Post
_pv
сообщение Feb 15 2012, 18:42
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



Цитата(paskal @ Feb 15 2012, 23:53) *
Как читать состояние DCD?
А есть ли функция чтоб дергать ими одновременно?


Код
  
  unsigned int status;
  GetCommModemStatus(hCom, (LPDWORD)&status);
  return status & MS_RLSD_ON ? 1 : 0;


Код
  
  DCB dcb;
  GetCommState( hCom, &dcb );
  dcb.fRtsControl = rts ? RTS_CONTROL_ENABLE : RTS_CONTROL_DISABLE;
  dcb.fDtrControl = dtr ? DTR_CONTROL_ENABLE : DTR_CONTROL_DISABLE;
  SetCommState( hCom, &dcb ) )
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 14:22
Рейтинг@Mail.ru


Страница сгенерированна за 0.01374 секунд с 7
ELECTRONIX ©2004-2016