Project

General

Profile

Statistics
| Branch: | Revision:

root / arduino-1.0 / hardware / arduino / cores / arduino / IPAddress.cpp @ 58d82c77

History | View | Annotate | Download (1.13 KB)

1 58d82c77 Tom Mullins
2
#include <Arduino.h>
3
#include <IPAddress.h>
4
5
IPAddress::IPAddress()
6
{
7
    memset(_address, 0, sizeof(_address));
8
}
9
10
IPAddress::IPAddress(uint8_t first_octet, uint8_t second_octet, uint8_t third_octet, uint8_t fourth_octet)
11
{
12
    _address[0] = first_octet;
13
    _address[1] = second_octet;
14
    _address[2] = third_octet;
15
    _address[3] = fourth_octet;
16
}
17
18
IPAddress::IPAddress(uint32_t address)
19
{
20
    memcpy(_address, &address, sizeof(_address));
21
}
22
23
IPAddress::IPAddress(const uint8_t *address)
24
{
25
    memcpy(_address, address, sizeof(_address));
26
}
27
28
IPAddress& IPAddress::operator=(const uint8_t *address)
29
{
30
    memcpy(_address, address, sizeof(_address));
31
    return *this;
32
}
33
34
IPAddress& IPAddress::operator=(uint32_t address)
35
{
36
    memcpy(_address, (const uint8_t *)&address, sizeof(_address));
37
    return *this;
38
}
39
40
bool IPAddress::operator==(const uint8_t* addr)
41
{
42
    return memcmp(addr, _address, sizeof(_address)) == 0;
43
}
44
45
size_t IPAddress::printTo(Print& p) const
46
{
47
    size_t n = 0;
48
    for (int i =0; i < 3; i++)
49
    {
50
        n += p.print(_address[i], DEC);
51
        n += p.print('.');
52
    }
53
    n += p.print(_address[3], DEC);
54
    return n;
55
}