set uart baudrate 115200 set ip localport 80
The basic setup procedure that I used is detailed in a previous post covering how to set up an ad-hoc network to configure the WiFly along with some example code make a Teensy3.0 and WiFly operate as an echo server.
Assuming this is done, the following code will serve up a simple HTML page that alternately displays "Welcome!" or "Booyah!" when the page is reloaded.
int read_message( const char *msg, int len ){ for( int i=0; i<len; i++ ){ while( !Serial3.available() ){ } if( Serial3.read() != msg[i] ) return 0; } return 1; } int read_line( char *line ){ int pos = 0; char c = '\0'; while( c != '\n' ){ if( Serial3.available() ){ c = Serial3.read(); line[pos++] = c; } } line[pos] = '\0'; return pos; } void send_response( const char *data ){ Serial3.print( "HTTP/1.1 200 OK\r\n"); Serial3.print( "Content-Type: text/html\r\n" ); Serial3.print( "Content-Length: " ); Serial3.print( strlen( data )+1 ); Serial3.print( "\r\n" ); Serial3.print( "Connection: Close\r\n" ); Serial3.print( "\r\n" ); Serial3.print( data ); Serial3.write( (byte)0 ); } void handle_connection( int val ){ char cmd[128], line[128]; if( !read_message( "*OPEN*", 6 ) ) return; Serial.println("client connected!"); read_line( cmd ); Serial.println( cmd ); while( read_line( line ) > 1 ){ Serial.print( line ); if( line[0] == '\r' ) break; } const char *page[] = { "<html><body>booyah!</body></html>\n", "<html><body>welcome!</body></html>\n" }; Serial.println("responding with" ); Serial.println( page[val%2] ); send_response( page[val%2] ); read_message( "*CLOS*", 6 ); } void setup(){ Serial.begin(115200); Serial3.begin(115200); } int id = 0; void loop(){ handle_connection(id++); }
This is obviously some pretty brittle and stripped down code, there is no bounds checking on input, nor are the input requests parsed to see what they actually are. Parsing the cmd string in the handle_connection function would handle this, however it does demonstrate serving pages from the Teensy. Output is as expected when the IP for the RN-XV is entered into Firefox, alternating "Welcome!" and "Booyah!" as the page is reloaded.
With some simple input parsing, this would make it easy to do basic querying of the state of the Teensy.