cassyarduino cassyarduino / UIPEthernet
Committer:
cassyarduino
Date:
Tue Dec 27 11:47:13 2016 +0100
Revision:
1:34b5616a463d
Child:
13:54b176a8dbd6
changes

Who changed what in which revision?

UserRevisionLine numberNew contents of line
cassyarduino 1:34b5616a463d 1 /*
cassyarduino 1:34b5616a463d 2 IPAddress.cpp - Base class that provides IPAddress
cassyarduino 1:34b5616a463d 3 Copyright (c) 2011 Adrian McEwen. All right reserved.
cassyarduino 1:34b5616a463d 4
cassyarduino 1:34b5616a463d 5 Modified (ported to mbed) by Zoltan Hudak <hudakz@inbox.com>
cassyarduino 1:34b5616a463d 6
cassyarduino 1:34b5616a463d 7 This library is free software; you can redistribute it and/or
cassyarduino 1:34b5616a463d 8 modify it under the terms of the GNU Lesser General Public
cassyarduino 1:34b5616a463d 9 License as published by the Free Software Foundation; either
cassyarduino 1:34b5616a463d 10 version 2.1 of the License, or (at your option) any later version.
cassyarduino 1:34b5616a463d 11
cassyarduino 1:34b5616a463d 12 This library is distributed in the hope that it will be useful,
cassyarduino 1:34b5616a463d 13 but WITHOUT ANY WARRANTY; without even the implied warranty of
cassyarduino 1:34b5616a463d 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
cassyarduino 1:34b5616a463d 15 Lesser General Public License for more details.
cassyarduino 1:34b5616a463d 16
cassyarduino 1:34b5616a463d 17 You should have received a copy of the GNU Lesser General Public
cassyarduino 1:34b5616a463d 18 License along with this library; if not, write to the Free Software
cassyarduino 1:34b5616a463d 19 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
cassyarduino 1:34b5616a463d 20 */
cassyarduino 1:34b5616a463d 21 #include <mbed.h>
cassyarduino 1:34b5616a463d 22 #include "mbed/IPAddress.h"
cassyarduino 1:34b5616a463d 23
cassyarduino 1:34b5616a463d 24 /**
cassyarduino 1:34b5616a463d 25 * @brief
cassyarduino 1:34b5616a463d 26 * @note
cassyarduino 1:34b5616a463d 27 * @param
cassyarduino 1:34b5616a463d 28 * @retval
cassyarduino 1:34b5616a463d 29 */
cassyarduino 1:34b5616a463d 30 IPAddress::IPAddress(void) {
cassyarduino 1:34b5616a463d 31 memset(_address, 0, sizeof(_address));
cassyarduino 1:34b5616a463d 32 }
cassyarduino 1:34b5616a463d 33
cassyarduino 1:34b5616a463d 34 /**
cassyarduino 1:34b5616a463d 35 * @brief
cassyarduino 1:34b5616a463d 36 * @note
cassyarduino 1:34b5616a463d 37 * @param
cassyarduino 1:34b5616a463d 38 * @retval
cassyarduino 1:34b5616a463d 39 */
cassyarduino 1:34b5616a463d 40 IPAddress::IPAddress(uint8_t first_octet, uint8_t second_octet, uint8_t third_octet, uint8_t fourth_octet) {
cassyarduino 1:34b5616a463d 41 _address[0] = first_octet;
cassyarduino 1:34b5616a463d 42 _address[1] = second_octet;
cassyarduino 1:34b5616a463d 43 _address[2] = third_octet;
cassyarduino 1:34b5616a463d 44 _address[3] = fourth_octet;
cassyarduino 1:34b5616a463d 45 }
cassyarduino 1:34b5616a463d 46
cassyarduino 1:34b5616a463d 47 /**
cassyarduino 1:34b5616a463d 48 * @brief
cassyarduino 1:34b5616a463d 49 * @note
cassyarduino 1:34b5616a463d 50 * @param
cassyarduino 1:34b5616a463d 51 * @retval
cassyarduino 1:34b5616a463d 52 */
cassyarduino 1:34b5616a463d 53 IPAddress::IPAddress(uint32_t address) {
cassyarduino 1:34b5616a463d 54 memcpy(_address, &address, sizeof(_address));
cassyarduino 1:34b5616a463d 55 }
cassyarduino 1:34b5616a463d 56
cassyarduino 1:34b5616a463d 57 /**
cassyarduino 1:34b5616a463d 58 * @brief
cassyarduino 1:34b5616a463d 59 * @note
cassyarduino 1:34b5616a463d 60 * @param
cassyarduino 1:34b5616a463d 61 * @retval
cassyarduino 1:34b5616a463d 62 */
cassyarduino 1:34b5616a463d 63 IPAddress::IPAddress(const uint8_t* address) {
cassyarduino 1:34b5616a463d 64 memcpy(_address, address, sizeof(_address));
cassyarduino 1:34b5616a463d 65 }
cassyarduino 1:34b5616a463d 66
cassyarduino 1:34b5616a463d 67 /**
cassyarduino 1:34b5616a463d 68 * @brief
cassyarduino 1:34b5616a463d 69 * @note
cassyarduino 1:34b5616a463d 70 * @param
cassyarduino 1:34b5616a463d 71 * @retval
cassyarduino 1:34b5616a463d 72 */
cassyarduino 1:34b5616a463d 73 IPAddress &IPAddress::operator=(const uint8_t* address) {
cassyarduino 1:34b5616a463d 74 memcpy(_address, address, sizeof(_address));
cassyarduino 1:34b5616a463d 75 return *this;
cassyarduino 1:34b5616a463d 76 }
cassyarduino 1:34b5616a463d 77
cassyarduino 1:34b5616a463d 78 /**
cassyarduino 1:34b5616a463d 79 * @brief
cassyarduino 1:34b5616a463d 80 * @note
cassyarduino 1:34b5616a463d 81 * @param
cassyarduino 1:34b5616a463d 82 * @retval
cassyarduino 1:34b5616a463d 83 */
cassyarduino 1:34b5616a463d 84 IPAddress &IPAddress::operator=(uint32_t address) {
cassyarduino 1:34b5616a463d 85 memcpy(_address, (const uint8_t*) &address, sizeof(_address));
cassyarduino 1:34b5616a463d 86 return *this;
cassyarduino 1:34b5616a463d 87 }
cassyarduino 1:34b5616a463d 88
cassyarduino 1:34b5616a463d 89 /**
cassyarduino 1:34b5616a463d 90 * @brief
cassyarduino 1:34b5616a463d 91 * @note
cassyarduino 1:34b5616a463d 92 * @param
cassyarduino 1:34b5616a463d 93 * @retval
cassyarduino 1:34b5616a463d 94 */
cassyarduino 1:34b5616a463d 95 bool IPAddress::operator==(const uint8_t* addr) const
cassyarduino 1:34b5616a463d 96 {
cassyarduino 1:34b5616a463d 97 return memcmp(addr, _address, sizeof(_address)) == 0;
cassyarduino 1:34b5616a463d 98 }
cassyarduino 1:34b5616a463d 99
cassyarduino 1:34b5616a463d 100 //size_t IPAddress::printTo(Print& p) const
cassyarduino 1:34b5616a463d 101 //{
cassyarduino 1:34b5616a463d 102 // size_t n = 0;
cassyarduino 1:34b5616a463d 103 // for (int i =0; i < 3; i++)
cassyarduino 1:34b5616a463d 104 // {
cassyarduino 1:34b5616a463d 105 // n += p.print(_address[i], DEC);
cassyarduino 1:34b5616a463d 106 // n += p.print('.');
cassyarduino 1:34b5616a463d 107 // }
cassyarduino 1:34b5616a463d 108 // n += p.print(_address[3], DEC);
cassyarduino 1:34b5616a463d 109 // return n;
cassyarduino 1:34b5616a463d 110 //}
cassyarduino 1:34b5616a463d 111 //
cassyarduino 1:34b5616a463d 112