Station API
Ether.h@1:a22e390c70b3, 2011-12-12 (annotated)
- Committer:
- yamaguch
- Date:
- Mon Dec 12 02:33:21 2011 +0000
- Revision:
- 1:a22e390c70b3
- Parent:
- 0:d81f611c59ec
- Child:
- 2:a9d1a9c92927
0.1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
yamaguch | 0:d81f611c59ec | 1 | #include "EthernetNetIf.h" |
yamaguch | 1:a22e390c70b3 | 2 | #include "Utils.h" |
yamaguch | 0:d81f611c59ec | 3 | |
yamaguch | 0:d81f611c59ec | 4 | class Ether { |
yamaguch | 0:d81f611c59ec | 5 | public: |
yamaguch | 0:d81f611c59ec | 6 | Ether(bool verbose = false) |
yamaguch | 0:d81f611c59ec | 7 | : active(false), verbose(verbose) { |
yamaguch | 0:d81f611c59ec | 8 | } |
yamaguch | 0:d81f611c59ec | 9 | |
yamaguch | 0:d81f611c59ec | 10 | Ether(IpAddr ip, IpAddr subnet, IpAddr gateway, IpAddr dns, bool verbose = false) |
yamaguch | 0:d81f611c59ec | 11 | : eth(ip, subnet, gateway, dns), active(false), verbose(verbose) { |
yamaguch | 0:d81f611c59ec | 12 | } |
yamaguch | 0:d81f611c59ec | 13 | |
yamaguch | 0:d81f611c59ec | 14 | static Ether create(IpAddr ip, IpAddr subnet, IpAddr gateway, IpAddr dns, bool verbose = false) { |
yamaguch | 0:d81f611c59ec | 15 | return Ether(ip, subnet, gateway, dns, verbose); |
yamaguch | 0:d81f611c59ec | 16 | } |
yamaguch | 0:d81f611c59ec | 17 | |
yamaguch | 0:d81f611c59ec | 18 | static Ether create(char *filename = 0, bool verbose = false) { |
yamaguch | 0:d81f611c59ec | 19 | if (filename) { |
yamaguch | 0:d81f611c59ec | 20 | char path[32]; |
yamaguch | 0:d81f611c59ec | 21 | LocalFileSystem local("local"); |
yamaguch | 0:d81f611c59ec | 22 | sprintf(path, "/local/%s", filename); |
yamaguch | 0:d81f611c59ec | 23 | if (FILE *fp = fopen(path, "r")) { |
yamaguch | 0:d81f611c59ec | 24 | char b1, b2, b3, b4; |
yamaguch | 1:a22e390c70b3 | 25 | IpAddr ip = Utils::fgetValues(fp, "ip-address:%hhu.%hhu.%hhu.%hhu", &b1, &b2, &b3, &b4) ? IpAddr(b1, b2, b3, b4) : IpAddr(); |
yamaguch | 1:a22e390c70b3 | 26 | IpAddr subnet = Utils::fgetValues(fp, "subnet-mask:%hhu.%hhu.%hhu.%hhu", &b1, &b2, &b3, &b4) ? IpAddr(b1, b2, b3, b4) : IpAddr(); |
yamaguch | 1:a22e390c70b3 | 27 | IpAddr gateway = Utils::fgetValues(fp, "gateway-address:%hhu.%hhu.%hhu.%hhu", &b1, &b2, &b3, &b4) ? IpAddr(b1, b2, b3, b4) : IpAddr(); |
yamaguch | 1:a22e390c70b3 | 28 | IpAddr dns = Utils::fgetValues(fp, "dns-address:%hhu.%hhu.%hhu.%hhu", &b1, &b2, &b3, &b4) ? IpAddr(b1, b2, b3, b4) : IpAddr(); |
yamaguch | 0:d81f611c59ec | 29 | fclose(fp); |
yamaguch | 0:d81f611c59ec | 30 | if (verbose) { |
yamaguch | 0:d81f611c59ec | 31 | ::printf( "ip-address:%hhu.%hhu.%hhu.%hhu\n", ip[0], ip[1], ip[2], ip[3]); |
yamaguch | 0:d81f611c59ec | 32 | ::printf( "subnet-mask:%hhu.%hhu.%hhu.%hhu\n", subnet[0], subnet[1], subnet[2], subnet[3]); |
yamaguch | 0:d81f611c59ec | 33 | ::printf( "gateway-address:%hhu.%hhu.%hhu.%hhu\n", gateway[0], gateway[1], gateway[2], gateway[3]); |
yamaguch | 0:d81f611c59ec | 34 | ::printf( "dns-address:%hhu.%hhu.%hhu.%hhu\n", dns[0], dns[1], dns[2], dns[3]); |
yamaguch | 0:d81f611c59ec | 35 | } |
yamaguch | 1:a22e390c70b3 | 36 | return Ether(ip, subnet, gateway, dns, verbose); |
yamaguch | 0:d81f611c59ec | 37 | } |
yamaguch | 0:d81f611c59ec | 38 | } |
yamaguch | 0:d81f611c59ec | 39 | return Ether(); |
yamaguch | 0:d81f611c59ec | 40 | } |
yamaguch | 0:d81f611c59ec | 41 | |
yamaguch | 0:d81f611c59ec | 42 | void setup() { |
yamaguch | 0:d81f611c59ec | 43 | EthernetErr err = eth.setup(); |
yamaguch | 0:d81f611c59ec | 44 | active = err == ETH_OK; |
yamaguch | 0:d81f611c59ec | 45 | if (verbose) { |
yamaguch | 0:d81f611c59ec | 46 | ::printf("EthernetNetIf.setup() = %d\n", err); |
yamaguch | 0:d81f611c59ec | 47 | } |
yamaguch | 0:d81f611c59ec | 48 | } |
yamaguch | 0:d81f611c59ec | 49 | |
yamaguch | 1:a22e390c70b3 | 50 | bool isActive() { |
yamaguch | 0:d81f611c59ec | 51 | return active; |
yamaguch | 0:d81f611c59ec | 52 | } |
yamaguch | 0:d81f611c59ec | 53 | |
yamaguch | 0:d81f611c59ec | 54 | private: |
yamaguch | 0:d81f611c59ec | 55 | EthernetNetIf eth; |
yamaguch | 0:d81f611c59ec | 56 | bool active; |
yamaguch | 0:d81f611c59ec | 57 | bool verbose; |
yamaguch | 1:a22e390c70b3 | 58 | }; |