Go Down

Topic: library to support both ethernet shield types (Read 531 times) previous topic - next topic

lorenzop

this will be my first code post of the new year. hope it's a good one. I wrote this code to easily create a tcp server on either the wiznet or 28j60 chip based shields. this wasn't easy because there aren't any examples for a tcp server using 28j60, so it took a little time to figure it all out. below is an example of my code in use, and the first file I'm posting is just a bunch of functions. I plan to convert it to a library next.

http://growcontrol.com/_files/EthernetLayer.pde

Code: [Select]

// (enable only one)
#define UsingWizNet      true // WIZ5100
//#define UsingEtherShield true // ENC28j60

// send outgoing ethernet data to serial also
#define ethPrintToSerial true

#if defined(UsingWizNet) || defined(UsingEtherShield)
static byte     eth_mac[6] = {0x54,0x55,0x58,0x10,0x00,0x25};
static byte      eth_ip[4] = {192,168,3,110};
static byte eth_gateway[4] = {192,168,3,1};
static byte  eth_subnet[4] = {255,255,255,0};
static uint16_t eth_port   = 80;
#endif


void setup(){
 Serial.begin(115200);
 EthernetLayer_Setup();
 Serial.println("Ready");
}

void loop(){
 EthernetLayer_Loop();
}

void eth_GotData(){
   Serial.println("Got data:");
   while( EthernetLayer_Available() ){
     eth_Print( EthernetLayer_ReadNext() );
   }
   Serial.println();
   Serial.println("Done");
   EthernetLayer_SendData();
   EthernetLayer_ClearBuffer();
}

lorenzop

here's my first library. I wanted to finish it before posting it, but this isn't functional. I've been stuck on a bug for the last few days, and I still don't know what line it's on or the nature of the problem. it would be 10 minutes from finished if I could get it to compile and work. when I do hack it into compiling, the defines don't carry over into the library and the right code isn't included. a lot of other odd symptoms like this.
http://growcontrol.com/_files/EthernetLayer-library-notworking.zip

I hate to say it, but at least for now, I give up on this part of my project. the previous code I posted works, and I can drop it into my project to get the same intended result.

Go Up