SimpleHandler

Dependencies:   EthernetInterface HttpServer mbed-rpc mbed-rtos mbed TextLCD

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 //#define DNS_SERVER_ADDRESS(ipaddr)        (ip4_addr_set_u32(ipaddr, ipaddr_addr("208.67.222.222"))) /* resolver1.opendns.com */
00002 #include "mbed.h"
00003 #include "rtos.h"
00004 #include "EthernetInterface.h"
00005 #include "HTTPServer.h"
00006 #include "mbed_rpc.h"
00007 #include "TextLCD.h"
00008 
00009 EthernetInterface eth;
00010 
00011 DigitalOut led4(LED4);
00012 
00013 LocalFileSystem local("local");
00014 void LcdWrite(Arguments* arg, Reply* r);    //ADD Here!!
00015 
00016 TextLCD lcd(p24, p26, p27, p28, p29, p30);
00017 
00018 void aliveState(void const *args)
00019 {
00020     while (true) {
00021         led4 = !led4;
00022         Thread::wait(1000);
00023     }
00024 }
00025 
00026 int main()
00027 {
00028     printf("********* PROGRAM START ***********\r\n");
00029     Thread thread(aliveState);
00030     RPC::add_rpc_class<RpcDigitalOut>();
00031     RPC::construct<RpcDigitalOut, PinName, const char*>(LED1, "led1");
00032     RPC::construct<RpcDigitalOut, PinName, const char*>(LED2, "led2");
00033     RPC::construct<RpcDigitalOut, PinName, const char*>(LED3, "led3");
00034     RPCFunction rpcFunc(LcdWrite, "LcdWrite"); //ADD Here!!
00035     lcd.cls();
00036     lcd.locate(0,0);
00037 
00038     printf("EthernetInterface Setting up...\r\n");
00039     if(eth.init()!=0) {                             //for DHCP Server
00040         //if(eth.init(IPAddress,NetMasks,Gateway)!=0) { //for Static IP Address
00041         printf("EthernetInterface Initialize Error \r\n");
00042         return -1;
00043     }
00044     if(eth.connect()!=0) {
00045         printf("EthernetInterface Connect Error \r\n");
00046         return -1;
00047     }
00048     printf("IP Address is %s\r\n", eth.getIPAddress());
00049     printf("NetMask is %s\r\n", eth.getNetworkMask());
00050     printf("Gateway Address is %s\r\n", eth.getGateway());
00051     printf("Ethernet Setup OK\r\n");
00052 
00053     HTTPServerAddHandler<SimpleHandler>("/hello"); //Default handler
00054     FSHandler::mount("/local", "/");
00055     HTTPServerAddHandler<FSHandler>("/");
00056     HTTPServerAddHandler<RPCHandler>("/rpc");
00057     lcd.locate(0,0);
00058     lcd.printf("%s",eth.getIPAddress());
00059     HTTPServerStart(80);
00060 }
00061 
00062 void LcdWrite(Arguments* arg, Reply* r)  //ADD Here!!
00063 {
00064     lcd.locate(0,1);
00065     lcd.printf("%s",arg->argv[0]);
00066 }