ported HTTP-Server with W5500 Ethernet Shield

Dependencies:   W5500Interface mbed-rpc mbed

Fork of HTTP-Server by Francois Berder

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "EthernetInterface.h"
00003 #include "mbed_rpc.h"
00004 #include "RPCCommand.h"
00005 #include "HTTPServer.h"
00006 #include "Formatter.h"
00007 #include "RequestHandler.h"
00008 #include "RPCType.h"
00009 
00010 #define SERVER_PORT 80
00011 
00012 char ipaddr_backup[17];
00013 uint8_t mac_addr[6] = {0x00, 0x08, 0xDC, 0x00, 0x01, 0x02};
00014 
00015 HTTPServer create_simple_server()
00016 {    
00017     HTTPServer srv;
00018     srv.add_request_handler("DELETE", new DeleteRequestHandler());
00019     srv.add_request_handler("GET", new GetRequestHandler());
00020     srv.add_request_handler("PUT", new PutRequestHandler());
00021     return srv;
00022 }
00023 
00024 HTTPServer create_interactive_server()
00025 {
00026     HTTPServer srv(new InteractiveHTMLFormatter());
00027     srv.add_request_handler("GET", new ComplexRequestHandler());
00028     return srv;
00029 }
00030 
00031 int main(void)
00032 {
00033     RPCType::instance().register_types();    
00034  /* //for LPC1768
00035     SPI spi(p5, p6, p7); // mosi, miso, sclk
00036     spi.frequency(12500000);     
00037     EthernetInterface eth(&spi, p8, p11); // spi, cs, reset
00038 */    
00039     SPI spi(D11, D12, D13); // mosi, miso, sclk
00040     //spi.frequency(12500000);     
00041     EthernetInterface eth(&spi, D10, D9); // spi, cs, reset
00042 
00043     //EthernetInterface eth;
00044     //if(eth.init())
00045 //    int ret = eth.init("192.168.77.34", "255.255.255.0", "192.168.77.1");    
00046     int ret = eth.init(mac_addr, "192.168.77.34", "255.255.255.0", "192.168.77.1");    
00047     if(ret)
00048     {
00049         printf("Error while initializing the ethernet interface.\n");
00050         return -1;
00051     }
00052     if(eth.connect())
00053     {
00054         printf("Error while starting the ethernet interface.\n");
00055         return -1;
00056     }
00057     
00058     printf("IP Address is %s\n", eth.getIPAddress());
00059     strcpy(ipaddr_backup,eth.getIPAddress());
00060     HTTPServer srv = create_interactive_server();
00061 
00062     if(!srv.init(SERVER_PORT))
00063     {
00064         eth.disconnect();
00065         return -1;
00066     }
00067 
00068     srv.run();
00069 
00070     return 0;
00071 }
00072