Dependencies:   mbed

Dependents:   TCP

Revision:
0:58c3d014a4e7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/HTTPServerHelloWorld.cpp	Tue Sep 06 18:05:46 2011 +0000
@@ -0,0 +1,103 @@
+#include "mbed.h"
+#include "EthernetNetIf.h"
+#include "HTTPServer.h"
+#include "HTTPClient.h"
+
+#define LOCAL "local"
+Serial pc(p9,p10);
+HTTPServer svr;
+
+DigitalOut led1(LED1, "led1");
+DigitalOut led2(LED2, "led2");
+DigitalOut led3(LED3, "led3");
+DigitalOut led4(LED4, "led4");
+
+EthernetNetIf eth(
+  IpAddr(169,254,113,94),   //IP Address
+  IpAddr(255,255,0,0),      //Network Mask
+  IpAddr(129,168,1,1),      //Gateway  /129.168.1.1
+  IpAddr(129,168,1,1)       //DNS      /129.168.1.1  
+);
+
+LocalFileSystem local(LOCAL);
+HTTPClient http;
+
+void lire_repertoire(struct dirent *p, DIR *d,FILE *file);
+
+
+int main() {
+     
+      DIR *d;
+      struct dirent *p; 
+      d = opendir("/" LOCAL);      
+      
+      pc.baud(9600);
+      pc.printf("Setting up...\n\r");
+      EthernetErr ethErr = eth.setup();
+      if(ethErr)
+      {
+        pc.printf("Error %d in setup.\n\r", ethErr);
+        return -1;
+      }
+      pc.printf("Setup OK\n\r");
+      
+      FSHandler::mount("/local", "/"); //Mount /local path on web root path
+ 
+      svr.addHandler<FSHandler>("/");
+      svr.addHandler<RPCHandler>("/rpc");
+      svr.bind(80);
+      
+      pc.printf("En Ecoute...\n\r");
+        
+      Timer tm;
+      tm.start();      
+      
+      FILE *fp = fopen( "/" LOCAL "/testmbed.htm", "w");
+      if ( fp == NULL )
+      {
+        pc.printf("Could not open file for write\n");
+      }
+      fprintf(fp,"<B><font size=\"5\"> Liste de programme dans le Mbed :</font></B><br><br>");
+      lire_repertoire(p,d,fp);      
+      
+      fclose(fp); 
+      pc.printf("\n - OK\n\r");
+      
+      IpAddr ip = eth.getIp();
+      pc.printf("Addresse IP local: %d.%d.%d.%d\r\n", ip[0], ip[1], ip[2], ip[3]); 
+      HTTPText txt;
+      HTTPResult r = http.get("http://www.martobre.fr/films/get_ip.php", &txt);
+      
+      if(r==HTTP_OK)
+      {
+         pc.printf("Adresse IP public :\n\r\"%s\"\n\r", txt.gets()); 
+      }
+      else
+      {
+         pc.printf("Error %d\n", r);
+      }
+
+      //Listen indefinitely
+      while(true)
+      {
+        Net::poll();
+        if(tm.read()>.5)
+        {
+          led1=!led1; //Show that we are alive
+          tm.start();
+        }
+      }
+}
+void lire_repertoire(struct dirent *p, DIR *d,FILE *file){
+    char compteur=0;
+    
+    if ( d != NULL ){
+        while ( (p = readdir(d)) != NULL ){
+        compteur++;
+            fprintf(file,"%d/%s <br>",compteur, p->d_name);           
+        }
+    }
+    else{
+        pc.printf("Could not open directory!\r");
+    }
+}
\ No newline at end of file