Pages: [1] 2   Go Down
Author Topic: Ethernet lesen mit mehr Geschwindigkeit für E-Mail Server... jetzt 7kb/s :)  (Read 2035 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 1
Posts: 44
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 smiley-sad

          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.

Wie geht das mit Arduino ?
« Last Edit: December 25, 2012, 10:01:05 pm by sven1977 » Logged

Offline Offline
Newbie
*
Karma: 1
Posts: 44
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ok, hat sich erledigt smiley-grin

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 smiley-wink

uint8_t kannte ich nicht....

Wenn ich den Buffer auf 2 oder 3kb bekomme, wird es bestimmt etwas schneller smiley-grin
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
Logged

Alfeld (Leine) / Germany
Offline Offline
Full Member
***
Karma: 9
Posts: 207
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

MOMENT - Du schreibst einen MAIL SERVER?
Auf einem AVR?

DAS ist Hardcore.
Logged

Offline Offline
Edison Member
*
Karma: 21
Posts: 1419
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hmm, welchen Arduino verwendest Du denn? Der Uno hat nur 2kB RAM und der Mega hat 8kB.
Logged

Offline Offline
Newbie
*
Karma: 1
Posts: 44
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 smiley


Ich plane noch eine Weboberfläche zu machen für das Administrieren....
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 258
Posts: 21497
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
http://hackaday.com/2011/09/05/upgrading-ram-in-an-arduino-mega/
http://arduino.cc/forum/index.php/topic,124136.0.html

Grüße Uwe
Logged

Offline Offline
Newbie
*
Karma: 1
Posts: 44
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Cool,gut zu wissen. Wusste das mit dem externen Ram
nicht smiley

Ich glaube aber, dass der Ram für mein Mailserver
ausreichen wird. Das läuft halt überwiegend auf der
SD Karte smiley

Die ankommenden Mails werden gleich auf der
SD Karte gespeichert.

smiley
Logged

Offline Offline
Edison Member
*
Karma: 21
Posts: 1419
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Also auf den Code bin ich auf jeden Fall gespannt.
Mario.
Logged

Germany, BW
Offline Offline
Sr. Member
****
Karma: 7
Posts: 302
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

...Geplant ist später dann noch ein 3,2" TFT mit drann zu machen...

Könntest dich dann mal bei mir melden. Habe schon eine große Lib für TFT und Touch-Controls zusammen.
Logged

Offline Offline
Newbie
*
Karma: 1
Posts: 44
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.

Logged

Germany, BW
Offline Offline
Sr. Member
****
Karma: 7
Posts: 302
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Meine Lib baut auf die UTFT auf.
Es ist sozusagen der Teil der fehlt ^^.

Buttons, Optionboxes, Checkboxes und Nummerneingabefelder werden durch die Lib abgebildet.

Quote
Denn mit der IP vom Provider werden wohl mehr als die Hälfte der Mails
geblockt.
Das ist verständlich. Du wirst wahrscheinlich auch kein Relay finden, mit dem es besser geht.

Die andere Möglichkeit wäre einen smtp eintragen zu können...
« Last Edit: December 28, 2012, 02:26:04 pm by Mardetuino » Logged

Offline Offline
Newbie
*
Karma: 1
Posts: 44
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hey, das ist cool...

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 smiley

Das muss man dann testen, denn mit Hotmail geht das z.b. nicht.


Logged

Germany, BW
Offline Offline
Sr. Member
****
Karma: 7
Posts: 302
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Textfeld kommt noch...

Wann beginnst du mit dem Display?
Logged

Offline Offline
Newbie
*
Karma: 1
Posts: 44
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 smiley-grin

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 smiley-grin
Logged

Germany, BW
Offline Offline
Sr. Member
****
Karma: 7
Posts: 302
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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?
Logged

Pages: [1] 2   Go Up
Jump to: