// This code slightly follows the conventions of, but is not derived from: // EHTERSHIELD_H library for Arduino etherShield // Copyright (c) 2008 Xing Yu. All right reserved. (this is LGPL v2.1) // It is however derived from the enc28j60 and ip code (which is GPL v2) // Author: Pascal Stang // Modified by: Guido Socher // DHCP code: Andrew Lindsay // Hence: GPL V2 // // 2010-05-19 #include "EtherCard.h" #include #include EtherCard ether; uint8_t EtherCard::mymac[ETH_LEN]; // my MAC address uint8_t EtherCard::myip[IP_LEN]; // my ip address uint8_t EtherCard::netmask[IP_LEN]; // subnet mask uint8_t EtherCard::broadcastip[IP_LEN]; // broadcast address uint8_t EtherCard::gwip[IP_LEN]; // gateway uint8_t EtherCard::dhcpip[IP_LEN]; // dhcp server uint8_t EtherCard::dnsip[IP_LEN]; // dns server uint8_t EtherCard::hisip[IP_LEN]; // ip address of remote host uint16_t EtherCard::delaycnt = 0; //request gateway ARP lookup uint8_t EtherCard::begin (const uint16_t size, const uint8_t* macaddr, uint8_t csPin) { copyMac(mymac, macaddr); return initialize(size, mymac, csPin); } bool EtherCard::staticSetup (const uint8_t* my_ip, const uint8_t* gw_ip, const uint8_t* dns_ip, const uint8_t* mask) { if (my_ip != 0) copyIp(myip, my_ip); if (gw_ip != 0) setGwIp(gw_ip); if (dns_ip != 0) copyIp(dnsip, dns_ip); if(mask != 0) copyIp(netmask, mask); updateBroadcastAddress(); delaycnt = 0; //request gateway ARP lookup return true; }