mbed Weather Platform プログラミングの勘所
mbed Weather Platform プログラミングの勘所
設定ファイル
設定ファイルを読み込んで、動的にIPアドレス等を設定する。
使用ライブラリ:/users/shintamainjp/notebook/configfile_ja/
#include "mbed.h" #include "EthernetNetIf.h" #include "ConfigFile.h" EthernetNetIf *eth; IpAddr ipaddr, netmask, gateway, nameserver; : : int config (char *file) { ConfigFile cfg; char buf[80]; int ip0, ip1, ip2, ip3; if (! cfg.read(file)) { return -1; } if (cfg.getValue("IPADDRESS", buf, sizeof(buf))) { if (strcmp(buf, "DHCP") == 0) { ipaddr = IpAddr(255, 255, 255, 255); } else { sscanf(buf, "%d.%d.%d.%d", &ip0, &ip1, &ip2, &ip3); ipaddr = IpAddr(ip0, ip1, ip2, ip3); } } if (cfg.getValue("NETMASK", buf, sizeof(buf))) { sscanf(buf, "%d.%d.%d.%d", &ip0, &ip1, &ip2, &ip3); netmask = IpAddr(ip0, ip1, ip2, ip3); } if (cfg.getValue("GATEWAY", buf, sizeof(buf))) { sscanf(buf, "%d.%d.%d.%d", &ip0, &ip1, &ip2, &ip3); gateway = IpAddr(ip0, ip1, ip2, ip3); } if (cfg.getValue("NAMESERVER", buf, sizeof(buf))) { sscanf(buf, "%d.%d.%d.%d", &ip0, &ip1, &ip2, &ip3); nameserver = IpAddr(ip0, ip1, ip2, ip3); } if (ipaddr[0] == 255) { // dhcp ip address eth = new EthernetNetIf; } else { // static ip address eth = new EthernetNetIf(ipaddr, netmask, gateway, nameserver); } ethErr = eth->setup(); if (ethErr) { // error return -1; } return 0; }
Please log in to post comments.