XFusion API v1.3.0
载入中...
搜索中...
未找到
xf_main.c 文件参考
#include <string.h>
#include "xf_utils.h"
#include "xf_netif.h"
#include "xf_wifi.h"
#include "xf_task.h"
xf_main.c 的引用(Include)关系图:

浏览源代码.

宏定义

#define EXAMPLE_WIFI_SSID   "myssid"
 
#define EXAMPLE_WIFI_PASS   "mypassword"
 
#define EXAMPLE_WIFI_CHANNEL   6
 
#define EXAMPLE_WIFI_AUTHMODE   XF_WIFI_AUTH_WPA_WPA2_PSK
 
#define EXAMPLE_WIFI_NTASK_PRIORITY   15
 
#define EXAMPLE_WIFI_NTASK_PERIOD_MS   10
 
#define ERROR_CHECK(expression)
 

函数

static void _error_check_failed (void)
 
static void _wifi_sta_event_handler (xf_wifi_event_id_t event_id, void *event_data, void *user_args)
 
static void _ip_event_handler (xf_ip_event_id_t event_id, void *event_data, void *user_args)
 
static void _wifi_ntask (xf_task_t task)
 wifi 无栈任务。
 
void xf_main (void)
 全局函数定义: [Global Functions].
 

变量

static const char * TAG = "sta"
 
static xf_wifi_static_ip_cfg_t s_static_ip_cfg
 
static xf_wifi_sta_cfg_t s_sta_cfg
 
static uint8_t s_is_connected = false
 
static uint8_t s_sta_started = false
 

详细描述

作者
catcatBlue (catca.nosp@m.tblu.nosp@m.e@qq..nosp@m.com)
版本
1.0
日期
2024-06-06

Copyright (c) 2024, CorAL. All rights reserved.

在文件 xf_main.c 中定义.

宏定义说明

◆ EXAMPLE_WIFI_SSID

#define EXAMPLE_WIFI_SSID   "myssid"

目标 AP 名称

在文件 xf_main.c28 行定义.

◆ EXAMPLE_WIFI_PASS

#define EXAMPLE_WIFI_PASS   "mypassword"

目标 AP 密码

在文件 xf_main.c29 行定义.

◆ EXAMPLE_WIFI_CHANNEL

#define EXAMPLE_WIFI_CHANNEL   6

目标 AP 信道

在文件 xf_main.c30 行定义.

◆ EXAMPLE_WIFI_AUTHMODE

#define EXAMPLE_WIFI_AUTHMODE   XF_WIFI_AUTH_WPA_WPA2_PSK

目标 AP 认证模式

在文件 xf_main.c31 行定义.

◆ EXAMPLE_WIFI_NTASK_PRIORITY

#define EXAMPLE_WIFI_NTASK_PRIORITY   15

扫描无栈任务优先级

在文件 xf_main.c33 行定义.

◆ EXAMPLE_WIFI_NTASK_PERIOD_MS

#define EXAMPLE_WIFI_NTASK_PERIOD_MS   10

扫描无栈任务周期

在文件 xf_main.c34 行定义.

◆ ERROR_CHECK

#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)
#define unlikely(x)
分支预测,优化条件为 假 的可能性更大的情况。
Definition xf_attr.h:113
@ XF_OK
Definition xf_err.h:43
#define XSTR(x)
参数字符串化。 见:https://gcc.gnu.org/onlinedocs/gcc-3.4.3/cpp/Stringification.html
Definition xf_predef.h:110
#define TAG
Definition xf_main.c:24

在文件 xf_main.c86 行定义.

函数说明

◆ _error_check_failed()

static void _error_check_failed ( void  )
static

在文件 xf_main.c200 行定义.

◆ _wifi_sta_event_handler()

static void _wifi_sta_event_handler ( xf_wifi_event_id_t  event_id,
void *  event_data,
void *  user_args 
)
static

在文件 xf_main.c138 行定义.

◆ _ip_event_handler()

static void _ip_event_handler ( xf_ip_event_id_t  event_id,
void *  event_data,
void *  user_args 
)
static

在文件 xf_main.c181 行定义.

◆ _wifi_ntask()

static void _wifi_ntask ( xf_task_t  task)
static

wifi 无栈任务。

不同平台的 wifi 回调处理可能不一致,有些回调运行在中断中,有些运行在任务中。 有些平台在连接 AP 时,如果连接失败会调用回调,并发出 XF_WIFI_EVENT_STA_DISCONNECTED 事件, 如果此时在中断中调用 xf_wifi_sta_connect() 会导致递归调用而栈溢出。

因此创建一个无栈任务处理 wifi 相关事件。

注意
无栈协程内所有临时变量都不安全。 delay 后均会重置。
参数
task本任务句柄。

在文件 xf_main.c116 行定义.

◆ xf_main()

void xf_main ( void  )

全局函数定义: [Global Functions].

  1. 全局函数原型在**头文件**中声明并编写注释,此处可以不加 brief。

主函数。 正常情况下此行空白:函数之间需要有一个空行作为分隔

< 用于接收 _xf_template_func 的传出

< 防止警告

分支语句哪怕只有一句也必须加花括号。

判断语句中,如果一行不足以放下判断语句, 分行时需要将逻辑符号放在新行的开头。 此时最好还是用变量表达判断语句。

常量在前可以避免不必要的逻辑错误。 如 if (XF_TEMPL_FAIL = ret) 时编译会报错。

对于返回值为 void 的函数, return;可有可无,文件风格统一即可。

注意! xf_init() 会在 xf_main() 前运行,此处不需要重复调用 xf_init()

此示例仅用于演示自动初始化的使用方法。

< 所有等级打印都带有全部信息

< 过滤文件名为 "file1.c" 的打印

< 打开过滤器

< 设置过滤器为黑名单

< 不用彩色打印

< 启用彩色打印

在文件 xf_main.c96 行定义.

变量说明

◆ TAG

const char* TAG = "sta"
static

在文件 xf_main.c64 行定义.

◆ s_static_ip_cfg

xf_wifi_static_ip_cfg_t s_static_ip_cfg
static
初始值:
= {
.ip4.ip.addr = XF_IP4TOADDR(192, 168, 6, 2),
.ip4.gw.addr = XF_IP4TOADDR(192, 168, 6, 1),
.ip4.netmask.addr = XF_IP4TOADDR(255, 255, 255, 0),
.ip6 = {},
}
#define XF_IPADDR_TYPE_V4
#define XF_IP4TOADDR(a, b, c, d)

在文件 xf_main.c65 行定义.

◆ s_sta_cfg

xf_wifi_sta_cfg_t s_sta_cfg
static
初始值:
= {
.password = EXAMPLE_WIFI_PASS,
.bssid_set = false,
.bssid = {0},
.authmode = EXAMPLE_WIFI_AUTHMODE,
.p_cfg_ext = NULL,
.p_static_ip = &s_static_ip_cfg,
}
#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 xf_wifi_static_ip_cfg_t s_static_ip_cfg
Definition xf_main.c:65

在文件 xf_main.c72 行定义.

◆ s_is_connected

uint8_t s_is_connected = false
static

是否已连接

在文件 xf_main.c81 行定义.

◆ s_sta_started

uint8_t s_sta_started = false
static

STA 是否已启动

在文件 xf_main.c82 行定义.