using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CMS_CORE_Library.Models { public class ThermoModels { #region Thermo models /// /// Represents thermo gauge data /// public class GaugeModel { public uint TimeAdv { get; set; } = 0; public int Power { get; set; } = 0; public int Vacuum { get; set; } = 0; public int Air { get; set; } = 0; public override bool Equals(object obj) { // Object is not a GaugeModel instance if (!(obj is GaugeModel item)) return false; if (TimeAdv != item.TimeAdv) return false; if (Power != item.Power) return false; if (Vacuum != item.Vacuum) return false; if (Air != item.Air) return false; return true; } public override int GetHashCode() { return base.GetHashCode(); } } /// /// Recipe Parameters /// public class RecipeParam { public short Id { get; set; } = 0; public double SetpointHMI { get; set; } = 0; public double SetpointPLC { get; set; } = 0; public double ValMax { get; set; } = 0; public double ValMin { get; set; } = 0; public ushort UnitMeasure { get; set; } = 0; public bool Visible { get; set; } = false; public bool Enabled { get; set; } = false; public bool HasError { get; set; } = false; public double ValueAct { get; set; } = 0; public override bool Equals(object obj) { // Object is not a GaugeModel instance if (!(obj is RecipeParam item)) return false; if (Id != item.Id) return false; if (SetpointHMI != item.SetpointHMI) return false; if (SetpointPLC != item.SetpointPLC) return false; if (ValMax != item.ValMax) return false; if (ValMin != item.ValMin) return false; if (UnitMeasure != item.UnitMeasure) return false; if (Visible != item.Visible) return false; if (Enabled != item.Enabled) return false; if (HasError != item.HasError) return false; if (ValueAct != item.ValueAct) return false; return true; } public override int GetHashCode() { return base.GetHashCode(); } } public class ModuleBlock { public short Id { get; set; } = 0; public int ActualDelay { get; set; } = 0; public int ActualDuration { get; set; } = 0; public int EstimatedDelay { get; set; } = 0; public int EstimatedDuration { get; set; } = 0; public List PrecedingId { get; set; } = new List(); public bool Visible { get; set; } = false; public bool Running { get; set; } = false; public bool HasError { get; set; } = false; public override bool Equals(object obj) { // Object is not a GaugeModel instance if (!(obj is ModuleBlock item)) return false; if (Id != item.Id) return false; if (ActualDelay != item.ActualDelay) return false; if (ActualDuration != item.ActualDuration) return false; if (EstimatedDelay != item.EstimatedDelay) return false; if (EstimatedDuration != item.EstimatedDuration) return false; if (PrecedingId != item.PrecedingId) return false; if (Visible != item.Visible) return false; if (Running != item.Running) return false; if (HasError != item.HasError) return false; return true; } public override int GetHashCode() { return base.GetHashCode(); } } public class WarmerChannel { public int IdChannel { get; set; } = 0; public byte IdRefl { get; set; } = 0; public byte SetpointHMI { get; set; } = 0; public byte SetpointThermoCam { get; set; } = 0; public byte SetpointPLC { get; set; } = 0; public byte ChStatus { get; set; } = 0; public double CurrAct { get; set; } = 0; public byte PercAct { get; set; } = 0; public int MaxPower { get; set; } = 0; public override bool Equals(object obj) { // Object is not a GaugeModel instance if (!(obj is WarmerChannel item)) return false; if (IdChannel != item.IdChannel) return false; if (SetpointHMI != item.SetpointHMI) return false; if (SetpointThermoCam != item.SetpointThermoCam) return false; if (SetpointPLC != item.SetpointPLC) return false; if (ChStatus != item.ChStatus) return false; if (CurrAct != item.CurrAct) return false; if (PercAct != item.PercAct) return false; return true; } public override int GetHashCode() { return base.GetHashCode(); } } public class ProdInfoModel { public short NumTarget { get; set; } = 0; public short NumDone { get; set; } = 0; public int TimeWarm { get; set; } = 0; public int TimeVent { get; set; } = 0; public int TimeVacuum { get; set; } = 0; public int TimeCycleGross { get; set; } = 0; public int TimeCycleNet { get; set; } = 0; public double MaterialTempEndWarm { get; set; } = 0; public double MaterialTempEndVent { get; set; } = 0; public double MoldTemp { get; set; } = 0; public double VacuumReadVal { get; set; } = 0; public double MouldEnergyOUT { get; set; } = 0; public double MouldEnergyIN { get; set; } = 0; public override bool Equals(object obj) { // Object is not a GaugeModel instance if (!(obj is ProdInfoModel item)) return false; if (NumTarget != item.NumTarget) return false; if (NumDone != item.NumDone) return false; if (TimeWarm != item.TimeWarm) return false; if (TimeVent != item.TimeVent) return false; if (TimeVacuum != item.TimeVacuum) return false; if (TimeCycleGross != item.TimeCycleGross) return false; if (TimeCycleNet != item.TimeCycleNet) return false; if (MaterialTempEndWarm != item.MaterialTempEndWarm) return false; if (MaterialTempEndVent != item.MaterialTempEndVent) return false; if (MoldTemp != item.MoldTemp) return false; if (VacuumReadVal != item.VacuumReadVal) return false; if (MouldEnergyOUT != item.MouldEnergyOUT) return false; if (MouldEnergyIN != item.MouldEnergyIN) return false; return true; } public override int GetHashCode() { return base.GetHashCode(); } } public class ProdCycleModel { public ushort Status { get; set; } = 0; public ushort MessageId { get; set; } = 0; public ushort Mode { get; set; } = 0; public uint TimeAdv { get; set; } = 0; public override bool Equals(object obj) { // Object is not a GaugeModel instance if (!(obj is ProdCycleModel item)) return false; if (Status != item.Status) return false; if (MessageId != item.MessageId) return false; if (Mode != item.Mode) return false; if (TimeAdv != item.TimeAdv) return false; return true; } public override int GetHashCode() { return base.GetHashCode(); } } #endregion } }