Minecraft extension

Dependencies:   NySDFileSystem libMiMic mbed-rtos mbed registers

Fork of MiMicSimpleHttpd by Ryo Iizuka

What is this?

This application works as a converter of the electronic circuit and Redstone circuit.

Getting started

http://nyatla.jp/mimic/wp/?p=617

Revision:
7:7720763e8918
Parent:
6:5909618469f8
--- a/main.cpp	Fri May 17 05:54:52 2013 +0000
+++ b/main.cpp	Mon Aug 12 10:11:50 2013 +0000
@@ -1,6 +1,8 @@
 #include "mimic.h"
 #include "mbed.h"
 #include "InOut.h"
+#include "fsdata.h"
+
 LocalFileSystem2 lf("local");
 
 
@@ -93,19 +95,36 @@
     }
 };
 
-class MiMicRemoteMcu:public MiMic::Httpd
+Net* net;
+
+class RedWireBridge:public MiMic::Httpd
 {
 private:
     ModUrl modurl; //basic URL parser
+    ModRomFiles modromfs; //ROM file module
+    ModUPnPDevice modupnp;
     RedIo rsio;
 public:
-    MiMicRemoteMcu():Httpd(80)
+    RedWireBridge(NetConfig& i_cfg):Httpd(i_cfg.getHttpPort())
     {
+        this->modromfs.setParam("rom",FSDATA,3);
+        //bind upnp service to module.
+        this->modupnp.setParam(*net);
     }
     virtual void onRequest(HttpdConnection& i_connection)
     {
         char url[64];
         int method;
+        //try to ModRomFS module. for icon,images.
+        if(this->modromfs.execute(i_connection)){
+            return;
+        }        
+        //try to UPnP service. for descriptions.
+        if(this->modupnp.execute(i_connection)){
+            return;
+        }
+        //rsb CGI 
+        
         
         //call ModUrl module.
         if(!this->modurl.execute(i_connection,url,64,&method)){
@@ -133,12 +152,20 @@
 
 int main()
 {
+    net=new Net();  //create a net instance.
     NetConfig cfg; //create network configulation
+    //Prepare configulation.
+    cfg.setUPnPIcon(64,64,8,"image/png","/rom/icon.png");//set upnp icon address
+    cfg.setUPnPUdn(0x0c9720e0,0x031e,0x11e3,0); //set application timebase-uuid time and sequence field.
+    cfg.setFriendlyName("RedWireBridge"); //set friendly name
+    cfg.setUPnPPresentationURL("/rom/index.html"); //set presentationURL
+    cfg.setZeroconf(true);//AutoIP enable
+ 
     //try to override setting by local file.
     cfg.loadFromFile("/local/mimic.cfg");
 
-    Net net(cfg);  //create a net instance.
-    MiMicRemoteMcu httpd; //create a httpd instance.
+    RedWireBridge httpd(cfg); //create a httpd instance.
+    net->start(cfg);
     httpd.loop();  //start httpd loop.
     return 0;
 }