juergen01:
wuerde das mit GtkTerm gehen
Mal kurz nachgeschaut bei den Features unter Infrastructure/Fedorahosted-retirement - Fedora Project Wiki und sehe da:
Possible to send a file (only RAW data, no protocol)
Das bedeutet: GtkTerm kann beherrscht KEINE gesicherte Dateiübertragung mit irgendeinem Datei-Übertragungsprotokoll.
Mit GtkTerm kannst Du allenfalls folgendes machen:
-
In Deinem GtkTerm öffnest Du eine "Logdatei" (Funktion "Logging to File" oder ähnlich) und gibst den Log-Dateinamen an.
-
Du gibst im GtkTerm einen Befehl an den Arduino ein, um die Datei zu erhalten, z.B.
GET filename.txt
-
Auf Deinem Arduino läuft ein Sketch, der solche Befehle auswertet und daraufhin über die serielle Schnittstelle die Datei "filename.txt" sendet, ein Byte nach dem anderen
-
Wenn keine Bytes mehr vom Arduino kommen, beendest Du das Logging in Datei
Zum Empfang weiterer Dateien den Vorgang wiederholen.
Falls bei der Übertragung durch Störimpulse Fehler auftreten, ist die auf diese Art empfangene Datei dann nicht identisch mit der gesendeten Datei, Übertragungsfehler werden nicht erkannt.
Wenn es komfortabler werden soll, muss das Terminalprogramm als Feature "Dateiübertragung mit Protokoll" anbieten, und zwar mit mindestens einem der Protokolle:
- XMODEM
- YMODEM
- ZMODEM
Und zugleich muss das Protokoll XMODEM, YMODEM oder ZMODEM im Arduino implementiert werden.
ZMODEM kommt Deinem Wunsch nach Automatisierung des Dateiempfangs wahrscheinlich am nächsten, denn es gibt Terminalprogramme, die ein "Auto ZMODEM" Feature unterstützen, so dass Downloads per ZMODEM ohne weitere Benutzereingriffe möglich sind.
XMODEM wäre aber am einfachsten zu implementieren und benötigt auch am wenigstens RAM-Speicher, da dabei die gesendeten Datenblöcke immer nur 128 Bytes groß sind. Allerdings überträgt das XMODEM-Protokoll noch nicht einmal den Namen einer Datei, sondern nur dessen Inhalt.
Oder Du denkst Dir ein eigenes Übertragungsprotokoll aus statt eines der üblichen Standardprotokolle zu verwenden. Allerdings mußt Du dann auch die PC-seitige Empfangssoftware selbst programmieren und kannst dafür kein Standard-Terminalprogramm verwenden