xref: /nrf52832-nimble/rt-thread/components/drivers/wlan/wlan_mgnt.h (revision 104654410c56c573564690304ae786df310c91fc)
1*10465441SEvalZero /*
2*10465441SEvalZero  * Copyright (c) 2006-2018, RT-Thread Development Team
3*10465441SEvalZero  *
4*10465441SEvalZero  * SPDX-License-Identifier: Apache-2.0
5*10465441SEvalZero  *
6*10465441SEvalZero  * Change Logs:
7*10465441SEvalZero  * Date           Author       Notes
8*10465441SEvalZero  * 2018-08-06     tyx          the first version
9*10465441SEvalZero  */
10*10465441SEvalZero 
11*10465441SEvalZero #ifndef __WLAN_MGNT_H__
12*10465441SEvalZero #define __WLAN_MGNT_H__
13*10465441SEvalZero 
14*10465441SEvalZero #include <wlan_dev.h>
15*10465441SEvalZero 
16*10465441SEvalZero #ifdef __cplusplus
17*10465441SEvalZero extern "C" {
18*10465441SEvalZero #endif
19*10465441SEvalZero 
20*10465441SEvalZero #ifndef RT_WLAN_SCAN_WAIT_MS
21*10465441SEvalZero #define RT_WLAN_SCAN_WAIT_MS       (10 * 1000)
22*10465441SEvalZero #endif
23*10465441SEvalZero 
24*10465441SEvalZero #ifndef RT_WLAN_SCAN_CACHE_NUM
25*10465441SEvalZero #define RT_WLAN_SCAN_CACHE_NUM     (50)
26*10465441SEvalZero #endif
27*10465441SEvalZero 
28*10465441SEvalZero #ifndef RT_WLAN_CONNECT_WAIT_MS
29*10465441SEvalZero #define RT_WLAN_CONNECT_WAIT_MS    (10 * 1000)
30*10465441SEvalZero #endif
31*10465441SEvalZero 
32*10465441SEvalZero #ifndef RT_WLAN_START_AP_WAIT_MS
33*10465441SEvalZero #define RT_WLAN_START_AP_WAIT_MS    (10 * 1000)
34*10465441SEvalZero #endif
35*10465441SEvalZero 
36*10465441SEvalZero #ifndef RT_WLAN_EBOX_NUM
37*10465441SEvalZero #define RT_WLAN_EBOX_NUM           (10)
38*10465441SEvalZero #endif
39*10465441SEvalZero 
40*10465441SEvalZero /*state fot station*/
41*10465441SEvalZero #define RT_WLAN_STATE_CONNECT     (1UL << 0)
42*10465441SEvalZero #define RT_WLAN_STATE_CONNECTING  (1UL << 1)
43*10465441SEvalZero #define RT_WLAN_STATE_READY       (1UL << 2)
44*10465441SEvalZero #define RT_WLAN_STATE_POWERSAVE   (1UL << 3)
45*10465441SEvalZero 
46*10465441SEvalZero /*flags fot station*/
47*10465441SEvalZero #define RT_WLAN_STATE_AUTOEN      (1UL << 0)
48*10465441SEvalZero 
49*10465441SEvalZero /*state fot ap*/
50*10465441SEvalZero #define RT_WLAN_STATE_ACTIVE      (1UL << 0)
51*10465441SEvalZero 
52*10465441SEvalZero typedef enum
53*10465441SEvalZero {
54*10465441SEvalZero     RT_WLAN_EVT_READY = 0,              /* connect and prot is ok, You can send data*/
55*10465441SEvalZero     RT_WLAN_EVT_SCAN_DONE,              /* Scan a info */
56*10465441SEvalZero     RT_WLAN_EVT_SCAN_REPORT,            /* Scan end */
57*10465441SEvalZero     RT_WLAN_EVT_STA_CONNECTED,          /* connect success */
58*10465441SEvalZero     RT_WLAN_EVT_STA_CONNECTED_FAIL,     /* connection failed */
59*10465441SEvalZero     RT_WLAN_EVT_STA_DISCONNECTED,       /* disconnect */
60*10465441SEvalZero     RT_WLAN_EVT_AP_START,               /* AP start */
61*10465441SEvalZero     RT_WLAN_EVT_AP_STOP,                /* AP stop */
62*10465441SEvalZero     RT_WLAN_EVT_AP_ASSOCIATED,          /* sta associated */
63*10465441SEvalZero     RT_WLAN_EVT_AP_DISASSOCIATED,       /* sta disassociated */
64*10465441SEvalZero     RT_WLAN_EVT_MAX
65*10465441SEvalZero } rt_wlan_event_t;
66*10465441SEvalZero 
67*10465441SEvalZero typedef void (*rt_wlan_event_handler)(int event, struct rt_wlan_buff *buff, void *parameter);
68*10465441SEvalZero 
69*10465441SEvalZero struct rt_wlan_scan_result
70*10465441SEvalZero {
71*10465441SEvalZero     rt_int32_t num;
72*10465441SEvalZero     struct rt_wlan_info *info;
73*10465441SEvalZero };
74*10465441SEvalZero 
75*10465441SEvalZero /*
76*10465441SEvalZero  * wifi init interface
77*10465441SEvalZero  */
78*10465441SEvalZero int rt_wlan_init(void);
79*10465441SEvalZero rt_err_t rt_wlan_set_mode(const char *dev_name, rt_wlan_mode_t mode);
80*10465441SEvalZero rt_wlan_mode_t rt_wlan_get_mode(const char *dev_name);
81*10465441SEvalZero 
82*10465441SEvalZero /*
83*10465441SEvalZero  * wifi station mode interface
84*10465441SEvalZero  */
85*10465441SEvalZero rt_err_t rt_wlan_connect(const char *ssid, const char *password);
86*10465441SEvalZero rt_err_t rt_wlan_connect_adv(struct rt_wlan_info *info, const char *password);
87*10465441SEvalZero rt_err_t rt_wlan_disconnect(void);
88*10465441SEvalZero rt_bool_t rt_wlan_is_connected(void);
89*10465441SEvalZero rt_bool_t rt_wlan_is_ready(void);
90*10465441SEvalZero rt_err_t rt_wlan_set_mac(rt_uint8_t *mac);
91*10465441SEvalZero rt_err_t rt_wlan_get_mac(rt_uint8_t *mac);
92*10465441SEvalZero rt_err_t rt_wlan_get_info(struct rt_wlan_info *info);
93*10465441SEvalZero int rt_wlan_get_rssi(void);
94*10465441SEvalZero 
95*10465441SEvalZero /*
96*10465441SEvalZero  * wifi ap mode interface
97*10465441SEvalZero  */
98*10465441SEvalZero rt_err_t rt_wlan_start_ap(const char *ssid, const char *password);
99*10465441SEvalZero rt_err_t rt_wlan_start_ap_adv(struct rt_wlan_info *info, const char *password);
100*10465441SEvalZero rt_bool_t rt_wlan_ap_is_active(void);
101*10465441SEvalZero rt_err_t rt_wlan_ap_stop(void);
102*10465441SEvalZero rt_err_t rt_wlan_ap_get_info(struct rt_wlan_info *info);
103*10465441SEvalZero int rt_wlan_ap_get_sta_num(void);
104*10465441SEvalZero int rt_wlan_ap_get_sta_info(struct rt_wlan_info *info, int num);
105*10465441SEvalZero rt_err_t rt_wlan_ap_deauth_sta(rt_uint8_t *mac);
106*10465441SEvalZero rt_err_t rt_wlan_ap_set_country(rt_country_code_t country_code);
107*10465441SEvalZero rt_country_code_t rt_wlan_ap_get_country(void);
108*10465441SEvalZero 
109*10465441SEvalZero /*
110*10465441SEvalZero  * wifi scan interface
111*10465441SEvalZero  */
112*10465441SEvalZero rt_err_t rt_wlan_scan(void);
113*10465441SEvalZero struct rt_wlan_scan_result *rt_wlan_scan_sync(void);
114*10465441SEvalZero struct rt_wlan_scan_result *rt_wlan_scan_with_info(struct rt_wlan_info *info);
115*10465441SEvalZero int rt_wlan_scan_get_info_num(void);
116*10465441SEvalZero int rt_wlan_scan_get_info(struct rt_wlan_info *info, int num);
117*10465441SEvalZero struct rt_wlan_scan_result *rt_wlan_scan_get_result(void);
118*10465441SEvalZero void rt_wlan_scan_result_clean(void);
119*10465441SEvalZero int rt_wlan_scan_find_cache(struct rt_wlan_info *info, struct rt_wlan_info *out_info, int num);
120*10465441SEvalZero rt_bool_t rt_wlan_find_best_by_cache(const char *ssid, struct rt_wlan_info *info);
121*10465441SEvalZero 
122*10465441SEvalZero /*
123*10465441SEvalZero  * wifi auto connect interface
124*10465441SEvalZero  */
125*10465441SEvalZero void rt_wlan_config_autoreconnect(rt_bool_t enable);
126*10465441SEvalZero rt_bool_t rt_wlan_get_autoreconnect_mode(void);
127*10465441SEvalZero 
128*10465441SEvalZero /*
129*10465441SEvalZero  * wifi power management interface
130*10465441SEvalZero  */
131*10465441SEvalZero rt_err_t rt_wlan_set_powersave(int level);
132*10465441SEvalZero int rt_wlan_get_powersave(void);
133*10465441SEvalZero 
134*10465441SEvalZero /*
135*10465441SEvalZero  * wifi event management interface
136*10465441SEvalZero  */
137*10465441SEvalZero rt_err_t rt_wlan_register_event_handler(rt_wlan_event_t event, rt_wlan_event_handler handler, void *parameter);
138*10465441SEvalZero rt_err_t rt_wlan_unregister_event_handler(rt_wlan_event_t event);
139*10465441SEvalZero 
140*10465441SEvalZero /*
141*10465441SEvalZero  * wifi management lock interface
142*10465441SEvalZero  */
143*10465441SEvalZero void rt_wlan_mgnt_lock(void);
144*10465441SEvalZero void rt_wlan_mgnt_unlock(void);
145*10465441SEvalZero 
146*10465441SEvalZero #ifdef __cplusplus
147*10465441SEvalZero }
148*10465441SEvalZero #endif
149*10465441SEvalZero 
150*10465441SEvalZero #endif
151