46 Commits
  • fix: 修复仿真交互锁顺序并隔离会话历史
    - 将网页输入和外设操作的仿真调度移到状态锁外,覆盖复位、退订和断线释放路径
    - 通过真实 GPIO 边沿缓存送丝使能电平,移除快照及激光和波形复位中的反向 GPIO 读取
    - 为每个 Renode 会话复制用户配置并设置独立的 Monitor 历史文件,保留原配置及其他设置
    - 添加时钟锁和 GPIO 锁回归探针、会话配置与双实例隔离用例,并补充运行说明
  • test: 补齐LWS调用时序与外设联动验证
    - 增加出光状态轮询、收尾重开、启动阶段取消和报警后关闭保持场景
    - 为送丝使能记录真实PF2累计边沿,捕捉快照之间的短暂重新开启
    - 按LWS读取方式核对数字焊枪参数、报警全局位及外设断电恢复
    - 在拒绝错误从站响应前消费完整已知帧,避免残余CRC污染恢复查询
    - 为依赖写入产物的重启阶段增加清单校验和未执行状态
    - 补充测试工具反例自检、运行说明和协议测试记录
  • feat!: 接入可选送丝机与双型号焊枪仿真
    - 增加送丝机及两种焊枪的启动选择,未启用时保留原有简化外设
    - 实现外设串口协议、工艺缓存与导入、参数保存、报警输入和独立供电
    - 提供外设 WebSocket 状态及控制接口,按连接管理按钮持有和碰撞故障释放
    - 添加外设卡片、静态光斑、监控输入与故障操作,统一布局并保存展开状态
    - 添加外设协议与固件联动用例,以及点射收尾期间再次出光的回执回归用例
    - 整理协议边界及测试条目,记录旧款焊枪驱动和电源报警未被固件转发的现状
    - BREAKING CHANGE: 自定义平台实例化 BoardWebSocketServer 时需提供 ExternalDevices 依赖
  • fix!: 对齐真实板卡回执并整理八类协议测试
    - 保留噪声和不完整请求,经 UART 交由固件生成回执,并隔离复位和断连后的旧片段
    - 按实际 LWS 调用校准 IO、六轴、项目及工艺参数的读写路径和独立断言
    - 将测试配置快照统一为完整的39项IO,并核对恢复和跨进程保留的数据
    - 将升级目标版本及固件摘要绑定到场景,安装未确认时阻止依赖启动检查
    - 增加真实端只读通信入口,删除持续压测阶段及其命令参数
    - 整理八类中文测试条目,区分设计要求、失败记录与待验证范围
    - BREAKING CHANGE: 升级测试须显式传入 --upgrade-version;移除 --stress-seconds;测试备份仅接受格式2,不再接受旧36项格式1;供电工况范围须显式使用 --supply-range 配置
  • fix: 按协议区分送丝运行许可与动作状态
    - 送丝机模型按运行许可、PF2 使能和独立手动开关判定动作,补齐动作寄存器单写行为
    - WebSocket 送丝状态增加运行许可与手动方向字段
    - 暂停和停止用例在清理前检查实际送丝使能与外设状态,项目执行夹具明确设置控制模式
    - 系统重启检查排除不要求自动持久化的 A832,升级场景增加复位后的供电检查
    - 删除独立项目下载脚本和阶段性测试报告,将已确认设计要求写入协议说明
  • test: 补全时序与持久化场景的独立验证
    - 通过实际GPIO边沿时间测量气光延时和有限出光时长
    - 将停止外设联动从兜底清理中分离并记录未验证阶段
    - 按上位机有效范围和离散选项修正工艺与六轴配置样例
    - 为六轴及通用IO设置自定义持久化标记并独立核对重启结果
    - 核对临时Flash的实际擦除、首包内容和未写尾部
    - 在最终清理成功后计算覆盖状态并整理测试范围与问题记录
  • test: 添加通信恢复与持续运行测试
    - 覆盖扩展长帧分段传输及错误帧后的正常查询
    - 增加断线重连持续 IO 循环和重复进程启动的数据检查
    - 集中测试组定义并校验场景时间参数的有限取值
    - 使用脉冲驱动限位夹具并区分运动完成与单帧通信截止时间
    - 修正焊枪样例的保留字段位置与类型前置条件
    - 补充通信恢复边界与失败观察说明
  • test: 添加固件升级与中断恢复场景
    - 按 updater 编解码升级帧并记录协议切换时的残留输入
    - 覆盖程序模式切换授权查询及固件分包传输结束和重启
    - 比对持久化应用区摘要并验证升级后的配置恢复
    - 使用独立进程验证首包传输中断后的 Factory 启动和完整重刷
    - 保留错误数据 CRC 被成功回执接受的失败记录
  • test: 添加系统配置与数据恢复场景
    - 验证应用参数逐项写入隔离和焊枪类型选择
    - 覆盖用户默认参数保存恢复与工厂重置重复性
    - 添加带摘要和身份校验的测试配置备份及完整恢复
    - 验证活动配置与用户默认参数在进程重启后的保留情况
    - 记录回原点工位参数相互影响和出光时长重启变化
  • test: 添加工艺参数与加工外设集成测试
    - 覆盖普通特殊空走工艺槽位的参数读写和工程保存后重启回读
    - 增加焊枪参数块与送丝机参数及实际方向速度检查
    - 验证加工暂停恢复停止与激光气阀送丝输出的联动
    - 保留参数写入不一致和出光回执缺失的原始失败证据
    - 复用隔离仿真实例的结果聚合与清理机制
  • feat: 添加工程与轨迹协议系统测试
    - 增加工程目录、增删覆盖、完整头部与各类轨迹的下载回读场景
    - 覆盖几何执行、输入等待、输出控制、点焊附属参数与六工位子程序
    - 为虚拟串口和 TCP 增加共享镜像副本的进程重启持久化验证
    - 保留板卡异常回执及独立用例失败,复用运动脉冲排空检查
    - 补充测试使用说明和协议差异的请求及期望结果
  • feat: 添加六轴运动控制系统测试
    - 增加六轴步进、定位、连续运动、在线变速和停止场景
    - 增加机械参数、方向极性、坐标操作及手轮命令格式验证
    - 根据实际 PWM 和 DIR 边沿驱动限位夹具并验证六轴回原点
    - 增加运动中硬限位、软限位和驱动报警的保护场景
    - 增加轨迹自然结束及加工暂停继续停止的生命周期场景
    - 扩展独立串口和 TCP 测试入口并将用例错误统一判定为失败
    - 补充运动测试范围、执行命令和协议清单说明
  • feat: 完成数字 IO 与外部信号仿真测试
    - 增加六轴输入、输出、触发模式和报警判定的协议场景
    - 增加限位回原点、激光、气阀、送丝及外控加工闭环
    - 使用独立串口和 TCP 实例及 Flash 副本执行完整场景并记录恢复结果
    - 按实际片选信号结束 SPI Flash 事务以支持短页写入
    - 限制测试请求为上位机使用的协议形状并记录通信证据
  • feat: 添加通用输出开关协议测试
    - 按 LWS 实际调用逐路切换十路输出并核对开关状态和电平反馈
    - 检查其他输出与有效电平配置保持不变,命令异常或中断后关闭输出并核对恢复状态
    - 增加输出测试命令、恢复记录与报告,区分上电初始读数和命令执行后的反馈
    - 恢复失败时停止后续端口测试
  • feat: 按 LWS 实际调用增加通用 IO 配置测试
    - 增加八路输入和十路输出有效电平的逐项切换、回读与原值恢复流程
    - 增加写入前恢复记录及异常后重新连接核对恢复的处理
    - 按 LWS 调用限制读取地址和数量及配置写入地址,监控统一使用完整块读取
    - 为连续协议交互保留可配置的五毫秒帧间隔
    - 将额外子区读取差异记录为支持范围未确认的观察,移除正常测试中的相关断言
  • feat: 增加板卡监控协议对比测试并补充仿真供电
    - 增加支持指定串口和 RTU-over-TCP 端点的基础信息与监控协议测试
    - 记录原始收发帧、解析结果和耗时,并区分协议检查与物理测量验证
    - 为仿真 ADC 配置供电与空载电流基准,增加已供电控制器的电压范围检查
    - 整理协议分类、寄存器声明及源码引用,清除文档和报告中的本地绝对路径
  • feat: 接入六轴报警与方向显示并保存页面展开状态
    - 增加六轴 ALM 输入和 DIR 输出订阅,按固件引脚映射读写实际 GPIO
    - 在右侧轴面板分区显示 ALM 自锁开关、DIR 方向电平和 PWM 波形,波形暂停不影响实时信号
    - 将模块展开状态和当前选中轴面板保存到浏览器本地,重新打开时恢复布局
    - 校验本地布局缓存并在缓存损坏或存储不可用时回退到默认状态
    - 补充轴口信号的协议、引脚映射和电平显示说明
  • fix: 修正外部 Flash 软件复位指令与授权状态
    - 使用标准 0x66 和 0x99 序列执行软件复位,移除错误的 0xFE 复位处理
    - 在其他命令介入或机器复位时清除复位授权,防止旧授权继续生效
    - 软件复位清除写使能并保留已有数据和存储的状态寄存器配置
  • fix: 修复外设传输与退出持久化并拆分运行脚本
    - 修复 DMA 请求电平追踪、接收 FIFO 打包和禁用时的数据提交,更新 USART 的接收 DMA 请求
    - 保留定时器复位前的 RCC 输入频率
    - 正常退出时保存内部 Flash 已完成编程数据,过滤当前未完成编程字
    - 使用独立进程组请求 Renode 正常退出,退出未完成时保留镜像锁和实例记录
    - 将 controller.py 拆分为环境配置、Flash 镜像、进程管理和仿真启动模块,保留原命令入口
    - 为 scripts 下的 Python 文件补充职责、生命周期和异常边界注释,并更新退出与持久化说明
  • fix: 修复外设复位与输入交互并纠正激光 PWM 显示
    - ADC 复位时释放中断线,按外设数据宽度统一 DMA 剩余计数和传输长度
    - 按 H723 寄存器布局处理 DAC 软件触发,使用 CEN 和 CCxE 门控编码器及输入捕获
    - 外部 Flash 复位时保存短页已接收数据并清除半事务,阻止后续命令污染旧页
    - 使用会话完成标记和 WebSocket 端口校验识别启动失败,避免误报固件运行
    - 开关持有期间隔离相机导航,按请求和指针归属撤销被拒绝的按压
    - 外控短触持有期间禁止切换模式,覆盖取消、失焦及卸载的释放路径
    - 修正 PF6 低有效 PWM 灯显示,保留原始电平和 PA1 使能判断并更新相关说明
  • perf: 限制通信队列并减少波形与持久化开销
    - 将串口桥接改为单客户端 TCP 服务,使用有界请求和响应队列并在满载时施加背压
    - 保留软件复位后的 TCP 连接,清理旧请求并隔离已排队的旧会话响应
    - 网页各主题共用 WebSocket,按主题管理输入等待状态和退订释放行为
    - 为未知输入输出状态和输入设置失败提供反馈,修正波形拖动的指针归属
    - 波形采用不可变数据块和前缀计数,仅转换可见范围并设置历史容量上限
    - 内部 Flash 直接比较映射内存,仅复制变化页并保留即时持久化
    - 移除无用定义和样式,补充通信时序、背压及波形快照边界说明
  • fix: 修正外设仿真和短触输入行为
    - 修复 UART 配置保护回调空引用、复位状态残留和 OVER8 位检查
    - 修正触发定时器停止、门控比较同步和 PWM 输出极性
    - 修正 SPI NOR 编程、擦除对齐、写使能状态和事务边界处理
    - 按真实指针归属释放短触输入,分离连线更新与 GPU 资源销毁
    - 将运行配置延后解析,使停止和帮助命令不受无关配置错误影响
  • feat: 接入信号二气阀和串口送丝机仿真
    - 增加 UART8 送丝机外设,处理连接探测、参数读写及送丝和抽丝启停命令
    - 补接 UART8 接收 DMA 请求,将送丝机方向、速度和使能状态通过 WebSocket 发布
    - 在信号二区域增加气阀状态灯和送丝机方向控件,支持展开、收起及区域聚焦
    - 复用输出订阅与指示控件,补充接口映射、协议及仿真范围说明
  • feat: 接入激光器状态并精简信号接口控件
    - 新增激光器状态与报警主题,接入 PA1 使能、PF6 PWM 和 PC0 报警信号
    - 激光器区域支持独立展开,提供报警开关和只读使能、PWM 指示灯
    - 将 PWM 正负端配对显示,信号 1 仅保留气压和水冷报警控件
    - 移除未使用的开关端口样式,修正指示灯纹理释放并减少重复状态刷新
    - 同步外设加载脚本、自检清单和 WebSocket 接口文档
  • feat: 接入板卡外设控件与信号接口
    - 将通用输入、外控和通用输出改为画布内独立展开的控件,并接入 Renode 状态
    - 增加六轴限位和信号 1 的 GPIO 映射及 WebSocket 通信主题
    - 增加限位与报警开关、输出指示灯和三色灯灯位,并连接对应物理端子
    - 统一控件距板边和组内间距,修正缩放聚焦与模式按钮锚点
    - 补充限位及信号 1 协议说明和 Web 布局约定
  • feat: 接入外控开始暂停停止按钮
    - 增加 board.controls 主题,将三个外控端子映射到 PE15、PE14 和 PE13
    - 复用输入电平同步与连接持有逻辑,支持保持电平和短触断连释放
    - 点击板卡外控接口展开三色按钮,支持独立切换常开与短触模式并保存到浏览器缓存
    - 补充外控协议、引脚映射和固件使能要求说明
  • feat: 增加板卡缩放并调整文字与输入按钮显示
    - 增加滚轮缩放、拖动平移、倍率显示和整板复位操作
    - 将文字与底层装饰分层绘制,提高接口名称对比度和文字纹理分辨率
    - 将板卡版本标记更新为20250911
    - 将输入模式名称改为自锁和点动,大按钮统一使用电源符号
  • style: 统一网页代码格式并配置自动格式化
    - 添加固定版本 Prettier 及统一的缩进、换行和引号配置
    - 提供 format 和 format:check 命令,排除依赖、构建产物及锁文件
    - 配置网页工作区 VS Code 保存时格式化和扩展推荐
    - 统一 TS、TSX、CSS 和配置文件排版,展开紧凑语句及组件结构
    - 在网页开发规范与说明中记录格式化流程
  • feat!: 添加通用输入输出交互并修复项目下载
    - 为八路通用输入提供常触与短触控制,并在松开、失焦和断线时释放短触状态
    - 在浏览器本地保存各路输入触发模式,移除等待确认时按钮整体闪烁的样式
    - 订阅十路真实 GPIO 输出,以无滚动的圆形指示灯面板显示逻辑电平
    - 精简面板连接提示和顶栏重复文字,统一输入输出卡片布局
    - 串口桥按寄存器数量组齐扩展写入请求,避免截断项目基本信息
    - 保留新建项目、下载直线和完整读回的隔离回归测试,覆盖普通与快速串口时序
    - BREAKING CHANGE: BoardWebSocketServer 构造新增 gpioG 参数,自定义 REPL 需补充 GPIOG 绑定
  • feat!: 添加六轴实时波形调试并修正采样时序
    - 通过独立 WebSocket 主题采集六轴真实脉冲与方向边沿并发布计数和周期信息
    - 网页使用 uPlot 显示波形,支持十秒历史、暂停、缩放、清空及游标区间测量
    - 分屏时竖向显示板卡,切换轴和重新打开面板时保留所选时间窗口
    - ADC 常规转换按 RCC 时钟、采样周期和分辨率推进,并在停止和禁用时取消转换
    - 修正向上计数定时器的 ARR 周期边界及 PWM 初始电平和零满占空比行为
    - 补充六轴引脚映射、数字时序边界及下一阶段命令关联计划
    - BREAKING CHANGE: BoardWebSocketServer 构造新增 GPIO A 至 F 参数,自定义 REPL 需按项目平台定义补齐端口绑定
  • feat!: 持久化内部 Flash 并添加镜像清理命令
    - 保存内部 Flash 的程序和启动标记,在编程结束、擦除及复位时将变化页写入本地镜像
    - 首次启动从 ELF 初始化内部镜像,后续启动恢复镜像并由 Factory 选择运行版本
    - 增加 H723_INTERNAL_FLASH_IMAGE 配置和内部镜像独占锁
    - 增加 just clean flash1、flash2 及默认全部清理,分别处理内部和外部 Flash 镜像
    - 清理前取得全部目标镜像锁,保留固件、OTA 备份、日志及本地配置
    - 更新持久化行为、镜像路径和清理命令说明
    - BREAKING CHANGE: 已存在内部镜像时启动程序以镜像为准,更换 ELF 后需执行 just clean flash1 才会重新初始化内部 Flash
  • docs: 明确快速串口模式的配置与时序限制
    - 说明 H723_FAST_SERIAL 默认关闭,可通过 .env 或命令行启用
    - 补充普通与快速模式的启动示例及命令行覆盖方式
    - 说明快速模式缩短传输等待,不适用于串口耗时、吞吐量及超时验证
    - 在命令行帮助中标明快速串口默认关闭
  • feat!: 添加快速串口仿真并精简运行代码
    - 增加可选快速串口模式,缩短虚拟串口和 UART 接收耗时并保留 DMA、组帧与固件回执
    - 增加 just stop 和虚拟串口归属记录,支持正常退出及残留端口清理
    - 修正 PowerShell 脚本编码,保留升级大帧传输所需的驱动节流
    - 补充 Flash 编程并行度寄存器读写,避免固件升级产生未处理位警告
    - 修正 Monitor 运行错误处理及 UART 接收队列访问的锁保护
    - 删除测试目录、专用客户端与测试运行分支,清理 Web 未引用资源和依赖
    - 更新快速串口配置及启动、退出说明
    - BREAKING CHANGE: 移除 just test 及其测试选项,项目仅保留运行和环境管理命令
  • fix: 消除固件升级时的 Flash 清错位警告
    - 为两个 Flash Bank 接受写保护及选通错误标志的清除写入,保留原生编程、擦除和其他错误处理
    - 将板卡平台和环境自检接入扩展 Flash 控制器模型
    - 在外设集成检查中覆盖双 Bank 清错掩码、错误状态保持和擦除完成标志
    - 注明虚拟串口保留驱动限速以防止大升级帧截断的原因
  • feat: 通过 Renode WebSocket 同步板卡指示灯
    - 在 Renode 进程内提供指示灯状态订阅、快照和复位事件,并隔离慢客户端的网络收发
    - 将运行灯接入 PB5,电源灯随实例连接点亮,故障灯保留未映射状态
    - 网页直接订阅灯状态,断线后熄灭并在重连时重新获取快照
    - 增加 WebSocket 端口配置、协议文档和订阅生命周期集成检查
  • refactor: 将 Renode 平台文件归入 platforms 目录
    - 移动板卡启动脚本和 STM32H723 平台描述文件
    - 调整外设加载和默认固件的相对路径
    - 更新启动、环境检查及集成测试中的平台路径
  • feat: 添加板卡 Web 展示与端子交互
    - 使用 Bun、TypeScript、Tailwind 和 shadcn 搭建 Web 项目
    - 使用 Three.js 和 React Three Fiber 绘制裸 PCB、端子焊盘及丝印
    - 整理接口引脚参数与物理布局,关联端子和引脚的悬停气泡
    - 添加端口描边、引脚高亮和点选反馈,按窗口宽高自动适配整板
    - 添加右上角明暗模式切换并保存主题选择
    - 增加 Web 专属开发约束和启动说明,忽略依赖与构建产物
  • refactor!: 规范仿真项目结构与本地配置
    - 统一板卡平台、启动脚本和外设模型文件命名
    - 增加 .env 配置与示例,集中管理固件、Flash、端口和调试选项
    - 拆分单元测试与集成测试,抽离 Modbus 传输和 Renode Monitor 工具
    - 统一测试入口并输出 JSON 报告,补充配置优先级验证
    - 将默认固件路径调整至 .runtime/firmware,并忽略本地配置文件
    - 将 README 改为中文,保留启动、连接、配置与测试说明
    - BREAKING CHANGE: 原启动文件和 Python 入口已重命名,直接调用需更新路径;固件选择改为读取 .env 中的 H723_ELF,旧配置需通过 just elf 重新设置
  • fix: 修复板卡仿真的串口升级和软件复位
    - 使用项目管理的虚拟串口桥接,替代 HW VSP3 服务转发
    - 完整组装板卡请求并保留串口空闲间隔,避免 TCP 分段导致接收异常
    - 软件复位从 Factory 启动并保留已写入的 B 区固件
    - 添加请求分段、连续请求和软件复位的回归检查
    - BREAKING CHANGE: --usb 默认创建 COM12,上位机需调整连接端口,也可通过 --com 指定其他未占用端口
  • fix: 补全 RCC 时钟配置与定时器内部触发连接
    - 补充 PLL 小数分频锁存和运行中配置保护,同步传播 CPU、总线与外设时钟
    - 支持两组串口独立选择内核时钟源,并保存 LSE 驱动配置供固件回读
    - 在 NVIC 总线入口忽略未实现的优先级低位,保留原生中断仲裁行为
    - 将 TIM2 和 TIM5 接入本地定时器模型,补齐主要定时器的 ITR0 至 ITR3 连接
    - 添加时钟与优先级回归脚本,使用平台实际连线检查内部触发路由
    - 更新外设加载清单、串口频率检查和 README 仿真边界说明
  • fix: 补全定时器更新与平台外设行为并拆分模型
    - 将串口、DMA、ADC 和定时器模型按职责拆分到 peripherals,并统一加载入口
    - 按 25 MHz 外部晶振配置系统时钟,同步更新串口和定时器比较通道频率
    - 补全定时器预装载、更新 DMA、重复计数、单脉冲和主从触发行为
    - 添加 EXTI 分组中断与事件模型及 DBGMCU 标识寄存器模型
    - 修复 ADC 忙时重复启动和停止状态处理,以及监视器提示符识别
    - 增加平台与定时器回归脚本,更新启动说明和仿真边界文档
  • fix: 修复运动 DMA 完成与串口空闲检测
    - 通过定时器比较请求驱动运动 DMA,补齐比较值超过重装上限时的传输完成行为,避免额外输出边沿
    - 修复 Flash 快速读取时将空周期字节误识别为新命令的问题
    - 九个串口统一使用本地模型,支持错误中断配置读回、空闲中断及 H7 时钟预分频
    - DMA 仅刷新发生变化的流,移除 ADC 中断热路径中的迭代器分配
    - 补充中文外设文档,并将启动说明整合到 README.txt
    - 增加 Flash 解析、串口寄存器、运动和参数持久化回归脚本
    - 明确 AGENTS.md 中的中文提交与正文列表格式要求,禁止提交信息包含测试和验证结果
  • docs: 添加仓库协作与代码规范
    - 明确 C# 写法和中文 XML 文档要求
    - 记录命令调度语义及 Git 提交约定