提交 6fbc7494 编写于 作者: 还_没_想_好's avatar 还_没_想_好

[components][drivers][wlan] 自动连接周期可配置,可指定扫描通道

上级 8f4b4bdb
...@@ -471,6 +471,12 @@ menuconfig RT_USING_WIFI ...@@ -471,6 +471,12 @@ menuconfig RT_USING_WIFI
select RT_WLAN_CFG_ENABLE select RT_WLAN_CFG_ENABLE
select RT_WLAN_WORK_THREAD_ENABLE select RT_WLAN_WORK_THREAD_ENABLE
default y default y
if RT_WLAN_AUTO_CONNECT_ENABLE
config AUTO_CONNECTION_PERIOD_MS
int "Auto connect period(ms)"
default 2000
endif
endif endif
config RT_WLAN_CFG_ENABLE config RT_WLAN_CFG_ENABLE
......
...@@ -535,8 +535,16 @@ rt_err_t rt_wlan_dev_scan(struct rt_wlan_device *device, struct rt_wlan_info *in ...@@ -535,8 +535,16 @@ rt_err_t rt_wlan_dev_scan(struct rt_wlan_device *device, struct rt_wlan_info *in
} }
rt_memcpy(&scan_info.ssid, &info->ssid, sizeof(rt_wlan_ssid_t)); rt_memcpy(&scan_info.ssid, &info->ssid, sizeof(rt_wlan_ssid_t));
rt_memcpy(scan_info.bssid, info->bssid, RT_WLAN_BSSID_MAX_LENGTH); rt_memcpy(scan_info.bssid, info->bssid, RT_WLAN_BSSID_MAX_LENGTH);
scan_info.channel_min = -1; if (info->channel > 0)
scan_info.channel_max = -1; {
scan_info.channel_min = info->channel;
scan_info.channel_max = info->channel;
}
else
{
scan_info.channel_min = -1;
scan_info.channel_max = -1;
}
p_scan_info = &scan_info; p_scan_info = &scan_info;
} }
result = rt_device_control(RT_DEVICE(device), RT_WLAN_CMD_SCAN, p_scan_info); result = rt_device_control(RT_DEVICE(device), RT_WLAN_CMD_SCAN, p_scan_info);
......
...@@ -58,10 +58,6 @@ ...@@ -58,10 +58,6 @@
#define TIME_START() #define TIME_START()
#endif #endif
#ifndef DISCONNECT_RESPONSE_MS
#define DISCONNECT_RESPONSE_MS (2000)
#endif
#if RT_WLAN_EBOX_NUM < 1 #if RT_WLAN_EBOX_NUM < 1
#error "event box num Too few" #error "event box num Too few"
#endif #endif
...@@ -2020,7 +2016,7 @@ int rt_wlan_init(void) ...@@ -2020,7 +2016,7 @@ int rt_wlan_init(void)
rt_mutex_init(&complete_mutex, "complete", RT_IPC_FLAG_FIFO); rt_mutex_init(&complete_mutex, "complete", RT_IPC_FLAG_FIFO);
#ifdef RT_WLAN_AUTO_CONNECT_ENABLE #ifdef RT_WLAN_AUTO_CONNECT_ENABLE
rt_timer_init(&reconnect_time, "wifi_tim", rt_wlan_cyclic_check, RT_NULL, rt_timer_init(&reconnect_time, "wifi_tim", rt_wlan_cyclic_check, RT_NULL,
rt_tick_from_millisecond(DISCONNECT_RESPONSE_MS), rt_tick_from_millisecond(AUTO_CONNECTION_PERIOD_MS),
RT_TIMER_FLAG_PERIODIC | RT_TIMER_FLAG_SOFT_TIMER); RT_TIMER_FLAG_PERIODIC | RT_TIMER_FLAG_SOFT_TIMER);
#endif #endif
_init_flag = 1; _init_flag = 1;
......
...@@ -41,6 +41,10 @@ extern "C" { ...@@ -41,6 +41,10 @@ extern "C" {
#define RT_WLAN_SCAN_RETRY_CNT (3) #define RT_WLAN_SCAN_RETRY_CNT (3)
#endif #endif
#ifndef AUTO_CONNECTION_PERIOD_MS
#define AUTO_CONNECTION_PERIOD_MS (2000)
#endif
/*state fot station*/ /*state fot station*/
#define RT_WLAN_STATE_CONNECT (1UL << 0) #define RT_WLAN_STATE_CONNECT (1UL << 0)
#define RT_WLAN_STATE_CONNECTING (1UL << 1) #define RT_WLAN_STATE_CONNECTING (1UL << 1)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册