|
@@ -128,8 +128,8 @@ namespace CyberX8_MainPages.ViewModels
|
|
private bool _isLP3AutoStarted = false;
|
|
private bool _isLP3AutoStarted = false;
|
|
private bool _isLP1CanCreatedJob = false;
|
|
private bool _isLP1CanCreatedJob = false;
|
|
private bool _isLP2CanCreatedJob = false;
|
|
private bool _isLP2CanCreatedJob = false;
|
|
- private bool _isLP3CanCreatedJob = false;
|
|
|
|
-
|
|
|
|
|
|
+ private bool _isLP3CanCreatedJob = false;
|
|
|
|
+
|
|
/// <summary>
|
|
/// <summary>
|
|
/// LP1 RecipeMode
|
|
/// LP1 RecipeMode
|
|
/// </summary>
|
|
/// </summary>
|
|
@@ -284,8 +284,8 @@ namespace CyberX8_MainPages.ViewModels
|
|
{
|
|
{
|
|
get { return m_ButtonIsEnableLP3; }
|
|
get { return m_ButtonIsEnableLP3; }
|
|
set { SetProperty(ref m_ButtonIsEnableLP3, value); }
|
|
set { SetProperty(ref m_ButtonIsEnableLP3, value); }
|
|
- }
|
|
|
|
-
|
|
|
|
|
|
+ }
|
|
|
|
+
|
|
/// <summary>
|
|
/// <summary>
|
|
/// Created job 按钮可用性
|
|
/// Created job 按钮可用性
|
|
/// </summary>
|
|
/// </summary>
|
|
@@ -431,8 +431,7 @@ namespace CyberX8_MainPages.ViewModels
|
|
|
|
|
|
private DelegateCommand<object> _LPMapCommand;
|
|
private DelegateCommand<object> _LPMapCommand;
|
|
public DelegateCommand<object> LPMapCommand =>
|
|
public DelegateCommand<object> LPMapCommand =>
|
|
- _LPMapCommand ?? (_LPMapCommand = new DelegateCommand<object>(OnLPLoad));
|
|
|
|
-
|
|
|
|
|
|
+ _LPMapCommand ?? (_LPMapCommand = new DelegateCommand<object>(OnLPMap));
|
|
private DelegateCommand<object> _SeqTypeChangeCommand;
|
|
private DelegateCommand<object> _SeqTypeChangeCommand;
|
|
public DelegateCommand<object> SeqTypeChangeCommand =>
|
|
public DelegateCommand<object> SeqTypeChangeCommand =>
|
|
_SeqTypeChangeCommand ?? (_SeqTypeChangeCommand = new DelegateCommand<object>(OnSeqTypeChange));
|
|
_SeqTypeChangeCommand ?? (_SeqTypeChangeCommand = new DelegateCommand<object>(OnSeqTypeChange));
|
|
@@ -446,8 +445,8 @@ namespace CyberX8_MainPages.ViewModels
|
|
{
|
|
{
|
|
LP1WaferAssociation = new WaferAssociationInfo();
|
|
LP1WaferAssociation = new WaferAssociationInfo();
|
|
LP3WaferAssociation = new WaferAssociationInfo();
|
|
LP3WaferAssociation = new WaferAssociationInfo();
|
|
- LP2WaferAssociation = new WaferAssociationInfo();
|
|
|
|
-
|
|
|
|
|
|
+ LP2WaferAssociation = new WaferAssociationInfo();
|
|
|
|
+
|
|
SequenceSelectedItemsSource1 = new ObservableCollection<string>();
|
|
SequenceSelectedItemsSource1 = new ObservableCollection<string>();
|
|
SequenceSelectedItemsSource2 = new ObservableCollection<string>();
|
|
SequenceSelectedItemsSource2 = new ObservableCollection<string>();
|
|
SequenceSelectedItemsSource3 = new ObservableCollection<string>();
|
|
SequenceSelectedItemsSource3 = new ObservableCollection<string>();
|
|
@@ -462,7 +461,7 @@ namespace CyberX8_MainPages.ViewModels
|
|
LP1RecipeMode = true;
|
|
LP1RecipeMode = true;
|
|
LP2RecipeMode = true;
|
|
LP2RecipeMode = true;
|
|
LP3RecipeMode = true;
|
|
LP3RecipeMode = true;
|
|
- addDataKeys();
|
|
|
|
|
|
+ addDataKeys();
|
|
}
|
|
}
|
|
#endregion
|
|
#endregion
|
|
|
|
|
|
@@ -471,7 +470,7 @@ namespace CyberX8_MainPages.ViewModels
|
|
/// 加载数据
|
|
/// 加载数据
|
|
/// </summary>
|
|
/// </summary>
|
|
public void LoadData(string systemName)
|
|
public void LoadData(string systemName)
|
|
- {
|
|
|
|
|
|
+ {
|
|
if (_timer == null)
|
|
if (_timer == null)
|
|
{
|
|
{
|
|
_timer = new DispatcherTimer();
|
|
_timer = new DispatcherTimer();
|
|
@@ -546,7 +545,7 @@ namespace CyberX8_MainPages.ViewModels
|
|
ControlJobInfo lp2Cj = CommonFunction.GetValue<ControlJobInfo>(RtDataValues, "LP2.CurrentControlJob");
|
|
ControlJobInfo lp2Cj = CommonFunction.GetValue<ControlJobInfo>(RtDataValues, "LP2.CurrentControlJob");
|
|
if (lp2Cj == null)
|
|
if (lp2Cj == null)
|
|
{
|
|
{
|
|
- ButtonIsEnableLP2 = true;
|
|
|
|
|
|
+ ButtonIsEnableLP2 = true;
|
|
LP2WaferAssociation.JobStatus = "";
|
|
LP2WaferAssociation.JobStatus = "";
|
|
}
|
|
}
|
|
else
|
|
else
|
|
@@ -571,7 +570,7 @@ namespace CyberX8_MainPages.ViewModels
|
|
LP3WaferCount = LP3WaferAssociation.ModuleData.WaferManager.Wafers.Where(x => x.WaferStatus != 0).Count();
|
|
LP3WaferCount = LP3WaferAssociation.ModuleData.WaferManager.Wafers.Where(x => x.WaferStatus != 0).Count();
|
|
|
|
|
|
_isLP1Docked = CommonFunction.GetValue<bool>(RtDataValues, "LP1.IsDocked");
|
|
_isLP1Docked = CommonFunction.GetValue<bool>(RtDataValues, "LP1.IsDocked");
|
|
- if (!_isLP1Docked)
|
|
|
|
|
|
+ if (!_isLP1Docked && LP1WaferCount == 0)
|
|
{
|
|
{
|
|
LP1WaferAssociation.SlotFrom = 1;
|
|
LP1WaferAssociation.SlotFrom = 1;
|
|
LP1WaferAssociation.SlotTo = 25;
|
|
LP1WaferAssociation.SlotTo = 25;
|
|
@@ -581,11 +580,11 @@ namespace CyberX8_MainPages.ViewModels
|
|
_LP1SequenceNameBuffer = null;
|
|
_LP1SequenceNameBuffer = null;
|
|
LP1WaferAssociation.CycleNumber = 1;
|
|
LP1WaferAssociation.CycleNumber = 1;
|
|
LP1WaferAssociation.IsEnableCycle = false;
|
|
LP1WaferAssociation.IsEnableCycle = false;
|
|
- AssociateSequence(LP1WaferAssociation, false);
|
|
|
|
-
|
|
|
|
|
|
+ AssociateSequence(LP1WaferAssociation, false);
|
|
|
|
+
|
|
}
|
|
}
|
|
_isLP2Docked = CommonFunction.GetValue<bool>(RtDataValues, "LP2.IsDocked");
|
|
_isLP2Docked = CommonFunction.GetValue<bool>(RtDataValues, "LP2.IsDocked");
|
|
- if (!_isLP2Docked)
|
|
|
|
|
|
+ if (!_isLP2Docked && LP2WaferCount == 0)
|
|
{
|
|
{
|
|
LP2WaferAssociation.SlotFrom = 1;
|
|
LP2WaferAssociation.SlotFrom = 1;
|
|
LP2WaferAssociation.SlotTo = 25;
|
|
LP2WaferAssociation.SlotTo = 25;
|
|
@@ -595,11 +594,11 @@ namespace CyberX8_MainPages.ViewModels
|
|
_LP2SequenceNameBuffer = null;
|
|
_LP2SequenceNameBuffer = null;
|
|
LP2WaferAssociation.CycleNumber = 1;
|
|
LP2WaferAssociation.CycleNumber = 1;
|
|
LP2WaferAssociation.IsEnableCycle = false;
|
|
LP2WaferAssociation.IsEnableCycle = false;
|
|
- AssociateSequence(LP2WaferAssociation, false);
|
|
|
|
-
|
|
|
|
|
|
+ AssociateSequence(LP2WaferAssociation, false);
|
|
|
|
+
|
|
}
|
|
}
|
|
_isLP3Docked = CommonFunction.GetValue<bool>(RtDataValues, "LP3.IsDocked");
|
|
_isLP3Docked = CommonFunction.GetValue<bool>(RtDataValues, "LP3.IsDocked");
|
|
- if (!_isLP3Docked)
|
|
|
|
|
|
+ if (!_isLP3Docked && LP3WaferCount == 0)
|
|
{
|
|
{
|
|
LP3WaferAssociation.SlotFrom = 1;
|
|
LP3WaferAssociation.SlotFrom = 1;
|
|
LP3WaferAssociation.SlotTo = 25;
|
|
LP3WaferAssociation.SlotTo = 25;
|
|
@@ -609,8 +608,8 @@ namespace CyberX8_MainPages.ViewModels
|
|
_LP3SequenceNameBuffer = null;
|
|
_LP3SequenceNameBuffer = null;
|
|
LP3WaferAssociation.CycleNumber = 1;
|
|
LP3WaferAssociation.CycleNumber = 1;
|
|
LP3WaferAssociation.IsEnableCycle = false;
|
|
LP3WaferAssociation.IsEnableCycle = false;
|
|
- AssociateSequence(LP3WaferAssociation, false);
|
|
|
|
-
|
|
|
|
|
|
+ AssociateSequence(LP3WaferAssociation, false);
|
|
|
|
+
|
|
}
|
|
}
|
|
LP1WaferAssociation.SequenceType = LP1RecipeMode ? "Production" : "Engineering";
|
|
LP1WaferAssociation.SequenceType = LP1RecipeMode ? "Production" : "Engineering";
|
|
LP2WaferAssociation.SequenceType = LP2RecipeMode ? "Production" : "Engineering";
|
|
LP2WaferAssociation.SequenceType = LP2RecipeMode ? "Production" : "Engineering";
|
|
@@ -701,15 +700,15 @@ namespace CyberX8_MainPages.ViewModels
|
|
private void OnSelectAll(object obj)
|
|
private void OnSelectAll(object obj)
|
|
{
|
|
{
|
|
var info = obj as WaferAssociationInfo;
|
|
var info = obj as WaferAssociationInfo;
|
|
- var module = info.ModuleData.ModuleID;
|
|
|
|
-
|
|
|
|
|
|
+ var module = info.ModuleData.ModuleID;
|
|
|
|
+
|
|
if (CommonFunction.GetValue<bool>(RtDataValues, $"{module}.IsLoaded"))
|
|
if (CommonFunction.GetValue<bool>(RtDataValues, $"{module}.IsLoaded"))
|
|
{
|
|
{
|
|
info.SlotFrom = 1;
|
|
info.SlotFrom = 1;
|
|
- info.SlotTo = 25;
|
|
|
|
|
|
+ info.SlotTo = 25;
|
|
AssociateSequence(info, true);
|
|
AssociateSequence(info, true);
|
|
- }
|
|
|
|
-
|
|
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// <summary>
|
|
/// 取消选择所有Wafer
|
|
/// 取消选择所有Wafer
|
|
@@ -728,13 +727,13 @@ namespace CyberX8_MainPages.ViewModels
|
|
private void OnCreateJob(object obj)
|
|
private void OnCreateJob(object obj)
|
|
{
|
|
{
|
|
var info = obj as WaferAssociationInfo;
|
|
var info = obj as WaferAssociationInfo;
|
|
- List<string> slotSequence = new List<string>();
|
|
|
|
-
|
|
|
|
|
|
+ List<string> slotSequence = new List<string>();
|
|
|
|
+
|
|
info.ModuleData.WaferManager.Wafers.ForEach(key => { slotSequence.Insert(0, key.SequenceName); });
|
|
info.ModuleData.WaferManager.Wafers.ForEach(key => { slotSequence.Insert(0, key.SequenceName); });
|
|
if (info.LotId == "" && info.JobID != "") info.LotId = info.JobID;
|
|
if (info.LotId == "" && info.JobID != "") info.LotId = info.JobID;
|
|
if (info.LotId != "" && info.JobID == "") info.JobID = info.LotId;
|
|
if (info.LotId != "" && info.JobID == "") info.JobID = info.LotId;
|
|
- info.LotIdSaved = true;
|
|
|
|
-
|
|
|
|
|
|
+ info.LotIdSaved = true;
|
|
|
|
+
|
|
Dictionary<string, object> param = new Dictionary<string, object>()
|
|
Dictionary<string, object> param = new Dictionary<string, object>()
|
|
{
|
|
{
|
|
{"JobId", info.JobID},
|
|
{"JobId", info.JobID},
|
|
@@ -745,11 +744,11 @@ namespace CyberX8_MainPages.ViewModels
|
|
{"CycleNumber",info.CycleNumber},
|
|
{"CycleNumber",info.CycleNumber},
|
|
{"SequenceType", info.SequenceType}
|
|
{"SequenceType", info.SequenceType}
|
|
};
|
|
};
|
|
- if(info.JobID != "" || info.LotId != "")
|
|
|
|
|
|
+ if (info.JobID != "" || info.LotId != "")
|
|
{
|
|
{
|
|
|
|
|
|
InvokeClient.Instance.Service.DoOperation("System.CreateJob", param);
|
|
InvokeClient.Instance.Service.DoOperation("System.CreateJob", param);
|
|
- }
|
|
|
|
|
|
+ }
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// <summary>
|
|
/// 取消任务
|
|
/// 取消任务
|
|
@@ -795,7 +794,7 @@ namespace CyberX8_MainPages.ViewModels
|
|
var moduleName = obj.ToString();
|
|
var moduleName = obj.ToString();
|
|
switch (moduleName)
|
|
switch (moduleName)
|
|
{
|
|
{
|
|
- case "LP1":
|
|
|
|
|
|
+ case "LP1":
|
|
if (!string.IsNullOrEmpty(_LP1SequenceNameBuffer) && LP1SequenceName == null) LP1SequenceName = _LP1SequenceNameBuffer;
|
|
if (!string.IsNullOrEmpty(_LP1SequenceNameBuffer) && LP1SequenceName == null) LP1SequenceName = _LP1SequenceNameBuffer;
|
|
_LP1SequenceNameBuffer = LP1SequenceName;
|
|
_LP1SequenceNameBuffer = LP1SequenceName;
|
|
LP1WaferAssociation.SequenceName = LP1SequenceName;
|
|
LP1WaferAssociation.SequenceName = LP1SequenceName;
|
|
@@ -905,7 +904,7 @@ namespace CyberX8_MainPages.ViewModels
|
|
/// 添加RT查询key
|
|
/// 添加RT查询key
|
|
/// </summary>
|
|
/// </summary>
|
|
private void addDataKeys()
|
|
private void addDataKeys()
|
|
- {
|
|
|
|
|
|
+ {
|
|
m_RtDataKeys.Add("LP1.IsLoaded");
|
|
m_RtDataKeys.Add("LP1.IsLoaded");
|
|
m_RtDataKeys.Add("LP2.IsLoaded");
|
|
m_RtDataKeys.Add("LP2.IsLoaded");
|
|
m_RtDataKeys.Add("LP3.IsLoaded");
|
|
m_RtDataKeys.Add("LP3.IsLoaded");
|
|
@@ -936,12 +935,12 @@ namespace CyberX8_MainPages.ViewModels
|
|
|
|
|
|
m_RtDataKeys.Add("LP1.IsDocked");
|
|
m_RtDataKeys.Add("LP1.IsDocked");
|
|
m_RtDataKeys.Add("LP2.IsDocked");
|
|
m_RtDataKeys.Add("LP2.IsDocked");
|
|
- m_RtDataKeys.Add("LP3.IsDocked");
|
|
|
|
-
|
|
|
|
- m_RtDataKeys.Add("LP1.WaferSize");
|
|
|
|
- m_RtDataKeys.Add("LP2.WaferSize");
|
|
|
|
- m_RtDataKeys.Add("LP3.WaferSize");
|
|
|
|
-
|
|
|
|
|
|
+ m_RtDataKeys.Add("LP3.IsDocked");
|
|
|
|
+
|
|
|
|
+ m_RtDataKeys.Add("LP1.WaferSize");
|
|
|
|
+ m_RtDataKeys.Add("LP2.WaferSize");
|
|
|
|
+ m_RtDataKeys.Add("LP3.WaferSize");
|
|
|
|
+
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// <summary>
|
|
/// 更新Wafer情况
|
|
/// 更新Wafer情况
|
|
@@ -965,8 +964,8 @@ namespace CyberX8_MainPages.ViewModels
|
|
{
|
|
{
|
|
info.ModuleData.WaferManager.Wafers[24 - i].SequenceName = cjInfo.SequenceNameList[i];
|
|
info.ModuleData.WaferManager.Wafers[24 - i].SequenceName = cjInfo.SequenceNameList[i];
|
|
}
|
|
}
|
|
- }
|
|
|
|
-
|
|
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|
|
else
|
|
else
|
|
{
|
|
{
|
|
@@ -974,13 +973,13 @@ namespace CyberX8_MainPages.ViewModels
|
|
{
|
|
{
|
|
info.LotId = "";
|
|
info.LotId = "";
|
|
info.JobID = "";
|
|
info.JobID = "";
|
|
- info.JobStatus = "";
|
|
|
|
|
|
+ info.JobStatus = "";
|
|
AssociateSequence(info, false);
|
|
AssociateSequence(info, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- private void OnLPLoad(object obj)
|
|
|
|
- {
|
|
|
|
|
|
+ private void OnLPMap(object obj)
|
|
|
|
+ {
|
|
InvokeClient.Instance.Service.DoOperation($"{obj.ToString()}.Map");
|
|
InvokeClient.Instance.Service.DoOperation($"{obj.ToString()}.Map");
|
|
|
|
|
|
}
|
|
}
|
|
@@ -999,8 +998,8 @@ namespace CyberX8_MainPages.ViewModels
|
|
foreach (var seqitem in seqitems)
|
|
foreach (var seqitem in seqitems)
|
|
{
|
|
{
|
|
SequenceSelectedItemsSource1.Add(seqitem);
|
|
SequenceSelectedItemsSource1.Add(seqitem);
|
|
- }
|
|
|
|
-
|
|
|
|
|
|
+ }
|
|
|
|
+
|
|
break;
|
|
break;
|
|
case "LP2":
|
|
case "LP2":
|
|
info.SequenceType = LP2RecipeMode ? "Production" : "Engineering";
|
|
info.SequenceType = LP2RecipeMode ? "Production" : "Engineering";
|
|
@@ -1022,7 +1021,7 @@ namespace CyberX8_MainPages.ViewModels
|
|
break;
|
|
break;
|
|
default:
|
|
default:
|
|
break;
|
|
break;
|
|
- }
|
|
|
|
|
|
+ }
|
|
}
|
|
}
|
|
#endregion
|
|
#endregion
|
|
}
|
|
}
|