Форум: "Система";
Текущий архив: 2002.04.04;
Скачать: [xml.tar.bz2];
ВнизЧтение из COM - порта и установка таймаутов. Найти похожие ветки
← →
Red Alert (2002-01-05 12:49) [6]Не помню кто-то из форума слал!
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
var
dcb : TDcb; // структура ( виндусовская ) с установками СОМ портов
hCom : THandle; // handler СОМ2
fSuccess : boolean;
dwRead : DWORD;
CharArray : array[0..10] of char; // временный массив данных в оперативной памяти
fileOut : file of char; // файл в который будут писаться данные из СОМ2
i : integer;
begin
hCom := CreateFile(PChar("COM2"),GENERIC_READ,0,nil,OPEN_EXISTING,0,0); //получение указателя на СОМ2
try
fSuccess:= GetCommState(hCom, dcb); // Получение данных о текущих установках СОМ2 и заполнение
// структуры dcb
dcb.BaudRate := CBR_38400; // Установка новых параметров
dcb.ByteSize := 8; // для СОМ2, скорость 38400, 8-ми битный обмен,
dcb.Parity := NOPARITY; // нет контроля четности,
dcb.StopBits := ONESTOPBIT; // один стоповый бит
fSuccess := SetCommState(hCom, dcb); // Установка новых параметров для СОМ2
except
ShowMessage("Error");
end;
if fSuccess then ShowMessage("Success!")
else ShowMessage("Error of initiate ComPort...");
for i:=0 to 10 do // цикл чтения из СОМ2 ( к примеру ) одиннадцати байт
begin
ReadFile(hCom, CharArray[i], 1, dwRead, nil); // чтение одного байта из порта
end;
AssignFile(FileOut,"c:\out.txt");
Rewrite(FileOut);
for i:=0 to 10 do // цикл записи полученной информации в файл на диске
begin
Application.ProcessMessages;
Write(FileOut,CharArray[i]);
end;
CloseFile(FileOut);
CloseHandle(hCom);
end;
end.
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2002.04.04;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.006 c