AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Daten abholen bei TCPClient
Thema durchsuchen
Ansicht
Themen-Optionen

Daten abholen bei TCPClient

Ein Thema von Schuby · begonnen am 2. Jan 2025 · letzter Beitrag vom 6. Jan 2025
Antwort Antwort
Benutzerbild von gubbe
gubbe

Registriert seit: 8. Okt 2005
Ort: Schleswig-Holstein
172 Beiträge
 
Delphi 12 Athens
 
#1

AW: Daten abholen bei TCPClient

  Alt 3. Jan 2025, 09:42
Das war ja noch so eine unklare Geschichte: Wann ist die Übertragung beendet? Schließt die Gegenstelle die Verbindung, wenn alles übertragen wurde? Oder sendet sie ein bestimmtes Zeichen?

Wird denn der Thread beendet, wenn die Übertragung abgeschlossen ist? Du könntest dann entweder nach der Schleife im Thread mit Synchronize die Funktion aufrufen (Proc_Fat16_Dir_anzeigen), um die Daten in der Listbox auszugeben oder Du verwendest das OnTerminate-Ereignis des Threads, das Dich informiert, wenn der Thread beendet wurde.

Wird der Thread nicht beendet und wartet ewig auf weitere Daten des ESP32, müsstest Du eine Abbruchbedingung haben. Das müsste ja aus der Dokumentation hervorgehen. Wird evtl. auch ein Zeichen #12 gesendet, wie Du es beim Senden von Daten verwendest?
Dann könntest Du evtl. mit ReadLn(#12) arbeiten, das dann in einem Rutsch die Daten bis zu diesem Zeichen zurückgibt. Oder mit WaitFor(#12) auf das Zeichen warten und dann den Buffer auslesen.
  Mit Zitat antworten Zitat
Schuby

Registriert seit: 25. Dez 2018
119 Beiträge
 
#2

AW: Daten abholen bei TCPClient

  Alt 3. Jan 2025, 11:32
Es ist geschafft.! So gehts und ich bin zufrieden.
ok ok das ok1 mit LF könnte ich noch anders machen.
Na mal sehen


Delphi-Quellcode:
procedure TMyThread.Execute;
var i : integer;
Begin
  while bool = true do
  begin
    if Form1.TCPClient.Connected = true then
    begin
      if not Form1.TCPClient.IOHandler.InputBufferIsEmpty then
      begin
        rec_str:= Form1.TCPClient.IOHandler.ReadLn();
        // rec_str:= Form1.TCPClient.IOHandler.InputBufferAsString;
        if rec_str = 'ok1then
        begin
          Form1.Proc_Fat16_Dir_anzeigen;
          rec_str:= '';
        end;
      Synchronize(
          procedure
          begin
            Dir_List_str:= Dir_List_str +rec_str;
            Form1.Memo1.Lines.Add(rec_str);
          end);
      end;
    end;
  end;
End;
Ich Danke allen das ihr einen alten Mann (fast 70zig) geholfen habt.



mfg
  Mit Zitat antworten Zitat
Benutzerbild von gubbe
gubbe

Registriert seit: 8. Okt 2005
Ort: Schleswig-Holstein
172 Beiträge
 
Delphi 12 Athens
 
#3

AW: Daten abholen bei TCPClient

  Alt 3. Jan 2025, 12:53
Prima, dass es jetzt klappt.

Eine kleine Anmerkung noch: Das "Form1.Proc_Fat16_Dir_anzeigen;" müsste auch in ein Synchronize eingeschlossen werden, da vom Thread aus auf Komponenten der Benutzeroberfläche zugegriffen wird.

Wo kommt denn das "Ok1" jetzt her? Schreibst Du auch das Programm auf der Gegenstelle, dem ESP32, selbst?
  Mit Zitat antworten Zitat
hes

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

AW: Daten abholen bei TCPClient

  Alt 3. Jan 2025, 13:09
Ja das würde mich auch interessieren mit dem ok1, aber auch diesem ESP32 kannte ich nicht und scheint ein interessantes Teil zu sein vor allem recht günstig, jetzt braucht man nur noch ein paar Ideen wo man es einsetzt.
Rainer
  Mit Zitat antworten Zitat
Schuby

Registriert seit: 25. Dez 2018
119 Beiträge
 
#5

AW: Daten abholen bei TCPClient

  Alt 3. Jan 2025, 14:36
Hallo zusammen, ja den ESP32 Programmiere ich selber mit C/C++ *wüürrg*
Dazu habe ich Visual Studio Code Installiert (free), in VS dann PlatformIO
Es gibt viele Youtube Videos wie man das macht.
Der ESP32 kann 240Mhz TFT Display / microSD / DHD22 angeschlossen
Soll eine Steuerung für meinen Reifeschrank für Salami geben



Ich hoffe so ist es richtig weil damit habe ich keine Probleme.
Delphi-Quellcode:
procedure TMyThread.Execute;
var i : integer;
Begin
  while bool = true do
  begin
    if Form1.TCPClient.Connected = true then
    begin
      if not Form1.TCPClient.IOHandler.InputBufferIsEmpty then
      begin
        rec_str:= Form1.TCPClient.IOHandler.ReadLn();

      Synchronize(
          Procedure
          Begin
            if rec_str = 'ok1then
            begin
              Form1.Proc_Fat16_Dir_anzeigen;
              rec_str:= '';
            end;

            Dir_List_str:= Dir_List_str +rec_str;
            Form1.Memo1.Lines.Add(rec_str);
          end);
      end;
    end;
  end;
End;



mfg
  Mit Zitat antworten Zitat
Benutzerbild von gubbe
gubbe

Registriert seit: 8. Okt 2005
Ort: Schleswig-Holstein
172 Beiträge
 
Delphi 12 Athens
 
#6

AW: Daten abholen bei TCPClient

  Alt 5. Jan 2025, 15:42
Jetzt ergibt auch auch der Screenshot mit dem Dateinamen "Ahleworscht.txt" einen Sinn. Und ich hielt es für einen beliebigen Testdateinamen

Dann weiterhin viel Erfolg beim Basteln und dem Reifen der Worscht. Da zeigt sich doch wieder, wie vielseitig Delphi ist.
Muss mich momentan auch oft mit C++ herumschlagen und weiß seitdem Delphi besonders zu schätzen...
  Mit Zitat antworten Zitat
Schuby

Registriert seit: 25. Dez 2018
119 Beiträge
 
#7

AW: Daten abholen bei TCPClient

  Alt 5. Jan 2025, 16:57
Hallo @gubbe
ja die Ahle Rote Worscht kommt aus Nord Hessen.

Also der ESP32 bringt mich noch um, habe den SD Driver Installiert,
aber bekomme nur ab und zu Info ListDir.
Im ESP32 habe ich soweit alles hinbekommen.

1. Datum Zeit
2. DHT22
3. TFT ILI9341
4. micro SD funzt nur zum teil

Ich glaube ich lasse es mit dem ESP32
und C/C++ und haue mir einen AtXmega drauf und Programmiere den unter Pascal.
Pascal Programmiere ich schon seit Jahren.

Und der ESP wird nur das WLAN durch schleifen zum AtXmega.


mfg
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.252 Beiträge
 
Delphi 12 Athens
 
#8

AW: Daten abholen bei TCPClient

  Alt 6. Jan 2025, 06:20
Dazu habe ich Visual Studio Code Installiert (free), in VS dann PlatformIO
Das nutze ich auch so.
Allerdings habe ich auch parallel die ArduinoIDE installiert, weil die doch mehr Beispiele und diese übersichtlicher sortiert hat, das fehlt mir ein bischen in PlattformIO.
Den Code kann man dann in PlattformIO in der Regel 1:1 übernehmen und damit weiterarbeiten.
  Mit Zitat antworten Zitat
Schuby

Registriert seit: 25. Dez 2018
119 Beiträge
 
#9

AW: Daten abholen bei TCPClient

  Alt 6. Jan 2025, 09:09
@hes

Das mache ich auch morgen, ich fahre zu dem großen MM
und hole mir eine neue micro sd card.
Ich habe hier min 4 stück, (sehr alte) aber nur eine
kann ich ab und zu lesen.
Im mom noch fliegender aufbau bevor ich die Platine bestelle.
Wichtig ist auch die leitungen kurz zu halten und 100nf und 1uf
Kondensator direkt vor dem Reader einlöten.
Aber ich bekomme Probleme. Und ich verstehe es nicht


@Rollo62
So mache ich das auch.


mfg
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:29 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