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
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.
Function¶
- AutoIP
- SSDP
- DeviceDescription hosting (Httpd)
- SOAP (not implemented)
- GENA (not implemented)
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.
