This is Webservice SDK for mbed. LPCXpresso1769/LPC1768/FRDM-K64F/LPC4088
Dependents: MbedFileServer_1768MiniDK2 RedWireBridge IssueDebug_gcc MiMicRemoteMCU-for-Mbed ... more
Net.cpp
00001 //////////////////////////////////////////////////////////////////////////////// 00002 // Net.h 00003 //////////////////////////////////////////////////////////////////////////////// 00004 #include "Net.h" 00005 #include "NetConfig.h" 00006 #include "mbed.h" 00007 00008 namespace MiMic 00009 { 00010 00011 const char* Net::UPNP_ROOT_PATH="upnp"; 00012 00013 Net::Net(INetif& i_netif) 00014 { 00015 NyLPC_cNet_initialize(i_netif.getInterface()); 00016 this->_mdns=NULL; 00017 this->_upnp=NULL; 00018 } 00019 Net::~Net() 00020 { 00021 NyLPC_cNet_finalize(); 00022 } 00023 void Net::start(NetConfig& i_cfg) 00024 { 00025 NyLPC_TcNetConfig_t* base_cfg=i_cfg.refBaseInstance(); 00026 //DHCP & autoIP request 00027 if((base_cfg->tcp_mode & NyLPC_TcNetConfig_IPV4_FLAG_MODE_MASK)!=0){ 00028 for(;;){ 00029 //DHCP 00030 if((base_cfg->tcp_mode & NyLPC_TcNetConfig_IPV4_FLAG_MODE_DHCP)!=0){ 00031 if(NyLPC_cNet_requestAddrDhcp(&(base_cfg->super),3)){ 00032 break; 00033 } 00034 } 00035 //AUTOIP 00036 if((base_cfg->tcp_mode & NyLPC_TcNetConfig_IPV4_FLAG_MODE_AUTOIP)!=0){ 00037 if(NyLPC_cNet_requestAddrApipa(&(base_cfg->super),3)){ 00038 break; 00039 } 00040 } 00041 } 00042 } 00043 //start mDNS 00044 if((base_cfg->services.flags & NyLPC_TcNetConfig_SERVICE_FLAG_MDNS) !=0){ 00045 this->_mdns=(NyLPC_TcMDnsServer_t*)malloc(sizeof(NyLPC_TcMDnsServer_t)); 00046 NyLPC_cMDnsServer_initialize(this->_mdns,i_cfg.refMdnsRecord()); 00047 } 00048 //start UPnP 00049 if((base_cfg->services.flags & NyLPC_TcNetConfig_SERVICE_FLAG_UPNP) !=0){ 00050 this->_upnp=(NyLPC_TcUPnP_t*)malloc(sizeof(NyLPC_TcUPnP_t)); 00051 NyLPC_cUPnP_initialize(this->_upnp,i_cfg.getHttpPort(),UPNP_ROOT_PATH,i_cfg.refUPnPDevDesc()); 00052 00053 } 00054 NyLPC_cNet_start(&(base_cfg->super)); 00055 if(this->_upnp!=NULL){ 00056 NyLPC_cUPnP_start(this->_upnp); 00057 } 00058 } 00059 void Net::stop() 00060 { 00061 NyLPC_cNet_stop(); 00062 //stop mDNS 00063 if(this->_mdns!=NULL){ 00064 NyLPC_cMDnsServer_finalize(this->_mdns); 00065 free(this->_mdns); 00066 this->_mdns=NULL; 00067 } 00068 } 00069 00070 }
Generated on Tue Jul 12 2022 15:46:15 by 1.7.2