Cosa: An Object-Oriented Platform for Arduino programming

The third increment of the Socket/W5100 WIZnet Ethernet Controller device driver is now available. This update contains the following improvements:

  1. 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

  2. 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

  3. 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

  4. 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:

  1. 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

  2. Cosa Types; Support for network byte order
    Improved support for mapping between host and network byte order; ntoh/hton functions.

Cheers!