Select one of the symbols to view example projects that use it.
 
Outline
#define ESP_PING_H_
#include "esp_err.h"
#define ESP_ERR_PING_BASE
#define ESP_ERR_PING_INVALID_PARAMS
#define ESP_ERR_PING_NO_MEM
#define ESP_PING_CHECK_OPTLEN
_ping_found
ping_target_id_t
ping_res_t
esp_ping_found_fn
esp_ping_set_target(ping_target_id_t, void *, uint32_t);
esp_ping_get_target(ping_target_id_t, void *, uint32_t);
esp_ping_result(uint8_t, uint16_t, uint32_t);
Files
loading...
SourceVuESP-IDF Framework and ExampleslwIPinclude/apps/esp_ping.h
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. #ifndef ESP_PING_H_ #define ESP_PING_H_ #include "esp_err.h" #ifdef __cplusplus extern "C" { #endif // gen_esp_err_to_name.py: include this as "esp_ping.h" because "components/lwip/include/apps/" is in the compiler path // and not "components/lwip/include" #define ESP_ERR_PING_BASE 0xa000 #define ESP_ERR_PING_INVALID_PARAMS ESP_ERR_PING_BASE + 0x01 #define ESP_ERR_PING_NO_MEM ESP_ERR_PING_BASE + 0x02 #define ESP_PING_CHECK_OPTLEN(optlen, opttype) do { if ((optlen) < sizeof(opttype)) { return ESP_ERR_PING_INVALID_PARAMS; }}while(0) typedef struct _ping_found { uint32_t resp_time; uint32_t timeout_count; uint32_t send_count; uint32_t recv_count; uint32_t err_count; uint32_t bytes; uint32_t total_bytes; uint32_t total_time; uint32_t min_time; uint32_t max_time; int8_t ping_err; }{ ... } esp_ping_found; 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_DATA_LEN = 57, /**< ping data length*/ PING_TARGET_IP_TOS = 58, /**< ping QOS*/ PING_TARGET_IF_INDEX = 59 /**< ping if index*/ }{ ... } ping_target_id_t; typedef enum { PING_RES_TIMEOUT = 0, PING_RES_OK = 1, PING_RES_FINISH = 2, }{ ... } ping_res_t; typedef void (* esp_ping_found_fn)(ping_target_id_t found_id, esp_ping_found *found_val); /** * @brief Set PING function option * * @param[in] opt_id: option index, 50 for IP, 51 for COUNT, 52 for RCV TIMEOUT, 53 for DELAY TIME, 54 for ID * @param[in] opt_val: option parameter * @param[in] opt_len: option length * * @return * - ESP_OK * - ESP_ERR_PING_INVALID_PARAMS *//* ... */ esp_err_t esp_ping_set_target(ping_target_id_t opt_id, void *opt_val, uint32_t opt_len); /** * @brief Get PING function option * * @param[in] opt_id: option index, 50 for IP, 51 for COUNT, 52 for RCV TIMEOUT, 53 for DELAY TIME, 54 for ID * @param[in] opt_val: option parameter * @param[in] opt_len: option length * * @return * - ESP_OK * - ESP_ERR_PING_INVALID_PARAMS *//* ... */ esp_err_t esp_ping_get_target(ping_target_id_t opt_id, void *opt_val, uint32_t opt_len); /** * @brief Get PING function result action * * @param[in] res_val: ping function action, 1 for successful, 0 for fail. * res_len: response bytes * res_time: response time * * @return * - ESP_OK * - ESP_ERR_PING_INVALID_PARAMS *//* ... */ esp_err_t esp_ping_result(uint8_t res_val, uint16_t res_len, uint32_t res_time); #ifdef __cplusplus }{...} #endif /* ... */ #endif /* ESP_PING_H_ */
Details