Arduino  1.8.10
IPAddress クラス

#include <IPAddress.h>

IPAddress の継承関係図
Printable

公開メンバ関数

 IPAddress ()
 
 IPAddress (uint8_t first_octet, uint8_t second_octet, uint8_t third_octet, uint8_t fourth_octet)
 
 IPAddress (uint32_t address)
 
 IPAddress (const uint8_t *address)
 
bool fromString (const char *address)
 
bool fromString (const String &address)
 
 operator uint32_t () const
 
bool operator== (const IPAddress &addr) const
 
bool operator== (const uint8_t *addr) const
 
uint8_t operator[] (int index) const
 
uint8_t & operator[] (int index)
 
IPAddressoperator= (const uint8_t *address)
 
IPAddressoperator= (uint32_t address)
 
virtual size_t printTo (Print &p) const
 

フレンド

class EthernetClass
 
class UDP
 
class Client
 
class Server
 
class DhcpClass
 
class DNSClient
 

詳解

IPAddress.h29 行目に定義があります。

構築子と解体子

◆ IPAddress() [1/4]

IPAddress::IPAddress ( )

IPAddress.cpp23 行目に定義があります。

24 {
25  _address.dword = 0;
26 }

◆ IPAddress() [2/4]

IPAddress::IPAddress ( uint8_t  first_octet,
uint8_t  second_octet,
uint8_t  third_octet,
uint8_t  fourth_octet 
)

IPAddress.cpp28 行目に定義があります。

29 {
30  _address.bytes[0] = first_octet;
31  _address.bytes[1] = second_octet;
32  _address.bytes[2] = third_octet;
33  _address.bytes[3] = fourth_octet;
34 }

◆ IPAddress() [3/4]

IPAddress::IPAddress ( uint32_t  address)

IPAddress.cpp36 行目に定義があります。

37 {
38  _address.dword = address;
39 }
union address_union address

◆ IPAddress() [4/4]

IPAddress::IPAddress ( const uint8_t *  address)

IPAddress.cpp41 行目に定義があります。

42 {
43  memcpy(_address.bytes, address, sizeof(_address.bytes));
44 }
void * memcpy(void *, const void *, size_t)
Copy a memory area.
union address_union address

関数詳解

◆ fromString() [1/2]

bool IPAddress::fromString ( const char *  address)

IPAddress.cpp46 行目に定義があります。

47 {
48  uint16_t acc = 0; // Accumulator
49  uint8_t dots = 0;
50 
51  while (*address)
52  {
53  char c = *address++;
54  if (c >= '0' && c <= '9')
55  {
56  acc = acc * 10 + (c - '0');
57  if (acc > 255) {
58  // Value out of [0..255] range
59  return false;
60  }
61  }
62  else if (c == '.')
63  {
64  if (dots == 3) {
65  // Too much dots (there must be 3 dots)
66  return false;
67  }
68  _address.bytes[dots++] = acc;
69  acc = 0;
70  }
71  else
72  {
73  // Invalid char
74  return false;
75  }
76  }
77 
78  if (dots != 3) {
79  // Too few dots (there must be 3 dots)
80  return false;
81  }
82  _address.bytes[3] = acc;
83  return true;
84 }
union address_union address

◆ fromString() [2/2]

bool IPAddress::fromString ( const String &  address)
inline

IPAddress.h50 行目に定義があります。

50 { return fromString(address.c_str()); }
union address_union address
bool fromString(const char *address)
Definition: IPAddress.cpp:46

◆ operator uint32_t()

IPAddress::operator uint32_t ( ) const
inline

IPAddress.h54 行目に定義があります。

54 { return _address.dword; };

◆ operator=() [1/2]

IPAddress & IPAddress::operator= ( const uint8_t *  address)

IPAddress.cpp86 行目に定義があります。

87 {
88  memcpy(_address.bytes, address, sizeof(_address.bytes));
89  return *this;
90 }
void * memcpy(void *, const void *, size_t)
Copy a memory area.
union address_union address

◆ operator=() [2/2]

IPAddress & IPAddress::operator= ( uint32_t  address)

IPAddress.cpp92 行目に定義があります。

93 {
94  _address.dword = address;
95  return *this;
96 }
union address_union address

◆ operator==() [1/2]

bool IPAddress::operator== ( const IPAddress addr) const
inline

IPAddress.h55 行目に定義があります。

55 { return _address.dword == addr._address.dword; };
uint32_t dword
Definition: IPAddress.h:33

◆ operator==() [2/2]

bool IPAddress::operator== ( const uint8_t *  addr) const

IPAddress.cpp98 行目に定義があります。

99 {
100  return memcmp(addr, _address.bytes, sizeof(_address.bytes)) == 0;
101 }
int memcmp(const void *, const void *, size_t) __ATTR_PURE__
Compare memory areas

◆ operator[]() [1/2]

uint8_t IPAddress::operator[] ( int  index) const
inline

IPAddress.h59 行目に定義があります。

59 { return _address.bytes[index]; };

◆ operator[]() [2/2]

uint8_t& IPAddress::operator[] ( int  index)
inline

IPAddress.h60 行目に定義があります。

60 { return _address.bytes[index]; };

◆ printTo()

size_t IPAddress::printTo ( Print p) const
virtual

Printableを実装しています。

IPAddress.cpp103 行目に定義があります。

104 {
105  size_t n = 0;
106  for (int i =0; i < 3; i++)
107  {
108  n += p.print(_address.bytes[i], DEC);
109  n += p.print('.');
110  }
111  n += p.print(_address.bytes[3], DEC);
112  return n;
113 }
uint8_t i
#define DEC
Definition: Print.h:29
size_t print(const __FlashStringHelper *)
Definition: Print.cpp:44

フレンドと関連関数の詳解

◆ Client

friend class Client
friend

IPAddress.h70 行目に定義があります。

◆ DhcpClass

friend class DhcpClass
friend

IPAddress.h72 行目に定義があります。

◆ DNSClient

friend class DNSClient
friend

IPAddress.h73 行目に定義があります。

◆ EthernetClass

friend class EthernetClass
friend

IPAddress.h68 行目に定義があります。

◆ Server

friend class Server
friend

IPAddress.h71 行目に定義があります。

◆ UDP

friend class UDP
friend

IPAddress.h69 行目に定義があります。

メンバ詳解

◆ bytes

uint8_t IPAddress::bytes[4]

IPAddress.h32 行目に定義があります。

◆ dword

uint32_t IPAddress::dword

IPAddress.h33 行目に定義があります。


このクラス詳解は次のファイルから抽出されました: