Minecraft extension
Dependencies: NySDFileSystem libMiMic mbed-rtos mbed registers
Fork of MiMicSimpleHttpd by
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
Diff: main.cpp
- 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; }