diff --git a/README.md b/README.md
index a478dfd..c1c7409 100644
--- a/README.md
+++ b/README.md
@@ -10,11 +10,11 @@ Code basiert auf den folgenden Beispielen:
## Features
* Testet Basic ETH/DHCP Konnektivität
- * Testet ob auch ein DNS Server verteilt wird
+* Testet ob auch ein DNS Server verteilt wird
* Testet PoE (nur An-/Abwesenheit)
* Internet Verbindungstest
- * Ping zu 1.0.0.1
- * [Windows Variante](https://www.itechtics.com/ncsi/)
+* Ping zu 1.0.0.1
+* [Windows Variante](https://www.itechtics.com/ncsi/)
## Display
@@ -35,6 +35,6 @@ Features in *kursiv* sind noch unimplementiert
|POE| Ausgefüllt -> PoE verfügbar
|LNK| Ausgefüllt -> LINK UP
|DHCP| Ausgefüllt -> IP wurde per DHCP zugewießen
-|DNS| Blinkend -> DNS-IPP wurde von DHCP zugewießen
*Ausgefüllt -> Eine DNS anfrage wurde erfolgreich durchgeführt*
+|DNS| Blinkend -> DNS-IPP wurde von DHCP zugewießen
Ausgefüllt -> Eine DNS Anfrage wurde erfolgreich durchgeführt
|*PING*| *Ausgefüllt -> Ein Ping wurde an eine öffentliche Adresse erfolgreich durchgeführt*
|*HTTP*| *Ausgefüllt -> Es wurde erfolgreich über Port 80/443 eine Verbindung durchgeführt zu einer öffentlichen Adresse*
\ No newline at end of file
diff --git a/main/main.c b/main/main.c
index d3c1a2b..8cd2c99 100644
--- a/main/main.c
+++ b/main/main.c
@@ -52,6 +52,7 @@ esp_ip4_addr_t ip_addr;
esp_ip4_addr_t ip_snm;
esp_ip4_addr_t ip_gw;
esp_netif_t *eth_netif;
+esp_ping_handle_t ping;
int dns_resolv = -1;
@@ -91,6 +92,30 @@ static void check_resolution(void *arg)
}
}
+//TODO: Implement ping https://github.com/espressif/esp-idf/blob/master/examples/protocols/icmp_echo/main/echo_example_main.c
+static void start_icmp_ping()
+{
+ esp_ping_config_t config = ESP_PING_DEFAULT_CONFIG();
+
+ config.timeout_ms = 1000;
+ config.interval_ms = 1000;
+ config.count = 16;
+
+ config.target_addr = target_addr;
+
+ /* set callback functions */
+ esp_ping_callbacks_t cbs = {
+ .on_ping_success = cmd_ping_on_ping_success,
+ .on_ping_timeout = cmd_ping_on_ping_timeout,
+ .on_ping_end = cmd_ping_on_ping_end,
+ .cb_args = NULL
+ };
+ esp_ping_new_session(&config, &cbs, &ping);
+ esp_ping_start(ping);
+
+ return 0;
+}
+
static void refresh_display()
{
char buf[64];
@@ -271,35 +296,6 @@ static void task_signals(void* arg)
}
}
-// void icmp_ping(in_addr_t ip)
-// {
-// /* convert URL to IP address */
-// ip_addr_t target_addr;
-// struct addrinfo hint;
-// struct addrinfo *res = NULL;
-// memset(&hint, 0, sizeof(hint));
-// memset(&target_addr, 0, sizeof(target_addr));
-// getaddrinfo("www.espressif.com", NULL, &hint, &res);
-// struct in_addr addr4 = ((struct sockaddr_in *) (res->ai_addr))->sin_addr;
-// inet_addr_to_ip4addr(ip_2_ip4(&target_addr), &addr4);
-// freeaddrinfo(res);
-
-// esp_ping_config_t ping_config = ESP_PING_DEFAULT_CONFIG();
-// ping_config.target_addr = target_addr; // target IP address
-// ping_config.count = ESP_PING_COUNT_INFINITE; // ping in infinite mode, esp_ping_stop can stop it
-
-// /* set callback functions */
-// esp_ping_callbacks_t cbs;
-// cbs.on_ping_success = test_on_ping_success;
-// cbs.on_ping_timeout = test_on_ping_timeout;
-// cbs.on_ping_end = test_on_ping_end;
-// cbs.cb_args = "foo"; // arguments that will feed to all callback functions, can be NULL
-// cbs.cb_args = eth_event_group;
-
-// esp_ping_handle_t ping;
-// esp_ping_new_session(&ping_config, &cbs, &ping);
-// }
-
#define PIN_PHY_POWER 12
void app_main(void)
{