106 lines
2.9 KiB
Markdown
106 lines
2.9 KiB
Markdown
---
|
|
applyTo: "MainShell/Process/**/*.cs,**/*Activity.cs,**/*Workflow*.cs,**/*ProcessService.cs,**/*MotionService.cs"
|
|
---
|
|
|
|
# Workflow Instructions
|
|
|
|
## Workflow Architecture
|
|
This repository uses:
|
|
- WorkflowRunner
|
|
- AutoProductionWorkflowBuilder
|
|
- ActivityAbstractBase
|
|
- CompositeActivity
|
|
- WorkflowStepIds
|
|
- WorkflowStepIdResolver
|
|
|
|
## 中文说明
|
|
流程系统基于现有 Workflow 架构实现,生成代码时应优先复用这些对象和机制。
|
|
|
|
## Layering Rules
|
|
- Activity layer only:
|
|
- calls Service / MotionService / ProcessService
|
|
- writes WorkflowContext
|
|
- returns execution result
|
|
- PrepareExecute and AfterExecute only handle pre/post processing
|
|
- Core workflow logic must be implemented in Service layer
|
|
- Do not place recipe parsing, compensation logic, vision logic, or hardware orchestration in Activity
|
|
|
|
## 中文说明
|
|
分层规则:
|
|
- Activity 层只负责调用 Service、写 WorkflowContext、返回执行结果
|
|
- `PrepareExecute` 和 `AfterExecute` 只做前后处理
|
|
- 核心流程逻辑必须放在 Service 层
|
|
- 不要在 Activity 中写配方解析、视觉算法、补偿逻辑、硬件调度
|
|
|
|
## Routing Rules
|
|
- Do not place workflow jump logic in Activity
|
|
- Actual workflow transitions must be configured by WorkflowStep
|
|
- Normal business branches should use Route / SetRoute
|
|
- Failure should only be used for real failures:
|
|
- hardware error
|
|
- timeout
|
|
- communication failure
|
|
- invalid required input
|
|
- unrecoverable process error
|
|
|
|
## 中文说明
|
|
跳转规则:
|
|
- 不要在 Activity 中写流程跳转逻辑
|
|
- 流程跳转统一由 WorkflowStep 配置
|
|
- 正常业务分支优先使用 `Route / SetRoute`
|
|
- `Failure` 只用于真正异常,例如硬件错误、超时、通讯失败、关键输入缺失、不可恢复错误
|
|
|
|
## JumpConditions Rules
|
|
- JumpConditions are matched in add order
|
|
- More specific branches must be placed first
|
|
- Default flow must be placed last
|
|
|
|
## 中文说明
|
|
`JumpConditions` 匹配顺序按添加顺序执行:
|
|
- 更具体的条件放前面
|
|
- 默认分支放最后
|
|
|
|
## Service Responsibilities
|
|
Service layer should be responsible for:
|
|
- reading WorkflowContext
|
|
- reading RecipeManager and current recipe
|
|
- reading teach data and process parameters
|
|
- acquiring hardware via HardwareManager
|
|
- validating inputs
|
|
- validating hardware state
|
|
- validating safety conditions
|
|
- executing workflow core steps
|
|
- computing business result or compensation result
|
|
- determining Route
|
|
- returning structured process result
|
|
|
|
## 中文说明
|
|
Service 层职责:
|
|
- 读取 `WorkflowContext`
|
|
- 读取 `RecipeManager` 和当前配方
|
|
- 读取示教数据和工艺参数
|
|
- 通过 `HardwareManager` 获取硬件对象
|
|
- 校验输入、硬件状态和安全条件
|
|
- 执行核心流程步骤
|
|
- 计算业务结果或补偿结果
|
|
- 决定 `Route`
|
|
- 返回结构化结果对象
|
|
|
|
## Output Preference
|
|
When implementing workflow code, prefer:
|
|
1. Activity skeleton
|
|
2. Service skeleton
|
|
3. result object design
|
|
4. WorkflowContext write-back fields
|
|
5. WorkflowStep routing suggestion
|
|
6. JumpConditions ordering suggestion
|
|
|
|
## 中文说明
|
|
实现流程代码时,优先输出:
|
|
1. Activity 骨架
|
|
2. Service 骨架
|
|
3. 结果对象设计
|
|
4. WorkflowContext 回写字段
|
|
5. WorkflowStep 路由建议
|
|
6. JumpConditions 顺序建议
|