From 896f63c62b18394c55b5e19fb222118049533dac Mon Sep 17 00:00:00 2001 From: Janik Graf Date: Wed, 29 Sep 2021 13:31:28 +0200 Subject: [PATCH] started ping implementation --- main/main.c | 54 +++++++++++++++++++++++++---------------------------- 1 file changed, 25 insertions(+), 29 deletions(-) diff --git a/main/main.c b/main/main.c index 97ff927..4c630dc 100644 --- a/main/main.c +++ b/main/main.c @@ -48,6 +48,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; @@ -84,6 +85,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]; @@ -241,35 +266,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) {