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.

Committer:
Bongjun
Date:
Tue Jul 08 03:49:33 2014 +0000
Revision:
11:5a5a3f373a6b
Parent:
10:4da8370d14da
update some code after comparing WIZnet Library

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ban4jp 7:93e358253dd8 1 // WIZ550ioInterface.cpp 2013/4/5
ban4jp 7:93e358253dd8 2 #include "WIZ550ioInterface.h"
va009039 5:fb15c35d1e28 3 #include "DHCPClient.h"
samux 1:fb4494783863 4
ban4jp 7:93e358253dd8 5 WIZ550ioInterface::WIZ550ioInterface(PinName mosi, PinName miso, PinName sclk, PinName cs, PinName reset) :
va009039 5:fb15c35d1e28 6 WIZ820io(mosi, miso, sclk, cs, reset)
va009039 5:fb15c35d1e28 7 {
va009039 5:fb15c35d1e28 8 ip_set = false;
va009039 5:fb15c35d1e28 9 }
va009039 5:fb15c35d1e28 10
ban4jp 7:93e358253dd8 11 WIZ550ioInterface::WIZ550ioInterface(SPI* spi, PinName cs, PinName reset) :
va009039 5:fb15c35d1e28 12 WIZ820io(spi, cs, reset)
samux 1:fb4494783863 13 {
samux 1:fb4494783863 14 ip_set = false;
samux 1:fb4494783863 15 }
samux 1:fb4494783863 16
ban4jp 7:93e358253dd8 17 int WIZ550ioInterface::init()
samux 1:fb4494783863 18 {
va009039 5:fb15c35d1e28 19 dhcp = true;
va009039 5:fb15c35d1e28 20 reset();
va009039 5:fb15c35d1e28 21 return 0;
va009039 5:fb15c35d1e28 22 }
va009039 5:fb15c35d1e28 23
ban4jp 7:93e358253dd8 24 int WIZ550ioInterface::init(const char* ip, const char* mask, const char* gateway)
va009039 5:fb15c35d1e28 25 {
va009039 5:fb15c35d1e28 26 dhcp = false;
va009039 5:fb15c35d1e28 27 this->ip = str_to_ip(ip);
va009039 5:fb15c35d1e28 28 strcpy(ip_string, ip);
va009039 5:fb15c35d1e28 29 ip_set = true;
va009039 5:fb15c35d1e28 30 this->netmask = str_to_ip(mask);
va009039 5:fb15c35d1e28 31 this->gateway = str_to_ip(gateway);
samux 1:fb4494783863 32 reset();
samux 1:fb4494783863 33 return 0;
samux 1:fb4494783863 34 }
samux 1:fb4494783863 35
Bongjun 10:4da8370d14da 36 int WIZ550ioInterface::init(uint32_t ip, uint32_t mask, uint32_t gateway)
Bongjun 10:4da8370d14da 37 {
Bongjun 10:4da8370d14da 38 dhcp = false;
Bongjun 10:4da8370d14da 39 reset();
Bongjun 10:4da8370d14da 40 ip_set = true;
Bongjun 10:4da8370d14da 41 join(ip, gateway, mask);
Bongjun 10:4da8370d14da 42 return 0;
Bongjun 10:4da8370d14da 43 }
Bongjun 10:4da8370d14da 44
ban4jp 7:93e358253dd8 45 int WIZ550ioInterface::connect()
samux 1:fb4494783863 46 {
va009039 5:fb15c35d1e28 47 if (dhcp) {
va009039 5:fb15c35d1e28 48 int r = IPrenew();
va009039 5:fb15c35d1e28 49 if (r < 0) {
va009039 5:fb15c35d1e28 50 return r;
va009039 5:fb15c35d1e28 51 }
va009039 5:fb15c35d1e28 52 }
ban4jp 6:c466db1cd20b 53 if (WIZ820io::join() == false) return -1;
ban4jp 6:c466db1cd20b 54 return 0;
samux 1:fb4494783863 55 }
samux 1:fb4494783863 56
ban4jp 7:93e358253dd8 57 int WIZ550ioInterface::disconnect()
samux 1:fb4494783863 58 {
ban4jp 6:c466db1cd20b 59 if (WIZ820io::disconnect() == false) return -1;
ban4jp 6:c466db1cd20b 60 return 0;
va009039 5:fb15c35d1e28 61 }
va009039 5:fb15c35d1e28 62
ban4jp 7:93e358253dd8 63 char* WIZ550ioInterface::getIPAddress()
va009039 5:fb15c35d1e28 64 {
va009039 5:fb15c35d1e28 65 uint32_t ip = reg_rd<uint32_t>(SIPR);
ban4jp 6:c466db1cd20b 66 snprintf(ip_string, sizeof(ip_string), "%d.%d.%d.%d", (ip>>24)&0xff, (ip>>16)&0xff, (ip>>8)&0xff, ip&0xff);
va009039 5:fb15c35d1e28 67 return ip_string;
samux 1:fb4494783863 68 }
samux 1:fb4494783863 69
ban4jp 7:93e358253dd8 70 char* WIZ550ioInterface::getNetworkMask()
ban4jp 6:c466db1cd20b 71 {
ban4jp 6:c466db1cd20b 72 uint32_t ip = reg_rd<uint32_t>(SUBR);
ban4jp 6:c466db1cd20b 73 snprintf(mask_string, sizeof(mask_string), "%d.%d.%d.%d", (ip>>24)&0xff, (ip>>16)&0xff, (ip>>8)&0xff, ip&0xff);
ban4jp 6:c466db1cd20b 74 return mask_string;
ban4jp 6:c466db1cd20b 75 }
ban4jp 6:c466db1cd20b 76
ban4jp 7:93e358253dd8 77 char* WIZ550ioInterface::getGateway()
ban4jp 6:c466db1cd20b 78 {
ban4jp 6:c466db1cd20b 79 uint32_t ip = reg_rd<uint32_t>(GAR);
ban4jp 6:c466db1cd20b 80 snprintf(gw_string, sizeof(gw_string), "%d.%d.%d.%d", (ip>>24)&0xff, (ip>>16)&0xff, (ip>>8)&0xff, ip&0xff);
ban4jp 6:c466db1cd20b 81 return gw_string;
ban4jp 6:c466db1cd20b 82 }
ban4jp 6:c466db1cd20b 83
ban4jp 7:93e358253dd8 84 char* WIZ550ioInterface::getMACAddress()
ban4jp 6:c466db1cd20b 85 {
ban4jp 6:c466db1cd20b 86 uint8_t mac[6];
ban4jp 6:c466db1cd20b 87 reg_rd_mac(SHAR, mac);
ban4jp 6:c466db1cd20b 88 snprintf(mac_string, sizeof(mac_string), "%02X:%02X:%02X:%02X:%02X:%02X", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
ban4jp 6:c466db1cd20b 89 return mac_string;
ban4jp 6:c466db1cd20b 90 }
ban4jp 6:c466db1cd20b 91
ban4jp 7:93e358253dd8 92 int WIZ550ioInterface::IPrenew(int timeout_ms)
samux 1:fb4494783863 93 {
ban4jp 6:c466db1cd20b 94 // printf("DHCP Started, waiting for IP...\n");
va009039 5:fb15c35d1e28 95 DHCPClient dhcp;
va009039 5:fb15c35d1e28 96 int err = dhcp.setup(timeout_ms);
va009039 5:fb15c35d1e28 97 if (err == (-1)) {
ban4jp 6:c466db1cd20b 98 // printf("Timeout.\n");
va009039 5:fb15c35d1e28 99 return -1;
samux 1:fb4494783863 100 }
ban4jp 6:c466db1cd20b 101 // printf("Connected, IP: %d.%d.%d.%d\n", dhcp.yiaddr[0], dhcp.yiaddr[1], dhcp.yiaddr[2], dhcp.yiaddr[3]);
ban4jp 6:c466db1cd20b 102 ip = (dhcp.yiaddr[0] <<24) | (dhcp.yiaddr[1] <<16) | (dhcp.yiaddr[2] <<8) | dhcp.yiaddr[3];
va009039 5:fb15c35d1e28 103 gateway = (dhcp.gateway[0]<<24) | (dhcp.gateway[1]<<16) | (dhcp.gateway[2]<<8) | dhcp.gateway[3];
va009039 5:fb15c35d1e28 104 netmask = (dhcp.netmask[0]<<24) | (dhcp.netmask[1]<<16) | (dhcp.netmask[2]<<8) | dhcp.netmask[3];
va009039 5:fb15c35d1e28 105 dnsaddr = (dhcp.dnsaddr[0]<<24) | (dhcp.dnsaddr[1]<<16) | (dhcp.dnsaddr[2]<<8) | dhcp.dnsaddr[3];
va009039 5:fb15c35d1e28 106 return 0;
va009039 5:fb15c35d1e28 107 }