-
-
Neuer Benutzer
Öfters hier
Ich komme einfach nicht weiter :(
Hallo, vieleicht kann mit einer helfen.
Ich habe mir nen eigenen Webserver gebastelt.
Benutze dieses IIM7010A Modul mit einem LCD Display und einer 1 GB SD.Karte.
Soweit funktioniert alles auch super.
Möchte nur gerne Datein hochladen können. Also habe ich ein Upload Formular gemacht das die Daten per POST an das IIM7010A Modul schickt. Der ATMEGA32 speicher diese dann auf die SD-Karte.
Das geht eigendlich sehr gut. Leider gibt es bei größeren Datein Probleme.
Mit "Bcontent = Socketstat(i , Sel_recv)" kann ich die verbleibenen Bytes anzeigen lassen und dann Byte für Byte auslesen.
Mir ist dann irgendwann aufgefallen das "Socketstat(i , Sel_recv)" nie über ca 1248 "Byte" kommt obwohl die Datei größer ist.
Hier mal der Code ohne das schreiben auf die SD-Karte:
If Shtml = "POST" Then
A = 1
Do
S = ""
Portb.1 = 1
Tempw = Tcpread(i , S )
Portb.1 = 0
Print S
Loop Until S = ""
Bcontent = Socketstat(i , Sel_recv)
Locate 1 , 1
Lcd Bcontent ; " "
Do
Tempw = Tcpread(i , Wsize , 1)
Print chr(Wsize)
Bcontent = Socketstat(i , Sel_recv)
Locate 2 , 1
Lcd Bcontent ; " "
Loop Until Bcontent = 0
Shtml = ""
S = "Daten erhalten !"
End If
Ich verstehe das nicht. Wie bekomme ich den Rest der Daten ausgelesen ?
-
Erfahrener Benutzer
Robotik Visionär
Ich vermute einmal das die Variable, in dem du die Datei speicherst flasch ist.
-
Neuer Benutzer
Öfters hier
...
--------------------------------------------------------------------------------
Ja, habe ich zuerst auch gedacht. Oder das die Variabel überläuft. Aber "Bcontent" ist ist auf Long.
Wenn ich die Daten dann mit dem Hexeditor vergleiche dann sind die Daten auf der SD Karte einfach abgeschnitten.
Habe auch einfach mal alles per UART rausgeschnissen und die dann mit der originalen Datei verglichen. Ist das gleiche Problem.
Hmmm.....
aber danke
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen