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

Курс видеоуроков КРЭКЕРСТВО + ПРОГРАММИРОВАНИЕ 2017
(актуальность: июнь 2017)
Свежие инструменты, новые видеоуроки!

  • 400+ видеоуроков
  • 800 инструментов
  • 100+ свежих книг и статей

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

БОЛЬШОЙ FAQ ПО DELPHI



Как прочитать из модема

Помимо двух настоящих извращений - хоккея на траве и балета на льду, существует и третье - диалап через ip-телефонию.

После предварительной настройки переменных, COM порт открывается как обычный файл. Так же пример показывает, как очищать буфер COM порта и читать из него.


 var
   PortSpec : array[0..255] of char;
   PortNo : Word;
   success : Boolean;
   error:integer;
 begin
   FillChar(PortSpec,Sizeof(PortSpec),#0);
   StrPCopy(PortSpec,'Com1:19200,n,8,1');
   PortSpec[3]:=Char(Ord(PortSpec[3])+Ord(PortNo));
 
   if not BuildCommDCB(PortSpec,Mode) then
   begin
     //какая-то ошибка...
     Exit;
   end;
 
   PortSpec[5]:=#0; { 'Com1:' }
 
   Mode.Flags:=EV_RXCHAR + EV_EVENT2; { $1001 }
 
   Com := CreateFile(PortSpec,GENERIC_READ or GENERIC_WRITE,
   0,             { comm устройство открывается с эксклюзивным доступом }
   nil,           { нет security битов }
   OPEN_EXISTING, { comm устройства должны использовать OPEN_EXISTING }
   0,             { not overlapped I/O }
   0              { hTemplate должен быть NULL для comm устройств }
   );
 
   if Com = INVALID_HANDLE_VALUE then
     Error := GetLastError;
   Success := GetCommState(Com,Mode);
 
   if not Success then // Обработчик ошибки.
   begin
   end;
 
   Mode.BaudRate := 19200;
   Mode.ByteSize := 8;
   Mode.Parity := NOPARITY;
   Mode.StopBits := ONESTOPBIT;//нужен был для перезаписи в NT
 
   Success := SetCommState(Com, Mode);
 
   if not Success then // Обработчик ошибки.
   begin
   end;
 end;
 

Переменная "com" типа dword.

Вы так же можете очистить буффер COM порта


 PurgeComm(Com, PURGE_RXCLEAR or PURGE_TXCLEAR);
 

И прочитать из него


 function ReadCh(var Ch: Byte): dword;
 var
   n: dword;
 begin
   Readfile(Com, ch, 1, result, nil);
 end;
 




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



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



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


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