refactor(logging): remove remote logging subsystem
This commit is contained in:
@@ -9,7 +9,7 @@
|
||||
| `988dc92` | 增加 LCD 背光 PWM 亮度控制 |
|
||||
| `6a11aca` | 增加轻待机状态协调器和活动事件接入 |
|
||||
| `baad9dc` | 增加背光、扬声器功放和电机的待机策略 |
|
||||
| `e773ebc` | 增加 Wi-Fi、远程日志、电池检测和内存监控的待机策略 |
|
||||
| `e773ebc` | 增加 Wi-Fi、电池检测和内存监控的待机策略(远程日志部分现已移除) |
|
||||
| `cb203a7` | 进入轻待机前播放提示音,并等待真实播放完成 |
|
||||
|
||||
`bba99a0 fix(control-plane): trigger PTT on short press` 是独立的按键行为修复,不属于低功耗改动,因此不在本文范围内。
|
||||
@@ -35,7 +35,6 @@
|
||||
- 扬声器功放在无音频播放时仍可能保持供电。
|
||||
- 步进电机完成动作后可能继续保持线圈电流。
|
||||
- Wi-Fi 始终使用活跃策略。
|
||||
- 远程日志持续尝试 HTTP 上传。
|
||||
- 电池检测和内存监控仍按活跃周期运行。
|
||||
- 缺少统一的待机状态、空闲计时、唤醒入口和失败回滚机制。
|
||||
- 如果进入待机时立即关闭功放,待机提示音将无法完整播放。
|
||||
@@ -79,8 +78,6 @@ CONFIG_TQ_LIGHT_STANDBY_PROMPT_FILE="standby_5min.opus"
|
||||
CONFIG_TQ_LIGHT_STANDBY_DISABLE_SPEAKER_OUTPUT=y
|
||||
CONFIG_TQ_LIGHT_STANDBY_RELEASE_MOTOR_HOLD=y
|
||||
CONFIG_TQ_LIGHT_STANDBY_WIFI_POWER_SAVE=y
|
||||
CONFIG_TQ_LIGHT_STANDBY_PAUSE_REMOTE_LOG_UPLOAD=y
|
||||
CONFIG_TQ_LIGHT_STANDBY_REMOTE_LOG_POLL_MS=5000
|
||||
CONFIG_TQ_LIGHT_STANDBY_BATTERY_INTERVAL_SEC=300
|
||||
CONFIG_TQ_LIGHT_STANDBY_MEMORY_SAMPLE_INTERVAL_MS=10000
|
||||
CONFIG_TQ_LIGHT_STANDBY_MEMORY_REPORT_INTERVAL_MS=300000
|
||||
@@ -372,51 +369,6 @@ esp_err_t platform_wifi_portal_set_light_standby(bool standby)
|
||||
- 可能增加网络首包延迟,实际幅度受 AP 的 DTIM、信号质量和网络负载影响。
|
||||
- 不等同于关闭 Wi-Fi,网络任务和 WebSocket 仍会消耗资源。
|
||||
|
||||
### 5.6 远程日志
|
||||
|
||||
#### 问题原因
|
||||
|
||||
待机期间继续发起 HTTP 上传会周期性唤醒网络和 CPU。完全停止日志采集又会丢失现场诊断信息。
|
||||
|
||||
#### 解决方式
|
||||
|
||||
待机期间继续接收日志并落盘,但暂停 coredump 和日志文件的 HTTP 上传;轮询间隔放宽至 5 秒。唤醒后恢复上传。
|
||||
|
||||
#### 具体代码
|
||||
|
||||
```c
|
||||
while (!s_stop_requested) {
|
||||
TickType_t now = xTaskGetTickCount();
|
||||
bool light_standby = remote_log_light_standby();
|
||||
|
||||
if ((now - last_flush) >=
|
||||
pdMS_TO_TICKS(CONFIG_TQ_REMOTE_LOG_FLUSH_INTERVAL_MS)) {
|
||||
drain_memory_queue_to_flash();
|
||||
last_flush = now;
|
||||
}
|
||||
|
||||
if (!light_standby &&
|
||||
voice_startup_upload_gate_open(startup_tick) &&
|
||||
(backoff_ms == 0U || now >= next_upload_tick)) {
|
||||
drain_memory_queue_to_flash();
|
||||
upload_coredump_report();
|
||||
upload_pending_files();
|
||||
}
|
||||
|
||||
uint32_t poll_ms = light_standby ?
|
||||
CONFIG_TQ_LIGHT_STANDBY_REMOTE_LOG_POLL_MS :
|
||||
REMOTE_LOG_POLL_MS;
|
||||
ulTaskNotifyTake(pdTRUE, pdMS_TO_TICKS(poll_ms));
|
||||
}
|
||||
```
|
||||
|
||||
#### 功耗与影响
|
||||
|
||||
- 减少待机期间 HTTP、TLS/TCP 和 Wi-Fi 活动。
|
||||
- 日志仍会写入 Flash,不会因为轻待机直接丢失。
|
||||
- 待机期间服务端无法立即看到新日志;唤醒后再补传。
|
||||
- 持续落盘仍有 Flash 写入功耗和寿命影响,但保留了诊断能力。
|
||||
|
||||
### 5.7 电池检测
|
||||
|
||||
#### 问题原因
|
||||
@@ -565,7 +517,6 @@ static esp_err_t control_plane_light_standby_apply_entry_policy(void)
|
||||
```c
|
||||
static esp_err_t control_plane_light_standby_apply_runtime_policy(bool standby)
|
||||
{
|
||||
control_plane_remote_log_set_light_standby(standby);
|
||||
control_plane_battery_service_set_light_standby(standby);
|
||||
control_plane_runtime_diagnostics_set_light_standby(standby);
|
||||
|
||||
@@ -573,7 +524,6 @@ static esp_err_t control_plane_light_standby_apply_runtime_policy(bool standby)
|
||||
esp_err_t wifi_err =
|
||||
domain_runtime_wifi_portal_set_light_standby(standby);
|
||||
if (wifi_err != ESP_OK && standby) {
|
||||
control_plane_remote_log_set_light_standby(false);
|
||||
control_plane_battery_service_set_light_standby(false);
|
||||
control_plane_runtime_diagnostics_set_light_standby(false);
|
||||
return wifi_err;
|
||||
@@ -643,11 +593,10 @@ esp_err_t control_plane_light_standby_record_activity(
|
||||
4. 待机时 Codec 输出静音并关闭扬声器 PA,同时保留麦克风、AFE 和唤醒词。
|
||||
5. 释放步进电机线圈保持电流。
|
||||
6. Wi-Fi 切换为最小 Modem 省电,同时保留连接。
|
||||
7. 暂停远程日志 HTTP 上传,日志采集和落盘继续工作。
|
||||
8. 电池常规采样周期放宽到 300 秒,充电状态边沿仍及时处理。
|
||||
9. 内存监控采样放宽到 10 秒、周期报告放宽到 300 秒,分配失败仍及时处理。
|
||||
10. 支持唤醒词、按键、SW2 抽签、模型命令和语音活动快速唤醒。
|
||||
11. 唤醒后恢复正常背光、功放、Wi-Fi、日志、电池和内存监控策略。
|
||||
11. 唤醒后恢复正常背光、功放、Wi-Fi、电池和内存监控策略。
|
||||
12. 增加进入失败回滚和状态竞态保护。
|
||||
13. 将轻待机任务栈增至 4096 字节,解决已观察到的任务栈溢出。
|
||||
|
||||
@@ -682,7 +631,6 @@ esp_err_t control_plane_light_standby_record_activity(
|
||||
| 麦克风 | 保持运行,以满足唤醒词快速唤醒要求 |
|
||||
| 电机 | 待机不保持静态扭矩,机构可能被外力移动 |
|
||||
| Wi-Fi | 保持连接,但首包延迟可能增加 |
|
||||
| 远程日志 | 继续采集和落盘,服务端接收会延迟到唤醒后 |
|
||||
| 电池检测 | 普通电量更新变慢,充电状态边沿仍及时检测 |
|
||||
| 内存监控 | 普通水位报告变慢,分配失败仍及时处理 |
|
||||
| 提示音 | 真正进入待机的时间会比 5 分钟多出提示音播放时间 |
|
||||
@@ -702,6 +650,6 @@ esp_err_t control_plane_light_standby_record_activity(
|
||||
|
||||
## 10. 结论
|
||||
|
||||
本次改动已经完成当前产品约束下的主要轻待机优化:保留基础表情、唤醒词和按键响应,同时降低背光、功放、电机、Wi-Fi、远程日志、电池检测和内存监控的持续功耗。实现具备统一状态管理、真实音频完成等待、进入失败回滚和快速唤醒恢复。
|
||||
本次改动已经完成当前产品约束下的主要轻待机优化:保留基础表情、唤醒词和按键响应,同时降低背光、功放、电机、Wi-Fi、电池检测和内存监控的持续功耗。实现具备统一状态管理、真实音频完成等待、进入失败回滚和快速唤醒恢复。
|
||||
|
||||
下一步重点不是继续盲目关闭模块,而是进行真机电流和唤醒延迟测试。测试数据可以确认主要耗电来源,并判断 LCD 刷新和音频下行链路是否值得进入下一轮优化。
|
||||
|
||||
Reference in New Issue
Block a user