using System; using System.Collections.Generic; using System.Collections.ObjectModel; using WeldingCommon.Data; namespace WeldingCommon.Process { public enum JudgeType { NONE = 0, CAP_PRESS = 1001, HEIGHT_MEASURE = 1003, STAGE_A_WELDING = 1004, STAGE_B_WELDING = 1005, OCT_MEASURE, } public class WeldingDataForPrismaticGun : WeldingData, ICloneable { public WeldingDataForPrismaticGun() { Clear(); } public override void Clear() { base.Clear(); CellNo = -1; IsCellExist = false; IsLaserOn = false; LaserWorkComplete = false; IsRework = false; IsAlreadyWelding = false; NgJudge = (int)JudgeType.NONE; HeightMeasurements.Clear(); } public int CellNo { get; set; } public bool IsCellExist { get; set; } = false; public bool IsLaserOn { get; set; } = false; public bool LaserWorkComplete { get; set; } = false; public bool IsRework { get; set; } = false; public bool IsAlreadyWelding { get; set; } = false; public ObservableCollection HeightMeasurements { get; set; } = new ObservableCollection(); // PLC에서 정의되지 않은 정보를 줄 수도 있어서.. Enum으로 생성하지 않음 public int NgJudge { get => _NgJudge; set => SetProperty(ref _NgJudge, value); } private int _NgJudge; public string NgReason { get { if (Enum.IsDefined(typeof(JudgeType), NgJudge)) return Enum.GetName(typeof(JudgeType), NgJudge); else return $"{NgJudge}"; } } public object Clone() { var newItem = new WeldingDataForPrismaticGun(); newItem.CellNo = CellNo; newItem.IsCellExist = IsCellExist; newItem.IsLaserOn = IsLaserOn; newItem.LaserWorkComplete = LaserWorkComplete; newItem.IsRework = IsRework; newItem.IsAlreadyWelding = IsAlreadyWelding; newItem.NgJudge = NgJudge; newItem.AutoRunStartTime = AutoRunStartTime; newItem.LoadStartTime = LoadStartTime; newItem.WeldingStartTime = WeldingStartTime; newItem.WeldingEndTime = WeldingEndTime; newItem.UnloadStartTime = UnloadStartTime; newItem.WeldingSpanTimeMilliseconds = WeldingSpanTimeMilliseconds; newItem.TodayProduct = TodayProduct; newItem.TotalProduct = TotalProduct; newItem.CellId = CellId; newItem.LotId = LotId; newItem.LBAD_Judge = LBAD_Judge; newItem.LDD_Judge = LDD_Judge; newItem.ScannerFiledImage = ScannerFiledImage; UploadProcessDatas.ForEach(data => newItem.UploadProcessDatas.Add(data.Clone() as PLCReportData)); return newItem; } } }