The third increment of the Socket/W5100 WIZnet Ethernet Controller device driver is now available. This update contains the following improvements:
-
INET class
A new static class has been introduced to collect the common Ethernet address specification and access functions; parsing, format transformation and print-out.
Interface: Cosa/INET.hh at master · mikaelpatel/Cosa · GitHub -
Socket/W5100 device driver
a. New socket interface access function for client address access; MAC, IP and port.
b. Code footprint reduction (W5100, approx. 200 byte).
c. Correct handling of dynamic port numbering for TCP/UDP.
d. Improved connection-less message handling (UDP).
Interface: Cosa/Socket.hh at master · mikaelpatel/Cosa · GitHub, https://github.com/mikaelpatel/Cosa/blob/master/cores/cosa/Cosa/Socket/Driver/W5100.hh -
Domain Name System (DNS) client
New class for handling of DNS requests; gethostbyname() function.
Interface: https://github.com/mikaelpatel/Cosa/blob/master/cores/cosa/Cosa/INET/DNS.hh
Example: https://github.com/mikaelpatel/Cosa/blob/master/examples/Ethernet/CosaDNS/CosaDNS.ino -
WebServer sketch
Next step in the example web server sketch. SRAM requirement (stack/local variables) reduced to under 50 bytes while generating web-page.
Example: https://github.com/mikaelpatel/Cosa/blob/master/examples/Ethernet/CosaWebServer/CosaWebServer.ino
Additional improvements:
-
ATtiny pin map documentation
The ATtiny board documentation has be updated with the pin map (textual graphical). Suggestion by hasse_bjork.
ATtinyX4: https://github.com/mikaelpatel/Cosa/blob/master/cores/cosa/Cosa/Board/TinyX4.hh#L29
ATtinyX5: https://github.com/mikaelpatel/Cosa/blob/master/cores/cosa/Cosa/Board/TinyX5.hh#L29
ATtinyX61: https://github.com/mikaelpatel/Cosa/blob/master/cores/cosa/Cosa/Board/TinyX61.hh#L29 -
Cosa Types; Support for network byte order
Improved support for mapping between host and network byte order; ntoh/hton functions.
Cheers!