优化了很多问题。
This commit is contained in:
94
SystemHandler.py
Normal file
94
SystemHandler.py
Normal file
@@ -0,0 +1,94 @@
|
||||
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
|
||||
Reference in New Issue
Block a user