test

Dependencies:   EthernetNetIf mbed

Fork of HTTPServer by Donatien Garnier

Committer:
y_notsu
Date:
Sun Feb 10 14:13:10 2013 +0000
Revision:
8:2b1867fdf78f
Parent:
7:4e8f5ce9c0f3
HTTP server test

Who changed what in which revision?

UserRevisionLine numberNew contents of line
y_notsu 7:4e8f5ce9c0f3 1 #include "mbed.h"
y_notsu 7:4e8f5ce9c0f3 2 #include "EthernetNetIf.h"
y_notsu 7:4e8f5ce9c0f3 3 #include "HTTPServer.h"
y_notsu 8:2b1867fdf78f 4
y_notsu 7:4e8f5ce9c0f3 5
y_notsu 8:2b1867fdf78f 6 EthernetNetIf eth(
y_notsu 8:2b1867fdf78f 7 IpAddr(192,168,1,8), //IP address
y_notsu 8:2b1867fdf78f 8 IpAddr(255,255,255,0), //Subnet mask
y_notsu 8:2b1867fdf78f 9 IpAddr(192,168,1,1), //Gateway
y_notsu 8:2b1867fdf78f 10 IpAddr(192,168,1,1) //DNS
y_notsu 8:2b1867fdf78f 11 );
y_notsu 7:4e8f5ce9c0f3 12 HTTPServer svr;
y_notsu 7:4e8f5ce9c0f3 13
y_notsu 7:4e8f5ce9c0f3 14 DigitalOut led1(LED1);
y_notsu 8:2b1867fdf78f 15 DigitalOut led2(LED2,"led2");
y_notsu 8:2b1867fdf78f 16 LocalFileSystem fs("webfs");
y_notsu 8:2b1867fdf78f 17 SPI spi(p5, p6, p7); // mosi, miso, sclk
y_notsu 8:2b1867fdf78f 18 DigitalOut cs(p8);
y_notsu 8:2b1867fdf78f 19 float Intempareture,Outtempareture;
y_notsu 7:4e8f5ce9c0f3 20
y_notsu 7:4e8f5ce9c0f3 21 int main() {
y_notsu 7:4e8f5ce9c0f3 22 printf("Setting up...\n");
y_notsu 7:4e8f5ce9c0f3 23 EthernetErr ethErr = eth.setup();
y_notsu 7:4e8f5ce9c0f3 24 if(ethErr)
y_notsu 7:4e8f5ce9c0f3 25 {
y_notsu 7:4e8f5ce9c0f3 26 printf("Error %d in setup.\n", ethErr);
y_notsu 7:4e8f5ce9c0f3 27 return -1;
y_notsu 7:4e8f5ce9c0f3 28 }
y_notsu 7:4e8f5ce9c0f3 29 printf("Setup OK\n");
y_notsu 7:4e8f5ce9c0f3 30
y_notsu 8:2b1867fdf78f 31 FSHandler::mount("/webfs","/");
y_notsu 8:2b1867fdf78f 32 svr.addHandler<RPCHandler>("/rpc");
y_notsu 8:2b1867fdf78f 33 svr.addHandler<FSHandler>("/");
y_notsu 8:2b1867fdf78f 34 //svr.addHandler<SimpleHandler>("/"); //Default handler
y_notsu 7:4e8f5ce9c0f3 35 svr.bind(80);
y_notsu 7:4e8f5ce9c0f3 36
y_notsu 7:4e8f5ce9c0f3 37 printf("Listening...\n");
y_notsu 7:4e8f5ce9c0f3 38
y_notsu 7:4e8f5ce9c0f3 39 Timer tm;
y_notsu 7:4e8f5ce9c0f3 40 tm.start();
y_notsu 7:4e8f5ce9c0f3 41 //Listen indefinitely
y_notsu 8:2b1867fdf78f 42
y_notsu 8:2b1867fdf78f 43 // Setup the spi for 8 bit data, high steady state clock,
y_notsu 8:2b1867fdf78f 44 // second edge capture, with a 1MHz clock rate
y_notsu 8:2b1867fdf78f 45 spi.format(16,3);
y_notsu 8:2b1867fdf78f 46 spi.frequency(1000000);
y_notsu 8:2b1867fdf78f 47
y_notsu 7:4e8f5ce9c0f3 48 while(true)
y_notsu 7:4e8f5ce9c0f3 49 {
y_notsu 7:4e8f5ce9c0f3 50 Net::poll();
y_notsu 7:4e8f5ce9c0f3 51 if(tm.read()>.5)
y_notsu 7:4e8f5ce9c0f3 52 {
y_notsu 7:4e8f5ce9c0f3 53 led1=!led1; //Show that we are alive
y_notsu 7:4e8f5ce9c0f3 54 tm.start();
y_notsu 7:4e8f5ce9c0f3 55 }
y_notsu 8:2b1867fdf78f 56 // Select the device by seting chip select low
y_notsu 8:2b1867fdf78f 57 cs = 0;
y_notsu 8:2b1867fdf78f 58
y_notsu 8:2b1867fdf78f 59 // Send 0x8f, the command to read the WHOAMI register
y_notsu 8:2b1867fdf78f 60 //spi.write(0x0000);
y_notsu 8:2b1867fdf78f 61
y_notsu 8:2b1867fdf78f 62 // Send a dummy byte to receive the contents of the WHOAMI register
y_notsu 8:2b1867fdf78f 63 int outtemp = spi.write(0x0000);
y_notsu 8:2b1867fdf78f 64 int intemp = spi.write(0x0000);
y_notsu 8:2b1867fdf78f 65 //printf("outtemp = 0x%X\n", outtemp);
y_notsu 8:2b1867fdf78f 66 //lcd.locate(0,0);
y_notsu 8:2b1867fdf78f 67 //lcd.printf("Out:0x%X\n",outtemp);
y_notsu 8:2b1867fdf78f 68 //printf("intemp = 0x%X\n", intemp);
y_notsu 8:2b1867fdf78f 69 //lcd.locate(0,1);
y_notsu 8:2b1867fdf78f 70 //lcd.printf("In :0x%X",intemp);
y_notsu 8:2b1867fdf78f 71 // Deselect the device
y_notsu 8:2b1867fdf78f 72 cs = 1;
y_notsu 8:2b1867fdf78f 73 float disp;
y_notsu 8:2b1867fdf78f 74 if((outtemp& 0x8000) == 0){ // 0℃以上
y_notsu 8:2b1867fdf78f 75 disp = (outtemp >> 4) * 0.0625;
y_notsu 8:2b1867fdf78f 76 } else { // 0℃未満
y_notsu 8:2b1867fdf78f 77 disp = (((0xffff - outtemp) >> 4) + 1) * -0.0625;
y_notsu 8:2b1867fdf78f 78 }
y_notsu 8:2b1867fdf78f 79 Outtempareture=disp;
y_notsu 8:2b1867fdf78f 80 printf("Out:%4.2f[deg]\n",disp);
y_notsu 8:2b1867fdf78f 81
y_notsu 8:2b1867fdf78f 82 if((intemp& 0x8000) == 0){ // 0℃以上
y_notsu 8:2b1867fdf78f 83 disp = (intemp>> 4) * 0.0625;
y_notsu 8:2b1867fdf78f 84 } else { // 0℃未満
y_notsu 8:2b1867fdf78f 85 disp = (((0xffff - intemp) >> 4) + 1) * -0.0625;
y_notsu 8:2b1867fdf78f 86 }
y_notsu 8:2b1867fdf78f 87 Intempareture=disp;
y_notsu 8:2b1867fdf78f 88 printf("In:%4.2f[deg]\n",disp);
y_notsu 8:2b1867fdf78f 89 //HTML File output
y_notsu 8:2b1867fdf78f 90 FILE *fp=fopen("/webfs/my.htm","w");
y_notsu 8:2b1867fdf78f 91 fprintf(fp,"<html>\r\n");
y_notsu 8:2b1867fdf78f 92 fprintf(fp, "<head>\r\n");
y_notsu 8:2b1867fdf78f 93 fprintf(fp, "<title>\r\n");
y_notsu 8:2b1867fdf78f 94 fprintf(fp, "LED2 ON/OF\r\n");
y_notsu 8:2b1867fdf78f 95 fprintf(fp, "</title>\r\n");
y_notsu 8:2b1867fdf78f 96 fprintf(fp, "</head>\r\n");
y_notsu 8:2b1867fdf78f 97 fprintf(fp, "<body>\r\n");
y_notsu 8:2b1867fdf78f 98 /*
y_notsu 8:2b1867fdf78f 99 fprintf(fp, "<script language=\"javascript\">\n");
y_notsu 8:2b1867fdf78f 100 fprintf(fp, "var Button=0; \n");
y_notsu 8:2b1867fdf78f 101 fprintf(fp, "function button_push(flug){\n");
y_notsu 8:2b1867fdf78f 102 fprintf(fp, "if(Button==0){ Button=1;document.Form.FormButton.value=\"Off\";}\n");
y_notsu 8:2b1867fdf78f 103 fprintf(fp, "else{ Button=0; document.Form.FormButton.value=\"On\"; } \n");
y_notsu 8:2b1867fdf78f 104 fprintf(fp, "var req=new XMLHttpRequest()\n");
y_notsu 8:2b1867fdf78f 105 fprintf(fp, "req.open(\"GET\", \"http://\"+location.host+\"/rpc/led2/write+\"+Button. true); \n");
y_notsu 8:2b1867fdf78f 106 fprintf(fp, "req.send(\"\"); \n");
y_notsu 8:2b1867fdf78f 107 fprintf(fp, "function tick(){ \n");
y_notsu 8:2b1867fdf78f 108 fprintf(fp, "var value=%f;\n",Outtempareture);
y_notsu 8:2b1867fdf78f 109 fprintf(fp, "document.Form.textbox.value=value;\n");
y_notsu 8:2b1867fdf78f 110 fprintf(fp, "var value2=%f;\n",Intempareture);
y_notsu 8:2b1867fdf78f 111 fprintf(fp, "document.Form.textbox2.value=value2;\n");
y_notsu 8:2b1867fdf78f 112 fprintf(fp, "}\n");
y_notsu 8:2b1867fdf78f 113 fprintf(fp, "setInterval(\"tick()\",1000);\n");
y_notsu 8:2b1867fdf78f 114 fprintf(fp, "</script>\n");
y_notsu 8:2b1867fdf78f 115 */
y_notsu 8:2b1867fdf78f 116
y_notsu 8:2b1867fdf78f 117 //fprintf(fp, "<form name=\"Form\" action=\"#\"> \n");
y_notsu 8:2b1867fdf78f 118 fprintf(fp, "<font size=5>\n");
y_notsu 8:2b1867fdf78f 119 fprintf(fp, "My room Tempareture\n");
y_notsu 8:2b1867fdf78f 120 //fprintf(fp, "<input type=\"button\" value=\"On\" name=\"FormButton\" onclick=\"button_push(0)\">\n");
y_notsu 8:2b1867fdf78f 121 fprintf(fp, "<br>\n");
y_notsu 8:2b1867fdf78f 122 fprintf(fp, "Out temp:\n");
y_notsu 8:2b1867fdf78f 123 fprintf(fp, "<font size=8><b>\n");
y_notsu 8:2b1867fdf78f 124 fprintf(fp, "%5.2f\n",Outtempareture);
y_notsu 8:2b1867fdf78f 125 fprintf(fp, "</b></font>\n");
y_notsu 8:2b1867fdf78f 126 fprintf(fp, "<br>\n");
y_notsu 8:2b1867fdf78f 127 fprintf(fp, "In temp:\n");
y_notsu 8:2b1867fdf78f 128 fprintf(fp, "<font size=8><b>\n");
y_notsu 8:2b1867fdf78f 129 fprintf(fp, "%5.2f\n",Intempareture);
y_notsu 8:2b1867fdf78f 130 fprintf(fp, "</b></font>\n");
y_notsu 8:2b1867fdf78f 131 fprintf(fp, "<br>\n");
y_notsu 8:2b1867fdf78f 132 fprintf(fp, "<hr>\n");
y_notsu 8:2b1867fdf78f 133 fprintf(fp, "</font>\n");
y_notsu 8:2b1867fdf78f 134 fprintf(fp, " Twitter: <a href=\"https://twitter.com/ynotsu\">@ynotsu</a>");
y_notsu 8:2b1867fdf78f 135 fprintf(fp, "</body>\n");
y_notsu 8:2b1867fdf78f 136 fprintf(fp, "</html>\n");
y_notsu 8:2b1867fdf78f 137 fclose(fp);
y_notsu 8:2b1867fdf78f 138
y_notsu 8:2b1867fdf78f 139 //wait(10);
y_notsu 8:2b1867fdf78f 140
y_notsu 7:4e8f5ce9c0f3 141 }
y_notsu 7:4e8f5ce9c0f3 142
y_notsu 7:4e8f5ce9c0f3 143 return 0;
y_notsu 7:4e8f5ce9c0f3 144 }