|
@@ -78,7 +78,8 @@ namespace Venus_RT.Devices.EFEM
|
|
|
CarrierManager.Instance.SubscribeLocation(ModuleName.LP3.ToString(), 1);
|
|
|
|
|
|
|
|
|
- Action<ModuleName, int> _subscribeLoc = (ModuleName module, int waferCount) => {
|
|
|
+ Action<ModuleName, int> _subscribeLoc = (ModuleName module, int waferCount) =>
|
|
|
+ {
|
|
|
if (ModuleHelper.IsInstalled(module))
|
|
|
{
|
|
|
WaferManager.Instance.SubscribeLocation(module, waferCount);
|
|
@@ -152,7 +153,6 @@ namespace Venus_RT.Devices.EFEM
|
|
|
}
|
|
|
public override bool Home(ModuleName mod)
|
|
|
{
|
|
|
- SetRobotMovingInfo(RobotAction.Homing, Hand.Both, ModuleName.EFEM);
|
|
|
|
|
|
if (ModuleHelper.IsLoadPort(mod))
|
|
|
{
|
|
@@ -183,7 +183,7 @@ namespace Venus_RT.Devices.EFEM
|
|
|
_status = RState.Running;
|
|
|
return _socket.Write(_currentMsg.ToString());
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
|
|
|
public override bool OriginalSearch(ModuleName mod)
|
|
@@ -198,7 +198,7 @@ namespace Venus_RT.Devices.EFEM
|
|
|
Head = EfemMessage.MsgHead.MOV,
|
|
|
Parameters = new List<string>
|
|
|
{
|
|
|
- Constant.ModuleString[mod]
|
|
|
+ Constant.ModuleString[mod]
|
|
|
}
|
|
|
};
|
|
|
|
|
@@ -247,7 +247,7 @@ namespace Venus_RT.Devices.EFEM
|
|
|
|
|
|
public override bool ClearError()
|
|
|
{
|
|
|
- if(_status == RState.Running)
|
|
|
+ if (_status == RState.Running)
|
|
|
{
|
|
|
LOG.Write(eEvent.ERR_EFEM_ROBOT, ModuleName.EFEM, "EFEM is busy, please wait a minute");
|
|
|
return false;
|
|
@@ -358,7 +358,7 @@ namespace Venus_RT.Devices.EFEM
|
|
|
if (!CheckEfemStatus())
|
|
|
return false;
|
|
|
|
|
|
- Position SrcPos = new Position { Module= station,Slot= (byte)slot };
|
|
|
+ Position SrcPos = new Position { Module = station, Slot = (byte)slot };
|
|
|
_currentMsg = new EfemMessage
|
|
|
{
|
|
|
Operation = EfemOperation.Pick,
|
|
@@ -496,7 +496,7 @@ namespace Venus_RT.Devices.EFEM
|
|
|
|
|
|
_currentMsg = new EfemMessage
|
|
|
{
|
|
|
- Operation = EfemOperation.Align,
|
|
|
+ Operation = EfemOperation.Align,
|
|
|
Head = EfemMessage.MsgHead.MOV,
|
|
|
Parameters = new List<string> { $"A{angle.ToString("000.00")}" }
|
|
|
};
|
|
@@ -504,7 +504,7 @@ namespace Venus_RT.Devices.EFEM
|
|
|
_backround = false;
|
|
|
_status = RState.Running;
|
|
|
return _socket.Write(_currentMsg.ToString());
|
|
|
- }
|
|
|
+ }
|
|
|
public override bool SetLamp(LightType light, LightStatus status)
|
|
|
{
|
|
|
_backroundMsg = new EfemMessage
|
|
@@ -610,7 +610,7 @@ namespace Venus_RT.Devices.EFEM
|
|
|
Port = mod,
|
|
|
Operation = EfemOperation.Dock,
|
|
|
Head = EfemMessage.MsgHead.MOV,
|
|
|
- Parameters = new List<string> { Constant.ModuleString[mod]}
|
|
|
+ Parameters = new List<string> { Constant.ModuleString[mod] }
|
|
|
};
|
|
|
|
|
|
_backround = true;
|
|
@@ -624,7 +624,7 @@ namespace Venus_RT.Devices.EFEM
|
|
|
Port = mod,
|
|
|
Operation = EfemOperation.Undock,
|
|
|
Head = EfemMessage.MsgHead.MOV,
|
|
|
- Parameters = new List<string> { Constant.ModuleString[mod]}
|
|
|
+ Parameters = new List<string> { Constant.ModuleString[mod] }
|
|
|
};
|
|
|
|
|
|
_backround = true;
|
|
@@ -700,7 +700,7 @@ namespace Venus_RT.Devices.EFEM
|
|
|
{
|
|
|
_revMsg = rec_msg;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
break;
|
|
|
|
|
|
case EfemMessage.MsgHead.INF:
|
|
@@ -726,6 +726,10 @@ namespace Venus_RT.Devices.EFEM
|
|
|
CommandType = rec_msg.Operation,
|
|
|
DataList = rec_msg.Data
|
|
|
});
|
|
|
+ if (rec_msg.Operation == EfemOperation.Home)
|
|
|
+ {
|
|
|
+ SetRobotMovingInfo(RobotAction.Homing, Hand.Both, ModuleName.EFEM);
|
|
|
+ }
|
|
|
break;
|
|
|
|
|
|
case EfemMessage.MsgHead.NAK:
|
|
@@ -746,7 +750,7 @@ namespace Venus_RT.Devices.EFEM
|
|
|
private void OnErrorOccurred(EfemMessage message)
|
|
|
{
|
|
|
string description = string.Empty;
|
|
|
- switch(message.Head)
|
|
|
+ switch (message.Head)
|
|
|
{
|
|
|
case EfemMessage.MsgHead.NAK:
|
|
|
description = Constant.FactorString[message.Factor];
|
|
@@ -864,9 +868,9 @@ namespace Venus_RT.Devices.EFEM
|
|
|
|
|
|
private void OnCommandUpdated(EfemMessage message)
|
|
|
{
|
|
|
- if(message.Operation != EfemOperation.Ready)
|
|
|
+ if (message.Operation != EfemOperation.Ready)
|
|
|
{
|
|
|
- if (!SearchForDeleteBackMsg(message) && _currentMsg.Operation != message.Operation )
|
|
|
+ if (!SearchForDeleteBackMsg(message) && _currentMsg.Operation != message.Operation)
|
|
|
{
|
|
|
LOG.Write(eEvent.ERR_EFEM_COMMON_FAILED, ModuleName.EfemRobot, $"OnCommandUpdated() unexpected return: {message.Operation}, expect: {_currentMsg.Operation}");
|
|
|
return;
|
|
@@ -879,7 +883,7 @@ namespace Venus_RT.Devices.EFEM
|
|
|
//}
|
|
|
}
|
|
|
|
|
|
- switch(message.Operation)
|
|
|
+ switch (message.Operation)
|
|
|
{
|
|
|
case EfemOperation.ClearError:
|
|
|
case EfemOperation.Align:
|
|
@@ -901,14 +905,14 @@ namespace Venus_RT.Devices.EFEM
|
|
|
break;
|
|
|
case EfemOperation.Home:
|
|
|
{
|
|
|
- if(_currentMsg.Port == ModuleName.EFEM)
|
|
|
+ if (_currentMsg.Port == ModuleName.EFEM)
|
|
|
{
|
|
|
_LPMs[0].OnHomed();
|
|
|
_LPMs[1].OnHomed();
|
|
|
_LPMs[2].OnHomed();
|
|
|
_backroundlist = new List<EfemMessage>() { };
|
|
|
}
|
|
|
- else if(ModuleHelper.IsLoadPort(_currentMsg.Port))
|
|
|
+ else if (ModuleHelper.IsLoadPort(_currentMsg.Port))
|
|
|
{
|
|
|
_LPMs[_currentMsg.Port - ModuleName.LP1].OnHomed();
|
|
|
}
|
|
@@ -928,7 +932,7 @@ namespace Venus_RT.Devices.EFEM
|
|
|
break;
|
|
|
case EfemOperation.CarrierId:
|
|
|
{
|
|
|
- if(message.Head == EfemMessage.MsgHead.GET)
|
|
|
+ if (message.Head == EfemMessage.MsgHead.GET)
|
|
|
{
|
|
|
_LPMs[message.Port - ModuleName.LP1].OnCarrierIDRead(message.Data.First());
|
|
|
}
|
|
@@ -989,7 +993,7 @@ namespace Venus_RT.Devices.EFEM
|
|
|
private bool SearchForDeleteBackMsg(EfemMessage message)
|
|
|
{
|
|
|
//searchForDelete
|
|
|
- for (int i = 0;i< _backroundlist.Count;i++)
|
|
|
+ for (int i = 0; i < _backroundlist.Count; i++)
|
|
|
{
|
|
|
if (_backroundlist[i].Operation == message.Operation && _backroundlist[i].Port == message.Port)
|
|
|
{
|
|
@@ -1002,7 +1006,7 @@ namespace Venus_RT.Devices.EFEM
|
|
|
|
|
|
async void SendBack(string data)
|
|
|
{
|
|
|
- await Task.Run(()=> _socket.Write(data + '\r'));
|
|
|
+ await Task.Run(() => _socket.Write(data + '\r'));
|
|
|
}
|
|
|
}
|
|
|
}
|