Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
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;
}
+
