no upgrade or change at this. move to new Library for WIZ550io, W5500 -> http://mbed.org/teams/EthernetInterfaceW5500-makers/code/W5500Interface/

Dependents:   LPC11U68_NTPClient_HelloWorld_WIZ550io

Fork of WIZ550ioInterface by ban4jp -

please get the new Library for WIZ550io, W5500 (WIZnet) http://mbed.org/teams/EthernetInterfaceW5500-makers/code/W5500Interface/

Import libraryW5500Interface

This is the Interface library for WIZnet W5500 chip which forked of EthernetInterfaceW5500, WIZnetInterface and WIZ550ioInterface. This library has simple name as "W5500Interface". and can be used for Wiz550io users also.

Files at this revision

API Documentation at this revision

Comitter:
ban4jp
Date:
Sun Dec 01 18:40:14 2013 +0000
Parent:
5:fb15c35d1e28
Child:
7:93e358253dd8
Commit message:
Fix: connect() and disconnect() return value; Fix: Debug code disabled; Add: get IPAddress and MACAddress functions;

Changed in this revision

WIZ820ioInterface.cpp Show annotated file Show diff for this revision Revisions of this file
WIZ820ioInterface.h Show annotated file Show diff for this revision Revisions of this file
pico_string.h Show annotated file Show diff for this revision Revisions of this file
--- a/WIZ820ioInterface.cpp	Tue Aug 27 12:50:11 2013 +0000
+++ b/WIZ820ioInterface.cpp	Sun Dec 01 18:40:14 2013 +0000
@@ -41,33 +41,56 @@
             return r;
         }
     }
-    return join();
+    if (WIZ820io::join() == false) return -1;
+    return 0;
 }
 
 int WIZ820ioInterface::disconnect()
 {
-    return WIZ820io::disconnect();
+    if (WIZ820io::disconnect() == false) return -1;
+    return 0;
 }
 
 char* WIZ820ioInterface::getIPAddress()
 {
     uint32_t ip = reg_rd<uint32_t>(SIPR);
-    snprintf(ip_string, sizeof(ip_string), "%d.%d.%d.%d", (ip>>24)&0xff,(ip>>16)&0xff,(ip>>8)&0xff,ip&0xff); 
-    ip_set = true;
+    snprintf(ip_string, sizeof(ip_string), "%d.%d.%d.%d", (ip>>24)&0xff, (ip>>16)&0xff, (ip>>8)&0xff, ip&0xff);
     return ip_string;
 }
 
+char* WIZ820ioInterface::getNetworkMask()
+{
+    uint32_t ip = reg_rd<uint32_t>(SUBR);
+    snprintf(mask_string, sizeof(mask_string), "%d.%d.%d.%d", (ip>>24)&0xff, (ip>>16)&0xff, (ip>>8)&0xff, ip&0xff);
+    return mask_string;
+}
+
+char* WIZ820ioInterface::getGateway()
+{
+    uint32_t ip = reg_rd<uint32_t>(GAR);
+    snprintf(gw_string, sizeof(gw_string), "%d.%d.%d.%d", (ip>>24)&0xff, (ip>>16)&0xff, (ip>>8)&0xff, ip&0xff);
+    return gw_string;
+}
+
+char* WIZ820ioInterface::getMACAddress()
+{
+    uint8_t mac[6];
+    reg_rd_mac(SHAR, mac);
+    snprintf(mac_string, sizeof(mac_string), "%02X:%02X:%02X:%02X:%02X:%02X", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
+    return mac_string;
+}
+
 int WIZ820ioInterface::IPrenew(int timeout_ms)
 {
-    printf("DHCP Started, waiting for IP...\n");  
+//    printf("DHCP Started, waiting for IP...\n");  
     DHCPClient dhcp;
     int err = dhcp.setup(timeout_ms);
     if (err == (-1)) {
-        printf("Timeout.\n");
+//        printf("Timeout.\n");
         return -1;
     }
-    printf("Connected, IP: %d.%d.%d.%d\n", dhcp.yiaddr[0], dhcp.yiaddr[1], dhcp.yiaddr[2], dhcp.yiaddr[3]);
-    ip      = (dhcp.yiaddr[0]<<24) | (dhcp.yiaddr[1]<<16) | (dhcp.yiaddr[2]<<8) | dhcp.yiaddr[3];
+//    printf("Connected, IP: %d.%d.%d.%d\n", dhcp.yiaddr[0], dhcp.yiaddr[1], dhcp.yiaddr[2], dhcp.yiaddr[3]);
+    ip      = (dhcp.yiaddr[0] <<24) | (dhcp.yiaddr[1] <<16) | (dhcp.yiaddr[2] <<8) | dhcp.yiaddr[3];
     gateway = (dhcp.gateway[0]<<24) | (dhcp.gateway[1]<<16) | (dhcp.gateway[2]<<8) | dhcp.gateway[3];
     netmask = (dhcp.netmask[0]<<24) | (dhcp.netmask[1]<<16) | (dhcp.netmask[2]<<8) | dhcp.netmask[3];
     dnsaddr = (dhcp.dnsaddr[0]<<24) | (dhcp.dnsaddr[1]<<16) | (dhcp.dnsaddr[2]<<8) | dhcp.dnsaddr[3];
--- a/WIZ820ioInterface.h	Tue Aug 27 12:50:11 2013 +0000
+++ b/WIZ820ioInterface.h	Sun Dec 01 18:40:14 2013 +0000
@@ -71,11 +71,17 @@
   * @ returns ip address
   */
   char* getIPAddress();
+  char* getNetworkMask();
+  char* getGateway();
+  char* getMACAddress();
 
   int IPrenew(int timeout_ms = 15*1000);
     
 private:
     char ip_string[20];
+    char mask_string[20];
+    char gw_string[20];
+    char mac_string[20];
     bool ip_set;
 };
 
--- a/pico_string.h	Tue Aug 27 12:50:11 2013 +0000
+++ b/pico_string.h	Sun Dec 01 18:40:14 2013 +0000
@@ -1,4 +1,4 @@
-// pico_tring.h 2013/8/27
+// pico_string.h 2013/8/27
 #pragma once
 class pico_string {
 public: