This is Webservice SDK for mbed. LPCXpresso1769/LPC1768/FRDM-K64F/LPC4088
Fork of libMiMic by
mbed/Net.cpp@66:ee7866efe5e6, 2013-11-12 (annotated)
- 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?
User | Revision | Line number | New 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 | } |