![]() |
Работа с COM-портом в Buildere
Подскажите, пожалуйста, какими компонентами лучше пользоваться для работы с COM-портами (интересует работа "на прием", поддержка асинхронного режима). Информации по этому вопросу маловато...
|
Re: Работа с COM-портом в Buildere
Попробуйте TurboPower Async Professional
|
Re: Работа с COM-портом в Buildere
Отличная статейка: http://www.delphikingdom.ru/asp/view...?catalogid=723
Вот еще компонент: ComPort |
Re: Работа с COM-портом в Buildere
Ээээ.... А CreateFile чем плох?
|
Re: Работа с COM-портом в Buildere
Я новичек в программирование не могу установить компонент COM порта для Builder6
|
Re: Работа с COM-портом в Buildere
Цитата:
|
Re: Работа с COM-портом в Buildere
Работа с com портом ведётся как с обычным файлом, только вместо имени будет, например, "COM1" Для открытия порта можно воспользоваться функцией CreateFile, для записи данных в порт WriteFile, а для чтения из порта функцией ReadFile
|
Re: Работа с COM-портом в Buildere
В дополнение к ответу Andrew_1978 приведу пример работы с СОМ портом (синхронное обращение с портом):
Объявляем переменные HANDLE hComPort; DCB lpDCB; COMMTIMEOUTS lpCommTimeouts; int iReadTotalTimeoutConstant; char cBufferSend[4], cBufferReseive[500]; DWORD CountBytes, ReadCountBytes; Открываем COM-порт и задаём ему необходимые параметры bool OpenCOMPort() { hComPort=CreateFile("COM1",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXI STING,0,NULL); if(hComPort==INVALID_HANDLE_VALUE) { Application->MessageBox("Не могу открыть СОМ1","", MB_OK + MB_ICONINFORMATION); return false; } GetCommState(hComPort,&lpDCB); lpDCB.BaudRate=9600; lpDCB.ByteSize=8; lpDCB.Parity=NOPARITY; lpDCB.StopBits=ONESTOPBIT; lpDCB.fDtrControl=DTR_CONTROL_DISABLE; lpDCB.fRtsControl=RTS_CONTROL_DISABLE; if(!SetCommState(hComPort,&lpDCB)) { Application->MessageBox("Необходимые параметры порта СОМ1 не установлены", "",MB_OK + MB_ICONINFORMATION); return false; } GetCommTimeouts(hComPort,&lpCommTimeouts); lpCommTimeouts.ReadTotalTimeoutConstant = iReadTotalTimeoutConstant; if(!SetCommTimeouts(hComPort,&lpCommTimeouts)) { Application->MessageBox(("Необходимые параметры порта \""+ sNameComPort+"\" не установлены").c_str(), sCaption.c_str(), MB_OK + MB_ICONINFORMATION); return false; } return true; } //--------------------------------------------------------------------------- Читаем и передаём данные например так: ReadFile(hComPort,cBufferReseive,ReadCountBytes,&CountByte s,NULL); WriteFile(hComPort,cBufferSend,4,&CountBytes,NULL); предварительно присвоив необходимые значения переменным При окончании общения с СОМ-портом не забываем освободить (закрыть)указатель CloseHandle(hComPort); |
Re: Работа с COM-портом в Buildere
Версия nrComm Lib 8.20 r2 хорошо работает с билдером 2009 пробовал работать с виртуальными портами (USB и блютуз)
|
Re: Работа с COM-портом в Buildere
Так и не догнал где на этом форуме можно выложить файл поэтому выложил вот сюда ->> http://zalil.ru/30784109 и продублировал вот тут -> http://webfile.ru/5237199
Там идёт работа с портом через АПИ с коментариями и некоторой обёрткой + немного теории, мне в своё время хватило для обмена с устройством. |
Re: Работа с COM-портом в Buildere
нормальная статья на www.avicorp.ru, расписан интерфейс
|
| Текущее время: 02:41. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2026, vBulletin Solutions, Inc. Перевод: zCarot
Copyright ©2004 - 2025 NoWa.cc