☆Board orageでHTTPサーバを作ってみた

Dependencies:   EthernetNetIf TextLCD mbed HTTPServer

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "TextLCD.h"
00003 #include "EthernetNetIf.h"
00004 #include "HTTPServer.h"
00005 #include "RPCFunction.h"
00006 
00007 DigitalOut led1(LED1,"led1");
00008 DigitalOut led2(LED2,"led2");
00009 DigitalOut led3(LED3,"led3");
00010 DigitalOut led4(LED4,"led4");
00011 
00012 TextLCD lcd(p24, p26, p27, p28, p29, p30);
00013 
00014 #if 1
00015 /*
00016  * Use DHCP
00017  */
00018         EthernetNetIf ethif;
00019 #else
00020 /*
00021  * Use "static IP address" (Parameters:IP, Subnet mask, Gateway, DNS)
00022  */
00023         EthernetNetIf ethif(IpAddr(xxx,xxx,xxx,xxx), IpAddr(xxx,xxx,xxx,xxx), IpAddr(xxx,xxx,xxx,xxx), IpAddr(xxx,xxx,xxx,xxx));
00024 #endif
00025     
00026     HTTPServer server;
00027     LocalFileSystem local("local");
00028     void LcdWrite(char *input,char *output);
00029     RPCFunction rpcFunc(&LcdWrite, "LcdWrite");
00030 
00031 int main(void) {
00032 
00033     Base::add_rpc_class<DigitalOut>();
00034 
00035     lcd.cls();
00036     lcd.locate(0,0);
00037     lcd.printf("Program init..  ");
00038 
00039     if (ethif.setup()) {
00040         error("Ethernet setup failed.");
00041         return 1;
00042     }
00043     IpAddr ethIp=ethif.getIp();
00044     
00045     lcd.locate(0,1);
00046     lcd.printf("%d.%d.%d.%d", ethIp[0], ethIp[1], ethIp[2], ethIp[3]);
00047     led1=1;
00048     wait(1);
00049     server.addHandler<SimpleHandler>("/hello");
00050     server.addHandler<RPCHandler>("/rpc");
00051     FSHandler::mount("/local", "/");
00052     server.addHandler<FSHandler>("/");
00053     server.bind(80);
00054     while (1) {
00055         Net::poll();
00056     }
00057     return 0;
00058 }
00059 void LcdWrite(char *input , char *output)
00060 {
00061     lcd.locate(0,1);
00062     lcd.printf("%s",input);
00063 }
00064