Commit Graph

404 Commits

Author SHA1 Message Date
zhengxuan.zhang 0ae4cff9c9 Merge branch 'Develop/XP' into turbo-002-cnc 2026-06-03 10:02:14 +08:00
LI Wei.lw e1c4c78510 已合并 PR 103: QFN检测模块
1.新增 ROI 对齐能力(RoiAlignmentProcessor + Alignment 基础类),打通模板位姿到 ROI 变换链路。
2.新增 QFN 一体检测算子(QfnAutoDetectionProcessor),串联模板匹配、ROI 对齐、中心/引脚空洞检测。
3.增强 QFN 相关 UI(新增 QFN 检测面板、ViewModel、图标、主界面入口与联动)。
4.改造 导航相机标定模块(新增采集服务接口/实现,标定控件重构,移除旧画布控件)。
5.优化部分 图像处理算子(如 Contrast/Threshold/GaussianBlur)与显示细节(线宽/线灰度自适应)。
2026-06-03 08:45:15 +08:00
zhengxuan.zhang 582682602f 修复查看记录功能 2026-06-02 18:05:25 +08:00
zhengxuan.zhang 6684143dc9 1、CncProgramPath 现在存储绝对路径——AssociateCncProgram 接受 filePath 参数,ViewModel 传入 OpenFileDialog 选择的完整路径
2、偏移量影响所有 SavePositionNode——执行时模板中每个位置节点的 StageX/StageY 都会叠加单元格偏移,实现整体平移
2026-06-02 11:43:25 +08:00
zhengxuan.zhang dd62d04124 问题根因和修复
问题:MatrixPageView 使用 Prism 的 AutoWireViewModel,但 Prism 默认按命名约定查找 MatrixPageViewModel(不存在),导致 DataContext 为 null,所有按钮绑定都不工作。

修复:将 RegisterForNavigation<MatrixPageView>() 改为 RegisterForNavigation<MatrixPageView, MatrixEditorViewModel>(),显式告诉 Prism 使用 MatrixEditorViewModel 作为该 View 的 ViewModel。
2026-06-02 11:32:50 +08:00
zhengxuan.zhang dee9359c5c 矩阵编排允许用户通过界面设定矩阵参数(行数、列数、行间距、列间距),将一个已编写好的 CNC 模板程序(.xp 文件)自动扩展为覆盖所有矩阵位置的完整检测序列,并按行优先顺序依次完成移轴→采图→检测的闭环执行 2026-06-02 11:25:11 +08:00
ZHANG Zhengxuan 011854c42a 已合并 PR 98: CNC界面的调整和仿真执行功能
1、调整CNC树形结构,将位置为一级节点;文件名使用label控件显示;
2、CNC执行功能调试,新增运动,探测器,射线源的仿真,点击执行,判断到位,取图,计算的逻辑
3、将CNC执行结果的值类型, 写入mainfest.json

![image.png](http://cntao-ap-v83/HMQ-Solution/7ff128fd-5cc6-4feb-9529-2a03b2895662/_apis/git/repositories/e2c5485f-4369-4ed9-9fb9-d087ca4e04b6/pullRequests/98/attachments/image.png)
2026-06-02 09:07:30 +08:00
zhengxuan.zhang df50000e6a 启动时的登录对话框,应用启动后直接以 管理员 (Admin) 角色自动登录 2026-06-01 17:37:38 +08:00
zhengxuan.zhang 4be032918d 修复用户登录功能 2026-06-01 17:32:08 +08:00
zhengxuan.zhang 741874e85d 基于角色的权限控制
1、用户角色枚举、权限枚举、结果记录和密码存储模型
IPermissionService 接口及包含认证、权限检查、密码管理和登出功能的 PermissionService 单例
2、支持层级化角色-权限映射的权限矩阵(SuperAdmin ⊇ Admin ⊇ User)
密码持久化至 passwords.json 文件,并提供工厂默认值回退机制
3、UI 层
LoginDialog — 启动时弹出模态登录对话框,支持密码掩码输入、错误提示以及取消退出功能
RibbonStatusAreaView — 在Ribbon右侧区域始终显示角色标签和“切换用户”按钮
权限感知的CncEditorViewModel — 用户角色无法使用CNC编辑控件
权限感知的CncInspectionModulePipelineViewModel — 用户角色无法进行流程编辑
设置导航可见性 — Admin/User角色隐藏Factory_Settings,User角色隐藏Report_Settings
PasswordManagementView — 仅SuperAdmin可访问的修改角色密码对话框
PermissionTooltipHelper — 附加属性,在禁用控件上显示“当前角色无权访问此功能”提示
2026-06-01 17:15:59 +08:00
李伟 19b63fd419 模板匹配助手在保存模型时写入同名参考位姿 JSON。
训练 ROI 后记录基准中心和角度,保存模型时同步生成同名元数据文件,并在加载模型时自动回读,减少后续对齐配置的人工录入。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-01 17:08:20 +08:00
李伟 5b4ff89ef0 新增 QFN 一体检测算子,串联模板匹配与双路空洞检测。
将模板定位、中心 ROI 对齐、中心焊盘空洞和引脚空洞检测整合到单算子中,并输出统一判定结果,便于快速验证完整流程。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-01 17:06:48 +08:00
李伟 1874c4a5bb 新增 ROI 对齐基础能力并打通到算子与 UI。
统一补齐对齐核心工具类、RoiAlignment 算子、模板匹配对齐扩展和多语言资源,便于在检测前稳定完成示教 ROI 到运行图的变换。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-01 17:04:32 +08:00
zhengxuan.zhang acbed526f6 修复保存高级模块ROI时,有几个点保存几个点,而不是将列表中32个值中0的部分也保存 2026-06-01 15:15:40 +08:00
zhengxuan.zhang ad1fdb0230 实时过程中禁用图像预览窗体的滚轮缩放功能 2026-06-01 15:07:28 +08:00
zhengxuan.zhang 5a11af9ab1 优化调试面板 2026-06-01 14:35:37 +08:00
zhengxuan.zhang 4301f8a5f7 任务1 — 调试窗体全中文化
新建 DebugPanelLocalization.cs 集中维护中英文映射(类别 / 事件类型 / 字段名),显示用中文、内部匹配仍用英文标识,二者解耦。

涉及改动:

状态显示树:根节点 MotionState→运动状态、RaySourceState→射线源状态 等;字段 StageX→载物台X (μm) 等。StateNodeViewModel 新增 DisplayName,绑定到 UI;Name 保留英文供 FindNode 匹配
事件日志:EventLogEntry 新增 EventTypeDisplay/CategoryDisplay/FieldNameDisplay 派生属性;GridView 三列改绑中文;事件类型如 MotionStateChanged→运动状态变化,(No changes)→(无变化)
快照管理:详情树节点本地化
性能监控:PerformanceMetric 新增 StateTypeDisplay,状态类型列显示中文
快照差异窗口:标题 Snapshot Differences→快照差异对比,列头和按钮中文化
各处 MessageBox/文件对话框提示语全部翻译为中文
任务2 — 布局优化

主布局(顶部工具栏 / 左状态树 / 右上事件日志 / 右下快照·性能 Tab / 底部状态栏)符合"可视化查看系统状态与事件触发"的调试目标,结构保留。优化点:将顶部 ToolBarTray+ToolBar(带多余的拖动手柄和溢出箭头,即截图顶部那个浮动小工具条)替换为简洁的 Border+StackPanel,去掉无意义的拖拽/溢出交互。
2026-06-01 14:23:44 +08:00
李伟 b0397365b2 屏蔽导航相机自动连接 2026-06-01 09:58:25 +08:00
SONG Tian a3a6bf7225 Merged PR 99: Updated ReconstructionNotifyService.cs 编译bug解决
Updated ReconstructionNotifyService.cs  编译bug解决
2026-06-01 09:28:56 +08:00
SONG Tian 580d61acae Updated ReconstructionNotifyService.cs 编译bug解决 2026-06-01 01:18:06 +00:00
李伟 703e548c31 启用导航相机自动连接 2026-05-27 09:23:10 +08:00
李伟 b3d39c3492 标定面板图像显示控件替换为PolygonRoiCanvas,删除旧ImageCanvasControl 2026-05-27 09:22:56 +08:00
李伟 bc626a0ca8 坐标标定工具改造:新增采集服务接口及实现,支持一键采集标定点 2026-05-27 09:22:44 +08:00
zhengxuan.zhang 84c1c5f16d CNC 检测模块输出的 数值类型如 bga检测和 孔隙检测的输出内容,要写入到 CNC 检测结果 manifest.json 合适的地址 2026-05-26 16:02:34 +08:00
李伟 030433cc92 优化:修复Logger类型错误,重写CLAHE算法,像素遍历改用unsafe指针加速 2026-05-26 13:28:52 +08:00
zhengxuan.zhang cdd0db95ff 调试CNC执行 2026-05-26 13:18:29 +08:00
李伟 82b7c32147 测量工具组线宽根据图像分辨率自适应 2026-05-26 11:35:25 +08:00
李伟 77f6a32eda 线灰度和辅助线粗细根据图像分辨率自适应,图像切换时自动重绘 2026-05-26 11:24:36 +08:00
李伟 7c06cd2def 新增QFN检测面板及按钮,统一三个模块ROI颜色为Cyan 2026-05-26 11:22:17 +08:00
李伟 0f24209e13 新增QFN引脚空洞率检测处理器及本地化资源 2026-05-26 11:22:04 +08:00
zhengxuan.zhang eb8d7a1491 优化当前加载的显示 2026-05-25 13:40:45 +08:00
zhengxuan.zhang d51d2b0013 修改CNC样式 √ 隐藏根节点,修改保存位置0 修改为位置1---N √ 运行对一级节点进行重命名 √ 2026-05-25 13:33:04 +08:00
ZHANG Zhengxuan 06c39c5ab4 已合并 PR 94: 界面调整及CNC完善
1、调整界面按钮:对流程图 连线样式的优化
2、修复CNC和普通模式的切换问题:当一种模式切换到另一种时,此时如果流程图或CNC编辑中有未保存的内容,要提醒保存,并根据用户的取消保存还是保存
3、修复CNC执行结果的缓存形式
4、探测器模拟一个接口能够返回图,验证XP集成层面能不能获取到图片;以及对相关链路加入日志
5、CNC位置节点新增数据源的手动输入和存图功能
6、高级CNC模块的插入逻辑,包括ROI的可视化再编辑
7、manifest.json文件 中文支持
2026-05-25 11:18:37 +08:00
zhengxuan.zhang 581ed2f3df 将流程图作为3级节点在左侧显示 ;优化布局宽度显示 ; 右侧详情面板的显示级别1级或2级 2026-05-25 10:59:39 +08:00
zhengxuan.zhang 03348a91ac Merge branch 'Develop/XP' into turbo-002-cnc
# Conflicts:
#	XP.Hardware.Detector/Implementations/SimulatedDetector.cs
2026-05-25 09:38:12 +08:00
SONG Tian 4afbadffd1 Merged PR 93: 控制软件socket功能开发
- XP.SCAN模块增加socket通讯,后期重构软件与控制软件在同一电脑进行socket通讯传递进行重构,后期可通过修改IP适配两台电脑的socket通讯重建。
2026-05-25 09:19:54 +08:00
TianSong cf15ed740f XP.SCAN模块增加socket通讯,后期重构软件与控制软件在同一电脑进行socket通讯传递进行重构,后期可通过修改IP适配两台电脑的socket通讯重建。 2026-05-25 08:26:49 +08:00
zhengxuan.zhang c443404bae 更新菜单按钮 2026-05-22 17:29:41 +08:00
zhengxuan.zhang 92213ffd0d Merge branch 'Develop/XP' into turbo-002-cnc
# Conflicts:
#	XplorePlane/Views/Main/MainWindow.xaml
2026-05-22 17:17:29 +08:00
zhengxuan.zhang 54d336a0b1 调整界面显示 2026-05-22 17:03:34 +08:00
QI Mingxuan 0b6554f139 解决添加虚拟探测器无法运行的问题:SimulatedDetector实现ApplyParametersInternalAsync。 2026-05-22 15:55:25 +08:00
QI Mingxuan 4943bc16b7 已合并 PR 90: 探测器直方图和优化合并至开发分支
1、重构探测器Hardware.Detector模块,统一设备调用接口,支持多探测器兼容,优化设备连接状态判断逻辑,新增校正帧数可配置功能。
2、优化Varex探测器校正流程,修复内存缓冲区对齐问题,增加指针、分辨率有效性校验,校正期间屏蔽帧回调、自动启停采集,规避SDK冲突与程序崩溃问题。
3、开发通用图像灰度直方图控件,优化资源释放逻辑。
2026-05-22 08:51:50 +08:00
LI Wei.lw 3777ad2d53 已合并 PR 86: 直线拟合、圆拟合、匹配等
新增功能:
1.边缘查找拟合直线工具
2.边缘查找拟合圆工具
3.海康相机接口集成
4.模板匹配助手窗口
5.ROI 对齐工具与 TM_Result 位姿扩展
6.白底/黑底缺陷检测
7.行灰度功能
优化与修复:
1.白底/黑底检测算法重构至 BackgroundDefectAnalyzer
2.黑底检测结果随清除测量一并清除
3.模板助手按钮布局与图标优化
4.导航相机日志改为英文
5.PixelConverter 支持 Bayer 格式解码
6.相机采集链断裂修复
2026-05-21 21:02:27 +08:00
zhengxuan.zhang de4a7121db 虚拟模式下 跳过联锁(Interlock)检查,因为虚拟模式没有真实安全门信 2026-05-21 17:15:27 +08:00
zhengxuan.zhang 43d0e7fa89 feat: 硬件虚拟化与CNC联动集成 - 运动控制/射线源模拟实现,CNC执行联动增强 2026-05-21 16:02:53 +08:00
zhengxuan.zhang 05c41a9a21 将CNC相关的事件合并,简化 2026-05-21 15:02:28 +08:00
zhengxuan.zhang 01b12bb246 修复JSON 序列化时的 Unicode 转义问题 2026-05-21 14:57:29 +08:00
zhengxuan.zhang 2ac84ecc85 修复高级算子的ROI编辑能力 2026-05-21 14:35:49 +08:00
QI Mingxuan 8905de6bab 更新ReleaseFiles。 2026-05-21 13:36:51 +08:00
QI Mingxuan 15e3e56856 已合并 PR 89: 探测器Hardware.Detector兼容多探测器的重构
探测器XP.Hardware.Detector类库为了更好集成新的探测器,统一接口方法,DetectorService重构为通过统一接口;
新增暗场校正和亮场校正帧数配置属性(默认 64,范围 1-128),config 加载校正帧数;
修正探测器IsConnected连接状态的判断逻辑。
2026-05-21 13:30:59 +08:00