Dependencies:   mbed

Dependents:   TCP

Committer:
slowness
Date:
Tue Sep 06 18:05:46 2011 +0000
Revision:
0:58c3d014a4e7

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
slowness 0:58c3d014a4e7 1 #include "mbed.h"
slowness 0:58c3d014a4e7 2 #include "EthernetNetIf.h"
slowness 0:58c3d014a4e7 3 #include "HTTPServer.h"
slowness 0:58c3d014a4e7 4 #include "HTTPClient.h"
slowness 0:58c3d014a4e7 5
slowness 0:58c3d014a4e7 6 #define LOCAL "local"
slowness 0:58c3d014a4e7 7 Serial pc(p9,p10);
slowness 0:58c3d014a4e7 8 HTTPServer svr;
slowness 0:58c3d014a4e7 9
slowness 0:58c3d014a4e7 10 DigitalOut led1(LED1, "led1");
slowness 0:58c3d014a4e7 11 DigitalOut led2(LED2, "led2");
slowness 0:58c3d014a4e7 12 DigitalOut led3(LED3, "led3");
slowness 0:58c3d014a4e7 13 DigitalOut led4(LED4, "led4");
slowness 0:58c3d014a4e7 14
slowness 0:58c3d014a4e7 15 EthernetNetIf eth(
slowness 0:58c3d014a4e7 16 IpAddr(169,254,113,94), //IP Address
slowness 0:58c3d014a4e7 17 IpAddr(255,255,0,0), //Network Mask
slowness 0:58c3d014a4e7 18 IpAddr(129,168,1,1), //Gateway /129.168.1.1
slowness 0:58c3d014a4e7 19 IpAddr(129,168,1,1) //DNS /129.168.1.1
slowness 0:58c3d014a4e7 20 );
slowness 0:58c3d014a4e7 21
slowness 0:58c3d014a4e7 22 LocalFileSystem local(LOCAL);
slowness 0:58c3d014a4e7 23 HTTPClient http;
slowness 0:58c3d014a4e7 24
slowness 0:58c3d014a4e7 25 void lire_repertoire(struct dirent *p, DIR *d,FILE *file);
slowness 0:58c3d014a4e7 26
slowness 0:58c3d014a4e7 27
slowness 0:58c3d014a4e7 28 int main() {
slowness 0:58c3d014a4e7 29
slowness 0:58c3d014a4e7 30 DIR *d;
slowness 0:58c3d014a4e7 31 struct dirent *p;
slowness 0:58c3d014a4e7 32 d = opendir("/" LOCAL);
slowness 0:58c3d014a4e7 33
slowness 0:58c3d014a4e7 34 pc.baud(9600);
slowness 0:58c3d014a4e7 35 pc.printf("Setting up...\n\r");
slowness 0:58c3d014a4e7 36 EthernetErr ethErr = eth.setup();
slowness 0:58c3d014a4e7 37 if(ethErr)
slowness 0:58c3d014a4e7 38 {
slowness 0:58c3d014a4e7 39 pc.printf("Error %d in setup.\n\r", ethErr);
slowness 0:58c3d014a4e7 40 return -1;
slowness 0:58c3d014a4e7 41 }
slowness 0:58c3d014a4e7 42 pc.printf("Setup OK\n\r");
slowness 0:58c3d014a4e7 43
slowness 0:58c3d014a4e7 44 FSHandler::mount("/local", "/"); //Mount /local path on web root path
slowness 0:58c3d014a4e7 45
slowness 0:58c3d014a4e7 46 svr.addHandler<FSHandler>("/");
slowness 0:58c3d014a4e7 47 svr.addHandler<RPCHandler>("/rpc");
slowness 0:58c3d014a4e7 48 svr.bind(80);
slowness 0:58c3d014a4e7 49
slowness 0:58c3d014a4e7 50 pc.printf("En Ecoute...\n\r");
slowness 0:58c3d014a4e7 51
slowness 0:58c3d014a4e7 52 Timer tm;
slowness 0:58c3d014a4e7 53 tm.start();
slowness 0:58c3d014a4e7 54
slowness 0:58c3d014a4e7 55 FILE *fp = fopen( "/" LOCAL "/testmbed.htm", "w");
slowness 0:58c3d014a4e7 56 if ( fp == NULL )
slowness 0:58c3d014a4e7 57 {
slowness 0:58c3d014a4e7 58 pc.printf("Could not open file for write\n");
slowness 0:58c3d014a4e7 59 }
slowness 0:58c3d014a4e7 60 fprintf(fp,"<B><font size=\"5\"> Liste de programme dans le Mbed :</font></B><br><br>");
slowness 0:58c3d014a4e7 61 lire_repertoire(p,d,fp);
slowness 0:58c3d014a4e7 62
slowness 0:58c3d014a4e7 63 fclose(fp);
slowness 0:58c3d014a4e7 64 pc.printf("\n - OK\n\r");
slowness 0:58c3d014a4e7 65
slowness 0:58c3d014a4e7 66 IpAddr ip = eth.getIp();
slowness 0:58c3d014a4e7 67 pc.printf("Addresse IP local: %d.%d.%d.%d\r\n", ip[0], ip[1], ip[2], ip[3]);
slowness 0:58c3d014a4e7 68 HTTPText txt;
slowness 0:58c3d014a4e7 69 HTTPResult r = http.get("http://www.martobre.fr/films/get_ip.php", &txt);
slowness 0:58c3d014a4e7 70
slowness 0:58c3d014a4e7 71 if(r==HTTP_OK)
slowness 0:58c3d014a4e7 72 {
slowness 0:58c3d014a4e7 73 pc.printf("Adresse IP public :\n\r\"%s\"\n\r", txt.gets());
slowness 0:58c3d014a4e7 74 }
slowness 0:58c3d014a4e7 75 else
slowness 0:58c3d014a4e7 76 {
slowness 0:58c3d014a4e7 77 pc.printf("Error %d\n", r);
slowness 0:58c3d014a4e7 78 }
slowness 0:58c3d014a4e7 79
slowness 0:58c3d014a4e7 80 //Listen indefinitely
slowness 0:58c3d014a4e7 81 while(true)
slowness 0:58c3d014a4e7 82 {
slowness 0:58c3d014a4e7 83 Net::poll();
slowness 0:58c3d014a4e7 84 if(tm.read()>.5)
slowness 0:58c3d014a4e7 85 {
slowness 0:58c3d014a4e7 86 led1=!led1; //Show that we are alive
slowness 0:58c3d014a4e7 87 tm.start();
slowness 0:58c3d014a4e7 88 }
slowness 0:58c3d014a4e7 89 }
slowness 0:58c3d014a4e7 90 }
slowness 0:58c3d014a4e7 91 void lire_repertoire(struct dirent *p, DIR *d,FILE *file){
slowness 0:58c3d014a4e7 92 char compteur=0;
slowness 0:58c3d014a4e7 93
slowness 0:58c3d014a4e7 94 if ( d != NULL ){
slowness 0:58c3d014a4e7 95 while ( (p = readdir(d)) != NULL ){
slowness 0:58c3d014a4e7 96 compteur++;
slowness 0:58c3d014a4e7 97 fprintf(file,"%d/%s <br>",compteur, p->d_name);
slowness 0:58c3d014a4e7 98 }
slowness 0:58c3d014a4e7 99 }
slowness 0:58c3d014a4e7 100 else{
slowness 0:58c3d014a4e7 101 pc.printf("Could not open directory!\r");
slowness 0:58c3d014a4e7 102 }
slowness 0:58c3d014a4e7 103 }