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:
32:e77cbe3783e5
Release: 2.0.4

Who changed what in which revision?

UserRevisionLine numberNew contents of line
cassyarduino 0:e3fb1267e3c3 1 /*
cassyarduino 0:e3fb1267e3c3 2 * UIPEthernet EchoServer example.
cassyarduino 0:e3fb1267e3c3 3 *
cassyarduino 0:e3fb1267e3c3 4 * UIPEthernet is a TCP/IP stack that can be used with a enc28j60 based
cassyarduino 0:e3fb1267e3c3 5 * Ethernet-shield.
cassyarduino 0:e3fb1267e3c3 6 *
cassyarduino 0:e3fb1267e3c3 7 * UIPEthernet uses the fine uIP stack by Adam Dunkels <adam@sics.se>
cassyarduino 0:e3fb1267e3c3 8 *
cassyarduino 0:e3fb1267e3c3 9 * -----------------
cassyarduino 0:e3fb1267e3c3 10 *
cassyarduino 0:e3fb1267e3c3 11 * This Hello World example sets up a server at 192.168.1.6 on port 1000.
cassyarduino 0:e3fb1267e3c3 12 * Telnet here to access the service. The uIP stack will also respond to
cassyarduino 0:e3fb1267e3c3 13 * pings to test if you have successfully established a TCP connection to
cassyarduino 0:e3fb1267e3c3 14 * the Arduino.
cassyarduino 0:e3fb1267e3c3 15 *
cassyarduino 0:e3fb1267e3c3 16 * This example was based upon uIP hello-world by Adam Dunkels <adam@sics.se>
cassyarduino 0:e3fb1267e3c3 17 * Ported to the Arduino IDE by Adam Nielsen <malvineous@shikadi.net>
cassyarduino 0:e3fb1267e3c3 18 * Adaption to Enc28J60 by Norbert Truchsess <norbert.truchsess@t-online.de>
cassyarduino 0:e3fb1267e3c3 19 */
cassyarduino 0:e3fb1267e3c3 20
cassyarduino 32:e77cbe3783e5 21 #define MACADDRESS 0x00,0x01,0x02,0x03,0x04,0x05
cassyarduino 32:e77cbe3783e5 22 #define MYIPADDR 192,168,1,6
cassyarduino 32:e77cbe3783e5 23 #define MYIPMASK 255,255,255,0
cassyarduino 32:e77cbe3783e5 24 #define MYDNS 192,168,1,1
cassyarduino 32:e77cbe3783e5 25 #define MYGW 192,168,1,1
cassyarduino 32:e77cbe3783e5 26 #define LISTENPORT 1000
cassyarduino 32:e77cbe3783e5 27 #define UARTBAUD 115200
cassyarduino 32:e77cbe3783e5 28
cassyarduino 11:3fb19220d9ec 29 #if defined(__MBED__)
cassyarduino 11:3fb19220d9ec 30 #include <mbed.h>
cassyarduino 11:3fb19220d9ec 31 #include "mbed/millis.h"
cassyarduino 11:3fb19220d9ec 32 #define delay(x) wait_ms(x)
cassyarduino 11:3fb19220d9ec 33 #define PROGMEM
cassyarduino 11:3fb19220d9ec 34 #include "mbed/Print.h"
cassyarduino 11:3fb19220d9ec 35 #endif
cassyarduino 11:3fb19220d9ec 36
cassyarduino 0:e3fb1267e3c3 37 #include <UIPEthernet.h>
cassyarduino 0:e3fb1267e3c3 38 // The connection_data struct needs to be defined in an external file.
cassyarduino 0:e3fb1267e3c3 39 #include <UIPServer.h>
cassyarduino 0:e3fb1267e3c3 40 #include <UIPClient.h>
cassyarduino 0:e3fb1267e3c3 41 #include "utility/logging.h"
cassyarduino 0:e3fb1267e3c3 42
cassyarduino 32:e77cbe3783e5 43 uint8_t mac[6] = {MACADDRESS};
cassyarduino 32:e77cbe3783e5 44 uint8_t myIP[4] = {MYIPADDR};
cassyarduino 32:e77cbe3783e5 45 uint8_t myMASK[4] = {MYIPMASK};
cassyarduino 32:e77cbe3783e5 46 uint8_t myDNS[4] = {MYDNS};
cassyarduino 32:e77cbe3783e5 47 uint8_t myGW[4] = {MYGW};
cassyarduino 32:e77cbe3783e5 48
cassyarduino 32:e77cbe3783e5 49 EthernetServer server = EthernetServer(LISTENPORT);
cassyarduino 0:e3fb1267e3c3 50
cassyarduino 11:3fb19220d9ec 51 #if defined(ARDUINO)
cassyarduino 11:3fb19220d9ec 52 void setup() {
cassyarduino 11:3fb19220d9ec 53 #endif
cassyarduino 11:3fb19220d9ec 54 #if defined(__MBED__)
cassyarduino 11:3fb19220d9ec 55 int main() {
cassyarduino 11:3fb19220d9ec 56 #endif
cassyarduino 0:e3fb1267e3c3 57 #if ACTLOGLEVEL>LOG_NONE
cassyarduino 12:aef29fbc4a62 58 #if defined(ARDUINO)
cassyarduino 32:e77cbe3783e5 59 LogObject.begin(UARTBAUD);
cassyarduino 12:aef29fbc4a62 60 #endif
cassyarduino 12:aef29fbc4a62 61 #if defined(__MBED__)
cassyarduino 12:aef29fbc4a62 62 Serial LogObject(SERIAL_TX,SERIAL_RX);
cassyarduino 32:e77cbe3783e5 63 LogObject.baud(UARTBAUD);
cassyarduino 12:aef29fbc4a62 64 #endif
cassyarduino 0:e3fb1267e3c3 65 #endif
cassyarduino 0:e3fb1267e3c3 66
cassyarduino 32:e77cbe3783e5 67 // initialize the ethernet device
cassyarduino 32:e77cbe3783e5 68 //Ethernet.begin(mac,myIP);
cassyarduino 32:e77cbe3783e5 69 Ethernet.begin(mac,myIP,myDNS,myGW,myMASK);
cassyarduino 32:e77cbe3783e5 70 // start listening for clients
cassyarduino 32:e77cbe3783e5 71 server.begin();
cassyarduino 11:3fb19220d9ec 72 #if defined(ARDUINO)
cassyarduino 0:e3fb1267e3c3 73 }
cassyarduino 0:e3fb1267e3c3 74
cassyarduino 11:3fb19220d9ec 75 void loop() {
cassyarduino 11:3fb19220d9ec 76 #endif
cassyarduino 11:3fb19220d9ec 77
cassyarduino 11:3fb19220d9ec 78 #if defined(__MBED__)
cassyarduino 11:3fb19220d9ec 79 while(true) {
cassyarduino 11:3fb19220d9ec 80 #endif
cassyarduino 0:e3fb1267e3c3 81 size_t size;
cassyarduino 0:e3fb1267e3c3 82
cassyarduino 0:e3fb1267e3c3 83 if (EthernetClient client = server.available())
cassyarduino 0:e3fb1267e3c3 84 {
cassyarduino 0:e3fb1267e3c3 85 if (client)
cassyarduino 0:e3fb1267e3c3 86 {
cassyarduino 0:e3fb1267e3c3 87 while((size = client.available()) > 0)
cassyarduino 0:e3fb1267e3c3 88 {
cassyarduino 0:e3fb1267e3c3 89 uint8_t* msg = (uint8_t*)malloc(size);
cassyarduino 0:e3fb1267e3c3 90 size = client.read(msg,size);
cassyarduino 0:e3fb1267e3c3 91 #if ACTLOGLEVEL>=LOG_INFO
cassyarduino 0:e3fb1267e3c3 92 LogObject.uart_send_buf_len(msg,size);
cassyarduino 0:e3fb1267e3c3 93 #endif
cassyarduino 0:e3fb1267e3c3 94 client.write(msg,size);
cassyarduino 0:e3fb1267e3c3 95 free(msg);
cassyarduino 0:e3fb1267e3c3 96 }
cassyarduino 0:e3fb1267e3c3 97 }
cassyarduino 0:e3fb1267e3c3 98 }
cassyarduino 0:e3fb1267e3c3 99 }
cassyarduino 11:3fb19220d9ec 100 #if defined(__MBED__)
cassyarduino 11:3fb19220d9ec 101 }
cassyarduino 11:3fb19220d9ec 102 #endif