XFusion API v1.3.0
载入中...
搜索中...
未找到
examples/wireless/wifi/static_ip/softap/main/xf_main.c

xf_wal wifi 静态 IP 示例(softap)。

/* ==================== [Includes] ========================================== */
#include <string.h>
#include "xf_utils.h"
#include "xf_netif.h"
#include "xf_wifi.h"
/* ==================== [Defines] =========================================== */
#define EXAMPLE_WIFI_SSID "myssid"
#define EXAMPLE_WIFI_PASS "mypassword"
#define EXAMPLE_WIFI_AUTHMODE XF_WIFI_AUTH_WPA_WPA2_PSK
#define EXAMPLE_WIFI_CHANNEL 6
#define EXAMPLE_WIFI_SSID_HIDDEN_FLAG 0
/* ==================== [Typedefs] ========================================== */
/* ==================== [Static Prototypes] ================================= */
static void _error_check_failed(void);
xf_wifi_event_id_t event_id, void *event_data, void *user_args);
xf_ip_event_id_t event_id, void *event_data, void *user_args);
/* ==================== [Static Variables] ================================== */
static const char *TAG = "ap";
.ip4 = {
.ip.addr = XF_IP4TOADDR(192, 168, 6, 1),
.gw.addr = XF_IP4TOADDR(192, 168, 6, 1),
.netmask.addr = XF_IP4TOADDR(255, 255, 255, 0),
},
.ip6 = {},
};
.password = EXAMPLE_WIFI_PASS,
.authmode = EXAMPLE_WIFI_AUTHMODE,
.p_cfg_ext = NULL,
.p_static_ip = &s_static_ip_cfg,
};
/* ==================== [Macros] ============================================ */
#define ERROR_CHECK(expression) \
do { \
if (unlikely((expression) != XF_OK)) { \
XF_LOGE(TAG, "An error occurred: %s", XSTR(expression != XF_OK)); \
_error_check_failed(); \
} \
} while (0)
/* ==================== [Global Functions] ================================== */
void xf_main(void)
{
/* 1. 使能 wifi 协议栈. */
/* 2. 设置事件回调. */
/* 3. 配置并开始 ap, 由于配置了静态 ip,内部将停止 dhcp 服务端并设置 ip */
}
/* ==================== [Static Functions] ================================== */
xf_wifi_event_id_t event_id, void *event_data, void *user_args)
{
UNUSED(user_args);
switch (event_id) {
XF_LOGI(TAG, "AP has started.");
} break;
XF_LOGI(TAG, "AP has stopped.");
} break;
XF_LOGI(TAG, "station "XF_MACSTR" join", XF_MAC2STR(e->mac));
} break;
XF_LOGI(TAG, "station "XF_MACSTR" leave", XF_MAC2STR(e->mac));
} break;
default:
break;
}
}
xf_ip_event_id_t event_id, void *event_data, void *user_args)
{
UNUSED(user_args);
switch (event_id) {
XF_LOGI(TAG, "Assign ip " XF_IPSTR " to site " XF_MACSTR,
XF_IP2STR(&e->ip), XF_MAC2STR(e->mac));
} break;
default:
break;
}
}
static void _error_check_failed(void)
{
XF_LOGI(TAG, "Run-time error.");
for (;;) {
}
}
static void _wifi_ap_event_handler(xf_wifi_event_id_t event_id, void *event_data, void *user_args)
#define EXAMPLE_WIFI_CHANNEL
#define EXAMPLE_WIFI_SSID_HIDDEN_FLAG
#define EXAMPLE_WIFI_AUTHMODE
static void _wifi_ip_event_handler(xf_ip_event_id_t event_id, void *event_data, void *user_args)
static xf_wifi_ap_cfg_t s_ap_cfg
void xf_main(void)
Definition xf_main.c:28
int32_t xf_ip_event_id_t
ip 事件 id。见 xf_ip_event_code_t.
#define XF_IPSTR
#define XF_IPADDR_TYPE_V4
#define XF_MACSTR
Definition xf_mac.h:47
#define XF_IP4TOADDR(a, b, c, d)
#define XF_MAC2STR(a)
Definition xf_mac.h:44
#define XF_IP2STR(ipaddr)
@ XF_IP_EVENT_IP_ASSIGNED
xf_err_t xf_wifi_ap_init(const xf_wifi_ap_cfg_t *p_cfg)
启用 wifi AP 模式.
xf_err_t xf_wifi_ap_set_cb(xf_wifi_cb_t cb_func, void *user_args)
AP 设置 wifi 事件回调函数.
xf_err_t xf_wifi_ap_set_ip_cb(xf_ip_cb_t cb_func, void *user_args)
AP 设置 ip 事件回调函数.
xf_err_t xf_wifi_enable(void)
启用 wifi 协议栈.
int32_t xf_wifi_event_id_t
wifi 事件 id。见 xf_wifi_event_code_t.
@ XF_WIFI_EVENT_AP_STOP
@ XF_WIFI_EVENT_AP_STA_DISCONNECTED
@ XF_WIFI_EVENT_AP_STA_CONNECTED
@ XF_WIFI_EVENT_AP_START
#define TAG
Definition xf_main.c:24
#define ERROR_CHECK(e)
Definition xf_main.c:70
XF_IP_EVENT_AP_STAIPASSIGNED 事件的事件结构。
uint8_t mac[XF_MAC_LEN_MAX]
AP 事件消息类型: STA 连接。 事件 id 见 XF_WIFI_EVENT_AP_STA_CONNECTED.
uint8_t mac[XF_MAC_LEN_MAX]
AP 事件消息类型: STA 断开连接。 事件 id 见 XF_WIFI_EVENT_AP_STA_DISCONNECTED.
Soft-AP 基础配置结构体.
uint8_t ssid[XF_WIFI_SSID_LEN_MAX]
static void _error_check_failed(void)
Definition xf_main.c:119
#define EXAMPLE_WIFI_SSID
Definition xf_main.c:24
#define EXAMPLE_WIFI_PASS
Definition xf_main.c:25
static xf_wifi_static_ip_cfg_t s_static_ip_cfg
Definition xf_main.c:46
#define XF_LOGI(tag, format,...)
#define UNUSED(_x)
xf_wifi 包含 STA、AP 接口。