From 8ce6d55add4004aec5c7845aefcf4dddea649c30 Mon Sep 17 00:00:00 2001 From: kicer Date: Sun, 25 Jan 2026 09:11:14 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=AE=9A=E6=97=B6=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E8=B0=83=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/rom/app.py | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/rom/app.py b/src/rom/app.py index 9b476f2..c9df2cc 100644 --- a/src/rom/app.py +++ b/src/rom/app.py @@ -38,8 +38,11 @@ def sync_ntp_time(): ntptime.host = config.get("ntphost", "ntp.ntsc.ac.cn") t = ntptime.time() + 3600 * 8 + + rtc = machine.RTC() tm = time.gmtime(t) - machine.RTC().datetime((tm[0], tm[1], tm[2], tm[6], tm[3], tm[4], tm[5], 0)) + rtc.datetime((tm[0], tm[1], tm[2], tm[6], tm[3], tm[4], tm[5], 0)) + print(f"时间同步:{rtc.datetime()}") # 简化的天气数据获取函数 @@ -114,7 +117,7 @@ async def sysinfo_update_task(): """定时后台任务""" weather_ts = 2 # 启动2s后更新 ntptime_ts = 1 # 启动1s后更新 - config_ts = 30 # 定时30s更新一次配置 + config_ts = 60 # 定时60s更新一次配置 # 初始化时间戳 start_ticks = time.ticks_ms() @@ -128,12 +131,7 @@ async def sysinfo_update_task(): weather_diff = time.ticks_diff(current_ticks, last_weather) ntp_diff = time.ticks_diff(current_ticks, last_ntptime) - if config_diff >= config_ts * 1000: - # 重新读取配置 - weather_ts = int(config.get("weather_ts", 600)) # 10min - ntptime_ts = int(config.get("ntptime_ts", 3600)) + 13 # 1hour - last_config = current_ticks - elif weather_diff >= weather_ts * 1000: + if weather_diff >= weather_ts * 1000: # 更新天气数据 gc.collect() weather_ts = int(config.get("weather_ts", 600)) # 10min @@ -145,10 +143,15 @@ async def sysinfo_update_task(): ntptime_ts = int(config.get("ntptime_ts", 3600)) + 13 # 1hour sync_ntp_time() last_ntptime = current_ticks + elif config_diff >= config_ts * 1000: + # 重新读取配置 + weather_ts = int(config.get("weather_ts", 600)) # 10min + ntptime_ts = int(config.get("ntptime_ts", 3600)) + 13 # 1hour + last_config = current_ticks except Exception as e: print(f"定时任务更新错误: {e}") - # 等待x秒再检查 + # 等待x秒再检查(1~30) _x = min(30, 1 + min(weather_ts, ntptime_ts) // 10) await uasyncio.sleep(_x)