PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fragen zu AVR-DOS und Tcp/Ip (Dateitransfer)



demmy
03.07.2016, 22:13
Hallo zusammen,

ich bin gerade dabei einen Datenlogger zu programmieren. Es werden zyklisch Messwert in eine Datei auf einer SD-Karte gespeichert.
Die SD-Karte beschreibe ich mittels AVR-DOS.
Dies funktioniert soweit auch alles.

Nun meine Fragen:

Gibt es eine zuverlässige Möglichkeit mittels AVR-DOS zu detektieren ob die SD Karte gezogen wurde bzw. das Sie nicht mehr gesteckt ist?
Der Kartenslot hat leider keinen Kontakt hierfür, den man abfragen könnte?

Mein Datenlogger verfügt auch über eine Netzwerkschnittstelle mittels W5100.
Ich plane aktuell, die Datei über das Netzwerk abrufbar zu machen. Sofern das überhaupt möglich ist?

Hat schon mal jemand eine Datei von einer SD-Karte über das Netzwerk verschickt? Bisher kann ich ganz simpel verschiedene Telnet-Befehle an
den Logger senden und mir die aktuellen Messwerte abholen.
Ich würde mir aber auch ganz gerne auch mal gelegentlich das gesamte Logfile downloaden ohne immer extra an den Logger laufen zu müssen und die SD-Karte zu ziehen.

Vielleicht habt ihr sowas ja schon mal realisiert und könnt mir ein wenig input geben?

Viele Grüße und danke schon mal für euere Hilfe.

demmy
06.07.2016, 20:10
Hat echt noch niemand sowas in die Richtung mal versucht?

Ceos
07.07.2016, 08:07
nicth mit AVR-DOS, ich habe sowohl das W5100 als auch SD KArten Bare Metal angesprochen, das waren aber alles nur "because i want to know if i can" Projekte.

Ich hab keinen Plan wie dein AVR-DOS den W5100 anspricht, aber am "Einfachsten" machst du es dir wohl, wenn du simpelstes HTML benutzt! Also auf eine ankommende Port 80 TCP Verbindung mit einem simplen HTML Header antwortest der dem Browser mitteilt, dass eine Binärdatei folgt und diese dann von der SD Karte lesen.

Oder wenn es Text ist, einfach den Inhalt als Text ausgeben.

Dritte Lösung, einen mini FTP server für dein AVR-DOS finden :)

Mxt
07.07.2016, 08:18
Hallo,

nur grob in der Richtung. Nichts selbstgebautes, nur mit Experimentierboards (NXP [früher Freescale] Freedom K64F oder NXP LPC4088 ) mit mbed als Software.

Die Logik zur Dateiübertagung über TCP habe ich mir aber selber geschrieben, so dass nur die eigenen Programme darauf zugreifen können. Ich weiß aber, dass es zumindest FTP-Clients für mbed gibt. Ein FTP-Server wäre schon eine Nummer größer. Eventuell hat eines der diversen OS, die es für die Cortex-M gibt, da was. Da kenne ich mich nicht aus.

Einen http-Server gibt es in mbed.

Eine Windows Freigabe (SMB) oder etwas Unix mässiges (NFS) halte ich auf einem Mikrocontroller dann doch für ein Abenteuer.

Ganz an allgemein kann man sicher nicht annehmen, dass dabei die Gegenseite darauf Rücksicht nehmen würde, dass auf dem AVR nur ein paar Kilobyte Speicher zur Verfügung stehen.

Ceos
07.07.2016, 08:40
@Mxt daher mein Vorschlag HTML zu nehmen, das ist dann in Stein gemeißelt XD

Mxt
07.07.2016, 08:48
@Mxt daher mein Vorschlag HTML zu nehmen, das ist dann in Stein gemeißelt XD

Ja. :p
An HTML habe ich erst gar nicht gedacht, als ich geschrieben habe. Erst als ich den Beitrag abgesendet habe und dein Beitrag da stand, fiel mir das ein.

Aber "DOS" und HTML sind bei mir nicht zwei Dinge, die mir gleichzeitig einfallen. :)

Ceos
07.07.2016, 08:54
1. sudo apt-get install lynx

2. lynx www.roboternetz.de/community (https://www.roboternetz.de/community)

3. ....

4. Profit!!!!

:D

So surfte man damals ohne Browser und GUI XD

Mxt
07.07.2016, 09:02
Ja, lynx kenne ich auch.

Aber unter richtigem DOS musste man erst mal per TCP ins Netz kommen. Ich erinnere mich noch an Windows 3.11 mit Trumpet Winsock ...

Ceos
07.07.2016, 11:08
der IP Stack ist im W5100 hardwired mit drin, aber du musst trotzdem hingehen und die einzelnen buffer lesen und schreiben um an die DAten zu kommen :)

der W5100 ist ein 8 Socket Peripheral sozusagen ;D

sorry nur 4 Sockets XD