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: NyFileSystems libMiMic mbed-rtos mbed
main.cpp
- Committer:
- nyatla
- Date:
- 2013-08-09
- Revision:
- 19:66d729b94d16
- Parent:
- 12:218b57d9a6d4
- Child:
- 20:4b0b449ddb12
File content as of revision 19:66d729b94d16:
/**
* @file * This is ModLocalFileSystem sample program.
*
* <pre>
* 1. Compile this program and write to your mbed.
* 2. Write files for testing to mbed disk.
* 2. Access via web browser to http://192.168.0.39/local/<filename>
* 3. You can see <filename> file on browser.
* </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);
/**
* local filesystem support.
*/
LocalFileSystem2 lf("local");
SDFileSystem sd(p5, p6, p7, p8,"sd");
Net* net;
unsigned int p;
/**
* MiMic RemoteMCU httpd.<br/>
* Number of simultaneous connections:4
* <p>Service list</p>
* <pre>
* /local/ - mbed LocalFileSystem
* </pre>
*/
class FsHttpd:public MiMic::Httpd
{
private:
ModLocalFileSystem modlocal;
ModLocalFileSystem modsd;
ModUPnPDevice modupnp;
ModRomFiles modromfs; //ROM file module
public:
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",ModLocalFileSystem::FST_SDFATFS);
this->modupnp.setParam(*net);
}
virtual void onRequest(HttpdConnection& i_connection)
{
p++;
switch(PlatformInfo::getPlatformType()){
case PlatformInfo::PF_MBED:
mbedled = p%2;
break;
case PlatformInfo::PF_LPCXPRESSO:
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;
}
//try to ModLocalFileSystem(SD)
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)){
i_connection.sendBodyF(
"<!DOCTYPE html>"
"<html lang=\"ja\">"
"<head></head>"
"<body>"
"<h1>This is MiMic Server!</h1>"
"<hr/>"
"<ul>"
"<li><a href=\"/local/\">mbed Local Filesystem</a></li>"
"<li><a href=\"/sd/\">SDCard</a></li>"
"</ul></body>");
}
}
};
NetConfig cfg; //create network configulation
int main()
{
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")){
Thread::wait(2000);//wait for SD card initialization.
cfg.loadFromFile("/sd/mimic.cfg");
}
FsHttpd httpd(cfg); //create a httpd instance.
net->start(cfg);
httpd.loop(); //start httpd loop.
return 0;
}