From 504380217ef10dba532d28e124a27d152162872e Mon Sep 17 00:00:00 2001 From: follower Date: Fri, 7 Dec 2007 12:40:54 +0000 Subject: [PATCH] Now we've copied xSmurf's PROGMEM and other changes to his branch we'll back them out from here for now as they require SPrint from cral which we don't yet supply by default (this caused problems for people trying out the code in its current state.). git-svn-id: svn+ssh://oldsvn/home/mlalondesvn/svn/cral@72 3ee9b42a-b53c-0410-a25e-f0b6218d5d5b --- .../wiz810mj/src/demo/WizDemo2/WizDemo2.pde | 249 +++++++++--------- 1 file changed, 124 insertions(+), 125 deletions(-) diff --git a/branches/follower/wiz810mj/src/demo/WizDemo2/WizDemo2.pde b/branches/follower/wiz810mj/src/demo/WizDemo2/WizDemo2.pde index 5d717f7..05340c2 100644 --- a/branches/follower/wiz810mj/src/demo/WizDemo2/WizDemo2.pde +++ b/branches/follower/wiz810mj/src/demo/WizDemo2/WizDemo2.pde @@ -4,40 +4,40 @@ See: - + Current features: - * Initial W5100 driver port: - - + new-style network configuration - - + socket creation/listening/closing - - + Sending/Receiving okay - - + example "echo" server (no longer) - - + example "web server" with LED flash. + * Initial W5100 driver port: + + + new-style network configuration + + + socket creation/listening/closing + + + Sending/Receiving okay + + + example "echo" server (no longer) + + + example "web server" with LED flash. - * Terrible hacked-together code + * Terrible hacked-together code Author: - follower@rancidbacon.com - + follower@rancidbacon.com + License: - - LGPL - + + LGPL + Version: - 20071106-0005+ - + 20071106-0005+ + */ #include -#include + // Define SPI-related pins @@ -56,7 +56,7 @@ byte ip[6]; void configureSPI() { /* - Configure pins and registers required for SPI communication. + Configure pins and registers required for SPI communication. */ @@ -69,16 +69,16 @@ void configureSPI() { digitalWrite(PIN_SLAVE_SELECT, HIGH); // Disable slave /* - Configure SPI Control Register (SPCR) (All values initially 0) - Bit Description - 7 SPI Interrupt Enable -- disable (SPIE --> 0) - 6 SPI Enable -- enable (SPE --> 1) - 5 Data Order -- MSB 1st (DORD --> 0) (Slave specific) - 4 Master/Slave Select -- master (MSTR --> 1) - 3 Clock Polarity -- (CPOL --> 0) (Slave specific) ("Mode") - 2 Clock Phase -- (CPHA --> 0) (Slave specific) - 1 SPI Clock Rate Select 1 -- } (SPR1 --> 0) - 0 SPI Clock Rate Select 0 -- } fOSC/4 (SPR0 --> 0) ("Fastest" but see SPI2X in SPSR) + Configure SPI Control Register (SPCR) (All values initially 0) + Bit Description + 7 SPI Interrupt Enable -- disable (SPIE --> 0) + 6 SPI Enable -- enable (SPE --> 1) + 5 Data Order -- MSB 1st (DORD --> 0) (Slave specific) + 4 Master/Slave Select -- master (MSTR --> 1) + 3 Clock Polarity -- (CPOL --> 0) (Slave specific) ("Mode") + 2 Clock Phase -- (CPHA --> 0) (Slave specific) + 1 SPI Clock Rate Select 1 -- } (SPR1 --> 0) + 0 SPI Clock Rate Select 0 -- } fOSC/4 (SPR0 --> 0) ("Fastest" but see SPI2X in SPSR) */ SPCR = (1< "); - SPrint("send result: "); + Serial.print("send result: "); //Serial.println(send(testSocket, buffer, 6), DEC); Serial.println(send(testSocket, buffer, strlen((char *)buffer)), DEC); } @@ -181,39 +181,38 @@ void sendPrompt(uint8_t *buffer) { // {Socket targetSocket, ) { void sendBanner(uint8_t *buffer, int ledState) { // {Socket targetSocket, ) { //strcpy((char *) buffer, "Content-Type: text/plain\n\nfoo!\n"); - if (ledState) { strcpy((char *) buffer, "HTTP/1.1 200 OK\n\rContent-Type: text/html\n\r\n\rfoo!\n\r"); + if (ledState) { buffer[66] = 'F'; } else { - strcpy((char *) buffer, "HTTP/1.1 200 OK\n\rContent-Type: text/html\n\r\n\rbar!\n\r"); - buffer[68] = 'F'; + buffer[68] = 'F'; } - - SPrint("send result: "); + + Serial.print("send result: "); Serial.println(send(testSocket, buffer, strlen((char *)buffer)), DEC); } void loop() { - SPrintln("Test W5100 socket..."); + Serial.println("Test W5100 socket..."); - SPrint("Create socket result: "); + Serial.print("Create socket result: "); Serial.println(socket(testSocket, Sn_MR_TCP, 80, 0), DEC); - SPrint("Socket status: "); + Serial.print("Socket status: "); Serial.println(IINCHIP_READ(Sn_SR(testSocket)), HEX); if (IINCHIP_READ(Sn_SR(testSocket)) == SOCK_CLOSED) { - SPrintln("Socket still closed, waiting..."); + Serial.println("Socket still closed, waiting..."); while (IINCHIP_READ(Sn_SR(testSocket)) == SOCK_CLOSED) { //pass } } - SPrint("Listen on socket result: "); + Serial.print("Listen on socket result: "); Serial.println(listen(testSocket), DEC); - - SPrintln("Waiting for connection..."); + + Serial.println("Waiting for connection..."); while (getSn_SR(testSocket) == SOCK_LISTEN) { delay(500); @@ -223,7 +222,7 @@ void loop() { getSn_DIPR(testSocket, ip); - SPrint("Destination IP read (last digit): "); + Serial.print("Destination IP read (last digit): "); Serial.println(ip[3], DEC); @@ -257,71 +256,71 @@ void loop() { while (getSn_SR(testSocket) == SOCK_ESTABLISHED) { while (getSn_RX_RSR(testSocket) > 0) { - recv(testSocket, bytesReceived, 1); - theByte = bytesReceived[0]; - //Serial.print(bytesReceived[0], BYTE); - Serial.print(theByte, BYTE); - if ((state == STATE_G) && (theByte == 'G')) { - state = STATE_E; - } else if ((state == STATE_E) && (theByte == 'E')) { - state = STATE_T; - } else if ((state == STATE_T) && (theByte == 'T')) { - state = STATE_SPACE; - } else if ((state == STATE_SPACE) && (theByte == ' ')) { - state = STATE_SLASH; - } else if ((state == STATE_SLASH) && (theByte == '/')) { - state = STATE_READ; - } else if ((state == STATE_READ) && (theByte == '0')) { - digitalWrite(PIN_LED, LOW); - ledState = 0; - //state = STATE_END; - delay(100); - } else if ((state == STATE_READ) && (theByte == '1')) { - digitalWrite(PIN_LED, HIGH); - ledState = 1; - //state = STATE_END; - delay(100); - } else if (state == STATE_READ) { - // It's not a valid byte. - state = STATE_END; - } else { - state = STATE_ERR; - } + recv(testSocket, bytesReceived, 1); + theByte = bytesReceived[0]; + //Serial.print(bytesReceived[0], BYTE); + Serial.print(theByte, BYTE); + if ((state == STATE_G) && (theByte == 'G')) { + state = STATE_E; + } else if ((state == STATE_E) && (theByte == 'E')) { + state = STATE_T; + } else if ((state == STATE_T) && (theByte == 'T')) { + state = STATE_SPACE; + } else if ((state == STATE_SPACE) && (theByte == ' ')) { + state = STATE_SLASH; + } else if ((state == STATE_SLASH) && (theByte == '/')) { + state = STATE_READ; + } else if ((state == STATE_READ) && (theByte == '0')) { + digitalWrite(PIN_LED, LOW); + ledState = 0; + //state = STATE_END; + delay(100); + } else if ((state == STATE_READ) && (theByte == '1')) { + digitalWrite(PIN_LED, HIGH); + ledState = 1; + //state = STATE_END; + delay(100); + } else if (state == STATE_READ) { + // It's not a valid byte. + state = STATE_END; + } else { + state = STATE_ERR; + } + + if ((state == STATE_ERR) || (state == STATE_END)) { + Serial.println(""); + break; + } + + /* + dataLength = getSn_RX_RSR(testSocket); + + if (dataLength >= MAX_RX_BUFFER_SIZE) { // TODO: blah, blah... + dataLength = MAX_RX_BUFFER_SIZE-1; + } + // Serial.print("dataLength: "); Serial.println(dataLength, HEX); + //Serial.print("recv result: "); + //Serial.println(recv(testSocket, bytesReceived, dataLength), DEC); // NOTE: Throws away unread portion? No? + recv(testSocket, bytesReceived, dataLength); // TODO: Return length? + bytesReceived[dataLength]=0x00; + Serial.print((char *)bytesReceived); + + //Serial.print("send result: "); + //Serial.println(send(testSocket, bytesReceived, dataLength), DEC); + + //sendPrompt(bytesReceived); + */ - if ((state == STATE_ERR) || (state == STATE_END)) { - SPrintln(""); - break; - } - - /* - dataLength = getSn_RX_RSR(testSocket); - - if (dataLength >= MAX_RX_BUFFER_SIZE) { // TODO: blah, blah... - dataLength = MAX_RX_BUFFER_SIZE-1; - } - // SPrint("dataLength: "); Serial.println(dataLength, HEX); - //SPrint("recv result: "); - //Serial.println(recv(testSocket, bytesReceived, dataLength), DEC); // NOTE: Throws away unread portion? No? - recv(testSocket, bytesReceived, dataLength); // TODO: Return length? - bytesReceived[dataLength]=0x00; - Serial.print((char *)bytesReceived); - - //SPrint("send result: "); - //Serial.println(send(testSocket, bytesReceived, dataLength), DEC); - - //sendPrompt(bytesReceived); - */ - } sendBanner(bytesToSend, ledState); //sendPrompt(bytesReceived); break; } - - close(testSocket); + disconnect(testSocket); - - SPrintln("End test W5100 socket..."); + close(testSocket); + + Serial.println("End test W5100 socket...");