69 lines
1.9 KiB
Markdown
69 lines
1.9 KiB
Markdown
---
|
|
applyTo: "MainShell/Hardware/**/*.cs,MainShell/DeviceMaintance/**/*.cs,MainShell/Manual/**/*.cs,MainShell/ToolBox/**/*.cs"
|
|
---
|
|
|
|
# Hardware and IO Instructions
|
|
|
|
## Hardware Access Rules
|
|
- Reuse HardwareManager as the primary hardware entry point
|
|
- Do not invent parallel hardware access layers unless explicitly requested
|
|
- Keep hardware naming and organization consistent with existing project patterns
|
|
|
|
## 中文说明
|
|
硬件访问规则:
|
|
- 统一通过 `HardwareManager` 作为主要硬件入口
|
|
- 不要平行新建另一套硬件访问层
|
|
- 硬件命名和组织方式保持与现有项目一致
|
|
|
|
## Axis Naming Rules
|
|
All axis names should be defined as constants in the existing axis naming class.
|
|
|
|
Naming pattern:
|
|
- Axis_ prefix
|
|
- Examples:
|
|
- Axis_SZ
|
|
- Axis_PHS_X1
|
|
- Axis_WS_X3
|
|
- Axis_Stage_Y3
|
|
|
|
If a new axis is introduced, define a constant in the existing axis name holder.
|
|
|
|
## 中文说明
|
|
轴名规则:
|
|
- 所有轴名都应在现有轴名定义类中声明为常量
|
|
- 命名统一使用 `Axis_` 前缀
|
|
- 如果新增轴,必须补充常量定义,不要在业务代码中硬编码字符串轴名
|
|
|
|
## IO Rules
|
|
- IO point definitions are loaded from CSV configuration
|
|
- Reuse DeviceIoPointDefinition and existing IO grouping structures
|
|
- Preserve support for simulated IO states if relevant
|
|
- Keep IO service/model/event naming device-oriented
|
|
|
|
Use:
|
|
- DeviceIoMonitorService
|
|
- DeviceIoSnapshot
|
|
- DeviceCylinderService
|
|
|
|
Avoid logistics-specific names unless the domain explicitly requires them:
|
|
- ConveyorIoService
|
|
- LoaderIoMonitor
|
|
|
|
## 中文说明
|
|
IO 规则:
|
|
- IO 点定义通过 CSV 配置加载
|
|
- 复用现有 `DeviceIoPointDefinition` 和 IO 分组结构
|
|
- 如已有模拟 IO 状态机制,应保持兼容
|
|
- IO 相关命名要采用设备级命名,不要使用过于物流化的命名,除非业务明确需要
|
|
|
|
## Safety Preference
|
|
- Validate device state before critical actions
|
|
- Do not assume hardware is ready
|
|
- Keep generated code conservative and traceable
|
|
|
|
## 中文说明
|
|
安全原则:
|
|
- 关键设备动作前先校验设备状态
|
|
- 不要默认硬件已经 ready
|
|
- 生成代码时要偏保守、可追踪
|