Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Работа с внешним девайсом через COM порт [D6, Win95/98, WinXP]


SDW_syscoder ©   (2003-09-03 11:05:00) 

Требуется организовать работу с внешним устройством через порт RS232(COM).
Алгоритм будет заключаться в следующем: я должен ожидать событие, т.е. приход кода "0A", после чего в ответ я посылаю "11" пока не придёт код "3A" и затем уже идёт считывание всех данных с порта. Короче HELP ME! разобраться с событиями и потоком в котором будет вертеться процедура ожидания события.
Прогу пишу на WinAPI в Delphi 6. Thanks People!!! Покеда...


INTAARI   (2003-09-03 15:27:00) [1]

Воспользуйся компонентой TurboPower Async Professional.
выглядет это так:
//////прочитать данные с порта////////////////////
procedure Tform1.ComPortTriggerAvail(CP: TObject; Count: Word);
var
I : Word;
s: string;
begin
s:="";
for I := 1 to Count do
S := S + ComPort.GetChar;
//////посылка строки в порт
Сomport.PutString("11");


ZHK   (2003-09-03 11:30:00) [2]

Думаю, что задачу за тебя никто писать не будет. А посоветовать можно. Посмотри описание API. SetCommState, GetCommState и похожие. В API есть структура TDCB, с помощью которой можно получить доступ к настройкам порта. Поле TDCB.Flags тоже полезно. А простейший способ ждать событие, если других не знаешь:

while <нет события> do
Application.ProcessMessages.


Все будет выполняться и событие поймаешь. Пробуй.


Verg   (2003-09-03 11:09:00) [3]

Да уж, чем дальше в лес, тем толше партизаны....


Наверх

Титульная страница Поиск, карта сайта Написать письмо