Delphi Faq
базы даных
графика и игры
интернет и сеть
компоненты и классы
мультимедиа
ос и железо
программа и интерфейс
рабочий стол
синтаксис
технологии
файловая система
 
 



на главную
Как прочитать из модема
После предварительной настройки переменных, 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;


Печать пластиковых карт изготовление пластиковых карт, продажа пластиковых карт.
Лагерь с лингвистикой английский мальта от Mrenglishtour.
Лагерь с лингвистикой английский мальта от Mrenglishtour.