Как определить состояние DCD сигнала COM-порта?
, COM-порт
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.167] |
|
|
Как определить состояние DCD сигнала COM-порта?
, COM-порт
|
Сообщ.
#1
,
|
|
|
|
У меня имеется девайс (ИК-приемник), который сообщает компу об изменении состояния (при приеме сигнала от пульта) DCD сигналом. Различные COM-терминалы отлично принимают этот сигнал. Хотелось бы чтобы моя программа делала то же самое. Кто знает, помогите пожалуйста разобраться в принципе приёма DCD сигнала. Буду очень признателен примерам в виде исходниов.
P.S. Как получить значение бита DCD ("0" или "1")? |
|
Сообщ.
#2
,
|
|
|
|
функция GetCommModemStatus, бит MS_RLSD_ON
|
|
Сообщ.
#3
,
|
|
|
|
Попробовал в своей проге функцию GetCommModemStatus:
![]() ![]() LPDWORD lpModemStat; void __fastcall TForm1::Button3Click(TObject *Sender) {if(!GetCommModemStatus(port, lpModemStat)) Label2->Caption=IntToStr(MS_RLSD_ON); else Label1->Caption="Error"; } Что при открытом порте, что при закрытом MS_RLSD_ON = 128. Может быть я ей не правильно пользуюсь.. Если не трудно скиньте пожалуйста небольшой примерчик с применением этой функции. Заранее благодарен. |
|
Сообщ.
#4
,
|
|
|
|
ты бы хоть для приличия почитал описание этой функции. В частности, о предназначении ее второго параметра. Или настоящие программисты не читают документацию?
![]() ![]() void __fastcall TForm1::Button3Click(TObject *Sender) { DWORD dwModemStat; if( !GetCommModemStatus(port, &dwModemStat) ) Label2->Caption = (dwModemStat&MS_RLSD_ON)?"On":"Off"; else Label1->Caption="Error"; } |
|
Сообщ.
#5
,
|
|
|
|
Елси кто также не может разобраться с COM-портом, вот один добрый человек поделился - простой но зато очень понятный примерчик-исходник
Прикреплённый файл ComTest02.zip (7.25 Кбайт, скачиваний: 242)
|