添加 MX-PD-盘古 项目文件
将 MX-PD-盘古 - new 目录下的所有文件添加到主仓库
This commit is contained in:
526
MX-PD-盘古 - new/PanGu.DieBonderApp/plans/motion-safety-plan.md
Normal file
526
MX-PD-盘古 - new/PanGu.DieBonderApp/plans/motion-safety-plan.md
Normal file
@@ -0,0 +1,526 @@
|
||||
# Motion <20><>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƹ<EFBFBD>
|
||||
|
||||
## 1. Ŀ<><C4BF>
|
||||
|
||||
Χ<EFBFBD><EFBFBD> [`MainShell/Motion/SafeAxisMotion.cs`](MainShell/Motion/SafeAxisMotion.cs) <20><> [`MainShell/Motion/MotionController.cs`](MainShell/Motion/MotionController.cs) <20><> [`MainShell/Motion/StagePlatformMotionService.cs`](MainShell/Motion/StagePlatformMotionService.cs) <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ͳһ<CDB3><D2BB><EFBFBD>˶<EFBFBD>ǰ<EFBFBD><C7B0>ȫ<EFBFBD><C8AB><EFBFBD>鷽<EFBFBD><E9B7BD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD>зֲ<D0B7><D6B2><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD>£<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD>ṩ<EFBFBD><E1B9A9>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݡ<EFBFBD>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƹ<EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>£<EFBFBD>
|
||||
|
||||
- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD>˶<EFBFBD><CBB6><EFBFBD><EFBFBD>ھ߱<DABE>ͳһǰ<D2BB>ð<EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><DFBC><EFBFBD> <20>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ר<EFBFBD><D7A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߽<EFBFBD><DFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϰ<EFBFBD>ȫ<EFBFBD>ж<EFBFBD>
|
||||
- ʧ<>ܴ<EFBFBD><DCB4><EFBFBD><EFBFBD><EFBFBD>ʽͳһ<CDB3><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ͣ <20>澯 <20><>־
|
||||
- Ϊ<><CEAA><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><D0BB><EFBFBD> `code` ģʽ<C4A3>ṩʵ<E1B9A9><CAB5><EFBFBD><EFBFBD>ͼ
|
||||
|
||||
---
|
||||
|
||||
## 2. <20><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD>۲<EFBFBD>
|
||||
|
||||
### 2.1 <20><><EFBFBD><EFBFBD>ְ<EFBFBD><D6B0>
|
||||
|
||||
<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>£<EFBFBD>
|
||||
|
||||
- [`StagePlatformMotionService.MovePlaneAsync()`](MainShell/Motion/StagePlatformMotionService.cs:37)
|
||||
- [`SafeAxisMotion.SafeMoveAsync()`](MainShell/Motion/SafeAxisMotion.cs:56)
|
||||
- [`SafeAxisMotion.MoveAbsInternalAsync()`](MainShell/Motion/SafeAxisMotion.cs:222)
|
||||
- [`MotionController.MoveAbsAsync()`](MainShell/Motion/MotionController.cs:34)
|
||||
|
||||
<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ְ<EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Σ<EFBFBD>
|
||||
|
||||
| <20>㼶 | <20><>ǰְ<C7B0><D6B0> | <20><>Ӧ<EFBFBD>ļ<EFBFBD> |
|
||||
|---|---|---|
|
||||
| <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | <20><>֯ҵ<D6AF><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>װ<EFBFBD><D7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | [`MainShell/Motion/StagePlatformMotionService.cs`](MainShell/Motion/StagePlatformMotionService.cs) |
|
||||
| <20><>ȫ<EFBFBD>˶<EFBFBD><CBB6><EFBFBD><EFBFBD>Ȳ<EFBFBD> | ͳһ<CDB3><D2BB>װ<EFBFBD><D7B0><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD> ʧ<><CAA7><EFBFBD><EFBFBD>ͣ <20>澯<EFBFBD>ϱ<EFBFBD> | [`MainShell/Motion/SafeAxisMotion.cs`](MainShell/Motion/SafeAxisMotion.cs) |
|
||||
| <20><><EFBFBD><EFBFBD><EFBFBD>Ʋ<EFBFBD> | <20>·<EFBFBD><C2B7>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD> <20><>״̬У<CCAC><D0A3> <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD> <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD> | [`MainShell/Motion/MotionController.cs`](MainShell/Motion/MotionController.cs) |
|
||||
| <20><><EFBFBD><EFBFBD><EFBFBD>ٶȲ<D9B6> | <20>ٶȲ<D9B6><C8B2><EFBFBD>Ӧ<EFBFBD><D3A6> | [`MainShell/Motion/AxisSpeedManager.cs`](MainShell/Motion/AxisSpeedManager.cs) |
|
||||
|
||||
### 2.2 <20><>ǰ<EFBFBD><C7B0><EFBFBD>а<EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><EFBFBD>߱<EFBFBD>һЩ<EFBFBD>ײ㰲ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
- [`MotionController.ValidateMotionState()`](MainShell/Motion/MotionController.cs:218)
|
||||
- [`MotionController.EnsureWithinSoftLimit()`](MainShell/Motion/MotionController.cs:242)
|
||||
- [`MotionController.ValidateTimeout()`](MainShell/Motion/MotionController.cs:257)
|
||||
- [`SafeAxisMotion.CancelAndStopRelatedAxes()`](MainShell/Motion/SafeAxisMotion.cs:405)
|
||||
|
||||
˵<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰϵͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>а<EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**<2A><>ȱ<EFBFBD><C8B1>ͳһ<CDB3><D2BB><EFBFBD>˶<EFBFBD>ǰ<EFBFBD><C7B0>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ų<EFBFBD>**<2A><>
|
||||
|
||||
---
|
||||
|
||||
## 3. <20><><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD>
|
||||
|
||||
### 3.1 <20>ֲ<EFBFBD>ԭ<EFBFBD><D4AD>
|
||||
|
||||
- ֻ<><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4>Ĺ<EFBFBD><C4B9><EFBFBD><F2A3ACB7><EFBFBD> [`MotionController`](MainShell/Motion/MotionController.cs)
|
||||
- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD><F2A3ACB7><EFBFBD> [`SafeAxisMotion`](MainShell/Motion/SafeAxisMotion.cs)
|
||||
- ֻ<><D6BB>ij<EFBFBD><C4B3>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD><F2A3ACB7>ڻ<EFBFBD><DABB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㣬<EFBFBD><E3A3AC><EFBFBD><EFBFBD> [`StagePlatformMotionService`](MainShell/Motion/StagePlatformMotionService.cs)
|
||||
|
||||
### 3.2 <20>տ<EFBFBD>ԭ<EFBFBD><D4AD>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͳһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
- [`SafeAxisMotion.MoveAbsAsync()`](MainShell/Motion/SafeAxisMotion.cs:153)
|
||||
- [`SafeAxisMotion.MoveRelAsync()`](MainShell/Motion/SafeAxisMotion.cs:163)
|
||||
- [`SafeAxisMotion.SafeMoveAsync()`](MainShell/Motion/SafeAxisMotion.cs:56)
|
||||
- [`SafeAxisMotion.HomeAsync()`](MainShell/Motion/SafeAxisMotion.cs:209)
|
||||
|
||||
### 3.3 <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD>ᶯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>飬<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD>ᣬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѿ<EFBFBD>ʼ<EFBFBD>ƶ<EFBFBD><EFBFBD><EFBFBD>ʣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
### 3.4 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><E1B9B9>ԭ<EFBFBD><D4AD>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧֻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> true <20><> false<73><65><EFBFBD><EFBFBD>Ӧ<EFBFBD>߱<EFBFBD><DFB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㼶<EFBFBD><E3BCB6>ʧ<EFBFBD><CAA7>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD>Ӱ<EFBFBD><D3B0><EFBFBD>ᡢ<EFBFBD>Ƿ<C7B7><F1B1A8BE><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƚṹ<C8BD><E1B9B9><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>
|
||||
|
||||
---
|
||||
|
||||
## 4. <20><>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD>ֲ㷽<D6B2><E3B7BD>
|
||||
|
||||
## 4.1 <20><>һ<EFBFBD><D2BB> <20>ἶ<EFBFBD><E1BCB6><EFBFBD><EFBFBD><DFBC><EFBFBD>
|
||||
|
||||
### <20><>λ
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD>֤<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͱ<EFBFBD>ȫ<EFBFBD>߽磬<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>豸ҵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>塣
|
||||
|
||||
### <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
|
||||
|
||||
- [`MainShell/Motion/MotionController.cs`](MainShell/Motion/MotionController.cs)
|
||||
|
||||
### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
| <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | ˵<><CBB5> | <20><>ǰ״̬ |
|
||||
|---|---|---|
|
||||
| <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | <20><>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD><EFBFBD>ú<EFBFBD>δ<EFBFBD><CEB4>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD> | <20>Ѳ<EFBFBD><D1B2>־߱<D6BE> |
|
||||
| Axis.State <20><><EFBFBD><EFBFBD> | <20><>֤״̬<D7B4><CCAC>ȡ<EFBFBD><C8A1>Ч | <20>Ѿ߱<D1BE> |
|
||||
| Servo <20><><EFBFBD>ϵ<EFBFBD> | <20><>ֹ<EFBFBD><D6B9>ʹ<EFBFBD><CAB9><EFBFBD>˶<EFBFBD> | <20>Ѿ߱<D1BE> |
|
||||
| <20><> ALM ServoFault EMG | <20><>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>״̬<D7B4>˶<EFBFBD> | <20>Ѿ߱<D1BE> |
|
||||
| CanMove Ϊ true | <20><>ֹ<EFBFBD><D6B9>ǰ״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD> | <20>Ѿ߱<D1BE> |
|
||||
| Ŀ<><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB> | <20><>ֹĿ<D6B9>곬<EFBFBD>г<EFBFBD> | <20>Ѿ߱<D1BE> |
|
||||
| <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD> | <20><>ֹ<EFBFBD>Ƿ<EFBFBD><C7B7>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD> | <20>Ѿ߱<D1BE> |
|
||||
| <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | <20><><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD>ʧ<EFBFBD><CAA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | <20>Ѿ߱<D1BE> |
|
||||
|
||||
### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD>
|
||||
|
||||
- <20><>ȫ<EFBFBD><C8AB>
|
||||
- <20>ܼ<EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD>״̬
|
||||
- <20><><EFBFBD><EFBFBD><D7BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD>
|
||||
- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ
|
||||
- <20><><EFBFBD>̽<CCBD><D7B6>ж<EFBFBD>
|
||||
- <20>Զ<EFBFBD><D4B6>ֶ<EFBFBD>ģʽȨ<CABD><C8A8>
|
||||
|
||||
<EFBFBD><EFBFBD>Щ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߽硣
|
||||
|
||||
---
|
||||
|
||||
## 4.2 <20>ڶ<EFBFBD><DAB6><EFBFBD> <20>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
### <20><>λ
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD>Ǻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD>ǰͳһ<EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD>顱<EFBFBD>ĺ<EFBFBD><EFBFBD>IJ㡣
|
||||
|
||||
### <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ժ<EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><EFBFBD> [`SafeAxisMotion`](MainShell/Motion/SafeAxisMotion.cs) <20><>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><DFBC><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊר<CEAA><D7A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>磺
|
||||
|
||||
- `MotionSafetyChecker`
|
||||
- `IMotionSafetyPolicy`
|
||||
- `IMotionPrecheck`
|
||||
- `MotionInterlockService`
|
||||
|
||||
### <20><><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
| <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | ˵<><CBB5> | <20><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܴ<EFBFBD><DCB4><EFBFBD> |
|
||||
|---|---|---|
|
||||
| <20>ܼ<EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD>ͷ<EFBFBD> | <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣδ<CDA3><CEB4>λʱ<CEBB><CAB1>ֹ<EFBFBD>˶<EFBFBD> | <20><><EFBFBD><EFBFBD> + <20>ɱ<EFBFBD><C9B1><EFBFBD> |
|
||||
| <20><>ȫ<EFBFBD><C8AB>״̬<D7B4><CCAC><EFBFBD><EFBFBD> | <20>Ŵ<EFBFBD><C5B4><EFBFBD>ʱ<EFBFBD><CAB1>ֹΣ<D6B9>ն<EFBFBD><D5B6><EFBFBD> | <20><><EFBFBD><EFBFBD> + <20>ɱ<EFBFBD><C9B1><EFBFBD> |
|
||||
| <20><>ǰģʽ<C4A3><CABD><EFBFBD><EFBFBD><EFBFBD>ö<EFBFBD><C3B6><EFBFBD> | <20>Զ<EFBFBD> <20>ֶ<EFBFBD> <20><><EFBFBD><EFBFBD>Ȩ<EFBFBD><EFBFBD><DEBF><EFBFBD> | <20><><EFBFBD><EFBFBD> |
|
||||
| <20><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD> | <20><>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD><EFBFBD>зǷ<D0B7><C7B7><EFBFBD><EFBFBD>붯<EFBFBD><EBB6AF> | <20><><EFBFBD><EFBFBD> |
|
||||
| <20>ؼ<EFBFBD><D8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڰ<EFBFBD>ȫλ | <20><>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | <20><><EFBFBD><EFBFBD> + <20>ɱ<EFBFBD><C9B1><EFBFBD> |
|
||||
| <20><><EFBFBD><EFBFBD> <20>г<EFBFBD> <20><><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA> | <20><>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> | <20><><EFBFBD><EFBFBD> |
|
||||
| Σ<>ջ<EFBFBD><D5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD> | <20><>ֹ<EFBFBD><D6B9>ײ | <20><><EFBFBD><EFBFBD> + <20>ɱ<EFBFBD><C9B1><EFBFBD> |
|
||||
| ͬ<>黥<EFBFBD><E9BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δռ<CEB4><D5BC> | <20><>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ | <20><><EFBFBD><EFBFBD> |
|
||||
| <20><>ǰ<EFBFBD>ٶ<EFBFBD>ģʽ<C4A3><CABD><EFBFBD>㰲ȫԼ<C8AB><D4BC> | Σ<>ն<EFBFBD>ʹ<EFBFBD>ð<EFBFBD>ȫ<EFBFBD>ٶ<EFBFBD> | <20><><EFBFBD>ϻ<CFBB> |
|
||||
|
||||
### <20><><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>
|
||||
|
||||
- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [`MotionController.MoveAbsAsync()`](MainShell/Motion/MotionController.cs:34) ǰ<><C7B0><EFBFBD><EFBFBD>
|
||||
- Ӧ֧<D3A6>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᶯ<EFBFBD><E1B6AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
- Ӧ֧<D3A6>ֺͱ<D6BA><CDB1><EFBFBD>ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD>
|
||||
- Ӧ֧<D3A6>ֻ<EFBFBD><D6BB><EFBFBD>ģʽ<C4A3>ͳ<EFBFBD><CDB3><EFBFBD><EFBFBD><EFBFBD>̬<EFBFBD><CCAC><EFBFBD>Ϲ<EFBFBD><CFB9><EFBFBD>
|
||||
|
||||
---
|
||||
|
||||
## 4.3 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD><CFBC><EFBFBD>
|
||||
|
||||
### <20><>λ
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD>ڽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᵥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>϶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>岻<EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⡣
|
||||
|
||||
### <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD><EFBFBD> [`SafeAxisMotion.SafeMoveAsync()`](MainShell/Motion/SafeAxisMotion.cs:56) <20><><EFBFBD>ڲ㡣
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ר<EFBFBD><EFBFBD><EFBFBD><EFBFBD>̬Լ<EFBFBD><EFBFBD><EFBFBD>Ĺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>ּ<EFBFBD><EFBFBD>顣
|
||||
|
||||
### <20><><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
| <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | ˵<><CBB5> | <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |
|
||||
|---|---|---|
|
||||
| <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD> | <20><>ֹһ<D6B9><D2BB><EFBFBD><EFBFBD><EFBFBD>ζ<EFBFBD>ͬһ<CDAC><D2BB><EFBFBD>¶<EFBFBD><C2B6><EFBFBD>Ŀ<EFBFBD><C4BF> | <20><>ȫ<EFBFBD>˶<EFBFBD><CBB6><EFBFBD> |
|
||||
| <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɴ<EFBFBD> | <20><>ֹ<EFBFBD><D6B9><EFBFBD>ᶼ<EFBFBD>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̬<EFBFBD><CCAC><EFBFBD>Ϸ<EFBFBD> | <20><>ȫ<EFBFBD>˶<EFBFBD><CBB6><EFBFBD> |
|
||||
| <20><><EFBFBD><EFBFBD>Ŀ<EFBFBD>겻<EFBFBD><EAB2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5>ײ | <20><>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD≯<EFBFBD><CCB8><EFBFBD> | <20><>ȫ<EFBFBD>˶<EFBFBD><CBB6><EFBFBD> |
|
||||
| <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̬<EFBFBD>仯<EFBFBD><E4BBAF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | <20><>ֹƽ̨<C6BD><CCA8><EFBFBD><EFBFBD><EFBFBD>쳣<EFBFBD><ECB3A3><EFBFBD><EFBFBD>̬ͻ<CCAC><CDBB> | <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD>˶<EFBFBD><CBB6><EFBFBD> |
|
||||
| <20>Ƿ<EFBFBD><C7B7><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>תλ<D7AA><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | <20><>ֱֹ<D6B9><D6B1><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>ȫ | <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |
|
||||
|
||||
### <20>ص㽨<D8B5><E3BDA8>
|
||||
|
||||
[`StagePlatformMotionService.MovePlaneAsync()`](MainShell/Motion/StagePlatformMotionService.cs:37) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̬<EFBFBD><CCAC><EFBFBD>飬<EFBFBD>ٽ<EFBFBD><D9BD><EFBFBD> [`SafeAxisMotion.SafeMoveAsync()`](MainShell/Motion/SafeAxisMotion.cs:56) <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
---
|
||||
|
||||
## 4.4 <20><><EFBFBD>IJ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><D5BC><EFBFBD>
|
||||
|
||||
### <20><>λ
|
||||
|
||||
ֻ<EFBFBD><EFBFBD>ij<EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD>ͨ<EFBFBD>ù<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
### <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
|
||||
|
||||
- [`MainShell/Motion/StagePlatformMotionService.cs`](MainShell/Motion/StagePlatformMotionService.cs)
|
||||
- δ<><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
### <20><><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
| <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | ˵<><CBB5> |
|
||||
|---|---|
|
||||
| ƽ̨<C6BD><CCA8><EFBFBD><EFBFBD><EFBFBD>߶Ȳ<C8B2><EEB2BB><EFBFBD><EFBFBD> | <20><>ֹƽ̨<C6BD><CCA8>̬<EFBFBD>쳣 |
|
||||
| ƽ<><C6BD>ǰ<EFBFBD><C7B0>̧<EFBFBD><CCA7>ȫ<EFBFBD>߶<EFBFBD> | <20><>ֹ<EFBFBD><D6B9><EFBFBD>Ƹ<EFBFBD><C6B8><EFBFBD> |
|
||||
| <20><>λǰ<CEBB><C7B0>ѧ<EFBFBD><D1A7><EFBFBD><EFBFBD><EFBFBD><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | <20><>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч |
|
||||
| BondHead <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѻر<D1BB> | <20><>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ |
|
||||
| <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>װ<EFBFBD>ڰ<EFBFBD>ȫλ | <20><>ֹ<EFBFBD>ξ߸<CEBE><DFB8><EFBFBD> |
|
||||
| <20><>ǰ<EFBFBD><C7B0><EFBFBD>ս<D5BD><D7B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ö<EFBFBD><C3B6><EFBFBD> | <20><>֤<EFBFBD><D6A4><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD> |
|
||||
| <20><><EFBFBD><EFBFBD>״̬<D7B4><CCAC>ȷ | <20><>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |
|
||||
|
||||
---
|
||||
|
||||
## 5. <20>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
```mermaid
|
||||
flowchart TD
|
||||
A[ҵ<><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>] --> B[<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD>ü<EFBFBD><C3BC><EFBFBD>]
|
||||
B --> C[ͳһ<CDB3><D2BB>ȫ<EFBFBD>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD>]
|
||||
C --> D[<5B><><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>]
|
||||
D --> E[<5B>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>]
|
||||
E --> F[<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD><CFBC><EFBFBD>]
|
||||
F --> G[<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><DFBC><EFBFBD>]
|
||||
G --> H[<5B>·<EFBFBD><C2B7>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD>]
|
||||
H --> I[<5B>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD> ȡ<><C8A1> <20><>ʱ]
|
||||
I --> J[ʧ<><CAA7><EFBFBD><EFBFBD>ͣ <20>澯 <20><>־]
|
||||
```
|
||||
|
||||
### 5.1 ҵ<><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD>磺
|
||||
|
||||
- [`StagePlatformMotionService.MovePlaneAsync()`](MainShell/Motion/StagePlatformMotionService.cs:37)
|
||||
|
||||
ְ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
- <20><><EFBFBD>ﶯ<EFBFBD><EFB6AF><EFBFBD><EFBFBD>ͼ
|
||||
- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ר<EFBFBD><D7A8>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
- <20><>װ<EFBFBD><D7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
- <20><><EFBFBD><EFBFBD>ͳһ<CDB3><D2BB>ȫ<EFBFBD>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
### 5.2 ͳһ<CDB3><D2BB>ȫ<EFBFBD>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD>磺
|
||||
|
||||
- [`SafeAxisMotion.SafeMoveAsync()`](MainShell/Motion/SafeAxisMotion.cs:56)
|
||||
- [`SafeAxisMotion.MoveAbsAsync()`](MainShell/Motion/SafeAxisMotion.cs:153)
|
||||
- [`SafeAxisMotion.MoveRelAsync()`](MainShell/Motion/SafeAxisMotion.cs:163)
|
||||
- [`SafeAxisMotion.HomeAsync()`](MainShell/Motion/SafeAxisMotion.cs:209)
|
||||
|
||||
ְ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
- ִ<><D6B4><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD>ǰ<EFBFBD>ü<EFBFBD><C3BC><EFBFBD>
|
||||
- ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [`MotionController`](MainShell/Motion/MotionController.cs)
|
||||
- ʧ<><CAA7>ʱͳһ<CDB3><D2BB>ͣ <20>澯 <20><>־
|
||||
|
||||
### 5.3 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD>磺
|
||||
|
||||
- [`MotionController.MoveAbsAsync()`](MainShell/Motion/MotionController.cs:34)
|
||||
- [`MotionController.MoveRelAsync()`](MainShell/Motion/MotionController.cs:50)
|
||||
- [`MotionController.HomeAsync()`](MainShell/Motion/MotionController.cs:130)
|
||||
|
||||
ְ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3>
|
||||
- <20>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD>
|
||||
- <20><>ʱ<EFBFBD><CAB1>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
- <20><><EFBFBD>ؽṹ<D8BD><E1B9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
---
|
||||
|
||||
## 6. <20>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4>˳<EFBFBD><CBB3>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD><EFBFBD>̶<EFBFBD>˳<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɢ<EFBFBD>䡣
|
||||
|
||||
### <20><><EFBFBD><EFBFBD> 1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD>ü<EFBFBD><C3BC><EFBFBD>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ̨<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><EFBFBD>飺
|
||||
|
||||
- <20>Ƿ<EFBFBD><C7B7><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>߰<EFBFBD>ȫ<EFBFBD>߶<EFBFBD>
|
||||
- Ŀ<><C4BF><EFBFBD><EFBFBD>̬<EFBFBD>Ƿ<EFBFBD><C7B7>Ϸ<EFBFBD>
|
||||
- <20><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>״̬<D7B4>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
### <20><><EFBFBD><EFBFBD> 2 <20>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
ͳһ<EFBFBD><EFBFBD><EFBFBD>飺
|
||||
|
||||
- <20>ܼ<EFBFBD>ͣ
|
||||
- <20><>ȫ<EFBFBD><C8AB>
|
||||
- <20>ؼ<EFBFBD><D8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
- <20>ر<EFBFBD>״̬
|
||||
- ģʽȨ<CABD><C8A8>
|
||||
- <20>ؼ<EFBFBD><D8BC><EFBFBD>Դռ<D4B4><D5BC>
|
||||
|
||||
### <20><><EFBFBD><EFBFBD> 3 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD><CFBC><EFBFBD>
|
||||
|
||||
ͳһ<EFBFBD><EFBFBD><EFBFBD>飺
|
||||
|
||||
- <20><><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ͻ
|
||||
- <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>Խ<EFBFBD><D4BD>
|
||||
- <20>Ƿ<EFBFBD><C7B7><EFBFBD>Ҫ<EFBFBD>ֲ<EFBFBD><D6B2><EFBFBD>λ
|
||||
- <20>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD>
|
||||
|
||||
### <20><><EFBFBD><EFBFBD> 4 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><DFBC><EFBFBD>
|
||||
|
||||
<EFBFBD><EFBFBD> [`MotionController`](MainShell/Motion/MotionController.cs) ִ<>У<EFBFBD>
|
||||
|
||||
- Servo
|
||||
- Alarm
|
||||
- CanMove
|
||||
- <20><><EFBFBD><EFBFBD>λ
|
||||
- <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
### <20><><EFBFBD><EFBFBD> 5 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD>õײ<EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>ʱͳһ<EFBFBD><EFBFBD>
|
||||
|
||||
- <20><>ͣ
|
||||
- <20>澯
|
||||
- <20><>־<EFBFBD><D6BE>¼
|
||||
|
||||
---
|
||||
|
||||
## 7. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̱<EFBFBD><EFBFBD>룬<EFBFBD><EFBFBD><EFBFBD>Ǻ<EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͳһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
## 7.1 <20>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><EFBFBD><EFBFBD>γ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> `MotionCheckContext` <20>ĸ<EFBFBD><C4B8><EFBFBD>ֶν<D6B6><CEBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
| <20>ֶ<EFBFBD> | ˵<><CBB5> |
|
||||
|---|---|
|
||||
| Operation | MoveAbs MoveRel Home Jog |
|
||||
| Axis | <20><>ǰĿ<C7B0><C4BF><EFBFBD><EFBFBD> |
|
||||
| AxisName | <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |
|
||||
| CurrentPosition | <20><>ǰλ |
|
||||
| TargetPosition | Ŀ<><C4BF>λ |
|
||||
| Distance | <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB> |
|
||||
| RelatedAxes | <20><><EFBFBD><EFBFBD><EFBFBD>Ἧ<EFBFBD><E1BCAF> |
|
||||
| Requests | <20><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |
|
||||
| Mode | <20>Զ<EFBFBD> <20>ֶ<EFBFBD> <20><><EFBFBD><EFBFBD> |
|
||||
| Source | <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |
|
||||
| NeedAlarm | <20>Ƿ<EFBFBD><C7B7><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD> |
|
||||
| TimeoutMilliseconds | <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD> |
|
||||
|
||||
## 7.2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><EFBFBD><EFBFBD>γ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> `MotionCheckResult` <20>ĸ<EFBFBD><C4B8>
|
||||
|
||||
| <20>ֶ<EFBFBD> | ˵<><CBB5> |
|
||||
|---|---|
|
||||
| IsPassed | <20>Ƿ<EFBFBD>ͨ<EFBFBD><CDA8> |
|
||||
| RuleName | <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |
|
||||
| Layer | <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㼶 |
|
||||
| Severity | Block <20><> Warning |
|
||||
| Message | ʧ<><CAA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |
|
||||
| AxisNames | Ӱ<><D3B0><EFBFBD><EFBFBD> |
|
||||
| AlarmId | <20><>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |
|
||||
| RecoveryHint | <20><><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD>ʽ |
|
||||
|
||||
## 7.3 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿڷ<D3BF><DAB7><EFBFBD>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><EFBFBD>ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͳһ<EFBFBD>ӿڣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>磺
|
||||
|
||||
- `IMotionPrecheck`
|
||||
- `IMotionSafetyRule`
|
||||
|
||||
ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD>£<EFBFBD>ͳһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD>ͳһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
---
|
||||
|
||||
## 8. ʧ<>ܴ<EFBFBD><DCB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>а<EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͳһΪ<EFBFBD><EFBFBD><EFBFBD>ദ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
| <20><><EFBFBD><EFBFBD> | ˵<><CBB5> | <20><><EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD> |
|
||||
|---|---|---|
|
||||
| Block | <20><><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD>ͣ | <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7> |
|
||||
| StopAndBlock | <20><>ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | <20><><EFBFBD>ᶯ<EFBFBD><E1B6AF><EFBFBD><EFBFBD>;ʧ<CDBE><CAA7> |
|
||||
| AlarmAndBlock | <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | <20><>ͣ <20>Ž<EFBFBD> Σ<>ջ<EFBFBD><D5BB><EFBFBD>δ<EFBFBD>ر<EFBFBD> |
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
- <20><>ͣ<EFBFBD>ɸ<EFBFBD><C9B8><EFBFBD> [`SafeAxisMotion.CancelAndStopRelatedAxes()`](MainShell/Motion/SafeAxisMotion.cs:405)
|
||||
- <20><><EFBFBD><EFBFBD><EFBFBD>ɸ<EFBFBD><C9B8><EFBFBD> [`SafeAxisMotion.ReportAlarmAsync()`](MainShell/Motion/SafeAxisMotion.cs:379)
|
||||
- <20><>־<EFBFBD>ɸ<EFBFBD><C9B8><EFBFBD> [`HandleMotionStarted()`](MainShell/Motion/SafeAxisMotion.cs:346) <20><> [`HandleMotionFinished()`](MainShell/Motion/SafeAxisMotion.cs:358)
|
||||
|
||||
---
|
||||
|
||||
## 9. <20>Ե<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>δ<EFBFBD><CEB4>ְ<EFBFBD><D6B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
## 9.1 [`MainShell/Motion/MotionController.cs`](MainShell/Motion/MotionController.cs)
|
||||
|
||||
### <20><><EFBFBD><EFBFBD>ְ<EFBFBD><D6B0>
|
||||
|
||||
- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4>
|
||||
- <20><><EFBFBD>߰<EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD>
|
||||
- <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
||||
- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>װ
|
||||
|
||||
### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
- <20><>ȫ<EFBFBD><C8AB><EFBFBD>ж<EFBFBD>
|
||||
- <20><><EFBFBD><EFBFBD><D7BB><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̽<CCBD><D7B6>ж<EFBFBD>
|
||||
- ƽ̨<C6BD><CCA8>̬<EFBFBD>ж<EFBFBD>
|
||||
- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD>ж<EFBFBD>
|
||||
|
||||
## 9.2 [`MainShell/Motion/SafeAxisMotion.cs`](MainShell/Motion/SafeAxisMotion.cs)
|
||||
|
||||
### ǿ<><C7BF>Ϊͳһǰ<D2BB>ð<EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD>
|
||||
|
||||
δ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӣ<EFBFBD>
|
||||
|
||||
- ǰ<>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͳһ<CDB3><D2BB>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD>
|
||||
- <20>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD><CFBC><EFBFBD>
|
||||
- ʧ<>ܵȼ<DCB5><C8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD>
|
||||
- <20>Ѿ߱<D1BE><DFB1><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD>
|
||||
- <20>Ѿ߱<D1BE><DFB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD><EFBFBD>
|
||||
- <20>Ѿ߱<D1BE><DFB1><EFBFBD>־<EFBFBD>ҽӵ<D2BD>
|
||||
|
||||
## 9.3 [`MainShell/Motion/StagePlatformMotionService.cs`](MainShell/Motion/StagePlatformMotionService.cs)
|
||||
|
||||
### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
δ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
- ƽ̨<C6BD>ද<EFBFBD><E0B6AF>ר<EFBFBD><D7A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
- <20><>̬Լ<CCAC><D4BC>
|
||||
- <20><>ȫ<EFBFBD><C8AB>תλ<D7AA><CEBB><EFBFBD><EFBFBD>
|
||||
- ҵ<><D2B5>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><EFBFBD><EFBFBD>³<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʋ㡣
|
||||
|
||||
## 9.4 [`MainShell/Motion/AxisSpeedManager.cs`](MainShell/Motion/AxisSpeedManager.cs)
|
||||
|
||||
### <20><><EFBFBD><EFBFBD>չΪ<D5B9><CEAA>ȫ<EFBFBD>ٶȲ<D9B6><C8B2>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD>
|
||||
|
||||
- Σ<><CEA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6>а<EFBFBD>ȫ<EFBFBD>ٶ<EFBFBD>
|
||||
- <20><><EFBFBD><EFBFBD>ģʽ<C4A3>л<EFBFBD><D0BB>ٶ<EFBFBD>ģ<EFBFBD><C4A3>
|
||||
- <20>߷<EFBFBD><DFB7>ն<EFBFBD><D5B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC>ٶȺ<D9B6> jerk
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>е<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
---
|
||||
|
||||
## 10. <20>ֽ<D6BD>ʵʩ<CAB5>ƻ<EFBFBD>
|
||||
|
||||
## <20><EFBFBD> A <20><><EFBFBD><EFBFBD><EFBFBD>嵥<EFBFBD>̻<EFBFBD>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʋ<EFBFBD>ȷ<EFBFBD>ϣ<EFBFBD>
|
||||
|
||||
- <20><>Щ<EFBFBD><D0A9><EFBFBD><EFBFBD>Ϊȫ<CEAA>ֱؼ<D6B1>
|
||||
- <20><>Щ<EFBFBD><D0A9><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ר<EFBFBD><D7A8>
|
||||
- <20><>Щ<EFBFBD><D0A9><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
- <20><>Щ<EFBFBD><D0A9><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
- <20><>Щ<EFBFBD><D0A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
||||
|
||||
## <20><EFBFBD> B <20><><EFBFBD><EFBFBD><EFBFBD>տڼ<D5BF><DABC><EFBFBD>
|
||||
|
||||
ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƹ<EFBFBD> [`SafeAxisMotion`](MainShell/Motion/SafeAxisMotion.cs) ֱ<>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǩ<EFBFBD>ƣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͳһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧЧ<EFBFBD><EFBFBD>
|
||||
|
||||
## <20><EFBFBD> C <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD>
|
||||
|
||||
ͳһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݡ<EFBFBD>
|
||||
|
||||
## <20><EFBFBD> D <20><>ʵ<EFBFBD>ָ<D6B8>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>飺
|
||||
|
||||
1. <20>ܼ<EFBFBD>ͣ
|
||||
2. <20><>ȫ<EFBFBD><C8AB>
|
||||
3. Servo <20><> Alarm
|
||||
4. <20><><EFBFBD><EFBFBD>λ
|
||||
5. Σ<>ջ<EFBFBD><D5BB><EFBFBD><EFBFBD>ر<EFBFBD>
|
||||
6. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD>
|
||||
|
||||
## <20><EFBFBD> E <20>ٲ<EFBFBD><D9B2><EFBFBD><EFBFBD><EFBFBD>ר<EFBFBD><D7A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD>磺
|
||||
|
||||
- ƽ̨<C6BD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̬Լ<CCAC><D4BC>
|
||||
- <20><>ȫ<EFBFBD>߶<EFBFBD>
|
||||
- <20><>תλ<D7AA><CEBB><EFBFBD><EFBFBD>
|
||||
- <20><>װռλ״̬
|
||||
|
||||
---
|
||||
|
||||
## 11. <20><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>ȷ<EFBFBD>ϵĹ<CFB5><C4B9><EFBFBD><EFBFBD>嵥
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸʵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><EFBFBD><EFBFBD>Է<EFBFBD>ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⣺
|
||||
|
||||
| <20><><EFBFBD><EFBFBD> | <20><>Ҫȷ<D2AA>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD> |
|
||||
|---|---|
|
||||
| <20><>ͣ | <20>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><CEBA>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܼ<EFBFBD>ͣ |
|
||||
| <20><>ȫ<EFBFBD><C8AB> | <20>ֶ<EFBFBD>ģʽ<C4A3>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ſ<EFBFBD><C5BF>㶯 |
|
||||
| ģʽȨ<CABD><C8A8> | <20>Զ<EFBFBD> <20>ֶ<EFBFBD> <20><><EFBFBD>Ե<EFBFBD><D4B5>˶<EFBFBD>Ȩ<EFBFBD>ޱ߽<DEB1> |
|
||||
| Σ<><CEA3><EFBFBD><EFBFBD> | <20><>Щ<EFBFBD><D0A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϲ<EFBFBD><CFB9>ɻ<EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD> |
|
||||
| ƽ̨<C6BD><CCA8><EFBFBD><EFBFBD> | Z7 Z8 Z9 <20><>̬<EFBFBD>仯<EFBFBD><E4BBAF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ |
|
||||
| <20><>תλ | <20><>Щ<EFBFBD><D0A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߰<EFBFBD>ȫλ<C8AB>ٵ<EFBFBD>Ŀ<EFBFBD><C4BF>λ |
|
||||
| <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | <20><>Щ<EFBFBD><D0A9><EFBFBD><EFBFBD>ʧ<EFBFBD>ܱ<EFBFBD><DCB1>뱨<EFBFBD><EBB1A8> <20><>Щֻ<D0A9><D6BB><EFBFBD><EFBFBD> |
|
||||
| <20>ٶȲ<D9B6><C8B2><EFBFBD> | <20><>Щ<EFBFBD><D0A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫǿ<D2AA>ư<EFBFBD>ȫ<EFBFBD>ٶ<EFBFBD> |
|
||||
|
||||
<EFBFBD><EFBFBD>Щ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD>Խ<EFBFBD>ȶ<EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
---
|
||||
|
||||
## 12. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƹ<EFBFBD><EFBFBD>Ľ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>£<EFBFBD>
|
||||
|
||||
1. [`MotionController`](MainShell/Motion/MotionController.cs) <20><><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><DFBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4>ְ<EFBFBD><D6B0>
|
||||
2. [`SafeAxisMotion`](MainShell/Motion/SafeAxisMotion.cs) Ӧ<>ݽ<EFBFBD>Ϊͳһ<CDB3><D2BB><EFBFBD>˶<EFBFBD>ǰ<EFBFBD><C7B0>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
3. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϰ<EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD>飬<EFBFBD><E9A3AC>ͳһ<CDB3>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD>
|
||||
4. [`StagePlatformMotionService`](MainShell/Motion/StagePlatformMotionService.cs) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ר<EFBFBD><D7A8>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
5. [`AxisSpeedManager`](MainShell/Motion/AxisSpeedManager.cs:22) <20><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ȫ<EFBFBD>ٶȲ<D9B6><C8B2>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
6. <20><><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD>˲<EFBFBD><CBB2><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD> + <20><><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD> + <20>ֲ<EFBFBD><D6B2><EFBFBD><EFBFBD><EFBFBD> <20>ķ<EFBFBD>ʽ<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD><DAB8><EFBFBD><EFBFBD><EFBFBD>ɢ<C9A2><D7B7> if <20>ж<EFBFBD>
|
||||
|
||||
<EFBFBD>÷<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><EFBFBD><EFBFBD>ֳ<EFBFBD><EFBFBD><EFBFBD>ά<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>չ<EFBFBD>ԣ<EFBFBD><EFBFBD>ʺ<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƵĻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><EFBFBD><EFBFBD>
|
||||
215
MX-PD-盘古 - new/PanGu.DieBonderApp/plans/recipe-code-review.md
Normal file
215
MX-PD-盘古 - new/PanGu.DieBonderApp/plans/recipe-code-review.md
Normal file
@@ -0,0 +1,215 @@
|
||||
# Recipe ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><C4B1><EFBFBD>
|
||||
|
||||
## һ<><D2BB><EFBFBD>ܹ<EFBFBD><DCB9><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<EFBFBD>䷽ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MVVM <20>ܹ<EFBFBD><DCB9><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>IJ<EFBFBD><C4B2>䷽<EFBFBD><E4B7BD>ϵ<EFBFBD><CFB5>Carrier <20><> Substrate <20><> Wafer <20><> Process<73><73><EFBFBD>γɼ<CEB3><C9BC><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>ʹ<EFBFBD><CAB9> Stylet <20><><EFBFBD><EFBFBD> + JSON <20>ļ<EFBFBD><C4BC>־û<D6BE><C3BB><EFBFBD>
|
||||
|
||||
```mermaid
|
||||
graph TD
|
||||
A[CarrierRecipe <20>ؾ<EFBFBD><D8BE>䷽] --> B[SubstrateRecipe <20><><EFBFBD><EFBFBD><EFBFBD>䷽]
|
||||
B --> C[WaferRecipe оƬ<D0BE>䷽]
|
||||
C --> D[ProcessRecipe <20><><EFBFBD><EFBFBD><EFBFBD>䷽]
|
||||
|
||||
E[RecipeManager] --> A
|
||||
E --> B
|
||||
E --> C
|
||||
E --> D
|
||||
|
||||
F[RecipeWrapManager] --> G[RecipeWrap <20>б<EFBFBD>]
|
||||
|
||||
H[RecipeViewModel] --> I[CarrierRecipeViewModel]
|
||||
H --> J[SubstrateRecipeViewModel]
|
||||
H --> K[WaferRecipeViewModel]
|
||||
H --> L[ProcessRecipeViewModel]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
### <20><><EFBFBD><EFBFBD> 1<><31>ViewModel <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>صĴ<D8B5><C4B4><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD>
|
||||
|
||||
`CarrierRecipeViewModel`<EFBFBD><EFBFBD>`SubstrateRecipeViewModel`<EFBFBD><EFBFBD>`WaferRecipeViewModel`<EFBFBD><EFBFBD>`ProcessRecipeViewModel` <20>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><DFBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB>ͬ<EFBFBD><CDAC>
|
||||
|
||||
- `SelectedRecipeWrap` <20><><EFBFBD>Ե<EFBFBD> setter <20><EFBFBD><DFBC><EFBFBD><EFBFBD>뿪<EFBFBD><EBBFAA><EFBFBD><EFBFBD> + <20><><EFBFBD><EFBFBD><EFBFBD>䷽ + <20><><EFBFBD>գ<EFBFBD>
|
||||
- `RegisterButtonGroupEvents()` <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>18 <20><><EFBFBD>¼<EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫһ<C8AB>£<EFBFBD>
|
||||
- `TryLeaveCurrentRecipeContext()` <20><><EFBFBD><EFBFBD>
|
||||
- `SaveCurrentRecipe()` / `CaptureSavedSnapshot()` / `IsRecipeDirty()` / `SelectRecipeWrapInternal()` <20><><EFBFBD><EFBFBD>
|
||||
- `OnCreateNewRecipe` / `OnDeleteRecipe` / `OnOpenRecipe` / `OnSaveRecipe` / `OnClearRecipe` <20><><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
**<EFBFBD>Ľ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**<2A><><EFBFBD><EFBFBD>ȡһ<C8A1><D2BB><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD> `RecipeViewModelBase<TRecipe> where TRecipe : RecipeBase`<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>³<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD>踲д<EFBFBD><EFBFBD><EFBFBD>첿<EFBFBD>֣<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>䷽<EFBFBD>ľ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͡<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȣ<EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
---
|
||||
|
||||
### <20><><EFBFBD><EFBFBD> 2<><32>RecipeButtonGroupViewModel <20><> ViewModel <20><>ֱ<EFBFBD>Ӵ<EFBFBD><D3B4><EFBFBD> View<65><77><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD>
|
||||
|
||||
`RecipeButtonGroupViewModel.ShowRecipeWindow<TWindow, TViewModel>()` <20><><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1> `new TWindow()`<EFBFBD><EFBFBD>Υ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> MVVM <20>ĺ<EFBFBD><C4BA><EFBFBD>ԭ<EFBFBD><EFBFBD>ViewModel <20><>Ӧֱ<D3A6>Ӵ<EFBFBD><D3B4><EFBFBD><EFBFBD><EFBFBD><CDB9><EFBFBD> View<65><77>
|
||||
|
||||
**<EFBFBD>Ľ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**<2A><>ʹ<EFBFBD><CAB9> Stylet <20><> `IWindowManager.ShowDialog()` <20><><EFBFBD><EFBFBD>ʾ<EFBFBD>Ի<EFBFBD><D4BB>ڣ<F2B4B0BF><DAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB> `IDialogService` <20>ӿ<EFBFBD><D3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
---
|
||||
|
||||
### <20><><EFBFBD><EFBFBD> 3<><33>RecipeNameWindowModel <20><> RecipeReNameWindowModel <20><><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><EFBFBD><EFBFBD><EFBFBD>`OkCommand`/`CancelCommand`<EFBFBD><EFBFBD>`UpdateValidationMessage()` <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫһ<C8AB>£<EFBFBD>`RecipeReNameWindowModel` <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB> `OldRecipeName` <20><><EFBFBD>ԡ<EFBFBD>
|
||||
|
||||
**<EFBFBD>Ľ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**<2A><><EFBFBD><EFBFBD> `RecipeReNameWindowModel` <20>̳<EFBFBD> `RecipeNameWindowModel`<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ࡣ
|
||||
|
||||
---
|
||||
|
||||
### <20><><EFBFBD><EFBFBD> 4<><34>RecipeBase ͬʱʵ<CAB1><CAB5> INotifyPropertyChanged <20>ͼ̳<CDBC> JsonFileWritableBase<73><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD>
|
||||
|
||||
`RecipeBase` <20>ֶ<EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD> `INotifyPropertyChanged`<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> `SetProperty<T>` <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD> `SubstrateInfo`<EFBFBD><EFBFBD>`MarkData` <20>ȣ<EFBFBD><C8A3>̳е<CCB3><D0B5><EFBFBD> Stylet <20><> `PropertyChangedBase`<EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD> `SetAndNotify`<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><EFBFBD><EFBFBD>֪ͨ<EFBFBD><EFBFBD><EFBFBD>ơ<EFBFBD>
|
||||
|
||||
**<EFBFBD>Ľ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**<2A><>ͳһ֪ͨ<CDA8><D6AA><EFBFBD>ơ<EFBFBD><C6A1><EFBFBD><EFBFBD><EFBFBD> `JsonFileWritableBase` <20><><EFBFBD>ܼ̳<DCBC> `PropertyChangedBase`<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>̳У<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> `RecipeBase` Ҳʹ<D2B2><CAB9> Stylet <20><>֪ͨ<CDA8><D6AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʩ<EFBFBD><CAA9>
|
||||
|
||||
---
|
||||
|
||||
### <20><><EFBFBD><EFBFBD> 5<><35>CameraBaseViewModel <20><><EFBFBD><EFBFBD> Models Ŀ¼<C4BF>£<EFBFBD><C2A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD>
|
||||
|
||||
`CameraBaseViewModel` <20><>һ<EFBFBD><D2BB> ViewModel <20><><EFBFBD>࣬<EFBFBD><E0A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> `Recipe/Models/` Ŀ¼<C4BF>£<EFBFBD>Υ<EFBFBD><CEA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD>ķֲ<C4B7>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD>
|
||||
|
||||
**<EFBFBD>Ľ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**<2A><><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD> `Recipe/ViewModel/` Ŀ¼<C4BF><C2BC>
|
||||
|
||||
---
|
||||
|
||||
### <20><><EFBFBD><EFBFBD> 6<><36><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƴд<C6B4><D0B4><EFBFBD><EFBFBD><F3A3A8B5><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD>
|
||||
|
||||
- `SubtrateMarkPars` <20><> ӦΪ `SubstrateMarkPars`<EFBFBD><EFBFBD>ȱ<EFBFBD><EFBFBD> `s`<EFBFBD><EFBFBD>
|
||||
- `SubtrateMarkParameterInfo` <20><> ӦΪ `SubstrateMarkParameterInfo`
|
||||
- `ThickNess` <20><> ӦΪ `Thickness`<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Сд<EFBFBD><EFBFBD>һ<EFBFBD>£<EFBFBD>
|
||||
- `PIDOperater` <20><> ӦΪ `PIDOperator`
|
||||
|
||||
**<EFBFBD>Ľ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**<2A><>ͳһ<CDB3><D2BB><EFBFBD><EFBFBD>ƴд<C6B4><D0B4>ʹ<EFBFBD><CAB9> IDE <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD>¡<EFBFBD>
|
||||
|
||||
---
|
||||
|
||||
### <20><><EFBFBD><EFBFBD> 7<><37>PIDOperater ʹ<>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԣ<EFBFBD><D4A3><EFBFBD>ͨ<EFBFBD><CDA8> IoC.Get <20><>̬<EFBFBD><CCAC><EFBFBD>û<EFBFBD>ȡӲ<C8A1><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD>
|
||||
|
||||
`PIDOperater.SendPIDParameters()` <20><> `ReadPIDParametersFromDevice()` ʹ<>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д PID <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܲ<EFBFBD><DCB2><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD>ά<EFBFBD><CEAC><EFBFBD><EFBFBD>ͬʱ `GetControler()` ͨ<><CDA8> `IoC.Get<HardwareManager>()` <20><>̬<EFBFBD><CCAC><EFBFBD>û<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Υ<EFBFBD><CEA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD>
|
||||
|
||||
**<EFBFBD>Ľ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**<2A><>
|
||||
- <20><> `IMotionController` <20><> `HardwareManager` ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD>캯<EFBFBD><ECBAAF>ע<EFBFBD><D7A2>
|
||||
- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>淴<EFBFBD><E6B7B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
---
|
||||
|
||||
### <20><><EFBFBD><EFBFBD> 8<><38>RecipeManager <20><>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȱ<EFBFBD><C8B1><EFBFBD>쳣<EFBFBD><ECB3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD>
|
||||
|
||||
`DeleteCarrierRecipe` / `DeleteSubstrateRecipe` / `DeleteWaferRecipe` / `DeleteProcessRecipe` ֱ<>ӵ<EFBFBD><D3B5><EFBFBD> `Directory.Delete(path, true)` <20><>û<EFBFBD><C3BB><EFBFBD>κ<EFBFBD><CEBA>쳣<EFBFBD><ECB3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ¼<C4BF><C2BC><EFBFBD><EFBFBD><EFBFBD>ڻ<EFBFBD><DABB><EFBFBD>ռ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>׳<EFBFBD><D7B3>쳣<EFBFBD><ECB3A3>
|
||||
|
||||
**<EFBFBD>Ľ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> try-catch <20>ʹ<EFBFBD><CDB4><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>飬<EFBFBD><E9A3AC><EFBFBD>ز<EFBFBD><D8B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>
|
||||
|
||||
---
|
||||
|
||||
### <20><><EFBFBD><EFBFBD> 9<><39>OnCopyRecipe / OnImportRecipe / OnExportRecipe Ϊ<><CEAA>ʵ<EFBFBD>֣<EFBFBD><D6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> ViewModel <20>е<EFBFBD> `OnCopyRecipe`<EFBFBD><EFBFBD>`OnImportRecipe`<EFBFBD><EFBFBD>`OnExportRecipe` <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD><D5A3><EFBFBD><EFBFBD><EFBFBD>δʵ<CEB4>֡<EFBFBD>
|
||||
|
||||
**<EFBFBD>Ľ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**<2A><>Ҫôʵ<C3B4><CAB5><EFBFBD><EFBFBD>Щ<EFBFBD><D0A9><EFBFBD>ܣ<EFBFBD>Ҫô<D2AA><C3B4> UI <20>Ͻ<EFBFBD><CFBD>ö<EFBFBD>Ӧ<EFBFBD><D3A6>ť<EFBFBD><C5A5>ͨ<EFBFBD><CDA8> `CanExecute` <20><><EFBFBD><EFBFBD> false<73><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>
|
||||
|
||||
---
|
||||
|
||||
### <20><><EFBFBD><EFBFBD> 10<31><30>CarrierRecipeViewModel.OnViewLoaded <20><>ֱ<EFBFBD>ӷ<EFBFBD><D3B7><EFBFBD> RecipeWraps[0] <20><><EFBFBD><EFBFBD>Խ<EFBFBD>磨<EFBFBD><E7A3A8><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD>
|
||||
|
||||
```csharp
|
||||
// CarrierRecipeViewModel.cs:248
|
||||
RecipeWraps[0].IsInUse = true;
|
||||
```
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> `RecipeWraps` Ϊ<>ռ<EFBFBD><D5BC>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>׳<EFBFBD> `ArgumentOutOfRangeException`<EFBFBD><EFBFBD>
|
||||
|
||||
**<EFBFBD>Ľ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**<2A><><EFBFBD><EFBFBD><EFBFBD>ӿռ<D3BF><D5BC>ϼ<EFBFBD><CFBC>顣
|
||||
|
||||
---
|
||||
|
||||
### <20><><EFBFBD><EFBFBD> 11<31><31>SubstrateRecipeViewModel.OnViewLoaded <20><> SelectedRecipeWrap <20><><EFBFBD><EFBFBD>Ϊ null<6C><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD>
|
||||
|
||||
```csharp
|
||||
// SubstrateRecipeViewModel.cs:498-499
|
||||
SelectedRecipeWrap = RecipeWraps.Where(...).FirstOrDefault();
|
||||
SelectedRecipeWrap.IsInUse = true; // <20><><EFBFBD><EFBFBD> NullReferenceException
|
||||
```
|
||||
|
||||
`FirstOrDefault()` <20><><EFBFBD>ܷ<EFBFBD><DCB7><EFBFBD> null<6C><6C>ֱ<EFBFBD>ӷ<EFBFBD><D3B7><EFBFBD> `.IsInUse` <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
**<EFBFBD>Ľ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> null <20><><EFBFBD>顣
|
||||
|
||||
---
|
||||
|
||||
### <20><><EFBFBD><EFBFBD> 12<31><32>RecipeWrapManager.Handle <20><><EFBFBD><EFBFBD><EFBFBD>и<EFBFBD><D0B8><EFBFBD>ͬһ<CDAC><D2BB> CarrierRecipe ʵ<><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD>
|
||||
|
||||
```csharp
|
||||
// RecipeWrapManager.cs:74
|
||||
CarrierRecipe carrierRecipe = new CarrierRecipe();
|
||||
foreach (var carrierWrap in CarrierRecipeWraps)
|
||||
{
|
||||
carrierRecipe.RecipeName = carrierWrap.RecipeName;
|
||||
carrierRecipe.Read();
|
||||
...
|
||||
}
|
||||
```
|
||||
|
||||
<EFBFBD><EFBFBD>ѭ<EFBFBD><EFBFBD><EFBFBD>и<EFBFBD><EFBFBD><EFBFBD>ͬһ<EFBFBD><EFBFBD> `CarrierRecipe` ʵ<><CAB5><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF> `Read()` <20>Ḳ<EFBFBD><E1B8B2><EFBFBD><EFBFBD>һ<EFBFBD>ε<EFBFBD><CEB5><EFBFBD><EFBFBD>ݡ<EFBFBD><DDA1><EFBFBD>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD><CFBF><EFBFBD>û<EFBFBD><C3BB><EFBFBD>⣬<EFBFBD><E2A3AC><EFBFBD><EFBFBD><EFBFBD>岻<EFBFBD><E5B2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> `Read()` ʧ<>ܿ<EFBFBD><DCBF>ܵ<EFBFBD><DCB5>²<EFBFBD><C2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݡ<EFBFBD>
|
||||
|
||||
**<EFBFBD>Ľ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**<2A><>ÿ<EFBFBD><C3BF>ѭ<EFBFBD><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD>
|
||||
|
||||
---
|
||||
|
||||
### <20><><EFBFBD><EFBFBD> 13<31><33>MarkTeachViewModel ֱ<>ӳ<EFBFBD><D3B3><EFBFBD> Window <20><><EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD>
|
||||
|
||||
```csharp
|
||||
private MarkCoordinatePreviewWindow _coordinatePreviewWindow;
|
||||
```
|
||||
|
||||
ViewModel ֱ<>ӳ<EFBFBD><D3B3><EFBFBD> `Window` ʵ<><CAB5><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD>Υ<EFBFBD><CEA5> MVVM ԭ<><D4AD><EFBFBD><EFBFBD>
|
||||
|
||||
**<EFBFBD>Ľ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**<2A><>ʹ<EFBFBD><CAB9> `IWindowManager` <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD>ͨ<EFBFBD><CDA8> Messenger/EventAggregator ֪ͨ View <20><><EFBFBD><EFBFBD><F2BFAAB4>ڡ<EFBFBD>
|
||||
|
||||
---
|
||||
|
||||
### <20><><EFBFBD><EFBFBD> 14<31><34><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɢ<EFBFBD><C9A2><EFBFBD>ڲ<EFBFBD>ͬλ<CDAC>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD>
|
||||
|
||||
- `RecipeEventArgs` / `RecipeRenameEventArgs` <20><> `Recipe/Models/RecipeEventArgs.cs` <20><>
|
||||
- `SubstrateNameChangedEventArgs` <20><><EFBFBD><EFBFBD> `EventArgsFolder/RecipeNameChangedEventArgs.cs` <20>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD> `MainShell`
|
||||
|
||||
**<EFBFBD>Ľ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**<2A><>ͳһ<CDB3>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><D5BC>ʹ<EFBFBD><CDB4><EFBFBD>λ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> `Recipe/Models/` <20><>ר<EFBFBD>ŵ<EFBFBD> `Recipe/Events/` Ŀ¼<C4BF>¡<EFBFBD>
|
||||
|
||||
---
|
||||
|
||||
### <20><><EFBFBD><EFBFBD> 15<31><35>SubstrateHeightMeasureSetting <20><> SubstrateHeightMeasurePoint δʵ<CEB4><CAB5> IParameterItem<65><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD>ࣨ<EFBFBD><EFBFBD> `SubstrateInfo`<EFBFBD><EFBFBD>`CarrierInfo`<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> `IParameterItem` <20>ӿ<EFBFBD><D3BF><EFBFBD>֧<EFBFBD><D6A7> `Clone()`<EFBFBD><EFBFBD><EFBFBD><EFBFBD> `SubstrateHeightMeasureSetting` <20><> `SubstrateHeightMeasurePoint` û<><C3BB>ʵ<EFBFBD>֣<EFBFBD><D6A3><EFBFBD><EFBFBD>ܵ<EFBFBD><DCB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD>/<2F><>¡ʱ<C2A1><CAB1>Ϊ<EFBFBD><CEAA>һ<EFBFBD>¡<EFBFBD>
|
||||
|
||||
**<EFBFBD>Ľ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**<2A><>ͳһʵ<D2BB><CAB5> `IParameterItem` <20>ӿڡ<D3BF>
|
||||
|
||||
---
|
||||
|
||||
### <20><><EFBFBD><EFBFBD> 16<31><36>ActiveRecipeService δ<><CEB4>ʹ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD>
|
||||
|
||||
`IActiveRecipeService<T>` <20><> `ActiveRecipeService<T>` <20><><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5><EFBFBD> Recipe ģ<><C4A3><EFBFBD><EFBFBD>δ<EFBFBD><CEB4>ʹ<EFBFBD>á<EFBFBD>
|
||||
|
||||
**<EFBFBD>Ľ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**<2A><>ȷ<EFBFBD><C8B7><EFBFBD>Ƿ<EFBFBD>Ϊδ<CEAA><CEB4>Ԥ<EFBFBD><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>Ƴ<EFBFBD><C6B3>Լ<EFBFBD><D4BC>ٴ<EFBFBD><D9B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
---
|
||||
|
||||
## <20><><EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
| <20><><EFBFBD>ȼ<EFBFBD> | <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | <20><><EFBFBD><EFBFBD> |
|
||||
|--------|---------|------|
|
||||
| <20><> | 1 | <20>ĸ<EFBFBD> RecipeViewModel <20><><EFBFBD>ش<EFBFBD><D8B4><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD> |
|
||||
| <20><> | 10 | CarrierRecipeViewModel.OnViewLoaded <20><><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |
|
||||
| <20><> | 11 | SubstrateRecipeViewModel.OnViewLoaded <20><><EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD><C3B7><EFBFBD> |
|
||||
| <20><> | 2 | ButtonGroupViewModel ֱ<>Ӵ<EFBFBD><D3B4><EFBFBD> View |
|
||||
| <20><> | 3 | <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Model <20><><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD> |
|
||||
| <20><> | 4 | <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>֪ͨ<CDA8><D6AA><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD> |
|
||||
| <20><> | 7 | PIDOperater <20><><EFBFBD><EFBFBD> + <20><>̬ IoC <20><><EFBFBD><EFBFBD> |
|
||||
| <20><> | 8 | ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȱ<EFBFBD><C8B1><EFBFBD>쳣<EFBFBD><ECB3A3><EFBFBD><EFBFBD> |
|
||||
| <20><> | 12 | RecipeWrapManager ѭ<><D1AD><EFBFBD>и<EFBFBD><D0B8><EFBFBD>ʵ<EFBFBD><CAB5> |
|
||||
| <20><> | 13 | MarkTeachViewModel <20><><EFBFBD><EFBFBD> Window <20><><EFBFBD><EFBFBD> |
|
||||
| <20><> | 5 | CameraBaseViewModel <20>Ŵ<EFBFBD>Ŀ¼ |
|
||||
| <20><> | 6 | <20><><EFBFBD><EFBFBD>ƴд<C6B4><D0B4><EFBFBD><EFBFBD> |
|
||||
| <20><> | 9 | <20><>ʵ<EFBFBD>ֵIJ<D6B5><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |
|
||||
| <20><> | 14 | <20>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>÷<EFBFBD>ɢ |
|
||||
| <20><> | 15 | <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>δʵ<CEB4><CAB5> IParameterItem |
|
||||
| <20><> | 16 | ActiveRecipeService δʹ<CEB4><CAB9> |
|
||||
Reference in New Issue
Block a user