RS 232 прием на ПК
RS 232 прием на ПК
подскажите компонент для написания программы Delphi с примером для приема данных с ком порта
Re: RS 232 прием на ПК
Это к пушистому Ploop-у - он у нас тут по Дэлфям специализируется..romanF1 писал(а):программы Delphi
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Re: RS 232 прием на ПК
Это к гладкошёрстному гуглу. Пушистый ploop с com-портом не работал, и чтобы ответить - ему тоже придётся договариваться с гуглом 
-
orinoko
Re: RS 232 прием на ПК
1.
+----------+
| ComPort Library version 3.10 |
| for Delphi 3, 4, 5, 6, 7, 2005, 2006 |
| and C++ Builder 3, 4, 5, 6 |
| |
| by Dejan Crnila 1998-2002 |
| maintained by Lars Dybdahl and Paul Doland |
+----------+
2.
// UNIT : CPDrv.pas
// CONTENTS : TCommPortDriver component
// VERSION : 2.1
// TARGET : (Inprise's) Borland Delphi 4.0
// AUTHOR : Marco Cocco
// STATUS : Freeware
3. TurboPower Async Professional
Второй мне нравится больше. А вообще таких компонентов - океан
+----------+
| ComPort Library version 3.10 |
| for Delphi 3, 4, 5, 6, 7, 2005, 2006 |
| and C++ Builder 3, 4, 5, 6 |
| |
| by Dejan Crnila 1998-2002 |
| maintained by Lars Dybdahl and Paul Doland |
+----------+
2.
// UNIT : CPDrv.pas
// CONTENTS : TCommPortDriver component
// VERSION : 2.1
// TARGET : (Inprise's) Borland Delphi 4.0
// AUTHOR : Marco Cocco
// STATUS : Freeware
3. TurboPower Async Professional
Второй мне нравится больше. А вообще таких компонентов - океан
- Engineer_Keen
- Друг Кота
- Сообщения: 3868
- Зарегистрирован: Пт янв 29, 2010 10:27:40
- Откуда: Москва
Re: RS 232 прием на ПК
Чтобы работать с ком портом необязательно использовать компоненты, достаточно стандартных функций типа CreateFile, WriteFile, ReadFile. Только с настройками нужно будет немного повозиться (одна DCB чего стоит).
Скачайте DRKB, там помимо кучи примеров есть и работа с портами.
Скачайте DRKB, там помимо кучи примеров есть и работа с портами.
-
Мастер Ломастер
- Поставщик валерьянки для Кота
- Сообщения: 1995
- Зарегистрирован: Ср май 11, 2011 21:37:45
- Откуда: Цветочный город
- Контактная информация:
Re: RS 232 прием на ПК
простой, надежный и достаточно удобный компонент с открытым исходным кодом, бесплатный - это comm32. находится поиском, если не найдете - скажите и я вам его вышлю.
что касается функций Windows API, то это весьма и весьма замороченное дело - работать с ними. хотя принципиально можно и тупо при помощи стандартных TFileStream или даже процедуры read работать - но тоже не фонтан. советую comm32
что касается функций Windows API, то это весьма и весьма замороченное дело - работать с ними. хотя принципиально можно и тупо при помощи стандартных TFileStream или даже процедуры read работать - но тоже не фонтан. советую comm32
битва с дураками проиграна, победители торжествуют. слава победителям!
- ChipKiller
- Сверлит текстолит когтями
- Сообщения: 1163
- Зарегистрирован: Ср янв 05, 2011 16:25:15
Re: RS 232 прием на ПК
... вот этого вполне хватит, чтобы читать/писать в СОМ-порт с помощью WinApi. На паскаль переписать недолго ИМХОromanF1 писал(а):подскажите компонент для написания программы Delphi с примером для приема данных с ком порта
Код: Выделить всё
hCom=CreateFile(pChar,GENERIC_READ|GENERIC_WRITE,0,0,OPEN_EXISTING,0, NULL);
if(hCom!=INVALID_HANDLE_VALUE) {
GetCommState(hCom, &dcb);
dcb.BaudRate = CBR_9600;
dcb.ByteSize = 8;
dcb.Parity = NOPARITY;
dcb.StopBits = ONESTOPBIT;
SetCommState(hCom, &dcb); //
cto.ReadTotalTimeoutConstant = 2100;
SetCommTimeouts(hCom, &cto); ... как видим настройка DCB - 4 строчки. Еще забыли COMMTIMEOUTS, но настройка тоже проста... При использовании WinApi, с СОМ-портом можно работать хоть из Excel...Engineer_Keen писал(а):Чтобы работать с ком портом необязательно использовать компоненты, достаточно стандартных функций типа CreateFile, WriteFile, ReadFile. Только с настройками нужно будет немного повозиться (одна DCB чего стоит). .....
- Engineer_Keen
- Друг Кота
- Сообщения: 3868
- Зарегистрирован: Пт янв 29, 2010 10:27:40
- Откуда: Москва
Re: RS 232 прием на ПК
ChipKiller писал(а):как видим настройка DCB - 4 строчки
Ну да, просто остальные остаются по-умолчанию, но я их на всякий случай тоже настраиваю
ChipKiller писал(а):При использовании WinApi, с СОМ-портом можно работать хоть из Excel...
Я ушел от компонентов после того, как при переходе с win98 на XP, они работать отказались, хотя наверно они просто устаревшие были...
Re: RS 232 прием на ПК
Для работы с COM портом, можно использовать DLL из архива, которую можно вызвать из любой среды программирования в т. ч. и дельфи.
Там же в архиве есть описание функций DLL и ее исходный текст.
Там же в архиве есть описание функций DLL и ее исходный текст.
- Вложения
-
- ComPort_Pb.rar
- (12.93 КБ) 457 скачиваний
- ChipKiller
- Сверлит текстолит когтями
- Сообщения: 1163
- Зарегистрирован: Ср янв 05, 2011 16:25:15
Re: RS 232 прием на ПК
... а компоненты зачем? все делается с помощью Declare из VBAEngineer_Keen писал(а):Я ушел от компонентов после того, как при переходе с win98 на XP, они работать отказались, хотя наверно они просто устаревшие были...
Код: Выделить всё
Declare Function CloseHandle Lib "kernel32" (ByVal Handle As Long) As Long
... ну так это и есть WinApi - использование встроенных функций из dll WindowsМурик писал(а):Для работы с COM портом, можно использовать DLL из архива, которую можно вызвать из любой среды программирования
Re: RS 232 прием на ПК
Работать проще чем напрямую с WinAPI.ChipKiller писал(а): ну так это и есть WinApi - использование встроенных функций из dll Windows
-
Мастер Ломастер
- Поставщик валерьянки для Кота
- Сообщения: 1995
- Зарегистрирован: Ср май 11, 2011 21:37:45
- Откуда: Цветочный город
- Контактная информация:
Re: RS 232 прием на ПК
во-первых, в паскале для этого вообще не надо особо мудрить:ChipKiller писал(а):... вот этого вполне хватит, чтобы читать/писать в СОМ-порт с помощью WinApi. На паскаль переписать недолго ИМХО
Код: Выделить всё
var ft : Text;
Assign(ft, 'COM1');
Reset(ft);
write(ft,'Hello, World!');
Close(ft);во-вторых, очень маловероятно, что этого хватит... ибо СОМ-порт очень медленное устройство, работа напрямую вот так, как показано мною или ChipKiller-ом, приведет к постоянному подвисанию программы в момент вывода в порт и тем более в момент чтения оттуда... а если вы решите прочесть строку, которая еще не пришла в порт - вы зависните наглухо секунд на 20 - пока не вылетит ошибка системы. поэтому надо работать с OVERLAPPED-режимом, т.е. с асинхронным, а это сразу потянет за собой отдельную Thread для постоянного контроля порта, либо создание CallBack-функций и т.п. гемор - это весьма трудоемко и требует неслабых познаний в WinApi. В делфи проще использовать готовые компоненты - comm32 один из них, снова рекомендую!
битва с дураками проиграна, победители торжествуют. слава победителям!
- ChipKiller
- Сверлит текстолит когтями
- Сообщения: 1163
- Зарегистрирован: Ср янв 05, 2011 16:25:15
Re: RS 232 прием на ПК
... возможно - все зависит от задачи. В любом случае все эти библиотеки есть не что иное, как надстройка над WinApi.Мурик писал(а):Работать проще чем напрямую с WinAPI
... а никто и не рассчитывает на "стремительную" работу Cом-порта (приведенный код из "живой" программы программатора - великолепно работает на 57,6Кбит/с ) для борьбы с зависаниями помогает cto - можно конечно работать с асинхронным выводом через отдельный поток .... а оно надо ??? ... тем более, что топикстартер об этом ничего не упоминал ....Мастер Ломастер писал(а):... ибо СОМ-порт очень медленное устройство, работа напрямую вот так, как показано мною или ChipKiller-ом, приведет к постоянному подвисанию программы в момент вывода в порт и тем более в момент чтения оттуда... а если вы решите прочесть строку, которая еще не пришла в порт - вы зависните наглухо секунд на 20 ...
Re: RS 232 прием на ПК
а если я использую переходных FT232R от ком порта микроконтроллера к usb то программу на компьютере нужно писать под usb или под виртуальный ком порт?
Re: RS 232 прием на ПК
Ага, под него.romanF1 писал(а):или под виртуальный ком порт
Re: RS 232 прием на ПК
спс )))