整理Slot信息,添加属性和Wafer共享数据
This commit is contained in:
parent
c4b0f20a7a
commit
405a49bb77
|
@ -10,6 +10,7 @@ using MECF.Framework.Common.Jobs;
|
|||
using MECF.Framework.Common.Properties;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Runtime.Serialization;
|
||||
|
@ -17,6 +18,7 @@ using System.Text;
|
|||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using MECF.Framework.Common.DBCore;
|
||||
|
||||
namespace Aitex.Core.Common
|
||||
{
|
||||
|
@ -24,6 +26,9 @@ namespace Aitex.Core.Common
|
|||
[DataContract]
|
||||
public class SlotInfor : NotifiableItem
|
||||
{
|
||||
private string _sequenceName;
|
||||
private int _nextSequenceStep;
|
||||
|
||||
public SlotInfor(ModuleName module,int slotID,int trayNum, int waferNum)
|
||||
{
|
||||
ModuleID = module.ToString();
|
||||
|
@ -52,6 +57,14 @@ namespace Aitex.Core.Common
|
|||
}
|
||||
}
|
||||
|
||||
private void UpData()
|
||||
{
|
||||
foreach (var waferInfor in WaferInforList ?? Enumerable.Empty<WaferInfor>())
|
||||
{
|
||||
waferInfor.SlotInforUpData(this);
|
||||
}
|
||||
}
|
||||
|
||||
public int TrayNum { get; private set; }
|
||||
|
||||
public int WaferNum { get; private set; }
|
||||
|
@ -71,9 +84,6 @@ namespace Aitex.Core.Common
|
|||
[DataMember]
|
||||
public int SlotID { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public string CurrentCarrierID { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public string OriginCarrierID { get; set; }
|
||||
|
||||
|
@ -90,8 +100,96 @@ namespace Aitex.Core.Common
|
|||
[MoveInfor]
|
||||
public int NextStation { get; set; }
|
||||
|
||||
|
||||
#region 和Wafer共享的数据,包含Sequence、Recipe相关内容
|
||||
|
||||
private string _recipeName;
|
||||
[DataMember]
|
||||
public string RecipeName
|
||||
{
|
||||
get => _recipeName;
|
||||
set { _recipeName = value; UpData(); }
|
||||
}
|
||||
|
||||
|
||||
[DataMember]
|
||||
public string SequenceName
|
||||
{
|
||||
get => _sequenceName;
|
||||
set
|
||||
{
|
||||
_sequenceName=value;
|
||||
UpData();
|
||||
}
|
||||
}
|
||||
|
||||
[DataMember]
|
||||
public int NextSequenceStep
|
||||
{
|
||||
get => _nextSequenceStep;
|
||||
set
|
||||
{
|
||||
_nextSequenceStep = value;
|
||||
UpData();
|
||||
}
|
||||
}
|
||||
|
||||
private string _lotId;
|
||||
|
||||
[DataMember]
|
||||
public string LotId
|
||||
{
|
||||
get => _lotId;
|
||||
set
|
||||
{
|
||||
_lotId = value;
|
||||
UpData();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private ProcessJobInfo _processJob;
|
||||
[DataMember]
|
||||
public ProcessJobInfo ProcessJob
|
||||
{
|
||||
get => _processJob;
|
||||
set
|
||||
{
|
||||
_processJob = value;
|
||||
UpData();
|
||||
}
|
||||
}
|
||||
|
||||
private string processJobID;
|
||||
|
||||
[DataMember]
|
||||
public string ProcessJobID
|
||||
{
|
||||
get => processJobID;
|
||||
set
|
||||
{
|
||||
processJobID = value;
|
||||
UpData();
|
||||
}
|
||||
}
|
||||
|
||||
private string controlJobID;
|
||||
|
||||
[DataMember]
|
||||
[MoveInfor]
|
||||
public string ControlJobID
|
||||
{
|
||||
get => controlJobID;
|
||||
set
|
||||
{
|
||||
controlJobID = value;
|
||||
UpData();
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
[DataMember]
|
||||
public int NextStationSlot { get; set; }
|
||||
|
||||
private bool isSource;
|
||||
|
@ -296,6 +394,10 @@ namespace Aitex.Core.Common
|
|||
[MoveInfor]
|
||||
public string SequenceName { get; set; }
|
||||
|
||||
[DataMember]
|
||||
[MoveInfor]
|
||||
public int NextSequenceStep { get; set; }
|
||||
|
||||
[DataMember]
|
||||
[MoveInfor]
|
||||
public string WaferID { get; set; }
|
||||
|
@ -313,11 +415,7 @@ namespace Aitex.Core.Common
|
|||
|
||||
[DataMember]
|
||||
[MoveInfor]
|
||||
public ProcessJobInfo ProcessJob { get; set; }
|
||||
|
||||
[DataMember]
|
||||
[MoveInfor]
|
||||
public int NextSequenceStep { get; set; }
|
||||
public ProcessJobInfo? ProcessJob { get; set; }
|
||||
|
||||
[DataMember]
|
||||
[MoveInfor]
|
||||
|
@ -380,12 +478,25 @@ namespace Aitex.Core.Common
|
|||
set { _moduleSlotID = value; InvokePropertyChanged(); }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 刷新界面提示用,当对象属性值改变时,需要设为true ProcessJob
|
||||
/// </summary>
|
||||
private bool _isToolTipRefresh = true;
|
||||
private string _toolTip;
|
||||
[DataMember]
|
||||
[MoveInfor]
|
||||
public string ToolTip
|
||||
{
|
||||
get => $"ModuleName : {ModuleID}\r\nModuleSlot : {ModuleSlotID+1}\r\nWaferSlot : {WaferSlotID+1}\r\nWaferOrigin: {WaferOriginModule}\r\nLotId : {LotId}\r\nWaferId : {WaferID}\r\nSequenceName : {ProcessJobID}\r\nRecipeName : {RecipeName}\r\nWaferStatus : {WaferStatus}\r\nNextSequenceStep : {NextSequenceStep + 1}\r\nTrayState : {TrayInfor?.TrayStatus}\r\nTrayProcessCount : {TrayInfor?.TrayProcessCount}\r\nTrayOriginStation : { TrayInfor?.TrayOriginStation}\r\nTrayOriginSlot : {TrayInfor?.TrayOriginSlot + 1}\r\nTrayBelongTo : {TrayInfor?.TrayBelongTo}";
|
||||
|
||||
get
|
||||
{
|
||||
//if (_isToolTipRefresh)
|
||||
{
|
||||
_toolTip = ToolTipInfor();
|
||||
_isToolTipRefresh =false ;
|
||||
}
|
||||
return _toolTip;
|
||||
}
|
||||
set { }
|
||||
}
|
||||
|
||||
|
@ -437,12 +548,9 @@ namespace Aitex.Core.Common
|
|||
[MoveInfor]
|
||||
public int WaferStateNum
|
||||
{
|
||||
get => waferStateNum;
|
||||
set
|
||||
{
|
||||
waferStateNum = WaferStatusConverter(this); ;
|
||||
InvokePropertyChanged();
|
||||
}
|
||||
get => WaferStatusConverter(this);
|
||||
set { }
|
||||
|
||||
}
|
||||
|
||||
private bool isChecked;
|
||||
|
@ -458,11 +566,11 @@ namespace Aitex.Core.Common
|
|||
}
|
||||
}
|
||||
|
||||
private WaferProcessStatus processState;
|
||||
private WaferProcessStatus? processState;
|
||||
|
||||
[DataMember]
|
||||
[MoveInfor]
|
||||
public WaferProcessStatus ProcessState
|
||||
public WaferProcessStatus? ProcessState
|
||||
{
|
||||
get => processState;
|
||||
set
|
||||
|
@ -523,12 +631,27 @@ namespace Aitex.Core.Common
|
|||
WaferSlotID = waferSlotID;
|
||||
TrayInfor = trayInfor;
|
||||
}
|
||||
|
||||
public void SlotInforUpData(SlotInfor slotInfor)
|
||||
{
|
||||
RecipeName= slotInfor.RecipeName;
|
||||
SequenceName =slotInfor.SequenceName;
|
||||
NextSequenceStep = slotInfor.NextSequenceStep;
|
||||
LotId = slotInfor.LotId;
|
||||
ProcessJob=slotInfor.ProcessJob;
|
||||
ProcessJobID=slotInfor.ProcessJobID;
|
||||
ControlJobID =slotInfor.ControlJobID;
|
||||
RefreshToolTip();
|
||||
}
|
||||
|
||||
public void Move(WaferInfor wafetInfor)
|
||||
{
|
||||
ObjectMove objectMove = new ObjectMove();
|
||||
objectMove.Move(this, wafetInfor);
|
||||
|
||||
TrayInfor.Move(wafetInfor.TrayInfor);
|
||||
|
||||
RefreshToolTip();
|
||||
}
|
||||
|
||||
public void SetWaferEmpty()
|
||||
|
@ -552,6 +675,8 @@ namespace Aitex.Core.Common
|
|||
SubstTransStatus = SubstrateTransportStatus.None;
|
||||
SubstE90Status = EnumE90Status.None;
|
||||
SubstHists = null;
|
||||
|
||||
RefreshToolTip();
|
||||
}
|
||||
|
||||
public void CreateWaferInformation(SlotInfor slotInfor,string waferId, string origin, WaferStatus status = WaferStatus.Normal, WaferSize wz = WaferSize.WS6)
|
||||
|
@ -578,6 +703,8 @@ namespace Aitex.Core.Common
|
|||
SubstTransStatus = SubstrateTransportStatus.None;
|
||||
SubstE90Status = EnumE90Status.NeedProcessing;
|
||||
SubstHists = null;
|
||||
|
||||
RefreshToolTip();
|
||||
}
|
||||
|
||||
//0: no wafer
|
||||
|
@ -614,6 +741,36 @@ namespace Aitex.Core.Common
|
|||
return 5;
|
||||
}
|
||||
|
||||
private string ToolTipInfor()
|
||||
{
|
||||
var sb = new StringBuilder();
|
||||
sb.AppendLine($"ModuleName : {ModuleID ?? ""}");
|
||||
sb.AppendLine($"ModuleSlot : {ModuleSlotID + 1}");
|
||||
sb.AppendLine($"WaferSlot : {WaferSlotID + 1}");
|
||||
sb.AppendLine($"WaferOrigin: {WaferOriginModule ?? ""}");
|
||||
sb.AppendLine($"LotId : {LotId ?? ""}");
|
||||
sb.AppendLine($"WaferId : {WaferID ?? ""}");
|
||||
sb.AppendLine($"ProcessJobID : {ProcessJobID ?? ""}");
|
||||
sb.AppendLine($"RecipeName : {RecipeName ?? ""}");
|
||||
sb.AppendLine($"WaferStatus : {WaferStatus}");
|
||||
sb.AppendLine($"ProcessState : {ProcessState?.ToString() ?? ""}");
|
||||
sb.AppendLine($"ProcessJob : {ProcessJob?.ToString() ?? ""}");
|
||||
sb.AppendLine($"SequenceName : {SequenceName?.ToString() ?? ""}");
|
||||
sb.AppendLine($"NextSequenceStep : {NextSequenceStep + 1}");
|
||||
sb.AppendLine($"TrayState : {TrayInfor?.TrayStatus}");
|
||||
sb.AppendLine($"TrayProcessCount : {TrayInfor?.TrayProcessCount ?? 0}");
|
||||
sb.AppendLine($"TrayOriginStation : {TrayInfor?.TrayOriginStation ?? ""}");
|
||||
sb.AppendLine($"TrayOriginSlot : {(TrayInfor?.TrayOriginSlot + 1) ?? 0}");
|
||||
sb.Append($"TrayBelongTo : {TrayInfor?.TrayBelongTo ?? ""}");
|
||||
|
||||
return sb.ToString();
|
||||
}
|
||||
|
||||
private void RefreshToolTip()
|
||||
{
|
||||
_isToolTipRefresh = true;
|
||||
}
|
||||
|
||||
#endregion WaferInfor
|
||||
}
|
||||
|
||||
|
@ -641,4 +798,5 @@ namespace Aitex.Core.Common
|
|||
public class MoveInforAttribute : Attribute
|
||||
{
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue