Minimalistischer RCP HTTP Server

Dependencies:   EthernetInterface HttpServer mbed-rpc mbed-rtos mbed

Fork of IoTKit_HttpServer by th.iotkit1.ch

Committer:
yueee_yt
Date:
Fri Feb 21 07:42:20 2014 +0000
Revision:
4:155c6ff99458
Parent:
3:5758cfefe980
Child:
5:bfa9878aa274
Ver 1.0

Who changed what in which revision?

UserRevisionLine numberNew contents of line
yueee_yt 0:050a5d4ffd55 1 //#define DNS_SERVER_ADDRESS(ipaddr) (ip4_addr_set_u32(ipaddr, ipaddr_addr("208.67.222.222"))) /* resolver1.opendns.com */
yueee_yt 0:050a5d4ffd55 2 #include "mbed.h"
yueee_yt 0:050a5d4ffd55 3 #include "rtos.h"
yueee_yt 0:050a5d4ffd55 4 #include "EthernetInterface.h"
yueee_yt 0:050a5d4ffd55 5 #include "HTTPServer.h"
yueee_yt 3:5758cfefe980 6 #include "mbed_rpc.h"
yueee_yt 4:155c6ff99458 7 #include "TextLCD.h"
yueee_yt 0:050a5d4ffd55 8 EthernetInterface eth;
yueee_yt 3:5758cfefe980 9
yueee_yt 3:5758cfefe980 10 DigitalOut led4(LED4);
yueee_yt 3:5758cfefe980 11
yueee_yt 3:5758cfefe980 12 LocalFileSystem local("local");
yueee_yt 4:155c6ff99458 13 void LcdWrite(Arguments* arg, Reply* r); //ADD Here!!
yueee_yt 4:155c6ff99458 14
yueee_yt 4:155c6ff99458 15 TextLCD lcd(p24, p26, p27, p28, p29, p30);
yueee_yt 0:050a5d4ffd55 16
yueee_yt 0:050a5d4ffd55 17 void aliveState(void const *args) {
yueee_yt 0:050a5d4ffd55 18 while (true) {
yueee_yt 3:5758cfefe980 19 led4 = !led4;
yueee_yt 0:050a5d4ffd55 20 Thread::wait(1000);
yueee_yt 0:050a5d4ffd55 21 }
yueee_yt 0:050a5d4ffd55 22 }
yueee_yt 0:050a5d4ffd55 23
yueee_yt 0:050a5d4ffd55 24 int main()
yueee_yt 0:050a5d4ffd55 25 {
yueee_yt 0:050a5d4ffd55 26 printf("********* PROGRAM START ***********\r\n");
yueee_yt 0:050a5d4ffd55 27 Thread thread(aliveState);
yueee_yt 3:5758cfefe980 28 RPC::add_rpc_class<RpcDigitalOut>();
yueee_yt 4:155c6ff99458 29 RPC::construct<RpcDigitalOut, PinName, const char*>(LED1, "led1");
yueee_yt 3:5758cfefe980 30 RPC::construct<RpcDigitalOut, PinName, const char*>(LED2, "led2");
yueee_yt 3:5758cfefe980 31 RPC::construct<RpcDigitalOut, PinName, const char*>(LED3, "led3");
yueee_yt 4:155c6ff99458 32 RPCFunction rpcFunc(LcdWrite, "LcdWrite"); //ADD Here!!
yueee_yt 4:155c6ff99458 33 lcd.cls();
yueee_yt 4:155c6ff99458 34 lcd.locate(0,0);
yueee_yt 3:5758cfefe980 35
yueee_yt 0:050a5d4ffd55 36 printf("EthernetInterface Setting up...\r\n");
yueee_yt 0:050a5d4ffd55 37 if(eth.init()!=0) { //for DHCP Server
yueee_yt 0:050a5d4ffd55 38 //if(eth.init(IPAddress,NetMasks,Gateway)!=0) { //for Static IP Address
yueee_yt 0:050a5d4ffd55 39 printf("EthernetInterface Initialize Error \r\n");
yueee_yt 0:050a5d4ffd55 40 return -1;
yueee_yt 0:050a5d4ffd55 41 }
yueee_yt 0:050a5d4ffd55 42 if(eth.connect()!=0) {
yueee_yt 0:050a5d4ffd55 43 printf("EthernetInterface Connect Error \r\n");
yueee_yt 0:050a5d4ffd55 44 return -1;
yueee_yt 0:050a5d4ffd55 45 }
yueee_yt 0:050a5d4ffd55 46 printf("IP Address is %s\r\n", eth.getIPAddress());
yueee_yt 0:050a5d4ffd55 47 printf("NetMask is %s\r\n", eth.getNetworkMask());
yueee_yt 0:050a5d4ffd55 48 printf("Gateway Address is %s\r\n", eth.getGateway());
yueee_yt 0:050a5d4ffd55 49 printf("Ethernet Setup OK\r\n");
yueee_yt 0:050a5d4ffd55 50
yueee_yt 3:5758cfefe980 51 HTTPServerAddHandler<SimpleHandler>("/hello"); //Default handler
yueee_yt 3:5758cfefe980 52 FSHandler::mount("/local", "/");
yueee_yt 3:5758cfefe980 53 HTTPServerAddHandler<FSHandler>("/");
yueee_yt 3:5758cfefe980 54 HTTPServerAddHandler<RPCHandler>("/rpc");
yueee_yt 4:155c6ff99458 55 lcd.locate(0,0);
yueee_yt 4:155c6ff99458 56 lcd.printf("%s",eth.getIPAddress());
yueee_yt 0:050a5d4ffd55 57 HTTPServerStart(80);
yueee_yt 0:050a5d4ffd55 58 }
yueee_yt 0:050a5d4ffd55 59
yueee_yt 4:155c6ff99458 60 void LcdWrite(Arguments* arg, Reply* r) //ADD Here!!
yueee_yt 4:155c6ff99458 61 {
yueee_yt 4:155c6ff99458 62 lcd.locate(0,1);
yueee_yt 4:155c6ff99458 63 lcd.printf("%s",arg->argv[0]);
yueee_yt 4:155c6ff99458 64 }