//==============================================================================
// Diese Funktion schreibt über die Serielle Schnittstelle
//==============================================================================
function WriteSeri(Buffer: pchar; wlaenge: DWord):Integer;
var
BytesTransferred: DWord;
begin
WriteFile(Seri, Buffer^, wlaenge, BytesTransferred,
nil);
WriteSeri:=BytesTransferred;
end;
//==============================================================================
// Diese Funktion liest die Serielle Schnittstelle aus
//==============================================================================
function ReadSeri(Buffer: pchar; rlaenge: DWord): Integer;
var
BytesTransferred: DWord;
test : boolean;
lasterr : dWord;
begin
test := ReadFile(Seri, Buffer^, rlaenge, BytesTransferred,
nil);
ReadSeri:=BytesTransferred;
end;
//==============================================================================
// Diese Funktion öffnet die Serielle Schnittstelle
//==============================================================================
procedure OpenSeri;
var CommTimeOut : TCOMMTIMEOUTS;
Status : Boolean;
CommBuffer : Integer;
DCBdaten : TDCB;
begin
if Seri<>0
then exit;
Seri := CreateFile('
Com1', GENERIC_WRITE
or GENERIC_READ, 0,
nil, OPEN_EXISTING, 0, 0);
if Seri = INVALID_HANDLE_VALUE
then
begin
Form1.StatusBar1.Simpletext:='
Error opening COM';
Seri := 0;
exit;
end;
......
// Hier sind noch ein paar Einstellungen, aber die sind für den Programmablauf nicht wirklich wichtig
Form1.StatusBar1.Simpletext:= '
RS232 at COM1 ready!';
end;
//==============================================================================
// Testfunktion
//==============================================================================
procedure TForm1.Button2Click(Sender: TObject);
var buf :
array [0..12]
of Char;
ack :
array [0..12]
of Char;
i,a : Integer;
itest : integer;
ihelp : integer;
begin
OpenSeri;
// String zum Schreiben zusammenstellen
buf[0] := Chr(7);
buf[1] := Chr(0);
buf[2] := Chr(0);
buf[3] := Chr(0);
buf[4] := Chr(0);
buf[5] := Chr(0);
buf[6] := Chr(0);
buf[7] := Chr(0);
buf[8] := Chr(0);
buf[9] := Chr(0);
buf[10] := Chr(0);
buf[11] := Chr(0);
buf[12] := Chr(0);
itest := writeSeri(buf, 13);
form1.ListBox1.items.add('
Bytes transferred: ' + IntToStr(itest) + '
Seri: ' + IntToStr(SERI));
itest := readSeri(ack,13);
form1.ListBox1.items.add('
Bytes received: ' + IntToStr(itest) + '
Seri: ' + IntToStr(SERI));
if itest > 0
then
begin
.....
end;
end;