This is a non working version of my ethernet with sd card, i do not know why

Dependencies:   SDFileSystem mbed

Fork of eth_v13 by Heiko Greiner

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers ipaddr.cpp Source File

ipaddr.cpp

00001 #include "ipaddr.h"
00002 
00003 using namespace std;
00004 
00005 IpAddr::IpAddr()
00006 {
00007     m_ip[0] = 0;
00008     m_ip[1] = 0;
00009     m_ip[2] = 0;
00010     m_ip[3] = 0;
00011 }
00012 
00013 IpAddr::IpAddr(uint8_t ip0, uint8_t ip1, uint8_t ip2, uint8_t ip3)
00014 {
00015     m_ip[0] = ip0;
00016     m_ip[1] = ip1;
00017     m_ip[2] = ip2;
00018     m_ip[3] = ip3;
00019 }
00020 
00021 bool IpAddr::isNull()
00022 {
00023     if ( m_ip[0]==0 & m_ip[1]==0 & m_ip[2]==0 & m_ip[3]==0)
00024         return true;
00025     else
00026         return false;
00027 }
00028 
00029 int IpAddr::getIpPart(uint8_t i)
00030 {
00031     return m_ip[i];
00032 }
00033 
00034 bool IpAddr::isEqual(IpAddr *addr2)
00035 {
00036     if (this->getIpPart(0) != addr2->getIpPart(0)) return false;
00037     if (this->getIpPart(1) != addr2->getIpPart(1)) return false;
00038     if (this->getIpPart(2) != addr2->getIpPart(2)) return false;
00039     if (this->getIpPart(3) != addr2->getIpPart(3)) return false;
00040     return true;
00041 }
00042 
00043 // liefert zurück, ob sich die gewählte und "addr2" im gleichen Subnetz befinden
00044 bool IpAddr::isSameSubnet(IpAddr * addr2, IpAddr * netmask)
00045 {
00046     int hv1, hv2;
00047 
00048     for (int i=0; i<4; i++) {
00049         hv1 = ((this->getIpPart(i) & netmask->getIpPart(i)));
00050         hv2 = ((addr2->getIpPart(i) & netmask->getIpPart(i)));
00051         if (hv1 != hv2) return false;
00052     }
00053     return true;
00054 }
00055 
00056 bool IpAddr::operator==(IpAddr * rhs)
00057 {
00058     for (int i=0; i<4; i++) {
00059         if ((this->getIpPart(i)  != rhs->getIpPart(i))) return false;
00060     }
00061     return true;
00062 }
00063 
00064 bool IpAddr::operator==(IpAddr & rhs)
00065 {
00066     for (int i=0; i<4; i++) {
00067         if ((this->getIpPart(i)  != rhs.getIpPart(i))) return false;
00068     }
00069     return true;
00070 }
00071 
00072 
00073 void IpAddr::getIP(uint8_t * ip)
00074 {
00075     for(int i=0; i<4; i++) {
00076         ip[i] = m_ip[i];
00077     }
00078 }