[wifi] force scan

This commit is contained in:
IrvingGao 2024-06-13 17:32:49 +08:00
parent d4cf53189d
commit ebd6db5823
1 changed files with 17 additions and 11 deletions

View File

@ -185,9 +185,20 @@ def check_wifi_connection():
orangepi.set_led_on('blue') orangepi.set_led_on('blue')
return False, None 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(): def scan_wifi():
try: try:
subprocess.run(['nmcli', 'dev', 'wifi', 'rescan'], check=True) # subprocess.run(['nmcli', 'dev', 'wifi', 'rescan'], check=True)
cmd = "nmcli dev wifi" cmd = "nmcli dev wifi"
result = subprocess.run(cmd, shell=True, capture_output=True, text=True) result = subprocess.run(cmd, shell=True, capture_output=True, text=True)
except subprocess.CalledProcessError as e: except subprocess.CalledProcessError as e:
@ -332,9 +343,7 @@ def submit():
# 关闭热点 # 关闭热点
close_hotspot() close_hotspot()
time.sleep(0.5) wifi_list = force_scan_wifi()
wifi_list = scan_wifi()
time.sleep(0.5)
# 连接到用户选择的 Wi-Fi 网络 # 连接到用户选择的 Wi-Fi 网络
if connect_wifi(ssid, password): if connect_wifi(ssid, password):
@ -364,8 +373,9 @@ if __name__ == '__main__':
init_networkmanager_file() # 初始化 NetworkManager 配置文件 init_networkmanager_file() # 初始化 NetworkManager 配置文件
# 扫描Wi-Fi # 扫描Wi-Fi
wifi_list = scan_wifi() wifi_list = force_scan_wifi()
time.sleep(2) # 等待2秒确保wifi scan完成 # wifi_list = scan_wifi()
# time.sleep(2) # 等待2秒确保wifi scan完成
connected, wifi_ssid = check_wifi_connection() connected, wifi_ssid = check_wifi_connection()
if connected: if connected:
@ -381,11 +391,7 @@ if __name__ == '__main__':
logging.info(f"未连接到 Wi-Fi 网络, 开始热点模式") logging.info(f"未连接到 Wi-Fi 网络, 开始热点模式")
while wifi_list == []: # force_scan_wifi()
init_networkmanager_file() # 初始化 NetworkManager 配置文件
# 扫描Wi-Fi
wifi_list = scan_wifi()
time.sleep(2) # 等待2秒确保wifi scan完成
start_hotspot() start_hotspot()
app.run(host='0.0.0.0', port=80) app.run(host='0.0.0.0', port=80)