Dirk-Willem van Gulik (NXP/mbed)
/
Bonjour
Bonjour/Zerconf library
main.cpp@2:816cbd922d3e, 2010-07-24 (annotated)
- Committer:
- dirkx
- Date:
- Sat Jul 24 20:59:52 2010 +0000
- Revision:
- 2:816cbd922d3e
- Parent:
- 1:59820ca5c83a
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
dirkx | 0:355018f44c9f | 1 | #include "mbed.h" |
dirkx | 0:355018f44c9f | 2 | |
dirkx | 0:355018f44c9f | 3 | #include "EthernetNetIf.h" |
dirkx | 1:59820ca5c83a | 4 | #include "HTTPServer.h" |
dirkx | 0:355018f44c9f | 5 | |
dirkx | 0:355018f44c9f | 6 | // mDNS response to announce oneselve |
dirkx | 0:355018f44c9f | 7 | #include "services/mDNS/mDNSResponder.h" |
dirkx | 0:355018f44c9f | 8 | |
dirkx | 0:355018f44c9f | 9 | DigitalOut myled(LED1); |
dirkx | 0:355018f44c9f | 10 | EthernetNetIf eth; |
dirkx | 1:59820ca5c83a | 11 | HTTPServer srv; |
dirkx | 2:816cbd922d3e | 12 | mDNSResponder mdns; // make sure LWIP_IGMP is set in netCfg.h ! |
dirkx | 0:355018f44c9f | 13 | |
dirkx | 0:355018f44c9f | 14 | int main() { |
dirkx | 0:355018f44c9f | 15 | EthernetErr ethErr = eth.setup(); |
dirkx | 0:355018f44c9f | 16 | if (ethErr) { |
dirkx | 0:355018f44c9f | 17 | printf("Error %d in setup on DHCP.\r\n", ethErr); |
dirkx | 0:355018f44c9f | 18 | return -1; |
dirkx | 0:355018f44c9f | 19 | } |
dirkx | 1:59820ca5c83a | 20 | srv.addHandler<SimpleHandler>("/"); // Something. |
dirkx | 1:59820ca5c83a | 21 | srv.addHandler<SimpleHandler>("/sample"); // Something too |
dirkx | 1:59820ca5c83a | 22 | srv.bind(80); |
dirkx | 1:59820ca5c83a | 23 | |
dirkx | 0:355018f44c9f | 24 | IpAddr ip = eth.getIp(); |
dirkx | 0:355018f44c9f | 25 | printf("mbed IP Address is %d.%d.%d.%d\r\n", ip[0], ip[1], ip[2], ip[3]); |
dirkx | 0:355018f44c9f | 26 | |
dirkx | 1:59820ca5c83a | 27 | // Announce above web server - and keep doing that every minute or so. |
dirkx | 1:59820ca5c83a | 28 | // |
dirkx | 1:59820ca5c83a | 29 | mdns.announce( |
dirkx | 1:59820ca5c83a | 30 | ip, // (My) IP address - where announced service runs. |
dirkx | 1:59820ca5c83a | 31 | "propername", // DNS name server or service |
dirkx | 1:59820ca5c83a | 32 | "_http._tcp", // protocol |
dirkx | 1:59820ca5c83a | 33 | 80, // Port number |
dirkx | 1:59820ca5c83a | 34 | "May the blood run free", // User interface name service |
dirkx | 1:59820ca5c83a | 35 | (char *[]) { // NULL terminated list of KV's = see // http://www.zeroconf.org/Rendezvous/txtrecords.html |
dirkx | 1:59820ca5c83a | 36 | "path=/sample", // http://www.zeroconf.org/Rendezvous/txtrecords.html |
dirkx | 1:59820ca5c83a | 37 | // "key2=someval", |
dirkx | 1:59820ca5c83a | 38 | // "and=more", |
dirkx | 1:59820ca5c83a | 39 | NULL |
dirkx | 1:59820ca5c83a | 40 | } |
dirkx | 1:59820ca5c83a | 41 | ); |
dirkx | 1:59820ca5c83a | 42 | |
dirkx | 1:59820ca5c83a | 43 | // So that clicking on 'May the blood run free' will jump to: |
dirkx | 1:59820ca5c83a | 44 | // |
dirkx | 1:59820ca5c83a | 45 | // http://propername.local.:80/sample (or http://propername/sample in the bar) |
dirkx | 0:355018f44c9f | 46 | |
dirkx | 0:355018f44c9f | 47 | printf("Entering while loop Net::poll()ing\r\n"); |
dirkx | 0:355018f44c9f | 48 | while (1) { |
dirkx | 0:355018f44c9f | 49 | Net::poll(); |
dirkx | 0:355018f44c9f | 50 | } |
dirkx | 0:355018f44c9f | 51 | } |