diff --git a/wifi_manager.py b/wifi_manager.py index 45c366f..4afc915 100644 --- a/wifi_manager.py +++ b/wifi_manager.py @@ -185,9 +185,20 @@ def check_wifi_connection(): orangepi.set_led_on('blue') return False, None +def force_scan_wifi(): + wifi_list = [] + while wifi_list == []: + logging.info(f"wifi_list=={wifi_list}, 正在重新扫描Wi-Fi...") + init_networkmanager_file() # 初始化 NetworkManager 配置文件 + # 扫描Wi-Fi + wifi_list = scan_wifi() + time.sleep(2) # 等待2秒,确保wifi scan完成 + return wifi_list + + def scan_wifi(): try: - subprocess.run(['nmcli', 'dev', 'wifi', 'rescan'], check=True) + # subprocess.run(['nmcli', 'dev', 'wifi', 'rescan'], check=True) cmd = "nmcli dev wifi" result = subprocess.run(cmd, shell=True, capture_output=True, text=True) except subprocess.CalledProcessError as e: @@ -332,9 +343,7 @@ def submit(): # 关闭热点 close_hotspot() - time.sleep(0.5) - wifi_list = scan_wifi() - time.sleep(0.5) + wifi_list = force_scan_wifi() # 连接到用户选择的 Wi-Fi 网络 if connect_wifi(ssid, password): @@ -364,8 +373,9 @@ if __name__ == '__main__': init_networkmanager_file() # 初始化 NetworkManager 配置文件 # 扫描Wi-Fi - wifi_list = scan_wifi() - time.sleep(2) # 等待2秒,确保wifi scan完成 + wifi_list = force_scan_wifi() + # wifi_list = scan_wifi() + # time.sleep(2) # 等待2秒,确保wifi scan完成 connected, wifi_ssid = check_wifi_connection() if connected: @@ -381,11 +391,7 @@ if __name__ == '__main__': logging.info(f"未连接到 Wi-Fi 网络, 开始热点模式") - while wifi_list == []: - init_networkmanager_file() # 初始化 NetworkManager 配置文件 - # 扫描Wi-Fi - wifi_list = scan_wifi() - time.sleep(2) # 等待2秒,确保wifi scan完成 + # force_scan_wifi() start_hotspot() app.run(host='0.0.0.0', port=80) \ No newline at end of file