1.整理WaferInfoRt类

This commit is contained in:
HCL 2023-08-10 14:20:55 +08:00
parent 8f0f96fd33
commit c93b2028a8
17 changed files with 630 additions and 620 deletions

View File

@ -1,6 +1,6 @@
namespace Aitex.Core.Common
{
public enum WaferTrayStatus
public enum TrayStatus
{
Empty = 0,
Normal = 1,

View File

@ -1,503 +1,513 @@
using System;
using System.Runtime.Serialization;
using DocumentFormat.OpenXml.Bibliography;
using MECF.Framework.Common.CommonData;
using MECF.Framework.Common.Jobs;
using MECF.Framework.Common.Properties;
namespace Aitex.Core.Common
{
[Serializable]
[DataContract]
public class WaferInfoRt : NotifiableItem
{
private string procesjobid;
[Serializable]
[DataContract]
public class WaferInfoRt : NotifiableItem
{
#region WaferInfo
private string controljobid;
private SubstrateTransportStatus substtransstatus;
private EnumE90Status Subste90status;
private SubstHistory[] substhists;
private string waferID;
private string _waferOrigin;
private string hostlaserMark1;
private string hostlaserMark2;
private string laserMarker;
private string t7Code;
private string _laserMarkerScore;
private string _t7CodeScore;
private string _imageFileName;
private string _imageFilePath;
private WaferStatus status;
private WaferTrayStatus trayState = WaferTrayStatus.Empty;
private bool isChecked;
private EnumWaferProcessStatus processState;
private bool isSource;
private bool isDestination;
[DataMember]
public string ProcessJobID
{
get => procesjobid;
set
{
procesjobid = value;
InvokePropertyChanged("ProcessJobID");
}
}
[DataMember]
public string ControlJobID
{
get => controljobid;
set
{
controljobid = value;
InvokePropertyChanged("ControlJobID");
}
}
[DataMember]
public SubstrateTransportStatus SubstTransStatus
{
get => substtransstatus;
set
{
substtransstatus = value;
InvokePropertyChanged("SubstTransStatus");
}
}
[DataMember]
public EnumE90Status SubstE90Status
{
get => Subste90status;
set
{
Subste90status = value;
InvokePropertyChanged("SubstE90Status");
}
}
[DataMember]
public SubstHistory[] SubstHists
{
get => substhists;
set
{
substhists = value;
InvokePropertyChanged("SubstHists");
}
}
public bool IsEmpty => Status == WaferStatus.Empty;
[DataMember]
public string WaferID
{
get => waferID;
set
{
waferID = value;
InvokePropertyChanged("WaferID");
}
}
[DataMember]
public string WaferOrigin
{
get => _waferOrigin;
set
{
_waferOrigin = value;
InvokePropertyChanged("WaferOrigin");
}
}
[DataMember]
public string HostLaserMark1
{
get => hostlaserMark1;
set
{
hostlaserMark1 = value;
InvokePropertyChanged("HostLaserMark1");
}
}
[DataMember]
public string HostLaserMark2
{
get => hostlaserMark2;
set
{
hostlaserMark2 = value;
InvokePropertyChanged("HostLaserMark2");
}
}
[DataMember]
public string LaserMarker
{
get => laserMarker;
set
{
laserMarker = value;
InvokePropertyChanged("LaserMarker");
}
}
[DataMember]
public string T7Code
{
get => t7Code;
set
{
t7Code = value;
InvokePropertyChanged("T7Code");
}
}
[DataMember]
public string LaserMarkerScore
{
get => _laserMarkerScore;
set
{
_laserMarkerScore = value;
InvokePropertyChanged("LaserMarker1Score");
}
}
[DataMember]
public string T7CodeScore
{
get => _t7CodeScore;
set
{
_t7CodeScore = value;
InvokePropertyChanged("T7CodeScore");
}
}
[DataMember]
public string ImageFileName
{
get => _imageFileName;
set
{
_imageFileName = value;
InvokePropertyChanged("ImageFileName");
}
}
[DataMember]
public string ImageFilePath
{
get => _imageFilePath;
set
{
_imageFilePath = value;
InvokePropertyChanged("ImageFilePath");
}
}
[DataMember]
public string LotId { get; set; }
[DataMember]
public string TransFlag { get; set; }
[DataMember]
public WaferStatus Status
{
get => status;
set
{
status = value;
InvokePropertyChanged("Status");
}
}
[DataMember]
public WaferTrayStatus TrayState
{
get => trayState;
set
{
trayState = value;
InvokePropertyChanged("TrayState");
}
}
[DataMember]
public string CurrentCarrierID { get; set; }
[DataMember]
public int Station { get; set; }
[DataMember]
public int Slot { get; set; }
[DataMember]
public int TrayUsedForWhichPM { get; set; }
[DataMember]
public int TrayOriginStation { get; set; }
[DataMember]
public int TrayOriginSlot { get; set; }
[DataMember]
public string TrayBelongTo { get; set; }
public bool IsWaferEmpty => WaferStatus == WaferStatus.Empty;
[DataMember]
public int OriginStation { get; set; }
public Guid WaferInnerID { get; set; } = Guid.Empty;
[DataMember]
public int OriginSlot { get; set; }
[DataMember]
public string LotId { get; set; }
[DataMember]
public string OriginCarrierID { get; set; }
[DataMember]
public ProcessJobInfo ProcessJob { get; set; }
[DataMember]
public int DestinationStation { get; set; }
[DataMember]
public int NextSequenceStep { get; set; }
[DataMember]
public string DestinationCarrierID { get; set; }
[DataMember]
public int WaferOriginStation { get; set; }
[DataMember]
public int DestinationSlot { get; set; }
[DataMember]
public int WaferOriginSlot { get; set; }
[DataMember]
public int NextStation { get; set; }
[DataMember]
public WaferSize Size { get; set; }
[DataMember]
public int NextStationSlot { get; set; }
[DataMember]
public bool HasWarning { get; set; }
[DataMember]
public int Notch { get; set; }
[DataMember]
public string PPID { get; set; }
[DataMember]
public WaferSize Size { get; set; }
[DataMember]
public string TransFlag { get; set; }
public bool IsChecked
{
get => isChecked;
private string waferID;
[DataMember]
public string WaferID
{
get => waferID;
set
{
isChecked = value;
InvokePropertyChanged("IsChecked");
}
}
{
waferID = value;
InvokePropertyChanged("WaferID");
}
}
[DataMember]
public string PPID { get; set; }
[DataMember]
public EnumWaferProcessStatus ProcessState
{
get => processState;
private string processJobID;
[DataMember]
public string ProcessJobID
{
get => processJobID;
set
{
processState = value;
InvokePropertyChanged("ProcessStatus");
}
}
{
processJobID = value;
InvokePropertyChanged("ProcessJobID");
}
}
[DataMember]
public bool IsSource
{
get => isSource;
private string controlJobID;
[DataMember]
public string ControlJobID
{
get => controlJobID;
set
{
isSource = value;
InvokePropertyChanged("IsSource");
}
}
{
controlJobID = value;
InvokePropertyChanged("ControlJobID");
}
}
[DataMember]
public bool IsDestination
{
get => isDestination;
private string _waferOrigin;
[DataMember]
public string WaferOrigin
{
get => _waferOrigin;
set
{
isDestination = value;
InvokePropertyChanged("IsDestination");
}
}
{
_waferOrigin = value;
InvokePropertyChanged("WaferOrigin");
}
}
[DataMember]
public Guid InnerId { get; set; }
private WaferStatus waferStatus = WaferStatus.Empty;
[DataMember]
public WaferStatus WaferStatus
{
get => waferStatus;
set
{
waferStatus = value;
InvokePropertyChanged("WaferStatus");
}
}
[DataMember]
public ProcessJobInfo ProcessJob { get; set; }
private bool isChecked;
public bool IsChecked
{
get => isChecked;
set
{
isChecked = value;
InvokePropertyChanged("IsChecked");
}
}
[DataMember]
public int NextSequenceStep { get; set; }
private WaferProcessStatus processState;
[DataMember]
public WaferProcessStatus ProcessState
{
get => processState;
set
{
processState = value;
InvokePropertyChanged("ProcessStatus");
}
}
[DataMember]
public int TrayProcessCount { get; set; }
private SubstrateTransportStatus substtransstatus;
[DataMember]
public SubstrateTransportStatus SubstTransStatus
{
get => substtransstatus;
set
{
substtransstatus = value;
InvokePropertyChanged("SubstTransStatus");
}
}
[DataMember]
public bool HasWarning { get; set; }
private EnumE90Status Subste90status;
[DataMember]
public EnumE90Status SubstE90Status
{
get => Subste90status;
set
{
Subste90status = value;
InvokePropertyChanged("SubstE90Status");
}
}
public WaferInfoRt()
{
InnerId = Guid.Empty;
}
private SubstHistory[] substhists;
[DataMember]
public SubstHistory[] SubstHists
{
get => substhists;
set
{
substhists = value;
InvokePropertyChanged("SubstHists");
}
}
public WaferInfoRt(string waferID, WaferStatus status = WaferStatus.Empty)
: this()
{
WaferID = waferID;
Status = status;
TrayState = WaferTrayStatus.Empty;
}
#endregion
public void Update(WaferInfoRt source)
{
InnerId = source.InnerId;
WaferID = source.waferID;
WaferOrigin = source.WaferOrigin;
LaserMarker = source.LaserMarker;
LaserMarkerScore = source.LaserMarkerScore;
T7Code = source.T7Code;
T7CodeScore = source.T7CodeScore;
Status = source.Status;
ProcessState = source.ProcessState;
IsSource = source.IsSource;
IsDestination = source.IsDestination;
Station = source.Station;
Slot = source.Slot;
OriginStation = source.OriginStation;
OriginSlot = source.OriginSlot;
if (source.OriginCarrierID != null)
{
OriginCarrierID = source.OriginCarrierID;
}
if (source.DestinationCarrierID != null)
{
DestinationCarrierID = source.DestinationCarrierID;
}
DestinationStation = source.DestinationStation;
DestinationSlot = source.DestinationSlot;
NextStation = source.NextStation;
NextStationSlot = source.NextStationSlot;
Notch = source.Notch;
Size = source.Size;
TransFlag = source.TransFlag;
LotId = source.LotId;
PPID = source.PPID;
ProcessJobID = source.ProcessJobID;
ProcessJob = source.ProcessJob;
NextSequenceStep = source.NextSequenceStep;
SubstHists = source.SubstHists;
HasWarning = source.HasWarning;
SubstE90Status = source.SubstE90Status;
PPID = source.PPID;
HostLaserMark1 = source.HostLaserMark1;
HostLaserMark2 = source.HostLaserMark2;
if (TrayState == WaferTrayStatus.Empty && source.TrayState != 0)
{
TrayState = source.TrayState;
TrayUsedForWhichPM = source.TrayUsedForWhichPM;
TrayOriginStation = source.TrayOriginStation;
TrayOriginSlot = source.TrayOriginSlot;
TrayProcessCount = source.TrayProcessCount;
}
}
#region TrayInfo
public WaferInfoRt Clone()
{
return new WaferInfoRt
{
InnerId = InnerId,
WaferID = waferID,
WaferOrigin = WaferOrigin,
LaserMarker = LaserMarker,
LaserMarkerScore = LaserMarkerScore,
T7Code = T7Code,
T7CodeScore = T7CodeScore,
Status = Status,
ProcessState = ProcessState,
IsSource = IsSource,
IsDestination = IsDestination,
Station = Station,
Slot = Slot,
OriginStation = OriginStation,
OriginSlot = OriginSlot,
OriginCarrierID = OriginCarrierID,
DestinationCarrierID = DestinationCarrierID,
DestinationStation = DestinationStation,
DestinationSlot = DestinationSlot,
NextStation = NextStation,
NextStationSlot = NextStationSlot,
Notch = Notch,
Size = Size,
TransFlag = TransFlag,
LotId = LotId,
ProcessJob = ProcessJob,
NextSequenceStep = NextSequenceStep,
SubstHists = SubstHists,
HasWarning = HasWarning,
SubstE90Status = SubstE90Status,
TrayUsedForWhichPM = TrayUsedForWhichPM,
TrayState = TrayState,
TrayOriginStation = TrayOriginSlot,
TrayOriginSlot = TrayOriginSlot,
TrayProcessCount = TrayProcessCount,
PPID = PPID
};
}
public bool IsTrayEmpty => TrayState == TrayStatus.Empty;
public void SetEmpty()
{
InnerId = Guid.Empty;
WaferID = string.Empty;
WaferOrigin = string.Empty;
LaserMarker = string.Empty;
LaserMarkerScore = string.Empty;
T7Code = string.Empty;
T7CodeScore = string.Empty;
Status = WaferStatus.Empty;
ProcessState = EnumWaferProcessStatus.Idle;
IsSource = false;
IsDestination = false;
Station = 0;
Slot = 0;
OriginStation = 0;
OriginSlot = 0;
DestinationStation = 0;
DestinationSlot = 0;
Notch = 0;
TransFlag = string.Empty;
LotId = string.Empty;
ProcessJob = null;
NextSequenceStep = 0;
HasWarning = false;
PPID = "";
TrayState = WaferTrayStatus.Empty;
TrayUsedForWhichPM = 0;
TrayOriginStation = 0;
TrayOriginSlot = 0;
TrayProcessCount = 0;
}
}
[DataMember]
public Guid TrayInnerID { get; set; } = Guid.Empty;
[DataMember]
public int TrayProcessCount { get; set; }
[DataMember]
public int TrayUsedForWhichPM { get; set; }
[DataMember]
public string TrayBelongTo { get; set; }
[DataMember]
public int TrayOriginStation { get; set; }
[DataMember]
public int TrayOriginSlot { get; set; }
private TrayStatus trayState = TrayStatus.Empty;
[DataMember]
public TrayStatus TrayState
{
get => trayState;
set
{
trayState = value;
InvokePropertyChanged("TrayState");
}
}
#endregion
[DataMember]
public string CurrentCarrierID { get; set; }
[DataMember]
public int Station { get; set; }
[DataMember]
public int Slot { get; set; }
[DataMember]
public string OriginCarrierID { get; set; }
[DataMember]
public int DestinationStation { get; set; }
[DataMember]
public string DestinationCarrierID { get; set; }
[DataMember]
public int DestinationSlot { get; set; }
[DataMember]
public int NextStation { get; set; }
[DataMember]
public int NextStationSlot { get; set; }
[DataMember]
public int Notch { get; set; }
private bool isSource;
[DataMember]
public bool IsSource
{
get => isSource;
set
{
isSource = value;
InvokePropertyChanged("IsSource");
}
}
private bool isDestination;
[DataMember]
public bool IsDestination
{
get => isDestination;
set
{
isDestination = value;
InvokePropertyChanged("IsDestination");
}
}
#region δʹÓÃ
private string hostlaserMark1;
[DataMember]
public string HostLaserMark1
{
get => hostlaserMark1;
set
{
hostlaserMark1 = value;
InvokePropertyChanged("HostLaserMark1");
}
}
private string hostlaserMark2;
[DataMember]
public string HostLaserMark2
{
get => hostlaserMark2;
set
{
hostlaserMark2 = value;
InvokePropertyChanged("HostLaserMark2");
}
}
private string laserMarker;
[DataMember]
public string LaserMarker
{
get => laserMarker;
set
{
laserMarker = value;
InvokePropertyChanged("LaserMarker");
}
}
private string t7Code;
[DataMember]
public string T7Code
{
get => t7Code;
set
{
t7Code = value;
InvokePropertyChanged("T7Code");
}
}
private string _laserMarkerScore;
[DataMember]
public string LaserMarkerScore
{
get => _laserMarkerScore;
set
{
_laserMarkerScore = value;
InvokePropertyChanged("LaserMarker1Score");
}
}
private string _t7CodeScore;
[DataMember]
public string T7CodeScore
{
get => _t7CodeScore;
set
{
_t7CodeScore = value;
InvokePropertyChanged("T7CodeScore");
}
}
private string _imageFileName;
[DataMember]
public string ImageFileName
{
get => _imageFileName;
set
{
_imageFileName = value;
InvokePropertyChanged("ImageFileName");
}
}
private string _imageFilePath;
[DataMember]
public string ImageFilePath
{
get => _imageFilePath;
set
{
_imageFilePath = value;
InvokePropertyChanged("ImageFilePath");
}
}
#endregion
public WaferInfoRt()
{
}
public WaferInfoRt(string waferID)
{
WaferID = waferID;
}
public void Update(WaferInfoRt source)
{
//WaferInfo
WaferInnerID = source.WaferInnerID;
LotId = source.LotId;
ProcessJob = source.ProcessJob;
NextSequenceStep = source.NextSequenceStep;
WaferOriginStation = source.WaferOriginStation;
WaferOriginSlot = source.WaferOriginSlot;
Size = source.Size;
HasWarning = source.HasWarning;
PPID = source.PPID;
WaferID = source.WaferID;
TransFlag = source.TransFlag;
ProcessJobID = source.ProcessJobID;
ControlJobID = source.ControlJobID;
WaferOrigin = source.WaferOrigin;
WaferStatus = source.WaferStatus;
IsChecked = source.IsChecked;
ProcessState = source.ProcessState;
SubstTransStatus = source.SubstTransStatus;
SubstE90Status = source.SubstE90Status;
SubstHists = source.SubstHists;
//TrayInfo
TrayInnerID = source.TrayInnerID;
TrayProcessCount = source.TrayProcessCount;
TrayUsedForWhichPM = source.TrayUsedForWhichPM;
TrayBelongTo = source.TrayBelongTo;
TrayOriginStation = source.TrayOriginStation;
TrayOriginSlot = source.TrayOriginSlot;
TrayState = source.TrayState;
}
public WaferInfoRt Clone()
{
return new WaferInfoRt
{
//WaferInfo
WaferInnerID = WaferInnerID,
LotId = LotId,
ProcessJob = ProcessJob,
NextSequenceStep = NextSequenceStep,
WaferOriginStation = WaferOriginStation,
WaferOriginSlot = WaferOriginSlot,
Size = Size,
HasWarning = HasWarning,
PPID = PPID,
WaferID = WaferID,
TransFlag = TransFlag,
ProcessJobID = ProcessJobID,
ControlJobID = ControlJobID,
WaferOrigin = WaferOrigin,
WaferStatus = WaferStatus,
IsChecked = IsChecked,
ProcessState = ProcessState,
SubstTransStatus = SubstTransStatus,
SubstE90Status = SubstE90Status,
SubstHists = SubstHists,
//TrayInfo
TrayInnerID = TrayInnerID,
TrayProcessCount = TrayProcessCount,
TrayUsedForWhichPM = TrayUsedForWhichPM,
TrayBelongTo = TrayBelongTo,
TrayOriginStation = TrayOriginStation,
TrayOriginSlot = TrayOriginSlot,
TrayState = TrayState,
};
}
public void SetWaferTrayEmpty()
{
//WaferInfo
WaferInnerID = Guid.Empty;
LotId = string.Empty;
ProcessJob = null;
NextSequenceStep = 0;
WaferOriginStation = 0;
WaferOriginSlot = 0;
Size = WaferSize.WS0;
HasWarning = false;
PPID = string.Empty;
WaferID = string.Empty;
TransFlag = string.Empty;
ProcessJobID = string.Empty;
ControlJobID = string.Empty;
WaferOrigin = string.Empty;
WaferStatus = WaferStatus.Empty;
IsChecked = false;
ProcessState = WaferProcessStatus.Idle;
SubstTransStatus = SubstrateTransportStatus.None;
SubstE90Status = EnumE90Status.None;
SubstHists = null;
//TrayInfo
TrayInnerID = Guid.Empty;
TrayProcessCount = 0;
TrayUsedForWhichPM = 0;
TrayBelongTo = string.Empty;
TrayOriginStation = 0;
TrayOriginSlot = 0;
TrayState = TrayStatus.Empty;
}
public void SetWaferEmpty()
{
//WaferInfo
WaferInnerID = Guid.Empty;
LotId = string.Empty;
ProcessJob = null;
NextSequenceStep = 0;
WaferOriginStation = 0;
WaferOriginSlot = 0;
Size = WaferSize.WS0;
HasWarning = false;
PPID = string.Empty;
WaferID = string.Empty;
TransFlag = string.Empty;
ProcessJobID = string.Empty;
ControlJobID = string.Empty;
WaferOrigin = string.Empty;
WaferStatus = WaferStatus.Empty;
IsChecked = false;
ProcessState = WaferProcessStatus.Idle;
SubstTransStatus = SubstrateTransportStatus.None;
SubstE90Status = EnumE90Status.None;
SubstHists = null;
}
public void SetTrayEmpty()
{
//TrayInfo
TrayInnerID = Guid.Empty;
TrayProcessCount = 0;
TrayUsedForWhichPM = 0;
TrayBelongTo = string.Empty;
TrayOriginStation = 0;
TrayOriginSlot = 0;
TrayState = TrayStatus.Empty;
}
}
}

View File

@ -1,6 +1,6 @@
namespace Aitex.Core.Common
{
public enum EnumWaferProcessStatus
public enum WaferProcessStatus
{
Idle = 0,
InProcess = 1,

View File

@ -259,7 +259,7 @@
<Compile Include="Aitex\Core\Common\DeviceData\ServoState.cs" />
<Compile Include="Aitex\Core\Common\DeviceData\TritonRfMatchMode.cs" />
<Compile Include="Aitex\Core\Common\EnumE90Status.cs" />
<Compile Include="Aitex\Core\Common\EnumWaferProcessStatus.cs" />
<Compile Include="Aitex\Core\Common\WaferProcessStatus.cs" />
<Compile Include="Aitex\Core\Common\ProcessStatus.cs" />
<Compile Include="Aitex\Core\Common\SubstAccessType.cs" />
<Compile Include="Aitex\Core\Common\SubstHistory.cs" />
@ -267,7 +267,7 @@
<Compile Include="Aitex\Core\Common\WaferInfoRt.cs" />
<Compile Include="Aitex\Core\Common\WaferSize.cs" />
<Compile Include="Aitex\Core\Common\WaferStatus.cs" />
<Compile Include="Aitex\Core\Common\WaferTrayStatus.cs" />
<Compile Include="Aitex\Core\Common\TrayStatus.cs" />
<Compile Include="Aitex\Core\RT\ConfigCenter\CONFIG.cs" />
<Compile Include="Aitex\Core\RT\ConfigCenter\ConfigEntry.cs" />
<Compile Include="Aitex\Core\RT\ConfigCenter\ConfigItem.cs" />

View File

@ -134,14 +134,14 @@ namespace MECF.Framework.Common.SubstrateTrackings
{
foreach (var item2 in item.Value)
{
item2.Value.SetEmpty();
item2.Value.SetWaferTrayEmpty();
}
}
if (OnlyTrayModule.Contains(item.Key))
{
foreach (var item3 in item.Value)
{
item3.Value.Status = WaferStatus.Empty;
item3.Value.WaferStatus = WaferStatus.Empty;
}
}
if (!OnlyWaferModule.Contains(item.Key))
@ -150,7 +150,7 @@ namespace MECF.Framework.Common.SubstrateTrackings
}
foreach (var item4 in item.Value)
{
item4.Value.TrayState = WaferTrayStatus.Empty;
item4.Value.TrayState = TrayStatus.Empty;
}
}
AllLocationWafers = dictionary;
@ -221,16 +221,16 @@ namespace MECF.Framework.Common.SubstrateTrackings
AllLocationWafers[module][i] = new WaferInfoRt();
if (OnlyTrayModule.Contains(module))
{
AllLocationWafers[module][i].Status = WaferStatus.Empty;
AllLocationWafers[module][i].WaferStatus = WaferStatus.Empty;
}
if (OnlyWaferModule.Contains(module))
{
AllLocationWafers[module][i].TrayState = WaferTrayStatus.Empty;
AllLocationWafers[module][i].TrayState = TrayStatus.Empty;
}
if (WaferTrayModule.Contains(module))
{
AllLocationWafers[module][i].Status = WaferStatus.Empty;
AllLocationWafers[module][i].TrayState = WaferTrayStatus.Empty;
AllLocationWafers[module][i].WaferStatus = WaferStatus.Empty;
AllLocationWafers[module][i].TrayState = TrayStatus.Empty;
}
}
}
@ -240,12 +240,12 @@ namespace MECF.Framework.Common.SubstrateTrackings
public void WaferMoved(ModuleName moduleFrom, int slotFrom, ModuleName moduleTo, int slotTo)
{
UpdateWaferHistory(moduleFrom, slotFrom, SubstAccessType.Left);
if (AllLocationWafers[moduleFrom][slotFrom].IsEmpty && AllLocationWafers[moduleFrom][slotFrom].TrayState == WaferTrayStatus.Empty)
if (AllLocationWafers[moduleFrom][slotFrom].IsWaferEmpty && AllLocationWafers[moduleFrom][slotFrom].TrayState == TrayStatus.Empty)
{
LOG.Write($"Invalid wafer move, no wafer at source, {moduleFrom}{slotFrom + 1}=>{moduleTo}{slotTo + 1}");
return;
}
if (!AllLocationWafers[moduleFrom][slotFrom].IsEmpty && !AllLocationWafers[moduleTo][slotTo].IsEmpty)
if (!AllLocationWafers[moduleFrom][slotFrom].IsWaferEmpty && !AllLocationWafers[moduleTo][slotTo].IsWaferEmpty)
{
LOG.Write($"Invalid wafer move, destination has wafer, {moduleFrom}{slotFrom + 1}=>{moduleTo}{slotTo + 1}");
return;
@ -266,8 +266,8 @@ namespace MECF.Framework.Common.SubstrateTrackings
var trayOriginSlot2 = AllLocationWafers[moduleTo][slotTo].TrayOriginSlot;
var trayProcessCount2 = AllLocationWafers[moduleTo][slotTo].TrayProcessCount;
var waferOrigin = AllLocationWafers[moduleFrom][slotFrom].WaferOrigin;
var InnerIdForm= AllLocationWafers[moduleFrom][slotFrom].InnerId;
var InnerIdTo = AllLocationWafers[moduleTo][slotTo].InnerId;
var InnerIdForm= AllLocationWafers[moduleFrom][slotFrom].WaferInnerID;
var InnerIdTo = AllLocationWafers[moduleTo][slotTo].WaferInnerID;
var TrayBelongTo_Form = AllLocationWafers[moduleFrom][slotFrom].TrayBelongTo;
var TrayBelongTo_To = AllLocationWafers[moduleTo][slotTo].TrayBelongTo;
var waferInfo = CopyWaferInfo(moduleTo, slotTo, AllLocationWafers[moduleFrom][slotFrom]);
@ -275,7 +275,7 @@ namespace MECF.Framework.Common.SubstrateTrackings
DeleteWaferForMove(moduleFrom, slotFrom);
if (OnlyWaferModule.Contains(moduleTo) && WaferTrayModule.Contains(moduleFrom))//wafer回来
{
AllLocationWafers[moduleTo][slotTo].TrayState = WaferTrayStatus.Empty;
AllLocationWafers[moduleTo][slotTo].TrayState = TrayStatus.Empty;
AllLocationWafers[moduleTo][slotTo].TrayUsedForWhichPM = 0;
AllLocationWafers[moduleTo][slotTo].TrayOriginStation = 0;
AllLocationWafers[moduleTo][slotTo].TrayOriginSlot = 0;
@ -287,7 +287,7 @@ namespace MECF.Framework.Common.SubstrateTrackings
AllLocationWafers[moduleFrom][slotFrom].TrayProcessCount = trayProcessCount;
//新加的两个参数
AllLocationWafers[moduleFrom][slotFrom].InnerId = InnerIdForm;
AllLocationWafers[moduleFrom][slotFrom].WaferInnerID = InnerIdForm;
AllLocationWafers[moduleFrom][slotFrom].TrayBelongTo = TrayBelongTo_Form;
AllLocationWafers[moduleTo][slotTo].TrayBelongTo = "";
@ -299,14 +299,14 @@ namespace MECF.Framework.Common.SubstrateTrackings
AllLocationWafers[moduleTo][slotTo].TrayOriginStation = trayOriginStation2;
AllLocationWafers[moduleTo][slotTo].TrayOriginSlot = trayOriginSlot2;
AllLocationWafers[moduleTo][slotTo].TrayProcessCount = trayProcessCount2;
AllLocationWafers[moduleFrom][slotFrom].TrayState = WaferTrayStatus.Empty;
AllLocationWafers[moduleFrom][slotFrom].TrayState = TrayStatus.Empty;
AllLocationWafers[moduleFrom][slotFrom].TrayUsedForWhichPM = 0;
AllLocationWafers[moduleFrom][slotFrom].TrayOriginStation = 0;
AllLocationWafers[moduleFrom][slotFrom].TrayOriginSlot = 0;
AllLocationWafers[moduleFrom][slotFrom].TrayProcessCount = 0;
//新加的两个参数
AllLocationWafers[moduleTo][slotTo].InnerId = InnerIdTo;//目的地的信息被清了,重新赋值
AllLocationWafers[moduleTo][slotTo].WaferInnerID = InnerIdTo;//目的地的信息被清了,重新赋值
AllLocationWafers[moduleTo][slotTo].TrayBelongTo = TrayBelongTo_To;
AllLocationWafers[moduleFrom][slotFrom].TrayBelongTo = "";
@ -318,20 +318,20 @@ namespace MECF.Framework.Common.SubstrateTrackings
AllLocationWafers[moduleTo][slotTo].TrayOriginStation = trayOriginStation;
AllLocationWafers[moduleTo][slotTo].TrayOriginSlot = trayOriginSlot;
AllLocationWafers[moduleTo][slotTo].TrayProcessCount = trayProcessCount;
AllLocationWafers[moduleFrom][slotFrom].TrayState = WaferTrayStatus.Empty;
AllLocationWafers[moduleFrom][slotFrom].TrayState = TrayStatus.Empty;
AllLocationWafers[moduleFrom][slotFrom].TrayUsedForWhichPM = 0;
AllLocationWafers[moduleFrom][slotFrom].TrayOriginStation = 0;
AllLocationWafers[moduleFrom][slotFrom].TrayOriginSlot = 0;
AllLocationWafers[moduleFrom][slotFrom].TrayProcessCount = 0;
//新加的两个参数
AllLocationWafers[moduleTo][slotTo].InnerId = InnerIdForm;
AllLocationWafers[moduleTo][slotTo].WaferInnerID = InnerIdForm;
AllLocationWafers[moduleTo][slotTo].TrayBelongTo = TrayBelongTo_Form;
AllLocationWafers[moduleFrom][slotFrom].TrayBelongTo = "";
}
EV.PostMessage(ModuleName.System.ToString(), EventEnum.WaferMoved, waferOrigin, moduleFrom.ToString(), slotFrom + 1, moduleTo.ToString(), slotTo + 1);
WaferMoveHistoryRecorder.WaferMoved(waferInfo.InnerId.ToString(), moduleTo.ToString(), slotTo, waferInfo.Status.ToString());
WaferMoveHistoryRecorder.WaferMoved(waferInfo.WaferInnerID.ToString(), moduleTo.ToString(), slotTo, waferInfo.WaferStatus.ToString());
EV.Notify("WAFER_LEFT_POSITION", new SerializableDictionary<string, string>
{
{
@ -377,7 +377,7 @@ namespace MECF.Framework.Common.SubstrateTrackings
{
UpdateWaferE90State(waferInfo.WaferID, EnumE90Status.Processed);
}
if (moduleTo == (ModuleName)waferInfo.OriginStation && waferInfo.SubstE90Status != EnumE90Status.Processed)
if (moduleTo == (ModuleName)waferInfo.WaferOriginStation && waferInfo.SubstE90Status != EnumE90Status.Processed)
{
UpdateWaferTransportState(waferInfo.WaferID, SubstrateTransportStatus.AtSource);
}
@ -394,7 +394,7 @@ namespace MECF.Framework.Common.SubstrateTrackings
{
var trayState = AllLocationWafers[moduleFrom][slotFrom].TrayState;
UpdateWaferHistory(moduleFrom, slotFrom, SubstAccessType.Left);
if (AllLocationWafers[moduleFrom][slotFrom].TrayState == WaferTrayStatus.Empty)
if (AllLocationWafers[moduleFrom][slotFrom].TrayState == TrayStatus.Empty)
{
LOG.Write($"Invalid wafer move, no wafer at tray, {moduleFrom}{slotFrom + 1}=>{moduleTo}{slotTo + 1}");
return;
@ -411,20 +411,20 @@ namespace MECF.Framework.Common.SubstrateTrackings
AllLocationWafers[moduleTo][slotTo].TrayOriginStation = AllLocationWafers[moduleFrom][slotFrom].TrayOriginStation;
AllLocationWafers[moduleTo][slotTo].TrayOriginSlot = AllLocationWafers[moduleFrom][slotFrom].TrayOriginSlot;
AllLocationWafers[moduleTo][slotTo].TrayProcessCount = AllLocationWafers[moduleFrom][slotFrom].TrayProcessCount;
AllLocationWafers[moduleTo][slotTo].InnerId = AllLocationWafers[moduleFrom][slotFrom].InnerId;
AllLocationWafers[moduleTo][slotTo].WaferInnerID = AllLocationWafers[moduleFrom][slotFrom].WaferInnerID;
AllLocationWafers[moduleTo][slotTo].TrayBelongTo = AllLocationWafers[moduleFrom][slotFrom].TrayBelongTo;
AllLocationWafers[moduleFrom][slotFrom].TrayState = WaferTrayStatus.Empty;
AllLocationWafers[moduleFrom][slotFrom].TrayState = TrayStatus.Empty;
AllLocationWafers[moduleFrom][slotFrom].TrayUsedForWhichPM = 0;
AllLocationWafers[moduleFrom][slotFrom].TrayOriginStation = 0;
AllLocationWafers[moduleFrom][slotFrom].TrayOriginSlot = 0;
AllLocationWafers[moduleFrom][slotFrom].TrayProcessCount = 0;
AllLocationWafers[moduleFrom][slotFrom].InnerId=Guid.Empty;
AllLocationWafers[moduleFrom][slotFrom].WaferInnerID =Guid.Empty;
AllLocationWafers[moduleFrom][slotFrom].TrayBelongTo = "";
if (OnlyTrayModule.Contains(moduleTo))
{
AllLocationWafers[moduleTo][slotTo].WaferOrigin = $"{ModuleHelper.GetAbbr((ModuleName)AllLocationWafers[moduleTo][slotTo].TrayOriginStation)}.{AllLocationWafers[moduleTo][slotTo].TrayOriginSlot + 1:D2}";
AllLocationWafers[moduleTo][slotTo].OriginSlot = AllLocationWafers[moduleFrom][slotFrom].TrayOriginSlot;
AllLocationWafers[moduleTo][slotTo].WaferOriginSlot = AllLocationWafers[moduleFrom][slotFrom].TrayOriginSlot;
}
}
_needSerialize = true;
@ -434,12 +434,12 @@ namespace MECF.Framework.Common.SubstrateTrackings
public void WaferDuplicated(ModuleName moduleFrom, int slotFrom, ModuleName moduleTo, int slotTo)
{
UpdateWaferHistory(moduleFrom, slotFrom, SubstAccessType.Left);
if (AllLocationWafers[moduleFrom][slotFrom].IsEmpty)
if (AllLocationWafers[moduleFrom][slotFrom].IsWaferEmpty)
{
LOG.Write($"Invalid wafer move, no wafer at source, {moduleFrom}{slotFrom + 1}=>{moduleTo}{slotTo + 1}");
return;
}
if (!AllLocationWafers[moduleTo][slotTo].IsEmpty)
if (!AllLocationWafers[moduleTo][slotTo].IsWaferEmpty)
{
LOG.Write($"Invalid wafer move, destination has wafer, {moduleFrom}{slotFrom + 1}=>{moduleTo}{slotTo + 1}");
return;
@ -448,7 +448,7 @@ namespace MECF.Framework.Common.SubstrateTrackings
var waferInfo = CopyWaferInfo(moduleTo, slotTo, AllLocationWafers[moduleFrom][slotFrom]);
UpdateWaferHistory(moduleTo, slotTo, SubstAccessType.Arrive);
EV.PostMessage(ModuleName.System.ToString(), EventEnum.WaferMoved, waferOrigin, moduleFrom.ToString(), slotFrom + 1, moduleTo.ToString(), slotTo + 1);
WaferMoveHistoryRecorder.WaferMoved(waferInfo.InnerId.ToString(), moduleTo.ToString(), slotTo, waferInfo.Status.ToString());
WaferMoveHistoryRecorder.WaferMoved(waferInfo.WaferInnerID.ToString(), moduleTo.ToString(), slotTo, waferInfo.WaferStatus.ToString());
EV.Notify("WAFER_LEFT_POSITION", new SerializableDictionary<string, string>
{
{
@ -510,7 +510,7 @@ namespace MECF.Framework.Common.SubstrateTrackings
{
UpdateWaferE90State(waferInfo.WaferID, EnumE90Status.Processed);
}
if (moduleTo == (ModuleName)waferInfo.OriginStation && waferInfo.SubstE90Status != EnumE90Status.Processed)
if (moduleTo == (ModuleName)waferInfo.WaferOriginStation && waferInfo.SubstE90Status != EnumE90Status.Processed)
{
UpdateWaferTransportState(waferInfo.WaferID, SubstrateTransportStatus.AtSource);
}
@ -519,8 +519,8 @@ namespace MECF.Framework.Common.SubstrateTrackings
UpdateWaferTransportState(waferInfo.WaferID, SubstrateTransportStatus.AtDestination);
}
}
UpdateWaferProcessStatus(moduleFrom, slotFrom, EnumWaferProcessStatus.Failed);
UpdateWaferProcessStatus(moduleTo, slotTo, EnumWaferProcessStatus.Failed);
UpdateWaferProcessStatus(moduleFrom, slotFrom, WaferProcessStatus.Failed);
UpdateWaferProcessStatus(moduleTo, slotTo, WaferProcessStatus.Failed);
_needSerialize = true;
}
@ -554,7 +554,7 @@ namespace MECF.Framework.Common.SubstrateTrackings
{
foreach (var item in locationWafer.Value)
{
if (item.Value != null && !item.Value.IsEmpty && item.Value.ProcessJob != null && item.Value.ProcessJob.Name == jobName)
if (item.Value != null && !item.Value.IsWaferEmpty && item.Value.ProcessJob != null && item.Value.ProcessJob.Name == jobName)
{
list.Add(item.Value);
}
@ -599,7 +599,7 @@ namespace MECF.Framework.Common.SubstrateTrackings
{
foreach (var item in locationWafer.Value)
{
if (item.Value.OriginCarrierID == Originalcarrier && item.Value.OriginSlot == Originalslot)
if (item.Value.OriginCarrierID == Originalcarrier && item.Value.WaferOriginSlot == Originalslot)
{
list.Add(item.Value);
}
@ -620,7 +620,7 @@ namespace MECF.Framework.Common.SubstrateTrackings
public bool CheckNoWafer(ModuleName module, int slot)
{
return IsWaferSlotLocationValid(module, slot) && AllLocationWafers[module][slot].IsEmpty;
return IsWaferSlotLocationValid(module, slot) && AllLocationWafers[module][slot].IsWaferEmpty;
}
public bool CheckNoWafer(string module, int slot)
@ -630,12 +630,12 @@ namespace MECF.Framework.Common.SubstrateTrackings
public bool CheckHasWafer(ModuleName module, int slot)
{
return IsWaferSlotLocationValid(module, slot) && !AllLocationWafers[module][slot].IsEmpty;
return IsWaferSlotLocationValid(module, slot) && !AllLocationWafers[module][slot].IsWaferEmpty;
}
public bool CheckWaferIsDummy(ModuleName module, int slot)
{
return IsWaferSlotLocationValid(module, slot) && !AllLocationWafers[module][slot].IsEmpty && AllLocationWafers[module][slot].Status == WaferStatus.Dummy;
return IsWaferSlotLocationValid(module, slot) && !AllLocationWafers[module][slot].IsWaferEmpty && AllLocationWafers[module][slot].WaferStatus == WaferStatus.Dummy;
}
public bool CheckWaferExistFlag(string moduleNo, string[] flagStrings, out string reason)
@ -651,13 +651,13 @@ namespace MECF.Framework.Common.SubstrateTrackings
{
if (text == "1")
{
if (IsWaferSlotLocationValid(result, num) && AllLocationWafers[result][num].IsEmpty)
if (IsWaferSlotLocationValid(result, num) && AllLocationWafers[result][num].IsWaferEmpty)
{
reason = "Flag Mis-Match";
return false;
}
}
else if (IsWaferSlotLocationValid(result, num) && !AllLocationWafers[result][num].IsEmpty)
else if (IsWaferSlotLocationValid(result, num) && !AllLocationWafers[result][num].IsWaferEmpty)
{
reason = "Flag Mis-Match";
return false;
@ -674,12 +674,12 @@ namespace MECF.Framework.Common.SubstrateTrackings
public bool CheckNoTray(ModuleName module, int slot)
{
return IsWaferSlotLocationValid(module, slot) && AllLocationWafers[module][slot].TrayState == WaferTrayStatus.Empty;
return IsWaferSlotLocationValid(module, slot) && AllLocationWafers[module][slot].TrayState == TrayStatus.Empty;
}
public bool CheckHasTray(ModuleName module, int slot)
{
return IsWaferSlotLocationValid(module, slot) && AllLocationWafers[module][slot].TrayState != WaferTrayStatus.Empty;
return IsWaferSlotLocationValid(module, slot) && AllLocationWafers[module][slot].TrayState != TrayStatus.Empty;
}
public bool CheckWaferFull(ModuleName module)
@ -687,7 +687,7 @@ namespace MECF.Framework.Common.SubstrateTrackings
var dictionary = AllLocationWafers[module];
foreach (var item in dictionary)
{
if (item.Value.IsEmpty)
if (item.Value.IsWaferEmpty)
{
return false;
}
@ -700,7 +700,7 @@ namespace MECF.Framework.Common.SubstrateTrackings
var dictionary = AllLocationWafers[module];
foreach (var item in dictionary)
{
if (!item.Value.IsEmpty)
if (!item.Value.IsWaferEmpty)
{
return false;
}
@ -710,7 +710,7 @@ namespace MECF.Framework.Common.SubstrateTrackings
public bool CheckWafer(ModuleName module, int slot, WaferStatus state)
{
return IsWaferSlotLocationValid(module, slot) && AllLocationWafers[module][slot].Status == state;
return IsWaferSlotLocationValid(module, slot) && AllLocationWafers[module][slot].WaferStatus == state;
}
public WaferInfoRt CreateWafer(ModuleName module, int slot, WaferStatus state)
@ -735,8 +735,8 @@ namespace MECF.Framework.Common.SubstrateTrackings
}
lock (_lockerWaferList)
{
AllLocationWafers[module][slot].Status = state;
AllLocationWafers[module][slot].ProcessState = EnumWaferProcessStatus.Idle;
AllLocationWafers[module][slot].WaferStatus = state;
AllLocationWafers[module][slot].ProcessState = WaferProcessStatus.Idle;
AllLocationWafers[module][slot].SubstE90Status = EnumE90Status.NeedProcessing;
AllLocationWafers[module][slot].WaferID = GenerateWaferId(module, slot, text);
AllLocationWafers[module][slot].WaferOrigin = GenerateOrigin(module, slot);
@ -745,8 +745,8 @@ namespace MECF.Framework.Common.SubstrateTrackings
//AllLocationWafers[module][slot].InnerId = Guid.NewGuid();
AllLocationWafers[module][slot].TrayBelongTo = "System";
AllLocationWafers[module][slot].TrayUsedForWhichPM = 0;
AllLocationWafers[module][slot].OriginStation = (int)module;
AllLocationWafers[module][slot].OriginSlot = slot;
AllLocationWafers[module][slot].WaferOriginStation = (int)module;
AllLocationWafers[module][slot].WaferOriginSlot = slot;
AllLocationWafers[module][slot].OriginCarrierID = text;
AllLocationWafers[module][slot].LotId = "";
AllLocationWafers[module][slot].HostLaserMark1 = "";
@ -754,23 +754,23 @@ namespace MECF.Framework.Common.SubstrateTrackings
AllLocationWafers[module][slot].LaserMarker = "";
AllLocationWafers[module][slot].T7Code = "";
AllLocationWafers[module][slot].PPID = "";
AllLocationWafers[module][slot].TrayState = WaferTrayStatus.Normal;
AllLocationWafers[module][slot].TrayState = TrayStatus.Normal;
AllLocationWafers[module][slot].TrayOriginStation = (int)module;
AllLocationWafers[module][slot].TrayOriginSlot = slot;
AllLocationWafers[module][slot].TrayProcessCount = (SC.ContainsItem("System.DefaultTrayProcessCount") ? SC.GetValue<int>("System.DefaultTrayProcessCount") : 10);
if (AllLocationWafers[module][slot].InnerId == Guid.Empty)//创建时可能有Tray防位置GUID被覆盖
if (AllLocationWafers[module][slot].WaferInnerID == Guid.Empty)//创建时可能有Tray防位置GUID被覆盖
{
AllLocationWafers[module][slot].InnerId = Guid.NewGuid();
AllLocationWafers[module][slot].WaferInnerID = Guid.NewGuid();
}
if (OnlyTrayModule.Contains(module))
{
AllLocationWafers[module][slot].Status = WaferStatus.Empty;
AllLocationWafers[module][slot].WaferStatus = WaferStatus.Empty;
}
else if (OnlyWaferModule.Contains(module))
{
AllLocationWafers[module][slot].InnerId = Guid.NewGuid();//单独出现Wafer地方必须创建,这里是EFEM版本
AllLocationWafers[module][slot].TrayState = WaferTrayStatus.Empty;
AllLocationWafers[module][slot].WaferInnerID = Guid.NewGuid();//单独出现Wafer地方必须创建,这里是EFEM版本
AllLocationWafers[module][slot].TrayState = TrayStatus.Empty;
}
var substHistory = new SubstHistory(module.ToString(), slot, DateTime.Now, SubstAccessType.Create);
AllLocationWafers[module][slot].SubstHists = new SubstHistory[1] { substHistory };
@ -778,7 +778,7 @@ namespace MECF.Framework.Common.SubstrateTrackings
}
UpdateWaferE90State(AllLocationWafers[module][slot].WaferID, EnumE90Status.NeedProcessing);
UpdateWaferTransportState(AllLocationWafers[module][slot].WaferID, SubstrateTransportStatus.AtSource);
WaferDataRecorder.CreateWafer(AllLocationWafers[module][slot].InnerId.ToString(), carrierGuid, module.ToString(), slot, AllLocationWafers[module][slot].WaferID, AllLocationWafers[module][slot].ProcessState.ToString());
WaferDataRecorder.CreateWafer(AllLocationWafers[module][slot].WaferInnerID.ToString(), carrierGuid, module.ToString(), slot, AllLocationWafers[module][slot].WaferID, AllLocationWafers[module][slot].ProcessState.ToString());
_needSerialize = true;
return AllLocationWafers[module][slot];
}
@ -805,8 +805,8 @@ namespace MECF.Framework.Common.SubstrateTrackings
}
lock (_lockerWaferList)
{
AllLocationWafers[module][slot].Status = state;
AllLocationWafers[module][slot].ProcessState = EnumWaferProcessStatus.Idle;
AllLocationWafers[module][slot].WaferStatus = state;
AllLocationWafers[module][slot].ProcessState = WaferProcessStatus.Idle;
AllLocationWafers[module][slot].SubstE90Status = EnumE90Status.NeedProcessing;
AllLocationWafers[module][slot].WaferID = GenerateWaferId(module, slot, text);
AllLocationWafers[module][slot].WaferOrigin = GenerateOrigin(module, slot);
@ -815,8 +815,8 @@ namespace MECF.Framework.Common.SubstrateTrackings
//AllLocationWafers[module][slot].InnerId = Guid.NewGuid();
AllLocationWafers[module][slot].TrayBelongTo = "System";
AllLocationWafers[module][slot].TrayUsedForWhichPM = 0;
AllLocationWafers[module][slot].OriginStation = (int)module;
AllLocationWafers[module][slot].OriginSlot = slot;
AllLocationWafers[module][slot].WaferOriginStation = (int)module;
AllLocationWafers[module][slot].WaferOriginSlot = slot;
AllLocationWafers[module][slot].OriginCarrierID = text;
AllLocationWafers[module][slot].LotId = "";
AllLocationWafers[module][slot].HostLaserMark1 = "";
@ -825,23 +825,23 @@ namespace MECF.Framework.Common.SubstrateTrackings
AllLocationWafers[module][slot].T7Code = "";
AllLocationWafers[module][slot].PPID = "";
AllLocationWafers[module][slot].Size = wz;
AllLocationWafers[module][slot].TrayState = WaferTrayStatus.Normal;
AllLocationWafers[module][slot].TrayState = TrayStatus.Normal;
AllLocationWafers[module][slot].TrayOriginStation = (int)module;
AllLocationWafers[module][slot].TrayOriginSlot = slot;
AllLocationWafers[module][slot].TrayProcessCount = (SC.ContainsItem("System.DefaultTrayProcessCount") ? SC.GetValue<int>("System.DefaultTrayProcessCount") : 10);
if (AllLocationWafers[module][slot].InnerId == Guid.Empty)//创建时可能有Tray防位置GUID被覆盖
if (AllLocationWafers[module][slot].WaferInnerID == Guid.Empty)//创建时可能有Tray防位置GUID被覆盖
{
AllLocationWafers[module][slot].InnerId = Guid.NewGuid();
AllLocationWafers[module][slot].WaferInnerID = Guid.NewGuid();
}
if (OnlyTrayModule.Contains(module))
{
AllLocationWafers[module][slot].Status = WaferStatus.Empty;
AllLocationWafers[module][slot].WaferStatus = WaferStatus.Empty;
}
else if (OnlyWaferModule.Contains(module))
{
AllLocationWafers[module][slot].TrayState = WaferTrayStatus.Empty;
AllLocationWafers[module][slot].InnerId = Guid.NewGuid();//单独出现Wafer地方必须创建,这里是EFEM版本
AllLocationWafers[module][slot].TrayState = TrayStatus.Empty;
AllLocationWafers[module][slot].WaferInnerID = Guid.NewGuid();//单独出现Wafer地方必须创建,这里是EFEM版本
}
var substHistory = new SubstHistory(module.ToString(), slot, DateTime.Now, SubstAccessType.Create);
AllLocationWafers[module][slot].SubstHists = new SubstHistory[1] { substHistory };
@ -849,12 +849,12 @@ namespace MECF.Framework.Common.SubstrateTrackings
}
UpdateWaferE90State(AllLocationWafers[module][slot].WaferID, EnumE90Status.NeedProcessing);
UpdateWaferTransportState(AllLocationWafers[module][slot].WaferID, SubstrateTransportStatus.AtSource);
WaferDataRecorder.CreateWafer(AllLocationWafers[module][slot].InnerId.ToString(), carrierGuid, module.ToString(), slot, AllLocationWafers[module][slot].WaferID, AllLocationWafers[module][slot].ProcessState.ToString());
WaferDataRecorder.CreateWafer(AllLocationWafers[module][slot].WaferInnerID.ToString(), carrierGuid, module.ToString(), slot, AllLocationWafers[module][slot].WaferID, AllLocationWafers[module][slot].ProcessState.ToString());
_needSerialize = true;
return AllLocationWafers[module][slot];
}
public WaferInfoRt CreateTray(ModuleName module, int slot, WaferTrayStatus trayStatu = WaferTrayStatus.Normal)
public WaferInfoRt CreateTray(ModuleName module, int slot, TrayStatus trayStatu = TrayStatus.Normal)
{
if (OnlyWaferModule.Contains(module))
{
@ -881,17 +881,17 @@ namespace MECF.Framework.Common.SubstrateTrackings
lock (_lockerWaferList)
{
AllLocationWafers[module][slot].TrayBelongTo = "System";
AllLocationWafers[module][slot].Status = WaferStatus.Empty;
AllLocationWafers[module][slot].ProcessState = EnumWaferProcessStatus.Idle;
AllLocationWafers[module][slot].WaferStatus = WaferStatus.Empty;
AllLocationWafers[module][slot].ProcessState = WaferProcessStatus.Idle;
AllLocationWafers[module][slot].SubstE90Status = EnumE90Status.NeedProcessing;
AllLocationWafers[module][slot].WaferID = GenerateWaferId(module, slot, text);
AllLocationWafers[module][slot].WaferOrigin = GenerateOrigin(module, slot);
AllLocationWafers[module][slot].Station = (int)module;
AllLocationWafers[module][slot].Slot = slot;
AllLocationWafers[module][slot].InnerId = Guid.NewGuid();
AllLocationWafers[module][slot].WaferInnerID = Guid.NewGuid();
AllLocationWafers[module][slot].TrayUsedForWhichPM = 0;
AllLocationWafers[module][slot].OriginStation = (int)module;
AllLocationWafers[module][slot].OriginSlot = slot;
AllLocationWafers[module][slot].WaferOriginStation = (int)module;
AllLocationWafers[module][slot].WaferOriginSlot = slot;
AllLocationWafers[module][slot].OriginCarrierID = text;
AllLocationWafers[module][slot].LotId = "";
AllLocationWafers[module][slot].HostLaserMark1 = "";
@ -909,13 +909,13 @@ namespace MECF.Framework.Common.SubstrateTrackings
}
UpdateWaferE90State(AllLocationWafers[module][slot].WaferID, EnumE90Status.NeedProcessing);
UpdateWaferTransportState(AllLocationWafers[module][slot].WaferID, SubstrateTransportStatus.AtSource);
WaferDataRecorder.CreateWafer(AllLocationWafers[module][slot].InnerId.ToString(), carrierGuid, module.ToString(), slot, AllLocationWafers[module][slot].WaferID, AllLocationWafers[module][slot].ProcessState.ToString());
WaferDataRecorder.CreateWafer(AllLocationWafers[module][slot].WaferInnerID.ToString(), carrierGuid, module.ToString(), slot, AllLocationWafers[module][slot].WaferID, AllLocationWafers[module][slot].ProcessState.ToString());
_needSerialize = true;
return AllLocationWafers[module][slot];
}
public void DelectGuid(ModuleName module, int slotFrom)
{
AllLocationWafers[module][0].InnerId = Guid.Empty;
AllLocationWafers[module][0]. WaferInnerID = Guid.Empty;
}
public void DeleteWafer(ModuleName module, int slotFrom, int count = 1)
{
@ -929,14 +929,14 @@ namespace MECF.Framework.Common.SubstrateTrackings
LOG.Write($"Invalid wafer delete, invalid parameter, {module}, {num + 1}");
continue;
}
UpdateWaferTrayStatus(module, num, WaferTrayStatus.Empty);
UpdateWaferTrayStatus(module, num, TrayStatus.Empty);
UpdateWaferE90State(AllLocationWafers[module][num].WaferID, EnumE90Status.None);
UpdateWaferTransportState(AllLocationWafers[module][num].WaferID, SubstrateTransportStatus.None);
WaferDataRecorder.DeleteWafer(AllLocationWafers[module][num].InnerId.ToString());
AllLocationWafers[module][num].SetEmpty();
WaferDataRecorder.DeleteWafer(AllLocationWafers[module][num].WaferInnerID.ToString());
AllLocationWafers[module][num].SetWaferTrayEmpty();
AllLocationWafers[module][num].SubstHists = null;
_dictWaferInfo.Remove(AllLocationWafers[module][num].WaferID);
AllLocationWafers[module][num].InnerId = Guid.Empty;
AllLocationWafers[module][num].WaferInnerID = Guid.Empty;
AllLocationWafers[module][num].TrayBelongTo = "";
}
}
@ -959,8 +959,8 @@ namespace MECF.Framework.Common.SubstrateTrackings
{
return;
}
AllLocationWafers[module][num].Status = WaferStatus.Empty;
AllLocationWafers[module][num].ProcessState = EnumWaferProcessStatus.Idle;
AllLocationWafers[module][num].WaferStatus = WaferStatus.Empty;
AllLocationWafers[module][num].ProcessState = WaferProcessStatus.Idle;
AllLocationWafers[module][num].ProcessJobID = "";
AllLocationWafers[module][num].ProcessJob = null;
}
@ -980,7 +980,7 @@ namespace MECF.Framework.Common.SubstrateTrackings
LOG.Write($"Invalid wafer delete, invalid parameter, {module}, {num + 1}");
continue;
}
AllLocationWafers[module][num].SetEmpty();
AllLocationWafers[module][num].SetWaferTrayEmpty();
AllLocationWafers[module][num].SubstHists = null;
_dictWaferInfo.Remove(AllLocationWafers[module][num].WaferID);
}
@ -1000,12 +1000,12 @@ namespace MECF.Framework.Common.SubstrateTrackings
}
UpdateWaferE90State(AllLocationWafers[module][num].WaferID, EnumE90Status.Lost);
UpdateWaferTransportState(AllLocationWafers[module][num].WaferID, SubstrateTransportStatus.None);
UpdateWaferTrayStatus(AllLocationWafers[module][num].WaferID, WaferTrayStatus.Empty);
UpdateWaferTrayStatus(AllLocationWafers[module][num].WaferID, TrayStatus.Empty);
UpdateWaferHistory(module, slotFrom, SubstAccessType.Delete);
lock (_lockerWaferList)
{
WaferDataRecorder.DeleteWafer(AllLocationWafers[module][num].InnerId.ToString());
AllLocationWafers[module][num].SetEmpty();
WaferDataRecorder.DeleteWafer(AllLocationWafers[module][num].WaferInnerID.ToString());
AllLocationWafers[module][num].SetWaferTrayEmpty();
_dictWaferInfo.Remove(AllLocationWafers[module][num].WaferID);
}
@ -1023,7 +1023,7 @@ namespace MECF.Framework.Common.SubstrateTrackings
lock (_lockerWaferList)
{
AllLocationWafers[module][slot].LaserMarker = laserMarker;
WaferDataRecorder.SetWaferMarker(AllLocationWafers[module][slot].InnerId.ToString(), laserMarker);
WaferDataRecorder.SetWaferMarker(AllLocationWafers[module][slot].WaferInnerID.ToString(), laserMarker);
}
_needSerialize = true;
}
@ -1071,7 +1071,7 @@ namespace MECF.Framework.Common.SubstrateTrackings
AllLocationWafers[module][slot].LaserMarkerScore = laserMarkerScore;
AllLocationWafers[module][slot].ImageFileName = fileName;
AllLocationWafers[module][slot].ImageFilePath = filePath;
WaferDataRecorder.SetWaferMarkerWithScoreAndFileName(AllLocationWafers[module][slot].InnerId.ToString(), laserMarker, laserMarkerScore, fileName, filePath);
WaferDataRecorder.SetWaferMarkerWithScoreAndFileName(AllLocationWafers[module][slot].WaferInnerID.ToString(), laserMarker, laserMarkerScore, fileName, filePath);
}
_needSerialize = true;
}
@ -1086,7 +1086,7 @@ namespace MECF.Framework.Common.SubstrateTrackings
lock (_lockerWaferList)
{
AllLocationWafers[module][slot].T7Code = T7Code;
WaferDataRecorder.SetWaferT7Code(AllLocationWafers[module][slot].InnerId.ToString(), T7Code);
WaferDataRecorder.SetWaferT7Code(AllLocationWafers[module][slot].WaferInnerID.ToString(), T7Code);
}
_needSerialize = true;
}
@ -1101,7 +1101,7 @@ namespace MECF.Framework.Common.SubstrateTrackings
lock (_lockerWaferList)
{
AllLocationWafers[module][slot].PPID = PPID;
WaferDataRecorder.SetWaferSequence(AllLocationWafers[module][slot].InnerId.ToString(), PPID);
WaferDataRecorder.SetWaferSequence(AllLocationWafers[module][slot].WaferInnerID.ToString(), PPID);
}
_needSerialize = true;
}
@ -1119,7 +1119,7 @@ namespace MECF.Framework.Common.SubstrateTrackings
AllLocationWafers[module][slot].T7CodeScore = t7CodeScore;
AllLocationWafers[module][slot].ImageFileName = fileName;
AllLocationWafers[module][slot].ImageFilePath = filePath;
WaferDataRecorder.SetWaferT7CodeWithScoreAndFileName(AllLocationWafers[module][slot].InnerId.ToString(), t7Code, t7CodeScore, fileName, filePath);
WaferDataRecorder.SetWaferT7CodeWithScoreAndFileName(AllLocationWafers[module][slot].WaferInnerID.ToString(), t7Code, t7CodeScore, fileName, filePath);
}
_needSerialize = true;
}
@ -1152,7 +1152,7 @@ namespace MECF.Framework.Common.SubstrateTrackings
_needSerialize = true;
}
public void UpdateWaferProcessStatus(ModuleName module, int slot, EnumWaferProcessStatus status)
public void UpdateWaferProcessStatus(ModuleName module, int slot, WaferProcessStatus status)
{
if (!IsWaferSlotLocationValid(module, slot))
{
@ -1162,7 +1162,7 @@ namespace MECF.Framework.Common.SubstrateTrackings
lock (_lockerWaferList)
{
AllLocationWafers[module][slot].ProcessState = status;
WaferDataRecorder.SetWaferStatus(AllLocationWafers[module][slot].InnerId.ToString(), status.ToString());
WaferDataRecorder.SetWaferStatus(AllLocationWafers[module][slot].WaferInnerID.ToString(), status.ToString());
}
_needSerialize = true;
}
@ -1172,20 +1172,20 @@ namespace MECF.Framework.Common.SubstrateTrackings
switch (status)
{
case ProcessStatus.Busy:
UpdateWaferProcessStatus(module, slot, EnumWaferProcessStatus.InProcess);
UpdateWaferProcessStatus(module, slot, WaferProcessStatus.InProcess);
break;
case ProcessStatus.Completed:
UpdateWaferProcessStatus(module, slot, EnumWaferProcessStatus.Completed);
UpdateWaferProcessStatus(module, slot, WaferProcessStatus.Completed);
break;
case ProcessStatus.Failed:
case ProcessStatus.Abort:
UpdateWaferProcessStatus(module, slot, EnumWaferProcessStatus.Failed);
UpdateWaferProcessStatus(module, slot, WaferProcessStatus.Failed);
break;
case ProcessStatus.Idle:
UpdateWaferProcessStatus(module, slot, EnumWaferProcessStatus.Idle);
UpdateWaferProcessStatus(module, slot, WaferProcessStatus.Idle);
break;
case ProcessStatus.Wait:
UpdateWaferProcessStatus(module, slot, EnumWaferProcessStatus.InProcess);
UpdateWaferProcessStatus(module, slot, WaferProcessStatus.InProcess);
break;
}
}
@ -1195,19 +1195,19 @@ namespace MECF.Framework.Common.SubstrateTrackings
switch (status)
{
case ProcessStatus.Busy:
UpdateWaferProcessStatus(waferID, EnumWaferProcessStatus.InProcess);
UpdateWaferProcessStatus(waferID, WaferProcessStatus.InProcess);
break;
case ProcessStatus.Completed:
UpdateWaferProcessStatus(waferID, EnumWaferProcessStatus.Completed);
UpdateWaferProcessStatus(waferID, WaferProcessStatus.Completed);
break;
case ProcessStatus.Failed:
UpdateWaferProcessStatus(waferID, EnumWaferProcessStatus.Failed);
UpdateWaferProcessStatus(waferID, WaferProcessStatus.Failed);
break;
case ProcessStatus.Idle:
UpdateWaferProcessStatus(waferID, EnumWaferProcessStatus.Idle);
UpdateWaferProcessStatus(waferID, WaferProcessStatus.Idle);
break;
case ProcessStatus.Wait:
UpdateWaferProcessStatus(waferID, EnumWaferProcessStatus.InProcess);
UpdateWaferProcessStatus(waferID, WaferProcessStatus.InProcess);
break;
}
}
@ -1250,7 +1250,7 @@ namespace MECF.Framework.Common.SubstrateTrackings
{
lock (_lockerWaferList)
{
if (!waferInfo.IsEmpty)
if (!waferInfo.IsWaferEmpty)
{
}
}
@ -1294,7 +1294,7 @@ namespace MECF.Framework.Common.SubstrateTrackings
},
{
"SubstSource",
((ModuleName)waferInfo.OriginStation).ToString()
((ModuleName)waferInfo.WaferOriginStation).ToString()
},
{
"SubstState",
@ -1345,7 +1345,7 @@ namespace MECF.Framework.Common.SubstrateTrackings
}
var sECsDataItem = new SECsDataItem(SECsFormat.List);
sECsDataItem.Add("SourceCarrier", waferInfo.OriginCarrierID ?? "");
sECsDataItem.Add("SourceSlot", (waferInfo.OriginSlot + 1).ToString());
sECsDataItem.Add("SourceSlot", (waferInfo.WaferOriginSlot + 1).ToString());
sECsDataItem.Add("CurrentCarrier", text ?? "");
sECsDataItem.Add("CurrentSlot", (waferInfo.Slot + 1).ToString());
sECsDataItem.Add("LaserMark1", waferInfo.LaserMarker ?? "");
@ -1379,12 +1379,12 @@ namespace MECF.Framework.Common.SubstrateTrackings
},
{
"SubstSource",
((ModuleName)waferInfo.OriginStation).ToString()
((ModuleName)waferInfo.WaferOriginStation).ToString()
},
{ "SourceCarrier", waferInfo.OriginCarrierID },
{
"SourceSlot",
waferInfo.OriginSlot + 1
waferInfo.WaferOriginSlot + 1
},
{
"Slot",
@ -1463,7 +1463,7 @@ namespace MECF.Framework.Common.SubstrateTrackings
public void UpdateWaferE90State(ModuleName module, int slot, EnumE90Status E90state)
{
var wafer = GetWafer(module, slot);
if (wafer.IsEmpty)
if (wafer.IsWaferEmpty)
{
return;
}
@ -1502,12 +1502,12 @@ namespace MECF.Framework.Common.SubstrateTrackings
},
{
"SubstSource",
((ModuleName)wafer.OriginStation).ToString()
((ModuleName)wafer.WaferOriginStation).ToString()
},
{ "SourceCarrier", wafer.OriginCarrierID },
{
"SourceSlot",
wafer.OriginSlot + 1
wafer.WaferOriginSlot + 1
},
{
"Slot",
@ -1591,7 +1591,7 @@ namespace MECF.Framework.Common.SubstrateTrackings
lock (_lockerWaferList)
{
AllLocationWafers[module][slot].LotId = lotId;
WaferDataRecorder.SetWaferLotId(AllLocationWafers[module][slot].InnerId.ToString(), lotId);
WaferDataRecorder.SetWaferLotId(AllLocationWafers[module][slot].WaferInnerID.ToString(), lotId);
Singleton<CarrierManager>.Instance.UpdateCarrierLot(module.ToString(), lotId);
}
_needSerialize = true;
@ -1625,7 +1625,7 @@ namespace MECF.Framework.Common.SubstrateTrackings
_needSerialize = true;
}
public void UpdateWaferProcessStatus(string waferID, EnumWaferProcessStatus status)
public void UpdateWaferProcessStatus(string waferID, WaferProcessStatus status)
{
var wafer = GetWafer(waferID);
lock (_lockerWaferList)
@ -1647,7 +1647,7 @@ namespace MECF.Framework.Common.SubstrateTrackings
var array = wafer;
foreach (var waferInfo in array)
{
WaferDataRecorder.SetProcessInfo(waferInfo.InnerId.ToString(), processId);
WaferDataRecorder.SetProcessInfo(waferInfo.WaferInnerID.ToString(), processId);
}
}
_needSerialize = true;
@ -1721,7 +1721,7 @@ namespace MECF.Framework.Common.SubstrateTrackings
return $"{ModuleHelper.GetAbbr(module)}.{slot + 1:D2}";
}
public void UpdateWaferTrayStatus(string waferid, WaferTrayStatus state)
public void UpdateWaferTrayStatus(string waferid, TrayStatus state)
{
if (string.IsNullOrEmpty(waferid))
{
@ -1742,12 +1742,12 @@ namespace MECF.Framework.Common.SubstrateTrackings
}
}
public void UpdateWaferTrayStatus(ModuleName module, int slot, WaferTrayStatus status)
public void UpdateWaferTrayStatus(ModuleName module, int slot, TrayStatus status)
{
lock (_lockerWaferList)
{
AllLocationWafers[module][slot].TrayState = status;
if (status == WaferTrayStatus.Empty)
if (status == TrayStatus.Empty)
{
AllLocationWafers[module][slot].TrayProcessCount = 0;
}

View File

@ -1482,7 +1482,7 @@ namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.LoadPorts
string slot = "";
for (int i = 0; i < _slotNumber && i < wafers.Length; i++)
{
slot += wafers[i].IsEmpty ? "0" : "1";
slot += wafers[i].IsWaferEmpty ? "0" : "1";
}
return slot;
@ -1493,9 +1493,9 @@ namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.LoadPorts
var wafers = WaferManager.Instance.GetWafers(ModuleHelper.Converter(Name));
foreach (var wafer in wafers)
{
if (wafer.Status == WaferStatus.Crossed || wafer.Status == WaferStatus.Double)
if (wafer.WaferStatus == WaferStatus.Crossed || wafer.WaferStatus == WaferStatus.Double)
{
EV.PostWarningLog(Name, $"At least one wafer is {wafer.Status.ToString()}.");
EV.PostWarningLog(Name, $"At least one wafer is {wafer.WaferStatus.ToString()}.");
return false;
}
}
@ -1514,7 +1514,7 @@ namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.LoadPorts
var wafers = WaferManager.Instance.GetWafers(ModuleHelper.Converter(Name));
for (int i = 0; i < _slotNumber; i++)
{
if (wafers[i].IsEmpty)
if (wafers[i].IsWaferEmpty)
slot.Add(i);
}
return slot;

View File

@ -2116,11 +2116,11 @@ namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.LoadPorts.LoadPortBas
var wafers = WaferManager.Instance.GetWafers(ModuleHelper.Converter(Name));
foreach (var wafer in wafers)
{
if (wafer.IsEmpty) continue;
if (wafer.Status == WaferStatus.Crossed || wafer.Status == WaferStatus.Double)
if (wafer.IsWaferEmpty) continue;
if (wafer.WaferStatus == WaferStatus.Crossed || wafer.WaferStatus == WaferStatus.Double)
{
//EV.PostWarningLog(Name, $"At least one wafer is {wafer.Status.ToString()}.");
reason = $"At least one wafer is {wafer.Status.ToString()}.";
reason = $"At least one wafer is {wafer.WaferStatus.ToString()}.";
return false;
}
}
@ -2320,7 +2320,7 @@ namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.LoadPorts.LoadPortBas
string slot = "";
for (int i = 0; i < 25; i++)
{
slot += wafers[i].IsEmpty ? "0" : "1";
slot += wafers[i].IsWaferEmpty ? "0" : "1";
}
return slot;

View File

@ -351,7 +351,7 @@ namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.LoadPorts.OpenStages
int OcrThreshold = SC.GetValue<int>("Process.OCRScoreThreshold");
foreach(var wafer in wafers)
{
if (wafer.IsEmpty)
if (wafer.IsWaferEmpty)
continue;
if (wafer.SubstE90Status != EnumE90Status.Processed)
continue;
@ -361,7 +361,7 @@ namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.LoadPorts.OpenStages
if(waferscore < (float)OcrThreshold)
{
wafer.SubstE90Status = EnumE90Status.Aborted;
wafer.ProcessState = EnumWaferProcessStatus.Failed;
wafer.ProcessState = WaferProcessStatus.Failed;
}
}
@ -635,13 +635,13 @@ namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.LoadPorts.OpenStages
foreach(var wafer in WaferManager.Instance.GetWafers(LPModuleName))
{
if (wafer.IsEmpty) continue;
if(wafer.Status == WaferStatus.Crossed)
if (wafer.IsWaferEmpty) continue;
if(wafer.WaferStatus == WaferStatus.Crossed)
{
reason = "Crossed wafer";
return false;
}
if (wafer.Status == WaferStatus.Double)
if (wafer.WaferStatus == WaferStatus.Double)
{
reason = "Double wafer";
return false;

View File

@ -496,13 +496,13 @@ namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.LoadPorts.OpenStages
}
foreach (var wafer in WaferManager.Instance.GetWafers(LPModuleName))
{
if (wafer.IsEmpty) continue;
if (wafer.Status == WaferStatus.Crossed)
if (wafer.IsWaferEmpty) continue;
if (wafer.WaferStatus == WaferStatus.Crossed)
{
reason = "Crossed wafer";
return false;
}
if (wafer.Status == WaferStatus.Double)
if (wafer.WaferStatus == WaferStatus.Double)
{
reason = "Double wafer";
return false;

View File

@ -235,7 +235,7 @@ namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.OcrReaders
public void Monitor()
{
var wafer = WaferManager.Instance.GetWafers(ModuleName.Aligner)[0];
if(wafer.IsEmpty) CurrentLaserMark = string.Empty;
if(wafer.IsWaferEmpty) CurrentLaserMark = string.Empty;
//if (IO.DI["DI_PreAlignerWaferOn"].Value) CurrentLaserMark = string.Empty;
}

View File

@ -150,12 +150,12 @@ namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.OcrReaders
reason = "";
CurrentLaserMark = param[0].ToString();
var wafer = WaferManager.Instance.GetWafer(InstalledModule, 0);
if (!wafer.IsEmpty)
if (!wafer.IsWaferEmpty)
{
wafer.LaserMarker = CurrentLaserMark;
Guid guid = Guid.NewGuid();
OCRDataRecorder.OcrReadComplete(guid.ToString(), wafer.WaferID, wafer.OriginStation.ToString(),
wafer.OriginCarrierID ?? "", wafer.OriginSlot.ToString(), "0", "0", true, CurrentLaserMark,
OCRDataRecorder.OcrReadComplete(guid.ToString(), wafer.WaferID, wafer.WaferOriginStation.ToString(),
wafer.OriginCarrierID ?? "", wafer.WaferOriginSlot.ToString(), "0", "0", true, CurrentLaserMark,
"0", "0");
}

View File

@ -619,7 +619,7 @@ namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Robots.HwinRobot
}
else
{
WaferManager.Instance.GetWafer(CurrentInteractModule, i).Status = GetWaferStarusByNum(waferStatue, out msg);// Aitex.Core.Common.WaferStatus.Crossed;
WaferManager.Instance.GetWafer(CurrentInteractModule, i).WaferStatus = GetWaferStarusByNum(waferStatue, out msg);// Aitex.Core.Common.WaferStatus.Crossed;
}
errorMessage += $"slot {i + 1} has {msg}!" + "\r\n";
}

View File

@ -109,7 +109,7 @@ namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Robots.HwinRobot
{
if (!WaferManager.Instance.CheckHasTray(CurrentInteractModule, i))
{
WaferManager.Instance.CreateTray(CurrentInteractModule, i,Aitex.Core.Common.WaferTrayStatus.Crossed);
WaferManager.Instance.CreateTray(CurrentInteractModule, i,Aitex.Core.Common.TrayStatus.Crossed);
}
errorMessage += $"slot {i + 1} has crossed wafer!" + "\r\n";
}

View File

@ -155,7 +155,7 @@ namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.PMs
public virtual void OnProcessStart(string guid, string recipeName, bool isClean)
{
ProcessDataRecorder.Start(guid, recipeName,
WaferManager.Instance.GetWafer(ModuleHelper.Converter(Module), 0).InnerId.ToString(), Module);
WaferManager.Instance.GetWafer(ModuleHelper.Converter(Module), 0).WaferInnerID.ToString(), Module);
if (!isClean)
{

View File

@ -330,7 +330,7 @@ namespace Aitex.Core.RT.Device.Unit
if (!_doM1.SetValue(false, out var reason)) LOG.Error($"{Module} reset DO failed, {reason}");
_state = TurnOverState.Idle;
var wafer = WaferManager.Instance.GetWafer(ModuleName.TurnOverStation, 0);
if (!wafer.IsEmpty)
if (!wafer.IsWaferEmpty)
{
var dvid = new SerializableDictionary<string, string>()
{
@ -507,7 +507,7 @@ namespace Aitex.Core.RT.Device.Unit
//if (_doM1.Value == false) _doM1.SetValue(true, out _);
_loopTimer.Start(_scLoopInterval.IntValue * 1000);
var wafer = WaferManager.Instance.GetWafer(ModuleName.TurnOverStation,0);
if (!wafer.IsEmpty)
if (!wafer.IsWaferEmpty)
{
var dvid = new SerializableDictionary<string, string>()
{

View File

@ -136,7 +136,7 @@ namespace MECF.Framework.UI.Client.ClientBase
Dictionary<string, object> data = QueryDataClient.Instance.Service.PollData(new List<string> { chamber.ToString() + ".ModuleWaferList" });
WaferInfoRt[] _waferInfo = data[chamber.ToString() + ".ModuleWaferList"] as WaferInfoRt[];
int slot = _waferInfo[CurrentSlot.SlotID].Slot; //(位置获取Tray的ID)
string guid = _waferInfo[CurrentSlot.SlotID].InnerId.ToString(); //(位置获取Tray的ID)
string guid = _waferInfo[CurrentSlot.SlotID].WaferInnerID.ToString(); //(位置获取Tray的ID)
//var wins = Application.Current.Windows.OfType<WinTrayThicknessDataView>().ToArray();
//if (wins.Any())
@ -153,7 +153,7 @@ namespace MECF.Framework.UI.Client.ClientBase
//{
var wm = new WindowManager();
UiViewModelBase model;
if (chamber.ToString().Contains("PM") && _waferInfo[CurrentSlot.SlotID].InnerId == Guid.Empty)
if (chamber.ToString().Contains("PM") && _waferInfo[CurrentSlot.SlotID].WaferInnerID == Guid.Empty)
model = new WinPMThicknessDataViewModel(chamber.ToString());
else
model = new WinTrayThicknessDataViewModel(guid, chamber, slot);

View File

@ -88,7 +88,7 @@ namespace MECF.Framework.UI.Client.ClientBase
var convertedWafer = WaferInfoConverter(wafers[index], info.WaferModuleID, index);
info.WaferManager.Wafers[i].WaferStatus = convertedWafer.WaferStatus;
info.WaferManager.Wafers[i].WaferID = convertedWafer.WaferID;
if (wafers[index].IsEmpty)
if (wafers[index].IsWaferEmpty)
{
info.WaferManager.Wafers[i].SourceName =((ModuleName)wafers[index].TrayOriginStation).ToString()+"."+ (wafers[index].TrayOriginSlot + 1).ToString().PadLeft(2,'0');
}
@ -119,12 +119,12 @@ namespace MECF.Framework.UI.Client.ClientBase
{
info.WaferManager.Wafers[i].ToolTip = new ToolTip()
{
Content = $"LotId : {wafers[index].LotId}\r\nWaferId : {wafers[index].WaferID}\r\nSequenceName : {wafers[index].ProcessJobID}\r\nWaferStatus : {((int)wafers[index].Status).ToString()}\r\nNextSequenceStep : {wafers[index].NextSequenceStep + 1}\r\nTrayState : {((int)wafers[index].TrayState).ToString()}\r\nTrayProcessCount : {wafers[index].TrayProcessCount}\r\nTrayOriginStation : {((ModuleName)wafers[index].TrayOriginStation).ToString()}\r\nTrayOriginSlot : {wafers[index].TrayOriginSlot + 1}\r\nTrayBelongTo : {_trayBelongTo}"
Content = $"LotId : {wafers[index].LotId}\r\nWaferId : {wafers[index].WaferID}\r\nSequenceName : {wafers[index].ProcessJobID}\r\nWaferStatus : {((int)wafers[index].WaferStatus).ToString()}\r\nNextSequenceStep : {wafers[index].NextSequenceStep + 1}\r\nTrayState : {((int)wafers[index].TrayState).ToString()}\r\nTrayProcessCount : {wafers[index].TrayProcessCount}\r\nTrayOriginStation : {((ModuleName)wafers[index].TrayOriginStation).ToString()}\r\nTrayOriginSlot : {wafers[index].TrayOriginSlot + 1}\r\nTrayBelongTo : {_trayBelongTo}"
};
}
else
{
info.WaferManager.Wafers[i].ToolTip.Content = $"LotId : {wafers[index].LotId}\r\nWaferId : {wafers[index].WaferID}\r\nSequenceName : {wafers[index].ProcessJobID}\r\nWaferStatus : {((int)wafers[index].Status).ToString()}\r\nNextSequenceStep : {wafers[index].NextSequenceStep + 1}\r\nTrayState : {((int)wafers[index].TrayState).ToString()}\r\nTrayProcessCount : {wafers[index].TrayProcessCount}\r\nTrayOriginStation : {((ModuleName)wafers[index].TrayOriginStation).ToString()}\r\nTrayOriginSlot : {wafers[index].TrayOriginSlot + 1}\r\nTrayBelongTo : {_trayBelongTo}";
info.WaferManager.Wafers[i].ToolTip.Content = $"LotId : {wafers[index].LotId}\r\nWaferId : {wafers[index].WaferID}\r\nSequenceName : {wafers[index].ProcessJobID}\r\nWaferStatus : {((int)wafers[index].WaferStatus).ToString()}\r\nNextSequenceStep : {wafers[index].NextSequenceStep + 1}\r\nTrayState : {((int)wafers[index].TrayState).ToString()}\r\nTrayProcessCount : {wafers[index].TrayProcessCount}\r\nTrayOriginStation : {((ModuleName)wafers[index].TrayOriginStation).ToString()}\r\nTrayOriginSlot : {wafers[index].TrayOriginSlot + 1}\r\nTrayBelongTo : {_trayBelongTo}";
}
}
@ -179,22 +179,22 @@ namespace MECF.Framework.UI.Client.ClientBase
//8:partial processed
private int WaferStatusConverter(RTDefine.WaferInfoRt awafer)
{
if (awafer.Status == RTDefine.WaferStatus.Empty)
if (awafer.WaferStatus == RTDefine.WaferStatus.Empty)
return 0;
if (awafer.Status == RTDefine.WaferStatus.Normal)
if (awafer.WaferStatus == RTDefine.WaferStatus.Normal)
{
switch (awafer.ProcessState)
{
case RTDefine.EnumWaferProcessStatus.InProcess: return 3;
case RTDefine.EnumWaferProcessStatus.Completed: return awafer.HasWarning ? 7 : 4;
case RTDefine.EnumWaferProcessStatus.Failed: return 5;
case RTDefine.EnumWaferProcessStatus.Wait: return 3;
case RTDefine.EnumWaferProcessStatus.Idle: return awafer.ProcessJob == null ? 1 : 2;
case RTDefine.WaferProcessStatus.InProcess: return 3;
case RTDefine.WaferProcessStatus.Completed: return awafer.HasWarning ? 7 : 4;
case RTDefine.WaferProcessStatus.Failed: return 5;
case RTDefine.WaferProcessStatus.Wait: return 3;
case RTDefine.WaferProcessStatus.Idle: return awafer.ProcessJob == null ? 1 : 2;
}
}
if (awafer.Status == RTDefine.WaferStatus.Dummy)
if (awafer.WaferStatus == RTDefine.WaferStatus.Dummy)
{
return 6;
}