Commit Graph

35 Commits

Author SHA1 Message Date
QI Mingxuan 41e056f85c [XP.Hardware.MotionControl] 新增 CoordinateCompensation.md:完整描述载物台坐标系补偿功能(坐标模型、像素到 mm 换算、Replace/Accumulate 记录模式与示例、接口说明、调用流程、边界注意事项、源码位置)
[XP.Hardware.MotionControl] README 文档目录树补齐全部文档条目并加入 CoordinateCompensation.md
2026-07-28 18:58:22 +08:00
QI Mingxuan f087ad4264 [XP.Hardware.MotionControl] 新增坐标系补偿功能:新增 CompensationMode 枚举(Replace/Accumulate)与 StageCompensationChangedEvent 事件 [XP.Hardware.MotionControl] IMotionControlService 新增 ApplyPixelOffsetCompensation / RecordPixelOffsetCompensation / GetStageCompensation / ResetStageCompensation / SetStageCompensation 接口,MoveToTarget、MoveAllToTarget 增加 applyCompensation 参数 [XP.Hardware.MotionControl] MotionControlService 实现补偿值存储(含线程锁)、抽取 TryConvertPixelToStageMm 复用像素到 mm 换算,补偿记录默认覆盖模式,StageX/StageY 定点运动可叠加补偿并保留边界校验 2026-07-28 11:47:15 +08:00
XplorePlane Developer 957157ae80 fix: 修复编译错误、BGA向导预览、算子重复插入及状态栏消息
## Compilation fixes
- Fix XAML namespace reference XplorePlane.Converters → XplorePlane.Helpers (EventLogView, StateDisplayView)
- Add missing using for ISampleTypeRepository / JsonSampleTypeRepository in App.xaml.cs
- Fix ILoggerService.Warn() calls using Exception as first arg instead of message string
- Serialize CncProgram to JSON when passing to MatrixLayout (expects string, not CncProgram object)
- Suppress CS8632 nullable annotation warnings project-wide

## BGA wizard fixes
- Fix preview not showing on step 3: force RefreshBgaPreview() when entering final step
- Add step validation in CanNext() to prevent skipping to preview with invalid inputs
- Notify NextCommand.CanExecuteChanged when inputs change
- Fix RunProgress runtime binding error: set Mode=OneWay for ProgressBar.Value

## Operator toolbox: prevent duplicate insertion
- Add static OperatorTarget property for direct dispatch to active pipeline
- PipelineEditorView registers as toolbox target on load (floating window only)
- CNC page sets initial target; PipelineEditorWindow resets to CNC pipeline on close
- '+' button inserts only to the active pipeline instead of broadcasting to all subscribers

## Pipeline editor status bar messages
- Add StatusBarMessageEvent / StatusBarMessagePayload to CommonEvents.cs
- PipelineEditorViewModel publishes status on all ops (add/remove/reorder/save/execute)
- MainViewModel subscribes and displays on main window bottom status bar
- Auto-clear after timeout (3s info, 5s error)

## docs
- Merge three architecture docs into consolidated XplorePlane-架构与结构说明.md
2026-07-24 15:59:16 +08:00
QI Mingxuan 023bec66ce [XplorePlane] 解决与 Develop/XP 合并在 MainViewModel.ExecuteOneClickInitialize 的冲突:保留基于 OneClickWarmupCoordinator 的一键暖机实现(统一进度窗体 + 回原点/射线源并行)。 2026-07-21 09:00:31 +08:00
QI Mingxuan 1b6573603d [XP.Common] 清单式进度窗体支持运行中禁止关闭、完成后手动关闭,底部新增状态栏与关闭按钮。
[XP.Hardware.MotionControl] 新增 HomeAllAsync 支持回原点多轴完成计数百分比。
2026-07-16 12:10:15 +08:00
zhengxuan.zhang f6ca45659a fix: 修复虚拟模式下摇杆无法控制XY轴运动的问题
根因:
1. App.config 中 StageX/StageY 缺少 Min/Max 配置,ConfigLoader 默认
   赋值为 0,导致 SimulatedLinearAxis 的 Min=Max=0,JogStart 计算
   目标位置为 0(与当前位置相同),distance=0 直接返回不产生运动
2. DualJoystickOutputX setter 未调用 HandleDualJoystickOutput(),
   纯水平拖动时不会触发 StageX 的 Jog 命令
3. ToggleEnableCommand 等命令的 CanExecute 依赖 IsPlcConnected,
   虚拟模式下 PLC 永远未连接,导致使能按钮不可用;
   OnPlcConnectionChanged 会将 IsJoystickEnabled 置 false 禁用摇杆

修复:
- App.config 补齐 StageX/StageY 的 Min=-150 / Max=150(与 ReleaseFiles 对齐)
- AxisControlViewModel.DualJoystickOutputX setter 增加 HandleDualJoystickOutput() 回调
- 命令 CanExecute 条件改为 IsPlcConnected || isSimulatedMode
- OnPlcConnectionChanged 在虚拟模式下直接 return 不禁用摇杆
- ExecuteToggleEnable 在虚拟模式下跳过 PLC 信号写入
2026-07-13 14:17:06 +08:00
zhengxuan.zhang 4b9890d4c4 perf: 启动优化 — Lazy<T> 延迟加载图像处理服务,启动时间从29秒降至5.5秒
- 将 CncExecutionService、PipelinePersistenceService、PipelineExecutionService、
  PipelineEditorViewModel、CncEditorViewModel 中的 IImageProcessingService /
  IPipelineExecutionService 依赖改为 Lazy<T> 注入,避免启动时触发
  ImageProcessingService 的反射处理器扫描和 EmguCV JIT 编译
- 在关键启动路径插入 [STARTUP-PERF] Stopwatch 计时日志用于性能诊断
- 新增 doc/启动耗时分析.md 技术文档记录分析过程和优化方案
- Ribbon Tab "设置" 重命名为 "工具" 避免与子按钮名称重复
2026-07-08 13:17:38 +08:00
QI Mingxuan 0a64110138 Merge branch 'Develop/XP' into Feature/TURBO-739-HardwareBenchmarkYxlon 2026-07-06 15:12:00 +08:00
QI Mingxuan d7163600dd [XP.Hardware.MotionControl] 新增 MoveToSafePosition() 功能;配置类 LinearAxisConfig/RotaryAxisConfig 增加 SafePosition 属性。 2026-07-06 10:49:08 +08:00
QI Mingxuan 0b8713dd6b [XP.Hardware.MotionControl] 像素-载物台映射改为基于几何配置直接计算,废弃手动标定流程;新增探测器像素物理尺寸和方向系数配置项。 2026-07-01 15:42:31 +08:00
LI Wei.lw d4dd05af60 已合并 PR 146: 导航相机标定及红色十字线 2026-07-01 11:10:50 +08:00
wei.lw.li dc879ede85 feat:给仿真区域添加注释 2026-07-01 08:39:45 +08:00
QI Mingxuan 0cf12df789 [XP.Hardware.MotionControl] 新增放大比与像素-载物台运动距离标定Readme文档。 2026-06-30 20:10:45 +08:00
QI Mingxuan 5a62e03abd [XP.Hardware.MotionControl] 新增放大比与像素-载物台运动距离标定功能:新增 Calibration 子模块:支持 JSON 持久化、像素→载物台坐标转换、方向系数映射;向导支持:标定介绍、两点标定、一致性检查、方向标定、精度验证与保存;启动时自动加载标定数据;主界面集成放大比标定入口。 2026-06-30 17:14:21 +08:00
wei.lw.li 8aaaee51ea feat:删除导航相机标定相关功能;导航相机标定(Yxlon);显示区域增加红色十字线 2026-06-30 16:31:51 +08:00
QI Mingxuan 8f219c8c5f [XP.Hardware.MotionControl] 新增放大比(M)实时显示和一键停止所有轴功能。 2026-06-30 10:23:38 +08:00
zhengxuan.zhang 7683596c17 编译策略: “入口程序、硬件与 Native 依赖项目固定 x64,纯托管类库保持 Any CPU”的平台策略 2026-06-05 21:33:56 +08:00
zhengxuan.zhang 80dc70a648 给被主程序引用的类库项目中的 Telerik NuGet 引用增加了 PrivateAssets="all" 属性,隔离输出目录中 Telerik DLL 数量从原先主输出目录的 67 个 降到 16 个 2026-06-05 14:15:24 +08:00
zhengxuan.zhang 84c1c5f16d CNC 检测模块输出的 数值类型如 bga检测和 孔隙检测的输出内容,要写入到 CNC 检测结果 manifest.json 合适的地址 2026-05-26 16:02:34 +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 de4a7121db 虚拟模式下 跳过联锁(Interlock)检查,因为虚拟模式没有真实安全门信 2026-05-21 17:15:27 +08:00
zhengxuan.zhang 43d0e7fa89 feat: 硬件虚拟化与CNC联动集成 - 运动控制/射线源模拟实现,CNC执行联动增强 2026-05-21 16:02:53 +08:00
QI Mingxuan 346f4d9a9b XP.Common类库的控件Controls功能,按照功能/用途分子文件夹,移动和修改虚拟摇杆相关的文件。 2026-05-15 16:06:26 +08:00
QI Mingxuan c1c2b93cf8 更新运动控制相关的Readme、Guidence文件等。 2026-05-11 11:20:02 +08:00
QI Mingxuan e9596b013a 修复运动控制问题:ExecuteToggleEnable 在 PLC 写入失败或异常时回滚 IsJoystickEnabled 状态;OnPlcConnectionChanged 中改为 new List<>(dict.Keys) 遍历副本,避免潜在的集合修改问题;SendSourceDetectorZMoveCommand 新增 sourcePropertyName 参数,根据用户编辑的是 SourceZ 还是 DetectorZ 来决定 delta 计算方向;SavePositionsCommand 增加 () => IsPlcConnected 条件,PLC 未连接时禁止保存。
补充射线源和PLC类库所需配置和信号地址定义文件。
2026-05-11 10:54:29 +08:00
QI Mingxuan f4a2856b92 运动控制:新增射线源与探测器 Z 轴联动移动功能,支持同步位移控制,新增实体摇杆实现 PLC 摇杆状态监控和事件发布,IMotionSystem 接口新增 Joystick 属性,更新文档说明联动功能使用方法。 2026-05-09 11:30:05 +08:00
QI Mingxuan bb1b76ee7a 增加射线源探测器Z轴锁定联动功能,增加对应plc信号和配置。 2026-05-07 20:24:55 +08:00
QI Mingxuan 6b309f11b0 修改主页面右侧硬件栏目宽度,运动控制修改增加图标按钮切换。 2026-05-07 10:01:55 +08:00
QI Mingxuan cdd1f043e7 优化界面显示:射线源模块紧凑设计,探测器优化布局和大小,优化界面提示和提示。 2026-05-06 17:47:38 +08:00
QI Mingxuan 40b229f5aa 已合并 PR 34: 合并AxisControl运动控制控件 2026-04-23 08:54:08 +08:00
QI Mingxuan 461294986e 优化虚拟摇杆运动控制界面显示问题,将generic修改为usercontrol,单轴摇杆修改为腰圆形状,将功能增加至主框架程序。 2026-04-22 22:49:46 +08:00
QI Mingxuan 1279885924 初版本AxisControl(Viscom风格)控件。 2026-04-22 20:48:00 +08:00
TianSong 8189e76492 Fix EmguCV针对图像宽不是4的倍数的改变bug修复 2026-04-21 15:30:07 +08:00
TianSong 9af453bc8d 将工程所有的cs文件以及xaml文件的编码格式转换为utf-8编码,请安装vs 2022的Force utf-8(No BOM) 2022插件 2026-04-20 14:38:06 +08:00
QI Mingxuan 2bd6e566c3 将Feature/XP.Common和Feature/XP.Hardware分支合并至Develop/XP.forHardwareAndCommon,完善XPapp注册和相关硬件类库通用类库功能。 2026-04-16 17:31:13 +08:00