Advertisement
Dmitry77

ping esp32

Feb 11th, 2018
383
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.43 KB | None | 0 0
  1. #include "ping.h"
  2. #include "esp_ping.h"
  3. bool ping_status_esp32=0;
  4. uint8_t ping_count = 20;
  5. esp_err_t pingResults(ping_target_id_t msgType, esp_ping_found * pf)
  6. {
  7.     printf("AvgTime:%.1fmS Sent:%d Rec:%d min(mS):%d max(mS):%d Resp(mS):%d Timeouts:%d Total Time:%d\n", (float)pf->total_time/pf->recv_count, pf->send_count, pf->recv_count,  pf->min_time, pf->max_time ,pf->resp_time, pf->timeout_count, pf->total_time);
  8.     ping_status_esp32=(pf->total_time && (pf->send_count/2) < pf->recv_count )?1:0;
  9.     return ESP_OK;
  10. }
  11. void ping_test_esp32()
  12. {
  13.     uint32_t ip_pinG = ipaddr_addr("8.8.8.8");
  14.     uint32_t ping_timeout = 1; //Sek till we consider it timed out
  15.     uint32_t ping_delay = 1; //Sek between pings
  16.     ping_deinit();
  17.     esp_ping_set_target(PING_TARGET_IP_ADDRESS_COUNT, &ping_count, sizeof(uint32_t));
  18.     esp_ping_set_target(PING_TARGET_RCV_TIMEO, &ping_timeout, sizeof(uint32_t));
  19.     esp_ping_set_target(PING_TARGET_DELAY_TIME, &ping_delay, sizeof(uint32_t));
  20.     esp_ping_set_target(PING_TARGET_IP_ADDRESS, &ip_pinG, sizeof(uint32_t));
  21.     esp_ping_set_target(PING_TARGET_RES_FN, &pingResults, sizeof(pingResults));
  22.     ping_init();
  23. }
  24. void startfunc()
  25. {
  26. }
  27. void timerfunc(uint32_t  timersrc)
  28. {
  29.     if(timersrc%(ping_count*3)==0 && timersrc )
  30.     {
  31.         ping_test_esp32();
  32.     }
  33.     vTaskDelay(1000 / portTICK_PERIOD_MS);
  34. }
  35. void webfunc(char *pbuf)
  36. {
  37.     os_sprintf(HTTPBUFF,"<hr>ping %d <meta http-equiv='refresh' content='20'>",ping_status_esp32);
  38. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement