PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ich komme einfach nicht weiter :(



Sven1277
13.08.2009, 13:01
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 ?

021aet04
14.08.2009, 17:54
Ich vermute einmal das die Variable, in dem du die Datei speicherst flasch ist.

Sven1277
15.08.2009, 00:32
--------------------------------------------------------------------------------
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