94 lines
3.0 KiB
Python
94 lines
3.0 KiB
Python
import network
|
|
import gc
|
|
import time
|
|
import machine
|
|
|
|
import shared_vars
|
|
import system
|
|
|
|
|
|
class SystemHandler:
|
|
|
|
def get_wifi_list(self,data):
|
|
"""扫描并返回可用的 WiFi 列表"""
|
|
try:
|
|
wlan = network.WLAN(network.STA_IF)
|
|
wlan.active(True)
|
|
networks = wlan.scan()
|
|
wifi_list = [{'ssid': net[0].decode('utf-8'), 'rssi': net[3]} for net in networks]
|
|
print("扫描到的 WiFi 列表:", wifi_list)
|
|
system.send_text(shared_vars.WS_SOCK,wifi_list)
|
|
return wifi_list
|
|
except Exception as e:
|
|
print(f"获取 WiFi 列表时出错: {e}")
|
|
return []
|
|
|
|
def get_memory_info(self,data):
|
|
"""获取当前内存使用信息"""
|
|
try:
|
|
free_mem = gc.mem_free()
|
|
allocated_mem = gc.mem_alloc()
|
|
total_mem = free_mem + allocated_mem
|
|
memory_info = {
|
|
'free_memory': free_mem,
|
|
'allocated_memory': allocated_mem,
|
|
'total_memory': total_mem
|
|
}
|
|
print("内存信息:", memory_info)
|
|
return memory_info
|
|
except Exception as e:
|
|
print(f"获取内存信息时出错: {e}")
|
|
return {}
|
|
|
|
def free_memory(self,data):
|
|
"""释放内存并返回释放的内存大小"""
|
|
try:
|
|
before_free = gc.mem_free()
|
|
gc.collect()
|
|
after_free = gc.mem_free()
|
|
freed_memory = after_free - before_free
|
|
print(f"释放了 {freed_memory} 字节的内存")
|
|
return freed_memory
|
|
except Exception as e:
|
|
print(f"释放内存时出错: {e}")
|
|
return 0
|
|
|
|
def connect_to_wifi(self,data):
|
|
"""连接到指定的 WiFi"""
|
|
ssid, password = data.get('ssid'), data.get('password')
|
|
try:
|
|
wlan = network.WLAN(network.STA_IF)
|
|
wlan.active(True)
|
|
wlan.connect(ssid, password)
|
|
start_time = time.time()
|
|
while not wlan.isconnected():
|
|
if time.time() - start_time > 10: # 超时 10 秒
|
|
raise TimeoutError("连接 WiFi 超时")
|
|
time.sleep(1)
|
|
print(f"成功连接到 WiFi: {ssid}")
|
|
return wlan.ifconfig()
|
|
except Exception as e:
|
|
print(f"连接 WiFi 时出错: {e}")
|
|
return None
|
|
|
|
def get_system_time(self,data):
|
|
"""获取系统时间"""
|
|
try:
|
|
current_time = time.localtime()
|
|
formatted_time = time.strftime("%Y-%m-%d %H:%M:%S", current_time)
|
|
print("当前系统时间:", formatted_time)
|
|
return formatted_time
|
|
except Exception as e:
|
|
print(f"获取系统时间时出错: {e}")
|
|
return None
|
|
|
|
def restart_device(self,data):
|
|
"""重启设备"""
|
|
try:
|
|
print("设备即将重启...")
|
|
time.sleep(1)
|
|
machine.reset()
|
|
except Exception as e:
|
|
print(f"重启设备时出错: {e}")
|
|
return None
|
|
return None |