Changeset 80 for branches

Show
Ignore:
Timestamp:
12/07/07 19:13:10 (13 months ago)
Author:
follower
Message:

Use new 'readMatch' routine to match start of the request to simplify state machine.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • branches/follower/wiz810mj/src/demo/WizDemo3/WizDemo3.pde

    r79 r80  
    278278  while (getSn_SR(testSocket) == SOCK_ESTABLISHED) { 
    279279   while (getSn_RX_RSR(testSocket) > 0) { 
    280      theByte = readByte(); 
    281      Serial.print(theByte, BYTE); 
    282      if ((state == STATE_G) && (theByte == 'G')) { 
    283        state = STATE_E; 
    284      } else if ((state == STATE_E) && (theByte == 'E')) { 
    285        state = STATE_T;        
    286      } else if ((state == STATE_T) && (theByte == 'T')) { 
    287        state = STATE_SPACE;        
    288      } else if ((state == STATE_SPACE) && (theByte == ' ')) { 
    289        state = STATE_SLASH;        
    290      } else if ((state == STATE_SLASH) && (theByte == '/')) { 
    291        state = STATE_READ;        
    292      } else if ((state == STATE_READ) && (theByte == '0')) { 
     280 
     281    if (state == STATE_G) { 
     282      if (readMatch("GET /")) { 
     283        state = STATE_READ; 
     284      } else { 
     285        state = STATE_ERR; 
     286      } 
     287    } 
     288         
     289    if (state == STATE_READ) { 
     290      
     291      theByte = readByte(); 
     292       
     293      if (theByte == '0') {         
    293294       digitalWrite(PIN_LED, LOW); 
    294295       ledState = 0; 
    295        //state = STATE_END; 
    296        delay(100);     
    297      } else if ((state == STATE_READ) && (theByte == '1')) { 
     296       delay(100); 
     297     } else if (theByte == '1') { 
    298298       digitalWrite(PIN_LED, HIGH); 
    299299       ledState = 1; 
    300        //state = STATE_END; 
    301300       delay(100);     
    302      } else if (state == STATE_READ) { 
     301     } else { 
    303302       // It's not a valid byte. 
    304303       state = STATE_END;        
    305      } else { 
    306        state = STATE_ERR; 
    307304     } 
     305 
     306    } else { 
     307      state = STATE_ERR; 
     308    } 
    308309       
    309310     if ((state == STATE_ERR) || (state == STATE_END)) {