blob: 14bd1961b27d6a0b1f0cad5128e362bdb086ec1a [file]
#include <ESP8266WiFi.h>
#include <ESP8266Ping.h>
#include <WiFiUdp.h>
const char* ssid = "wifi_tethering_test";
const char* password = "password";
unsigned int localPort = 8888;
char packetBuffer[UDP_TX_PACKET_MAX_SIZE];
WiFiUDP Udp;
void setup() {
delay(1000); // wait for a second to read from serial port after flashing
Serial.begin(9600);
Serial.println("connect: setup(): CALL: Setup Begin");
Serial.println("connect: setup(): INFO: Setting baud rate to 9600");
wifiStatus();
connectWifi();
Udp.begin(localPort);
Serial.println("connect: setup(): CALL: Setup End");
}
void loop() {
wifiStatus();
udpPackets();
}
void connectWifi() {
Serial.println("connect: connectWifi(): CALL: Connect Begin");
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
Serial.println("connect: setup(): INFO: WiFi disconnected");
delay(1000);
}
Serial.println("connect: connectWifi(): CALL: Connect End");
}
void wifiStatus() {
Serial.println("connect: wifiStatus(): CALL: Status Begin");
Serial.println("connect: wifiStatus(): INFO: WiFi connected");
Serial.print("connect: wifiStatus(): STATUS: ");
Serial.println(WiFi.status());
Serial.print("connect: wifiStatus(): IP: ");
Serial.println(WiFi.localIP());
Serial.print("connect: wifiStatus(): SSID: ");
Serial.println(WiFi.SSID());
bool ret = Ping.ping("www.google.com", 3);
Serial.print("connect: wifiStatus(): PING: ");
if (ret) {
Serial.println("1");
} else {
Serial.println("0");
}
delay(250);
Serial.println("connect: wifiStatus(): CALL: Status End");
}
void udpPackets() {
Serial.println("connect: udpPackets(): CALL: UDP Begin");
int packetSize = Udp.parsePacket();
while(packetSize) {
Serial.print("connect: udpPackets(): PKTSZ: ");
Serial.println(packetSize);
Serial.print("connect: udpPackets(): REMOTEIP: ");
IPAddress remote = Udp.remoteIP();
for (int i =0; i < 4; i++) {
Serial.print(remote[i], DEC);
if (i < 3) {
Serial.print(".");
}
}
Serial.println("");
Serial.print("connect: udpPackets(): REMOTEPORT: ");
Serial.println(Udp.remotePort());
// read the packet into packetBufffer
Udp.read(packetBuffer,UDP_TX_PACKET_MAX_SIZE);
Serial.print("connect: udpPackets(): RECV: ");
Serial.println(packetBuffer);
// send the same message back
Udp.beginPacket(Udp.remoteIP(), Udp.remotePort());
Udp.write(packetBuffer);
Udp.endPacket();
packetSize = Udp.parsePacket();
}
Serial.println("connect: udpPackets(): CALL: UDP End");
}