XFusion API v1.3.0
载入中...
搜索中...
未找到
xf_main.c 文件参考
#include <string.h>
#include "lwip/err.h"
#include "lwip/sockets.h"
#include "lwip/inet.h"
#include "lwip/sys.h"
#include "lwip/netdb.h"
#include "xf_utils.h"
#include "xf_wifi.h"
#include "xf_netif.h"
#include "xf_osal.h"
#include "xf_ping.h"
#include "ex_easy_wifi.h"
xf_main.c 的引用(Include)关系图:

浏览源代码.

宏定义

#define EX_THREAD_NAME   "ex_thread"
 
#define EX_THREAD_PRIORITY   XF_OSAL_PRIORITY_NORMOL
 
#define EX_THREAD_STACK_SIZE   (1024 * 4)
 
#define ERROR_CHECK(e)
 
#define TEST_XF_OK(e)   ERROR_CHECK(e)
 

函数

static void _example_thread (void *argument)
 
static void xf_ping_cb (xf_ping_event_id_t event_id, xf_ping_t hdl, void *user_args)
 
void xf_main (void)
 全局函数定义: [Global Functions].
 

变量

static const char * TAG = "sta"
 
static xf_osal_thread_t s_thread_hdl = NULL
 
static const xf_osal_thread_attr_t s_thread_attr
 
static uint8_t s_ping_done = false
 
static const char *const s_hostname_arr []
 

详细描述

作者
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 中定义.

宏定义说明

◆ EX_THREAD_NAME

#define EX_THREAD_NAME   "ex_thread"

在文件 xf_main.c51 行定义.

◆ EX_THREAD_PRIORITY

#define EX_THREAD_PRIORITY   XF_OSAL_PRIORITY_NORMOL

在文件 xf_main.c52 行定义.

◆ EX_THREAD_STACK_SIZE

#define EX_THREAD_STACK_SIZE   (1024 * 4)

在文件 xf_main.c53 行定义.

◆ ERROR_CHECK

#define ERROR_CHECK (   e)
值:
do { \
if (unlikely((e) != XF_OK)) { \
XF_LOGE(TAG, "An error occurred: %s", XSTR(e != XF_OK)); \
while(1); \
} \
} 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
示例
examples/wireless/wifi/get_started/softap/main/xf_main.c, examples/wireless/wifi/get_started/station/main/xf_main.c, examples/wireless/wifi/scan/base_scan/main/xf_main.c, examples/wireless/wifi/scan/scan_and_connect/main/xf_main.c, examples/wireless/wifi/static_ip/softap/main/xf_main.c , 以及 examples/wireless/wifi/static_ip/station/main/xf_main.c.

在文件 xf_main.c70 行定义.

◆ TEST_XF_OK

#define TEST_XF_OK (   e)    ERROR_CHECK(e)
示例
examples/protocols/icmp_echo/main/xf_main.c.

在文件 xf_main.c77 行定义.

函数说明

◆ _example_thread()

static void _example_thread ( void *  argument)
static

在文件 xf_main.c124 行定义.

◆ xf_ping_cb()

static void xf_ping_cb ( xf_ping_event_id_t  event_id,
xf_ping_t  hdl,
void *  user_args 
)
static
示例
examples/protocols/icmp_echo/main/xf_main.c.

在文件 xf_main.c92 行定义.

◆ xf_main()

void xf_main ( void  )

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

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

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

< 用于接收 _xf_template_func 的传出

< 防止警告

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

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

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

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

在文件 xf_main.c81 行定义.

变量说明

◆ TAG

const char* TAG = "sta"
static

在文件 xf_main.c48 行定义.

◆ s_thread_hdl

xf_osal_thread_t s_thread_hdl = NULL
static

在文件 xf_main.c50 行定义.

◆ s_thread_attr

const xf_osal_thread_attr_t s_thread_attr
static
初始值:
= {
.name = EX_THREAD_NAME,
.priority = EX_THREAD_PRIORITY,
.stack_size = EX_THREAD_STACK_SIZE,
}
#define EX_THREAD_PRIORITY
#define EX_THREAD_STACK_SIZE
#define EX_THREAD_NAME

在文件 xf_main.c54 行定义.

◆ s_ping_done

uint8_t s_ping_done = false
static
示例
examples/protocols/icmp_echo/main/xf_main.c.

在文件 xf_main.c60 行定义.

◆ s_hostname_arr

const char* const s_hostname_arr[]
static
初始值:
= {
"example.com",
"www.baidu.com",
"www.qq.com",
"www.360.com",
}
示例
examples/protocols/icmp_echo/main/xf_main.c.

在文件 xf_main.c61 行定义.