22#include "lwip/sockets.h" 
   25#include "lwip/netdb.h" 
   48static const char *
TAG = 
"sta";
 
   51#define EX_THREAD_NAME          "ex_thread" 
   52#define EX_THREAD_PRIORITY      XF_OSAL_PRIORITY_NORMOL 
   53#define EX_THREAD_STACK_SIZE    (1024 * 4) 
   70#define ERROR_CHECK(e) \ 
   72        if (unlikely((e) != XF_OK)) { \ 
   73            XF_LOGE(TAG, "An error occurred: %s", XSTR(e != XF_OK)); \ 
 
   77#define TEST_XF_OK(e) ERROR_CHECK(e) 
  110            ip4.s_addr = hdl->
recv_addr.u_addr.ip4.addr;
 
  111            xf_log_printf(
"\n--- %s ping statistics ---\n", inet_ntoa(ip4));
 
  115        xf_log_printf(
"%d packets transmitted, %d received, %d%% packet loss, time %dms" "\n",
 
 
  139    for (
size_t hostname_idx = 0;
 
  144        struct hostent *host;
 
  145        ip_addr_t target_addr = {0};
 
  148        if ((host = gethostbyname(
s_hostname_arr[hostname_idx])) == NULL) {
 
  151            *(uint32_t *)(host->h_addr) = dest_ip4.
addr;
 
  153        dest_ip4.
addr = *(uint32_t *)(host->h_addr);
 
  155        target_addr.u_addr.ip4.addr = dest_ip4.
addr;
 
  156        target_addr.type = IPADDR_TYPE_V4;
 
 
#define EX_THREAD_PRIORITY
 
#define EX_THREAD_STACK_SIZE
 
xf_err_t ex_easy_wifi_sta(void)
 
xf_ip4_addr_t ex_easy_wifi_sta_get_gw_ip(void)
 
void * xf_netif_t
xfusion netif 句柄。
 
#define XF_IP2STR(ipaddr)
 
xf_err_t xf_netif_get_dns_info(xf_netif_t netif_hdl, xf_netif_dns_type_t type, xf_netif_dns_info_t *dns)
从指定 netif 句柄获取的 DNS 服务端信息。
 
xf_err_t xf_osal_thread_delete(xf_osal_thread_t thread)
终止线程的执行。
 
xf_osal_thread_t xf_osal_thread_create(xf_osal_thread_func_t func, void *argument, const xf_osal_thread_attr_t *attr)
创建一个线程并将其添加到活动线程中。
 
void * xf_osal_thread_t
线程句柄。
 
xf_err_t xf_osal_delay_ms(uint32_t ms)
(睡眠)等待超时,以 ms 为单位。
 
xf_err_t xf_ping_new_session(const xf_ping_cfg_t *p_cfg, xf_ping_cb_t cb_func, void *user_args, xf_ping_t *hdl_out)
创建 ping 会话。
 
xf_err_t xf_ping_start(xf_ping_t hdl)
启动 ping 会话。
 
#define XF_PING_DEFAULT_CONFIG()
默认 ping 配置
 
int32_t xf_ping_event_id_t
ping 事件 id。见 xf_ping_event_code_t.
 
xf_err_t xf_ping_delete_session(xf_ping_t hdl)
删除 ping 会话。
 
#define ARRAY_SIZE(arr)
ARRAY_SIZE - 获取数组 arr 中的元素数量。
 
xf_err_t xf_wifi_sta_get_netif(xf_netif_t *p_netif_hdl)
获取 STA 的 netif 句柄.
 
static const xf_osal_thread_attr_t s_thread_attr
 
static void _example_thread(void *argument)
 
static xf_osal_thread_t s_thread_hdl
 
static const char *const s_hostname_arr[]
 
static void xf_ping_cb(xf_ping_event_id_t event_id, xf_ping_t hdl, void *user_args)
 
static uint8_t s_ping_done
 
union _xf_ip_addr::@10 u_addr
 
struct icmp_echo_hdr * packet_hdr
 
#define XF_LOGI(tag, format,...)
 
#define XF_LOGE(tag, format,...)
 
#define xf_log_printf(format,...)