79 lines
2.1 KiB
Arduino
79 lines
2.1 KiB
Arduino
/*
|
|
* This sketch will display mDNS (multicast DNS) data seen on the network.
|
|
*/
|
|
|
|
|
|
#include "mdns.h"
|
|
|
|
|
|
// When an mDNS packet gets parsed this callback gets called.
|
|
void packetCallback(const mdns::MDns* packet){
|
|
packet->Display();
|
|
packet->DisplayRawPacket();
|
|
}
|
|
|
|
// When an mDNS packet gets parsed this callback gets called once per Query.
|
|
// See mdns.h for definition of mdns::Query.
|
|
void queryCallback(const mdns::Query* query){
|
|
query->Display();
|
|
}
|
|
|
|
// When an mDNS packet gets parsed this callback gets called once per Query.
|
|
// See mdns.h for definition of mdns::Answer.
|
|
void answerCallback(const mdns::Answer* answer){
|
|
answer->Display();
|
|
}
|
|
|
|
// Initialise MDns. If you don't want the optioanl callbacks, just provide a NULL pointer.
|
|
mdns::MDns my_mdns(packetCallback, queryCallback, answerCallback);
|
|
|
|
void setup() {
|
|
// Open serial communications and wait for port to open:
|
|
Serial.begin(115200);
|
|
|
|
// setting up Station AP
|
|
WiFi.begin("your_WiFI_SSID", "your_WiFi_password");
|
|
|
|
// Wait for connect to AP
|
|
int tries = 0;
|
|
while (WiFi.status() != WL_CONNECTED) {
|
|
delay(500);
|
|
Serial.print(".");
|
|
tries++;
|
|
if (tries > 30) {
|
|
break;
|
|
}
|
|
}
|
|
printWifiStatus();
|
|
Serial.println();
|
|
}
|
|
|
|
unsigned int last_packet_count = 0;
|
|
void loop() {
|
|
my_mdns.loop();
|
|
|
|
#ifdef DEBUG_STATISTICS
|
|
// Give feedback on the percentage of incoming mDNS packets that fitted in buffer.
|
|
// Useful for tuning the buffer size to make best use of available memory.
|
|
if(last_packet_count != my_mdns.packet_count && my_mdns.packet_count != 0){
|
|
last_packet_count = my_mdns.packet_count;
|
|
Serial.print("mDNS decode success rate: ");
|
|
Serial.print(100 - (100 * my_mdns.buffer_size_fail / my_mdns.packet_count));
|
|
Serial.print("%\nLargest packet size: ");
|
|
Serial.println(my_mdns.largest_packet_seen);
|
|
}
|
|
#endif
|
|
}
|
|
|
|
void printWifiStatus() {
|
|
// print the SSID of the network you're attached to:
|
|
Serial.println();
|
|
Serial.print("SSID: ");
|
|
Serial.println(WiFi.SSID());
|
|
|
|
// print your WiFi shield's IP address:
|
|
IPAddress ip = WiFi.localIP();
|
|
Serial.print("IP Address: ");
|
|
Serial.println(ip);
|
|
}
|