Merge branch 'master' of ssh://gitea.krumel.moe/krumel/ESP32-POE-NW-TEST

This commit is contained in:
janik
2021-10-20 09:54:19 +02:00
2 changed files with 29 additions and 33 deletions

View File

@ -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 <br/> *Ausgefüllt -> Eine DNS anfrage wurde erfolgreich durchgeführt*
|DNS| Blinkend -> DNS-IPP wurde von DHCP zugewießen <br/> 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*

View File

@ -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)
{