wifi debug
This commit is contained in:
parent
a8da95f25b
commit
9aba50be67
|
@ -75,10 +75,23 @@ def check_wifi_connection():
|
|||
return False, None
|
||||
|
||||
def scan_wifi():
|
||||
subprocess.run(['nmcli', 'dev', 'wifi', 'rescan'], check=True)
|
||||
cmd = "nmcli dev wifi"
|
||||
result = subprocess.run(cmd, shell=True, capture_output=True, text=True)
|
||||
|
||||
try:
|
||||
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:
|
||||
print(f"{datetime.datetime.now()}: Error scanning Wi-Fi: {e}")
|
||||
error_time = datetime.datetime.now()
|
||||
while led_enabled:
|
||||
orangepi.set_led_off('blue')
|
||||
orangepi.set_led_on('red')
|
||||
time.sleep(0.5)
|
||||
orangepi.set_led_on('blue')
|
||||
orangepi.set_led_off('red')
|
||||
time.sleep(0.5)
|
||||
if error_time + datetime.timedelta(seconds=5) < datetime.datetime.now():
|
||||
break
|
||||
close_app()
|
||||
ssid_list = []
|
||||
wifi_list = []
|
||||
output = result.stdout.strip()
|
||||
|
@ -127,26 +140,9 @@ def scan_wifi():
|
|||
wifi_list.append({'ssid': ssid, 'signal': strength, 'mac': mac_address})
|
||||
if len(wifi_list) == 15:
|
||||
break
|
||||
# save wifi_list to file
|
||||
with open('wifi_list.json', 'w') as f:
|
||||
json.dump(wifi_list, f)
|
||||
|
||||
return wifi_list
|
||||
|
||||
def load_saved_wifi():
|
||||
try:
|
||||
with open('wifi_list.json', 'r') as f:
|
||||
wifi_list = json.load(f)
|
||||
return wifi_list
|
||||
except FileNotFoundError:
|
||||
return []
|
||||
|
||||
def save_wifi(ssid, password):
|
||||
wifi_list = load_saved_wifi()
|
||||
wifi_list.append({'ssid': ssid, 'password': password})
|
||||
with open('wifi_list.json', 'w') as f:
|
||||
json.dump(wifi_list, f)
|
||||
|
||||
# 连接 Wi-Fi
|
||||
def connect_wifi(ssid, password):
|
||||
# 连接到用户选择的 Wi-Fi 网络
|
||||
|
@ -177,6 +173,29 @@ def disconnect_wifi():
|
|||
except Exception as e:
|
||||
print(f"{datetime.datetime.now()}: Error disconnecting from Wi-Fi: {e}")
|
||||
|
||||
def connect_saved_wifi(scaned_wifi_list):
|
||||
wifi_list = load_saved_wifi()
|
||||
if not wifi_list:
|
||||
return False, None
|
||||
for wifi in wifi_list:
|
||||
if wifi['ssid'] in [item['ssid'] for item in scaned_wifi_list]:
|
||||
connect_wifi(wifi['ssid'], wifi['password'])
|
||||
return True, wifi['ssid']
|
||||
return False, None
|
||||
|
||||
def load_saved_wifi():
|
||||
try:
|
||||
with open('wifi_list.json', 'r') as f:
|
||||
wifi_list = json.load(f)
|
||||
return wifi_list
|
||||
except FileNotFoundError:
|
||||
return []
|
||||
|
||||
def save_wifi(ssid, password):
|
||||
wifi_list = load_saved_wifi()
|
||||
wifi_list.append({'ssid': ssid, 'password': password})
|
||||
with open('wifi_list.json', 'w') as f:
|
||||
json.dump(wifi_list, f)
|
||||
|
||||
|
||||
# 主页
|
||||
|
@ -239,10 +258,14 @@ if __name__ == '__main__':
|
|||
if connected:
|
||||
print(f"{datetime.datetime.now()}: 系统已自动连接到 Wi-Fi 网络,退出程序")
|
||||
close_app()
|
||||
else:
|
||||
wifi_list = load_saved_wifi()
|
||||
if not wifi_list:
|
||||
wifi_list = scan_wifi()
|
||||
print(f"{datetime.datetime.now()}: 未连接到 Wi-Fi 网络")
|
||||
start_hotspot()
|
||||
app.run(host='0.0.0.0', port=80)
|
||||
|
||||
wifi_list = scan_wifi()
|
||||
|
||||
connected, wifi_ssid = connect_saved_wifi(wifi_list)
|
||||
if connected:
|
||||
print(f"{datetime.datetime.now()}: 系统已自动连接到 Wi-Fi 网络 {wifi_ssid},退出程序")
|
||||
close_app()
|
||||
|
||||
print(f"{datetime.datetime.now()}: 未连接到 Wi-Fi 网络, 开始热点模式")
|
||||
start_hotspot()
|
||||
app.run(host='0.0.0.0', port=80)
|
Loading…
Reference in New Issue