Hier die Lösung eines "First World Problems". So langsam hatte ich kein Bock mehr mit USB Sticks rumzuwurschteln bei den Messgeräten und einer ging mir mal direkt kaputt -> 3h Oszi Screenshotten für die Tonne. Erst wollt ich alles Remote auslesen per SCPI aber dort haben nicht alle Messgeräte eine Screenshotfunktion implementiert (zB das Keithley DMM6500 nicht). USB Stick Screenshots gehen aber eigentlich immer. Also muss ein RasPi Zero 2W herhalten um einen USB Stick zu emulieren. Sobald eine Datei auf diesem Emulierten Stick gespeichert wird findet ein Upload per FTP oder SMB über WLAN statt. (Weitere Protokolle wie SFTP und SSHFS sind geplant) Die Konfiguration zum Upload (inkl. Logindaten) befindet sich in einer keepass Datenbankdatei auf dem emulierten USB Stick. Hier die Software: https://git.fritzler-avr.de/fritzler/raspiusbemuserver/-/releases Hier die Anleitung: https://git.fritzler-avr.de/fritzler/raspiusbemuserver/-/blob/master/README.md Was nicht geht sind Logdateien. Ich kann ja nicht wissen wann der USB Zugriff fertig ist, weil ein USB Stick ein Block Device ist und nichts von Dateisystemen weis. Daher erkenne ich mit einem kleinen C Programm und dem elm chan fatfs wann eine neue Datei im Image angelegt wurde und ab wann sich eine Checksumme nicht mehr ändert. Oder hat da wer ne Idee? Daher gehen nur Dateien die in einem Rutsch geschrieben werden, denn wenn sich die Checksumme 1s nicht mehr ändert wird der Upload angestoßen. -> Screenshots, Setups, Waveforms, etc.
Mw E. schrieb: > Oder hat da wer ne Idee? Typisch wird als ziemlich "letzte" Aktion der Directory-Eintrag einer Datei aktualisiert, also insbesondere deren aktuelle Länge. Allerdings liegt das, was als "letzte" Aktion zu betrachten ist, ziemlich im Ermessen der schreibenden Software und es kann gut sein, dass sie nach dieser Aktualisierung schonmal weiter in die Datei schreibt. Auch und gerade bei Log-Files wäre das sogar ganz typisch der Fall. D.h.: Für eine sinnvolle Implementierung deines Uploaders müsstest du einen "Snapshot" machen, wann immer ein Directory-Eintrag geändert wird. Und dann den Stand hochladen, der in diesem Snapshot steht.
Leider nicht, der Eintrag kam als erstes und auch die Länge stimmte. Das war der erste versuch immer diesen Eintrag zu pollen und wenn sich die Länge nicht mehr ändert den Upload anzustoßen. Daher passiert auch das was du in deinem nächsten Baschniott geschrieben hast. Bei FAT32 macht eben jeder was er will bei der Zugriffsreihenfolge. Für Snapshots müsst ich den Linuxkerneltreiber für USB MSC Device umschreiben. Sonst weis ich nicht an welchem LBA im Image geschrieben wird. Der Linuxkerneltreiber bekommt die Imagedatei mit MBR sowie FS und stellt den Zugriff über USB Bereit. Auf dieses Image greife ich dann per C Programm zu (nur lesend!). Das will ich wirklich erst tun wenns nicht anders geht. Bzw wenn ich Logfiles auch nutzen will. Bisher brauchte ich das nicht.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.