Http Server

Dependencies:   EthernetNetIf HTTPServer RPCInterface mbed

Fork of Gaurd_Server by Srinath K

Committer:
SRINATHMADHU
Date:
Sat Dec 27 08:11:08 2014 +0000
Revision:
1:574f254ef68c
Parent:
0:7f9517ce9e71
Http Server

Who changed what in which revision?

UserRevisionLine numberNew contents of line
lotfi_baghli 0:7f9517ce9e71 1 #include "mbed.h"
lotfi_baghli 0:7f9517ce9e71 2 #include "EthernetNetIf.h"
lotfi_baghli 0:7f9517ce9e71 3 #include "HTTPServer.h"
lotfi_baghli 0:7f9517ce9e71 4 #include "RPCFunction.h"
lotfi_baghli 0:7f9517ce9e71 5 EthernetNetIf eth(
SRINATHMADHU 1:574f254ef68c 6 IpAddr(172,16,20,20), //IP Address
lotfi_baghli 0:7f9517ce9e71 7 IpAddr(255,255,255,0), //Network Mask
SRINATHMADHU 1:574f254ef68c 8 IpAddr(172,16,20,1), //Gateway
SRINATHMADHU 1:574f254ef68c 9 IpAddr(172,16,1,1)
lotfi_baghli 0:7f9517ce9e71 10 );
lotfi_baghli 0:7f9517ce9e71 11 HTTPServer svr;
lotfi_baghli 0:7f9517ce9e71 12
lotfi_baghli 0:7f9517ce9e71 13 DigitalOut led1(LED1, "led1");
lotfi_baghli 0:7f9517ce9e71 14 DigitalOut led2(LED2, "led2");
lotfi_baghli 0:7f9517ce9e71 15 DigitalOut led3(LED3, "led3");
lotfi_baghli 0:7f9517ce9e71 16 DigitalOut led4(LED4, "led4");
SRINATHMADHU 1:574f254ef68c 17 DigitalOut pin1(p21);
SRINATHMADHU 1:574f254ef68c 18 DigitalOut pin2(p22);
SRINATHMADHU 1:574f254ef68c 19 DigitalOut pin3(p23);
SRINATHMADHU 1:574f254ef68c 20 DigitalOut pin4(p24);
lotfi_baghli 0:7f9517ce9e71 21
lotfi_baghli 0:7f9517ce9e71 22 LocalFileSystem fs("webfs");
lotfi_baghli 0:7f9517ce9e71 23 //Create a function of the required format
lotfi_baghli 0:7f9517ce9e71 24 void rpcX10rf(char * input, char * output);
lotfi_baghli 0:7f9517ce9e71 25 RPCFunction rpc_foo(&rpcX10rf, "rpcX10rf");
lotfi_baghli 0:7f9517ce9e71 26 void rpcX10rf(char * input, char * output) {
SRINATHMADHU 1:574f254ef68c 27 char houseCode;
SRINATHMADHU 1:574f254ef68c 28 short int numberCode, action;
SRINATHMADHU 1:574f254ef68c 29 printf("%s\r\n", input);
SRINATHMADHU 1:574f254ef68c 30 sscanf(input, " %c,%d,%d", &houseCode, &numberCode, &action);
SRINATHMADHU 1:574f254ef68c 31 printf("%c, %d,%d\r\n", houseCode, numberCode, action);
SRINATHMADHU 1:574f254ef68c 32 if(numberCode==1 && action==1){pin1=1;led2=1;}
SRINATHMADHU 1:574f254ef68c 33 else if(numberCode==1 && action==0){pin1=0;led2=0;}
SRINATHMADHU 1:574f254ef68c 34 else if(numberCode==2 && action==1){pin2=1;led3=1;}
SRINATHMADHU 1:574f254ef68c 35 else if(numberCode==2 && action==0){pin2=0;led3=0;}
SRINATHMADHU 1:574f254ef68c 36 else if(numberCode==3 && action==1){pin3=1;led4=1;}
SRINATHMADHU 1:574f254ef68c 37 else {pin3=0;led4=0;}
SRINATHMADHU 1:574f254ef68c 38 }
lotfi_baghli 0:7f9517ce9e71 39 int main() {
lotfi_baghli 0:7f9517ce9e71 40 Base::add_rpc_class<DigitalOut>();
lotfi_baghli 0:7f9517ce9e71 41 EthernetErr ethErr = eth.setup();
lotfi_baghli 0:7f9517ce9e71 42 if (ethErr) {
lotfi_baghli 0:7f9517ce9e71 43 printf("Error %d in setup.\n", ethErr);
lotfi_baghli 0:7f9517ce9e71 44 return -1;
lotfi_baghli 0:7f9517ce9e71 45 }
lotfi_baghli 0:7f9517ce9e71 46 printf("\r\nSetup OK\r\n");
lotfi_baghli 0:7f9517ce9e71 47
lotfi_baghli 0:7f9517ce9e71 48 FSHandler::mount("/webfs", "/files"); //Mount /webfs path on /files web path
lotfi_baghli 0:7f9517ce9e71 49 FSHandler::mount("/webfs", "/"); //Mount /webfs path on web root path
lotfi_baghli 0:7f9517ce9e71 50
lotfi_baghli 0:7f9517ce9e71 51 //svr.addHandler<SimpleHandler>("/hello");
lotfi_baghli 0:7f9517ce9e71 52 svr.addHandler<RPCHandler>("/rpc");
lotfi_baghli 0:7f9517ce9e71 53 svr.addHandler<FSHandler>("/files");
lotfi_baghli 0:7f9517ce9e71 54 svr.addHandler<FSHandler>("/"); //Default handler
lotfi_baghli 0:7f9517ce9e71 55 //Example : Access to mbed.htm : http://a.b.c.d/mbed.htm or http://a.b.c.d/files/mbed.htm
lotfi_baghli 0:7f9517ce9e71 56 svr.bind(80);
lotfi_baghli 0:7f9517ce9e71 57
lotfi_baghli 0:7f9517ce9e71 58 printf("Listening...\n");
lotfi_baghli 0:7f9517ce9e71 59
lotfi_baghli 0:7f9517ce9e71 60 Timer tm;
lotfi_baghli 0:7f9517ce9e71 61 tm.start();
lotfi_baghli 0:7f9517ce9e71 62 //Listen indefinitely
lotfi_baghli 0:7f9517ce9e71 63 while (1) {
lotfi_baghli 0:7f9517ce9e71 64 Net::poll();
lotfi_baghli 0:7f9517ce9e71 65 if (tm.read()>.5) {
lotfi_baghli 0:7f9517ce9e71 66 led1=!led1; //Show that we are alive
lotfi_baghli 0:7f9517ce9e71 67 tm.start();
lotfi_baghli 0:7f9517ce9e71 68 }
lotfi_baghli 0:7f9517ce9e71 69 }
lotfi_baghli 0:7f9517ce9e71 70 }