wifi debug
This commit is contained in:
parent
a8da95f25b
commit
9aba50be67
|
@ -75,10 +75,23 @@ def check_wifi_connection():
|
||||||
return False, None
|
return False, None
|
||||||
|
|
||||||
def scan_wifi():
|
def scan_wifi():
|
||||||
subprocess.run(['nmcli', 'dev', 'wifi', 'rescan'], check=True)
|
try:
|
||||||
cmd = "nmcli dev wifi"
|
subprocess.run(['nmcli', 'dev', 'wifi', 'rescan'], check=True)
|
||||||
result = subprocess.run(cmd, shell=True, capture_output=True, text=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 = []
|
ssid_list = []
|
||||||
wifi_list = []
|
wifi_list = []
|
||||||
output = result.stdout.strip()
|
output = result.stdout.strip()
|
||||||
|
@ -127,26 +140,9 @@ def scan_wifi():
|
||||||
wifi_list.append({'ssid': ssid, 'signal': strength, 'mac': mac_address})
|
wifi_list.append({'ssid': ssid, 'signal': strength, 'mac': mac_address})
|
||||||
if len(wifi_list) == 15:
|
if len(wifi_list) == 15:
|
||||||
break
|
break
|
||||||
# save wifi_list to file
|
|
||||||
with open('wifi_list.json', 'w') as f:
|
|
||||||
json.dump(wifi_list, f)
|
|
||||||
|
|
||||||
return wifi_list
|
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
|
# 连接 Wi-Fi
|
||||||
def connect_wifi(ssid, password):
|
def connect_wifi(ssid, password):
|
||||||
# 连接到用户选择的 Wi-Fi 网络
|
# 连接到用户选择的 Wi-Fi 网络
|
||||||
|
@ -177,6 +173,29 @@ def disconnect_wifi():
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"{datetime.datetime.now()}: Error disconnecting from Wi-Fi: {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:
|
if connected:
|
||||||
print(f"{datetime.datetime.now()}: 系统已自动连接到 Wi-Fi 网络,退出程序")
|
print(f"{datetime.datetime.now()}: 系统已自动连接到 Wi-Fi 网络,退出程序")
|
||||||
close_app()
|
close_app()
|
||||||
else:
|
|
||||||
wifi_list = load_saved_wifi()
|
wifi_list = scan_wifi()
|
||||||
if not wifi_list:
|
|
||||||
wifi_list = scan_wifi()
|
connected, wifi_ssid = connect_saved_wifi(wifi_list)
|
||||||
print(f"{datetime.datetime.now()}: 未连接到 Wi-Fi 网络")
|
if connected:
|
||||||
start_hotspot()
|
print(f"{datetime.datetime.now()}: 系统已自动连接到 Wi-Fi 网络 {wifi_ssid},退出程序")
|
||||||
app.run(host='0.0.0.0', port=80)
|
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