Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС
выпущен 4 ноября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

БОЛЬШОЙ FAQ ПО DELPHI



Компонент для последовательного устройства (TRS232)

Просыпается программист с большого бодуна, поворачивается, а рядом какая-то девушка лежит.
- Ooрs, обнаружено новое устройство...

Компонент, который представлен здесь, выполняет функции синхронного чтения и записи в последовательный интерфейс RS232.

В цикле выполняется Application.ProcessMessages, чтобы все сообщения от основной программы обрабатывались.

Ниже приведён метод ReadString из компонента TRS323:


 function TRS232.ReadString(var aResStr: string; aCount: word ): boolean;
 var
   nRead: dword;
   Buffer: string;
   Actual, Before: TDateTime;
   TimeOutMin, TimeOutSec, lCount: word;
 begin
   Result := false;
   if not Connected then
     if not Connect then
       raise Exception.CreateHelp('RS232.ReadString:' +
       ' Connect not possible !', 101);
   aResStr := '';
   TimeOutMin:=TimeOut div 60;
   TimeOutSec:=TimeOut mod 60;
   if (not Connected) or (aCount <= 0) then
     EXIT;
   nRead := 0; lCount := 0;
   Before := Time;
   while lCount < ACOUNT do
   begin
     Application.ProcessMessages;
     SetLength(Buffer,1);
     if ReadFile( FComPortHandle, PChar(Buffer)^, 1, nRead, nil) then
     begin
       if nRead > 0 then
       begin
         aResStr := aResStr + Buffer;
         inc(lCount);
       end;
       Actual := Time;
       if Actual-Before>EncodeTime(0, TimeOutMin, TimeOutSec, 0) then
         raise Exception.CreateHelp('RS232.ReadString: TimeOut !', 103);
     end
     else
     begin
       raise Exception.CreateHelp('RS232.ReadString: Read not possible !', 104);
     end;
   end;
   Result:=true;
 end;
 




<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ



Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS