22#include "lwip/sockets.h"
46static const char *
TAG =
"xf_main";
49#define EX_THREAD_NAME "ex_thread"
50#define EX_THREAD_PRIORITY XF_OSAL_PRIORITY_NORMOL
51#define EX_THREAD_STACK_SIZE (1024 * 4)
58#ifdef CONFIG_EXAMPLE_IPERF_AUTO_TEST
59static const uint32_t s_iperf_test_item[] = {
86 uint32_t test_idx = 0;
103 for (test_idx = 0; test_idx <
ARRAY_SIZE(s_iperf_test_item); ++test_idx) {
109 cfg.
time = CONFIG_EXAMPLE_IPERF_TIME;
113#ifdef CONFIG_EXAMPLE_IPERF_AUTO_TEST
118 cfg.
flag = s_iperf_test_item[test_idx];
120# if defined(CONFIG_EXAMPLE_IPERF_SELECT_SERVER)
125# if defined(CONFIG_EXAMPLE_IPERF_SELECT_UDP)
136 "interval=%" PRId32
", time=%" PRId32
"",
139 XF_IP2STR(&cfg.sip.u_addr.ip4), (int)cfg.sport,
140 XF_IP2STR(&cfg.dip.u_addr.ip4), (int)cfg.dport,
141 cfg.interval, cfg.time);
xf_ip4_addr_t ex_easy_wifi_ap_get_onw_ip(void)
xf_ip4_addr_t ex_easy_wifi_ap_get_last_sta_ip(void)
#define EX_THREAD_PRIORITY
#define EX_THREAD_STACK_SIZE
xf_err_t ex_easy_wifi_ap(void)
#define XF_IP2STR(ipaddr)
#define XF_IPERF_DEFAULT_CONFIG()
默认 iperf 配置
xf_err_t xf_iperf_start(const xf_iperf_cfg_t *p_cfg, xf_iperf_cb_t cb_func, void *user_args)
启动 iperf.
#define IPERF_FLAG_SERVER
#define IPERF_SOCKET_RX_TIMEOUT_MS
#define IPERF_FLAG_CLIENT
#define IPERF_IP_TYPE_IPV4
bool xf_iperf_is_running(void)
检查 iperf 是否正在运行。
xf_err_t xf_iperf_stop(void)
停止 iperf.
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 为单位。
__weak xf_err_t xf_sys_watchdog_disable(void)
关闭看门狗
#define ARRAY_SIZE(arr)
ARRAY_SIZE - 获取数组 arr 中的元素数量。
static const xf_osal_thread_attr_t s_thread_attr
static void _example_thread(void *argument)
static xf_osal_thread_t s_thread_hdl
union _xf_ip_addr::@10 u_addr
#define XF_LOGI(tag, format,...)
#define XF_LOGE(tag, format,...)