Thema: Delphi COM Schnittstelle

Einzelnen Beitrag anzeigen

chaot

Registriert seit: 17. Jun 2008
3 Beiträge
 
#1

COM Schnittstelle

  Alt 17. Jul 2008, 19:39
Hallo Leute,
bin Anfänger und betreibe Delphi progrmmieren als mein Hobby, deswegen bitte nicht lachen, wenn ich blöde Frage stelle.
ich will über Rs232 kommunikation mit einer externen Platine herstellen. Befehle schreiben funktioniert einwandfrei aber lesen klappt nur abundzu.
Kann mir jemand sagen was mach ich falsch?
Ich benutze Vista und turbo Delphi 6.

Danke im Voraus!


Port öffnen realisiere ich folgendermassen:

Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
begin
  hComm:=createfile('COM4',GENERIC_READ or GENERIC_WRITE,0,
   nil,OPEN_EXISTING, 0, 0);

 b_fsuccess := GetcommState(hComm,dcb);
 dcb.BaudRate := baudrate;
 Dcb.ByteSize := byte_;
 Dcb.Parity := Parity;
 Dcb.StopBits := StopBits;
// dcb.flags :=$1011;
with DCB do begin
  baudrate :=19200;
  ByteSize :=8;
  Parity :=0;
  StopBits := 0;

Befehle schreiben mit:

procedure TForm2.Button2Click(Sender: TObject);
begin
Zeichen [0] := 112;
Zeichen [1] := 119;
Zeichen [2] := 013;
//Zeichen [3] := 10;
state:= writefile(Hcomm,Zeichen,3, writtenBytes ,nil);
if state then
begin
      Ans1 := '';
  for i := 0 to (writtenBytes - 1) do
  begin
  An1 := Char (zeichen[i]);
  Ans1 := Ans1 + An1;
  end;

      edit2.Text := ans1;
end;



Daten empfangen:

procedure TForm2.Button3Click(Sender: TObject);
begin
GetMem(buffer,500);
MaxLen := Sizeof(buffer^);

success := readfile (Hcomm,buffer^,300,LEN,nil);

if success then
begin
Ans := '';
for i := 0 to (len - 1) do
begin
fra := Char(empfangen[i]);
ANs := ANs + fra;
edit1.Text := ans;
end;
end;
  Mit Zitat antworten Zitat