smartcontrol remote
Dependencies: EthernetInterface HTTPServer RemoteIR SDFileSystem mbed-rpc mbed-rtos mbed
Fork of SmartRemote by
Diff: main.cpp
- Revision:
- 4:36e0aa194b45
- Parent:
- 3:a3b4d032f48f
- Child:
- 6:70a0af38edcc
--- a/main.cpp Mon Dec 02 20:21:10 2013 +0000 +++ b/main.cpp Tue Dec 03 02:40:59 2013 +0000 @@ -1,7 +1,15 @@ #include "mbed.h" -#include "EthernetNetIf.h" +#include "EthernetInterface.h" #include "HTTPServer.h" +#include "FsHandler.h" +#include "RpcHandler.h" +#include "rtos.h" +//Start IR +#include "ReceiverIR.h" +#include "TransmitterIR.h" +#include "IR.h" +//END IR // Start DB #include <stdio.h> @@ -13,31 +21,45 @@ // Start RPC #include "RPCVariable.h" -int Request; +int Request = 0; int Learn = 0; //Make these variables accessible over RPC by attaching them to an RPCVariable -RPCVariable<int>(&Request), "Request"); -//RPCVariable RPCLearn(&Learn, "Learn"); +RPCVariable<int> RPCRequest(&Request, "Request"); +RPCVariable<int> RPCLearn(&Learn, "Learn"); // End RPC +Serial pc(USBTX, USBRX, "pc"); -EthernetNetIf eth; -HTTPServer svr; +// Instantiate a HTTPServer to handle incoming requests +HTTPServer svr; +// Instantiate a local file system handler named 'local' which will be used later to access files on the mbed. +LocalFileSystem local("local"); -DigitalOut led1(LED1); +SDFileSystem sd(p5, p6, p7, p8, "sd"); // the pinout on the mbed int main() { - printf("Setting up...\n"); - EthernetErr ethErr = eth.setup(); - if(ethErr) { - printf("Error %d in setup.\n", ethErr); - return -1; + + printf("Setting up Apache...\n \r"); + + HTTPFsRequestHandler::mount("/local/", "/"); + svr.addHandler<HTTPFsRequestHandler>("/"); + svr.addHandler<HTTPRpcRequestHandler>("/rpc"); + + EthernetInterface eth; + eth.init(); //Use DHCP + eth.connect(); + + // Now start the server on port 80. + if (!svr.start(80, ð)) { + error("Server not starting !"); + exit(0); } - printf("Setup OK\n"); - svr.addHandler<SimpleHandler>("/"); //Default handler - svr.bind(80); + printf("IP: %s\n \r", eth.getIPAddress()); + printf("Setup OK\n \r"); + + // DB Init @@ -45,29 +67,41 @@ char code[] = "123AB"; char name[] = "Button Name"; - + char results_code[128]; char results_name[128]; - + /* db_insert_tuple(code, name); FILE *fread = fopen("/sd/SmartRemote/db.txt", "r"); - db_find_tuple(fread, 2, results_name, results_code); + db_find_tuple(fread, Request, results_name, results_code); fclose(fread); + */ //End DB init - printf("Listening...\n"); + //IR Init + uint8_t buf1[32]; + uint8_t buf2[32]; + int bitlength1; + int bitlength2; + RemoteIR::Format format; + memset(buf1, 0x00, sizeof(buf1)); + memset(buf2, 0x00, sizeof(buf2)); + //END IR Init + + printf("Listening...\n \r"); + Timer tm; tm.start(); //Listen indefinitely while(true) { - Net::poll(); + svr.poll(); if(tm.read()>.5) { - led1=!led1; //Show that we are alive tm.start(); } } return 0; } +