|
@@ -9,6 +9,7 @@ using Aitex.Core.RT.Log;
|
|
|
using Aitex.Core.RT.OperationCenter;
|
|
|
using Aitex.Core.RT.SCCore;
|
|
|
using Aitex.Core.Util;
|
|
|
+using EFEM.RT.Devices.Flipper;
|
|
|
using MECF.Framework.Common.Equipment;
|
|
|
using MECF.Framework.Common.SubstrateTrackings;
|
|
|
|
|
@@ -18,6 +19,7 @@ namespace Aitex.Core.RT.Device.Unit
|
|
|
{
|
|
|
enum DeviceState
|
|
|
{
|
|
|
+ Init,
|
|
|
Idle,
|
|
|
Homing,
|
|
|
MovingUp,
|
|
@@ -58,7 +60,7 @@ namespace Aitex.Core.RT.Device.Unit
|
|
|
private DOAccessor _do6InchRetract;
|
|
|
|
|
|
|
|
|
- private DeviceState _state = DeviceState.Idle;
|
|
|
+ private DeviceState _state = DeviceState.Init;
|
|
|
private DeviceTimer _timer = new DeviceTimer();
|
|
|
|
|
|
private WaferSize _size = WaferSize.WS8;
|
|
@@ -302,12 +304,14 @@ namespace Aitex.Core.RT.Device.Unit
|
|
|
|
|
|
_scLiftUpTimeout = ParseScNode("scUpTimeout", node);
|
|
|
_scLiftDownTimeout = ParseScNode("scDownTimeout", node);
|
|
|
+
|
|
|
+ DATA.Subscribe($"{module}.{module}.Status", () => _state.ToString());
|
|
|
}
|
|
|
public bool ManualOperation = false;
|
|
|
|
|
|
public bool Initialize()
|
|
|
{
|
|
|
- _state = DeviceState.Idle;
|
|
|
+ _state = DeviceState.Init;
|
|
|
if (Module == "System")
|
|
|
{
|
|
|
LOG.Write($"IoCoolingBuffer module is System.");
|
|
@@ -769,7 +773,7 @@ namespace Aitex.Core.RT.Device.Unit
|
|
|
reason = $"{Module} isn't exist";
|
|
|
return false;
|
|
|
}
|
|
|
- if (_state != DeviceState.Error && _state != DeviceState.Idle)
|
|
|
+ if (_state != DeviceState.Error && _state != DeviceState.Idle && _state != DeviceState.Init)
|
|
|
{
|
|
|
reason = $"{Module} is in {_state} state.";
|
|
|
return false;
|