![](/media/cache/group/Download_mxxYCWN.jpg.50x50_q85.jpg)
Minimalistischer RCP HTTP Server
Dependencies: EthernetInterface HttpServer mbed-rpc mbed-rtos mbed
Fork of IoTKit_HttpServer by
Diff: main.cpp
- Revision:
- 6:c9c7ffa0594e
- Parent:
- 5:bfa9878aa274
- Child:
- 7:8a319a112fba
diff -r bfa9878aa274 -r c9c7ffa0594e main.cpp --- a/main.cpp Sat Feb 22 05:55:58 2014 +0000 +++ b/main.cpp Wed Jan 14 18:52:15 2015 +0000 @@ -1,47 +1,61 @@ //#define DNS_SERVER_ADDRESS(ipaddr) (ip4_addr_set_u32(ipaddr, ipaddr_addr("208.67.222.222"))) /* resolver1.opendns.com */ + #include "mbed.h" #include "rtos.h" #include "EthernetInterface.h" #include "HTTPServer.h" #include "mbed_rpc.h" -#include "TextLCD.h" +#include "SDFileSystem.h" EthernetInterface eth; DigitalOut led4(LED4); -LocalFileSystem local("local"); -void LcdWrite(Arguments* arg, Reply* r); //ADD Here!! - -TextLCD lcd(p24, p26, p27, p28, p29, p30); +//LocalFileSystem local("local"); +SDFileSystem sd(PTE3, PTE1, PTE2, PTE4, "local"); void aliveState(void const *args) { - while (true) { + while (true) + { led4 = !led4; - Thread::wait(1000); + Thread::wait(2000); } } +uint32_t do_list(const char *fsrc) +{ + DIR *d = opendir(fsrc); + struct dirent *p; + uint32_t counter = 0; + + while ((p = readdir(d)) != NULL) { + counter++; + printf("%s\n", p->d_name); + } + closedir(d); + return counter; +} + int main() { printf("********* PROGRAM START ***********\r\n"); Thread thread(aliveState); RPC::add_rpc_class<RpcDigitalOut>(); - RPC::construct<RpcDigitalOut, PinName, const char*>(LED1, "led1"); - RPC::construct<RpcDigitalOut, PinName, const char*>(LED2, "led2"); - RPC::construct<RpcDigitalOut, PinName, const char*>(LED3, "led3"); - RPCFunction rpcFunc(LcdWrite, "LcdWrite"); //ADD Here!! - lcd.cls(); - lcd.locate(0,0); + RPC::construct<RpcDigitalOut, PinName, const char*>(PTC3, "led1"); + RPC::construct<RpcDigitalOut, PinName, const char*>(PTC2, "led2"); + RPC::construct<RpcDigitalOut, PinName, const char*>(PTA2, "led3"); + //RPCFunction rpcFunc(LcdWrite, "LcdWrite"); //ADD Here!! printf("EthernetInterface Setting up...\r\n"); - if(eth.init()!=0) { //for DHCP Server + if(eth.init()!=0) + { //for DHCP Server //if(eth.init(IPAddress,NetMasks,Gateway)!=0) { //for Static IP Address printf("EthernetInterface Initialize Error \r\n"); return -1; } - if(eth.connect()!=0) { + if(eth.connect()!=0) + { printf("EthernetInterface Connect Error \r\n"); return -1; } @@ -50,17 +64,17 @@ printf("Gateway Address is %s\r\n", eth.getGateway()); printf("Ethernet Setup OK\r\n"); + printf("\nList all directories/files /local.\n"); + do_list("/local"); + HTTPServerAddHandler<SimpleHandler>("/hello"); //Default handler FSHandler::mount("/local", "/"); HTTPServerAddHandler<FSHandler>("/"); HTTPServerAddHandler<RPCHandler>("/rpc"); - lcd.locate(0,0); - lcd.printf("%s",eth.getIPAddress()); HTTPServerStart(80); } void LcdWrite(Arguments* arg, Reply* r) //ADD Here!! { - lcd.locate(0,1); - lcd.printf("%s",arg->argv[0]); + printf("%s",arg->argv[0]); }