/* * Modifed from UIPEthernet EchoServer example. * * UIPEthernet is a TCP/IP stack that can be used with a enc28j60 based * Ethernet-shield. * */ #define DEBUG 1 #define MACADDRESS 0x00,0x01,0x02,0x03,0x04,0x05 #define MYIPADDR 192,168,20,177 #define MYIPMASK 255,255,255,0 #define MYDNS 192,168,20,1 #define MYGW 192,168,20,1 #define LISTENPORT 5025 #define UARTBAUD 115200 #include #include #include #include "utility/logging.h" uint8_t mac[6] = {MACADDRESS}; uint8_t myIP[4] = {MYIPADDR}; uint8_t myMASK[4] = {MYIPMASK}; uint8_t myDNS[4] = {MYDNS}; uint8_t myGW[4] = {MYGW}; EthernetClient client; EthernetServer server = EthernetServer(LISTENPORT); void setup() { Serial.begin(9600); Serial.println("Serial Done"); Ethernet.begin(mac,myIP,myDNS,myGW,myMASK); // start listening for clients server.begin(); // Report address Serial.print("MAC>>"); for (int i = 0; i < 6; i++) { if (mac[i] < 16) { Serial.print("0"); } Serial.print(mac[i], HEX); if (i < 5) { Serial.print(":"); } } Serial.println(); Serial.print("IP >>"); Serial.println(Ethernet.localIP()); } void loop() { size_t size; String message = ""; client = server.available(); if (client){ Serial.println("Client Connected!!!"); while(client.connected()){ // Recive Command if((size = client.available()) > 0){ uint8_t* msg = (uint8_t*)malloc(size); size = client.read(msg,size); for(int i = 0 ; i < size ; i++){ message += (char)msg[i]; } if(size > 2){ if((msg[size-1] == '\n') && (msg[size-2] == '\r')){ #if DEBUG Serial.print(size); Serial.println(" >> " + message); #endif //cmd = demuxCMD(message, &cmdData); // for IFB client.print(message); message = ""; } } free(msg); } // Action by Command //if(cmd) } Serial.println("Client Disconnected..."); } }