|
@@ -31,8 +31,6 @@ namespace Venus_RT.Devices.EFEM
|
|
|
private readonly AsyncSocket _socket;
|
|
|
private EfemMessage _currentMsg;
|
|
|
private EfemMessage _backroundMsg;
|
|
|
- private bool _backround = false;
|
|
|
- private List<EfemMessage> _backroundlist = new List<EfemMessage>();
|
|
|
private EfemMessage _revMsg;
|
|
|
private bool _LiftIsUp = false;
|
|
|
private bool _LiftIsDown = false;
|
|
@@ -137,6 +135,9 @@ namespace Venus_RT.Devices.EFEM
|
|
|
|
|
|
public override bool HomeAll()
|
|
|
{
|
|
|
+ if (_status == RState.Running)
|
|
|
+ _backroundMsg = _currentMsg;
|
|
|
+
|
|
|
_currentMsg = new EfemMessage
|
|
|
{
|
|
|
Port = ModuleName.EFEM,
|
|
@@ -145,19 +146,21 @@ namespace Venus_RT.Devices.EFEM
|
|
|
Parameters = new List<string> { Constant.ModuleString[ModuleName.EFEM] }
|
|
|
};
|
|
|
|
|
|
- _backround = false;
|
|
|
_status = RState.Running;
|
|
|
string data = _currentMsg.ToString();
|
|
|
SetRobotMovingInfo(RobotAction.Homing, Hand.Both, ModuleName.EFEM);
|
|
|
|
|
|
return _socket.Write(data);
|
|
|
}
|
|
|
+
|
|
|
public override bool Home(ModuleName mod)
|
|
|
{
|
|
|
+ if (_status == RState.Running)
|
|
|
+ _backroundMsg = _currentMsg;
|
|
|
|
|
|
if (ModuleHelper.IsLoadPort(mod))
|
|
|
{
|
|
|
- _backroundMsg = new EfemMessage
|
|
|
+ _currentMsg = new EfemMessage
|
|
|
{
|
|
|
Port = mod,
|
|
|
Operation = EfemOperation.Home,
|
|
@@ -165,10 +168,8 @@ namespace Venus_RT.Devices.EFEM
|
|
|
Parameters = new List<string> { Constant.ModuleString[mod] }
|
|
|
};
|
|
|
|
|
|
- _backround = true;
|
|
|
- _backroundlist.Add(_backroundMsg);
|
|
|
-
|
|
|
- return _socket.Write(_backroundMsg.ToString());
|
|
|
+ _status = RState.Running;
|
|
|
+ return _socket.Write(_currentMsg.ToString());
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -180,11 +181,9 @@ namespace Venus_RT.Devices.EFEM
|
|
|
Parameters = new List<string> { Constant.ModuleString[mod] }
|
|
|
};
|
|
|
|
|
|
- _backround = false;
|
|
|
_status = RState.Running;
|
|
|
return _socket.Write(_currentMsg.ToString());
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
|
|
|
public override bool OriginalSearch(ModuleName mod)
|
|
@@ -203,7 +202,6 @@ namespace Venus_RT.Devices.EFEM
|
|
|
}
|
|
|
};
|
|
|
|
|
|
- _backround = false;
|
|
|
_status = RState.Running;
|
|
|
return _socket.Write(_currentMsg.ToString());
|
|
|
}
|
|
@@ -221,7 +219,6 @@ namespace Venus_RT.Devices.EFEM
|
|
|
Parameters = new List<string> { "TRACK" }
|
|
|
};
|
|
|
|
|
|
- _backround = false;
|
|
|
_waferPresence = string.Empty;
|
|
|
_status = RState.Running;
|
|
|
return _socket.Write(_currentMsg.ToString());
|
|
@@ -234,6 +231,9 @@ namespace Venus_RT.Devices.EFEM
|
|
|
|
|
|
public override bool Halt()
|
|
|
{
|
|
|
+ if (_status == RState.Running)
|
|
|
+ _backroundMsg = _currentMsg;
|
|
|
+
|
|
|
_currentMsg = new EfemMessage
|
|
|
{
|
|
|
Port = ModuleName.EFEM,
|
|
@@ -241,7 +241,6 @@ namespace Venus_RT.Devices.EFEM
|
|
|
Head = EfemMessage.MsgHead.MOV,
|
|
|
};
|
|
|
|
|
|
- _backround = false;
|
|
|
_status = RState.Running;
|
|
|
return _socket.Write(_currentMsg.ToString());
|
|
|
}
|
|
@@ -254,7 +253,7 @@ namespace Venus_RT.Devices.EFEM
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
- _backroundMsg = new EfemMessage
|
|
|
+ _currentMsg = new EfemMessage
|
|
|
{
|
|
|
Port = ModuleName.EFEM,
|
|
|
Operation = EfemOperation.ClearError,
|
|
@@ -262,11 +261,10 @@ namespace Venus_RT.Devices.EFEM
|
|
|
Parameters = new List<string> { "CLEAR" }
|
|
|
};
|
|
|
|
|
|
- _backround = true;
|
|
|
- _backroundlist.Add(_backroundMsg);
|
|
|
_status = RState.Running;
|
|
|
- return _socket.Write(_backroundMsg.ToString());
|
|
|
+ return _socket.Write(_currentMsg.ToString());
|
|
|
}
|
|
|
+
|
|
|
public override bool PickExtend(ModuleName chamber, int slot, Hand hand)
|
|
|
{
|
|
|
if (!CheckEfemStatus())
|
|
@@ -283,8 +281,8 @@ namespace Venus_RT.Devices.EFEM
|
|
|
Constant.ArmString[hand],
|
|
|
}
|
|
|
};
|
|
|
+
|
|
|
SetRobotMovingInfo(RobotAction.Extending, hand, chamber);
|
|
|
- _backround = false;
|
|
|
_status = RState.Running;
|
|
|
return _socket.Write(_currentMsg.ToString());
|
|
|
}
|
|
@@ -305,7 +303,6 @@ namespace Venus_RT.Devices.EFEM
|
|
|
}
|
|
|
};
|
|
|
|
|
|
- _backround = false;
|
|
|
_status = RState.Running;
|
|
|
SetRobotMovingInfo(RobotAction.Retracting, hand, chamber);
|
|
|
return _socket.Write(_currentMsg.ToString());
|
|
@@ -327,11 +324,11 @@ namespace Venus_RT.Devices.EFEM
|
|
|
}
|
|
|
};
|
|
|
|
|
|
- _backround = false;
|
|
|
_status = RState.Running;
|
|
|
SetRobotMovingInfo(RobotAction.Extending, hand, chamber);
|
|
|
return _socket.Write(_currentMsg.ToString());
|
|
|
}
|
|
|
+
|
|
|
public override bool PlaceRetract(ModuleName chamber, int slot, Hand hand)
|
|
|
{
|
|
|
if (!CheckEfemStatus())
|
|
@@ -349,11 +346,11 @@ namespace Venus_RT.Devices.EFEM
|
|
|
}
|
|
|
};
|
|
|
|
|
|
- _backround = false;
|
|
|
_status = RState.Running;
|
|
|
SetRobotMovingInfo(RobotAction.Retracting, hand, chamber);
|
|
|
return _socket.Write(_currentMsg.ToString());
|
|
|
}
|
|
|
+
|
|
|
public override bool Pick(ModuleName station, int slot, Hand hand)
|
|
|
{
|
|
|
if (!CheckEfemStatus())
|
|
@@ -372,11 +369,11 @@ namespace Venus_RT.Devices.EFEM
|
|
|
}
|
|
|
};
|
|
|
|
|
|
- _backround = false;
|
|
|
_status = RState.Running;
|
|
|
SetRobotMovingInfo(RobotAction.Picking, hand, station);
|
|
|
return _socket.Write(_currentMsg.ToString());
|
|
|
}
|
|
|
+
|
|
|
public override bool Place(ModuleName station, int slot, Hand hand)
|
|
|
{
|
|
|
if (!CheckEfemStatus())
|
|
@@ -395,11 +392,11 @@ namespace Venus_RT.Devices.EFEM
|
|
|
}
|
|
|
};
|
|
|
|
|
|
- _backround = false;
|
|
|
_status = RState.Running;
|
|
|
SetRobotMovingInfo(RobotAction.Placing, hand, station);
|
|
|
return _socket.Write(_currentMsg.ToString());
|
|
|
}
|
|
|
+
|
|
|
public override bool Goto(ModuleName station, Hand hand)
|
|
|
{
|
|
|
if (!CheckEfemStatus())
|
|
@@ -418,10 +415,10 @@ namespace Venus_RT.Devices.EFEM
|
|
|
}
|
|
|
};
|
|
|
|
|
|
- _backround = false;
|
|
|
_status = RState.Running;
|
|
|
return _socket.Write(_currentMsg.ToString());
|
|
|
}
|
|
|
+
|
|
|
public override bool Grip(Hand blade, bool isGrip)
|
|
|
{
|
|
|
if (!CheckEfemStatus())
|
|
@@ -438,10 +435,10 @@ namespace Venus_RT.Devices.EFEM
|
|
|
}
|
|
|
};
|
|
|
|
|
|
- _backround = false;
|
|
|
_status = RState.Running;
|
|
|
return _socket.Write(_currentMsg.ToString());
|
|
|
}
|
|
|
+
|
|
|
public override bool Map(ModuleName mod)
|
|
|
{
|
|
|
if (!CheckEfemStatus())
|
|
@@ -454,10 +451,10 @@ namespace Venus_RT.Devices.EFEM
|
|
|
Parameters = new List<string> { Constant.ModuleString[mod] }
|
|
|
};
|
|
|
|
|
|
- _backround = false;
|
|
|
_status = RState.Running;
|
|
|
return _socket.Write(_currentMsg.ToString());
|
|
|
}
|
|
|
+
|
|
|
public override bool SetPinUp(ModuleName mod)
|
|
|
{
|
|
|
if (!CheckEfemStatus())
|
|
@@ -470,10 +467,10 @@ namespace Venus_RT.Devices.EFEM
|
|
|
Parameters = new List<string> { Constant.ModuleString[mod], "UP" }
|
|
|
};
|
|
|
|
|
|
- _backround = false;
|
|
|
_status = RState.Running;
|
|
|
return _socket.Write(_currentMsg.ToString());
|
|
|
}
|
|
|
+
|
|
|
public override bool SetPinDown(ModuleName mod)
|
|
|
{
|
|
|
if (!CheckEfemStatus())
|
|
@@ -486,10 +483,10 @@ namespace Venus_RT.Devices.EFEM
|
|
|
Parameters = new List<string> { Constant.ModuleString[mod], "DOWN" }
|
|
|
};
|
|
|
|
|
|
- _backround = false;
|
|
|
_status = RState.Running;
|
|
|
return _socket.Write(_currentMsg.ToString());
|
|
|
}
|
|
|
+
|
|
|
public override bool Align(ModuleName mod, double angle, float delayTime, WaferSize size)
|
|
|
{
|
|
|
if (!CheckEfemStatus())
|
|
@@ -502,13 +499,16 @@ namespace Venus_RT.Devices.EFEM
|
|
|
Parameters = new List<string> { $"A{angle.ToString("000.00")}" }
|
|
|
};
|
|
|
|
|
|
- _backround = false;
|
|
|
_status = RState.Running;
|
|
|
return _socket.Write(_currentMsg.ToString());
|
|
|
}
|
|
|
+
|
|
|
public override bool SetLamp(LightType light, LightStatus status)
|
|
|
{
|
|
|
- _backroundMsg = new EfemMessage
|
|
|
+ if (!CheckEfemStatus())
|
|
|
+ return false;
|
|
|
+
|
|
|
+ _currentMsg = new EfemMessage
|
|
|
{
|
|
|
Port = ModuleName.EFEM,
|
|
|
Operation = EfemOperation.Light,
|
|
@@ -516,13 +516,16 @@ namespace Venus_RT.Devices.EFEM
|
|
|
Parameters = new List<string> { Constant.STOWER, light.ToString(), status.ToString() }
|
|
|
};
|
|
|
|
|
|
- _backround = true;
|
|
|
- _backroundlist.Add(_backroundMsg);
|
|
|
- return _socket.Write(_backroundMsg.ToString());
|
|
|
+ _status = RState.Running;
|
|
|
+ return _socket.Write(_currentMsg.ToString());
|
|
|
}
|
|
|
+
|
|
|
public override bool Load(ModuleName mod)
|
|
|
{
|
|
|
- _backroundMsg = new EfemMessage
|
|
|
+ if (!CheckEfemStatus())
|
|
|
+ return false;
|
|
|
+
|
|
|
+ _currentMsg = new EfemMessage
|
|
|
{
|
|
|
Port = mod,
|
|
|
Operation = EfemOperation.Load,
|
|
@@ -530,13 +533,16 @@ namespace Venus_RT.Devices.EFEM
|
|
|
Parameters = new List<string> { Constant.ModuleString[mod] }
|
|
|
};
|
|
|
|
|
|
- _backround = true;
|
|
|
- _backroundlist.Add(_backroundMsg);
|
|
|
- return _socket.Write(_backroundMsg.ToString());
|
|
|
+ _status = RState.Running;
|
|
|
+ return _socket.Write(_currentMsg.ToString());
|
|
|
}
|
|
|
+
|
|
|
public override bool Unload(ModuleName mod)
|
|
|
{
|
|
|
- _backroundMsg = new EfemMessage
|
|
|
+ if (!CheckEfemStatus())
|
|
|
+ return false;
|
|
|
+
|
|
|
+ _currentMsg = new EfemMessage
|
|
|
{
|
|
|
Port = mod,
|
|
|
Operation = EfemOperation.Unload,
|
|
@@ -544,13 +550,16 @@ namespace Venus_RT.Devices.EFEM
|
|
|
Parameters = new List<string> { Constant.ModuleString[mod] }
|
|
|
};
|
|
|
|
|
|
- _backround = true;
|
|
|
- _backroundlist.Add(_backroundMsg);
|
|
|
- return _socket.Write(_backroundMsg.ToString());
|
|
|
+ _status = RState.Running;
|
|
|
+ return _socket.Write(_currentMsg.ToString());
|
|
|
}
|
|
|
+
|
|
|
public override bool ReadCarrierId(ModuleName mod)
|
|
|
{
|
|
|
- _backroundMsg = new EfemMessage
|
|
|
+ if (!CheckEfemStatus())
|
|
|
+ return false;
|
|
|
+
|
|
|
+ _currentMsg = new EfemMessage
|
|
|
{
|
|
|
Port = mod,
|
|
|
Operation = EfemOperation.CarrierId,
|
|
@@ -558,13 +567,16 @@ namespace Venus_RT.Devices.EFEM
|
|
|
Parameters = new List<string> { Constant.ModuleString[mod] }
|
|
|
};
|
|
|
|
|
|
- _backround = true;
|
|
|
- _backroundlist.Add(_backroundMsg);
|
|
|
- return _socket.Write(_backroundMsg.ToString());
|
|
|
+ _status = RState.Running;
|
|
|
+ return _socket.Write(_currentMsg.ToString());
|
|
|
}
|
|
|
+
|
|
|
public override bool WriteCarrierId(ModuleName mod, string id)
|
|
|
{
|
|
|
- _backroundMsg = new EfemMessage
|
|
|
+ if (!CheckEfemStatus())
|
|
|
+ return false;
|
|
|
+
|
|
|
+ _currentMsg = new EfemMessage
|
|
|
{
|
|
|
Port = mod,
|
|
|
Operation = EfemOperation.CarrierId,
|
|
@@ -572,13 +584,15 @@ namespace Venus_RT.Devices.EFEM
|
|
|
Parameters = new List<string> { Constant.ModuleString[mod], id }
|
|
|
};
|
|
|
|
|
|
- _backround = true;
|
|
|
- _backroundlist.Add(_backroundMsg);
|
|
|
- return _socket.Write(_backroundMsg.ToString());
|
|
|
+ _status = RState.Running;
|
|
|
+ return _socket.Write(_currentMsg.ToString());
|
|
|
}
|
|
|
public override bool ReadTagData(ModuleName mod)
|
|
|
{
|
|
|
- _backroundMsg = new EfemMessage
|
|
|
+ if (!CheckEfemStatus())
|
|
|
+ return false;
|
|
|
+
|
|
|
+ _currentMsg = new EfemMessage
|
|
|
{
|
|
|
Port = mod,
|
|
|
Operation = EfemOperation.CarrierId,
|
|
@@ -586,13 +600,15 @@ namespace Venus_RT.Devices.EFEM
|
|
|
Parameters = new List<string> { Constant.ModuleString[mod] }
|
|
|
};
|
|
|
|
|
|
- _backround = true;
|
|
|
- _backroundlist.Add(_backroundMsg);
|
|
|
- return _socket.Write(_backroundMsg.ToString());
|
|
|
+ _status = RState.Running;
|
|
|
+ return _socket.Write(_currentMsg.ToString());
|
|
|
}
|
|
|
public override bool WriteTagData(ModuleName mod, string tagData)
|
|
|
{
|
|
|
- _backroundMsg = new EfemMessage
|
|
|
+ if (!CheckEfemStatus())
|
|
|
+ return false;
|
|
|
+
|
|
|
+ _currentMsg = new EfemMessage
|
|
|
{
|
|
|
Port = mod,
|
|
|
Operation = EfemOperation.CarrierId,
|
|
@@ -600,13 +616,16 @@ namespace Venus_RT.Devices.EFEM
|
|
|
Parameters = new List<string> { Constant.ModuleString[mod], tagData }
|
|
|
};
|
|
|
|
|
|
- _backround = true;
|
|
|
- _backroundlist.Add(_backroundMsg);
|
|
|
- return _socket.Write(_backroundMsg.ToString());
|
|
|
+ _status = RState.Running;
|
|
|
+ return _socket.Write(_currentMsg.ToString());
|
|
|
}
|
|
|
+
|
|
|
public override bool Dock(ModuleName mod)
|
|
|
{
|
|
|
- _backroundMsg = new EfemMessage
|
|
|
+ if (!CheckEfemStatus())
|
|
|
+ return false;
|
|
|
+
|
|
|
+ _currentMsg = new EfemMessage
|
|
|
{
|
|
|
Port = mod,
|
|
|
Operation = EfemOperation.Dock,
|
|
@@ -614,13 +633,16 @@ namespace Venus_RT.Devices.EFEM
|
|
|
Parameters = new List<string> { Constant.ModuleString[mod] }
|
|
|
};
|
|
|
|
|
|
- _backround = true;
|
|
|
- _backroundlist.Add(_backroundMsg);
|
|
|
- return _socket.Write(_backroundMsg.ToString());
|
|
|
+ _status = RState.Running;
|
|
|
+ return _socket.Write(_currentMsg.ToString());
|
|
|
}
|
|
|
+
|
|
|
public override bool Undock(ModuleName mod)
|
|
|
{
|
|
|
- _backroundMsg = new EfemMessage
|
|
|
+ if (!CheckEfemStatus())
|
|
|
+ return false;
|
|
|
+
|
|
|
+ _currentMsg = new EfemMessage
|
|
|
{
|
|
|
Port = mod,
|
|
|
Operation = EfemOperation.Undock,
|
|
@@ -628,13 +650,16 @@ namespace Venus_RT.Devices.EFEM
|
|
|
Parameters = new List<string> { Constant.ModuleString[mod] }
|
|
|
};
|
|
|
|
|
|
- _backround = true;
|
|
|
- _backroundlist.Add(_backroundMsg);
|
|
|
- return _socket.Write(_backroundMsg.ToString());
|
|
|
+ _status = RState.Running;
|
|
|
+ return _socket.Write(_currentMsg.ToString());
|
|
|
}
|
|
|
+
|
|
|
public override bool Clamp(ModuleName mod, bool isUnloadClamp)
|
|
|
{
|
|
|
- _backroundMsg = new EfemMessage
|
|
|
+ if (!CheckEfemStatus())
|
|
|
+ return false;
|
|
|
+
|
|
|
+ _currentMsg = new EfemMessage
|
|
|
{
|
|
|
Port = mod,
|
|
|
Operation = EfemOperation.Clamp,
|
|
@@ -642,14 +667,16 @@ namespace Venus_RT.Devices.EFEM
|
|
|
Parameters = new List<string> { Constant.ModuleString[mod] }
|
|
|
};
|
|
|
|
|
|
- _backround = true;
|
|
|
- _backroundlist.Add(_backroundMsg);
|
|
|
+ _status = RState.Running;
|
|
|
_bIsUnloadClamp = isUnloadClamp;
|
|
|
- return _socket.Write(_backroundMsg.ToString());
|
|
|
+ return _socket.Write(_currentMsg.ToString());
|
|
|
}
|
|
|
public override bool Unclamp(ModuleName mod)
|
|
|
{
|
|
|
- _backroundMsg = new EfemMessage
|
|
|
+ if (!CheckEfemStatus())
|
|
|
+ return false;
|
|
|
+
|
|
|
+ _currentMsg = new EfemMessage
|
|
|
{
|
|
|
Port = mod,
|
|
|
Operation = EfemOperation.Unclamp,
|
|
@@ -657,13 +684,16 @@ namespace Venus_RT.Devices.EFEM
|
|
|
Parameters = new List<string> { Constant.ModuleString[mod] }
|
|
|
};
|
|
|
|
|
|
- _backround = true;
|
|
|
- _backroundlist.Add(_backroundMsg);
|
|
|
- return _socket.Write(_backroundMsg.ToString());
|
|
|
+ _status = RState.Running;
|
|
|
+ return _socket.Write(_currentMsg.ToString());
|
|
|
}
|
|
|
+
|
|
|
public override bool SetThickness(ModuleName mod, string thickness)
|
|
|
{
|
|
|
- _backroundMsg = new EfemMessage
|
|
|
+ if (!CheckEfemStatus())
|
|
|
+ return false;
|
|
|
+
|
|
|
+ _currentMsg = new EfemMessage
|
|
|
{
|
|
|
Port = mod,
|
|
|
Operation = EfemOperation.SetThickness,
|
|
@@ -671,10 +701,10 @@ namespace Venus_RT.Devices.EFEM
|
|
|
Parameters = new List<string> { Constant.ModuleString[mod], thickness.ToUpper() }
|
|
|
};
|
|
|
|
|
|
- _backround = true;
|
|
|
- _backroundlist.Add(_backroundMsg);
|
|
|
- return _socket.Write(_backroundMsg.ToString());
|
|
|
+ _status = RState.Running;
|
|
|
+ return _socket.Write(_currentMsg.ToString());
|
|
|
}
|
|
|
+
|
|
|
public override void SetRobotMovingInfo(RobotAction action, Hand hand, ModuleName target)
|
|
|
{
|
|
|
blockingCollection.Add(new RobotAnimationData(action, hand, target));
|
|
@@ -867,17 +897,11 @@ namespace Venus_RT.Devices.EFEM
|
|
|
{
|
|
|
if (message.Operation != EfemOperation.Ready)
|
|
|
{
|
|
|
- if (!SearchForDeleteBackMsg(message) && _currentMsg.Operation != message.Operation)
|
|
|
+ if (_currentMsg.Operation != message.Operation && (_backroundMsg == null || _backroundMsg.Operation != message.Operation))
|
|
|
{
|
|
|
LOG.Write(eEvent.ERR_EFEM_COMMON_FAILED, ModuleName.EfemRobot, $"OnCommandUpdated() unexpected return: {message.Operation}, expect: {_currentMsg.Operation}");
|
|
|
return;
|
|
|
}
|
|
|
- //var operation = _backround ? _backroundMsg.Operation : _currentMsg.Operation;
|
|
|
- //if (operation != message.Operation)
|
|
|
- //{
|
|
|
- // LOG.Write(eEvent.ERR_EFEM_COMMON_FAILED, ModuleName.EfemRobot, $"OnCommandUpdated() unexpected return: {message.Operation}, expect: {operation}");
|
|
|
- // return;
|
|
|
- //}
|
|
|
}
|
|
|
|
|
|
switch (message.Operation)
|
|
@@ -891,6 +915,7 @@ namespace Venus_RT.Devices.EFEM
|
|
|
case EfemOperation.Goto:
|
|
|
case EfemOperation.Orgsh:
|
|
|
case EfemOperation.EmsStop:
|
|
|
+ case EfemOperation.Light:
|
|
|
_status = RState.End;
|
|
|
break;
|
|
|
case EfemOperation.StateTrack:
|
|
@@ -907,7 +932,6 @@ namespace Venus_RT.Devices.EFEM
|
|
|
_LPMs[0].OnHomed();
|
|
|
_LPMs[1].OnHomed();
|
|
|
_LPMs[2].OnHomed();
|
|
|
- _backroundlist = new List<EfemMessage>() { };
|
|
|
}
|
|
|
else if (ModuleHelper.IsLoadPort(_currentMsg.Port))
|
|
|
{
|
|
@@ -920,11 +944,13 @@ namespace Venus_RT.Devices.EFEM
|
|
|
case EfemOperation.Load:
|
|
|
{
|
|
|
_LPMs[message.Port - ModuleName.LP1].OnLoaded();
|
|
|
+ _status = RState.End;
|
|
|
}
|
|
|
break;
|
|
|
case EfemOperation.Unload:
|
|
|
{
|
|
|
_LPMs[message.Port - ModuleName.LP1].OnUnloaded();
|
|
|
+ _status = RState.End;
|
|
|
}
|
|
|
break;
|
|
|
case EfemOperation.CarrierId:
|
|
@@ -937,16 +963,20 @@ namespace Venus_RT.Devices.EFEM
|
|
|
{
|
|
|
_LPMs[message.Port - ModuleName.LP1].OnCarrierIDWrite(message.Data.First());
|
|
|
}
|
|
|
+
|
|
|
+ _status = RState.End;
|
|
|
}
|
|
|
break;
|
|
|
case EfemOperation.Clamp:
|
|
|
{
|
|
|
_LPMs[message.Port - ModuleName.LP1].OnClamped(_bIsUnloadClamp);
|
|
|
+ _status = RState.End;
|
|
|
}
|
|
|
break;
|
|
|
case EfemOperation.Unclamp:
|
|
|
{
|
|
|
_LPMs[message.Port - ModuleName.LP1].OnUnclamped();
|
|
|
+ _status = RState.End;
|
|
|
}
|
|
|
break;
|
|
|
case EfemOperation.Grip:
|
|
@@ -959,7 +989,8 @@ namespace Venus_RT.Devices.EFEM
|
|
|
{
|
|
|
GripStateBlade2 = _currentMsg.Parameters[0];
|
|
|
}
|
|
|
- SearchForDeleteBackMsg(message);
|
|
|
+
|
|
|
+ _status = RState.End;
|
|
|
}
|
|
|
break;
|
|
|
case EfemOperation.Ready:
|
|
@@ -974,36 +1005,22 @@ namespace Venus_RT.Devices.EFEM
|
|
|
{
|
|
|
_LiftIsUp = true;
|
|
|
_LiftIsDown = false;
|
|
|
- _status = RState.End;
|
|
|
|
|
|
}
|
|
|
else if (_currentMsg.Parameters[1] == "DOWN")
|
|
|
{
|
|
|
_LiftIsUp = false;
|
|
|
_LiftIsDown = true;
|
|
|
- _status = RState.End;
|
|
|
}
|
|
|
+
|
|
|
+ _status = RState.End;
|
|
|
}
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
- private bool SearchForDeleteBackMsg(EfemMessage message)
|
|
|
- {
|
|
|
- //searchForDelete
|
|
|
- for (int i = 0; i < _backroundlist.Count; i++)
|
|
|
- {
|
|
|
- if (_backroundlist[i].Operation == message.Operation && _backroundlist[i].Port == message.Port)
|
|
|
- {
|
|
|
- _backroundlist.RemoveAt(i);//消除被去除后的空间 否则内存的GC变量将持续增长
|
|
|
- return true;
|
|
|
- }
|
|
|
- }
|
|
|
- return false;
|
|
|
- }
|
|
|
|
|
|
- async void SendBack(string data)
|
|
|
+ void SendBack(string data)
|
|
|
{
|
|
|
- //await Task.Run(() => _socket.Write(data + '\r'));
|
|
|
_socket.Write(data + '\r');
|
|
|
}
|
|
|
}
|