|
@@ -7,6 +7,7 @@ using Aitex.Core.Util;
|
|
|
using Aitex.Sorter.Common;
|
|
|
using MECF.Framework.Common.Equipment;
|
|
|
using MECF.Framework.Common.SubstrateTrackings;
|
|
|
+using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.LoadPorts;
|
|
|
using System;
|
|
|
using System.Collections;
|
|
|
using System.Collections.Generic;
|
|
@@ -35,6 +36,12 @@ namespace Venus_RT.Devices.EFEM
|
|
|
public bool JobDone { get; set; }
|
|
|
public Stopwatch TimerNotifyJobDone { get; set; }
|
|
|
|
|
|
+ public IE87CallBack LPCallBack
|
|
|
+ {
|
|
|
+ get { return _lpCallBack; }
|
|
|
+ set { _lpCallBack = value; }
|
|
|
+ }
|
|
|
+ private IE87CallBack _lpCallBack;
|
|
|
public bool IsThicknessValid
|
|
|
{
|
|
|
get
|
|
@@ -50,6 +57,10 @@ namespace Venus_RT.Devices.EFEM
|
|
|
return _waferThicknessType;
|
|
|
}
|
|
|
}
|
|
|
+ public string PortId
|
|
|
+ {
|
|
|
+ get; private set;
|
|
|
+ }
|
|
|
|
|
|
public bool IsClamped { get; set; }
|
|
|
public bool IsLoaded { get; set; }
|
|
@@ -77,16 +88,6 @@ namespace Venus_RT.Devices.EFEM
|
|
|
return string.Join("", _slotMap);
|
|
|
}
|
|
|
}
|
|
|
- private string Port1CassetteArrive = "Port1CassetteArrive";
|
|
|
- private string Port1CassetteRemoved = "Port1CassetteRemoved";
|
|
|
- private string Port1MappingComplete = "Port1MappingComplete";
|
|
|
- private string Port1MappingFailed = "Port1MappingFailed";
|
|
|
-
|
|
|
- private string Port2CassetteArrive = "Port2CassetteArrive";
|
|
|
- private string Port2CassetteRemoved = "Port2CassetteRemoved";
|
|
|
- private string Port2MappingComplete = "Port2MappingComplete";
|
|
|
- private string Port2MappingFailed = "Port2MappingFailed";
|
|
|
-
|
|
|
private string _waferThicknessType;
|
|
|
|
|
|
private bool _enableThickness;
|
|
@@ -98,6 +99,7 @@ namespace Venus_RT.Devices.EFEM
|
|
|
public Loadport(ModuleName mod, EfemBase efem)
|
|
|
{
|
|
|
Module = mod;
|
|
|
+ PortId = ((int)mod - (int)ModuleName.LP1 + 1).ToString();
|
|
|
_controller = efem;
|
|
|
|
|
|
TimerNotifyJobDone = new Stopwatch();
|
|
@@ -105,17 +107,6 @@ namespace Venus_RT.Devices.EFEM
|
|
|
|
|
|
_enableThickness = false;// SC.GetValue<bool>("System.WaferThickness.EnableThickness");
|
|
|
|
|
|
- EV.Subscribe(new EventItem("Event", Port1CassetteArrive, "Port1CassetteArrive"));
|
|
|
- EV.Subscribe(new EventItem("Event", Port1CassetteRemoved, "Port1CassetteRemoved"));
|
|
|
- EV.Subscribe(new EventItem("Event", Port1MappingComplete, "Port1MappingComplete"));
|
|
|
- EV.Subscribe(new EventItem("Event", Port1MappingFailed, "Port1MappingFailed"));
|
|
|
-
|
|
|
- EV.Subscribe(new EventItem("Event", Port2CassetteArrive, "Port2CassetteArrive"));
|
|
|
- EV.Subscribe(new EventItem("Event", Port2CassetteRemoved, "Port2CassetteRemoved"));
|
|
|
- EV.Subscribe(new EventItem("Event", Port2MappingComplete, "Port2MappingComplete"));
|
|
|
- EV.Subscribe(new EventItem("Event", Port2MappingFailed, "Port2MappingFailed"));
|
|
|
-
|
|
|
-
|
|
|
EV.Subscribe(new EventItem("Event", AlarmWaferProtrude, "Wafer protrude", EventLevel.Alarm, EventType.HostNotification));
|
|
|
|
|
|
|
|
@@ -244,6 +235,14 @@ namespace Venus_RT.Devices.EFEM
|
|
|
_controller.Load(Module);
|
|
|
}
|
|
|
|
|
|
+ public void LoadStart()
|
|
|
+ {
|
|
|
+ if(_lpCallBack!=null)
|
|
|
+ {
|
|
|
+ _lpCallBack.LoadStart();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
public void OnLoadFailed(string data)
|
|
|
{
|
|
|
IsError = true;
|
|
@@ -262,6 +261,10 @@ namespace Venus_RT.Devices.EFEM
|
|
|
IsMapped = true;
|
|
|
|
|
|
_faCallback.LoadComplete(this);
|
|
|
+ if(_lpCallBack!=null)
|
|
|
+ {
|
|
|
+ _lpCallBack.LoadComplete();
|
|
|
+ }
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
@@ -293,6 +296,13 @@ namespace Venus_RT.Devices.EFEM
|
|
|
_controller.Unload(Module);
|
|
|
}
|
|
|
|
|
|
+ public void UnloadStart()
|
|
|
+ {
|
|
|
+ if(_lpCallBack!=null)
|
|
|
+ {
|
|
|
+ _lpCallBack.UnLoadStart();
|
|
|
+ }
|
|
|
+ }
|
|
|
public void OnUnloadFailed(string data)
|
|
|
{
|
|
|
IsError = true;
|
|
@@ -632,22 +642,16 @@ namespace Venus_RT.Devices.EFEM
|
|
|
else
|
|
|
{
|
|
|
resultNormal = false;
|
|
|
- //EV.PostAlarmLog(this.Module.ToString(), $"Found {st} Wafer on Slot {index + 1} {WaferSize}");
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- var dvidMap = new SerializableDictionary<string, string>();
|
|
|
- dvidMap[DVIDName.SlotMap] = sWaferInfo;
|
|
|
- dvidMap[DVIDName.PortID] = Module == ModuleName.LP1 ? "1" : "2";
|
|
|
if (resultNormal)
|
|
|
{
|
|
|
- //EV.Notify(Module == ModuleName.LP1 ? Port1MappingComplete : Port2MappingComplete, dvidMap);
|
|
|
+ _faCallback.CarrierSlotMapComplete(this);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- //EV.Notify(Module == ModuleName.LP1 ? Port1MappingFailed : Port2MappingFailed, dvidMap);
|
|
|
- //EV.PostAlarmLog(Module == ModuleName.LP1 ? "Port1" : "Port2", " MappingFailed");
|
|
|
+ _faCallback.CarrierSlotMapFailed(this);
|
|
|
}
|
|
|
|
|
|
this.IsMapped = true;
|
|
@@ -690,9 +694,7 @@ namespace Venus_RT.Devices.EFEM
|
|
|
CarrierManager.Instance.DeleteCarrier(Module.ToString());
|
|
|
WaferManager.Instance.DeleteWafer(this.Module, 0, 25);
|
|
|
|
|
|
- SerializableDictionary<string, string> dvid = new SerializableDictionary<string, string>();
|
|
|
- dvid["PortID"] = mod == ModuleName.LP1 ? "1" : "2";
|
|
|
- EV.Notify(mod == ModuleName.LP1 ? Port1CassetteRemoved : Port2CassetteRemoved, dvid);
|
|
|
+ _faCallback.CarrierRemoved(this);
|
|
|
JobDone = false;
|
|
|
_waferThicknessType = "";
|
|
|
}
|
|
@@ -703,11 +705,8 @@ namespace Venus_RT.Devices.EFEM
|
|
|
{
|
|
|
this.HasCassette = true;
|
|
|
CarrierManager.Instance.CreateCarrier(Module.ToString());
|
|
|
- EV.PostInfoLog(mod.ToString(), $"Cassette {WaferSize} arrived");
|
|
|
+ _faCallback.CarrierArrived(this);
|
|
|
|
|
|
- //var dvid1 = new SerializableDictionary<string, string>();
|
|
|
- //dvid1["PortID"] = mod == ModuleName.LP1 ? "1" : "2";
|
|
|
- //EV.Notify(mod == ModuleName.LP1 ? Port1CassetteArrive : Port2CassetteArrive, dvid1);
|
|
|
JobDone = false;
|
|
|
_waferThicknessType = "";
|
|
|
}
|
|
@@ -854,350 +853,162 @@ namespace Venus_RT.Devices.EFEM
|
|
|
|
|
|
sealed class LoadPortFACallback
|
|
|
{
|
|
|
- private const string Port1LoadComplete = "Port1LoadComplete";
|
|
|
- private const string Port1LoadFailed = "Port1LoadFailed";
|
|
|
- private const string Port1UnloadComplete = "Port1UnloadComplete";
|
|
|
- private const string Port1UnloadFailed = "Port1UnloadFailed";
|
|
|
-
|
|
|
- private const string Port1Clamped = "Port1Clamped";
|
|
|
- private const string Port1Unclamped = "Port1Unclamped";
|
|
|
- private const string Port1IDRead = "Port1IDRead";
|
|
|
- private const string Port1ReadIDFailed = "Port1ReadIDFailed";
|
|
|
- private const string Port1IDWrite = "Port1IDWrite";
|
|
|
- private const string Port1WriteIDFailed = "Port1WriteIDFailed";
|
|
|
- private const string Port1TagDataRead = "Port1TagDataRead";
|
|
|
- private const string Port1ReadTagDataFailed = "Port1ReadTagDataFailed";
|
|
|
- private const string Port1TagDataWrite = "Port1TagDataWrite";
|
|
|
- private const string Port1WriteTagDataFailed = "Port1WriteTagDataFailed";
|
|
|
-
|
|
|
- private const string Port2LoadComplete = "Port2LoadComplete";
|
|
|
- private const string Port2LoadFailed = "Port2LoadFailed";
|
|
|
- private const string Port2UnloadComplete = "Port2UnloadComplete";
|
|
|
- private const string Port2UnloadFailed = "Port2UnloadFailed";
|
|
|
-
|
|
|
- private const string Port2Clamped = "Port2Clamped";
|
|
|
- private const string Port2Unclamped = "Port2Unclamped";
|
|
|
- private const string Port2IDRead = "Port2IDRead";
|
|
|
- private const string Port2ReadIDFailed = "Port2ReadIDFailed";
|
|
|
- private const string Port2IDWrite = "Port2IDWrite";
|
|
|
- private const string Port2WriteIDFailed = "Port2WriteIDFailed";
|
|
|
- private const string Port2TagDataRead = "Port2TagDataRead";
|
|
|
- private const string Port2ReadTagDataFailed = "Port2ReadTagDataFailed";
|
|
|
- private const string Port2TagDataWrite = "Port2TagDataWrite";
|
|
|
- private const string Port2WriteTagDataFailed = "Port2WriteTagDataFailed";
|
|
|
-
|
|
|
- private const string Port3LoadComplete = "Port3LoadComplete";
|
|
|
- private const string Port3LoadFailed = "Port3LoadFailed";
|
|
|
- private const string Port3UnloadComplete = "Port3UnloadComplete";
|
|
|
- private const string Port3UnloadFailed = "Port3UnloadFailed";
|
|
|
-
|
|
|
- private const string Port3Clamped = "Port3Clamped";
|
|
|
- private const string Port3Unclamped = "Port3Unclamped";
|
|
|
- private const string Port3IDRead = "Port3IDRead";
|
|
|
- private const string Port3ReadIDFailed = "Port3ReadIDFailed";
|
|
|
- private const string Port3IDWrite = "Port3IDWrite";
|
|
|
- private const string Port3WriteIDFailed = "Port3WriteIDFailed";
|
|
|
- private const string Port3TagDataRead = "Port3TagDataRead";
|
|
|
- private const string Port3ReadTagDataFailed = "Port3ReadTagDataFailed";
|
|
|
- private const string Port3TagDataWrite = "Port3TagDataWrite";
|
|
|
- private const string Port3WriteTagDataFailed = "Port3WriteTagDataFailed";
|
|
|
- private Dictionary<ModuleName, string> PortLoadComplete = new Dictionary<ModuleName, string>()
|
|
|
- {
|
|
|
- {ModuleName.LP1, Port1LoadComplete},
|
|
|
- {ModuleName.LP2, Port2LoadComplete},
|
|
|
- {ModuleName.LP3, Port3LoadComplete},
|
|
|
- };
|
|
|
+ private string CARRIER_ARRIVED = "CARRIER_ARRIVED";
|
|
|
+ private string CARRIER_REMOVED = "CARRIER_REMOVED";
|
|
|
+ private string SLOT_MAP_AVAILABLE = "SLOT_MAP_AVAILABLE";
|
|
|
+ private string SLOT_MAP_FAILED = "SLOT_MAP_FAILED";
|
|
|
+ private const string CARRIER_LOADED = "CARRIER_LOADED";
|
|
|
+ private const string PortLoadFailed = "PortLoadFailed";
|
|
|
+ private const string CARRIER_UNLOADED = "CARRIER_UNLOADED";
|
|
|
+ private const string PortUnloadFailed = "PortUnloadFailed";
|
|
|
+ private const string PortClamped = "PortClamped";
|
|
|
+ private const string PortUnclamped = "PortUnclamped";
|
|
|
+ private const string CARRIER_ID_READ = "CARRIER_ID_READ";
|
|
|
+ private const string PortReadIDFailed = "PortReadIDFailed";
|
|
|
+ private const string PortIDWrite = "PortIDWrite";
|
|
|
+ private const string PortWriteIDFailed = "PortWriteIDFailed";
|
|
|
+ private const string PortTagDataRead = "PortTagDataRead";
|
|
|
+ private const string PortReadTagDataFailed = "PortReadTagDataFailed";
|
|
|
+ private const string PortTagDataWrite = "PortTagDataWrite";
|
|
|
+ private const string PortWriteTagDataFailed = "PortWriteTagDataFailed";
|
|
|
|
|
|
- private Dictionary<ModuleName, string> PortLoadFailed = new Dictionary<ModuleName, string>()
|
|
|
- {
|
|
|
- {ModuleName.LP1, Port1LoadFailed},
|
|
|
- {ModuleName.LP2, Port2LoadFailed},
|
|
|
- {ModuleName.LP3, Port3LoadFailed},
|
|
|
- };
|
|
|
|
|
|
- private Dictionary<ModuleName, string> PortUnloadComplete = new Dictionary<ModuleName, string>()
|
|
|
- {
|
|
|
- {ModuleName.LP1, Port1UnloadComplete},
|
|
|
- {ModuleName.LP2, Port2UnloadComplete},
|
|
|
- {ModuleName.LP3, Port3UnloadComplete},
|
|
|
- };
|
|
|
-
|
|
|
- private Dictionary<ModuleName, string> PortUnloadFailed = new Dictionary<ModuleName, string>()
|
|
|
- {
|
|
|
- {ModuleName.LP1, Port1UnloadFailed},
|
|
|
- {ModuleName.LP2, Port2UnloadFailed},
|
|
|
- {ModuleName.LP3, Port3UnloadFailed},
|
|
|
- };
|
|
|
- private Dictionary<ModuleName, string> PortClamped = new Dictionary<ModuleName, string>()
|
|
|
- {
|
|
|
- {ModuleName.LP1, Port1Clamped},
|
|
|
- {ModuleName.LP2, Port2Clamped},
|
|
|
- {ModuleName.LP3, Port3Clamped},
|
|
|
- };
|
|
|
- private Dictionary<ModuleName, string> PortUnclamped = new Dictionary<ModuleName, string>()
|
|
|
- {
|
|
|
- {ModuleName.LP1, Port1Unclamped},
|
|
|
- {ModuleName.LP2, Port2Unclamped},
|
|
|
- {ModuleName.LP3, Port3Unclamped},
|
|
|
- };
|
|
|
- private Dictionary<ModuleName, string> PortIDRead = new Dictionary<ModuleName, string>()
|
|
|
- {
|
|
|
- {ModuleName.LP1, Port1IDRead},
|
|
|
- {ModuleName.LP2, Port2IDRead},
|
|
|
- {ModuleName.LP3, Port3IDRead},
|
|
|
- };
|
|
|
- private Dictionary<ModuleName, string> PortReadIDFailed = new Dictionary<ModuleName, string>()
|
|
|
- {
|
|
|
- {ModuleName.LP1, Port1ReadIDFailed},
|
|
|
- {ModuleName.LP2, Port2ReadIDFailed},
|
|
|
- {ModuleName.LP3, Port3ReadIDFailed},
|
|
|
- };
|
|
|
- private Dictionary<ModuleName, string> PortIDWrite = new Dictionary<ModuleName, string>()
|
|
|
- {
|
|
|
- {ModuleName.LP1, Port1IDWrite},
|
|
|
- {ModuleName.LP2, Port2IDWrite},
|
|
|
- {ModuleName.LP3, Port3IDWrite},
|
|
|
- };
|
|
|
- private Dictionary<ModuleName, string> PortWriteIDFailed = new Dictionary<ModuleName, string>()
|
|
|
+ public LoadPortFACallback()
|
|
|
{
|
|
|
- {ModuleName.LP1, Port1WriteIDFailed},
|
|
|
- {ModuleName.LP2, Port2WriteIDFailed},
|
|
|
- {ModuleName.LP3, Port3WriteIDFailed},
|
|
|
- };
|
|
|
+ EV.Subscribe(new EventItem("Event", CARRIER_ARRIVED, "Carrier Arrived"));
|
|
|
+ EV.Subscribe(new EventItem("Event", CARRIER_REMOVED, "Carrier Removed"));
|
|
|
+ EV.Subscribe(new EventItem("Event", SLOT_MAP_AVAILABLE, "Slot map available"));
|
|
|
+ EV.Subscribe(new EventItem("Event", SLOT_MAP_FAILED, "Slot map failed"));
|
|
|
+ EV.Subscribe(new EventItem("Event", CARRIER_LOADED, "Carrier Loaded"));
|
|
|
+ EV.Subscribe(new EventItem("Event", PortLoadFailed, PortLoadFailed));
|
|
|
+ EV.Subscribe(new EventItem("Event", CARRIER_UNLOADED, "Carrier Unloaded"));
|
|
|
+ EV.Subscribe(new EventItem("Event", PortUnloadFailed, PortUnloadFailed));
|
|
|
+ EV.Subscribe(new EventItem("Event", PortClamped, "Port Clamped"));
|
|
|
+ EV.Subscribe(new EventItem("Event", PortUnclamped, PortUnclamped));
|
|
|
+ EV.Subscribe(new EventItem("Event", CARRIER_ID_READ, "Carrier Id Read"));
|
|
|
+ EV.Subscribe(new EventItem("Event", PortReadIDFailed, PortReadIDFailed));
|
|
|
+ EV.Subscribe(new EventItem("Event", PortIDWrite, PortIDWrite));
|
|
|
+ EV.Subscribe(new EventItem("Event", PortWriteIDFailed, PortWriteIDFailed));
|
|
|
+ EV.Subscribe(new EventItem("Event", PortTagDataRead, PortTagDataRead));
|
|
|
+ EV.Subscribe(new EventItem("Event", PortReadTagDataFailed, PortReadTagDataFailed));
|
|
|
+ EV.Subscribe(new EventItem("Event", PortTagDataWrite, PortTagDataWrite));
|
|
|
+ EV.Subscribe(new EventItem("Event", PortWriteTagDataFailed, PortWriteTagDataFailed));
|
|
|
+ }
|
|
|
|
|
|
- private Dictionary<ModuleName, string> PortTagDataRead = new Dictionary<ModuleName, string>()
|
|
|
- {
|
|
|
- {ModuleName.LP1, Port1TagDataRead},
|
|
|
- {ModuleName.LP2, Port2TagDataRead},
|
|
|
- {ModuleName.LP3, Port3TagDataRead},
|
|
|
- };
|
|
|
- private Dictionary<ModuleName, string> PortReadTagDataFailed = new Dictionary<ModuleName, string>()
|
|
|
- {
|
|
|
- {ModuleName.LP1, Port1ReadTagDataFailed},
|
|
|
- {ModuleName.LP2, Port2ReadTagDataFailed},
|
|
|
- {ModuleName.LP3, Port3ReadTagDataFailed},
|
|
|
- };
|
|
|
- private Dictionary<ModuleName, string> PortTagDataWrite = new Dictionary<ModuleName, string>()
|
|
|
- {
|
|
|
- {ModuleName.LP1, Port1TagDataWrite},
|
|
|
- {ModuleName.LP2, Port2TagDataWrite},
|
|
|
- {ModuleName.LP3, Port3TagDataWrite},
|
|
|
- };
|
|
|
- private Dictionary<ModuleName, string> PortWriteTagDataFailed = new Dictionary<ModuleName, string>()
|
|
|
+
|
|
|
+ public void CarrierArrived(Loadport lp)
|
|
|
{
|
|
|
- {ModuleName.LP1, Port1WriteTagDataFailed},
|
|
|
- {ModuleName.LP2, Port2WriteTagDataFailed},
|
|
|
- {ModuleName.LP3, Port3WriteTagDataFailed},
|
|
|
- };
|
|
|
+ SerializableDictionary<string, string> dvid = new SerializableDictionary<string, string>();
|
|
|
+ dvid["PortID"] = lp.PortId;
|
|
|
|
|
|
- private Dictionary<ModuleName, string> PortId = new Dictionary<ModuleName, string>()
|
|
|
- {
|
|
|
- {ModuleName.LP1, "1"},
|
|
|
- {ModuleName.LP2, "2"},
|
|
|
- {ModuleName.LP3, "3"},
|
|
|
- };
|
|
|
+ EV.Notify(CARRIER_ARRIVED, dvid);
|
|
|
+ }
|
|
|
|
|
|
- public LoadPortFACallback()
|
|
|
+ public void CarrierRemoved(Loadport lp)
|
|
|
{
|
|
|
- EV.Subscribe(new EventItem("Event", Port1LoadComplete, Port1LoadComplete));
|
|
|
- EV.Subscribe(new EventItem("Event", Port1LoadFailed, Port1LoadFailed));
|
|
|
- EV.Subscribe(new EventItem("Event", Port1UnloadComplete, Port1UnloadComplete));
|
|
|
- EV.Subscribe(new EventItem("Event", Port1UnloadFailed, Port1UnloadFailed));
|
|
|
-
|
|
|
- EV.Subscribe(new EventItem("Event", Port1Clamped, Port1Clamped));
|
|
|
- EV.Subscribe(new EventItem("Event", Port1Unclamped, Port1Unclamped));
|
|
|
- EV.Subscribe(new EventItem("Event", Port1IDRead, Port1IDRead));
|
|
|
- EV.Subscribe(new EventItem("Event", Port1ReadIDFailed, Port1ReadIDFailed));
|
|
|
- EV.Subscribe(new EventItem("Event", Port1IDWrite, Port1IDWrite));
|
|
|
- EV.Subscribe(new EventItem("Event", Port1WriteIDFailed, Port1WriteIDFailed));
|
|
|
- EV.Subscribe(new EventItem("Event", Port1TagDataRead, Port1TagDataRead));
|
|
|
- EV.Subscribe(new EventItem("Event", Port1ReadTagDataFailed, Port1ReadTagDataFailed));
|
|
|
- EV.Subscribe(new EventItem("Event", Port1TagDataWrite, Port1TagDataWrite));
|
|
|
- EV.Subscribe(new EventItem("Event", Port1WriteTagDataFailed, Port1WriteTagDataFailed));
|
|
|
-
|
|
|
- EV.Subscribe(new EventItem("Event", Port2LoadComplete, Port2LoadComplete));
|
|
|
- EV.Subscribe(new EventItem("Event", Port2LoadFailed, Port2LoadFailed));
|
|
|
- EV.Subscribe(new EventItem("Event", Port2UnloadComplete, Port2UnloadComplete));
|
|
|
- EV.Subscribe(new EventItem("Event", Port2UnloadFailed, Port2UnloadFailed));
|
|
|
-
|
|
|
- EV.Subscribe(new EventItem("Event", Port2Clamped, Port2Clamped));
|
|
|
- EV.Subscribe(new EventItem("Event", Port2Unclamped, Port2Unclamped));
|
|
|
- EV.Subscribe(new EventItem("Event", Port2IDRead, Port2IDRead));
|
|
|
- EV.Subscribe(new EventItem("Event", Port2ReadIDFailed, Port2ReadIDFailed));
|
|
|
- EV.Subscribe(new EventItem("Event", Port2IDWrite, Port2IDWrite));
|
|
|
- EV.Subscribe(new EventItem("Event", Port2WriteIDFailed, Port2WriteIDFailed));
|
|
|
- EV.Subscribe(new EventItem("Event", Port2TagDataRead, Port2TagDataRead));
|
|
|
- EV.Subscribe(new EventItem("Event", Port2ReadTagDataFailed, Port2ReadTagDataFailed));
|
|
|
- EV.Subscribe(new EventItem("Event", Port2TagDataWrite, Port2TagDataWrite));
|
|
|
- EV.Subscribe(new EventItem("Event", Port2WriteTagDataFailed, Port2WriteTagDataFailed));
|
|
|
-
|
|
|
- EV.Subscribe(new EventItem("Event", Port3LoadComplete, Port3LoadComplete));
|
|
|
- EV.Subscribe(new EventItem("Event", Port3LoadFailed, Port3LoadFailed));
|
|
|
- EV.Subscribe(new EventItem("Event", Port3UnloadComplete, Port3UnloadComplete));
|
|
|
- EV.Subscribe(new EventItem("Event", Port3UnloadFailed, Port3UnloadFailed));
|
|
|
-
|
|
|
- EV.Subscribe(new EventItem("Event", Port3Clamped, Port3Clamped));
|
|
|
- EV.Subscribe(new EventItem("Event", Port3Unclamped, Port3Unclamped));
|
|
|
- EV.Subscribe(new EventItem("Event", Port3IDRead, Port3IDRead));
|
|
|
- EV.Subscribe(new EventItem("Event", Port3ReadIDFailed, Port3ReadIDFailed));
|
|
|
- EV.Subscribe(new EventItem("Event", Port3IDWrite, Port3IDWrite));
|
|
|
- EV.Subscribe(new EventItem("Event", Port3WriteIDFailed, Port3WriteIDFailed));
|
|
|
- EV.Subscribe(new EventItem("Event", Port3TagDataRead, Port3TagDataRead));
|
|
|
- EV.Subscribe(new EventItem("Event", Port3ReadTagDataFailed, Port3ReadTagDataFailed));
|
|
|
- EV.Subscribe(new EventItem("Event", Port3TagDataWrite, Port3TagDataWrite));
|
|
|
- EV.Subscribe(new EventItem("Event", Port3WriteTagDataFailed, Port3WriteTagDataFailed));
|
|
|
+ SerializableDictionary<string, string> dvid = new SerializableDictionary<string, string>();
|
|
|
+ dvid["PortID"] = lp.PortId;
|
|
|
+ dvid["CarrierID"] = lp.CarrierId ?? "";
|
|
|
+ EV.Notify(CARRIER_REMOVED, dvid);
|
|
|
}
|
|
|
|
|
|
- public void LoadComplete(Loadport lp)
|
|
|
+ public void CarrierSlotMapComplete(Loadport lp)
|
|
|
{
|
|
|
- ModuleName moduleName = lp.Module;
|
|
|
+ SerializableDictionary<string, string> dvid = new SerializableDictionary<string, string>();
|
|
|
|
|
|
- EV.Notify(PortLoadComplete[moduleName], new SerializableDictionary<string, string>()
|
|
|
- {
|
|
|
- {DVIDName.PortID, PortId[lp.Module] },
|
|
|
- });
|
|
|
+ dvid["SlotMap"] = lp.SlotMap;
|
|
|
+ dvid["PortID"] = lp.PortId;
|
|
|
+ dvid["CarrierID"] = lp.CarrierId ?? "";
|
|
|
+
|
|
|
+ EV.Notify(SLOT_MAP_AVAILABLE, dvid);
|
|
|
}
|
|
|
|
|
|
- public void LoadFailed(Loadport lp)
|
|
|
+ public void CarrierSlotMapFailed(Loadport lp)
|
|
|
{
|
|
|
- ModuleName moduleName = lp.Module;
|
|
|
|
|
|
- EV.Notify(PortLoadFailed[moduleName], new SerializableDictionary<string, string>()
|
|
|
- {
|
|
|
- {DVIDName.PortID, PortId[lp.Module] },
|
|
|
- });
|
|
|
}
|
|
|
-
|
|
|
- public void UnloadComplete(Loadport lp)
|
|
|
+ public void LoadComplete(Loadport lp)
|
|
|
{
|
|
|
ModuleName moduleName = lp.Module;
|
|
|
+ var dvid = new SerializableDictionary<string, string>
|
|
|
+ {
|
|
|
+ ["CarrierID"] = lp.CarrierId ?? "",
|
|
|
+ ["PortID"] = lp.PortId.ToString()
|
|
|
+ };
|
|
|
+ EV.Notify(CARRIER_LOADED, dvid);
|
|
|
+ }
|
|
|
|
|
|
- EV.Notify(PortUnloadComplete[moduleName], new SerializableDictionary<string, string>()
|
|
|
+ public void LoadFailed(Loadport lp)
|
|
|
{
|
|
|
- {DVIDName.PortID, PortId[lp.Module] },
|
|
|
- });
|
|
|
}
|
|
|
|
|
|
- public void UnloadFailed(Loadport lp)
|
|
|
+ public void UnloadComplete(Loadport lp)
|
|
|
{
|
|
|
ModuleName moduleName = lp.Module;
|
|
|
+ var dvid = new SerializableDictionary<string, string>
|
|
|
+ {
|
|
|
+ ["CarrierID"] = lp.CarrierId ?? "",
|
|
|
+ ["PortID"] = lp.PortId.ToString()
|
|
|
+ };
|
|
|
+ EV.Notify(CARRIER_UNLOADED, dvid);
|
|
|
+ }
|
|
|
|
|
|
- EV.Notify(PortUnloadFailed[moduleName], new SerializableDictionary<string, string>()
|
|
|
+ public void UnloadFailed(Loadport lp)
|
|
|
{
|
|
|
- {DVIDName.PortID, PortId[lp.Module] },
|
|
|
- });
|
|
|
+
|
|
|
}
|
|
|
|
|
|
public void Clamped(Loadport lp)
|
|
|
{
|
|
|
- ModuleName moduleName = lp.Module;
|
|
|
-
|
|
|
- EV.Notify(PortClamped[moduleName], new SerializableDictionary<string, string>()
|
|
|
- {
|
|
|
- {DVIDName.PortID, PortId[lp.Module] },
|
|
|
- });
|
|
|
+
|
|
|
}
|
|
|
|
|
|
public void Unclamped(Loadport lp)
|
|
|
{
|
|
|
- ModuleName moduleName = lp.Module;
|
|
|
-
|
|
|
- EV.Notify(PortUnclamped[moduleName], new SerializableDictionary<string, string>()
|
|
|
- {
|
|
|
- {DVIDName.PortID, PortId[lp.Module] },
|
|
|
- });
|
|
|
+
|
|
|
}
|
|
|
|
|
|
public void IDRead(Loadport lp)
|
|
|
{
|
|
|
- ModuleName moduleName = lp.Module;
|
|
|
-
|
|
|
- EV.Notify(PortIDRead[moduleName], new SerializableDictionary<string, string>()
|
|
|
- {
|
|
|
- {DVIDName.PortID, PortId[lp.Module] },
|
|
|
- {DVIDName.CarrierID, lp.CarrierId },
|
|
|
- {DVIDName.LotID, lp.LotId },
|
|
|
- });
|
|
|
+
|
|
|
}
|
|
|
|
|
|
public void ReadIDFailed(Loadport lp)
|
|
|
{
|
|
|
- ModuleName moduleName = lp.Module;
|
|
|
-
|
|
|
- EV.Notify(PortReadIDFailed[moduleName], new SerializableDictionary<string, string>()
|
|
|
- {
|
|
|
- {DVIDName.PortID, PortId[lp.Module] },
|
|
|
- });
|
|
|
+
|
|
|
}
|
|
|
|
|
|
|
|
|
public void IDWrite(Loadport lp)
|
|
|
{
|
|
|
- ModuleName moduleName = lp.Module;
|
|
|
-
|
|
|
- EV.Notify(PortIDWrite[moduleName], new SerializableDictionary<string, string>()
|
|
|
- {
|
|
|
- {DVIDName.PortID, PortId[lp.Module] },
|
|
|
- {DVIDName.CarrierID, lp.CarrierId },
|
|
|
- });
|
|
|
+
|
|
|
}
|
|
|
|
|
|
public void WriteIDFailed(Loadport lp)
|
|
|
{
|
|
|
- ModuleName moduleName = lp.Module;
|
|
|
-
|
|
|
- EV.Notify(PortWriteIDFailed[moduleName], new SerializableDictionary<string, string>()
|
|
|
- {
|
|
|
- {DVIDName.PortID, PortId[lp.Module] },
|
|
|
- });
|
|
|
+
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void TagDataRead(Loadport lp)
|
|
|
{
|
|
|
- ModuleName moduleName = lp.Module;
|
|
|
-
|
|
|
- EV.Notify(PortTagDataRead[moduleName], new SerializableDictionary<string, string>()
|
|
|
- {
|
|
|
- {DVIDName.PortID, PortId[lp.Module] },
|
|
|
- {DVIDName.TagData, lp.SmartTag },
|
|
|
- {DVIDName.CarrierID, lp.CarrierId },
|
|
|
- {DVIDName.LotID, lp.LotId },
|
|
|
- });
|
|
|
+
|
|
|
}
|
|
|
|
|
|
public void ReadTagDataFailed(Loadport lp)
|
|
|
{
|
|
|
- ModuleName moduleName = lp.Module;
|
|
|
-
|
|
|
- EV.Notify(PortReadTagDataFailed[moduleName], new SerializableDictionary<string, string>()
|
|
|
- {
|
|
|
- {DVIDName.PortID, PortId[lp.Module] },
|
|
|
- });
|
|
|
}
|
|
|
|
|
|
|
|
|
public void TagDataWrite(Loadport lp)
|
|
|
{
|
|
|
- ModuleName moduleName = lp.Module;
|
|
|
-
|
|
|
- EV.Notify(PortTagDataWrite[moduleName], new SerializableDictionary<string, string>()
|
|
|
- {
|
|
|
- {DVIDName.PortID, PortId[lp.Module] },
|
|
|
- {DVIDName.CarrierID, lp.CarrierId },
|
|
|
- {DVIDName.TagData, lp.SmartTag },
|
|
|
- });
|
|
|
+
|
|
|
}
|
|
|
|
|
|
public void WriteTagDataFailed(Loadport lp)
|
|
|
{
|
|
|
- ModuleName moduleName = lp.Module;
|
|
|
-
|
|
|
- EV.Notify(PortWriteTagDataFailed[moduleName], new SerializableDictionary<string, string>()
|
|
|
- {
|
|
|
- {DVIDName.PortID, PortId[lp.Module] },
|
|
|
- });
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
}
|