using System; namespace SHARP_CLAS_UI { public enum En_AOI_CW { CW_0, CW_90, CW_180, } public class Tray_Info_Recipe { #region Property public string Name { get; set; } public DateTime Create_Time { get; set; } public bool Ld_Reverse { get; set; } public bool Uld_Reverse { get; set; } public En_AOI_CW Pre_Align_CW { get; set; } public En_AOI_CW AOI_Before_CW { get; set; } public En_AOI_CW AOI_After_CW { get; set; } public int LD_Tray_Empty_Tray_Count { get; set; } public double LD_Tray_Empty_Tray_Pitch { get; set; } public int LD_Tray_In_Tray_Count { get; set; } public double LD_Tray_In_Tray_Pitch { get; set; } public int LD_Tray_In_Row { get; set; } public Tray_Row_Info[] LD_Tray_In_Row_Data { get; set; } public double LD_Tray_In_Cell_Pitch_X { get; set; } public double LD_Tray_In_Cell_Pitch_Y { get; set; } public double LD_Tray_In_BCR_X { get; set; } public double LD_Tray_In_BCR_Y { get; set; } public int ULD_Tray_Empty_Tray_Count { get; set; } public double ULD_Tray_Empty_Tray_Pitch { get; set; } public int ULD_Tray_Ok_Tray_Count { get; set; } public double ULD_Tray_Ok_Tray_Pitch { get; set; } public int ULD_Tray_Ok_Row { get; set; } public Tray_Row_Info[] ULD_Tray_Ok_Row_Data { get; set; } public double ULD_Tray_Ok_Cell_Pitch_X { get; set; } public double ULD_Tray_Ok_Cell_Pitch_Y { get; set; } public double ULD_Tray_Ok_BCR_X { get; set; } public double ULD_Tray_Ok_BCR_Y { get; set; } public int ULD_Tray_Ng_Tray_Count { get; set; } public double ULD_Tray_Ng_Tray_Pitch { get; set; } public int ULD_Tray_Ng_Row { get; set; } public Tray_Row_Info[] ULD_Tray_Ng_Row_Data { get; set; } public double ULD_Tray_Ng_Cell_Pitch_X { get; set; } public double ULD_Tray_Ng_Cell_Pitch_Y { get; set; } public double ULD_Tray_Ng_BCR_X { get; set; } public double ULD_Tray_Ng_BCR_Y { get; set; } public string Tray_Compare_ID { get; set; } #endregion #region Construct public Tray_Info_Recipe() { Name = string.Empty; Create_Time = DateTime.Now; Ld_Reverse = false; Uld_Reverse = false; Pre_Align_CW = En_AOI_CW.CW_0; AOI_Before_CW = En_AOI_CW.CW_0; AOI_After_CW = En_AOI_CW.CW_0; LD_Tray_Empty_Tray_Count = 0; LD_Tray_Empty_Tray_Pitch = 0; LD_Tray_In_Tray_Count = 0; LD_Tray_In_Tray_Pitch = 0; LD_Tray_In_Row = 0; LD_Tray_In_Row_Data = new Tray_Row_Info[0]; LD_Tray_In_Cell_Pitch_X = 0; LD_Tray_In_Cell_Pitch_Y = 0; LD_Tray_In_BCR_X = 0; LD_Tray_In_BCR_Y = 0; ULD_Tray_Empty_Tray_Count = 0; ULD_Tray_Empty_Tray_Pitch = 0; ULD_Tray_Ok_Tray_Count = 0; ULD_Tray_Ok_Tray_Pitch = 0; ULD_Tray_Ok_Row = 0; ULD_Tray_Ok_Row_Data = new Tray_Row_Info[0]; ULD_Tray_Ok_Cell_Pitch_X = 0; ULD_Tray_Ok_Cell_Pitch_Y = 0; ULD_Tray_Ok_BCR_X = 0; ULD_Tray_Ok_BCR_Y = 0; ULD_Tray_Ng_Tray_Count = 0; ULD_Tray_Ng_Tray_Pitch = 0; ULD_Tray_Ng_Row = 0; ULD_Tray_Ng_Row_Data = new Tray_Row_Info[0]; ULD_Tray_Ng_Cell_Pitch_X = 0; ULD_Tray_Ng_Cell_Pitch_Y = 0; ULD_Tray_Ng_BCR_X = 0; ULD_Tray_Ng_BCR_Y = 0; Tray_Compare_ID = string.Empty; } #endregion #region Function public Tray_Info_Recipe Clone() { Tray_Info_Recipe info = new Tray_Info_Recipe(); info.Name = this.Name; info.Create_Time = this.Create_Time; info.Ld_Reverse = this.Ld_Reverse; info.Uld_Reverse = this.Uld_Reverse; info.Pre_Align_CW = this.Pre_Align_CW; info.AOI_Before_CW = this.AOI_Before_CW; info.AOI_After_CW = this.AOI_After_CW; info.LD_Tray_Empty_Tray_Count = this.LD_Tray_Empty_Tray_Count; info.LD_Tray_Empty_Tray_Pitch = this.LD_Tray_Empty_Tray_Pitch; info.LD_Tray_In_Tray_Count = this.LD_Tray_In_Tray_Count; info.LD_Tray_In_Tray_Pitch = this.LD_Tray_In_Tray_Pitch; info.Set_LD_Tray_In_Row(LD_Tray_In_Row); for(int i = 0; i < LD_Tray_In_Row; i++) { info.LD_Tray_In_Row_Data[i] = this.LD_Tray_In_Row_Data[i].Clone(); } info.LD_Tray_In_Cell_Pitch_X = this.LD_Tray_In_Cell_Pitch_X; info.LD_Tray_In_Cell_Pitch_Y = this.LD_Tray_In_Cell_Pitch_Y; info.LD_Tray_In_BCR_X = this.LD_Tray_In_BCR_X; info.LD_Tray_In_BCR_Y = this.LD_Tray_In_BCR_Y; info.ULD_Tray_Empty_Tray_Count = this.ULD_Tray_Empty_Tray_Count; info.ULD_Tray_Empty_Tray_Pitch = this.ULD_Tray_Empty_Tray_Pitch; info.ULD_Tray_Ok_Tray_Count = this.ULD_Tray_Ok_Tray_Count; info.ULD_Tray_Ok_Tray_Pitch = this.ULD_Tray_Ok_Tray_Pitch; info.Set_ULD_Tray_Ok_Row(this.ULD_Tray_Ok_Row); for (int i = 0; i < ULD_Tray_Ok_Row; i++) { info.ULD_Tray_Ok_Row_Data[i] = this.ULD_Tray_Ok_Row_Data[i].Clone(); } info.ULD_Tray_Ok_Cell_Pitch_X = this.ULD_Tray_Ok_Cell_Pitch_X; info.ULD_Tray_Ok_Cell_Pitch_Y = this.ULD_Tray_Ok_Cell_Pitch_Y; info.ULD_Tray_Ok_BCR_X = this.ULD_Tray_Ok_BCR_X; info.ULD_Tray_Ok_BCR_Y = this.ULD_Tray_Ok_BCR_Y; info.ULD_Tray_Ng_Tray_Count = this.ULD_Tray_Ng_Tray_Count; info.ULD_Tray_Ng_Tray_Pitch = this.ULD_Tray_Ng_Tray_Pitch; info.Set_ULD_Tray_Ng_Row(this.ULD_Tray_Ng_Row); for (int i = 0; i < ULD_Tray_Ng_Row; i++) { info.ULD_Tray_Ng_Row_Data[i] = this.ULD_Tray_Ng_Row_Data[i].Clone(); } info.ULD_Tray_Ng_Cell_Pitch_X = this.ULD_Tray_Ng_Cell_Pitch_X; info.ULD_Tray_Ng_Cell_Pitch_Y = this.ULD_Tray_Ng_Cell_Pitch_Y; info.ULD_Tray_Ng_BCR_X = this.ULD_Tray_Ng_BCR_X; info.ULD_Tray_Ng_BCR_Y = this.ULD_Tray_Ng_BCR_Y; info.Tray_Compare_ID = this.Tray_Compare_ID; return info; } public void Set_LD_Tray_In_Row(int row) { if (row < 0) return; LD_Tray_In_Row = row; if (LD_Tray_In_Row >= 0) { if (LD_Tray_In_Row_Data != null && LD_Tray_In_Row_Data.Length > 0) { Tray_Row_Info[] data = new Tray_Row_Info[LD_Tray_In_Row]; int length = data.Length > LD_Tray_In_Row_Data.Length ? LD_Tray_In_Row_Data.Length : data.Length; Array.Copy(LD_Tray_In_Row_Data, data, length); LD_Tray_In_Row_Data = new Tray_Row_Info[LD_Tray_In_Row]; for (int i = 0; i < LD_Tray_In_Row_Data.Length; i++) { LD_Tray_In_Row_Data[i] = new Tray_Row_Info(); LD_Tray_In_Row_Data[i].Row = i + 1; if (i < data.Length && data[i] != null) { LD_Tray_In_Row_Data[i] = data[i].Clone(); } } } else { LD_Tray_In_Row_Data = new Tray_Row_Info[LD_Tray_In_Row]; for (int i = 0; i < LD_Tray_In_Row_Data.Length; i++) { LD_Tray_In_Row_Data[i] = new Tray_Row_Info(); LD_Tray_In_Row_Data[i].Row = i + 1; } } } } public void Set_ULD_Tray_Ok_Row(int row) { if (row < 0) return; ULD_Tray_Ok_Row = row; if (ULD_Tray_Ok_Row >= 0) { if (ULD_Tray_Ok_Row_Data != null && ULD_Tray_Ok_Row_Data.Length > 0) { Tray_Row_Info[] data = new Tray_Row_Info[ULD_Tray_Ok_Row]; int length = data.Length > ULD_Tray_Ok_Row_Data.Length ? ULD_Tray_Ok_Row_Data.Length : data.Length; Array.Copy(ULD_Tray_Ok_Row_Data, data, length); ULD_Tray_Ok_Row_Data = new Tray_Row_Info[ULD_Tray_Ok_Row]; for (int i = 0; i < ULD_Tray_Ok_Row_Data.Length; i++) { ULD_Tray_Ok_Row_Data[i] = new Tray_Row_Info(); ULD_Tray_Ok_Row_Data[i].Row = i + 1; if (i < data.Length) { ULD_Tray_Ok_Row_Data[i] = data[i].Clone(); } } } else { ULD_Tray_Ok_Row_Data = new Tray_Row_Info[ULD_Tray_Ok_Row]; for (int i = 0; i < ULD_Tray_Ok_Row_Data.Length; i++) { ULD_Tray_Ok_Row_Data[i] = new Tray_Row_Info(); ULD_Tray_Ok_Row_Data[i].Row = i + 1; } } } } public void Set_ULD_Tray_Ng_Row(int row) { if (row < 0) return; ULD_Tray_Ng_Row = row; if (ULD_Tray_Ng_Row >= 0) { if (ULD_Tray_Ng_Row_Data != null && ULD_Tray_Ng_Row_Data.Length > 0) { Tray_Row_Info[] data = new Tray_Row_Info[ULD_Tray_Ng_Row]; int length = data.Length > ULD_Tray_Ng_Row_Data.Length ? ULD_Tray_Ng_Row_Data.Length : data.Length; Array.Copy(ULD_Tray_Ng_Row_Data, data, length); ULD_Tray_Ng_Row_Data = new Tray_Row_Info[ULD_Tray_Ng_Row]; for (int i = 0; i < ULD_Tray_Ng_Row_Data.Length; i++) { ULD_Tray_Ng_Row_Data[i] = new Tray_Row_Info(); ULD_Tray_Ng_Row_Data[i].Row = i + 1; if (i < data.Length) { ULD_Tray_Ng_Row_Data[i] = data[i].Clone(); } } } else { ULD_Tray_Ng_Row_Data = new Tray_Row_Info[ULD_Tray_Ng_Row]; for (int i = 0; i < ULD_Tray_Ng_Row_Data.Length; i++) { ULD_Tray_Ng_Row_Data[i] = new Tray_Row_Info(); ULD_Tray_Ng_Row_Data[i].Row = i + 1; } } } } #endregion } }