This is Webservice SDK for mbed. LPCXpresso1769/LPC1768/FRDM-K64F/LPC4088

Fork of libMiMic by Ryo Iizuka

Committer:
nyatla
Date:
Tue Nov 12 03:45:21 2013 +0000
Revision:
66:ee7866efe5e6
Parent:
51:45d42af201c2
Child:
67:0a24ad966876
delete #pragma in .cpp; fix some warning.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nyatla 3:0a94993be1f6 1 ////////////////////////////////////////////////////////////////////////////////
nyatla 3:0a94993be1f6 2 // Net.h
nyatla 3:0a94993be1f6 3 ////////////////////////////////////////////////////////////////////////////////
nyatla 3:0a94993be1f6 4 #include "Net.h"
nyatla 3:0a94993be1f6 5 #include "NetConfig.h"
nyatla 37:fc4b4fd6a649 6 #include "mbed.h"
nyatla 3:0a94993be1f6 7 namespace MiMic
nyatla 3:0a94993be1f6 8 {
nyatla 51:45d42af201c2 9
nyatla 50:35e765380772 10 const char* Net::UPNP_ROOT_PATH="upnp";
nyatla 50:35e765380772 11
nyatla 37:fc4b4fd6a649 12 Net::Net()
nyatla 3:0a94993be1f6 13 {
nyatla 3:0a94993be1f6 14 NyLPC_cNet_initialize(&(this->_inst));
nyatla 37:fc4b4fd6a649 15 this->_mdns=NULL;
nyatla 48:00d211aac2ec 16 this->_upnp=NULL;
nyatla 3:0a94993be1f6 17 }
nyatla 3:0a94993be1f6 18 Net::~Net()
nyatla 3:0a94993be1f6 19 {
nyatla 3:0a94993be1f6 20 NyLPC_cNet_finalize(&(this->_inst));
nyatla 3:0a94993be1f6 21 }
nyatla 37:fc4b4fd6a649 22 void Net::start(NetConfig& i_cfg)
nyatla 37:fc4b4fd6a649 23 {
nyatla 48:00d211aac2ec 24 NyLPC_TcNetConfig_t* base_cfg=i_cfg.refBaseInstance();
nyatla 37:fc4b4fd6a649 25 //DHCP & autoIP request
nyatla 66:ee7866efe5e6 26 if((base_cfg->tcp_mode & NyLPC_TcNetConfig_IPV4_FLAG_MODE_MASK)!=0){
nyatla 37:fc4b4fd6a649 27 for(;;){
nyatla 37:fc4b4fd6a649 28 //DHCP
nyatla 48:00d211aac2ec 29 if((base_cfg->tcp_mode & NyLPC_TcNetConfig_IPV4_FLAG_MODE_DHCP)!=0){
nyatla 48:00d211aac2ec 30 if(NyLPC_cNet_requestAddrDhcp(&(this->_inst),&(base_cfg->super),3)){
nyatla 37:fc4b4fd6a649 31 break;
nyatla 37:fc4b4fd6a649 32 }
nyatla 37:fc4b4fd6a649 33 }
nyatla 37:fc4b4fd6a649 34 //AUTOIP
nyatla 48:00d211aac2ec 35 if((base_cfg->tcp_mode & NyLPC_TcNetConfig_IPV4_FLAG_MODE_AUTOIP)!=0){
nyatla 37:fc4b4fd6a649 36 NyLPC_TcApipa_t apipa;
nyatla 37:fc4b4fd6a649 37 NyLPC_cApipa_initialize(&apipa);
nyatla 48:00d211aac2ec 38 if(NyLPC_cApipa_requestAddr(&apipa,&(base_cfg->super),3)){
nyatla 37:fc4b4fd6a649 39 break;
nyatla 37:fc4b4fd6a649 40 }
nyatla 37:fc4b4fd6a649 41 }
nyatla 37:fc4b4fd6a649 42 }
nyatla 37:fc4b4fd6a649 43 }
nyatla 37:fc4b4fd6a649 44 //start mDNS
nyatla 51:45d42af201c2 45 if((base_cfg->services.flags & NyLPC_TcNetConfig_SERVICE_FLAG_MDNS) !=0){
nyatla 37:fc4b4fd6a649 46 this->_mdns=(NyLPC_TcMDnsServer_t*)malloc(sizeof(NyLPC_TcMDnsServer_t));
nyatla 48:00d211aac2ec 47 NyLPC_cMDnsServer_initialize(this->_mdns,i_cfg.refMdnsRecord());
nyatla 37:fc4b4fd6a649 48 }
nyatla 48:00d211aac2ec 49 //start UPnP
nyatla 51:45d42af201c2 50 if((base_cfg->services.flags & NyLPC_TcNetConfig_SERVICE_FLAG_UPNP) !=0){
nyatla 48:00d211aac2ec 51 this->_upnp=(NyLPC_TcUPnP_t*)malloc(sizeof(NyLPC_TcUPnP_t));
nyatla 50:35e765380772 52 NyLPC_cUPnP_initialize(this->_upnp,i_cfg.getHttpPort(),UPNP_ROOT_PATH,i_cfg.refUPnPDevDesc());
nyatla 48:00d211aac2ec 53
nyatla 48:00d211aac2ec 54 }
nyatla 48:00d211aac2ec 55 NyLPC_cNet_start(&(this->_inst),base_cfg);
nyatla 49:d4334acc3ec3 56 if(this->_upnp!=NULL){
nyatla 49:d4334acc3ec3 57 NyLPC_cUPnP_start(this->_upnp);
nyatla 50:35e765380772 58 }
nyatla 37:fc4b4fd6a649 59 }
nyatla 37:fc4b4fd6a649 60 void Net::stop()
nyatla 37:fc4b4fd6a649 61 {
nyatla 37:fc4b4fd6a649 62 NyLPC_cNet_stop(&(this->_inst));
nyatla 37:fc4b4fd6a649 63 //stop mDNS
nyatla 37:fc4b4fd6a649 64 if(this->_mdns!=NULL){
nyatla 37:fc4b4fd6a649 65 NyLPC_cMDnsServer_finalize(this->_mdns);
nyatla 37:fc4b4fd6a649 66 free(this->_mdns);
nyatla 37:fc4b4fd6a649 67 this->_mdns=NULL;
nyatla 37:fc4b4fd6a649 68 }
nyatla 37:fc4b4fd6a649 69 }
nyatla 37:fc4b4fd6a649 70
nyatla 66:ee7866efe5e6 71 }