diff --git a/app.yaml b/app.yaml index ec1727d..90584da 100644 --- a/app.yaml +++ b/app.yaml @@ -25,6 +25,7 @@ files: - ota_manager.py - power.py - server.pem + - set_autostart.py - shoot_manager.py - shot_id_generator.py - target_roi_yolo.py diff --git a/config.py b/config.py index b39d257..2fced01 100644 --- a/config.py +++ b/config.py @@ -341,7 +341,7 @@ PIN_MAPPINGS = { } # ==================== 电源配置 ==================== -AUTO_POWER_OFF_IN_SECONDS = 10 * 60 # 自动关机时间(秒),0表示不自动关机 +AUTO_POWER_OFF_IN_SECONDS = 0 # 自动关机时间(秒),0表示不自动关机 BATTERY_SOC_LPF_ALPHA = 0.5 BATTERY_SOC_AVG_WINDOW = 5 diff --git a/hardware.py b/hardware.py index 28af91c..804fac8 100644 --- a/hardware.py +++ b/hardware.py @@ -29,7 +29,7 @@ class HardwareManager: self._adc_obj = None # ADC对象 self._at_client = None # AT客户端 - self._last_active_time = 0 # 用于记录用户的最后一次活跃的时间 + self._last_active_ticks = None # 上次活跃时刻(ticks_ms,单调递增,不受校时影响) self._stop_timer = False # 用于停止定时器的标志 self._initialized = True @@ -111,7 +111,7 @@ class HardwareManager: def start_idle_timer(self): self._stop_timer = False - self._last_active_time = time.time() + self._last_active_ticks = time.ticks_ms() def stop_idle_timer(self): self._stop_timer = True @@ -119,12 +119,13 @@ class HardwareManager: def get_idle_time_in_sec(self): if self._stop_timer: return 0 - diff = time.time() - self._last_active_time - if diff < 0: - # 时间可能被重置了,重新计时 - self._last_active_time = time.time() + if self._last_active_ticks is None: return 0 - return diff + diff_ms = time.ticks_diff(time.ticks_ms(), self._last_active_ticks) + if diff_ms < 0: + self._last_active_ticks = time.ticks_ms() + return 0 + return diff_ms / 1000.0 # 创建全局单例实例 diff --git a/main.py b/main.py index 67f53c9..2de1579 100644 --- a/main.py +++ b/main.py @@ -275,6 +275,11 @@ def cmd_str(): hardware_manager.start_idle_timer() if logger: + _auto_power_off = int(getattr(config, "AUTO_POWER_OFF_IN_SECONDS", 0) or 0) + if _auto_power_off <= 0: + logger.info("[MAIN] 自动关机已禁用 (AUTO_POWER_OFF_IN_SECONDS=0)") + else: + logger.info(f"[MAIN] 自动关机: {_auto_power_off} 秒无活动") logger.info("系统准备完成...") last_adc_trigger = 0 diff --git a/version.md b/version.md index 4757224..a1860aa 100644 --- a/version.md +++ b/version.md @@ -26,4 +26,4 @@ # 2.15.13 优化算法 # 2.15.14 优化算法 # 2.15.15 优化wifi连接 -# 2.15.16 修复不关机 \ No newline at end of file +# 2.15.16 修复不关机,空闲计时改用 ticks_ms(不受校时影响),启动时打印自动关机配置 \ No newline at end of file