Einzelnen Beitrag anzeigen

hes

Registriert seit: 21. Apr 2024
Ort: Baden Württemberg
19 Beiträge
 
Delphi 12 Athens
 
#11

AW: Daten abholen bei TCPClient

  Alt 3. Jan 2025, 08:46
Hallo Schuby,

also wenn ich dich richtig verstehe sendest du mit Form1.TCPClient.IOHandler.Writeln('D' +#12); deinen Befehl damit dein ESP32 die Daten senden soll. Ich hab mal meine 22 Jahre alte Routine genommen wo ich in einer CNC-Maschine Daten abfrage. Das Gegenstück ist dort ein von mir erstelltes Delphi-Servermodul. Bei meinem Client hole ich es so ab:
Delphi-Quellcode:
var
  AStream: TMemoryStream;
  SimulationsPfad, ctdata, LInString: string;
begin

... hier müsstest du noch SimulationsPfad, ctdata mit deinem Zielpfad ersetzen


    if(IdTCPClient.Connected = FALSE) then IdTCPClient.Connect;
    try
      StatusBar.Panels.Items[0].Text := 'Werkzeugdaten online aus Maschine abfragen...';

      IdTCPClient.IOHandler.WriteLn('D' +#12); // Hier war mein Befehl
      AStream := TMemoryStream.Create;

      //OutputDebugString('Readstream...');
      IdTCPClient.IOHandler.ReadStream(AStream, -1, FALSE);
      //ShowMessage(IntToStr(AStream.Position));

      AStream.Position := 0;
      AStream.SaveToFile(SimulationsPfad + ctdata);
      OutputDebugString(pchar('Stream gelesen und gesichert in ' + SimulationsPfad + ctdata));

      FreeAndNil(AStream);
      LInString := IdTCPClient.IOHandler.ReadLn; // Kann sein das brauchst du nicht
    finally
      StatusBar.Panels.Items[0].Text := '';
      IdTCPClient.Disconnect;
    end;
Hab mal meinen Befehl mit deinem ersetzt. Statusbar etc. kannst, raus werfen vielleicht funktioniert es mit deinem ESP32.
Rainer

Geändert von hes ( 3. Jan 2025 um 08:54 Uhr)
  Mit Zitat antworten Zitat