Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с соm-портами 
:(
    Опции темы
maddoc
Дата 20.7.2005, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 364
Регистрация: 11.5.2005

Репутация: нет
Всего: 1



Может кто кинет ссылку на инфу или расскажет, как работать с сom-портами.


--------------------
"Безвыходных положений не бывает" (с) Камасутра
PM MAIL   Вверх
_hunter
Дата 20.7.2005, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 24
Всего: 98





--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
maddoc
Дата 20.7.2005, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 364
Регистрация: 11.5.2005

Репутация: нет
Всего: 1



спасибо. сорри не подумал даже.


--------------------
"Безвыходных положений не бывает" (с) Камасутра
PM MAIL   Вверх
deniska
Дата 20.7.2005, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 398
Регистрация: 1.7.2005
Где: Троицк

Репутация: нет
Всего: 0



DCB MyDCB;
int TSerialPort::Open(int Num)
{
int fl;
Number=Num;
sprintf(Name,"COM%d",Num);

COMMTIMEOUTS tout; // Ñòðóòóðà, îïèñàâàþùàÿ âðåìåíà îæèäàíèÿ (òàéìàóòû)

// Îòêðûòèå ïîðòà
Handle=CreateFile(Name,GENERIC_WRITE|GENERIC_READ,NULL,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
if(int(Handle)==-1) return -1;
//Çàäàíèå ðàçìåðà áóôåðà â áàéòàõ
fl=SetupComm(Handle,3000,3000); //
if(fl==0) return -1;
//Çàäàíèå òàéìàóòîâ
tout.ReadIntervalTimeout=100;
tout.ReadTotalTimeoutMultiplier=100;
tout.ReadTotalTimeoutConstant=100;
tout.WriteTotalTimeoutMultiplier=100;
tout.WriteTotalTimeoutConstant=100;
fl=SetCommTimeouts(Handle,&tout); // !!!
if(fl==0) return -1;

//Ñ÷èòûâàíèå òåêóùåãî ñîñòîÿíèÿ DCB (
fl=GetCommState(Handle,&MyDCB); // !!!
if(fl==0) return -1;

//Çàïîëíåíèå DCB
MyDCB.BaudRate=BaudRate; // current baud rate
MyDCB.fBinary=TRUE; // binary mode, no EOF check
MyDCB.fParity=TRUE; // enable parity checking
if(CTS_RTS_Enable)
{
MyDCB.fOutxCtsFlow=TRUE; // CTS output flow control
MyDCB.fRtsControl=RTS_CONTROL_ENABLE; // RTS flow control
}
else
{
MyDCB.fOutxCtsFlow=FALSE; // CTS output flow control
MyDCB.fRtsControl=RTS_CONTROL_DISABLE; // RTS flow control
}

MyDCB.fOutxDsrFlow=FALSE; // DSR output flow control
MyDCB.fDtrControl=DTR_CONTROL_DISABLE; // DTR flow control type

MyDCB.fDsrSensitivity=FALSE; // DSR sensitivity
MyDCB.fTXContinueOnXoff=0; // XOFF continues Tx
MyDCB.fOutX=0; // XON/XOFF out flow control
MyDCB.fInX=0; // XON/XOFF in flow control
MyDCB.fErrorChar=0; // enable error replacement
MyDCB.fNull=0; // enable null stripping

MyDCB.fAbortOnError=0; // abort reads/writes on error
MyDCB.XonLim=0; // transmit XON threshold
MyDCB.XoffLim=0; // transmit XOFF threshold
MyDCB.ByteSize=DataBit; // number of bits/byte, 4-8
switch(Parity)
{
case 'N': MyDCB.Parity=NOPARITY ;
break;
case 'O': MyDCB.Parity=ODDPARITY ;
break;
case 'M': MyDCB.Parity=MARKPARITY;
break;
case 'S': MyDCB.Parity=SPACEPARITY ;
break;
}
// 0-4=no,odd,even,mark,space
switch(StopBit)
{ case 1: MyDCB.StopBits=0; // 0,1,2 = 1, 1.5, 2
break;
case 2: MyDCB.StopBits=1;
}
MyDCB.XonChar=0; // Tx and Rx XON character
MyDCB.XoffChar=0; // Tx and Rx XOFF character
MyDCB.ErrorChar=0; // error replacement character
MyDCB.EofChar=0; // end of input character
MyDCB.EvtChar=0; // received event character
MyDCB.wReserved1; // reserved; do not use

//Íàñòðîéêà ïîðòà â ñîîòâåòñòâèè ñ çàïîëíåííûì DCB
fl=SetCommState(Handle,&MyDCB); // !!!
if(fl==0) return -1;
return 0;
}
writefile readfile для того чтобы писать и считывать
PM MAIL ICQ   Вверх
maddoc
Дата 20.7.2005, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 364
Регистрация: 11.5.2005

Репутация: нет
Всего: 1



а как получить список портов?


--------------------
"Безвыходных положений не бывает" (с) Камасутра
PM MAIL   Вверх
Snowy
Дата 20.7.2005, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 1
Всего: 484



HKEY_LOCAL_MACHINE\hardware\devicemap\serialcomm
PM MAIL   Вверх
maddoc
Дата 20.7.2005, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 364
Регистрация: 11.5.2005

Репутация: нет
Всего: 1



спасибо


--------------------
"Безвыходных положений не бывает" (с) Камасутра
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0931 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.