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

Dependents:   MbedFileServer_1768MiniDK2 RedWireBridge IssueDebug_gcc MiMicRemoteMCU-for-Mbed ... more

libMiMic(MiMic library for mbed)は、WebService機能を提供するSDKです。 mbedでWebAPIに対応したネットワークデバイスを簡単に作ることが出来ます。

libMiMicはMiMic projectで開発しています。MiMic projectについてはこちらをご覧ください。 http://nyatla.jp/mimic/wp/

構成

libMiMicはmbedRTOS上で動作し、ユーザアプリケーションにAPIを提供します。コアAPIはC言語で記述されていますが、使用頻度の高いものについてはmbed向けのC++APIが準備されています。

/media/uploads/nyatla/libmimic-sdk.png

※libMiMicはmbedの標準イーサネットドライバをしようしていません。

標準イーサネットドライバと同時に使用することはできません。

  • MiMicIP - IPv4スタックです。レテンシとメモリ消費量を抑えたuipベースのライブラリです。
  • ARP/ICMP/UDP/TCP - 基礎的なソケットAPIを提供します。APIは独自です。
  • HTTP/1.1 Server - HTTP/1.1に対応したサーバです。マルチセッション・Chunked・持続性接続に対応しています。
  • HTTP Modules - HTTP/1.1の機能モジュールです。以下のモジュールがあります。
    • ROM file provider - ROMに格納したファイルイメージを公開します。
    • File system provider - mbedファイルシステムを公開します。
    • Onchip configuration - プログラムフラッシュを利用して設定を保存します。
    • MiMicVM processor - RPCリクエスト(MiMicVM)を処理します。
    • FileUpload - ファイルアップロードを受け取ります。
    • URL decoder - HTTPリクエストを解析します。
    • UPnP handler -UPnPメッセージを処理します。
    • WebSocket - Websocketサーバです。
  • mDNS - マルチキャストDNSサービスです。
  • UPnP - UPnP/1.0の機能を提供します。UPnP handlerと協調して動作します。(現在はデバイス探索(SSDP)・デスクリプション(Description)のみ実装してあります。)
  • DHCP/APIPA - ゼロコンフィギュレーション用のモジュールです。
  • HTTP/1.1 Client
  • mbed C++ class library - mbed向けのC++CPIです。C言語のものより簡単です。

対応機種

  • mbed(mbed LPC1768)
  • LPCXpresso1769

プログラム

Import programMiMicRemoteMCU-for-Mbed

MiMic RemoteMCU for mbed. This program provides MCU control API over REST API. It can control MCU from Javascript,PHP or any HTTP rest client directly. And, The application has self development environment.

Import programMbedFileServer

The program publishes files at local directory and SD filesystem. It is a full-fledged webServer somewhat.

サンプル

Import programMiMicSimpleHttpd

This is a simplest HTTP server made ​​of libMiMic. It will echo back a request path.

Import programUPnPBasicDevice

Simplest UPnP basic device example. This program to run UPnP basic device on the mbed.

Import programWebSocketSample

MiMicSDK Websocket module sample program.

Import programHttpClientSamlpe

A http client sample program.

Import programTcpSocketClientSamlpe

MiMicSDK Tcp client socket sample program.

Import programUdpSocketSamlpe

Udp socket sample program. This program will send back the received packet.

チュートリアル

English

libMiMic(MiMic library for mbed) is SDK which provides Webservice functions. It can be created networking device easily using mbed.

See more MiMic information, See MiMic project website. http://nyatla.jp/mimic/wp/

Structure

libMiMic run on mbed RTOS and provides networking API to user application. This library has C++ class API for the mbed, and low-level C language API.

/media/uploads/nyatla/libmimic-sdk.png

For WebService general, it can be written in a simple C + + API.

libMiMic does not have the standard Ethernet driver of mbed. It is not possible that will be used with the standard Ethernet driver.

  • MiMicIP - IPv4 protocol stack. This is based uip which is reduced memory and latency.
  • ARP / ICMP / UDP / TCP - Those are provide basic IP protocols.
  • HTTP/1.1 Server - The Http server compatible HTTP/1.1. It supports multi-session, chunked transport, persistent connection.
  • HTTP Modules - There are addon-module for HTTP server. The following modules.
    • ROM file module - Publish the file images in ROM.
    • File system module - Publish thefiles in mbed file system.
    • Onchip configuration module - To save the network settings to the program flash via REST.
    • MiMicVM module - To handle the (MiMicVM) RPC request.
    • FileUpload module - Accept a file via HTTP POST.
    • URL dedoce module - A versatility URL decoder.
    • UPnP handle module - To handle UPnP messages.
    • UPnP - This provides UPnP/1.0 device functions. It works together with UPnP handler.
    • Websocket - websocket (version13) server
  • mDNS Service - DNS-SD protocol server.
  • UPnP - This provides UPnP/1.0 device functions which works with UPnP handler. (You have been implemented (SSDP) ? description only (Description) device search now.) It is a module zero configuration for - DHCP / APIPA. mbed C + + class library - C of mbed for + + is the CPI. It is simple than that of the C language.
  • DHCP/APIPA - It support zero-cpnfigulation.
  • mbed C++ class library. Almost APIs for Web applications are available.
  • HTTP/1.1 Client

Supported target

  • mbed(mbed LPC1768)
  • LPCXpresso1769

Application

Import programMiMicRemoteMCU-for-Mbed

MiMic RemoteMCU for mbed. This program provides MCU control API over REST API. It can control MCU from Javascript,PHP or any HTTP rest client directly. And, The application has self development environment.

Import programMbedFileServer

The program publishes files at local directory and SD filesystem. It is a full-fledged webServer somewhat.

Sample

Import programMiMicSimpleHttpd

This is a simplest HTTP server made ​​of libMiMic. It will echo back a request path.

Import programUPnPBasicDevice

Simplest UPnP basic device example. This program to run UPnP basic device on the mbed.

Import programWebSocketSample

MiMicSDK Websocket module sample program.

Import programHttpClientSamlpe

A http client sample program.

Import programTcpSocketClientSamlpe

MiMicSDK Tcp client socket sample program.

Import programUdpSocketSamlpe

Udp socket sample program. This program will send back the received packet.

Tutorial

Committer:
nyatla
Date:
Wed Jun 19 09:33:01 2013 +0000
Revision:
37:fc4b4fd6a649
Parent:
30:d971af48e93b
Child:
38:b0604fee76b0
update; MiMic Core r263; add mDNS service,DHCP client,APIPA client

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nyatla 3:0a94993be1f6 1 #include "NetConfig.h"
nyatla 11:c82a7b2899b0 2 #include "NyLPC_uip.h"
nyatla 27:eb66b517efe6 3 #include "NyLPC_flash.h"
nyatla 11:c82a7b2899b0 4 #include "NyLPC_uip_ethernet.h"
nyatla 29:e19aab0c4156 5 #include "utils/PlatformInfo.h"
nyatla 13:a71705c5e6fd 6 #include <stdio.h>
nyatla 13:a71705c5e6fd 7 #include <stdlib.h>
nyatla 13:a71705c5e6fd 8 #include "mbed.h"
nyatla 27:eb66b517efe6 9
nyatla 37:fc4b4fd6a649 10 //default mdns records
nyatla 37:fc4b4fd6a649 11 const static char* MDNS_SRV_HTTP="_http._tcp\0";
nyatla 37:fc4b4fd6a649 12 const static char* MDNS_NAME="LPC176x(MiMic)\0";
nyatla 37:fc4b4fd6a649 13
nyatla 27:eb66b517efe6 14 extern "C" void mbed_mac_address(char *s);
nyatla 37:fc4b4fd6a649 15
nyatla 37:fc4b4fd6a649 16 static void printHex2(char* out,int v,int d)
nyatla 27:eb66b517efe6 17 {
nyatla 37:fc4b4fd6a649 18 size_t l;
nyatla 37:fc4b4fd6a649 19 NyLPC_itoa(v,out,16);
nyatla 37:fc4b4fd6a649 20 l=strlen(out);
nyatla 37:fc4b4fd6a649 21 if(l<d){
nyatla 37:fc4b4fd6a649 22 memcpy(out+(d-l),out,l);
nyatla 37:fc4b4fd6a649 23 memset(out,'0',(d-l));
nyatla 37:fc4b4fd6a649 24 }
nyatla 37:fc4b4fd6a649 25 *(out+d)='\0';
nyatla 27:eb66b517efe6 26 }
nyatla 37:fc4b4fd6a649 27
nyatla 37:fc4b4fd6a649 28 static void overrideMacAddrIfmbed(NyLPC_TcNetConfig& v)
nyatla 27:eb66b517efe6 29 {
nyatla 37:fc4b4fd6a649 30 mbed_mac_address((char*)(v.super.eth_mac.addr));
nyatla 37:fc4b4fd6a649 31 //update default hostname
nyatla 37:fc4b4fd6a649 32 strcpy(v.hostname,"MiMic");
nyatla 37:fc4b4fd6a649 33 printHex2(v.hostname+5,NyLPC_TcIPv4Config_getEtherMac000120203(&(v.super)),8);
nyatla 37:fc4b4fd6a649 34 printHex2(v.hostname+13,(NyLPC_TcIPv4Config_getEtherMac0405xxxx(&(v.super))>>16)&0xffff,4);
nyatla 37:fc4b4fd6a649 35 v.services.flags=NyLPC_TcNetConfig_SERVICE_FLAG_MDNS;
nyatla 37:fc4b4fd6a649 36 }
nyatla 37:fc4b4fd6a649 37
nyatla 37:fc4b4fd6a649 38 static void updateOnchipConfig(NyLPC_TcNetConfig& v)
nyatla 37:fc4b4fd6a649 39 {
nyatla 37:fc4b4fd6a649 40 struct NyLPC_TMiMicConfigulation cfg_image;
nyatla 27:eb66b517efe6 41 //パラメータ→ROMイメージ変換
nyatla 27:eb66b517efe6 42 cfg_image.fast_boot=0xffffffff;
nyatla 37:fc4b4fd6a649 43 cfg_image.mac_00_01_02_03=NyLPC_TcIPv4Config_getEtherMac000120203(&(v.super));
nyatla 37:fc4b4fd6a649 44 cfg_image.mac_04_05_xx_xx=NyLPC_TcIPv4Config_getEtherMac0405xxxx(&(v.super));
nyatla 37:fc4b4fd6a649 45 cfg_image.ipv4_addr_net =NyLPC_ntohl(v.super.ip_addr.v);
nyatla 37:fc4b4fd6a649 46 cfg_image.ipv4_mask_net =NyLPC_ntohl(v.super.netmask.v);
nyatla 37:fc4b4fd6a649 47 cfg_image.ipv4_drut_net =NyLPC_ntohl(v.super.dr_addr.v);
nyatla 37:fc4b4fd6a649 48 //additional information
nyatla 37:fc4b4fd6a649 49 cfg_image.ipv4_flags=v.tcp_mode;
nyatla 37:fc4b4fd6a649 50 cfg_image.http_port=v.services.http_port;
nyatla 37:fc4b4fd6a649 51 cfg_image.srv_flags=v.services.flags;
nyatla 37:fc4b4fd6a649 52 strcpy(cfg_image.hostname,v.hostname);
nyatla 27:eb66b517efe6 53 //FreeRTOSの停止
nyatla 27:eb66b517efe6 54 NyLPC_cIsr_enterCritical();
nyatla 27:eb66b517efe6 55 //Flashへの書き込み
nyatla 27:eb66b517efe6 56 NyLPC_cMiMicConfiglation_updateConfigulation(&cfg_image);
nyatla 27:eb66b517efe6 57 //FreeRTOSの復帰
nyatla 27:eb66b517efe6 58 NyLPC_cIsr_exitCritical();
nyatla 27:eb66b517efe6 59 }
nyatla 37:fc4b4fd6a649 60
nyatla 37:fc4b4fd6a649 61
nyatla 3:0a94993be1f6 62 namespace MiMic
nyatla 3:0a94993be1f6 63 {
nyatla 3:0a94993be1f6 64
nyatla 37:fc4b4fd6a649 65
nyatla 3:0a94993be1f6 66 NetConfig::NetConfig(bool i_is_factory_default)
nyatla 3:0a94993be1f6 67 {
nyatla 11:c82a7b2899b0 68 NyLPC_cNetConfig_initialize(&(this->_inst),i_is_factory_default);
nyatla 27:eb66b517efe6 69 //check mbed
nyatla 30:d971af48e93b 70 if(PlatformInfo::getPlatformType()!=PlatformInfo::PF_MBED)
nyatla 27:eb66b517efe6 71 {
nyatla 27:eb66b517efe6 72 return;
nyatla 27:eb66b517efe6 73 }
nyatla 27:eb66b517efe6 74
nyatla 27:eb66b517efe6 75 if(!NyLPC_cMiMicConfiglation_hasUserConfigulation()){
nyatla 27:eb66b517efe6 76 //is 1st read?
nyatla 27:eb66b517efe6 77 //mbed override
nyatla 27:eb66b517efe6 78 overrideMacAddrIfmbed((this->_inst));
nyatla 27:eb66b517efe6 79 //save
nyatla 27:eb66b517efe6 80 updateOnchipConfig((this->_inst));
nyatla 27:eb66b517efe6 81 }else{
nyatla 27:eb66b517efe6 82 //2nd read
nyatla 27:eb66b517efe6 83 if(i_is_factory_default){
nyatla 27:eb66b517efe6 84 //mbed override
nyatla 27:eb66b517efe6 85 overrideMacAddrIfmbed((this->_inst));
nyatla 27:eb66b517efe6 86 }else{
nyatla 27:eb66b517efe6 87 //nothing to do
nyatla 27:eb66b517efe6 88 }
nyatla 27:eb66b517efe6 89 }
nyatla 37:fc4b4fd6a649 90 //update DNS record
nyatla 37:fc4b4fd6a649 91 this->_dns_record.name=MDNS_NAME;
nyatla 37:fc4b4fd6a649 92 this->_dns_record.a=this->_inst.hostname;
nyatla 37:fc4b4fd6a649 93 this->_dns_record.num_of_srv=1;
nyatla 37:fc4b4fd6a649 94 this->_srv_record.protocol=MDNS_SRV_HTTP;
nyatla 37:fc4b4fd6a649 95 this->_srv_record.port=this->_inst.services.http_port;
nyatla 37:fc4b4fd6a649 96 this->_dns_record.srv=&(this->_srv_record);
nyatla 3:0a94993be1f6 97 }
nyatla 3:0a94993be1f6 98 NetConfig::~NetConfig()
nyatla 3:0a94993be1f6 99 {
nyatla 3:0a94993be1f6 100 NyLPC_cNetConfig_finalize(&(this->_inst));
nyatla 3:0a94993be1f6 101 }
nyatla 37:fc4b4fd6a649 102
nyatla 37:fc4b4fd6a649 103 void NetConfig::setZeroconf(bool v)
nyatla 37:fc4b4fd6a649 104 {
nyatla 37:fc4b4fd6a649 105 this->_inst.tcp_mode=(v?NyLPC_TcNetConfig_IPV4_FLAG_MODE_APIPA:NyLPC_TcNetConfig_IPV4_FLAG_MODE_MANUAL);
nyatla 37:fc4b4fd6a649 106 }
nyatla 11:c82a7b2899b0 107 /**
nyatla 11:c82a7b2899b0 108 * Set IPv4 ip address to instance.
nyatla 11:c82a7b2899b0 109 */
nyatla 11:c82a7b2899b0 110 void NetConfig::setIpAddr(unsigned char ip1,unsigned char ip2,unsigned char ip3,unsigned char ip4)
nyatla 11:c82a7b2899b0 111 {
nyatla 37:fc4b4fd6a649 112 NyLPC_TIPv4Addr_set(&(this->_inst.super.ip_addr),ip1,ip2,ip3,ip4);
nyatla 11:c82a7b2899b0 113 }
nyatla 11:c82a7b2899b0 114 /**
nyatla 11:c82a7b2899b0 115 * Set IPv4 network mask value to instance.
nyatla 11:c82a7b2899b0 116 */
nyatla 11:c82a7b2899b0 117 void NetConfig::setNetMask(unsigned char ip1,unsigned char ip2,unsigned char ip3,unsigned char ip4)
nyatla 11:c82a7b2899b0 118 {
nyatla 37:fc4b4fd6a649 119 NyLPC_TIPv4Addr_set(&(this->_inst.super.netmask),ip1,ip2,ip3,ip4);
nyatla 11:c82a7b2899b0 120 }
nyatla 11:c82a7b2899b0 121 /**
nyatla 11:c82a7b2899b0 122 * Set IPv4 default gateway address to instance.
nyatla 11:c82a7b2899b0 123 */
nyatla 11:c82a7b2899b0 124 void NetConfig::setGateway(unsigned char ip1,unsigned char ip2,unsigned char ip3,unsigned char ip4)
nyatla 11:c82a7b2899b0 125 {
nyatla 37:fc4b4fd6a649 126 NyLPC_TIPv4Addr_set(&(this->_inst.super.dr_addr),ip1,ip2,ip3,ip4);
nyatla 11:c82a7b2899b0 127 }
nyatla 11:c82a7b2899b0 128 /**
nyatla 11:c82a7b2899b0 129 * Set ethernet mac address to instance.
nyatla 11:c82a7b2899b0 130 */
nyatla 11:c82a7b2899b0 131 void NetConfig::setEmac(unsigned char a1,unsigned char a2,unsigned char a3,unsigned char a4,unsigned char a5,unsigned char a6)
nyatla 11:c82a7b2899b0 132 {
nyatla 37:fc4b4fd6a649 133 NyLPC_TEthAddr_set(&(this->_inst.super.eth_mac),a1,a2,a3,a4,a5,a6);
nyatla 37:fc4b4fd6a649 134 }
nyatla 37:fc4b4fd6a649 135 void NetConfig::setSrvHttpPort(unsigned short port)
nyatla 37:fc4b4fd6a649 136 {
nyatla 37:fc4b4fd6a649 137 this->_inst.services.http_port=port;
nyatla 11:c82a7b2899b0 138 }
nyatla 37:fc4b4fd6a649 139 void NetConfig::setSrvMdns(bool i_enable)
nyatla 37:fc4b4fd6a649 140 {
nyatla 37:fc4b4fd6a649 141 if(i_enable){
nyatla 37:fc4b4fd6a649 142 this->_inst.services.flags|=NyLPC_TcNetConfig_SERVICE_FLAG_MDNS;
nyatla 37:fc4b4fd6a649 143 }else{
nyatla 37:fc4b4fd6a649 144 this->_inst.services.flags&=(~NyLPC_TcNetConfig_SERVICE_FLAG_MDNS);
nyatla 37:fc4b4fd6a649 145 }
nyatla 37:fc4b4fd6a649 146 }
nyatla 37:fc4b4fd6a649 147 void NetConfig::setHostName(const char* i_hostname)
nyatla 37:fc4b4fd6a649 148 {
nyatla 37:fc4b4fd6a649 149 this->setHostName(i_hostname,strlen(i_hostname));
nyatla 37:fc4b4fd6a649 150 }
nyatla 37:fc4b4fd6a649 151 void NetConfig::setHostName(const char* i_hostname,int len)
nyatla 37:fc4b4fd6a649 152 {
nyatla 37:fc4b4fd6a649 153 int l=(len>(NyLPC_TcNetConfig_HOSTNAME_LEN-1))?NyLPC_TcNetConfig_HOSTNAME_LEN-1:len;
nyatla 37:fc4b4fd6a649 154 memcpy(this->_inst.hostname,i_hostname,l);
nyatla 37:fc4b4fd6a649 155 *(this->_inst.hostname+l)='\0';
nyatla 37:fc4b4fd6a649 156 }
nyatla 37:fc4b4fd6a649 157
nyatla 13:a71705c5e6fd 158 bool NetConfig::loadFromFile(const char* i_file)
nyatla 13:a71705c5e6fd 159 {
nyatla 37:fc4b4fd6a649 160 const static char* tbl[]={
nyatla 37:fc4b4fd6a649 161 "macaddr", //0
nyatla 37:fc4b4fd6a649 162 "ipaddr", //1
nyatla 37:fc4b4fd6a649 163 "netmask", //2
nyatla 37:fc4b4fd6a649 164 "gateway", //3
nyatla 37:fc4b4fd6a649 165 "srv_http_port",//4
nyatla 37:fc4b4fd6a649 166 "srv_mdns",//5
nyatla 37:fc4b4fd6a649 167 "host",//6
nyatla 37:fc4b4fd6a649 168 };
nyatla 13:a71705c5e6fd 169 char tmp[32];
nyatla 37:fc4b4fd6a649 170 union{
nyatla 37:fc4b4fd6a649 171 unsigned char u8[6];
nyatla 37:fc4b4fd6a649 172 NyLPC_TUInt32 u32;
nyatla 37:fc4b4fd6a649 173 }v;
nyatla 37:fc4b4fd6a649 174 const char* p;//pointer to read
nyatla 13:a71705c5e6fd 175 const char* key;
nyatla 37:fc4b4fd6a649 176 const char* t;
nyatla 13:a71705c5e6fd 177 int l;
nyatla 13:a71705c5e6fd 178 FILE* fp = fopen(i_file,"r");
nyatla 13:a71705c5e6fd 179 if(fp==NULL){
nyatla 13:a71705c5e6fd 180 return false;
nyatla 13:a71705c5e6fd 181 }
nyatla 13:a71705c5e6fd 182 //read from values
nyatla 13:a71705c5e6fd 183 while(fgets(tmp,31,fp)){
nyatla 13:a71705c5e6fd 184 p=NyLPC_cFormatTextReader_seekSpace(tmp)+tmp;//skip space
nyatla 13:a71705c5e6fd 185 l=NyLPC_cFormatTextReader_readWord(p,&key);
nyatla 37:fc4b4fd6a649 186 for(int i=0;i<7;i++){
nyatla 13:a71705c5e6fd 187 if(l>=0 && NyLPC_strnicmp(key,tbl[i],l)==0){
nyatla 13:a71705c5e6fd 188 p+=l;//skip keyname
nyatla 13:a71705c5e6fd 189 p=NyLPC_cFormatTextReader_seekSpace(p)+p;//skip space
nyatla 13:a71705c5e6fd 190 if(*p!='='){
nyatla 13:a71705c5e6fd 191 break;//check equal
nyatla 13:a71705c5e6fd 192 }
nyatla 13:a71705c5e6fd 193 p++;
nyatla 37:fc4b4fd6a649 194 //skip space
nyatla 13:a71705c5e6fd 195 p=NyLPC_cFormatTextReader_seekSpace(p)+p;//skip space
nyatla 13:a71705c5e6fd 196 switch(i){
nyatla 37:fc4b4fd6a649 197 case 0://macaddr
nyatla 37:fc4b4fd6a649 198 if(NyLPC_cFormatTextReader_readMacAddr(p,v.u8)!=0){
nyatla 37:fc4b4fd6a649 199 this->setEmac(v.u8[0],v.u8[1],v.u8[2],v.u8[3],v.u8[4],v.u8[5]);
nyatla 13:a71705c5e6fd 200 }
nyatla 13:a71705c5e6fd 201 break;
nyatla 37:fc4b4fd6a649 202 case 1://ipaddr
nyatla 37:fc4b4fd6a649 203 if(NyLPC_cFormatTextReader_readIpAddr(p,v.u8)!=0){
nyatla 37:fc4b4fd6a649 204 this->setIpAddr(v.u8[0],v.u8[1],v.u8[2],v.u8[3]);
nyatla 37:fc4b4fd6a649 205 this->setZeroconf(false);
nyatla 37:fc4b4fd6a649 206 }else{
nyatla 37:fc4b4fd6a649 207 if(NyLPC_cFormatTextReader_readWord(p,&t)==4){
nyatla 37:fc4b4fd6a649 208 if(NyLPC_strnicmp(t,"auto",4)==0){
nyatla 37:fc4b4fd6a649 209 this->setZeroconf(true);
nyatla 37:fc4b4fd6a649 210 }
nyatla 37:fc4b4fd6a649 211 }
nyatla 13:a71705c5e6fd 212 }
nyatla 13:a71705c5e6fd 213 break;
nyatla 13:a71705c5e6fd 214 case 2:
nyatla 37:fc4b4fd6a649 215 if(NyLPC_cFormatTextReader_readIpAddr(p,v.u8)!=0){
nyatla 37:fc4b4fd6a649 216 this->setNetMask(v.u8[0],v.u8[1],v.u8[2],v.u8[3]);
nyatla 13:a71705c5e6fd 217 }
nyatla 13:a71705c5e6fd 218 break;
nyatla 13:a71705c5e6fd 219 case 3:
nyatla 37:fc4b4fd6a649 220 if(NyLPC_cFormatTextReader_readIpAddr(p,v.u8)!=0){
nyatla 37:fc4b4fd6a649 221 this->setGateway(v.u8[0],v.u8[1],v.u8[2],v.u8[3]);
nyatla 37:fc4b4fd6a649 222 }
nyatla 37:fc4b4fd6a649 223 break;
nyatla 37:fc4b4fd6a649 224 case 4:
nyatla 37:fc4b4fd6a649 225 if(NyLPC_cFormatTextReader_readUInt(p,&(v.u32))!=0){
nyatla 37:fc4b4fd6a649 226 this->setSrvHttpPort((unsigned short)v.u32);
nyatla 37:fc4b4fd6a649 227 }
nyatla 37:fc4b4fd6a649 228 break;
nyatla 37:fc4b4fd6a649 229 case 5:
nyatla 37:fc4b4fd6a649 230 l=NyLPC_cFormatTextReader_readWord(p,&t);
nyatla 37:fc4b4fd6a649 231 if((*t=='y' || *t=='Y')){
nyatla 37:fc4b4fd6a649 232 this->setSrvMdns(true);
nyatla 37:fc4b4fd6a649 233 }else if((*t=='n' || *t=='N')){
nyatla 37:fc4b4fd6a649 234 this->setSrvMdns(false);
nyatla 37:fc4b4fd6a649 235 }
nyatla 37:fc4b4fd6a649 236 break;
nyatla 37:fc4b4fd6a649 237 case 6:
nyatla 37:fc4b4fd6a649 238 l=NyLPC_cFormatTextReader_readWord(p,&t);
nyatla 37:fc4b4fd6a649 239 if(l>1){
nyatla 37:fc4b4fd6a649 240 this->setHostName(t,l);
nyatla 13:a71705c5e6fd 241 }
nyatla 13:a71705c5e6fd 242 break;
nyatla 13:a71705c5e6fd 243 default:
nyatla 13:a71705c5e6fd 244 break;
nyatla 13:a71705c5e6fd 245 }
nyatla 13:a71705c5e6fd 246 }
nyatla 13:a71705c5e6fd 247 }
nyatla 13:a71705c5e6fd 248 }
nyatla 13:a71705c5e6fd 249 fclose(fp);
nyatla 13:a71705c5e6fd 250 return true;
nyatla 37:fc4b4fd6a649 251 }
nyatla 3:0a94993be1f6 252 };