Files
test_demo/MX-PD-盘古 - new/PanGu.DieBonderApp/.github/instructions/motion.instructions.md
Shi.Ji e31d3560bb 添加 MX-PD-盘古 项目文件
将 MX-PD-盘古 - new 目录下的所有文件添加到主仓库
2026-05-18 11:43:09 +08:00

2.7 KiB

applyTo
applyTo
MainShell/Motion/**/*.cs,**/*MotionController*.cs,**/*SafeAxisMotion*.cs,**/*AxisSpeedManager*.cs

Motion Control Instructions

Motion Architecture

Motion control uses layered design:

  • SafeAxisMotion as business entry
  • MotionController as single-axis controller
  • IAxis / IAxisFunc as platform abstraction

Keep this layering intact.

中文说明

运动控制采用固定分层:

  • SafeAxisMotion:业务层入口
  • MotionController:单轴控制器
  • IAxis / IAxisFunc:平台抽象接口

不要破坏现有分层关系。

MotionController Rules

  • Constructor should receive IAxis
  • Convert to IAxisFunc when motion command capability is needed
  • Use SemaphoreSlim to serialize motion commands per axis
  • Motion methods should support async/await and CancellationToken
  • Perform status validation before motion:
    • servo/power status
    • alarm status
    • soft limit state
  • Support timeout handling
  • Raise motion lifecycle events such as MotionStarted / MotionFinished

中文说明

MotionController 设计规则:

  • 构造函数接收 IAxis
  • 需要运动控制能力时转换为 IAxisFunc
  • 使用 SemaphoreSlim 保证单轴指令串行
  • 运动方法支持 async/awaitCancellationToken
  • 运动前要检查伺服状态、报警状态、软限位状态
  • 支持超时处理
  • 可提供 MotionStarted / MotionFinished 事件

Common Axis Properties

Prefer existing property patterns such as:

  • AxisName
  • CurrentPos
  • IsBusy
  • IsAlarm
  • InPos

中文说明

常用属性保持与现有模式一致,例如:

  • AxisName
  • CurrentPos
  • IsBusy
  • IsAlarm
  • InPos

Motion Method Signatures

Keep compatibility with existing motion API patterns:

  • MoveAbsAsync
  • MoveRelAsync
  • JogAsync
  • StopAsync
  • HomeAsync

中文说明

运动方法尽量保持现有签名风格兼容:

  • MoveAbsAsync
  • MoveRelAsync
  • JogAsync
  • StopAsync
  • HomeAsync

SafeAxisMotion Rules

  • Prefer SafeAxisMotion for batch-safe movement
  • Resolve axis name to IAxis and MotionController through existing repository mechanisms
  • Preserve alarm integration and timeout behavior

中文说明

批量安全移动优先通过 SafeAxisMotion 实现:

  • 通过现有机制把轴名解析为 IAxisMotionController
  • 保留报警集成和超时控制能力

MotionResult Rules

  • Use structured MotionResult
  • Distinguish success, timeout, cancellation, and fault
  • Use EnsureSuccess when caller expects exception-on-failure semantics

中文说明

MotionResult 应为结构化结果:

  • 区分成功、超时、取消、异常
  • 调用方需要"失败即抛异常"时,使用 EnsureSuccess()

Speed Management

Use AxisSpeedManager for speed control where applicable. Do not hardcode inconsistent speed logic if a unified speed manager already exists.

中文说明

速度管理优先通过 AxisSpeedManager 统一处理。
如果已有统一速度管理器,不要在新代码里硬编码另一套速度逻辑。