#include "xf_utils.h"
#include "xf_wifi.h"
#include "xf_task.h"
浏览源代码.
- 作者
- catcatBlue (catca.nosp@m.tblu.nosp@m.e@qq..nosp@m.com)
- 版本
- 1.0
- 日期
- 2024-09-14
Copyright (c) 2024, CorAL. All rights reserved.
在文件 xf_main.c 中定义.
◆ EXAMPLE_SCAN_CHANNEL_START
#define EXAMPLE_SCAN_CHANNEL_START 1 |
◆ EXAMPLE_SCAN_CHANNEL_END
#define EXAMPLE_SCAN_CHANNEL_END 13 |
◆ EXAMPLE_SCAN_RESULT_SIZE
#define EXAMPLE_SCAN_RESULT_SIZE 32 |
◆ EXAMPLE_SCAN_BLOCK_IS_ENABLE
#define EXAMPLE_SCAN_BLOCK_IS_ENABLE 1 |
◆ EXAMPLE_SCAN_BLOCK
#define EXAMPLE_SCAN_BLOCK true |
◆ EXAMPLE_WIFI_NTASK_PRIORITY
#define EXAMPLE_WIFI_NTASK_PRIORITY 15 |
◆ EXAMPLE_WIFI_NTASK_PERIOD_MS
#define EXAMPLE_WIFI_NTASK_PERIOD_MS 10 |
◆ TBL_IT
#define TBL_IT |
( |
|
v | ) |
{v, XSTR(v)} |
◆ EXAMPLE_WIFI_SSID
#define EXAMPLE_WIFI_SSID "myssid" |
◆ EXAMPLE_WIFI_PASS
#define EXAMPLE_WIFI_PASS "mypassword" |
◆ ERROR_CHECK
#define ERROR_CHECK |
( |
|
expression | ) |
|
值: do { \
XF_LOGE(
TAG,
"An error occurred: %s",
XSTR(expression !=
XF_OK)); \
_error_check_failed(); \
} \
} while (0)
#define unlikely(x)
分支预测,优化条件为 假 的可能性更大的情况。
#define XSTR(x)
参数字符串化。 见:https://gcc.gnu.org/onlinedocs/gcc-3.4.3/cpp/Stringification.html
在文件 xf_main.c 第 122 行定义.
◆ ex_scan_ctx_t
◆ ex_auth_mode_msg_t
◆ _error_check_failed()
static void _error_check_failed |
( |
void |
| ) |
|
|
static |
◆ _wifi_sta_event_handler()
static void _wifi_sta_event_handler |
( |
xf_wifi_event_id_t |
event_id, |
|
|
void * |
event_data, |
|
|
void * |
user_args |
|
) |
| |
|
static |
◆ _ip_event_handler()
static void _ip_event_handler |
( |
xf_ip_event_id_t |
event_id, |
|
|
void * |
event_data, |
|
|
void * |
user_args |
|
) |
| |
|
static |
◆ ex_auth_mode_to_name()
将 xf_wifi_auth_mode_t 的枚举值转为字符串消息。
- 参数
-
- 返回
- const char* 字符串消息。
在文件 xf_main.c 第 331 行定义.
◆ _wifi_ntask()
扫描任务。
该任务中逐通道扫描,扫描完毕后,如果找到目标 AP,则尝试连接,如果没有扫描到则重试。
- 注意
- 无栈协程内所有临时变量都不安全。 delay 后均会重置。
- 参数
-
- 注意
- 为了保持最大兼容性, 此处不调用 xf_wifi_scan_clear_result() 清除扫描结果列表。
对于 esp32 清除扫描结果列表后不影响连接; 而在 ws63 上,清除清除扫描结果列表后无法直接连接,扫描后不清除才能连接。
因此只在连接成功后,或者没有找到目标 AP 时清除列表。
在文件 xf_main.c 第 152 行定义.
◆ xf_main()
全局函数定义: [Global Functions].
- 全局函数原型在**头文件**中声明并编写注释,此处可以不加 brief。
主函数。 正常情况下此行空白:函数之间需要有一个空行作为分隔
< 用于接收 _xf_template_func 的传出
< 防止警告
分支语句哪怕只有一句也必须加花括号。
判断语句中,如果一行不足以放下判断语句, 分行时需要将逻辑符号放在新行的开头。 此时最好还是用变量表达判断语句。
常量在前可以避免不必要的逻辑错误。 如 if (XF_TEMPL_FAIL = ret) 时编译会报错。
对于返回值为 void 的函数, return;
可有可无,文件风格统一即可。
注意! xf_init() 会在 xf_main() 前运行,此处不需要重复调用 xf_init()!
此示例仅用于演示自动初始化的使用方法。
< 所有等级打印都带有全部信息
< 过滤文件名为 "file1.c" 的打印
< 打开过滤器
< 设置过滤器为黑名单
< 不用彩色打印
< 启用彩色打印
在文件 xf_main.c 第 132 行定义.
◆ TAG
◆ ctx
◆ sp_ctx
◆ s_is_connected
uint8_t s_is_connected = false |
|
static |
◆ s_sta_cfg
初始值:= {
.bssid_set = false,
.bssid = {0},
.channel = 0,
.p_cfg_ext = NULL,
.p_static_ip = NULL,
}
#define EXAMPLE_WIFI_SSID
#define EXAMPLE_WIFI_PASS
STA 配置。
在文件 xf_main.c 第 109 行定义.