一、esp32 ping函数简单介绍
1、函数esp_ping_set_target
设置ping 的各种参数,传入的第一个参数如下enum,主要是 IP地址,IP地址个数(esp32只支持ping 一个IP),接收超时 ,ping之间的间隔 ,回调函数等,
typedef enum {
PING_TARGET_IP_ADDRESS = 50, /**< target IP address */
PING_TARGET_IP_ADDRESS_COUNT = 51, /**< target IP address total counter */
PING_TARGET_RCV_TIMEO = 52, /**< receive timeout in milliseconds */
PING_TARGET_DELAY_TIME = 53, /**< delay time in milliseconds */
PING_TARGET_ID = 54, /**< identifier */
PING_TARGET_RES_FN = 55, /**< ping result callback function */
PING_TARGET_RES_RESET = 56 /**< ping result statistic reset */
} ping_target_id_t;
2、函数ping_init()
ping的初始化函数
二、具体代码
esp_err_t pingResults(ping_target_id_t msgType, esp_ping_found * pf)
{
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);
/* printf("ping Send total_count %d \r\n", pf->send_count);
printf("ping Recv total_count %d \r\n", pf->recv_count);
printf("ping timeout_count %d \r\n",pf->timeout_count);
printf("ping min_time %d \r\n", pf->min_time);
printf("ping max_time %d \r\n", pf->max_time);
printf("ping resp_time %d\r\n",pf->resp_time);*/
return ESP_OK;
}
void Start_Ping_ESP32(void){
uint32_t ip_pinG = ipaddr_addr("163.177.151.109");//百度IP地址
uint32_t ping_count = 2000;//ping的次数
uint32_t ping_timeout = 1000; //超时时间
uint32_t ping_delay = 2000; //ping 的间隔
ping_deinit();
esp_ping_set_target(PING_TARGET_IP_ADDRESS_COUNT, &ping_count, sizeof(uint32_t));
esp_ping_set_target(PING_TARGET_RCV_TIMEO, &ping_timeout, sizeof(uint32_t));
esp_ping_set_target(PING_TARGET_DELAY_TIME, &ping_delay, sizeof(uint32_t));
esp_ping_set_target(PING_TARGET_IP_ADDRESS, &ip_pinG, sizeof(uint32_t));
esp_ping_set_target(PING_TARGET_RES_FN, &pingResults, sizeof(pingResults));
uint8_t res = 0;
res = ping_init();
if(res == 0){
printf("PING!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n");
}else{
printf("error:%d\n",res);
}
}
三、测试结果 感觉还好,我用的是手机热点,ping的百度