2026-06-05 13:44:39 +09:00

86 lines
3.0 KiB
C#

using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using WeldingCommon.Data;
namespace ILSOS_PrismaticGun.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<double> HeightMeasurements { get; set; } = new ObservableCollection<double>();
// 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;
}
}
}