154 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			154 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
|  | /*
 | ||
|  |  * Copyright (c) 2006-2023, RT-Thread Development Team | ||
|  |  * | ||
|  |  * SPDX-License-Identifier: Apache-2.0 | ||
|  |  * | ||
|  |  * Change Logs: | ||
|  |  * Date           Author       Notes | ||
|  |  * 2018-08-06     tyx          the first version | ||
|  |  */ | ||
|  | 
 | ||
|  | #ifndef __WLAN_MGNT_H__
 | ||
|  | #define __WLAN_MGNT_H__
 | ||
|  | 
 | ||
|  | #include <wlan_dev.h>
 | ||
|  | 
 | ||
|  | #ifdef __cplusplus
 | ||
|  | extern "C" { | ||
|  | #endif
 | ||
|  | 
 | ||
|  | #ifndef RT_WLAN_SCAN_WAIT_MS
 | ||
|  | #define RT_WLAN_SCAN_WAIT_MS       (10 * 1000)
 | ||
|  | #endif
 | ||
|  | 
 | ||
|  | #ifndef RT_WLAN_SCAN_CACHE_NUM
 | ||
|  | #define RT_WLAN_SCAN_CACHE_NUM     (50)
 | ||
|  | #endif
 | ||
|  | 
 | ||
|  | #ifndef RT_WLAN_CONNECT_WAIT_MS
 | ||
|  | #define RT_WLAN_CONNECT_WAIT_MS    (10 * 1000)
 | ||
|  | #endif
 | ||
|  | 
 | ||
|  | #ifndef RT_WLAN_START_AP_WAIT_MS
 | ||
|  | #define RT_WLAN_START_AP_WAIT_MS    (10 * 1000)
 | ||
|  | #endif
 | ||
|  | 
 | ||
|  | #ifndef RT_WLAN_EBOX_NUM
 | ||
|  | #define RT_WLAN_EBOX_NUM           (10)
 | ||
|  | #endif
 | ||
|  | 
 | ||
|  | #ifndef RT_WLAN_SCAN_RETRY_CNT
 | ||
|  | #define RT_WLAN_SCAN_RETRY_CNT      (3)
 | ||
|  | #endif
 | ||
|  | 
 | ||
|  | #ifndef AUTO_CONNECTION_PERIOD_MS
 | ||
|  | #define AUTO_CONNECTION_PERIOD_MS (2000)
 | ||
|  | #endif
 | ||
|  | 
 | ||
|  | /*state fot station*/ | ||
|  | #define RT_WLAN_STATE_CONNECT     (1UL << 0)
 | ||
|  | #define RT_WLAN_STATE_CONNECTING  (1UL << 1)
 | ||
|  | #define RT_WLAN_STATE_READY       (1UL << 2)
 | ||
|  | #define RT_WLAN_STATE_POWERSAVE   (1UL << 3)
 | ||
|  | 
 | ||
|  | /*flags fot station*/ | ||
|  | #define RT_WLAN_STATE_AUTOEN      (1UL << 0)
 | ||
|  | 
 | ||
|  | /*state fot ap*/ | ||
|  | #define RT_WLAN_STATE_ACTIVE      (1UL << 0)
 | ||
|  | 
 | ||
|  | typedef enum | ||
|  | { | ||
|  |     RT_WLAN_EVT_READY = 0,              /* connect and prot is ok, You can send data*/ | ||
|  |     RT_WLAN_EVT_SCAN_DONE,              /* Scan a info */ | ||
|  |     RT_WLAN_EVT_SCAN_REPORT,            /* Scan end */ | ||
|  |     RT_WLAN_EVT_STA_CONNECTED,          /* connect success */ | ||
|  |     RT_WLAN_EVT_STA_CONNECTED_FAIL,     /* connection failed */ | ||
|  |     RT_WLAN_EVT_STA_DISCONNECTED,       /* disconnect */ | ||
|  |     RT_WLAN_EVT_AP_START,               /* AP start */ | ||
|  |     RT_WLAN_EVT_AP_STOP,                /* AP stop */ | ||
|  |     RT_WLAN_EVT_AP_ASSOCIATED,          /* sta associated */ | ||
|  |     RT_WLAN_EVT_AP_DISASSOCIATED,       /* sta disassociated */ | ||
|  |     RT_WLAN_EVT_MAX | ||
|  | } rt_wlan_event_t; | ||
|  | 
 | ||
|  | typedef void (*rt_wlan_event_handler)(int event, struct rt_wlan_buff *buff, void *parameter); | ||
|  | 
 | ||
|  | struct rt_wlan_scan_result | ||
|  | { | ||
|  |     rt_int32_t num; | ||
|  |     struct rt_wlan_info *info; | ||
|  | }; | ||
|  | 
 | ||
|  | /*
 | ||
|  |  * wifi init interface | ||
|  |  */ | ||
|  | int rt_wlan_init(void); | ||
|  | rt_err_t rt_wlan_set_mode(const char *dev_name, rt_wlan_mode_t mode); | ||
|  | rt_wlan_mode_t rt_wlan_get_mode(const char *dev_name); | ||
|  | 
 | ||
|  | /*
 | ||
|  |  * wifi station mode interface | ||
|  |  */ | ||
|  | rt_err_t rt_wlan_connect(const char *ssid, const char *password); | ||
|  | rt_err_t rt_wlan_connect_adv(struct rt_wlan_info *info, const char *password); | ||
|  | rt_err_t rt_wlan_disconnect(void); | ||
|  | rt_bool_t rt_wlan_is_connected(void); | ||
|  | rt_bool_t rt_wlan_is_ready(void); | ||
|  | rt_err_t rt_wlan_set_mac(rt_uint8_t *mac); | ||
|  | rt_err_t rt_wlan_get_mac(rt_uint8_t *mac); | ||
|  | rt_err_t rt_wlan_get_info(struct rt_wlan_info *info); | ||
|  | int rt_wlan_get_rssi(void); | ||
|  | 
 | ||
|  | /*
 | ||
|  |  * wifi ap mode interface | ||
|  |  */ | ||
|  | rt_err_t rt_wlan_start_ap(const char *ssid, const char *password); | ||
|  | rt_err_t rt_wlan_start_ap_adv(struct rt_wlan_info *info, const char *password); | ||
|  | rt_bool_t rt_wlan_ap_is_active(void); | ||
|  | rt_err_t rt_wlan_ap_stop(void); | ||
|  | rt_err_t rt_wlan_ap_get_info(struct rt_wlan_info *info); | ||
|  | int rt_wlan_ap_get_sta_num(void); | ||
|  | int rt_wlan_ap_get_sta_info(struct rt_wlan_info *info, int num); | ||
|  | rt_err_t rt_wlan_ap_deauth_sta(rt_uint8_t *mac); | ||
|  | rt_err_t rt_wlan_ap_set_country(rt_country_code_t country_code); | ||
|  | rt_country_code_t rt_wlan_ap_get_country(void); | ||
|  | 
 | ||
|  | /*
 | ||
|  |  * wifi scan interface | ||
|  |  */ | ||
|  | rt_err_t rt_wlan_scan(void); | ||
|  | struct rt_wlan_scan_result *rt_wlan_scan_sync(void); | ||
|  | rt_err_t rt_wlan_scan_with_info(struct rt_wlan_info *info); | ||
|  | 
 | ||
|  | 
 | ||
|  | /*
 | ||
|  |  * wifi auto connect interface | ||
|  |  */ | ||
|  | void rt_wlan_config_autoreconnect(rt_bool_t enable); | ||
|  | rt_bool_t rt_wlan_get_autoreconnect_mode(void); | ||
|  | 
 | ||
|  | /*
 | ||
|  |  * wifi power management interface | ||
|  |  */ | ||
|  | rt_err_t rt_wlan_set_powersave(int level); | ||
|  | int rt_wlan_get_powersave(void); | ||
|  | 
 | ||
|  | /*
 | ||
|  |  * wifi event management interface | ||
|  |  */ | ||
|  | rt_err_t rt_wlan_register_event_handler(rt_wlan_event_t event, rt_wlan_event_handler handler, void *parameter); | ||
|  | rt_err_t rt_wlan_unregister_event_handler(rt_wlan_event_t event); | ||
|  | 
 | ||
|  | /*
 | ||
|  |  * wifi management lock interface | ||
|  |  */ | ||
|  | void rt_wlan_mgnt_lock(void); | ||
|  | void rt_wlan_mgnt_unlock(void); | ||
|  | 
 | ||
|  | #ifdef __cplusplus
 | ||
|  | } | ||
|  | #endif
 | ||
|  | 
 | ||
|  | #endif
 |