2025年10月4日
考虑到AGX系统需要45秒的启动时间,添加了启动延时配置避免过早连接尝试:
- 新配置参数:
startup_delay_ms- AGX启动延时时间(毫秒) - 默认值: 45000ms (45秒)
- 功能: 监控任务启动后等待指定时间再尝试连接AGX服务器
- 日志提示: 在等待期间显示启动延时进度信息
agx_monitor_config_t config;
agx_monitor_get_default_config(&config);
config.startup_delay_ms = 45000; // 45秒启动延时
agx_monitor_init(&config);为了完全消除控制台干扰,我们将几乎所有运行时日志从INFO/WARN级别改为DEBUG级别:
- 健康检查日志 (每30秒输出的状态信息)
- 连接状态详细信息 (服务器地址、连接尝试次数等)
- WebSocket连接启动信息
- Socket.IO响应接收信息
- 重试等待时间信息 (快速重试和固定间隔模式)
- 异常数据检测警告 (包括字节详情和重连触发)
- 连接尝试和重连日志 (初始连接、重连尝试等)
- WebSocket断开连接信息
- Socket.IO消息发送和等待状态
- 错误设置警告信息
- 连接失败详情
- AGX监控初始化和配置信息
- 连接成功/失败的关键状态变化
- Socket.IO连接建立
- 错误和警告信息
将原来的7个独立命令整合为一个主命令下的子命令结构:
agx_status # 显示状态
agx_start # 启动监控
agx_stop # 停止监控
agx_data # 显示数据
agx_config # 显示配置
agx_stats # 显示统计
agx_debug # 调试命令agx_monitor <subcommand> [args]agx_monitor status- 显示AGX监控连接状态和统计信息agx_monitor start- 启动AGX监控agx_monitor stop- 停止AGX监控agx_monitor data- 显示最新的AGX系统数据agx_monitor config- 显示AGX监控配置agx_monitor stats- 显示详细的AGX监控统计信息agx_monitor debug [verbose|quiet|normal|reconnect]- 调试命令
- 运行
agx_monitor不带参数可查看所有可用子命令 - 每个子命令的功能与之前的独立命令完全相同
- 烧录更新后的固件
- 观察启动日志,应该看到:
- "AGX Startup delay: 45000 ms (45.0 seconds)"
- "Waiting 45000 ms for AGX system to boot up..."
- 在45秒后显示 "AGX startup delay completed, ready to connect"
- 使用
agx_monitor config命令验证配置显示包含启动延时信息
- 烧录更新后的固件
- 观察控制台输出,应该发现:
- 异常数据检测信息不再频繁显示
- 连接重试尝试不再打断控制台操作
- WebSocket连接状态详情不再输出
- Socket.IO连接过程日志隐藏
- 控制台基本保持安静,只显示真正重要的事件
# 查看帮助
agx_monitor
# 测试各个子命令
agx_monitor status
agx_monitor data
agx_monitor config
agx_monitor stats
agx_monitor debug verbose- 使用ESP-IDF的日志级别系统
- 可以在运行时通过
esp_log_level_set("agx_monitor", ESP_LOG_DEBUG)启用调试日志 - 默认情况下只显示INFO级别及以上的日志
- 从注册7个独立命令减少到注册1个主命令
- 减少了内存占用和命令表复杂度
- 保持了所有原有功能的完整性
注意: 这次更新不兼容旧的独立命令。如果有自动化脚本或文档使用了旧的命令格式,需要更新为新的子命令格式。
- 智能启动同步 - 避免在AGX系统未准备好时的无效连接尝试
- 极度清洁的控制台体验 - 减少了约95%的调试信息输出,基本消除干扰
- 更好的命令组织 - 相关功能归类在同一个主命令下
- 更容易使用 -
agx_monitor提供统一的帮助入口 - 减少命名冲突 - 避免在控制台中与其他组件的命令冲突
✅ 编译成功
✅ 二进制大小进一步优化(减少到 0x103fe0 bytes,约1040KB)
✅ 无编译错误(仅有警告,不影响功能)
✅ 日志清理完成,控制台干扰基本消除