WiFi Program not starting

I am trying to get a rugged circuits yellowjacket to host a WiServer that will allow me to control a robot through a web interface with a wireless connection. However it is getting stuck and I am not even getting the print lines in the:

boolean sendPage()
function.

I've been playing with this and some example code and I can't quite figure out what is wrong with this. Any help would be appreciated.

I have all of the appropriate libraries that are being referenced, well servo and string are both arduino. With other demo programs I've used using #include <WiServer.h> works fine.

Thanks,
Postholes

#include <WiServer.h>
#include <string.h>
#include <Servo.h>

#define WIRELESS_MODE_ADHOC   2

// Variable Declaration ======================================================
#define lasers 8
#define solenoid 12
#define range 9 // Just in case we need to use Analog then use pin A5
#define elevation 10

// pins for motor speed and direction
int speed1 = 5, speed2 = 6, direction1 = 4, direction2 = 7;

// starting speed and rotation offest
int startSpeed = 70, rotate = 30;

// initial speeds of left and right motors
int left = startSpeed, right = startSpeed;

// Elevation Variable
int eleValue;

// Servo Declaration and initialization
Servo eleServo;

// Range finder variables
unsigned int timeNow;
long pwmRange, inch;
boolean firingRange = false;
int fullSteamAhead = 7;

// Wireless configuration parameters ----------------------------------------
unsigned char local_ip[] = { 10,1,1,5};   // IP address of WiShield
unsigned char gateway_ip[] = { 192,168,1,1};   // router or gateway IP address
unsigned char subnet_mask[] = { 255,0,0,0};   // subnet mask for the local network
const prog_char ssid[] PROGMEM = { "PingTheBot"};      // max 32 bytes
unsigned char security_type = 0;   // 0 - open; 1 - WEP; 2 - WPA; 3 - WPA2

// WPA/WPA2 passphrase
const prog_char security_passphrase[] PROGMEM = { "12345678"};   // max 64 characters

// WEP 128-bit keys
// sample HEX keys
prog_uchar wep_keys[] PROGMEM = { 
  0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d,   // Key 0
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   // Key 1
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   // Key 2
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // Key 3
};

// setup the wireless mode
// infrastructure - connect to AP
// adhoc - connect to another WiFi device
unsigned char wireless_mode = WIRELESS_MODE_ADHOC;

unsigned char ssid_len;
unsigned char security_passphrase_len;
// End of wireless configuration parameters ----------------------------------------

/* boolean states[3]; //holds led states */
boolean states[7]; // holds states for left, forward, right, laser, fire, stop, elevation up, elevation down
int stateCounter; //used as a temporary variable

char tmpStrCat[512];
char numAsCharBuff[2];
char ledChange;

// Range finding function
boolean findRange()
{
	boolean goStopValue = false;
	
	pwmRange = pulseIn(range, HIGH);
	
	// 147uS per inch according to datasheet
	inch = pwmRange / 147;
	
	if ((inch <= fullSteamAhead) && (millis() - timeNow) > 250)
	{ // If sensor reads something at or closer than 7 inches, send all stop
		timeNow = millis();
		goStopValue = false;
		firingRange = false;
		return goStopValue;
	}
	else
	{
		goStopValue = true;
		if (goStopValue && (inch < 60))
		{
			firingRange = true;
		}
		return goStopValue;
	}
	
	return goStopValue;
}

// Turn left function
void turnLeft()
{
	left = rotate;
	right = 0;
	analogWrite(speed2, right);
	analogWrite(speed1, left);
}

// Turn Right function
void turnRight()
{
	right = rotate;
	left = 0;
	analogWrite(speed2, right);
	analogWrite(speed1, left);
}

// Forward Function
void forward()
{
	if (findRange())
	{
		left = startSpeed;
		right = startSpeed;
		analogWrite(speed1, left);
		analogWrite(speed2, right);
	}
	else
	{
		left = 0;
		right = 0;
		analogWrite(speed1, left);
		analogWrite(speed2, right);
	}
}

// laser function
void laser()
{
	digitalWrite(lasers, HIGH);
}

// fire weapon function
void fireWeapon()
{
	if (firingRange)
	{
		digitalWrite(solenoid, HIGH);
		delay(250);
		digitalWrite(solenoid, LOW);
	}
}

// stop funtion, instead of just stopping this puts robot in near reset state
void stopRobot()
{
	eleValue = 20;
	analogWrite(speed1, 0);
	analogWrite(speed2, 0);
	digitalWrite(lasers, LOW);
	eleServo.write(eleValue);
}

// Elevation up function
void elevationUp()
{
	int eleValueMax = 80;
	if (eleValue < eleValueMax)
	{
		eleValue = eleValue + 10;
	}
	else
	{
		eleValue = 80;
	}
	eleServo.write(eleValue);
}

// elevation down function
void elevationDown()
{
	int eleValueMin = 20;
	if (eleValue > eleValueMin)
	{
		eleValue = eleValue - 10;
	}
	else
	{
		eleValue = 20;
	}
	eleServo.write(eleValue);
}

// reads states and calls proper function. Takes integer ledChange
// sets all states != ledChange to false.
void writeStates(int pinChange)
{
	// turn off all states but the one user updated
	int i;
	for (i = 0; i < 7; i++)
	{
		if (i != pinChange)
		{
			states[i] = false;
		}
	}


	//  set States or call functions to run to handle robot control
	switch (pinChange)
	{
		case 0:
			turnLeft();
			break;
		case 1:
			forward();
			break;
		case 2:
			turnRight();
			break;
		case 3:
			laser();
			break;
		case 4:
			fireWeapon();
			break;
		case 5:
			stopRobot();
			break;
		case 6:
			elevationUp();
			break;
		case 7:
			elevationDown();
			break;
	}
}

// This is our page serving function that generates web pages
boolean sendPage(char* URL)
{
	// Test print begin =======================================
	Serial.println("boolean sendPage Being page printing");
	// test print end =======================================
	
	Serial.println("Page printing begun");

	//printStates();
	writeStates(ledChange);

	if (URL[1] == '?' && URL[2] == 'R') // R0 = left, R1 = forward, R2 = right, R3 = laser, R4 = fire, R5 = stop, R6 = elevation up, R7 = elevation down
	{	
		ledChange = (int)(URL[3] - 48);

		// Write the states to the board
		writeStates(ledChange);

		//after having change state, return the user to the index page.
		WiServer.print("<HTML><HEAD><meta http-equiv='REFRESH' content='0;url=/'></HEAD></HTML>");
		return true;
	}
  
	if (strcmp(URL, "/") == false)
	{
		WiServer.print("<html><head><title>Predator Bot</title></head>");

		WiServer.print("<body><center>Select the control state to change:<center>\n<center>");
		// R0 = left, R1 = forward, R2 = right, R3 = laser, R4 = fire, R5 = stop, R6 = elevation up, R7 = elevation down
		tmpStrCat[0] = '\0';
		strcat(tmpStrCat, "<a href=?R0>Left</a>");
		strcat(tmpStrCat, "<a href=?R1>Forward</a>");
		strcat(tmpStrCat, "<a href=?R2>Right</a>");
		strcat(tmpStrCat, "<a href=?R3>Lasers</a>");
		strcat(tmpStrCat, "<a href=?R6>Elevation Up</a>");
		strcat(tmpStrCat, "<a href=?R7>Elevation Down</a>");
		strcat(tmpStrCat, "<a href=?R4>Fire Weapon</a>");
		strcat(tmpStrCat, "<p></p><p><h1><a href=?R5>Stop</a></h1></p>");
		WiServer.print(tmpStrCat);

		WiServer.print("</body></html> ");
		return true;
	}
}

void setup() 
{
	// Set pins to proper values
	pinMode(speed1, OUTPUT);
	pinMode(speed2, OUTPUT);
	pinMode(direction1, OUTPUT);
	pinMode(direction2, OUTPUT);
	pinMode(lasers, OUTPUT);
	pinMode(solenoid, OUTPUT);
	pinMode(elevation, OUTPUT);
	pinMode(range, INPUT);

	// set default elevation for servo
	eleValue = 20;

	// set up servo for elevation control
	eleServo.attach(elevation);
	eleServo.write(eleValue);

	// set motor direction to forward
	digitalWrite(direction1, HIGH);
	digitalWrite(direction2, HIGH);

	// set speed of both motors
	analogWrite(speed1, left);
	analogWrite(speed2, right);

	// begin serial output
	Serial.begin(9600);

	// Test printing ===============================================
	Serial.println("Setup running, WiServer.Init next command");
	// End test printing ===============================================

	// WiServer Initialization
	WiServer.init(sendPage);

	// Test printing =======================================
        Serial.println("WiServer.init(sendPage) happened");
	// end test printing =======================================

	// Set all states to false during initial setup
	int i;

	for (i = 0; i < 7; i++)
	{
		states[i] = false;
	}

	// Initially set time values
	timeNow = millis();
}

void loop()
{
	// Run WiServer
	WiServer.server_task();

	delay(10);
}