![]() |
COM Schnittstelle
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:
GetMem(buffer,500);
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 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; |
Re: COM Schnittstelle
Guten Abend und willkommen in der Delphipraxis,
nun, die Platine wird wohl nicht mit dem Datensenden warten bis Du den Button gedrückt hast. Grüße Klaus |
Re: COM Schnittstelle
Hallo Klaus,
Platine antwortet automatisch, wenn bestimmte Befehle ankommen. Wenn die Antwort am Rechner ankommt, wird sie doch im Buffer gespeichert bis sie abgerufen wird. Dachte ich zumindenst??? |
Re: COM Schnittstelle
Hallo,
ja, da hast Du wohl recht, ich war da etwas vorschnell. Wie zeigt sich denn Dein Problem, sind die Daten unvollständig, wartet das Programm zu lange auf die Daten ... Grüße Klaus |
Re: COM Schnittstelle
Hallo Klaus,
glaube ehe nicht.Zum Test benutze ich das Programm Docklight, was sofort daten zurückschickt, wenn definiertes Protokoll ankommt. Habe auch an der HArdware probiert, kein Unterschied. Komisch ist, dass meine Software tut maschmal einpaar Stunden lang. Am nächsten Tag aber nicht mehr. Kann es sein, dass irgendwelche Programme im Hintergrung aktiviert sind oder nicht? Beim Debuggen bleibt die Software stehen beim "readfile". Gruß Chaot |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz