Ergänzt das jQueryMobile Beispiel um die Fehlenden Aktoren wie LED 3 und Servo 2.

Fork of RPCHTTPServerVariable by smd.iotkit2.ch

Committer:
marcel1691
Date:
Wed Jan 14 18:52:15 2015 +0000
Revision:
6:c9c7ffa0594e
Parent:
5:bfa9878aa274
Child:
7:8a319a112fba
HTTPServer mit RPC, SimpleHandler und Zugriff auf SD Karte

Who changed what in which revision?

UserRevisionLine numberNew contents of line
yueee_yt 0:050a5d4ffd55 1 //#define DNS_SERVER_ADDRESS(ipaddr) (ip4_addr_set_u32(ipaddr, ipaddr_addr("208.67.222.222"))) /* resolver1.opendns.com */
marcel1691 6:c9c7ffa0594e 2
yueee_yt 0:050a5d4ffd55 3 #include "mbed.h"
yueee_yt 0:050a5d4ffd55 4 #include "rtos.h"
yueee_yt 0:050a5d4ffd55 5 #include "EthernetInterface.h"
yueee_yt 0:050a5d4ffd55 6 #include "HTTPServer.h"
yueee_yt 3:5758cfefe980 7 #include "mbed_rpc.h"
marcel1691 6:c9c7ffa0594e 8 #include "SDFileSystem.h"
yueee_yt 5:bfa9878aa274 9
yueee_yt 0:050a5d4ffd55 10 EthernetInterface eth;
yueee_yt 3:5758cfefe980 11
yueee_yt 3:5758cfefe980 12 DigitalOut led4(LED4);
yueee_yt 5:bfa9878aa274 13
marcel1691 6:c9c7ffa0594e 14 //LocalFileSystem local("local");
marcel1691 6:c9c7ffa0594e 15 SDFileSystem sd(PTE3, PTE1, PTE2, PTE4, "local");
yueee_yt 0:050a5d4ffd55 16
yueee_yt 5:bfa9878aa274 17 void aliveState(void const *args)
yueee_yt 5:bfa9878aa274 18 {
marcel1691 6:c9c7ffa0594e 19 while (true)
marcel1691 6:c9c7ffa0594e 20 {
yueee_yt 3:5758cfefe980 21 led4 = !led4;
marcel1691 6:c9c7ffa0594e 22 Thread::wait(2000);
yueee_yt 0:050a5d4ffd55 23 }
yueee_yt 0:050a5d4ffd55 24 }
yueee_yt 0:050a5d4ffd55 25
marcel1691 6:c9c7ffa0594e 26 uint32_t do_list(const char *fsrc)
marcel1691 6:c9c7ffa0594e 27 {
marcel1691 6:c9c7ffa0594e 28 DIR *d = opendir(fsrc);
marcel1691 6:c9c7ffa0594e 29 struct dirent *p;
marcel1691 6:c9c7ffa0594e 30 uint32_t counter = 0;
marcel1691 6:c9c7ffa0594e 31
marcel1691 6:c9c7ffa0594e 32 while ((p = readdir(d)) != NULL) {
marcel1691 6:c9c7ffa0594e 33 counter++;
marcel1691 6:c9c7ffa0594e 34 printf("%s\n", p->d_name);
marcel1691 6:c9c7ffa0594e 35 }
marcel1691 6:c9c7ffa0594e 36 closedir(d);
marcel1691 6:c9c7ffa0594e 37 return counter;
marcel1691 6:c9c7ffa0594e 38 }
marcel1691 6:c9c7ffa0594e 39
yueee_yt 0:050a5d4ffd55 40 int main()
yueee_yt 0:050a5d4ffd55 41 {
yueee_yt 0:050a5d4ffd55 42 printf("********* PROGRAM START ***********\r\n");
yueee_yt 0:050a5d4ffd55 43 Thread thread(aliveState);
yueee_yt 3:5758cfefe980 44 RPC::add_rpc_class<RpcDigitalOut>();
marcel1691 6:c9c7ffa0594e 45 RPC::construct<RpcDigitalOut, PinName, const char*>(PTC3, "led1");
marcel1691 6:c9c7ffa0594e 46 RPC::construct<RpcDigitalOut, PinName, const char*>(PTC2, "led2");
marcel1691 6:c9c7ffa0594e 47 RPC::construct<RpcDigitalOut, PinName, const char*>(PTA2, "led3");
marcel1691 6:c9c7ffa0594e 48 //RPCFunction rpcFunc(LcdWrite, "LcdWrite"); //ADD Here!!
yueee_yt 3:5758cfefe980 49
yueee_yt 0:050a5d4ffd55 50 printf("EthernetInterface Setting up...\r\n");
marcel1691 6:c9c7ffa0594e 51 if(eth.init()!=0)
marcel1691 6:c9c7ffa0594e 52 { //for DHCP Server
yueee_yt 5:bfa9878aa274 53 //if(eth.init(IPAddress,NetMasks,Gateway)!=0) { //for Static IP Address
yueee_yt 0:050a5d4ffd55 54 printf("EthernetInterface Initialize Error \r\n");
yueee_yt 0:050a5d4ffd55 55 return -1;
yueee_yt 0:050a5d4ffd55 56 }
marcel1691 6:c9c7ffa0594e 57 if(eth.connect()!=0)
marcel1691 6:c9c7ffa0594e 58 {
yueee_yt 0:050a5d4ffd55 59 printf("EthernetInterface Connect Error \r\n");
yueee_yt 0:050a5d4ffd55 60 return -1;
yueee_yt 0:050a5d4ffd55 61 }
yueee_yt 0:050a5d4ffd55 62 printf("IP Address is %s\r\n", eth.getIPAddress());
yueee_yt 0:050a5d4ffd55 63 printf("NetMask is %s\r\n", eth.getNetworkMask());
yueee_yt 0:050a5d4ffd55 64 printf("Gateway Address is %s\r\n", eth.getGateway());
yueee_yt 0:050a5d4ffd55 65 printf("Ethernet Setup OK\r\n");
yueee_yt 0:050a5d4ffd55 66
marcel1691 6:c9c7ffa0594e 67 printf("\nList all directories/files /local.\n");
marcel1691 6:c9c7ffa0594e 68 do_list("/local");
marcel1691 6:c9c7ffa0594e 69
yueee_yt 3:5758cfefe980 70 HTTPServerAddHandler<SimpleHandler>("/hello"); //Default handler
yueee_yt 3:5758cfefe980 71 FSHandler::mount("/local", "/");
yueee_yt 3:5758cfefe980 72 HTTPServerAddHandler<FSHandler>("/");
yueee_yt 3:5758cfefe980 73 HTTPServerAddHandler<RPCHandler>("/rpc");
yueee_yt 0:050a5d4ffd55 74 HTTPServerStart(80);
yueee_yt 0:050a5d4ffd55 75 }
yueee_yt 0:050a5d4ffd55 76
yueee_yt 4:155c6ff99458 77 void LcdWrite(Arguments* arg, Reply* r) //ADD Here!!
yueee_yt 4:155c6ff99458 78 {
marcel1691 6:c9c7ffa0594e 79 printf("%s",arg->argv[0]);
yueee_yt 4:155c6ff99458 80 }