This is Webservice SDK for mbed. LPCXpresso1769/LPC1768/FRDM-K64F/LPC4088
Fork of libMiMic by
mbed/Net.cpp
- Committer:
- nyatla
- Date:
- 2013-08-07
- Revision:
- 49:d4334acc3ec3
- Parent:
- 48:00d211aac2ec
- Child:
- 50:35e765380772
File content as of revision 49:d4334acc3ec3:
#pragma once //////////////////////////////////////////////////////////////////////////////// // Net.h //////////////////////////////////////////////////////////////////////////////// #include "Net.h" #include "NetConfig.h" #include "mbed.h" DigitalOut led1(LED1); DigitalOut led2(LED2); DigitalOut led3(LED3); DigitalOut led4(LED4); namespace MiMic { Net::Net() { NyLPC_cNet_initialize(&(this->_inst)); this->_mdns=NULL; this->_upnp=NULL; } Net::~Net() { NyLPC_cNet_finalize(&(this->_inst)); } void Net::start(NetConfig& i_cfg) { NyLPC_TcNetConfig_t* base_cfg=i_cfg.refBaseInstance(); //DHCP & autoIP request if(base_cfg->tcp_mode & NyLPC_TcNetConfig_IPV4_FLAG_MODE_MASK!=0){ for(;;){ //DHCP if((base_cfg->tcp_mode & NyLPC_TcNetConfig_IPV4_FLAG_MODE_DHCP)!=0){ if(NyLPC_cNet_requestAddrDhcp(&(this->_inst),&(base_cfg->super),3)){ break; } } //AUTOIP if((base_cfg->tcp_mode & NyLPC_TcNetConfig_IPV4_FLAG_MODE_AUTOIP)!=0){ NyLPC_TcApipa_t apipa; NyLPC_cApipa_initialize(&apipa); if(NyLPC_cApipa_requestAddr(&apipa,&(base_cfg->super),3)){ break; } } } } led1=1; //start mDNS if(base_cfg->services.flags & NyLPC_TcNetConfig_SERVICE_FLAG_MDNS !=0){ this->_mdns=(NyLPC_TcMDnsServer_t*)malloc(sizeof(NyLPC_TcMDnsServer_t)); NyLPC_cMDnsServer_initialize(this->_mdns,i_cfg.refMdnsRecord()); } led2=1; //start UPnP if(base_cfg->services.flags & NyLPC_TcNetConfig_SERVICE_FLAG_UPNP !=0){ this->_upnp=(NyLPC_TcUPnP_t*)malloc(sizeof(NyLPC_TcUPnP_t)); NyLPC_cUPnP_initialize(this->_upnp,i_cfg.getHttpPort(),UPNP_HTTP_PATH,i_cfg.refUPnPDevDesc()); } led3=1; NyLPC_cNet_start(&(this->_inst),base_cfg); if(this->_upnp!=NULL){ NyLPC_cUPnP_start(this->_upnp); } led4=1; } void Net::stop() { NyLPC_cNet_stop(&(this->_inst)); //stop mDNS if(this->_mdns!=NULL){ NyLPC_cMDnsServer_finalize(this->_mdns); free(this->_mdns); this->_mdns=NULL; } } }