stats

UDP & TCP

Voor een UNO met een standaard Ethernetshield zijn plentie sketches in omloop. Maar de NANO Ethernetshield heeft een heel andere chipset en daarmee een andere library.

Na wat experimenteren heb ik voor de EtherCard library gekozen: Deze is compact en goed te doorgronden. Hij heeft wel een nadeel: Veel zaken moet je zelf doen of zijn in de voorbeelden wel erg simpel benaderd....

De meeste winst kan worden verkregen door het Ethernet::buffer zo klein als mogelijk te houden. Daar staat wel tegenover dat voor de HTML pagina's de data in stukjes moet worden geknipt. Hier is een goed voorbeeld voor beschikbaar, maar met een kleine aanpassing van de bufferfiller.cpp file kan dat optimaal geautomatiseerd worden.

Voor enkel het pagina verzoek (uri) werkt zo'n klein buffer ook wel, maar info van bv. een html-form kan vaak net teveel zijn. Dit kan worden opgelost door het versturen van httpServerReply_with_flags(); in plaats van httpServerReplyAck(); totdat alle form data ontvangen is.

Voor UDP een zelfde verhaal: de data is wel in het shield beschikbaar, maar past maar voor een deel in het buffer, en wordt om die reden afgekapt. Door de pointer (ilen) van het buffer te gebruiken kan het volgende partje in het buffer geladen worden. (ilen = ether.readPacketSlice(info, ilen, offs); Waarbij info het buffer is, ilen het volgende partje en offs de ofset in het ENC28J60 buffer.

Ohja, er zijn niet werkende (!) shield-clones in omloop waar een print-via te veel in zit; Zie: https://www.mikrocontroller.net/topic/477142

HOME