программирование COM порта для C++ Builder / Delphi

User avatar
KOT MATPOCKUH
Уже с Приветом
Posts: 2741
Joined: 17 Jul 2000 09:01
Location: Одесса -> Лос-Анджелес -> Делавер -> Мэриленд -> Вирджиния. Хочу снова в Одессу.

программирование COM порта для C++ Builder / Delphi

Post by KOT MATPOCKUH »

Господа, не знает ли кто где можно скачать компоненты (или как можно обойтись без них), чтобы заставить C++ Builder (или Delphi) работать с COM портом?

Я скачал несколько подобных компонентов, но ни один не удалось реально заставить работать

Особенно интересует мнение тех, у кого есть действительно работающие программы
А я все чаще замечаю, что меня как будто кто-то подменил...
User avatar
IA72
Уже с Приветом
Posts: 956
Joined: 04 Mar 2002 10:01

Re: программирование COM порта для C++ Builder / Delphi

Post by IA72 »

KOT MATPOCKUH wrote:Господа, не знает ли кто где можно скачать компоненты (или как можно обойтись без них), чтобы заставить C++ Builder (или Delphi) работать с COM портом?

Я скачал несколько подобных компонентов, но ни один не удалось реально заставить работать

Особенно интересует мнение тех, у кого есть действительно работающие программы


Берешь фриварный компонент с исходниками, к примеру ComPort непомню-кого и затачиваешь напильником. Я так когда-то и сделал, когда с кардридерами да сканерами баркодов работал. Не бог весть какая сложность,
день работы максимум. Примеров и документации море.
AA
Уже с Приветом
Posts: 3040
Joined: 13 Sep 2000 09:01
Location: Обнинск

Post by AA »

А в чем проблема? Можно обойтись Win32 API
Открыть порт:

Code: Select all

HANDLE   hF=CreateFile(cPort, GENERIC_READ | GENERIC_WRITE,
                0,
                NULL,
                OPEN_EXISTING, /* comm devices must use OPEN_EXISTING */
                0,   
                NULL  );


Установить скорость обмена, паритет, количество бит и тд:

Code: Select all

   DCB dcb;

   dcb.DCBlength=sizeof(DCB);
   dcb.BaudRate=9600;
   dcb.fBinary=1;
   dcb.fParity=0;
   dcb.fOutxCtsFlow=FALSE;
   dcb.fOutxDsrFlow=FALSE;
   dcb.fDtrControl=DTR_CONTROL_DISABLE;
   dcb.fDsrSensitivity=FALSE;
   dcb.fOutX=FALSE;
   dcb.fInX=FALSE;
   dcb.fErrorChar=FALSE;
   dcb.fRtsControl=RTS_CONTROL_DISABLE;
   dcb.fAbortOnError=TRUE;
   dcb.ByteSize=8;
   dcb.Parity=NOPARITY;
   dcb.StopBits=TWOSTOPBITS;
   dcb.XonChar=0;
   dcb.XoffChar=0;
   dcb.ErrorChar=0;
   dcb.EofChar=0;
   dcb.EvtChar=0;


   SetCommState(hF,&dcb);


Дальше можно использовать обычные функции ReadFile WriteFile, при ошибке вызывать функцию ClearCommError.
Regal
Posts: 14
Joined: 14 Aug 2003 21:00
Location: BYE US

Post by Regal »

Может Turbo Power Async Professional подойдет?
http://sourceforge.net/projects/tpapro/

Удачи.
User avatar
Vor
Уже с Приветом
Posts: 2638
Joined: 17 Sep 2002 08:29
Location: Riga, Latvia

Post by Vor »

Regal wrote:Может Turbo Power Async Professional подойдет?
http://sourceforge.net/projects/tpapro/

Удачи.

Да, TurboPower Async Pro - это лучшее что было когда-либо создано. А теперь еще и OpenSource.
А я даже и не знал, что TurboPower сдохли. :pain1: Видать действительно настал конец эпохи Борланда. :umnik1: :(
Но и молодцы мужики (я имею ввиду TurboPower). Красиво ушли. И дело свое людям оставили. :D
Думаю, не ошибусь, если больше ничего не скажу.
User avatar
KOT MATPOCKUH
Уже с Приветом
Posts: 2741
Joined: 17 Jul 2000 09:01
Location: Одесса -> Лос-Анджелес -> Делавер -> Мэриленд -> Вирджиния. Хочу снова в Одессу.

Re: программирование COM порта для C++ Builder / Delphi

Post by KOT MATPOCKUH »

IA72 wrote: Берешь фриварный компонент с исходниками, к примеру ComPort непомню-кого и затачиваешь напильником. Я так когда-то и сделал, когда с кардридерами да сканерами баркодов работал. Не бог весть какая сложность,
день работы максимум. Примеров и документации море.


ComPort пробовал - не пошел. Пытаюсь обратиться к какому-то свойству компонента (хотя бы просто прочесть его) - и получается exception, что-то не туда в памяти пишется. Может потому что у меня хитрая комбинация старого Билдера 3.0 и Windows XP?

И можно ссылочку на примеры плз?
А я все чаще замечаю, что меня как будто кто-то подменил...
User avatar
KOT MATPOCKUH
Уже с Приветом
Posts: 2741
Joined: 17 Jul 2000 09:01
Location: Одесса -> Лос-Анджелес -> Делавер -> Мэриленд -> Вирджиния. Хочу снова в Одессу.

Post by KOT MATPOCKUH »

Regal wrote:Может Turbo Power Async Professional подойдет?
http://sourceforge.net/projects/tpapro/

Удачи.


спасибо, попробую
А я все чаще замечаю, что меня как будто кто-то подменил...

Return to “Вопросы и новости IT”