feat(ble): 完善BLE OTA架构并优化性能
- 实现BLE OTA数据路径分离:添加ble_ota_data.cpp处理重排序/工作线程/DATA_IN, 和ble_ota_host.cpp处理GATT/GAP/广播/主机功能 - 将滑动ACK窗口从32增大到64,实测Windows WebBT环境下固件传输速度提升约10% (从40KB/s提升到44KB/s),内存消耗约30KB重排序缓冲区 - 优化调试日志级别,将OTA相关信息从INFO调整为DBG以减少日志冗余 refactor(can): 改进CAN反馈监听机制 - 将CAN反馈任务从1Hz主动轮询模式改为被动事件监听模式, 使用SpiMaster::takeEvent()替代主动发送0xC1轮询请求 - 更新相关头文件注释说明架构变更,将"周期性轮询"改为"被动接收推送" - 修改调试日志级别,将暂停/恢复状态日志从INFO调整为DBG
This commit is contained in:
+13
-2
@@ -88,7 +88,8 @@ export function bytesToHex(bytes) {
|
||||
/** @description 转义 CSS 选择器中的特殊字符。 */
|
||||
export function cssEscape(value) {
|
||||
if (window.CSS && CSS.escape) return CSS.escape(value);
|
||||
return String(value).replace(/[^a-zA-Z0-9_-]/g, function (ch) { return '\\\\' + ch; });
|
||||
/* fallback:每个非安全字符前加单个反斜杠(CSS 转义),双引号属性值内可安全使用 */
|
||||
return String(value).replace(/[^a-zA-Z0-9_-]/g, function (ch) { return '\\' + ch; });
|
||||
}
|
||||
|
||||
/** @description 去除回车并 trim,用于 DBC 搜索等输入归一化。 */
|
||||
@@ -232,7 +233,7 @@ export function parseDbc(text) {
|
||||
signal.comment = comments.signals[String(msg.idRaw) + ':' + signal.name] || '';
|
||||
signal.enumMap = valueTables[String(msg.idRaw) + ':' + signal.name] || {};
|
||||
var dv = sigDefaults[String(msg.idRaw) + ':' + signal.name];
|
||||
signal.defaultValue = (dv != null && Number.isFinite(Number(dv))) ? dv : null;
|
||||
signal.defaultValue = (dv != null && Number.isFinite(Number(dv))) ? Number(dv) : null;
|
||||
});
|
||||
});
|
||||
|
||||
@@ -251,6 +252,16 @@ export function findSignal(message, signalName) {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 按 key 在当前合并 DBC 中查找报文(O(1),走 messageMap)。
|
||||
* messageMap 由 rebuildMergedDbc() 维护,key 格式与 message.key / state.selectedMessageKey 一致。
|
||||
* 无 DBC 或 key 不存在时返回 null。
|
||||
*/
|
||||
export function findMessageByKey(key) {
|
||||
if (!state.dbc || !state.dbc.messageMap || !key) return null;
|
||||
return state.dbc.messageMap[key] || null;
|
||||
}
|
||||
|
||||
/** @description 解析 SG_ 行的 multiplex token(M / mN / 空)。 */
|
||||
export function parseMultiplexToken(token) {
|
||||
if (!token) return { role: null, value: null };
|
||||
|
||||
Reference in New Issue
Block a user