Ich moechte gerne 5 Textdateien von Arduino-SD Serial zum PC uebertragen
Meine Frage nun suche Ich die moeglichkeit sie auf dem PC zu speichern
Kennt Ihr ein Terminalprog. das Ich Befehle an den Arduino sendet der Mir dann eine
Datei uebertraegt und dann mit Dateinamen auf den Pc Speichert
gibt es dafuer eine Macro-Sprache Beispiele
Die Karte nimm Ich jeden Tag raus Steck sie dann
in den Pc kopiere 5 Dateien nenne die Dateien um
stecke die Karte wieder in den Arduino
Dann ist der Arduino noch in ein Gehaeuse eingebaut Ich komme von aussen nicht
an die Karte.
Ich moechte gern im Terminalprogramm einen Befehl eingeben oder mehrere
das er mir die 5 Dateien uebertraegt und in 5 Dateien auf dem Pc speichert
wuerde das mit GtkTerm gehen
Ich Danke dir schon mal
Hallo Thee
kann mit "Processing" 5 Dateien Uebertragen und dann auf dem Pc abspeichern
Du kannst nicht die Dateien direkt übertragen, wie du in Windows eine Datei kopierst.
Du musst auf dem Arduino eine Datei öffnen. Dann liest du sie aus und überträgst die einzelnen Bytes. Auf dem PC wird dann eine neue Datei angelegt (oder eine alte überschrieben, das ist in etwa das gleiche je nach verwendeten Optionen) und die eingelesenen Daten in die Datei geschrieben.
Da Serial recht langsam ist, dauert das entsprechend.
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
Deine Antworten sind wie immer sehr informativ
Zmodem erinnert Mich an die 300-Baud Zeiten
werde es mit einen Terminalprg. machen
habe Hterm gefunden ist ja wie eine Nullmodem verbindung
auch ohne Zmodem keine Fehler bei der Uebertragung
werde es dann so erst eimal machen
Vieleicht im naechsten Winter etwas mit Virtualbasic machen
Jetzt kommt das Haus und der Garten
jurs Ich habe dir sehr zu Danken und ach allen anderen