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
ipaddr.cpp@0:f7caac9b804e, 2014-03-18 (annotated)
- Committer:
- hggerdd
- Date:
- Tue Mar 18 17:00:22 2014 +0000
- Revision:
- 0:f7caac9b804e
neuer versuch
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
hggerdd | 0:f7caac9b804e | 1 | #include "ipaddr.h" |
hggerdd | 0:f7caac9b804e | 2 | |
hggerdd | 0:f7caac9b804e | 3 | using namespace std; |
hggerdd | 0:f7caac9b804e | 4 | |
hggerdd | 0:f7caac9b804e | 5 | IpAddr::IpAddr() |
hggerdd | 0:f7caac9b804e | 6 | { |
hggerdd | 0:f7caac9b804e | 7 | m_ip[0] = 0; |
hggerdd | 0:f7caac9b804e | 8 | m_ip[1] = 0; |
hggerdd | 0:f7caac9b804e | 9 | m_ip[2] = 0; |
hggerdd | 0:f7caac9b804e | 10 | m_ip[3] = 0; |
hggerdd | 0:f7caac9b804e | 11 | } |
hggerdd | 0:f7caac9b804e | 12 | |
hggerdd | 0:f7caac9b804e | 13 | IpAddr::IpAddr(uint8_t ip0, uint8_t ip1, uint8_t ip2, uint8_t ip3) |
hggerdd | 0:f7caac9b804e | 14 | { |
hggerdd | 0:f7caac9b804e | 15 | m_ip[0] = ip0; |
hggerdd | 0:f7caac9b804e | 16 | m_ip[1] = ip1; |
hggerdd | 0:f7caac9b804e | 17 | m_ip[2] = ip2; |
hggerdd | 0:f7caac9b804e | 18 | m_ip[3] = ip3; |
hggerdd | 0:f7caac9b804e | 19 | } |
hggerdd | 0:f7caac9b804e | 20 | |
hggerdd | 0:f7caac9b804e | 21 | bool IpAddr::isNull() |
hggerdd | 0:f7caac9b804e | 22 | { |
hggerdd | 0:f7caac9b804e | 23 | if ( m_ip[0]==0 & m_ip[1]==0 & m_ip[2]==0 & m_ip[3]==0) |
hggerdd | 0:f7caac9b804e | 24 | return true; |
hggerdd | 0:f7caac9b804e | 25 | else |
hggerdd | 0:f7caac9b804e | 26 | return false; |
hggerdd | 0:f7caac9b804e | 27 | } |
hggerdd | 0:f7caac9b804e | 28 | |
hggerdd | 0:f7caac9b804e | 29 | int IpAddr::getIpPart(uint8_t i) |
hggerdd | 0:f7caac9b804e | 30 | { |
hggerdd | 0:f7caac9b804e | 31 | return m_ip[i]; |
hggerdd | 0:f7caac9b804e | 32 | } |
hggerdd | 0:f7caac9b804e | 33 | |
hggerdd | 0:f7caac9b804e | 34 | bool IpAddr::isEqual(IpAddr *addr2) |
hggerdd | 0:f7caac9b804e | 35 | { |
hggerdd | 0:f7caac9b804e | 36 | if (this->getIpPart(0) != addr2->getIpPart(0)) return false; |
hggerdd | 0:f7caac9b804e | 37 | if (this->getIpPart(1) != addr2->getIpPart(1)) return false; |
hggerdd | 0:f7caac9b804e | 38 | if (this->getIpPart(2) != addr2->getIpPart(2)) return false; |
hggerdd | 0:f7caac9b804e | 39 | if (this->getIpPart(3) != addr2->getIpPart(3)) return false; |
hggerdd | 0:f7caac9b804e | 40 | return true; |
hggerdd | 0:f7caac9b804e | 41 | } |
hggerdd | 0:f7caac9b804e | 42 | |
hggerdd | 0:f7caac9b804e | 43 | // liefert zurück, ob sich die gewählte und "addr2" im gleichen Subnetz befinden |
hggerdd | 0:f7caac9b804e | 44 | bool IpAddr::isSameSubnet(IpAddr * addr2, IpAddr * netmask) |
hggerdd | 0:f7caac9b804e | 45 | { |
hggerdd | 0:f7caac9b804e | 46 | int hv1, hv2; |
hggerdd | 0:f7caac9b804e | 47 | |
hggerdd | 0:f7caac9b804e | 48 | for (int i=0; i<4; i++) { |
hggerdd | 0:f7caac9b804e | 49 | hv1 = ((this->getIpPart(i) & netmask->getIpPart(i))); |
hggerdd | 0:f7caac9b804e | 50 | hv2 = ((addr2->getIpPart(i) & netmask->getIpPart(i))); |
hggerdd | 0:f7caac9b804e | 51 | if (hv1 != hv2) return false; |
hggerdd | 0:f7caac9b804e | 52 | } |
hggerdd | 0:f7caac9b804e | 53 | return true; |
hggerdd | 0:f7caac9b804e | 54 | } |
hggerdd | 0:f7caac9b804e | 55 | |
hggerdd | 0:f7caac9b804e | 56 | bool IpAddr::operator==(IpAddr * rhs) |
hggerdd | 0:f7caac9b804e | 57 | { |
hggerdd | 0:f7caac9b804e | 58 | for (int i=0; i<4; i++) { |
hggerdd | 0:f7caac9b804e | 59 | if ((this->getIpPart(i) != rhs->getIpPart(i))) return false; |
hggerdd | 0:f7caac9b804e | 60 | } |
hggerdd | 0:f7caac9b804e | 61 | return true; |
hggerdd | 0:f7caac9b804e | 62 | } |
hggerdd | 0:f7caac9b804e | 63 | |
hggerdd | 0:f7caac9b804e | 64 | bool IpAddr::operator==(IpAddr & rhs) |
hggerdd | 0:f7caac9b804e | 65 | { |
hggerdd | 0:f7caac9b804e | 66 | for (int i=0; i<4; i++) { |
hggerdd | 0:f7caac9b804e | 67 | if ((this->getIpPart(i) != rhs.getIpPart(i))) return false; |
hggerdd | 0:f7caac9b804e | 68 | } |
hggerdd | 0:f7caac9b804e | 69 | return true; |
hggerdd | 0:f7caac9b804e | 70 | } |
hggerdd | 0:f7caac9b804e | 71 | |
hggerdd | 0:f7caac9b804e | 72 | |
hggerdd | 0:f7caac9b804e | 73 | void IpAddr::getIP(uint8_t * ip) |
hggerdd | 0:f7caac9b804e | 74 | { |
hggerdd | 0:f7caac9b804e | 75 | for(int i=0; i<4; i++) { |
hggerdd | 0:f7caac9b804e | 76 | ip[i] = m_ip[i]; |
hggerdd | 0:f7caac9b804e | 77 | } |
hggerdd | 0:f7caac9b804e | 78 | } |