// Request ---- // UInt32 : MotorID // Response ---- // UInt32 : MotorID // UInt32 : Position using System; using System.Text; using System.Linq; using System.Drawing; using System.Diagnostics; using System.Windows.Forms; using System.Threading; using System.Threading.Tasks; using System.Collections.Generic; using Tango.PMR.Printing; using Tango.PMR.Diagnostics; using Tango.PMR.Stubs; using Tango.Stubs.UI; public void OnExecute(StubManager stubManager) { // Request ---- // Double : A // Double : B // Response ---- // Double : Sum //var response1 = stubManager.Run("CalculateRequest" ,6, 7); JobRequest jobRequest = new JobRequest(); JobTicket jobTicket = new JobTicket(); jobTicket.Name = "Stubs Job"; jobTicket.EnableInterSegment = false; jobTicket.InterSegmentLength = 50; jobTicket.Length = 1000; ProcessParameters processParameters = new ProcessParameters(); // SPEEED processParameters.DyeingSpeed = 30; // HEAT processParameters.DryerZone1Temp = 100; processParameters.MixerTemp = 0; processParameters.DryerBufferLength = 20; processParameters.MinInkUptake = 0; processParameters.HeadZone1Temp = 50; processParameters.HeadZone2Temp = 150; processParameters.HeadZone3Temp = 150; processParameters.DryerZone2Temp = 0; processParameters.DryerZone3Temp = 0; processParameters.FeederTension = 0; processParameters.PullerTension = 0; processParameters.WinderTension = 0; processParameters.HeadAirFlow = 0; processParameters.DryerAirFlow = 0; processParameters.TableIndex = 0; jobTicket.ProcessParameters = processParameters; jobTicket.WindingMethod = Tango.PMR.Printing.JobWindingMethod.Embroidery; JobSpool jobSpool = new JobSpool(); jobSpool.JobSpoolType = Tango.PMR.Printing.JobSpoolType.StandardSpool; jobSpool.Length = 800; jobSpool.Weight = 0; jobSpool.Diameter = 3.0; jobSpool.StartOffsetPulses = 300; jobSpool.BackingRate = 10; jobSpool.SegmentOffsetPulses = 700; jobSpool.BottomBackingRate = 70; jobSpool.RotationsPerPassage = 3; jobTicket.Spool = jobSpool; JobSegment jobSegment1 = new JobSegment(); jobSegment1.Name = "Segment1"; // LENGTH jobSegment1.Length = 5.0; JobBrushStop jobBrushStop1 = new JobBrushStop(); jobBrushStop1.Index = 0; jobBrushStop1.OffsetPercent = 0; jobBrushStop1.OffsetMeters = 0; JobDispenser jobDispenser1 = new JobDispenser(); jobDispenser1.Index = 6; jobDispenser1.Volume = 10; jobDispenser1.DispenserStepDivision = Tango.PMR.Printing.DispenserStepDivision.Auto; jobDispenser1.NanolitterPerSecond = 1000; jobDispenser1.NanoliterPerCentimeter = 10; jobDispenser1.PulsePerSecond = 0; jobDispenser1.DispenserLiquidType = Tango.PMR.Printing.DispenserLiquidType.Cyan; jobDispenser1.LiquidMaxNanoliterPerCentimeter = 40; jobDispenser1.NanoliterPerPulse = 2.4; jobBrushStop1.Dispensers.Add(jobDispenser1); jobSegment1.BrushStops.Add(jobBrushStop1); jobTicket.Segments.Add(jobSegment1); JobSegment jobSegment2 = new JobSegment(); jobSegment1.Name = "Segment2"; // LENGTH jobSegment2.Length = 5.0; JobBrushStop jobBrushStop2 = new JobBrushStop(); jobBrushStop2.Index = 0; jobBrushStop2.OffsetPercent = 0; jobBrushStop2.OffsetMeters = 0; JobDispenser jobDispenser2 = new JobDispenser(); jobDispenser2.Index = 6; jobDispenser2.Volume = 10; jobDispenser2.DispenserStepDivision = Tango.PMR.Printing.DispenserStepDivision.Auto; jobDispenser2.NanolitterPerSecond = 300; jobDispenser2.NanoliterPerCentimeter = 10; jobDispenser2.PulsePerSecond = 0; jobDispenser2.DispenserLiquidType = Tango.PMR.Printing.DispenserLiquidType.Cyan; jobDispenser2.LiquidMaxNanoliterPerCentimeter = 40; jobDispenser2.NanoliterPerPulse = 2.4; jobBrushStop2.Dispensers.Add(jobDispenser2); jobSegment2.BrushStops.Add(jobBrushStop2); jobTicket.Segments.Add(jobSegment2); jobRequest.JobTicket = jobTicket; var response = stubManager.Run(jobRequest); int i=0; /*stubManager.WriteLine("data.data length = " + jobRequest.CalculateSize()); */ stubManager.RunContinuous(jobRequest,(response1) => { stubManager.WriteLine (String.Format("Data, {0}, {1} meters, {2}",++i,response1.Status.Progress*jobSegment1.Length,response1.Status.Message)); }); /* stubManager.RunContinuous(request, (response) => { stubManager.WriteLine(response.Progress); }); */ //int i=0; /*stubManager.RunContinuous("StubHeatingTestPollRequest",(response1) => { // stubManager.WriteLine (String.Format("Data, {0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}",++i,response1.Zone1Temp,response1.Zone2Temp,response1.Heater1Active,response1.Heater2Active,response1.Heater1Percentage,response1.Heater2Percentage,response1.InfoMessage)); stubManager.WriteLine (String.Format("Data, Id {0}, Id {1}, Temp {2}, % {3}, Active {4}, {5}",++i,response1.Zone1Temp,response1.Zone2Temp,response1.Heater1Percentage,response1.Heater1Active,response1.InfoMessage)); },0); /*StartDiagnosticsRequest startDiagnosticsRequest = new StartDiagnosticsRequest(); //stubManager.RunContinuous(startDiagnosticsRequest,(response1) => stubManager.RunContinuous(startDiagnosticsRequest,(response1) => { stubManager.WriteLine (String.Format("Data, {0}, H1 {1}, H2{2}, H3 {3}, D1 {4}, D2 {5}",++i,response1.Monitors.HeadZone1Temperature[0],response1.Monitors.HeadZone2Temperature[0],response1.Monitors.HeadZone3Temperature[0],response1.Monitors.DryerZone1Temperature[0],response1.Monitors.DryerZone2Temperature[0])); stubManager.WriteLine (String.Format("Data, {0}, DR {1}, DM{2}, DL {3}, Feeder {4}",++i,response1.Monitors.Dancer1Angle[0],response1.Monitors.Dancer2Angle[0],response1.Monitors.Dancer3Angle[0],response1.Monitors.FeederMotorFrequency[0])); },0); */ }