# 波形预览功能技术文档 ## 功能概述 在对话界面中显示 VCD 波形文件的预览卡片,用户可以查看前几个信号的真实波形,并通过"展开查看"按钮打开完整的波形查看器。 ## 功能流程 ``` 用户输入"生成VCD"命令 ↓ 系统执行 iverilog 编译和仿真 ↓ 生成 VCD 文件 ↓ 在对话界面显示波形预览卡片 ├─ 显示真实的波形图(前3个信号) ├─ 显示信号名称和波形 └─ "展开查看"按钮 ↓ 点击"展开查看"按钮 ↓ 打开完整的 VCDViewerPanel 波形查看器 ``` ## 文件结构 ### 1. `src/views/waveformPreviewContent.ts` **功能:** 波形预览组件的独立模块 **导出函数:** - `getWaveformPreviewContent()` - 返回波形预览组件的 CSS 样式 - `getWaveformPreviewScript()` - 返回波形预览组件的 JavaScript 代码 **主要功能:** - 创建波形预览卡片的 HTML 结构 - 从 VCD 文件中提取真实信号数据 - 使用 SVG 绘制波形图 - 单比特信号:绘制数字波形(高/低电平) - 多比特信号:绘制总线波形(梯形) - 处理"展开查看"按钮点击事件 **关键函数:** ```javascript createWaveformPreview(vcdFilePath, fileName) - 创建波形预览卡片的 DOM 结构 - 包含头部(标题 + 展开按钮)和内容区域 loadMiniWaveform(containerId, vcdFilePath, loadingDiv) - 请求后端获取 VCD 文件信息 renderWaveformInfo(containerId, vcdInfo) - 接收 VCD 信息并渲染波形 drawRealWaveform(signals) - 根据真实信号数据绘制 SVG 波形图 - 支持单比特和多比特信号 - 使用不同颜色区分信号 openFullWaveform(vcdFilePath) - 发送消息打开完整波形查看器 addWaveformPreviewToMessage(messageDiv, vcdFilePath, fileName) - 将波形预览组件添加到消息中 ``` --- ### 2. `src/views/webviewContent.ts` **功能:** 主 WebView 页面,集成波形预览组件 **修改内容:** - 导入波形预览组件的样式和脚本 - 在 `