☆board OrageでEthernetのhttp serverを使用する方法のサンプルです

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