☆Board orageでHTTPサーバを作ってみた
Dependencies: EthernetNetIf TextLCD mbed HTTPServer
main.cpp@0:c14da41d70ea, 2011-05-09 (annotated)
- Committer:
- yueee_yt
- Date:
- Mon May 09 12:34:17 2011 +0000
- Revision:
- 0:c14da41d70ea
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
yueee_yt | 0:c14da41d70ea | 1 | #include "mbed.h" |
yueee_yt | 0:c14da41d70ea | 2 | #include "TextLCD.h" |
yueee_yt | 0:c14da41d70ea | 3 | #include "EthernetNetIf.h" |
yueee_yt | 0:c14da41d70ea | 4 | #include "HTTPServer.h" |
yueee_yt | 0:c14da41d70ea | 5 | #include "RPCFunction.h" |
yueee_yt | 0:c14da41d70ea | 6 | |
yueee_yt | 0:c14da41d70ea | 7 | DigitalOut led1(LED1,"led1"); |
yueee_yt | 0:c14da41d70ea | 8 | DigitalOut led2(LED2,"led2"); |
yueee_yt | 0:c14da41d70ea | 9 | DigitalOut led3(LED3,"led3"); |
yueee_yt | 0:c14da41d70ea | 10 | DigitalOut led4(LED4,"led4"); |
yueee_yt | 0:c14da41d70ea | 11 | |
yueee_yt | 0:c14da41d70ea | 12 | TextLCD lcd(p24, p26, p27, p28, p29, p30); |
yueee_yt | 0:c14da41d70ea | 13 | |
yueee_yt | 0:c14da41d70ea | 14 | #if 1 |
yueee_yt | 0:c14da41d70ea | 15 | /* |
yueee_yt | 0:c14da41d70ea | 16 | * Use DHCP |
yueee_yt | 0:c14da41d70ea | 17 | */ |
yueee_yt | 0:c14da41d70ea | 18 | EthernetNetIf ethif; |
yueee_yt | 0:c14da41d70ea | 19 | #else |
yueee_yt | 0:c14da41d70ea | 20 | /* |
yueee_yt | 0:c14da41d70ea | 21 | * Use "static IP address" (Parameters:IP, Subnet mask, Gateway, DNS) |
yueee_yt | 0:c14da41d70ea | 22 | */ |
yueee_yt | 0:c14da41d70ea | 23 | EthernetNetIf ethif(IpAddr(xxx,xxx,xxx,xxx), IpAddr(xxx,xxx,xxx,xxx), IpAddr(xxx,xxx,xxx,xxx), IpAddr(xxx,xxx,xxx,xxx)); |
yueee_yt | 0:c14da41d70ea | 24 | #endif |
yueee_yt | 0:c14da41d70ea | 25 | |
yueee_yt | 0:c14da41d70ea | 26 | HTTPServer server; |
yueee_yt | 0:c14da41d70ea | 27 | LocalFileSystem local("local"); |
yueee_yt | 0:c14da41d70ea | 28 | void LcdWrite(char *input,char *output); |
yueee_yt | 0:c14da41d70ea | 29 | RPCFunction rpcFunc(&LcdWrite, "LcdWrite"); |
yueee_yt | 0:c14da41d70ea | 30 | |
yueee_yt | 0:c14da41d70ea | 31 | int main(void) { |
yueee_yt | 0:c14da41d70ea | 32 | |
yueee_yt | 0:c14da41d70ea | 33 | Base::add_rpc_class<DigitalOut>(); |
yueee_yt | 0:c14da41d70ea | 34 | |
yueee_yt | 0:c14da41d70ea | 35 | lcd.cls(); |
yueee_yt | 0:c14da41d70ea | 36 | lcd.locate(0,0); |
yueee_yt | 0:c14da41d70ea | 37 | lcd.printf("Program init.. "); |
yueee_yt | 0:c14da41d70ea | 38 | |
yueee_yt | 0:c14da41d70ea | 39 | if (ethif.setup()) { |
yueee_yt | 0:c14da41d70ea | 40 | error("Ethernet setup failed."); |
yueee_yt | 0:c14da41d70ea | 41 | return 1; |
yueee_yt | 0:c14da41d70ea | 42 | } |
yueee_yt | 0:c14da41d70ea | 43 | IpAddr ethIp=ethif.getIp(); |
yueee_yt | 0:c14da41d70ea | 44 | |
yueee_yt | 0:c14da41d70ea | 45 | lcd.locate(0,1); |
yueee_yt | 0:c14da41d70ea | 46 | lcd.printf("%d.%d.%d.%d", ethIp[0], ethIp[1], ethIp[2], ethIp[3]); |
yueee_yt | 0:c14da41d70ea | 47 | led1=1; |
yueee_yt | 0:c14da41d70ea | 48 | wait(1); |
yueee_yt | 0:c14da41d70ea | 49 | server.addHandler<SimpleHandler>("/hello"); |
yueee_yt | 0:c14da41d70ea | 50 | server.addHandler<RPCHandler>("/rpc"); |
yueee_yt | 0:c14da41d70ea | 51 | FSHandler::mount("/local", "/"); |
yueee_yt | 0:c14da41d70ea | 52 | server.addHandler<FSHandler>("/"); |
yueee_yt | 0:c14da41d70ea | 53 | server.bind(80); |
yueee_yt | 0:c14da41d70ea | 54 | while (1) { |
yueee_yt | 0:c14da41d70ea | 55 | Net::poll(); |
yueee_yt | 0:c14da41d70ea | 56 | } |
yueee_yt | 0:c14da41d70ea | 57 | return 0; |
yueee_yt | 0:c14da41d70ea | 58 | } |
yueee_yt | 0:c14da41d70ea | 59 | void LcdWrite(char *input , char *output) |
yueee_yt | 0:c14da41d70ea | 60 | { |
yueee_yt | 0:c14da41d70ea | 61 | lcd.locate(0,1); |
yueee_yt | 0:c14da41d70ea | 62 | lcd.printf("%s",input); |
yueee_yt | 0:c14da41d70ea | 63 | } |
yueee_yt | 0:c14da41d70ea | 64 |