MiMicSDK Tcp client socket sample program.
Dependencies: NyFileSystems libMiMic mbed-rtos mbed
Fork of WebSocketSample by
Diff: main.cpp
- Revision:
- 19:66d729b94d16
- Parent:
- 12:218b57d9a6d4
- Child:
- 20:4b0b449ddb12
diff -r 9e6b9380006c -r 66d729b94d16 main.cpp --- a/main.cpp Thu Jul 11 03:54:29 2013 +0000 +++ b/main.cpp Fri Aug 09 09:06:09 2013 +0000 @@ -9,9 +9,12 @@ * </pre> */ #include "mbed.h" +#include "rtos.h" #include "SDFileSystem.h" #include "mimic.h" #include "utils/PlatformInfo.h" +#include "fsdata.h" + DigitalOut mbedled(LED1); DigitalOut lpcxled(P0_22); @@ -20,6 +23,8 @@ */ LocalFileSystem2 lf("local"); SDFileSystem sd(p5, p6, p7, p8,"sd"); +Net* net; + unsigned int p; /** * MiMic RemoteMCU httpd.<br/> @@ -34,12 +39,18 @@ private: ModLocalFileSystem modlocal; ModLocalFileSystem modsd; + ModUPnPDevice modupnp; + ModRomFiles modromfs; //ROM file module + public: - FsHttpd(NetConfig& i_cfg):Httpd(i_cfg._inst.services.http_port) + FsHttpd(NetConfig& i_cfg):Httpd(i_cfg.getHttpPort()) { + + this->modromfs.setParam("rom",FSDATA,1); //bind local file system path to /local/* modlocal.setParam("local"); - modsd.setParam("sd"); + modsd.setParam("sd",ModLocalFileSystem::FST_SDFATFS); + this->modupnp.setParam(*net); } virtual void onRequest(HttpdConnection& i_connection) { @@ -52,6 +63,10 @@ lpcxled = p%2; break; } + //try to ModRomFS module. + if(this->modromfs.execute(i_connection)){ + return; + } //try to ModLocalFileSystem if(this->modlocal.execute(i_connection)){ return; @@ -60,6 +75,9 @@ if(this->modsd.execute(i_connection)){ return; } + if(this->modupnp.execute(i_connection)){ + return; + } //Otherwise, Send simple top index page. i_connection.sendHeader(200,"text/html",NULL); if(i_connection.isMethodType(Http::MT_GET)){ @@ -82,15 +100,19 @@ int main() { - Net net; //create a net instance. + net=new Net();//Net constructor must be created after started RTOS + //Prepare configulation. + cfg.setUPnPIcon(64,64,8,"image/png","/rom/icon.png"); + cfg.setUPnPUdn(0xe29f7102,0x4ba2,0x01e0,0); + cfg.setFriendlyName("MbedFileServer"); //try to override setting by local file. if(!cfg.loadFromFile("/local/mimic.cfg")){ - wait_ms(1000); + Thread::wait(2000);//wait for SD card initialization. cfg.loadFromFile("/sd/mimic.cfg"); } FsHttpd httpd(cfg); //create a httpd instance. - net.start(cfg); + net->start(cfg); httpd.loop(); //start httpd loop. return 0; }