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
Fork of MbedFileServer by
You are viewing an older revision! See the latest version
Homepage
This is UPnP BasicDevice by MiMicSDK. BasicDevice is most simplest UPnP device.
How To Use¶
- Write firmware to your mbed.
- Reset mbed and update firmware.
- Check your "network computer" folder by Exproler. (in case of windows.)
- You can find UPnPBasicDevice hosted by mbed. (If you can not find device then reflesh exploler information.)
- If you double-click UPnPBasicDevice, the presentation page on device is opened.
Source Code¶
It is simple and short!
/**
* @file
* Simplest UPnP basic device.<br/>
* This program is upnp:BasicDeveice:1 template.
*
* <p>
* After starting program, check "network" by Exproler.
* MiMic basic device will be appeared.
* </p>
*/
#include "mbed.h"
#include "rtos.h"
#include "SDFileSystem.h"
#include "mimic.h"
#include "utils/PlatformInfo.h"
#include "fsdata.h"
Net* net;
/**
* Httpd for UPnPService and presentation.
*/
class UPnPBasicDeviceHttpd:public MiMic::Httpd
{
private:
ModUPnPDevice modupnp;
ModRomFiles modromfs; //ROM file module
public:
UPnPBasicDeviceHttpd(NetConfig& i_cfg):Httpd(i_cfg.getHttpPort())
{
//prepare fs data (presentation.html,icon,image.)
this->modromfs.setParam("rom",FSDATA,3);
//bind upnp service to module.
this->modupnp.setParam(*net);
}
virtual void onRequest(HttpdConnection& i_connection)
{
//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;
}
//Otherwise, Send the redirect response to /rom/index.html
i_connection.sendHeader(302,
"text/html",
"Status: 302:Moved Temporarily\r\n"
"Location: /rom/index.html\r\n");
}
};
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");//set upnp icon address
cfg.setUPnPUdn(0xe29f7103,0x4ba2,0x01e0,0); //set application timebase-uuid time and sequence field.
cfg.setFriendlyName("UPnPBasicDevice(LPC176x)"); //set friendly name
cfg.setUPnPPresentationURL("/rom/index.html"); //set presentationURL
cfg.setZeroconf(true);//AutoIP enable
UPnPBasicDeviceHttpd httpd(cfg); //create a httpd instance.
net->start(cfg);
httpd.loop(); //start httpd loop.
return 0;
}
I think that this code helps to make Web connection to your application easily.
