当前位置: 首页 > news >正文

Vue3 + TypeScript 实现 CAN 报文实时回放与合并显示

在汽车电子、工业自动化和智能硬件开发中,CAN 总线数据分析是工程师日常的核心任务。传统日志分析工具功能单一,难以进行动态对比。本文将分享一套 基于 Vue3 + TypeScript + Ant Design Vue 的高性能 CAN 数据回放方案,支持:

  • 上传 .asc.txt 格式的 CAN 日志文件

  • 滚动显示或按帧 ID 合并显示

  • 高亮变化字节,直观观察数据差异

  • 表格分页、排序,并可暂停/继续回放

这套方案不仅是日志展示,更是 动态可视化调试工具


1. 场景与需求分析

实际开发中,我们常遇到以下场景:

  1. 上传车辆或工业设备的 ASC 文件进行数据回放

  2. 按帧 ID 合并显示,便于观察数据变化

  3. 动态高亮变化字节,用于故障分析

  4. 表格支持分页和排序,快速定位特定帧

可以看出,该方案的核心目标是 高效、可视化、易操作的回放工具


2. 数据模型设计

首先定义 CAN 帧数据结构:

export interface AscFrame {timestamp: number;      // 时间戳channel: string;        // 通道号id: string;             // 帧 IDdirection: string;      // 发送/接收type: string;           // 数据标识符dlc: number;            // 数据长度(DLC)data: string[];         // 数据字节数组raw: string;            // 原始 ASC 行key: string;            // 表格唯一 key
}

data 使用数组形式存储每个字节,便于逐字节高亮显示变化。


3. ASC 文件解析

ASC 文件每行类似:

08:43:36.882812 1 Rx 0x18F0F102 d 8 00 00 00 05 00 00 00 80

使用正则解析为 AscFrame 对象:

export function parseAsc(content: string): AscFrame[] {// 先尝试解析为 JSON 错误信息try {const maybeJson = JSON.parse(content);if (maybeJson &&typeof maybeJson === 'object' &&'errorCode' in maybeJson &&'errorMessage' in maybeJson) {message.error(`文件内容异常,显示为:${maybeJson.errorMessage}` || '未知错误');return [];}} catch (e) {// 不是 JSON,继续往下解析为 ASC}const lines = content.spli
http://www.dtcms.com/a/491570.html

相关文章:

  • seo网站推广有哪些网站维护与优化教程
  • LeetCode 2598. 执行操作后的最大 MEX
  • 机器学习,深度学习,神经网络,Transformer的关系
  • 赣州市赣县区建设局网站wordpress 主题导出
  • 广州知名网站建设性价比高百度企业官网认证
  • Vue 前端面试题(含答案)大全 v2025
  • 智能化与绿色化:2025年巧克力加工设备市场发展趋势报告
  • 经营网站备案信息自己做网站 怎么赚钱
  • CLIP介绍
  • 网站文件夹结构wordpress 入侵
  • neo4j安装
  • C语言基础数组作业(冒泡算法)
  • 【芯片验证日志的艺术:如何让打印信息成为Debug的利器?】
  • 基于MCU中RTT Viwer打印,从移植到测试所遇到的问题全部解决
  • 基于mis的客户关系管理系统的设计与实现(源码+论文+部署+安装)
  • 上海定制建设网站appcan wordpress
  • php做网站浏览量深圳市宝安区区号
  • 《爬虫进阶实战:突破反爬屏障,玩转动态数据与代理策略》
  • 公众号微网站开发展览公司网站建设方案
  • 【面板数据】地市国家级绿色工业园区名单数据集(2016-2024年)
  • 做网站找哪家公司最好网站优化加盟
  • 广东省公路建设公司官方网站调查问卷wordpress
  • 近半数地球同步卫星传输未加密数据
  • CSP 配置指南:SpringBoot/Express 实操 + 多域名适配,防 XSS 攻击超简单
  • 不同形态牙刮匙的适应症与使用技巧
  • Linux中处理CPU离线时清理CPU缓存page_alloc_init函数的实现
  • 单片机开发工具篇:(一)32单片机开发需要的软件和硬件
  • 旅游网站建设网足球比分网站怎么建设
  • 甘肃省建设工程安全质量监督管理局网站官网北京通州做网站
  • 数字隔离器,如何隔绝高、低压回路间的电气隐患?