UIPEthernet library for Arduino IDE, Eclipse with arduino plugin and MBED/SMeshStudio (AVR,STM32F,ESP8266,Intel ARC32,Nordic nRF51,Teensy boards,Realtek Ameba(RTL8195A,RTL8710)), ENC28j60 network chip. Compatible with Wiznet W5100 Ethernet library API. Compiled and tested on Nucleo-F302R8. Master repository is: https://github.com/UIPEthernet/UIPEthernet/

Committer:
cassyarduino
Date:
Tue Jan 23 15:08:43 2018 +0100
Revision:
39:deeb00b81cc9
Parent:
35:f9f3a91fe4d4
Release: 2.0.4

Who changed what in which revision?

UserRevisionLine numberNew contents of line
cassyarduino 7:ef1f092165eb 1 /*
cassyarduino 7:ef1f092165eb 2 Copyright (c) 2011 Arduino. All right reserved.
cassyarduino 7:ef1f092165eb 3
cassyarduino 7:ef1f092165eb 4 This library is free software; you can redistribute it and/or
cassyarduino 7:ef1f092165eb 5 modify it under the terms of the GNU Lesser General Public
cassyarduino 7:ef1f092165eb 6 License as published by the Free Software Foundation; either
cassyarduino 7:ef1f092165eb 7 version 2.1 of the License, or (at your option) any later version.
cassyarduino 7:ef1f092165eb 8
cassyarduino 7:ef1f092165eb 9 This library is distributed in the hope that it will be useful,
cassyarduino 7:ef1f092165eb 10 but WITHOUT ANY WARRANTY; without even the implied warranty of
cassyarduino 7:ef1f092165eb 11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
cassyarduino 7:ef1f092165eb 12 See the GNU Lesser General Public License for more details.
cassyarduino 7:ef1f092165eb 13
cassyarduino 7:ef1f092165eb 14 You should have received a copy of the GNU Lesser General Public
cassyarduino 7:ef1f092165eb 15 License along with this library; if not, write to the Free Software
cassyarduino 7:ef1f092165eb 16 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
cassyarduino 7:ef1f092165eb 17 */
cassyarduino 35:f9f3a91fe4d4 18 #if !defined(ARDUINO_ARCH_AVR) && !defined(ARDUINO_ARCH_SAM)
cassyarduino 7:ef1f092165eb 19
cassyarduino 7:ef1f092165eb 20 #include "itoa.h"
cassyarduino 7:ef1f092165eb 21 #include <string.h>
cassyarduino 7:ef1f092165eb 22
cassyarduino 7:ef1f092165eb 23 #ifdef __cplusplus
cassyarduino 7:ef1f092165eb 24 extern "C"{
cassyarduino 7:ef1f092165eb 25 #endif // __cplusplus
cassyarduino 7:ef1f092165eb 26
cassyarduino 7:ef1f092165eb 27 #if 0
cassyarduino 7:ef1f092165eb 28 /* reverse: reverse string s in place */
cassyarduino 7:ef1f092165eb 29 static void reverse( char s[] )
cassyarduino 7:ef1f092165eb 30 {
cassyarduino 7:ef1f092165eb 31 int i, j ;
cassyarduino 7:ef1f092165eb 32 char c ;
cassyarduino 7:ef1f092165eb 33
cassyarduino 7:ef1f092165eb 34 for ( i = 0, j = strlen(s)-1 ; i < j ; i++, j-- )
cassyarduino 7:ef1f092165eb 35 {
cassyarduino 7:ef1f092165eb 36 c = s[i] ;
cassyarduino 7:ef1f092165eb 37 s[i] = s[j] ;
cassyarduino 7:ef1f092165eb 38 s[j] = c ;
cassyarduino 7:ef1f092165eb 39 }
cassyarduino 7:ef1f092165eb 40 }
cassyarduino 7:ef1f092165eb 41
cassyarduino 7:ef1f092165eb 42 /* itoa: convert n to characters in s */
cassyarduino 7:ef1f092165eb 43 extern void itoa( int n, char s[] )
cassyarduino 7:ef1f092165eb 44 {
cassyarduino 7:ef1f092165eb 45 int i, sign ;
cassyarduino 7:ef1f092165eb 46
cassyarduino 7:ef1f092165eb 47 if ( (sign = n) < 0 ) /* record sign */
cassyarduino 7:ef1f092165eb 48 {
cassyarduino 7:ef1f092165eb 49 n = -n; /* make n positive */
cassyarduino 7:ef1f092165eb 50 }
cassyarduino 7:ef1f092165eb 51
cassyarduino 7:ef1f092165eb 52 i = 0;
cassyarduino 7:ef1f092165eb 53 do
cassyarduino 7:ef1f092165eb 54 { /* generate digits in reverse order */
cassyarduino 7:ef1f092165eb 55 s[i++] = n % 10 + '0'; /* get next digit */
cassyarduino 7:ef1f092165eb 56 } while ((n /= 10) > 0) ; /* delete it */
cassyarduino 7:ef1f092165eb 57
cassyarduino 7:ef1f092165eb 58 if (sign < 0 )
cassyarduino 7:ef1f092165eb 59 {
cassyarduino 7:ef1f092165eb 60 s[i++] = '-';
cassyarduino 7:ef1f092165eb 61 }
cassyarduino 7:ef1f092165eb 62
cassyarduino 7:ef1f092165eb 63 s[i] = '\0';
cassyarduino 7:ef1f092165eb 64
cassyarduino 7:ef1f092165eb 65 reverse( s ) ;
cassyarduino 7:ef1f092165eb 66 }
cassyarduino 7:ef1f092165eb 67
cassyarduino 7:ef1f092165eb 68 #else
cassyarduino 7:ef1f092165eb 69
cassyarduino 7:ef1f092165eb 70 extern char* itoa( int value, char *string, int radix )
cassyarduino 7:ef1f092165eb 71 {
cassyarduino 7:ef1f092165eb 72 return ltoa( value, string, radix ) ;
cassyarduino 7:ef1f092165eb 73 }
cassyarduino 7:ef1f092165eb 74
cassyarduino 7:ef1f092165eb 75 extern char* ltoa( long value, char *string, int radix )
cassyarduino 7:ef1f092165eb 76 {
cassyarduino 7:ef1f092165eb 77 char tmp[33];
cassyarduino 7:ef1f092165eb 78 char *tp = tmp;
cassyarduino 7:ef1f092165eb 79 long i;
cassyarduino 7:ef1f092165eb 80 unsigned long v;
cassyarduino 7:ef1f092165eb 81 int sign;
cassyarduino 7:ef1f092165eb 82 char *sp;
cassyarduino 7:ef1f092165eb 83
cassyarduino 7:ef1f092165eb 84 if ( string == NULL )
cassyarduino 7:ef1f092165eb 85 {
cassyarduino 7:ef1f092165eb 86 return 0 ;
cassyarduino 7:ef1f092165eb 87 }
cassyarduino 7:ef1f092165eb 88
cassyarduino 7:ef1f092165eb 89 if (radix > 36 || radix <= 1)
cassyarduino 7:ef1f092165eb 90 {
cassyarduino 7:ef1f092165eb 91 return 0 ;
cassyarduino 7:ef1f092165eb 92 }
cassyarduino 7:ef1f092165eb 93
cassyarduino 7:ef1f092165eb 94 sign = (radix == 10 && value < 0);
cassyarduino 7:ef1f092165eb 95 if (sign)
cassyarduino 7:ef1f092165eb 96 {
cassyarduino 7:ef1f092165eb 97 v = -value;
cassyarduino 7:ef1f092165eb 98 }
cassyarduino 7:ef1f092165eb 99 else
cassyarduino 7:ef1f092165eb 100 {
cassyarduino 7:ef1f092165eb 101 v = (unsigned long)value;
cassyarduino 7:ef1f092165eb 102 }
cassyarduino 7:ef1f092165eb 103
cassyarduino 7:ef1f092165eb 104 while (v || tp == tmp)
cassyarduino 7:ef1f092165eb 105 {
cassyarduino 7:ef1f092165eb 106 i = v % radix;
cassyarduino 7:ef1f092165eb 107 v = v / radix;
cassyarduino 7:ef1f092165eb 108 if (i < 10)
cassyarduino 7:ef1f092165eb 109 *tp++ = i+'0';
cassyarduino 7:ef1f092165eb 110 else
cassyarduino 7:ef1f092165eb 111 *tp++ = i + 'a' - 10;
cassyarduino 7:ef1f092165eb 112 }
cassyarduino 7:ef1f092165eb 113
cassyarduino 7:ef1f092165eb 114 sp = string;
cassyarduino 7:ef1f092165eb 115
cassyarduino 7:ef1f092165eb 116 if (sign)
cassyarduino 7:ef1f092165eb 117 *sp++ = '-';
cassyarduino 7:ef1f092165eb 118 while (tp > tmp)
cassyarduino 7:ef1f092165eb 119 *sp++ = *--tp;
cassyarduino 7:ef1f092165eb 120 *sp = 0;
cassyarduino 7:ef1f092165eb 121
cassyarduino 7:ef1f092165eb 122 return string;
cassyarduino 7:ef1f092165eb 123 }
cassyarduino 7:ef1f092165eb 124
cassyarduino 7:ef1f092165eb 125 extern char* utoa( unsigned long value, char *string, int radix )
cassyarduino 7:ef1f092165eb 126 {
cassyarduino 7:ef1f092165eb 127 return ultoa( value, string, radix ) ;
cassyarduino 7:ef1f092165eb 128 }
cassyarduino 7:ef1f092165eb 129
cassyarduino 7:ef1f092165eb 130 extern char* ultoa( unsigned long value, char *string, int radix )
cassyarduino 7:ef1f092165eb 131 {
cassyarduino 7:ef1f092165eb 132 char tmp[33];
cassyarduino 7:ef1f092165eb 133 char *tp = tmp;
cassyarduino 7:ef1f092165eb 134 long i;
cassyarduino 7:ef1f092165eb 135 unsigned long v = value;
cassyarduino 7:ef1f092165eb 136 char *sp;
cassyarduino 7:ef1f092165eb 137
cassyarduino 7:ef1f092165eb 138 if ( string == NULL )
cassyarduino 7:ef1f092165eb 139 {
cassyarduino 7:ef1f092165eb 140 return 0;
cassyarduino 7:ef1f092165eb 141 }
cassyarduino 7:ef1f092165eb 142
cassyarduino 7:ef1f092165eb 143 if (radix > 36 || radix <= 1)
cassyarduino 7:ef1f092165eb 144 {
cassyarduino 7:ef1f092165eb 145 return 0;
cassyarduino 7:ef1f092165eb 146 }
cassyarduino 7:ef1f092165eb 147
cassyarduino 7:ef1f092165eb 148 while (v || tp == tmp)
cassyarduino 7:ef1f092165eb 149 {
cassyarduino 7:ef1f092165eb 150 i = v % radix;
cassyarduino 7:ef1f092165eb 151 v = v / radix;
cassyarduino 7:ef1f092165eb 152 if (i < 10)
cassyarduino 7:ef1f092165eb 153 *tp++ = i+'0';
cassyarduino 7:ef1f092165eb 154 else
cassyarduino 7:ef1f092165eb 155 *tp++ = i + 'a' - 10;
cassyarduino 7:ef1f092165eb 156 }
cassyarduino 7:ef1f092165eb 157
cassyarduino 7:ef1f092165eb 158 sp = string;
cassyarduino 7:ef1f092165eb 159
cassyarduino 7:ef1f092165eb 160
cassyarduino 7:ef1f092165eb 161 while (tp > tmp)
cassyarduino 7:ef1f092165eb 162 *sp++ = *--tp;
cassyarduino 7:ef1f092165eb 163 *sp = 0;
cassyarduino 7:ef1f092165eb 164
cassyarduino 7:ef1f092165eb 165 return string;
cassyarduino 7:ef1f092165eb 166 }
cassyarduino 7:ef1f092165eb 167 #endif /* 0 */
cassyarduino 7:ef1f092165eb 168
cassyarduino 7:ef1f092165eb 169 #ifdef __cplusplus
cassyarduino 7:ef1f092165eb 170 } // extern "C"
cassyarduino 7:ef1f092165eb 171 #endif // __cplusplus
cassyarduino 35:f9f3a91fe4d4 172
cassyarduino 35:f9f3a91fe4d4 173 #endif