- Tue Jan 25, 2011 6:35 pm
#118422
I am using the WebServer Sketch and modified it to read the GET off of a Submit. I have run into a couple of problems. 1st if I uncomment all the "Option" lines the WiFly shield hangs and the green LED stays solid until I close the web browser. The 2nd problem is when I leave the lines commented and then select and item and hit Submit the WiFly Shield hangs 99% of the time until I close the web browser and then it restarts.
I'm thinking it may be a bug in the library...
Code is below!
#include "WiFly.h"
#include "Credentials.h"
#include <WString.h>
String inString = String(100);
#define maxLength 25
#define RUM_PIN 3
#define VODKA_PIN 4
#define PEACHTREE_PIN 5
#define KAHLUA_PIN 6
#define BAILEYS_PIN 7
#define CRANBERRY_PIN 8
#define COKE_PIN 9
#define ORANGEJUICE_PIN 10
Server server(80);
void setup() {
WiFly.begin();
if (!WiFly.join(ssid)) {
while (1) {
}
}
Serial.begin(9600);
Serial.print("IP: ");
Serial.println(WiFly.ip());
server.begin();
}
void loop()
{
Client client = server.available();
if (client) {
boolean current_line_is_blank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
if (inString.length() < maxLength) {
inString += c;
}
if (c == '\n' && current_line_is_blank) {
if (inString.substring(0)=="cowboyroy") {
Serial.println("cowboyroy!");
// then open valves and stuff...
} else if (inString.substring(0)=="sexonthebeach11") {
Serial.println("Sex on the Beach!");
// then open valves and stuff...
}
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("<title>OctaBar</title>");
client.println();
client.println("<body><h2>OctaBar!</h2><br><hr>");
client.println("Please select your drink<br><br>");
client.println("<form method=get>");
client.println("<select name=drink>");
client.println("<option selected value='default'>Select a Drink!</option>");
client.println("<option value='agilligansisland'>A Gilligan's Island </option>");
client.println("<option value='jamaicansunrise'>Jamaican Sunrise </option>");
client.println("<option value='sexonthebeach11'>Sex on the Beach 11 </option>");
client.println("<option value='backfire'>Backfire </option>");
client.println("<option value='cowboyroy'>Cowboy Roy </option>");
client.println("<option value='mistolin'>Mistolin </option>");
client.println("<option value='mudslide1'>Mudslide 1 </option>");
client.println("<option value='powerscrewdriver'>Power screwdriver </option>");
client.println("<option value='screamingorgasm'>Screaming Orgasm </option>");
client.println("<option value='woowoo'>Woo Woo </option>");
/*
client.println("<option value='bermudatriangle'>Bermuda Triangle </option>");
client.println("<option value='brassmonkey'>Brass Monkey </option>");
client.println("<option value='cranberrynewt'>Cranberry Newt </option>");
client.println("<option value='cranberrytoad'>Cranberry Toad </option>");
client.println("<option value='fuzzypeachclari'>Fuzzy Peachclari </option>");
client.println("<option value='fuzzyscrew'>Fuzzy Screw </option>");
client.println("<option value='georgiapeach'>Georgia Peach </option>");
client.println("<option value='wuwu'>Wu Wu </option>");
client.println("<option value='airhead'>Airhead </option>");
client.println("<option value='aranov'>Aranov </option>");
client.println("<option value='babyguiness'>Baby Guinness </option>");
client.println("<option value='badhabbit'>Bad Habit </option>");
client.println("<option value='butterynipple3'>Buttery Nipple 3</option>");
client.println("<option value='chisterpetterson'>Christer Petterson</option>");
client.println("<option value='concrete'>Concrete </option>");
client.println("<option value='cranberryfrog'>Cranberry Frog </option>");
client.println("<option value='cucaracha2'>Cucaracha 2</option>");
client.println("<option value='dreamsicle1'>Dreamsicle 1</option>");
client.println("<option value='fuzzynavel'>Fuzzy Navel</option>");
client.println("<option value='fuzzyrussian'>Fuzzy Russian</option>");
client.println("<option value='fuzzyberry'>Fuzzyberry</option>");
client.println("<option value='grandmomsslipper'>Grandmom's slipper </option>");
client.println("<option value='hotafternoon'>Hot Afternoon </option>");
client.println("<option value='irishfloat'>Irish Float</option>");
client.println("<option value='machine'>Machine </option>");
client.println("<option value='orangatang'>Orangatang </option>");
client.println("<option value='orgasmaladenmark'>Orgasm a la Denmark </option>");
client.println("<option value='rumcoke'>Rum and Coke </option>");
client.println("<option value='sailorsdelight'>Sailor's Delight </option>");
client.println("<option value='screwdriver'>Screwdriver </option>");
client.println("<option value='silkpanties'>Silk Panties </option>");
client.println("<option value='skydiver'>Skydiver</option>");
client.println("<option value='thevaitkus'>The Vaitkus </option>");
client.println("<option value='tootsie'>Tootsie </option>");
client.println("<option value='tootsieroll2'>Tootsie Roll 2</option>");
client.println("<option value='twinsorgasm'>Twins Orgasm</option>");
*/
client.println("</select>");
client.println("<INPUT type='submit' value='Send'>");
client.println("</form>");
client.println("</body></html>");
break;
}
if (c == '\n') {
current_line_is_blank = true;
}
else if (c != '\r') {
current_line_is_blank = false;
}
}
}
inString = "";
delay(100);
client.stop();
}
}
Thanks for the help!
-Patrick
I'm thinking it may be a bug in the library...
Code is below!
#include "WiFly.h"
#include "Credentials.h"
#include <WString.h>
String inString = String(100);
#define maxLength 25
#define RUM_PIN 3
#define VODKA_PIN 4
#define PEACHTREE_PIN 5
#define KAHLUA_PIN 6
#define BAILEYS_PIN 7
#define CRANBERRY_PIN 8
#define COKE_PIN 9
#define ORANGEJUICE_PIN 10
Server server(80);
void setup() {
WiFly.begin();
if (!WiFly.join(ssid)) {
while (1) {
}
}
Serial.begin(9600);
Serial.print("IP: ");
Serial.println(WiFly.ip());
server.begin();
}
void loop()
{
Client client = server.available();
if (client) {
boolean current_line_is_blank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
if (inString.length() < maxLength) {
inString += c;
}
if (c == '\n' && current_line_is_blank) {
if (inString.substring(0)=="cowboyroy") {
Serial.println("cowboyroy!");
// then open valves and stuff...
} else if (inString.substring(0)=="sexonthebeach11") {
Serial.println("Sex on the Beach!");
// then open valves and stuff...
}
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("<title>OctaBar</title>");
client.println();
client.println("<body><h2>OctaBar!</h2><br><hr>");
client.println("Please select your drink<br><br>");
client.println("<form method=get>");
client.println("<select name=drink>");
client.println("<option selected value='default'>Select a Drink!</option>");
client.println("<option value='agilligansisland'>A Gilligan's Island </option>");
client.println("<option value='jamaicansunrise'>Jamaican Sunrise </option>");
client.println("<option value='sexonthebeach11'>Sex on the Beach 11 </option>");
client.println("<option value='backfire'>Backfire </option>");
client.println("<option value='cowboyroy'>Cowboy Roy </option>");
client.println("<option value='mistolin'>Mistolin </option>");
client.println("<option value='mudslide1'>Mudslide 1 </option>");
client.println("<option value='powerscrewdriver'>Power screwdriver </option>");
client.println("<option value='screamingorgasm'>Screaming Orgasm </option>");
client.println("<option value='woowoo'>Woo Woo </option>");
/*
client.println("<option value='bermudatriangle'>Bermuda Triangle </option>");
client.println("<option value='brassmonkey'>Brass Monkey </option>");
client.println("<option value='cranberrynewt'>Cranberry Newt </option>");
client.println("<option value='cranberrytoad'>Cranberry Toad </option>");
client.println("<option value='fuzzypeachclari'>Fuzzy Peachclari </option>");
client.println("<option value='fuzzyscrew'>Fuzzy Screw </option>");
client.println("<option value='georgiapeach'>Georgia Peach </option>");
client.println("<option value='wuwu'>Wu Wu </option>");
client.println("<option value='airhead'>Airhead </option>");
client.println("<option value='aranov'>Aranov </option>");
client.println("<option value='babyguiness'>Baby Guinness </option>");
client.println("<option value='badhabbit'>Bad Habit </option>");
client.println("<option value='butterynipple3'>Buttery Nipple 3</option>");
client.println("<option value='chisterpetterson'>Christer Petterson</option>");
client.println("<option value='concrete'>Concrete </option>");
client.println("<option value='cranberryfrog'>Cranberry Frog </option>");
client.println("<option value='cucaracha2'>Cucaracha 2</option>");
client.println("<option value='dreamsicle1'>Dreamsicle 1</option>");
client.println("<option value='fuzzynavel'>Fuzzy Navel</option>");
client.println("<option value='fuzzyrussian'>Fuzzy Russian</option>");
client.println("<option value='fuzzyberry'>Fuzzyberry</option>");
client.println("<option value='grandmomsslipper'>Grandmom's slipper </option>");
client.println("<option value='hotafternoon'>Hot Afternoon </option>");
client.println("<option value='irishfloat'>Irish Float</option>");
client.println("<option value='machine'>Machine </option>");
client.println("<option value='orangatang'>Orangatang </option>");
client.println("<option value='orgasmaladenmark'>Orgasm a la Denmark </option>");
client.println("<option value='rumcoke'>Rum and Coke </option>");
client.println("<option value='sailorsdelight'>Sailor's Delight </option>");
client.println("<option value='screwdriver'>Screwdriver </option>");
client.println("<option value='silkpanties'>Silk Panties </option>");
client.println("<option value='skydiver'>Skydiver</option>");
client.println("<option value='thevaitkus'>The Vaitkus </option>");
client.println("<option value='tootsie'>Tootsie </option>");
client.println("<option value='tootsieroll2'>Tootsie Roll 2</option>");
client.println("<option value='twinsorgasm'>Twins Orgasm</option>");
*/
client.println("</select>");
client.println("<INPUT type='submit' value='Send'>");
client.println("</form>");
client.println("</body></html>");
break;
}
if (c == '\n') {
current_line_is_blank = true;
}
else if (c != '\r') {
current_line_is_blank = false;
}
}
}
inString = "";
delay(100);
client.stop();
}
}
Thanks for the help!
-Patrick