using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Tango.BL.Enumerations; using Tango.BL.FineTuning; using Tango.Integration.JobRuns; using Tango.PMR.Printing; namespace Tango.Telemetry.Telemetries { [TelemetryName("JobRun", 1)] public class TelemetryJobRun : TelemetryBase { public class TelemetryJobRunSegment { public int Index { get; set; } public double Length { get; set; } public List Stops { get; set; } public TelemetryJobRunSegment() { Stops = new List(); } } public class TelemetryJobRunBrushStop { public int Index { get; set; } public double OffsetPercent { get; set; } public String ColorSpace { get; set; } public int Red { get; set; } public int Green { get; set; } public int Blue { get; set; } public double L { get; set; } public double A { get; set; } public double B { get; set; } public String Catalog { get; set; } public String CatalogItem { get; set; } public int BestMatchR { get; set; } public int BestMatchG { get; set; } public int BestMatchB { get; set; } public List InputVolumes { get; set; } public List OutputVolumes { get; set; } public TelemetryJobRunBrushStop() { InputVolumes = new List(); OutputVolumes = new List(); } } public class TelemetryJobRunBrushStopLiquidVolume { public String LiquidType { get; set; } public double Volume { get; set; } } public String JobName { get; set; } public String Kind { get; set; } public String Thread { get; set; } public int NumberOfUnits { get; set; } // Minimum 1. public int InterSegmentLength { get; set; } public bool LubricationEnabled { get; set; } public int SpoolTypeDistribution { get; set; } public int NumberOfSpools { get; set; } //What the user entered including white gaps leaving out and number of units and number of spools. public double LogicalLength { get; set; } //What the user entered, taking into account white gaps and number of units, all multiplied by the number of spools. public double ActualLength { get; set; } //The actual length the machine had ran, including white gaps, number of units and dryer buffer length, all multiplied by the number of spools. public double TotalLength { get; set; } //The position where the job started relative to the ActualLength (This will greater than zero only if we are resuming a jobrun that had stopped in the middle). public double StartPosition { get; set; } //The position where the job stopped relative to the ActualLength. public double EndPosition { get; set; } //EndPosition - StartPosition public double Distance { get; set; } public DateTime StartTime { get; set; } public DateTime EndTime { get; set; } //EndTime - StartTime public TimeSpan Duration { get; set; } //The time it took from the moment the user executed the job to the time it actually started dyeing. public TimeSpan HeatingDuration { get; set; } //Completed/Failed,Aborted (By the user) public String Status { get; set; } //Total quantities of ink dispensed during this run in nanoliters (better to display as cubic liter maybe). public long OutputCyan { get; set; } public long OutputMagenta { get; set; } public long OutputYellow { get; set; } public long OutputBlack { get; set; } public long OutputLightCyan { get; set; } public long OutputLightMagenta { get; set; } public long OutputLightYellow { get; set; } public long OutputBlue { get; set; } public long OutputLightBlue { get; set; } public long OutputOrange { get; set; } public long OutputLightOrange { get; set; } public long OutputRubine { get; set; } public long OutputLightRubine { get; set; } public long OutputNavy { get; set; } public long OutputViolet { get; set; } public long OutputTransparent { get; set; } public long OutputLubricant { get; set; } public long OutputTwTransparentInk { get; set; } public long OutputC1Ti { get; set; } public long OutputTwCyan { get; set; } public long OutputTwLightCyan { get; set; } public long OutputTwMagenta { get; set; } public long OutputTwLightMagenta { get; set; } public long OutputTwYellow { get; set; } public long OutputTwLightYellow { get; set; } public long OutputC1Yellow { get; set; } public long OutputC1LightYellow { get; set; } public long OutputTwBlack { get; set; } public long OutputTwViolet { get; set; } public long OutputTwLightViolet { get; set; } public long OutputCtBlue { get; set; } public long OutputCtLightBlue { get; set; } public long OutputCtRubine { get; set; } public long OutputCtLightRubine { get; set; } public long OutputCtOrange { get; set; } public long OutputCtLightOrange { get; set; } public long OutputCtNavy { get; set; } public long OutputHdBlue { get; set; } public long OutputHdLightBlue { get; set; } public long OutputHdRubine { get; set; } public long OutputHdLightRubine { get; set; } public long OutputHdOrange { get; set; } public long OutputHdLightOrange { get; set; } public long OutputHdNavy { get; set; } public long OutputHdLightNavy { get; set; } public long OutputAmBlue { get; set; } public long OutputAmLightBlue { get; set; } public long OutputAmRed { get; set; } public long OutputAmLightRed { get; set; } public long OutputAmOrange { get; set; } public long OutputAmLightOrange { get; set; } public long OutputAmYellow { get; set; } public long OutputAmLightYellow { get; set; } public long OutputAmBlack { get; set; } //The error that has occurred when Status = "Failed" public String FailureReason { get; set; } public String ApplicationVersion { get; set; } public String FirmwareVersion { get; set; } public List Segments { get; set; } //Dynamic public VectorFineTuningRunModel FineTuning { get; set; } //Dynamic //ProcessParamaters.DyeingSpeed = The speed in which the machine is dyeing the thread in centimeters per second. public ProcessParameters ProcessParameters { get; set; } public TelemetryJobRun() : base() { Segments = new List(); } } }