FTPClient_Generic returncodes?

Hallo,

zu meiner Frage habe ich hier bereits einiges gefunden. So wie ich es verstanden habe, haben die FTP-Funktionen keinen Returncode. Oder ist das falsch interpretiert bzw. verstanden?

Mein Problem ist, dass ich nach einigen Stunden vom FTP (Webserver) rausfliege. Und das nicht merke.

Mein Programm öffnet im Setup WLAN und dann die FTP-Verbindung, schreibt in der Loop dann per Append eine Log-Zeile an den bestehenden File. Das soll endlos laufen. Die Loop läuft auch und schreibt seriell zu Testzwecken weiter. Aber die Fortschreibung des Logs auf dem FTP-Server hört irgendwann nach Stunden einfach auf. Die FTP-Verbindung scheint dann abgestürzt zu sein. Nach Reset des ESP geht alles wieder.

Jetzt möchte ich ganz einfach checken, ob so eine Übertragung erfolgreich war. Und wenn nicht den ganzen Vorgang einfach neu starten. Da ist nichts Zeitkritisches und es macht nichts, wenn im Log mal ein paar Zeilen fehlen. Das sind nur Langzeit- Temperaturmessungen. Also kein besonders Fehlerkorrigieren nötig.

Ich möchte einfach irgendwie erkennen, ob das FTP noch geht. Im Errorfall > Neustart.

"Normale" FTP Clients (filezilla) merken das und machen bei Bedarf eine neue Connection.
Erkennen auch, ob eine Dateiübertragung erfolgreich war. Da wird sicher ein Status rückgemeldet.
Dass generell das Überschreiben einer bereits vorhandenen Datei durch eine neue größere Version funktioniert, hast du ja offensichtlich bereits in den Griff gekriegt.

Du hast leider meine Frage absolut nicht verstanden. Es geht nicht um irgendeinen externen FTP-Clienten wie Filezilla. Es geht um den in der Überschrift eindeutig spezifizierten "FTPClient_Generic".

Auch überschreibe ich keine Files mit neuen Files, sondern ich hänge per Append einzelne Zeilen dran. Was der Server intern macht, interessiert mich hier nicht. Das Appenden einzelner Zeilen an bestehende (Log-)Dateien kann mein professioneller Webserver jahrelang am Stück. Da muss ich mir keine Gedanken machen. Nur bricht hier beim Betrieb mit dem ESP über mein Fritzbox-WLan ab und zu mal die Verbindung weg. Sehr selten, aber ab und zu halt eben.

Warum fragst Du immer noch hier, wenn wir nach Deiner Meinung in jedem Deiner Threads zu blöd sind, Deine Fragen zu verstehen?

Mir zumindest geht Dein arrogantes Gehabe auf den Senkel.

Gruß Tommy

1 Like

Tommy, da hast du jetzt aber eine Lawine losgetreten.
Aber wo du Recht hast, hast du Recht.

Der einzige hier, der sich mal wieder daneben benimmt, bist DU! Ich habe eine sachliche Frage mit ausreichend Infos ganz höflich gestellt. Daran gibt es nichts zu kritisieren!

Geantwortet hat jemand, nennen wir es vorlaut, der diese einfache Frage in keiner Weise verstanden hat und mir somit völlig unnötig irgendwas erzählt, was ich nicht wissen wollte. Und garantiert auch kein anderer!

Das habe ich ihm in noch höflichem Ton gesagt. Jetzt kommst DU und maulst mich hier grundlos mit dummen Behauptungen und Unterstellungen von wegen arrogantem Gelaber und "ihr zu blöde" etc. an.

Lass das bitte in Zukunft! Das stört nur den Forenfrieden zum Zwecke Deiner Genugtuung oder Befriedigung. Oder warum auch immer Du das brauchst

Und ignoriere mich einfach, wenn Dir meine Nase nicht passt! Du musst nicht antworten und stören.

Wo hat er recht? Das war nur eine dumme erfundene Unterstellung. Und sonst nichts von Wert. Genauso wie deine Antwort darauf. Ihr braucht das wohl um euch gut zu fühlen?

Da du fragst.

Hier :

Ihr habt wohl irgendwelche Komplexe und vertragt es nicht, wenn euch jemand ein sauber formuliertes und sachliches korrektes Kontra gibt. Aber mir sowas von egal.

Bitte tut uns allen den Gefallen und antwortet mir in Zukunft auf keine weiteren Fragen zu irgendwelchen Problemen. Solltest ihr es dennoch tun, werde ich sang- und klanglos eure Sachen ignorieren. Ich bin es leid, mich mit solchen Leuten sinnlos rumzustreiten.

EOD!

Da fühlt sich aber einer getroffen.

Gruß Tommy

Genau, das passiert immer, wenn man denen den Spiegel vorhält.
Genau so war es auch im vorherigen Thread.

Leider kam bis jetzt noch kein hilfreicher Tipp. Falls da noch jemand etwas Brauchbares zur Lösung einfällt, wie ich den Status so einer FTP-Schreibaktion rausbekommen kann, würde ich mich freuen.

Hallo,
ich würde die Verbindung für jeden Schreibvorgang neu öffnen und danach wieder schließen
bei mir sieht das z.B so aus.

void writeftp() {
  String buf = "";
  Serial.println("öffne FTP Verbindung");
  ftp.OpenConnection();
  //Change directory
  ftp.ChangeWorkDir(dirName);
  ftp.InitFile(COMMAND_XFER_TYPE_ASCII);
  ftp.AppendFile(fileName);
  
  buf += counter;   // Test Variable zu einer zeile zusammen bauen
  buf += ";";       // Trennzeichen verwenden
  buf += zeit;
  buf +="\n";
  
  Serial.println(buf);
  ftp.Write(buf.c_str());

  ftp.CloseFile();
  Serial.println("Schliesse FTP Verbindung");

  ftp.CloseConnection();

}

die lib bietet zusätzlich die Methode isConnected
aus der Lib
bool FTPClient_Generic::isConnected()

...skip... Danke - das habe ich auch so ähnlich

Außer dem "connected" habe ich bisher nichts gefunden. Und das "connected" frage ich jedes Mal ab. Aber damit bekomme ich ja nicht raus, ob das folgende Schreiben erfolgreich war.

Danke trotzdem

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.