XFusion API v1.3.0
载入中...
搜索中...
未找到
xf_main.c
浏览该文件的文档.
1
17/* ==================== [Includes] ========================================== */
18
19#include "xf_utils.h"
20#include "xf_wifi.h"
21
22/* ==================== [Defines] =========================================== */
23
24#define EXAMPLE_WIFI_SSID "myssid"
25#define EXAMPLE_WIFI_PASS "mypassword"
26#define EXAMPLE_WIFI_AUTHMODE XF_WIFI_AUTH_WPA_WPA2_PSK
27#define EXAMPLE_WIFI_CHANNEL 6
28#define EXAMPLE_WIFI_SSID_HIDDEN_FLAG 0
30/* ==================== [Typedefs] ========================================== */
31
32/* ==================== [Static Prototypes] ================================= */
33
34static void _error_check_failed(void);
35static void _wifi_ap_event_handler(
36 xf_wifi_event_id_t event_id, void *event_data, void *user_args);
37static void _wifi_ip_event_handler(
38 xf_ip_event_id_t event_id, void *event_data, void *user_args);
39
40/* ==================== [Static Variables] ================================== */
41
42static const char *TAG = "ap";
45 .password = EXAMPLE_WIFI_PASS,
46 .authmode = EXAMPLE_WIFI_AUTHMODE,
47 .channel = EXAMPLE_WIFI_CHANNEL,
48 .ssid_hidden = EXAMPLE_WIFI_SSID_HIDDEN_FLAG,
49 .p_cfg_ext = NULL,
50 .p_static_ip = NULL,
51};
52
53/* ==================== [Macros] ============================================ */
54
55#define ERROR_CHECK(expression) \
56 do { \
57 if (unlikely((expression) != XF_OK)) { \
58 XF_LOGE(TAG, "An error occurred: %s", XSTR(expression != XF_OK)); \
59 _error_check_failed(); \
60 } \
61 } while (0)
62
63/* ==================== [Global Functions] ================================== */
64
65void xf_main(void)
66{
67 /* 1. 使能 wifi 协议栈. */
69
70 /* 2. 设置事件回调. */
73
74 /* 3. 配置并开始 ap. */
76}
77
78/* ==================== [Static Functions] ================================== */
79
81 xf_wifi_event_id_t event_id, void *event_data, void *user_args)
82{
83 UNUSED(user_args);
84 switch (event_id) {
86 XF_LOGI(TAG, "AP has started.");
87 } break;
89 XF_LOGI(TAG, "AP has stopped.");
90 } break;
93 XF_LOGI(TAG, "station "XF_MACSTR" join", XF_MAC2STR(e->mac));
94 } break;
97 XF_LOGI(TAG, "station "XF_MACSTR" leave", XF_MAC2STR(e->mac));
98 } break;
99 default:
100 break;
101 }
102}
103
105 xf_ip_event_id_t event_id, void *event_data, void *user_args)
106{
107 UNUSED(user_args);
108 switch (event_id) {
111 XF_LOGI(TAG, "Assign ip " XF_IPSTR " to site " XF_MACSTR,
112 XF_IP2STR(&e->ip), XF_MAC2STR(e->mac));
113 } break;
114 default:
115 break;
116 }
117}
118
119static void _error_check_failed(void)
120{
121 XF_LOGI(TAG, "Run-time error.");
122 for (;;) {
123 }
124}
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_MACSTR
Definition xf_mac.h:47
#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
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 _wifi_ap_event_handler(xf_wifi_event_id_t event_id, void *event_data, void *user_args)
Definition xf_main.c:80
#define ERROR_CHECK(expression)
Definition xf_main.c:55
#define EXAMPLE_WIFI_CHANNEL
Definition xf_main.c:27
static void _error_check_failed(void)
Definition xf_main.c:119
#define EXAMPLE_WIFI_SSID_HIDDEN_FLAG
Definition xf_main.c:28
#define EXAMPLE_WIFI_AUTHMODE
Definition xf_main.c:26
#define EXAMPLE_WIFI_SSID
Definition xf_main.c:24
#define EXAMPLE_WIFI_PASS
Definition xf_main.c:25
static void _wifi_ip_event_handler(xf_ip_event_id_t event_id, void *event_data, void *user_args)
Definition xf_main.c:104
static xf_wifi_ap_cfg_t s_ap_cfg
Definition xf_main.c:43
#define XF_LOGI(tag, format,...)
#define UNUSED(_x)
xf_wifi 包含 STA、AP 接口。