TuyaOS
wifi_netcfg_frame_transporter.h
1#ifndef __WIFI_NETCFG_FRAME_TRANSPORTER_H__
2#define __WIFI_NETCFG_FRAME_TRANSPORTER_H__
3#include "tuya_hal_network.h"
4#include "tuya_hal_wifi.h"
5
6#ifdef __cplusplus
7extern "C" {
8#endif
9
10/*
11 wifi_netcfg_frame_transporter组件是wifi相关配网组件的公共服务模块,原来是ez配网中的
12 cc_t(chanChannel_timer)的工作,由于ez+ap共存配网,ffs配网,无感配网等配网的引入,因此
13 把wifi 802.11 frame发送部分的功能独立出来,取名wifi_netcfg_frame_transporter,希望能
14 更换的为ez+ap共存配网,ffs配网,无感配网,以及后续可能加入的其他wifi配网方式服务;
15
16
17 角色逻辑:
18 1个transporter <-----> n个transportee
19 用户获取:唯一的transporter
20 用户通过transporter的接口register,unregister,注册/销毁对应于netcfg_type的Transportee,
21 通过start,stop,isRun来开始,停止和判断是否允许该Transportee;
22*/
23
24typedef int (*fnProbeRequestTransportCallBack_t)(void* ptrArgs, BYTE_T channel);
25typedef int (*fnAuthTransportCallBack_t)(void* ptrArgs, BYTE_T channel);
26typedef int (*fnBeaconTransportCallBack_t)(void* ptrArgs, BYTE_T channel);
27
29 fnProbeRequestTransportCallBack_t fnProbeRequestTransport;
30 fnAuthTransportCallBack_t fnAuthTransport;
31 fnBeaconTransportCallBack_t fnBeaconTransport;
32 void* ptrArgs;
34
35/*
36 transportee:
37 register->start->ungister
38 isRun
39 transporter:
40 transporter is inited and started in WifiNetcfgFrameTransporterSessionInit
41 and will be:
42 lock->stop
43 getApInfo
44 in transportee.
45*/
46typedef int (*fnRegister)(int netcfg_type, ptrTransporteeParameters_t pParam);
47typedef int (*fnStart)(int netcfg_type);
48typedef bool (*fnIsRun)(int netcfg_type);
49typedef int (*fnUnregister)(int netcfg_type);
50
51typedef int (*fnLock)(bool lockState);
52typedef int (*fnStartTransporter)(void);
53typedef int (*fnStopTransporter)(void);
54typedef int (*fnGetApInfo)(AP_IF_S **ppApArray, uint32_t * pApNum);
55
56
58 fnRegister registerTransporteeFn;
59 fnStart startTransporteeFn;
60 fnIsRun isRunTransporteeFn;
61 fnUnregister unregisterTransporteeFn;
62
63 fnLock lockTransporterChannelFn;
64 fnStartTransporter startTransporterFn;
65 fnStopTransporter stopTransporterFn;
66 fnGetApInfo getApInfoFn;
68
69/*配网开始时,执行信道初始化*/
70int wifiNetcfgFrameTransporterChannelInitAndStart(void);
71
72
73/*
74 获取或创建wifi_netcfg_frame_transporter的实例,线程安全
75*/
76ptrWifiNetcfgFrameTransporter_t getWifiNetcfgFrameTransporter(void);
77/*
78 销毁wifi_netcfg_frame_transporter实例,释放内存
79*/
80void destroyWifiNetcfgFrameTransporter(void);
81
82/*配网模块全局初始化,创建并初始化TransporterSession,必须在getTransporter之前调用*/
83int WifiNetcfgFrameTransporterSessionInit(void);
84/*配网模块全局销毁,在配网活动结束之后调用*/
85int WifiNetcfgFrameTransporterSessionUninit(void);
86
87
88#ifdef __cplusplus
89}
90#endif
91#endif
Definition: wifi_netcfg_frame_transporter.h:28
Definition: wifi_netcfg_frame_transporter.h:57
Common process - Initialization