feat(ota): 实现GD32 OTA包间背压机制,优化传输节奏控制
移除固定的包间延迟配置 `OTA_PACKET_DELAY_MS`,采用基于SPI Link v2 CREDIT背压的动态节奏控制,在SpiMaster中通过remoteCredit==0时wait/拒发 实现流量控制,提高OTA传输稳定性。 refactor(stack): 统一任务栈大小配置并添加CPU统计功能 - 在app_config.h中集中定义所有任务栈大小常量,基于实测水位优化分配 - 新增monitor/cpu_stats.cpp组件,提供1Hz FreeRTOS CPU占用采样 - 更新main.cpp中的任务创建使用新的栈大小常量 - 调整health_monitor和ota_relay等任务的栈分配 perf(ota): 改进ESP32和GD32 OTA分区预擦策略 - ESP32 OTA从边写边擦改为整分区预擦模式,避免写入时的扇区擦除阻塞 - GD32 OTA在prepare阶段进行整分区预擦,提升后续写入吞吐量 - 优化OTA协调器状态管理,修复FINALIZING状态残留问题 fix(log): 改进UDP日志发送的堆内存管理 - 当堆内存不足时记录UDP发送跳过的告警信息到ring buffer - 降低UDP发送跳过的内存阈值从10KB到6KB - 降低日志排水最小内存阈值从8KB到4KB docs(readme): 更新OTA配置参数文档说明 移除已废弃的OTA_PACKET_DELAY_MS参数,更新包间节奏控制说明为 基于CREDIT背压机制的描述。
This commit is contained in:
+1
-2
@@ -1,8 +1,7 @@
|
||||
/**
|
||||
* dbc.js - DBC 解析器 + 共享状态/元素缓存/基础工具
|
||||
*
|
||||
* 从 tools/can.js 拆分。对应原 can.js 约 4~21 行(state/el)、78~104 行(基础工具)、
|
||||
* 178~335 行(DBC 解析)、830~833 行(cssEscape)、1335~1352 行(readDbcText)。
|
||||
* 包含:共享 state/el、基础工具、DBC 解析、cssEscape、readDbcText。
|
||||
*
|
||||
* 本模块是 can 子系统的基础层,不依赖其他 can 子模块;state/el 在此导出,
|
||||
* 供 messages/signals/send/feedback 共享(ES Module 的 live binding 保证引用一致)。
|
||||
|
||||
@@ -1,17 +1,8 @@
|
||||
/**
|
||||
* feedback.js - 1Hz 反馈轮询(预留模块)
|
||||
*
|
||||
* ⚠️ 说明:原 tools/can.js(1526 行)中不存在 1Hz 反馈轮询 / ID 快照表渲染相关代码。
|
||||
* 这些功能实际位于 tools/can_monitor.js(CAN 监控页面),操作的是 can_monitor.html
|
||||
* 的 DOM 元素(fb0State / fb0Rx / idsnapBody 等),与 can.html 页面的元素体系不同,
|
||||
* 因此无法直接迁移。
|
||||
*
|
||||
* can.js 中与"连接状态反馈"相关的代码为 setConnectionState / testConnection
|
||||
* (一次性 GET /system/status),属于入口文件(js/can.js)的 init/cacheElements/bindEvents
|
||||
* 编排范畴,不在本子模块内。
|
||||
*
|
||||
* 本模块按任务要求 import common/connection.js,供入口文件在需要时引入连接管理能力。
|
||||
* 若后续 can 页面需要增加 1Hz 轮询 /can/feedback 或 ID 快照功能,可在此模块实现。
|
||||
* 重新导出 common/connection.js 的连接管理函数,供 can 入口文件按需使用。
|
||||
* 1Hz 轮询 /can/feedback 或 ID 快照功能可在本模块按需实现。
|
||||
*/
|
||||
import { updateConnectionUi, updateHealthUi, updateHeapAndTaskStatusUi, testConnection, refreshSystemStatusNow } from '../common/connection.js';
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
/**
|
||||
* messages.js - 报文列表管理(渲染、过滤、节点过滤、批量 UI)
|
||||
*
|
||||
* 从 tools/can.js 拆分。对应原 can.js 约 337~686 行(DBC 文件信息、报文过滤、
|
||||
* 节点过滤面板、报文列表渲染、报文选择/展开、批量 UI)。
|
||||
* 包含:DBC 文件信息、报文过滤、节点过滤面板、报文列表渲染、报文选择/展开、批量 UI。
|
||||
*
|
||||
* 依赖:dbc.js(state/el/padHex/normalizeWhitespace/cssEscape)、
|
||||
* common/utils.js(escapeHtml/formatBytes)、
|
||||
|
||||
@@ -1,17 +1,16 @@
|
||||
/**
|
||||
* send.js - CAN 帧构建与发送(DBC 报文 / 原始帧 / 批量发送 / 发送历史)
|
||||
*
|
||||
* 从 tools/can.js 拆分。对应原 can.js 约 1030~1333 行(sendCanRequest、响应框、
|
||||
* 历史、批量/选中/手动发送、手动帧校验/重置/载入预览)及 1491~1523 行
|
||||
* (CAN_SEND_ERR_DESC / GD32_ERR_DESC / buildSendResponseText)。
|
||||
* 包含:sendCanRequest、响应框、历史、批量/选中/手动发送、
|
||||
* 手动帧校验/重置/载入预览、CAN_SEND_ERR_DESC / GD32_ERR_DESC / buildSendResponseText。
|
||||
*
|
||||
* 依赖:dbc.js(state/el/getBaseUrl/padHex/bytesToHex/parseNumericId)、
|
||||
* common/toast.js(showToast)、common/utils.js(escapeHtml)、
|
||||
* messages.js(updateBatchUi)、signals.js(ensureMessageDefaults/getSignalValueMap/
|
||||
* getSelectedMessage/updateEncodedPreview/encodeMessageData)。
|
||||
*
|
||||
* 注意:formatTime 保留 can.js 本地实现(HH:MM:SS,不含毫秒),与 common/utils.js
|
||||
* 的 formatTime(含毫秒)不同,以保证发送历史时间戳输出与原版完全一致。
|
||||
* 注意:formatTime 保留本地实现(HH:MM:SS,不含毫秒),与 common/utils.js
|
||||
* 的 formatTime(含毫秒)不同,以保证发送历史时间戳输出格式一致。
|
||||
*/
|
||||
import { state, el, getBaseUrl, padHex, bytesToHex, parseNumericId } from './dbc.js';
|
||||
import { escapeHtml as sanitizeHtml } from '../common/utils.js';
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
* signals.js - 信号编辑器渲染 + 信号编解码(raw ↔ physical)
|
||||
*
|
||||
* 从 tools/can.js 拆分。对应原 can.js 约 629~1028 行(信号行渲染、信号值存取、
|
||||
* 编码写入、浮点/整数/Motorola/Intel 位操作)及 761 行的 renderSelectedMessage shim。
|
||||
* 包含:信号行渲染、信号值存取、编码写入、浮点/整数/Motorola/Intel 位操作、
|
||||
* renderSelectedMessage shim。
|
||||
*
|
||||
* 依赖:dbc.js(state/el/padHex/bytesToHex/cssEscape/findSignal)、common/utils.js(escapeHtml)。
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user