Sic.Framework-Nanjing-Baishi/MECF.Framework.RT.Equipment.../HardwareUnits/LoadPorts/TDK/EvtHandler.cs

178 lines
5.6 KiB
C#

using Aitex.Core.RT.Device;
using Aitex.Core.RT.Event;
using Aitex.Core.RT.Log;
namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.LoadPorts.TDK
{
public class SetEventHandler : IMsg //common move
{
public bool background { get; private set;}
public string deviceID { private get; set; }
private string _cmd = string.Empty;
public SetEventHandler()
{
background = false;
}
public string package(params object[] args)
{
_cmd = args[0].ToString();
return string.Format("EVT:{0}", _cmd);
}
public string retry()
{
return string.Format("RFN:{0}", _cmd);
}
public bool unpackage(string type, string[] cmds)
{
if (!type.Equals("ACK"))
return false;
return true;
}
public bool canhandle(string id)
{
return id.Equals(_cmd);
}
}
public class OnEventHandler : IMsg //common move
{
public bool background { get; private set; }
public string deviceID { private get; set; }
private string _cmd = string.Empty;
public OnEventHandler()
{
background = false;
}
public string package(params object[] args)
{
_cmd = args[0].ToString();
return "";
}
public string retry()
{
return "";
}
public bool unpackage(string type, string[] items)
{
TDKLoadPort device = DEVICE.GetDevice<TDKLoadPort>(deviceID);
if (type.Equals("INF") || type.Equals("RIF") )
{
string name = items[0];
switch (name)
{
case "PODON": // PODON The FOUP is moved from no load to the normal position.
{
device.OnCarrierPresent();
device.OnCarrierPlaced();
string reason = string.Empty;
device.OnEvent(out reason);
}
break;
case "PODOF": //PODOF The FOUP is moved from normal position to no load.
{
device.OnCarrierNotPlaced();
device.OnCarrierNotPresent();
string reason = string.Empty;
device.OnEvent(out reason);
}
break;
case "ABNST": //PODOF The FOUP is moved from normal position to no load.
{
device.OnCarrierNotPlaced();
//device.OnCarrierPresent();
string reason = string.Empty;
device.OnEvent(out reason);
}
break;
case "SMTON":
{
device.OnCarrierNotPlaced();
//device.OnCarrierPresent();
string reason = string.Empty;
device.OnEvent(out reason);
}
break;
case "FANST":
device.FFUIsOK = false;
break;
case "MANSW":
EV.PostMessage(device.Module, EventEnum.ManualOpAccess, device.Display);
device.OnSwitchKey1();
break;
case "MA2SW":
device.OnSwitchKey2();
break;
case "MANOF":
device.OffSwitchKey1();
break;
case "MA2OF":
device.OffSwitchKey2();
break;
case "ITLOF":
device.UnlockKey = false;
break;
case "ITLON":
device.UnlockKey = true;
break;
case "IPAON":
device.IsInfoPadAOn = true;
break;
case "IPBON":
device.IsInfoPadBOn = true;
break;
case "IPCON":
device.IsInfoPadCOn = true;
break;
case "IPDON":
device.IsInfoPadDOn = true;
break;
case "IPAOF":
device.IsInfoPadAOn = false;
break;
case "IPBOF":
device.IsInfoPadBOn = false;
break;
case "IPCOF":
device.IsInfoPadCOn = false;
break;
case "IPDOF":
device.IsInfoPadDOn = false;
break;
default:
LOG.Write(string.Format("Not handled event {0} from LP {1}", name, device.DeviceID));
break;
}
return true;
}
else if (type.Equals("ABS") || type.Equals("RAS"))
{
LOG.Write(string.Format("Received {0} event from {1}", type, device.DeviceID));
}
return false;
}
public bool canhandle(string id)
{
return true;
}
}
}