started ping implementation

This commit is contained in:
Janik Graf
2021-09-29 13:31:28 +02:00
parent 50e84f7931
commit 896f63c62b

View File

@ -48,6 +48,7 @@ esp_ip4_addr_t ip_addr;
esp_ip4_addr_t ip_snm; esp_ip4_addr_t ip_snm;
esp_ip4_addr_t ip_gw; esp_ip4_addr_t ip_gw;
esp_netif_t *eth_netif; esp_netif_t *eth_netif;
esp_ping_handle_t ping;
int dns_resolv = -1; 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() static void refresh_display()
{ {
char buf[64]; 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 #define PIN_PHY_POWER 12
void app_main(void) void app_main(void)
{ {