Hey,
bin ja gerade dabei einen E-Mail Server zu schreiben. Ich bin gerade beim SMTP und soweit funktioniert auch alles.
Nun wollte ich mal die Geschwindigkeit messen und habe nen Anhang von 100kb mitgeschickt.
Somit kam ich auf ca. 4,5kb/s und finde das schon sehr langsam
while (aa !=5){
while (client.available() < 1){
}
zeichen=client.read();
...
}
}
Ich habe als Test das client.read(); ohne eine weitere große Bremse in der Scheife gemacht.
Also zeichen wird erstmal nicht bearbeitet oder so.
Das Problem kenne ich auch von Bascom (AVR Basic) und habe da die möglichkeit z.b. client.read(512);
zu machen. Also nicht Byte für Byte, sondern gleich 512 Byte vom Ethernet zu laden.
Habs auf ca. 7kb/s geschafft. Ich denke das ich das noch etwas optimieren kann. Aber ich muss mal sehen wie
ich den Buffer vom Ethernetshild voll ausreizen kann.
uint8_t buff[1536];
if (client.available() > 1536){
client.read(buff,1536);
myFile.write(buff,1536);
}
else
{
byte für byte
uint8_t kannte ich nicht....
Wenn ich den Buffer auf 2 oder 3kb bekomme, wird es bestimmt etwas schneller
Aber 7bk/s reicht eigendlich aus. Die meissten E-Mails sind nicht mehr als 70kb groß.
Und wenn mal eine 2MB ist, dann dauert es halt ein wenig. Aber soweit finktioniert's
Ich mach das mit dem Arduino Mega 2560. Geplant ist später dann noch ein 3,2" TFT mit drann zu machen.
Im Moment ist das SMTP fast fertig. Das ganze geht natürlich nur mit einer SD-Karte.
Es sind auch mehrere E-Mail Accounts möglich. HTTP und POP3 kommen auch dazu...
Wenn ihr Interesse hab, Poste ich das ganze natürlich hier
Ich plane noch eine Weboberfläche zu machen für das Administrieren....
Beim ATmega1280 bzw 2560 kann man das interne RAM mit einem externen RAMbaustein erweitern und der Controller behandelt es als sei es intern: http://ruggedcircuits.com/html/megaram.html
Für das Display wollte ich die UTFT nutzen. Ist deine Lib besser ?
Ich hoffe ja nur, dass das RAM dafür noch reicht.
Im Moment fummel ich noch mit dem SMTP rum.
Es soll ja auch ein Relay Server eingetragen werden können.
Denn mit der IP vom Provider werden wohl mehr als die Hälfte der Mails
geblockt.
Hast du da auch eine Eingabe mit drin z.b. ein Textfeld ?
Ich hab ne Domain bei Selfhost und da ist auch nen Relay Service dabei. Aber
wer will kann, da auch seine GMX E-Mail oder so eintragen.
Das funktionerte damal mal mit Arcor
Das muss man dann testen, denn mit Hotmail geht das z.b. nicht.
Ach, das dauert noch etwas. Ich hab leider nicht die Zeit durchgehend mich damit zu beschäftigen.
Ausserdem muss ich oft erstmal schauen wie das funktioniert. Ich bin gerade von Bascom
auf Arduino gekommen und muss mich da auch durchfummeln.
Die ganze Variablen dingszeugs ist auch etwas anders
Ankommende Mails werde schon zertifiziert und auf der SDkarte für den jeweiligen
Account gespeichert.
Mir fallen nur immer wieder verbesserungen ein die ich dann testen muss. Ich beschränke mich
auch erstmal nur auf den Standard. Also HELP funktion bau ich erstmal nicht ein. Die Mailserver
benutzen den sowieso nicht.
Und wenn dann soweit alles fertig ist, dann sag ich auf jeden Fall bescheid. Ich hoffe nur, das
der Ram dann ausreicht
Ja Zeitprobleme... Da kann ich dir dann mit dem TFT ein ganzes Stück abnehmen.
Das mit dem RAM ist schon ein Problem. Ich versuche zwar das meiste in den Flash zu bekommen, aber so ein Menü im TFT darzustellen kostet halt echt auch ein wenig an RAM.
Wieviel hast denn du frei? Verwendest du MemoryFree?
Welches Ethernet shield verwendest du?