diff options
Diffstat (limited to 'Software/Stubs Collection/stubs')
279 files changed, 501 insertions, 81398 deletions
diff --git a/Software/Stubs Collection/stubs/Autohome_Control.cs b/Software/Stubs Collection/stubs/Autohome_Control.cs deleted file mode 100644 index 597a70893..000000000 --- a/Software/Stubs Collection/stubs/Autohome_Control.cs +++ /dev/null @@ -1,30 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - - -ProgressRequest progressRequest = new ProgressRequest(); -progressRequest.Amount = 0xAD; -/* - AutoHoming_off = 0 - AutoHoming_PowerOff = 1 - AutoHoming_PowerOn_off = 2 - AutoHoming_JobEnd_PowerOn_off = 3 -*/ -//USE 0 TO TURN OFF, 3 TO TURN ON -progressRequest.Delay = 0; - - var response = stubManager.Run<ProgressResponse>(progressRequest); - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/ChangePidDuringRun.cs b/Software/Stubs Collection/stubs/ChangePidDuringRun.cs deleted file mode 100644 index 9422e2cdc..000000000 --- a/Software/Stubs Collection/stubs/ChangePidDuringRun.cs +++ /dev/null @@ -1,52 +0,0 @@ -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.Stubs; -using Tango.PMR.Hardware; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -StubHeatingTestRequest stubHeatingTestRequest = new StubHeatingTestRequest(); - -stubHeatingTestRequest.DryerZone1Temp = 0; -stubHeatingTestRequest.DryerZone2Temp = 0; - -HardwarePidControl hardwarePidControl = new HardwarePidControl(); -hardwarePidControl.OutputProportionalPowerLimit = 0.5; //Maximal additional power -hardwarePidControl.OutputProportionalBand = 5; -hardwarePidControl.DerivativeTime = 0; //Kd -hardwarePidControl.SensorCorrectionAdjustment = 0; -hardwarePidControl.SensorMinValue = 0; -hardwarePidControl.SensorMaxValue = 0; -hardwarePidControl.SetPointRampRateorSoftStartRamp = 100; //Ki divider -hardwarePidControl.SetPointControlOutputRate = 0; -hardwarePidControl.ControlOutputType = 0.001; ////Dt -hardwarePidControl.SsrControlOutputType = 0; -hardwarePidControl.OutputOnOffHysteresisValue = 100; //Kp divider -hardwarePidControl.ProcessVariableSamplingRate = 10; -hardwarePidControl.PvInputFilterFactorMode = 4; //averaging the readouts / number of samples -hardwarePidControl.OutputProportionalCycleTime = 0; -hardwarePidControl.AcHeatersHalfCycleTime = 0; -hardwarePidControl.PidActive = false; -hardwarePidControl.Epsilon = 0; -hardwarePidControl.OutputOnOffHysteresisValue = 100; - -hardwarePidControl.HardwarePidControlType = Tango.PMR.Hardware.HardwarePidControlType.MotorWinder; -hardwarePidControl.IntegralTime = 8000; //Ki -hardwarePidControl.ProportionalGain = 7000; //Kp - -stubHeatingTestRequest.HardwarePidControl1 = hardwarePidControl; - -StubHeatingTestPollRequest stubHeatingTestPollRequest = new StubHeatingTestPollRequest(); - -var response = stubManager.Run<StubHeatingTestResponse>(stubHeatingTestRequest); - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/ConvertFloat2Bytes.cs b/Software/Stubs Collection/stubs/ConvertFloat2Bytes.cs deleted file mode 100644 index dc980e438..000000000 --- a/Software/Stubs Collection/stubs/ConvertFloat2Bytes.cs +++ /dev/null @@ -1,54 +0,0 @@ -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.Stubs; -using Tango.Stubs; - - - -public void OnExecute(StubManager stubManager) -{ - //see online Floating Point to Hex Converter (with Swap endianness) :https://gregstoll.com/~gregstoll/floattohex/ - // ----------------- option 1 ------------------------------- - stubManager.WriteLine("--- option 1 ---"); - float value = 5.2F; - var byteArray1 = new byte[4];// a single float is 4 bytes/32 bits - byteArray1 = BitConverter.GetBytes(value); - - //print - for(int i =0;i<4;i++) - { - stubManager.WriteHex(byteArray1[i],2); - stubManager.Write(" "); - } - stubManager.WriteLine(""); - stubManager.WriteLine(""); - - // ----------------- option 2 for buffer ------------------------------- - stubManager.WriteLine("--- option 2 ---"); - var floatArray1 = new float[] {5.2f, 1.2f, 3.7f}; - - - // create a byte array and copy the floats into it... - var byteArray = new byte[floatArray1.Length * 4];// a single float is 4 bytes/32 bits - Buffer.BlockCopy(floatArray1, 0, byteArray, 0, byteArray.Length); - - //print - for(int j =0;j<floatArray1.Length;j++) - { - for(int i =0;i<4;i++) - { - stubManager.WriteHex(byteArray[j+i],2); - stubManager.Write(" "); - } - stubManager.WriteLine(""); - } - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Create File System on the Drive - reset flash.cs b/Software/Stubs Collection/stubs/Create File System on the Drive - reset flash.cs deleted file mode 100644 index d8b763ddd..000000000 --- a/Software/Stubs Collection/stubs/Create File System on the Drive - reset flash.cs +++ /dev/null @@ -1,17 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - - var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xCF, 0xCF);//Create File System on the Drive -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Delete alarm file.cs b/Software/Stubs Collection/stubs/Delete alarm file.cs deleted file mode 100644 index 31ed76216..000000000 --- a/Software/Stubs Collection/stubs/Delete alarm file.cs +++ /dev/null @@ -1,23 +0,0 @@ -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.Hardware; -using Tango.PMR.Stubs; -using Tango.PMR.IO; -using Google.Protobuf; -using System.IO; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - DeleteRequest deleteRequest = new DeleteRequest(); - deleteRequest.Path = "0://SysInfo//Alarm.cfg";; - deleteRequest.Attribute = Tango.PMR.IO.FileAttribute.Unspecified; - DeleteResponse response2 = stubManager.Run<DeleteResponse>(deleteRequest); -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Dispenser ByPass - getout from loewer safety.cs b/Software/Stubs Collection/stubs/Dispenser ByPass - getout from loewer safety.cs deleted file mode 100644 index 34dce79fe..000000000 --- a/Software/Stubs Collection/stubs/Dispenser ByPass - getout from loewer safety.cs +++ /dev/null @@ -1,46 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - UInt32 Dispenser_ID = 3; //Software Dispensers 0..7, BP Dispensers 1..8 (4 for bp disp 5) - - stubManager.Write("ByPass + TestRelay + read inputs "); - stubManager.WriteLine(""); - var response = stubManager.Run<StubDispenserResponse>("StubDispenserRequest" ,Dispenser_ID, true, false, 0, 0);//ByPass + read inputs - stubManager.Write("MSB for Disp_UP, LSB for Disp_Down "); - stubManager.WriteHex((response.DispenserPosition),4); - stubManager.WriteLine(""); - stubManager.Write("MSB for Realy_On, LSB for Over_Press "); - stubManager.WriteHex((response.InkWorningLevel),4); - stubManager.WriteLine(""); - stubManager.WriteLine("----"); - stubManager.WriteLine(""); - - stubManager.Run("StubMotorRunRequest" ,(Dispenser_ID + 6), true, 1200 );//Dispenser ID -> motor ID - - Thread.Sleep(30000); //Sleep - stubManager.Run("StubMotorStopRequest" ,15, 3); - - stubManager.Write("Remove ByPass ( + read inputs) "); - stubManager.WriteLine(""); - response = stubManager.Run<StubDispenserResponse>("StubDispenserRequest" ,Dispenser_ID, false, false, 0, 0);// read inputs - stubManager.Write("MSB for Disp_UP, LSB for Disp_Down "); - stubManager.WriteHex((response.DispenserPosition),4); - stubManager.WriteLine(""); - stubManager.Write("MSB for Realy_On, LSB for Over_Press "); - stubManager.WriteHex((response.InkWorningLevel),4); - stubManager.WriteLine(""); - stubManager.WriteLine("----"); - stubManager.WriteLine(""); - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Dispenser ByPass - getout from upper safety.cs b/Software/Stubs Collection/stubs/Dispenser ByPass - getout from upper safety.cs deleted file mode 100644 index 1887d433c..000000000 --- a/Software/Stubs Collection/stubs/Dispenser ByPass - getout from upper safety.cs +++ /dev/null @@ -1,46 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - UInt32 Dispenser_ID = 1; //Software Dispensers 0..7, BP Dispensers 1..8 (4 for bp disp 5) - - stubManager.Write("ByPass + TestRelay + read inputs "); - stubManager.WriteLine(""); - var response = stubManager.Run<StubDispenserResponse>("StubDispenserRequest" ,Dispenser_ID, true, false, 0, 0);//ByPass + read inputs - stubManager.Write("MSB for Disp_UP, LSB for Disp_Down "); - stubManager.WriteHex((response.DispenserPosition),4); - stubManager.WriteLine(""); - stubManager.Write("MSB for Realy_On, LSB for Over_Press "); - stubManager.WriteHex((response.InkWorningLevel),4); - stubManager.WriteLine(""); - stubManager.WriteLine("----"); - stubManager.WriteLine(""); - - stubManager.Run("StubMotorRunRequest" ,(Dispenser_ID + 6), false, 1200 );//Dispenser ID -> motor ID - - Thread.Sleep(30000); //Sleep - stubManager.Run("StubMotorStopRequest" ,15, 3); - - stubManager.Write("Remove ByPass ( + read inputs) "); - stubManager.WriteLine(""); - response = stubManager.Run<StubDispenserResponse>("StubDispenserRequest" ,Dispenser_ID, false, false, 0, 0);// read inputs - stubManager.Write("MSB for Disp_UP, LSB for Disp_Down "); - stubManager.WriteHex((response.DispenserPosition),4); - stubManager.WriteLine(""); - stubManager.Write("MSB for Realy_On, LSB for Over_Press "); - stubManager.WriteHex((response.InkWorningLevel),4); - stubManager.WriteLine(""); - stubManager.WriteLine("----"); - stubManager.WriteLine(""); - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/DispenserEEpromRead.cs b/Software/Stubs Collection/stubs/DispenserEEpromRead.cs deleted file mode 100644 index 650cb2c80..000000000 --- a/Software/Stubs Collection/stubs/DispenserEEpromRead.cs +++ /dev/null @@ -1,27 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - uint i; - - StubDispenserEEpromRequest dispenserEEpromRequest = new StubDispenserEEpromRequest(); - for (i = 0; i<8;i++) - { - dispenserEEpromRequest.DispenserId = i; - dispenserEEpromRequest.BurnRequest = false; - var response = stubManager.Run<StubDispenserEEpromResponse>(dispenserEEpromRequest); - stubManager.Write( dispenserEEpromRequest); - - } - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/DispenserEEpromWrite.cs b/Software/Stubs Collection/stubs/DispenserEEpromWrite.cs deleted file mode 100644 index 8fdbbc3f8..000000000 --- a/Software/Stubs Collection/stubs/DispenserEEpromWrite.cs +++ /dev/null @@ -1,59 +0,0 @@ -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.Diagnostics; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - -DispenserEEpromRequest dispenserEEpromRequest = new DispenserEEpromRequest(); -dispenserEEpromRequest.DispenserId = 4; -dispenserEEpromRequest.BurnRequest = true; - -DispenserEEprom dispenserEEprom = new DispenserEEprom(); -dispenserEEprom.Header = 1; -dispenserEEprom.TableLength = 2; -dispenserEEprom.Tableversion = 3; -dispenserEEprom.DispenserPN = "Hello World 11"; -dispenserEEprom.PCBSN = "Hello World 22"; -dispenserEEprom.PCBPartNumber = "Hello World 33"; -dispenserEEprom.DispenserSN = "Hello World 44" -dispenserEEprom.MinimalPressure = 4; -dispenserEEprom.MaximalPressure = 5; -dispenserEEprom.MinimalMV = 6; -dispenserEEprom.MaximalMV = 7; -dispenserEEprom.TotalCycles = 8; -dispenserEEprom.BubbleSize = 9; -dispenserEEprom.AVGNlStepValue14 = 10; -dispenserEEprom.AVGNlStepValue24 = 11; -dispenserEEprom.AVGNlStepValue34 = 12; -dispenserEEprom.AVGNlStepValue44 = 13; -dispenserEEprom.SWReserve = 14; -dispenserEEprom.Spare1Pressure = 15; -dispenserEEprom.Spare2Pressure = 16; -dispenserEEprom.MotorPulsesPerCycle = 17; -dispenserEEprom.Color = 18; -dispenserEEprom.PressureSlope = 19; -dispenserEEprom.ProductionDate = "11121970"; -dispenserEEprom.ATSlocation = 20; -dispenserEEprom.Spare1 = 21; -dispenserEEprom.Spare2 = 22; -dispenserEEprom.ATSChannel = 23; -dispenserEEprom.UnitEmpty = true; -dispenserEEprom.DryRunPassFail = true; -dispenserEEprom.FlowPassFail = true; -dispenserEEprom.CheckSum = true; - -dispenserEEpromRequest.DispenserEEprom = dispenserEEprom; - - - var response = stubManager.Run<DispenserEEpromResponse>(dispenserEEpromRequest); - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/EmbParam.cfg b/Software/Stubs Collection/stubs/EmbParam.cfg Binary files differdeleted file mode 100644 index 6482fc82b..000000000 --- a/Software/Stubs Collection/stubs/EmbParam.cfg +++ /dev/null diff --git a/Software/Stubs Collection/stubs/Get_PowerStep01_Parameters.cs b/Software/Stubs Collection/stubs/Get_PowerStep01_Parameters.cs deleted file mode 100644 index e6ced17eb..000000000 --- a/Software/Stubs Collection/stubs/Get_PowerStep01_Parameters.cs +++ /dev/null @@ -1,227 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -//unmark Auto logging ! - -const Int32 x_POWERSTEP01_CONFIG = 0x1A; -const Int32 x_POWERSTEP01_STATUS = 0x1B; -const Int32 x_POWERSTEP01_GATECFG1 = 0x18; -const Int32 x_POWERSTEP01_GATECFG2 = 0x19; - -const Int32 x_ABS_POS = 0x01; -const Int32 x_EL_POS = 0x02; -const Int32 x_MARK = 0x03; -const Int32 x_SPEED = 0x04; -const Int32 x_ACC = 0x05; -const Int32 x_DEC = 0x06; -const Int32 x_MAX_SPEED = 0x07; -const Int32 x_MIN_SPEED = 0x08; -const Int32 x_FS_SPD = 0x15; -const Int32 x_KVAL_HOLD = 0x09; -const Int32 x_KVAL_RUN = 0x0A; -const Int32 x_KVAL_ACC = 0x0B; -const Int32 x_KVAL_DEC = 0x0C; -const Int32 x_INT_SPD = 0x0D; -const Int32 x_ST_SLP = 0x0E; -const Int32 x_FN_SLP_ACC = 0x0F; -const Int32 x_FN_SLP_DEC = 0x10; -const Int32 x_K_THERM = 0x11; -const Int32 x_ADC_OUT = 0x12; -const Int32 x_OCD_TH = 0x13; -const Int32 x_STALL_TH = 0x14; -const Int32 x_STEP_MODE = 0x16; -const Int32 x_ALARM_EN = 0x17; -const Int32 x_CONFIG = 0x18; -const Int32 x_STATUS = 0x19; -//------------------------------- -const Int32 x_GET_PARAM = 0x20; -//------------------------------- -const Int32 Max_Motor_ID = 25; - -string[] Motor_ID = new string[30]; - - -Motor_ID[0] ="DH_CLEANHEAD "; -Motor_ID[1] ="DH_CLEANMECH "; -Motor_ID[2] ="DH_LID "; -Motor_ID[3] ="DRYER_DRIVING"; -Motor_ID[4] ="DRYER_LID "; -Motor_ID[5] ="DRYER_LOADARM"; -Motor_ID[6] ="DISPENCER_1 "; -Motor_ID[7] ="DISPENCER_2 "; -Motor_ID[8] ="DISPENCER_3 "; -Motor_ID[9] ="DISPENCER_4 "; -Motor_ID[10]="DISPENCER_5 "; -Motor_ID[11]="DISPENCER_6 "; -Motor_ID[12]="DISPENCER_7 "; -Motor_ID[13]="DISPENCER_8 "; -Motor_ID[14]="SCREW "; -Motor_ID[15]="WINDER "; -Motor_ID[16]="LDANCER1 "; -Motor_ID[17]="LDANCER2 "; -Motor_ID[18]="LDRIVING "; -Motor_ID[19]="LLODING "; -Motor_ID[20]="LPIVOT "; -Motor_ID[21]="RDANCER "; -Motor_ID[22]="RDRIVING "; -Motor_ID[23]="RLOADARM "; -Motor_ID[24]="RLODING "; -Motor_ID[25]="SPARE1_1 "; -Motor_ID[26]="SPARE1_2 "; -Motor_ID[27]="SPARE2_1 "; -Motor_ID[28]="SPARE2_2 "; -Motor_ID[29]="SPARE3 "; - -public void OnExecute(StubManager stubManager) -{ - - var i = stubManager.ShowResponseWindow("Please Enter Motor ID:"); - - stubManager.Write("Motor_ID:\t\t "); - stubManager.Write(i); - stubManager.Write("\n"); - - stubManager.Write("ABS_POS:\t\t"); - var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ABS_POS)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("EL_POS:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_EL_POS)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("MARK:\t\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MARK)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("SPEED:\t\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_SPEED)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("ACC:\t\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ACC)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("DEC:\t\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_DEC)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("MAX_SPEED:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MAX_SPEED)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("MIN_SPEED:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MIN_SPEED)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("FS_SPD:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FS_SPD)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("KVAL\\TVAL_HOLD:\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_HOLD)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("KVAL\\TVAL_RUN:\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_RUN)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("KVAL\\TVAL_ACC:\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_ACC)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("KVAL\\TVAL_DEC:\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_DEC)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("INT_SPEED:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_INT_SPD)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("ST_SLP\\T_FAST:\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ST_SLP)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("FN_SLP_ACC\\TON_MIN:\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_ACC)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("FN_SLP_DEC\\TOFF_MIN:"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_DEC)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("K_THERM:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_K_THERM)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("ADC_OUT:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ADC_OUT)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("OCD_TH:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_OCD_TH)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("STALL_TH:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STALL_TH)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("STEP_MODE:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("ALARM_EN:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ALARM_EN)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("GATECFG1:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG1)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("GATECFG2:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG2)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("CONFIG:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_CONFIG)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("STATUS:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_STATUS)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Head LS.cs b/Software/Stubs Collection/stubs/Head LS.cs deleted file mode 100644 index b5c646649..000000000 --- a/Software/Stubs Collection/stubs/Head LS.cs +++ /dev/null @@ -1,31 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -/*HEAD CARD I/O - -Slave address 0x40 / 0x42 / 0x44 / 0x46 - -------------------------- -| Byte | WR | RD | CFG | -------------------------- -| Low | 02 | 00 | 06 | -| High | 03 | 01 | 07 | -------------------------- -Example (42 Slave Address, 03 Write High Byte, D8 Set value (NA on read)) -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD, 0x4203D8); -*/ -public void OnExecute(StubManager stubManager) -{ - //Head LS - var response7 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD, 0x460100); - stubManager.WriteLineHex(response7.Progress,2); -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/HeadCard_ADC.cs b/Software/Stubs Collection/stubs/HeadCard_ADC.cs deleted file mode 100644 index e1e18089c..000000000 --- a/Software/Stubs Collection/stubs/HeadCard_ADC.cs +++ /dev/null @@ -1,64 +0,0 @@ -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.Stubs; -using Tango.Stubs; - - -//----------------------------------------- HEAD_ADC1_0x50 -//Maximum value: 1.3V, 1 LSB: 2500/4096 mA -const UInt32 HEAD_CURRENT_ZONE_1 = 0; -const UInt32 HEAD_CURRENT_ZONE_2 = 1; -const UInt32 HEAD_CURRENT_ZONE_3 = 2; -const UInt32 HEAD_CURRENT_ZONE_4 = 3; -const UInt32 HEAD_CURRENT_ZONE_5 = 4; -const UInt32 HEAD_CURRENT_ZONE_6 = 5; -const UInt32 HEAD_CURRENT_ZONE_7 = 6; -const UInt32 HEAD_CURRENT_ZONE_8 = 7; - -//----------------------------------------- HEAD_ADC2_0x54 -//Maximum value: 1.3V, 1 LSB: 2500/4096 mA -const UInt32 HEAD_CURRENT_ZONE_9 = 8 ; -const UInt32 HEAD_CURRENT_ZONE_10 = 9 ; -const UInt32 HEAD_CURRENT_ZONE_11 = 10; -const UInt32 HEAD_CURRENT_ZONE_12 = 11; - -//Maximum value: 2.1V, 1 LSB: 5000/4096 mA -const UInt32 HEAD_CURRENT_HTIN_1 = 12; -const UInt32 HEAD_CURRENT_HTIN_2 = 13; -const UInt32 HEAD_CURRENT_HTIN_3 = 14; -const UInt32 HEAD_CURRENT_HTIN_4 = 15; - -//----------------------------------------- HEAD_ADC3_0x56 -//Maximum value: 2.1V, 1 LSB: 5000/4096 mA -const UInt32 HEAD_CURRENT_HTOT_1 = 16; -const UInt32 HEAD_CURRENT_HTOT_2 = 17; -const UInt32 HEAD_CURRENT_HTOT_3 = 18; -const UInt32 HEAD_CURRENT_HTOT_4 = 19; - -//Maximum value: 1.7V, 1 LSB: 2500/4096 mA -const UInt32 HEAD_CURRENT_MIXER = 20; - -//Maximum value: 2.34V, 1 LSB: 4.9 mA -const UInt32 HEAD_CURRENT_HT_TOTAL = 21; - -//Maximum value: 0.5V, 1 LSB: 2500/4096 mA -const UInt32 HEAD_CURRENT_VALUE = 22; - -//Maximum value: (2.05 -2.3) V, 1 LSB: 27500/4096 mV -const UInt32 HEAD_CURRENT_24V = 23; - - -public void OnExecute(StubManager stubManager) -{ - - var response = stubManager.Run<StubMidTankPressureSensorResponse>("StubMidTankPressureSensorRequest" ,0x8000 + HEAD_CURRENT_24V); // 0x8000 + Head ADC ID - stubManager.WriteLine(response.Pressure); - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Head_Card_I2C.cs b/Software/Stubs Collection/stubs/Head_Card_I2C.cs deleted file mode 100644 index 6f49eeb51..000000000 --- a/Software/Stubs Collection/stubs/Head_Card_I2C.cs +++ /dev/null @@ -1,66 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -/*HEAD CARD I/O - -Slave address 0x40 / 0x42 / 0x44 / 0x46 - -------------------------- -| Byte | WR | RD | CFG | -------------------------- -| Low | 02 | 00 | 06 | -| High | 03 | 01 | 07 | -------------------------- - -Example (42 Slave Address, 03 Write High Byte, D8 Set value (NA on read)) -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD, 0x4203D8); -*/ - -public void OnExecute(StubManager stubManager) -{ - -//ZN_Latch_RST off -var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD, 0x4203D8); -stubManager.WriteLineHex(response.Progress,2); - -//Turn ON mixer -var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD, 0x420210); -stubManager.WriteLineHex(response1.Progress,2); - -//Turn ON 12 (0..7) -var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD, 0x4002FF); -stubManager.WriteLineHex(response4.Progress,2); - -//Turn ON 12 (8..11) -var response5 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD, 0x40030F); -stubManager.WriteLineHex(response5.Progress,2); - -//ZN_Latch_RST ON -var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD, 0x4203F8); -stubManager.WriteLineHex(response2.Progress,2); - -Thread.Sleep(5000); - -//Turn OFF mixer -var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD, 0x420200); -stubManager.WriteLineHex(response3.Progress,2); - -//Turn OFF 12 (0..7) -var response6 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD, 0x400200); -stubManager.WriteLineHex(response6.Progress,2); - -//Turn OFF 12 (8..11) -var response7 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD, 0x400300); -stubManager.WriteLineHex(response7.Progress,2); - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Head_Card_IO.cs b/Software/Stubs Collection/stubs/Head_Card_IO.cs deleted file mode 100644 index 161b622f2..000000000 --- a/Software/Stubs Collection/stubs/Head_Card_IO.cs +++ /dev/null @@ -1,160 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -//---------------------- -const Int32 I2C_ID = 3; //MCU_I2C3 -const Int32 TCA9548A_address = 0xE2; // Main Mux -Int32 I2C_Slave_Add ; // //eeprom address - 32kByte -int Head_Mux_Channel_ID = 4; //Head MUX channel -//---------------------- - -uint[] write_Buf = new uint[5]; - - -int enable_channel(int Channel_ID) -{ - uint Const_temp = 0x01; - - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = TCA9548A_address; - - Const_temp = Const_temp << Channel_ID; - stubI2CWriteBytesRequest.BytesTWrite.Add(Const_temp); - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; -} - - -int adc_write(uint I2C_Slave_Add, uint No_Bytes) -{ -uint i = 0; - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - UInt32 uInt32 = new UInt32(); - - //-------------------------------------------------------------- - for(i=0;i<No_Bytes;i++) - stubI2CWriteBytesRequest.BytesTWrite.Add(write_Buf[i]);//Data to write - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; -} - -int adc_set_for_read_ch(uint I2C_Slave_Add) -{ - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; -} - -int adc_read_ch(uint I2C_Slave_Add, uint No_Bytes) -{ - adc_set_for_read_ch(I2C_Slave_Add ); - - StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest(); - stubI2CReadBytesRequest.I2CId = I2C_ID; - stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add + 1; - stubI2CReadBytesRequest.NumberOfBytesToRead = No_Bytes; // Number of bytes to read - - var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest); - uint temph=0; - - for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++) - { - temph=response1.ReadBytes[i]; - stubManager.WriteLineHex(temph,2); - } - - return 1; -} - - -public void OnExecute(StubManager stubManager) -{ - - enable_channel(Head_Mux_Channel_ID); - - //ZN_Latch_RST off - write_Buf[0] = 0x03; - write_Buf[1] = 0xD8; - adc_write(0x42, 2); - adc_read_ch(0x42, 2); - - - //Turn ON mixer - write_Buf[0] = 0x02; - write_Buf[1] = 0x10; - adc_write(0x42, 2); - adc_read_ch(0x42, 2); - stubManager.WriteLine(""); - - //Turn ON 12 (0..7) - write_Buf[0] = 0x02; - write_Buf[1] = 0xFF; - adc_write(0x40, 2); - adc_read_ch(0x40, 2); - stubManager.WriteLine(""); - - //Turn ON 12 (8..11) - write_Buf[0] = 0x03; - write_Buf[1] = 0x0F; - adc_write(0x40, 2); - adc_read_ch(0x40, 2); - stubManager.WriteLine(""); - - //ZN_Latch_RST ON - write_Buf[0] = 0x03; - write_Buf[1] = 0xF8; - adc_write(0x42, 2); - adc_read_ch(0x42, 2); - - Thread.Sleep(5000); - stubManager.WriteLine("-------------"); - - //Turn OFF mixer - write_Buf[0] = 0x02; - write_Buf[1] = 0x00; - adc_write(0x42, 2); - adc_read_ch(0x42, 2); - stubManager.WriteLine(""); - - //Turn OFF 12 (0..7) - write_Buf[0] = 0x02; - write_Buf[1] = 0x00; - adc_write(0x40, 2); - adc_read_ch(0x40, 2); - stubManager.WriteLine(""); - - //Turn OFF 12 (8..11) - write_Buf[0] = 0x03; - write_Buf[1] = 0x00; - adc_write(0x40, 2); - adc_read_ch(0x40, 2); - stubManager.WriteLine(""); - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Head_EEPROM.cs b/Software/Stubs Collection/stubs/Head_EEPROM.cs deleted file mode 100644 index 1b3ab7213..000000000 --- a/Software/Stubs Collection/stubs/Head_EEPROM.cs +++ /dev/null @@ -1,135 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -//---------------------- -const Int32 I2C_ID = 3; //MCU_I2C3 -const Int32 TCA9548A_address = 0xE2; -const Int32 I2C_Slave_Add = 0xA0; // //eeprom address - 32kByte -int Head_Mux_Channel_ID = 4; //Head MUX channel -//---------------------- - - -int enable_channel(int Channel_ID) -{ - uint Const_temp = 0x01; - - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = TCA9548A_address; - - Const_temp = Const_temp << Channel_ID; - stubI2CWriteBytesRequest.BytesTWrite.Add(Const_temp); - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; -} - - -int adc_write(uint I2C_Slave_Add, uint Page) -{ - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write - //-------------------------------------------------------------- - - stubI2CWriteBytesRequest.BytesTWrite.Add(0x12 + Page);//Data 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(0x34 + Page);//Data 1 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(0x56 + Page);//Data 2 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(0x78 + Page);//Data 3 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(0x90 + Page);//Data 4 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(0xAB + Page);//Data 5 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(0xCD + Page);//Data 6 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(0xEF + Page);//Data 7 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(0x01 + Page);//Data 8 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(0x02 + Page);//Data 9 to write - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; -} - -int adc_set_for_read_ch(uint I2C_Slave_Add, uint Page) -{ - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; -} - -int adc_read_ch(uint I2C_Slave_Add) -{ - StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest(); - stubI2CReadBytesRequest.I2CId = I2C_ID; - stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add + 1; - stubI2CReadBytesRequest.NumberOfBytesToRead = 10; // Number of bytes to read - - var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest); - uint temph=0; - - for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++) - { - temph=response1.ReadBytes[i]; - stubManager.WriteHex(temph,2); - } - - return 1; -} - - -public void OnExecute(StubManager stubManager) -{ - - //enable_all_channel(); - enable_channel(Head_Mux_Channel_ID); // Chanel 0-7 => Disp0enser 0-7 - - for (int i = 0; i<1; i++) - { - - adc_write(I2C_Slave_Add,0x10); - Thread.Sleep(10); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet ) - - adc_write(I2C_Slave_Add,0x00); - Thread.Sleep(10); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet ) - - stubManager.Write("\nPage 0x10 #"); - stubManager.Write(i); - stubManager.Write("\t- The Buffer is: "); - adc_set_for_read_ch(I2C_Slave_Add,0x10); - //Thread.Sleep(1); //Sleep for 10 milli. - adc_read_ch(I2C_Slave_Add); - - Thread.Sleep(10); - - stubManager.Write("\nPage 0x00 #"); - stubManager.Write(i); - stubManager.Write("\t- The Buffer is: "); - adc_set_for_read_ch(I2C_Slave_Add, 0x00); - //Thread.Sleep(1); //Sleep for 10 milli. - adc_read_ch(I2C_Slave_Add); - - Thread.Sleep(1000); - - } -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Head_card_PT100__Horizontal_Printing.cs b/Software/Stubs Collection/stubs/Head_card_PT100__Horizontal_Printing.cs deleted file mode 100644 index 6c6bbac05..000000000 --- a/Software/Stubs Collection/stubs/Head_card_PT100__Horizontal_Printing.cs +++ /dev/null @@ -1,59 +0,0 @@ -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.Stubs; -//using Tango.Stubs.UI; -using Tango.Stubs;// -using Tango.PMR.Printing; -using Tango.PMR.Hardware; - - -public void OnExecute(StubManager stubManager) -{ - /* -ProcessParameters processParameters = new ProcessParameters(); -processParameters.DyeingSpeed = 30; -processParameters.DryerBufferLength = 0; -processParameters.MinInkUptake = 0; -processParameters.DryerZone1Temp = 120; -processParameters.DryerZone2Temp = 0; -processParameters.DryerZone3Temp = 0; -processParameters.HeadZone1Temp = 120; -processParameters.HeadZone2Temp = 150; -processParameters.HeadZone3Temp = 150; -processParameters.HeadZone4Temp = 150; -processParameters.HeadZone5Temp = 0; - -UploadProcessParametersRequest uploadProcessParametersRequest = new UploadProcessParametersRequest(); - -uploadProcessParametersRequest.ProcessParameters = processParameters; -var response1 = stubManager.Run<UploadProcessParametersResponse>(uploadProcessParametersRequest); -*/ - - stubManager.Write("\n"); - stubManager.Write("HZone_1 \tHZone_3 \tHZone_5 \tHZone_7 \tHZone_9 \tHZone_11\tHAir_1 \tMixer \tHZone_2 \tHZone_4 \tHZone_6 \tHZone_8 \tHZone_10 \tHZone_12 \n"); - stubManager.Write("------- \t---------\t---------\t---------\t---------\t---------\t------- \t------- \t------- \t-----------\t-----------\t-----------\t-----------\t-----------\n"); - - for (int j = 0; j < 1000; j++) - { - for (int i = 12; i < 26; i++)//12 - { - - var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,0x100 + i); //Add 0x100 for internal temperature - float ftemp = (float)response.TemperatureCMultBy100; - ftemp = ftemp / 100; - - stubManager.Write(ftemp.ToString("F2")); - stubManager.Write("°C\t"); - - } - stubManager.Write("\n"); - Thread.Sleep(1000); - } -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Head_card_PT100__Horizontal_Printing_new.cs b/Software/Stubs Collection/stubs/Head_card_PT100__Horizontal_Printing_new.cs deleted file mode 100644 index 4d877e3d0..000000000 --- a/Software/Stubs Collection/stubs/Head_card_PT100__Horizontal_Printing_new.cs +++ /dev/null @@ -1,87 +0,0 @@ -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.Stubs; -//using Tango.Stubs.UI; -using Tango.Stubs;// -using Tango.PMR.Printing; -using Tango.PMR.Hardware; - - -public void OnExecute(StubManager stubManager) -{ - - Int32 command = 0; - - /* -ProcessParameters processParameters = new ProcessParameters(); -processParameters.DyeingSpeed = 30; -processParameters.DryerBufferLength = 0; -processParameters.MinInkUptake = 0; -processParameters.DryerZone1Temp = 120; -processParameters.DryerZone2Temp = 0; -processParameters.DryerZone3Temp = 0; -processParameters.HeadZone1Temp = 120; -processParameters.HeadZone2Temp = 150; -processParameters.HeadZone3Temp = 150; -processParameters.HeadZone4Temp = 150; -processParameters.HeadZone5Temp = 0; - -UploadProcessParametersRequest uploadProcessParametersRequest = new UploadProcessParametersRequest(); - -uploadProcessParametersRequest.ProcessParameters = processParameters; -var response1 = stubManager.Run<UploadProcessParametersResponse>(uploadProcessParametersRequest); -*/ - - stubManager.Write("\n"); - stubManager.Write("HZone_1 \tHZone_3 \tHZone_5 \tHZone_7 \tHZone_9 \tHZone_11\tHAir_1 \tMixer \tHZone_2 \tHZone_4 \tHZone_6 \tHZone_8 \tHZone_10 \tHZone_12 \n"); - stubManager.Write("------- \t---------\t---------\t---------\t---------\t---------\t------- \t------- \t------- \t-----------\t-----------\t-----------\t-----------\t-----------\n"); - - for (int j = 0; j < 1; j++) - { - for (int i = 12; i < 26; i++)//12 - { - - //if(((i ==12) || (i ==26 ) ) && (j==0)) - - - - var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" , i);// not in use only for compilation - /* - //----------------------------------------------------------------- - if(((i == 12) || (i == 20)) && (j == 0) ) - { - - command = 0x8000 + i; - } - else - { - - command = i; - } - var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" , command); - Thread.Sleep(50); - //---------------------------------------------------------------------------- - */ - //var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,/*0x100 +*/ i); //Add 0x100 for internal temperature - - float ftemp = (float)response.TemperatureCMultBy100; - ftemp = ftemp / 100; - - stubManager.Write(ftemp.ToString("F2")); - stubManager.Write("°C\t"); - -/* -stubManager.WriteHex(response.TemperatureCMultBy100,6); - stubManager.Write("\t");*/ - } - stubManager.Write("\n"); - Thread.Sleep(1000); - } -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Head_card_PT100__Horizontal_Printing_new2.cs b/Software/Stubs Collection/stubs/Head_card_PT100__Horizontal_Printing_new2.cs deleted file mode 100644 index 400a0d421..000000000 --- a/Software/Stubs Collection/stubs/Head_card_PT100__Horizontal_Printing_new2.cs +++ /dev/null @@ -1,49 +0,0 @@ -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.Stubs; - -using Tango.Stubs; -using Tango.PMR.Printing; -using Tango.PMR.Hardware; - - -public void OnExecute(StubManager stubManager) -{ - - stubManager.Write("\n"); - stubManager.Write("HZone_1 \tHZone_3 \tHZone_5 \tHZone_7 \tHZone_9 \tHZone_11\tHAir_1 \tMixer \tHZone_2 \tHZone_4 \tHZone_6 \tHZone_8 \tHZone_10 \tHZone_12 \n"); - stubManager.Write("------- \t---------\t---------\t---------\t---------\t---------\t------- \t------- \t------- \t-----------\t-----------\t-----------\t-----------\t-----------\n"); - - for (int j = 0; j < 1; j++) - { - for (int i = 12; i < 26; i++) - { - - if(((i == 12) || (i == 20)) && (j == 0) ) - { - stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" , 0x8000 + i);//read odd (12+) and even (20+) - } - var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" , i);//get from the buffer - - - float ftemp = (float)response.TemperatureCMultBy100; - ftemp = ftemp / 100; - - stubManager.Write(ftemp.ToString("F2")); - stubManager.Write("°C\t"); - - /* to display the data in hex - need also to unmark the lines in the embedded code - stubManager.WriteHex(response.TemperatureCMultBy100,6); - stubManager.Write("\t");*/ - } - stubManager.Write("\n"); - Thread.Sleep(1000); - } -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Head_i2c_functions.cs b/Software/Stubs Collection/stubs/Head_i2c_functions.cs deleted file mode 100644 index f676ba592..000000000 --- a/Software/Stubs Collection/stubs/Head_i2c_functions.cs +++ /dev/null @@ -1,27 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - // Request ---- - // Int32 : Amount - // Int32 : Delay - - // Response ---- - // Double : Progress - var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFEAD, 0xCA1401);//Turn on mixer (hrater ID on/off) - - Thread.Sleep(5000); - - var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFEAD, 0xCA1400);//Turn OFF mixer - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Heat I2C ACT test.cs b/Software/Stubs Collection/stubs/Heat I2C ACT test.cs deleted file mode 100644 index 1ad3a8f74..000000000 --- a/Software/Stubs Collection/stubs/Heat I2C ACT test.cs +++ /dev/null @@ -1,33 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - - - var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFEAD, 0xCAF101);//Actuators: ID, power, Direction - Thread.Sleep(100); - var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFEAD, 0xCAF111);//Actuators: ID, power, Direction - Thread.Sleep(3000); - var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFEAD, 0xCAF100);//Actuators: ID, power, Direction - Thread.Sleep(100); - var response5 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFEAD, 0xCAF110);//Actuators: ID, power, Direction - Thread.Sleep(3000); - var response6 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFEAD, 0xCAF001);//Actuators: ID, power, Direction - Thread.Sleep(100); - var response7 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFEAD, 0xCAF011);//Actuators: ID, power, Direction - Thread.Sleep(3000); - var response8 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFEAD, 0xCAF000);//Actuators: ID, power, Direction - Thread.Sleep(100); - var response9 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFEAD, 0xCAF010);//Actuators: ID, power, Direction - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/I2C_RW_Main_Card_EEPROM_Save_Main_SN.cs b/Software/Stubs Collection/stubs/I2C_RW_Main_Card_EEPROM_Save_Main_SN.cs deleted file mode 100644 index 6ec538758..000000000 --- a/Software/Stubs Collection/stubs/I2C_RW_Main_Card_EEPROM_Save_Main_SN.cs +++ /dev/null @@ -1,98 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -//---------------------- -const Int32 I2C_ID = 2; //MCU_I2C2 - -const Int32 I2C_Slave_Add = 0xA0; //Slave (EEPROM) address - -string str = "UM181700004";//main card S/N - -uint length = 11; -int i = 0; - -//---------------------- - -int adc_write(uint I2C_Slave_Add) -{ - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write - //-------------------------------------------------------------- - - for(i=0;i<length;i++) - stubI2CWriteBytesRequest.BytesTWrite.Add(str[i]);//Data 0 to write - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; -} - -int adc_set_for_read_ch(uint I2C_Slave_Add) -{ - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; -} - -int adc_read_ch(uint I2C_Slave_Add) -{ - StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest(); - stubI2CReadBytesRequest.I2CId = I2C_ID; - stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add + 1; - stubI2CReadBytesRequest.NumberOfBytesToRead = length; // Number of bytes to read - - var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest); - uint temph=0; - - for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++) - { - temph=response1.ReadBytes[i]; - stubManager.Write((char) temph); - } - - return 1; -} - - -public void OnExecute(StubManager stubManager) -{ - - for (int i = 0; i<1; i++) - { - - adc_write(I2C_Slave_Add); - Thread.Sleep(5); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet ) - stubManager.Write("\n"); - - stubManager.Write("The eeprom data: "); - adc_set_for_read_ch(I2C_Slave_Add); - - adc_read_ch(I2C_Slave_Add); - - Thread.Sleep(1000); - - } -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/I2C_RW_Main_EEPROM_AVI _support_string.cs b/Software/Stubs Collection/stubs/I2C_RW_Main_EEPROM_AVI _support_string.cs deleted file mode 100644 index 00064ec7f..000000000 --- a/Software/Stubs Collection/stubs/I2C_RW_Main_EEPROM_AVI _support_string.cs +++ /dev/null @@ -1,109 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -//---------------------- -const Int32 I2C_ID = 2; //MCU_I2C2 - -const Int32 I2C_Slave_Add = 0xA0; // /Slave (EEPROM) address - -//---------------------- - -int adc_write(uint I2C_Slave_Add) -{ - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write - //-------------------------------------------------------------- - stubI2CWriteBytesRequest.BytesTWrite.Add(0x12);//Data 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add('B');//Data 1 to write - stubI2CWriteBytesRequest.BytesTWrite.Add('C');//Data 2 to write - stubI2CWriteBytesRequest.BytesTWrite.Add('D');//Data 3 to write - stubI2CWriteBytesRequest.BytesTWrite.Add('E');//Data 4 to write - stubI2CWriteBytesRequest.BytesTWrite.Add('F');//Data 5 to write - stubI2CWriteBytesRequest.BytesTWrite.Add('G');//Data 6 to write - stubI2CWriteBytesRequest.BytesTWrite.Add('H');//Data 7 to write - stubI2CWriteBytesRequest.BytesTWrite.Add('I');//Data 8 to write - stubI2CWriteBytesRequest.BytesTWrite.Add('J');//Data 9 to write - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; -} - -int adc_set_for_read_ch(uint I2C_Slave_Add) -{ - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; -} - -int adc_read_ch(uint I2C_Slave_Add) -{ - StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest(); - stubI2CReadBytesRequest.I2CId = I2C_ID; - stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add + 1; - stubI2CReadBytesRequest.NumberOfBytesToRead = 10; // Number of bytes to read - - var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest); - uint temph=0; - - for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++) - { - temph=response1.ReadBytes[i]; - //stubManager.WriteHex(temph,2); - if(((temph>='A') && (temph<='Z')) || ((temph>='a') && (temph<='z'))) - { - stubManager.Write((char) temph); - } - else - { - stubManager.WriteHex(temph,2); - } - stubManager.Write(" "); - } - - return 1; -} - - -public void OnExecute(StubManager stubManager) -{ - - for (int i = 0; i<1; i++) - { - - adc_write(I2C_Slave_Add); - Thread.Sleep(5); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet ) - stubManager.Write("\n"); - //stubManager.Write(i); - stubManager.Write("The Buffer is: "); - adc_set_for_read_ch(I2C_Slave_Add); - //Thread.Sleep(1); //Sleep for 10 milli. - adc_read_ch(I2C_Slave_Add); - - Thread.Sleep(1000); - - } -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/LoadingArm5Rounds.cs b/Software/Stubs Collection/stubs/LoadingArm5Rounds.cs deleted file mode 100644 index f5cacba1b..000000000 --- a/Software/Stubs Collection/stubs/LoadingArm5Rounds.cs +++ /dev/null @@ -1,23 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -//Loading Arm Calibration - this command writes the arm position to a non-volatile memory - -ProgressRequest progressRequest = new ProgressRequest(); -progressRequest.Amount = 0xB2; -progressRequest.Delay = 5; - - var response = stubManager.Run<ProgressResponse>(progressRequest); - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/LoadingArmCalibration.cs b/Software/Stubs Collection/stubs/LoadingArmCalibration.cs deleted file mode 100644 index 73aba2aef..000000000 --- a/Software/Stubs Collection/stubs/LoadingArmCalibration.cs +++ /dev/null @@ -1,23 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -//Loading Arm Calibration - this command writes the arm position to a non-volatile memory - -ProgressRequest progressRequest = new ProgressRequest(); -progressRequest.Amount = 0xB1; -progressRequest.Delay = 1; - - var response = stubManager.Run<ProgressResponse>(progressRequest); - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/LoadingArmandCenterCalibration.cs b/Software/Stubs Collection/stubs/LoadingArmandCenterCalibration.cs deleted file mode 100644 index b11f900ad..000000000 --- a/Software/Stubs Collection/stubs/LoadingArmandCenterCalibration.cs +++ /dev/null @@ -1,28 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -//Loading Arm Calibration - this command writes the arm position to a non-volatile memory - -ProgressRequest progressRequest = new ProgressRequest(); -progressRequest.Amount = 0xB1; -//progressRequest.Delay = 1; - - var response = stubManager.Run<ProgressResponse>(progressRequest); - - progressRequest.Amount = 0xB2; - progressRequest.Delay = 0; - - response = stubManager.Run<ProgressResponse>(progressRequest); - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Main card Watchdog test.cs b/Software/Stubs Collection/stubs/Main card Watchdog test.cs deleted file mode 100644 index 3db075678..000000000 --- a/Software/Stubs Collection/stubs/Main card Watchdog test.cs +++ /dev/null @@ -1,24 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - -//"Set WFCF Value -ProgressRequest progressRequest = new ProgressRequest(); -progressRequest.Amount = 0xAD9; -progressRequest.Delay = 0; - -var response = stubManager.Run<ProgressResponse>(progressRequest); - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Motor_GMotor_Get_Param_Powerstep01_rev2.cs b/Software/Stubs Collection/stubs/Motor_GMotor_Get_Param_Powerstep01_rev2.cs deleted file mode 100644 index 505444080..000000000 --- a/Software/Stubs Collection/stubs/Motor_GMotor_Get_Param_Powerstep01_rev2.cs +++ /dev/null @@ -1,292 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -//unmark Auto logging ! - -//General Configuration -const Int32 x_ABS_POS = 0x01; -const Int32 x_EL_POS = 0x02; -const Int32 x_MARK = 0x03; -const Int32 x_SPEED = 0x04; -const Int32 x_ACC = 0x05; -const Int32 x_DEC = 0x06; -const Int32 x_MAX_SPEED = 0x07; -const Int32 x_MIN_SPEED = 0x08; -const Int32 x_ADC_OUT = 0x12; -const Int32 x_OCD_TH = 0x13; -const Int32 x_FS_SPD = 0x15; -const Int32 x_STEP_MODE = 0x16; -const Int32 x_ALARM_EN = 0x17; -const Int32 x_POWERSTEP01_GATECFG1 = 0x18; -const Int32 x_POWERSTEP01_GATECFG2 = 0x19; -const Int32 x_POWERSTEP01_CONFIG = 0x1A; -const Int32 x_POWERSTEP01_STATUS = 0x1B; -//VOLTAGE / CURRENT -const Int32 x_KTVAL_HOLD = 0x09; -const Int32 x_KTVAL_RUN = 0x0A; -const Int32 x_KTVAL_ACC = 0x0B; -const Int32 x_KTVAL_DEC = 0x0C; -const Int32 x_ST_SLP_T_FAST = 0x0E; -const Int32 x_FN_SLP_ACC_TON_MIN = 0x0F; -const Int32 x_FN_SLP_DEC_TOFF_MIN = 0x10; - -const Int32 x_INT_SPD = 0x0D;//voltage -const Int32 x_K_THERM = 0x11;//VOLTAGE -const Int32 x_STALL_TH = 0x14;//VOLTAGE - -//------------------------------- -const Int32 x_GET_PARAM = 0x20; -//------------------------------- -Int32 Start_index = 0; // start from motor - -const Int32 Max_Motor_ID = 25; - -string[] Motor_ID = new string[30]; - - -Motor_ID[0] ="DH_CLEANHEAD "; -Motor_ID[1] ="DH_CLEANMECH "; -Motor_ID[2] ="DH_LID "; -Motor_ID[3] ="DRYER_DRIVING"; -Motor_ID[4] ="DRYER_LID "; -Motor_ID[5] ="DRYER_LOADARM"; -Motor_ID[6] ="DISPENCER_1 "; -Motor_ID[7] ="DISPENCER_2 "; -Motor_ID[8] ="DISPENCER_3 "; -Motor_ID[9] ="DISPENCER_4 "; -Motor_ID[10]="DISPENCER_5 "; -Motor_ID[11]="DISPENCER_6 "; -Motor_ID[12]="DISPENCER_7 "; -Motor_ID[13]="DISPENCER_8 "; -Motor_ID[14]="SCREW "; -Motor_ID[15]="WINDER "; -Motor_ID[16]="LDANCER1 "; -Motor_ID[17]="LDANCER2 "; -Motor_ID[18]="LDRIVING "; -Motor_ID[19]="LLODING "; -Motor_ID[20]="LPIVOT "; -Motor_ID[21]="RDANCER "; -Motor_ID[22]="RDRIVING "; -Motor_ID[23]="RLOADARM "; -Motor_ID[24]="RLODING "; -Motor_ID[25]="SPARE1_1 "; -Motor_ID[26]="SPARE1_2 "; -Motor_ID[27]="SPARE2_1 "; -Motor_ID[28]="SPARE2_2 "; -Motor_ID[29]="SPARE3 "; - - - - -public void OnExecute(StubManager stubManager) -{ - Int32 i = 0; - - Int32 motname = 0; -//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000380 , 0x06b9); //7ff mati -//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000390 , 0x003f); -//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000550 , 0x0003); //ff mati -//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000b80 , 0x001f); - - for (i = Start_index; i < Max_Motor_ID; i++) - { - - if((i%8 ==0) ) - { - stubManager.Write("\n\n"); - stubManager.Write("MoTor\t\t\tMIN_SPEED\tMAX_SPEED\tSTEP_MODE\tACC\t\tDEC\t\tKTVAL_HOLD\tKTVAL_RUN\tTKVAL_ACC\tTKVAL_DEC\tOCD_TH\t\tSTALL_TH\tFS_SPD\n"); - stubManager.Write("------\t\t\t--------\t--------\t----------\t---\t\t---\t\t----------\t---------\t---------\t---------\t------\t\t--------\t------\n"); - } - //stubManager.Write(i); - - stubManager.Write(Motor_ID[i]); - stubManager.Write("\t\t"); - - var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MIN_SPEED)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MAX_SPEED)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ACC)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_DEC)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KTVAL_HOLD)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KTVAL_RUN)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KTVAL_ACC)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KTVAL_DEC)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_OCD_TH)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STALL_TH)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FS_SPD)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - stubManager.Write("\n\n"); - - } - - - - for (i = Start_index; i < Max_Motor_ID; i++) - { - - if((i%8 ==0) ) - { - stubManager.Write("\n\n"); - - stubManager.Write("MoTor\t\t\tINT_SPD\tST_SLP\t\tSLP_ACC_TON_MIN\tSLP_DEC_TOFF_MIN\n"); - stubManager.Write("-----\t\t\t-------\t------\t\t---------------\t----------------\n"); - } - - stubManager.Write(Motor_ID[i]); - -// stubManager.Write(i); - stubManager.Write("\t\t"); - - var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_INT_SPD)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ST_SLP_T_FAST)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_ACC_TON_MIN)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_DEC_TOFF_MIN)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - stubManager.Write("\n\n"); - - } - - - for (i = Start_index; i < Max_Motor_ID; i++) - { - - if((i%8 ==0) ) - { - stubManager.Write("\n\n"); - - stubManager.Write("MoTor\t\t\tPS01_CONFIG\t\tPS01_STATUS\t\tPS01_GATECFG1\t\tPS01_GATECFG2\n"); - stubManager.Write("-----\t\t\t------------\t\t-----------\t\t-------------\t\t------------\n"); - } - - stubManager.Write(Motor_ID[i]); - stubManager.Write("\t\t"); - - var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_CONFIG)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_STATUS)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG1)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG2)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n\n"); - - - } - - for (i = Start_index; i < Max_Motor_ID; i++) - { - - if((i%8 ==0) ) - { - stubManager.Write("\n\n"); - - stubManager.Write("MoTor\t\t\tABS_POS\tEL_POS\t\tMARK\t\tSPEED\t\tALARM_EN\tK_THERM\tADC_OUT\tDriver_Type\n"); - stubManager.Write("-----\t\t\t-------\t------\t\t----\t\t-----\t\t--------\t--------\t------\t\t---------\n"); - } - - stubManager.Write(Motor_ID[i]); - - stubManager.Write("\t\t"); - - var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ABS_POS)<<24, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_EL_POS)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MARK)<<24, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_SPEED)<<24, 0, 0); - stubManager.WriteHex((response.RecivedData * 1000.0 / 67108.0),4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ALARM_EN)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_K_THERM)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ADC_OUT)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - if( response.RecivedData > 0x15 && response.RecivedData < 0x1c ) - stubManager.Write("\t\tDual_Driver"); - else if ( response.RecivedData > 0x0b && response.RecivedData < 0x12 ) - stubManager.Write("\t\tVolage_Driver"); - else if ( response.RecivedData > 8 && response.RecivedData < 0x0a) - stubManager.Write("\t\tCurrent_Driver"); - else - stubManager.Write("\t\tNo_Driver"); - - stubManager.Write("\n\n"); - - } - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Motor_Get_Param_Horizontal_Printing2.cs b/Software/Stubs Collection/stubs/Motor_Get_Param_Horizontal_Printing2.cs index 09d22dea9..763288603 100644 --- a/Software/Stubs Collection/stubs/Motor_Get_Param_Horizontal_Printing2.cs +++ b/Software/Stubs Collection/stubs/Motor_Get_Param_Horizontal_Printing2.cs @@ -40,7 +40,7 @@ const Int32 x_STATUS = 0x19; //------------------------------- const Int32 x_GET_PARAM = 0x20; //------------------------------- -const Int32 Max_Motor_ID = 25; +const Int32 Max_Motor_ID = 30; @@ -98,22 +98,6 @@ Int32 i = 12; // to run only for specific motor public void OnExecute(StubManager stubManager) { - -stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000380 , 0x06b9); -stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000390 , 0x003f); -stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000550 , 0x0003); -stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000b80 , 0x001f); - - - - - - - - - - - for (i = 0; i < Max_Motor_ID; i++) { @@ -182,9 +166,7 @@ stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000b80 response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ADC_OUT)<<8, 0, 0); stubManager.WriteHex(response.RecivedData,4); - if( response.RecivedData > 0x15 ) - stubManager.Write("\t\tDual_Driver"); - else if ( response.RecivedData > 0x0b) + if( response.RecivedData > 12 ) stubManager.Write("\t\tVolage_Driver"); else if ( response.RecivedData > 8 ) stubManager.Write("\t\tCurrent_Driver"); diff --git a/Software/Stubs Collection/stubs/Motor_Get_Param_Horizontal_Printing5.cs b/Software/Stubs Collection/stubs/Motor_Get_Param_Horizontal_Printing5.cs deleted file mode 100644 index e84562c11..000000000 --- a/Software/Stubs Collection/stubs/Motor_Get_Param_Horizontal_Printing5.cs +++ /dev/null @@ -1,265 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -//unmark Auto logging ! -const Int32 x_POWERSTEP01_CONFIG = 0x1A; -const Int32 x_POWERSTEP01_STATUS = 0x1B; -const Int32 x_POWERSTEP01_GATECFG1 = 0x18; -const Int32 x_POWERSTEP01_GATECFG2 = 0x19; - -const Int32 x_ABS_POS = 0x01; -const Int32 x_EL_POS = 0x02; -const Int32 x_MARK = 0x03; -const Int32 x_SPEED = 0x04; -const Int32 x_ACC = 0x05; -const Int32 x_DEC = 0x06; -const Int32 x_MAX_SPEED = 0x07; -const Int32 x_MIN_SPEED = 0x08; -const Int32 x_FS_SPD = 0x15; -const Int32 x_KVAL_HOLD = 0x09; -const Int32 x_KVAL_RUN = 0x0A; -const Int32 x_KVAL_ACC = 0x0B; -const Int32 x_KVAL_DEC = 0x0C; -const Int32 x_INT_SPD = 0x0D; -const Int32 x_ST_SLP = 0x0E; -const Int32 x_FN_SLP_ACC = 0x0F; -const Int32 x_FN_SLP_DEC = 0x10; -const Int32 x_K_THERM = 0x11; -const Int32 x_ADC_OUT = 0x12; -const Int32 x_OCD_TH = 0x13; -const Int32 x_STALL_TH = 0x14; -const Int32 x_STEP_MODE = 0x16; -const Int32 x_ALARM_EN = 0x17; -const Int32 x_CONFIG = 0x18; -const Int32 x_STATUS = 0x19; -//------------------------------- -const Int32 x_GET_PARAM = 0x20; -//------------------------------- -const Int32 Max_Motor_ID = 25; - - - -string[] Motor_ID = new string[30]; - - -Motor_ID[0] ="DH_CLEANHEAD "; -Motor_ID[1] ="DH_CLEANMECH "; -Motor_ID[2] ="DH_LID "; -Motor_ID[3] ="DRYER_DRIVING"; -Motor_ID[4] ="DRYER_LID "; -Motor_ID[5] ="DRYER_LOADARM"; -Motor_ID[6] ="DISPENSER_1 "; -Motor_ID[7] ="DISPENSER_2 "; -Motor_ID[8] ="DISPENSER_3 "; -Motor_ID[9] ="DISPENSER_4 "; -Motor_ID[10]="DISPENSER_5 "; -Motor_ID[11]="DISPENSER_6 "; -Motor_ID[12]="DISPENSER_7 "; -Motor_ID[13]="DISPENSER_8 "; -Motor_ID[14]="SCREW "; -Motor_ID[15]="WINDER "; -Motor_ID[16]="LDANCER1 "; -Motor_ID[17]="LDANCER2 "; -Motor_ID[18]="LDRIVING "; -Motor_ID[19]="LLODING "; -Motor_ID[20]="LPIVOT "; -Motor_ID[21]="RDANCER "; -Motor_ID[22]="RDRIVING "; -Motor_ID[23]="RLOADARM "; -Motor_ID[24]="RLOADING "; -Motor_ID[25]="SPARE1_1 "; -Motor_ID[26]="SPARE1_2 "; -Motor_ID[27]="SPARE2_1 "; -Motor_ID[28]="SPARE2_2 "; -Motor_ID[29]="SPARE3 "; - - - - - - - - - - - - - - - - - -Int32 i = 12; // to run only for specific motor - -public void OnExecute(StubManager stubManager) -{ - -stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000380 , 0x06b9); -stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000390 , 0x003f); -stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000550 , 0x0003); -stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000b80 , 0x001f); - - - - - - - - - - - - for (i = 0; i < Max_Motor_ID; i++) - { - - if((i%8 ==0) ) - { - stubManager.Write("\n\n"); - stubManager.Write("MoTor\t\t\tMIN_SPEED\tMAX_SPEED\tSTEP_MODE\tACC\t\tDEC\t\tKVAL_HOLD\tKVAL_RUN\tKVAL_ACC\tKVAL_DEC\tOCD_TH\t\tSTALL_TH\tCONFIG\t\tFS_SPD\t\tADC_OUT\tDriver_Type\n"); - stubManager.Write("------\t\t\t--------\t--------\t----------\t---\t\t---\t\t---------\t--------\t--------\t--------\t------\t\t--------\t------\t\t------\t\t------\t\t------\n"); - } - //stubManager.Write(i); - - stubManager.Write(Motor_ID[i]); - stubManager.Write("\t\t"); - - var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MIN_SPEED)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MAX_SPEED)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); stubManager.Write("\t"); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ACC)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_DEC)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_HOLD)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_RUN)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_ACC)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_DEC)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_OCD_TH)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STALL_TH)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_CONFIG)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FS_SPD)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ADC_OUT)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - if( response.RecivedData > 0x15 ) - stubManager.Write("\t\tDual_Driver"); - else if ( response.RecivedData > 0x0b) - stubManager.Write("\t\tVolage_Driver"); - else if ( response.RecivedData > 8 ) - stubManager.Write("\t\tCurrent_Driver"); - else - stubManager.Write("\t\tNo_Driver"); - - - stubManager.Write("\n\n"); - - } - - stubManager.Write("MoTor\t\t\tINT_SPD\tST_SLP\t\tSLP_ACC\tSLP_DEC\tSTATUS\n"); - stubManager.Write("-----\t\t\t-------\t------\t\t-------\t--------\t-----\n"); - - for (i = 0; i < Max_Motor_ID; i++) - { - stubManager.Write(Motor_ID[i]); - -// stubManager.Write(i); - stubManager.Write("\t\t"); - - var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_INT_SPD)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ST_SLP)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_ACC)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_DEC)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STATUS)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n\n"); - - - - } - - stubManager.Write("--------------- New Driver POWERSTEP01 ---------------\n\n"); - stubManager.Write("MoTor\tPS01_CONFIG\t\tPS01_STATUS\t\tPS01_GATECFG1\t\tPS01_GATECFG2\n"); - stubManager.Write("-----\t------------\t\t-----------\t\t-------------\t\t------------\n"); - - for (i = 6; i < 14; i++)//Dispensers only - //for (i = 25; i < 29; i++)//Dispensers only - { - stubManager.Write(i); - stubManager.Write("\t"); - - var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_CONFIG)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_STATUS)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG1)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG2)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n\n"); - } - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Progress_SetRapid.cs b/Software/Stubs Collection/stubs/Progress_SetRapid.cs deleted file mode 100644 index fbe559378..000000000 --- a/Software/Stubs Collection/stubs/Progress_SetRapid.cs +++ /dev/null @@ -1,23 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - - -ProgressRequest progressRequest = new ProgressRequest(); -progressRequest.Amount = 0xE0; -progressRequest.Delay = 0x1; - - var response = stubManager.Run<ProgressResponse>(progressRequest); - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Read Dancer.cs b/Software/Stubs Collection/stubs/Read Dancer.cs index 8fcfc94b0..58f302d53 100644 --- a/Software/Stubs Collection/stubs/Read Dancer.cs +++ b/Software/Stubs Collection/stubs/Read Dancer.cs @@ -12,21 +12,27 @@ using Tango.Stubs; public void OnExecute(StubManager stubManager) { - var response1 = stubManager.ShowResponseWindow("Please Enter Password:"); - if (response1=="Aa123456") - { - stubManager.WriteLine(response1); - + stubManager.RequestTimeout = 2000; + //for (int i = 0; i < 100; i++) + { +// Request ---- +// UInt32 : DancerID + +// Response ---- +// UInt32 : DancerID +// UInt32 : Position +// UInt32 : GeneralStatus +// UInt32 : DetailedStatus + //var response = stubManager.Run<StubDancerPositionResponse>("StubDancerPositionRequest" ,1); - stubManager.RequestTimeout = 2000; - //for (int i = 0; i < 100; i++) - { - var response = stubManager.Run<StubDancerPositionResponse>("StubDancerPositionRequest" ,0); - Thread.Sleep(1000); - response = stubManager.Run<StubDancerPositionResponse>("StubDancerPositionRequest" ,1); - Thread.Sleep(1000); - response = stubManager.Run<StubDancerPositionResponse>("StubDancerPositionRequest" ,2); - Thread.Sleep(1000); - } +//var response = stubManager.Run<StubMotorSpeedResponse>("StubMotorSpeedRequest" ,22); +//var response; +//var response = stubManager.Run<StubMotorStatusResponse>("StubMotorStatusRequest" ,18, true); + var response = stubManager.Run<StubDancerPositionResponse>("StubDancerPositionRequest" ,0); + Thread.Sleep(1000); + response = stubManager.Run<StubDancerPositionResponse>("StubDancerPositionRequest" ,1); + Thread.Sleep(1000); + response = stubManager.Run<StubDancerPositionResponse>("StubDancerPositionRequest" ,2); + Thread.Sleep(1000); } }
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Read Dispensers Serial Num.cs b/Software/Stubs Collection/stubs/Read Dispensers Serial Num.cs deleted file mode 100644 index 934371725..000000000 --- a/Software/Stubs Collection/stubs/Read Dispensers Serial Num.cs +++ /dev/null @@ -1,27 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - uint i; - string serialnum; - - StubDispenserEEpromRequest dispenserEEpromRequest = new StubDispenserEEpromRequest(); - for (i = 0; i<8;i++) - { - dispenserEEpromRequest.DispenserId = i; - dispenserEEpromRequest.BurnRequest = false; - var response = stubManager.Run<StubDispenserEEpromResponse>(dispenserEEpromRequest); - stubManager.Write("Dispenser Serial # read \t"+ (i+1) + " serial number "+ response.DispenserEEprom.DispenserSN +"\n"); - } - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/11.cs b/Software/Stubs Collection/stubs/Scripts/11.cs deleted file mode 100644 index 9b7b1097e..000000000 --- a/Software/Stubs Collection/stubs/Scripts/11.cs +++ /dev/null @@ -1,42 +0,0 @@ -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.Stubs; -using Tango.Stubs; - - -const Int32 x_ABS_POS = 0x01; -const Int32 x_EL_POS = 0x02; -const Int32 x_MARK = 0x03; -const Int32 x_SPEED = 0x04; -const Int32 x_GET_PARAM = 0x20; -const Int32 x_MOVE_PARAM = 0x40; - -const Int32 F1_MOTO_DRYER_LOADARM_A1_TX_00 = 0x60000240 ; -const Int32 F1_MOTO_DRYER_LOADARM_A1_TX_01 = 0x60000242 ; -const Int32 F1_MOTO_DRYER_LOADARM_A1_RX_00 = 0x60000244 ; -const Int32 F1_MOTO_DRYER_LOADARM_A1_RX_01 = 0x60000246 ; - -public void OnExecute(StubManager stubManager) -{ - - - -stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F1_MOTO_DRYER_LOADARM_A1_TX_01,0X4100); -stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F1_MOTO_DRYER_LOADARM_A1_TX_00,32000); - - - - - - - - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/12345.cs b/Software/Stubs Collection/stubs/Scripts/12345.cs deleted file mode 100644 index 354c349cc..000000000 --- a/Software/Stubs Collection/stubs/Scripts/12345.cs +++ /dev/null @@ -1,63 +0,0 @@ -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.Stubs; -using Tango.Stubs; - - -/*** Dryer Motors ***/ -const Int32 F1_MOTO_DRYER_LOADARM_A1_TX_00 = 0x60000240 ; -const Int32 F1_MOTO_DRYER_LOADARM_A1_TX_01 = 0x60000242 ; -const Int32 F1_MOTO_DRYER_LOADARM_A1_RX_00 = 0x60000244 ; -const Int32 F1_MOTO_DRYER_LOADARM_A1_RX_01 = 0x60000246 ; - - -const Int32 x_ABS_POS = 0x01; -const Int32 x_EL_POS = 0x02; -const Int32 x_MARK = 0x03; -const Int32 x_SPEED = 0x04; -const Int32 x_GET_PARAM = 0x20; -const Int32 x_MOVE_PARAM = 0x40; - - - - -public void OnExecute(StubManager stubManager) -{ - -// Request ---- -// UInt32 : Address -// UInt32 : Value - -// Response ---- -// String : Status -// UInt32 : StatusWord - -stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F1_MOTO_DRYER_LOADARM_A1_TX_01,0); -stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F1_MOTO_DRYER_LOADARM_A1_TX_00,(x_GET_PARAM | x_ABS_POS)<<8); - - - -var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_MOTO_DRYER_LOADARM_A1_RX_00); - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_MOTO_DRYER_LOADARM_A1_RX_01); - -stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F1_MOTO_DRYER_LOADARM_A1_TX_01,0); -stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F1_MOTO_DRYER_LOADARM_A1_TX_00,0); - - - -response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_MOTO_DRYER_LOADARM_A1_RX_00); - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_MOTO_DRYER_LOADARM_A1_RX_01); - - - - - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/ArcHead/Write Arc head eeprom.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/ArcHead/Write Arc head eeprom.cs deleted file mode 100644 index 8d0056de2..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/ArcHead/Write Arc head eeprom.cs +++ /dev/null @@ -1,146 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -//---------------------- -const Int32 I2C_ID = 3; //MCU_I2C3 -const Int32 TCA9548A_address = 0xE2; -const Int32 I2C_Slave_Add = 0xA0; // //eeprom address - 32kByte -int Head_Mux_Channel_ID = 4; //Head MUX channel -//---------------------- - -const Int32 SerialNum = 0x01; - - -int enable_channel(int Channel_ID) -{ - uint Const_temp = 0x01; - - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = TCA9548A_address; - - Const_temp = Const_temp << Channel_ID; - stubI2CWriteBytesRequest.BytesTWrite.Add(Const_temp); - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; -} - - -int WriteFlatEpprom(uint I2C_Slave_Add) -{ - uint Page=0; - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write - //-------------------------------------------------------------- - - stubI2CWriteBytesRequest.BytesTWrite.Add(0x33); //header - stubI2CWriteBytesRequest.BytesTWrite.Add(0xcc); - stubI2CWriteBytesRequest.BytesTWrite.Add(0xaa); - stubI2CWriteBytesRequest.BytesTWrite.Add(0x55); - - //stubI2CWriteBytesRequest.BytesTWrite.Add(0x04);//HEAD_TYPE_STAPLE_SPUN - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - Thread.Sleep(100); - - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(92);//Byte 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write - //-------------------------------------------------------------- - - stubI2CWriteBytesRequest.BytesTWrite.Add(0x20); //flat - stubI2CWriteBytesRequest.BytesTWrite.Add(0x00); - stubI2CWriteBytesRequest.BytesTWrite.Add(0x00); - stubI2CWriteBytesRequest.BytesTWrite.Add(0x00); - - //stubI2CWriteBytesRequest.BytesTWrite.Add(0x04);//HEAD_TYPE_STAPLE_SPUN - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - Thread.Sleep(100); - - - - - - return 1; -} - -int adc_set_for_read_ch(uint I2C_Slave_Add, uint Page) -{ - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; -} - -int adc_read_ch(uint I2C_Slave_Add) -{ - StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest(); - stubI2CReadBytesRequest.I2CId = I2C_ID; - stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add + 1; - stubI2CReadBytesRequest.NumberOfBytesToRead = 10; // Number of bytes to read - - var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest); - uint temph=0; - - for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++) - { - temph=response1.ReadBytes[i]; - stubManager.WriteHex(temph,2); - } - - return 1; -} - - -public void OnExecute(StubManager stubManager) -{ - - //enable_all_channel(); - enable_channel(Head_Mux_Channel_ID); // Chanel 0-7 => Disp0enser 0-7 - - for (int i = 0; i<1; i++) - { - - WriteFlatEpprom(I2C_Slave_Add); - Thread.Sleep(10); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet ) - - stubManager.Write("\nPage 0x00 #"); - stubManager.Write(i); - stubManager.Write("\t- The Buffer is: "); - adc_set_for_read_ch(I2C_Slave_Add, 0x00); - //Thread.Sleep(1); //Sleep for 10 milli. - adc_read_ch(I2C_Slave_Add); - - Thread.Sleep(1000); - - } -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/ArcHead/clean_motor_ls.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/ArcHead/clean_motor_ls.cs deleted file mode 100644 index 2a0fc12cf..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/ArcHead/clean_motor_ls.cs +++ /dev/null @@ -1,278 +0,0 @@ -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.Stubs; -using Tango.Stubs; - - -const Int32 LS_FRONT=0X460110; -const Int32 LS_REAR=0X460120; -const Int32 LS_UPPER=0X460140; -const Int32 LS_SPARE=0X460180; - -const Int32 DyeingHeadLid_Motor = 2; - -const Int32 F1_MOTO_DH_LID_A1_TX_00 = 0x600002F0 ; -const Int32 F1_MOTO_DH_LID_A1_TX_01 = 0x600002F2 ; -const Int32 F1_MOTO_DH_LID_A1_RX_00 = 0x600002F4 ; -const Int32 F1_MOTO_DH_LID_A1_RX_01 = 0x600002F6 ; - -//---------------------Start Command ---------------- -const Int32 CMD_RUN = 0; //Run on Pulse Per Secound .positive run Up and negative run Down -const Int32 CMD_STOP= 1; //0;Hard stop(Defualt);1-Soft stop;2-Hard Hiz;3-Soft Hiz -const Int32 CMD_HOME= 2; //Run until home .positive run Up and negative run Down -const Int32 CMD_DLY = 3; //delay in Seconds . -const Int32 CMD_MOVE= 4; //Move step. positive move Up and negative move Down -const Int32 CMD_MAX_SPEED = 5; //set Maximum speed.motor will stop before that command - -const Int32 CMD_LOOP_NM=6; //NUMBER OF counter -const Int32 CMD_LOOP= 7; //jump up(+) or down(-) command u -const Int32 CMD_END = 13; //end loop . - - -const Int32 x_STEP_MODE = 0x16; -const Int32 x_STATUS = 0x19; -const Int32 x_GET_PARAM = 0x20; -const Int32 x_POWERSTEP01_STATUS = 0x1B; - - -//-------------------------------------------- Flow Test Double PBU ------------------------------------------------ - -Int32[] Start_Table = new int [] -{ - CMD_RUN,-40, - CMD_DLY,200, - CMD_STOP,0, - CMD_DLY,10, - CMD_HOME,40, - CMD_END,3, -}; - -//////////////////////////////////// - -public void OnExecute(StubManager stubManager) -{ -Int32 COMMAND=0; -Int32 Data=0; -Int32 Index=0; -Int32 speed=0; -Int32 Loop_cnt=1; -Int32 j=0; - - - - var stopwatch = new Stopwatch(); - stopwatch.Start(); - - long elapsed_time = stopwatch.ElapsedMilliseconds; - stubManager.WriteLine(elapsed_time); - - while (j!=-1) - { - { - COMMAND=Start_Table[j]; - Data=Start_Table[j+1]; - - switch (COMMAND) - { - case CMD_RUN: - stubManager.WriteLine("CMD_RUN"); - Motor_Run(Data); - break; - - case CMD_STOP: - stubManager.WriteLine("CMD_stop"); - Motor_Stop(Data); - break; - - case CMD_DLY: - stubManager.WriteLine("CMD_delay"); - - for (;Data>0;Data--) - { - Thread.Sleep(100); //100msec delay - stubManager.WriteLine("CMD_delay " + Data ); - } - break; - - - case CMD_MOVE: - stubManager.WriteLine("CMD_move"); - - Motor_Move(Data); - break; - - case CMD_END: - stubManager.WriteLine("CMD_end"); - - j=-3; - break; - - case CMD_MAX_SPEED: - stubManager.WriteLine("CMD_MAX_SPEED"); - - Motor_Max_speed(Data); - break; - - case CMD_HOME: - stubManager.WriteLine("CMD_home"); - - Move_Home(Data); - break; - - - case CMD_LOOP_NM: - stubManager.WriteLine("LOOP_NM" + Data ); - - Loop_cnt=Data-1; - break; - - case CMD_LOOP: - stubManager.WriteLine("CMD_loop"); - - if (Loop_cnt!=0) - { - j = j+2*Data; - Loop_cnt-- ; - } - break; - - default: - break; - - } - - j = j + 2; - - - } - - } - -} -Int32 Motor_Max_speed(Int32 speed) -{ - UInt32 i=Convert.ToUInt32((speed *4/61)*256*256 ) ; - stubManager.WriteHex(i,8); - - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor,0); //hold motor - - - Motor_SetParam(F1_MOTO_DH_LID_A1_TX_01,F1_MOTO_DH_LID_A1_TX_00,0x07,i); //set max speed - - return 1; -} - - -int Motor_SetParam(Int32 HighAdr, Int32 LowAdr, Int32 ParaAddr, uint ParaData1) -{ - - Int32 Temp = 0; - Temp = (ParaAddr << 8 ) + ( (Int32) ParaData1 >> 24); - - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,HighAdr, (Temp & 0xffff)); - Temp = ((Int32)ParaData1 >> 8) & 0xffff; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,LowAdr, (Temp)); - - return 1; -} - -Int32 Move_Home(Int32 speed) -{ - Int32 Bit = 1; - if (speed <0 ) - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DyeingHeadLid_Motor, false, (-speed) ); - else - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DyeingHeadLid_Motor, true, speed); - int i=0; - while ((Bit != 0x0)&& (i<20000) ) //wait until Limit Switch or timeout 200*50msec=10sec - { - Bit=read_pio (LS_FRONT); // read LS_FRONT - Thread.Sleep(20); - i++; - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor,0); //hold motor - return 0; -} - -Int32 read_pio(Int32 i2c_input) -{ - Int32 temp=0; - var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,i2c_input); // read break - - temp = (Int32) (response.Progress); - stubManager.WriteHex(temp, 4); - stubManager.WriteLine(" "); - temp =temp & (i2c_input& 0xff); //if break ok - - return temp; -} - - - -////////////////////////////////////////////////////////////// -Int32 Motor_Move (Int32 position) - - { - Int32 x=16; - var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,DyeingHeadLid_Motor, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0); - - response.RecivedData=response.RecivedData & 0x0007; - if (response.RecivedData == 0) - x=1; - if (response.RecivedData == 1) - x=2; - if (response.RecivedData == 2) - x=4; - if (response.RecivedData == 3) - x=8; - - - int i=0; - if (position<0 ) - stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,DyeingHeadLid_Motor, false, (-position * x) ); - else - stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,DyeingHeadLid_Motor, true, position * x); - - Thread.Sleep(100); //100msec delay - - while (i==0) - { - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,DyeingHeadLid_Motor, (x_GET_PARAM | x_POWERSTEP01_STATUS)<<16, 0, 0); - - stubManager.WriteHex(response.RecivedData,4); - response.RecivedData=response.RecivedData & 0x0002; - if (response.RecivedData==0x0002) - i=1; - Thread.Sleep(100); //100msec delay - - - } - return 0; - } - -////////////////////////////////////////////////////////////// -Int32 Motor_Run (Int32 speed) - - { - if (speed<0 ) - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DyeingHeadLid_Motor, false, (-speed) ); - else - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DyeingHeadLid_Motor, true, speed); - return 0; - } - -//--------------------------------------- - - Int32 Motor_Stop(Int32 Stop_Value ) -{ - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor, Stop_Value); - return 1; -} - diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser ByPass - getout from loewer safety.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser ByPass - getout from loewer safety.cs deleted file mode 100644 index 34dce79fe..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser ByPass - getout from loewer safety.cs +++ /dev/null @@ -1,46 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - UInt32 Dispenser_ID = 3; //Software Dispensers 0..7, BP Dispensers 1..8 (4 for bp disp 5) - - stubManager.Write("ByPass + TestRelay + read inputs "); - stubManager.WriteLine(""); - var response = stubManager.Run<StubDispenserResponse>("StubDispenserRequest" ,Dispenser_ID, true, false, 0, 0);//ByPass + read inputs - stubManager.Write("MSB for Disp_UP, LSB for Disp_Down "); - stubManager.WriteHex((response.DispenserPosition),4); - stubManager.WriteLine(""); - stubManager.Write("MSB for Realy_On, LSB for Over_Press "); - stubManager.WriteHex((response.InkWorningLevel),4); - stubManager.WriteLine(""); - stubManager.WriteLine("----"); - stubManager.WriteLine(""); - - stubManager.Run("StubMotorRunRequest" ,(Dispenser_ID + 6), true, 1200 );//Dispenser ID -> motor ID - - Thread.Sleep(30000); //Sleep - stubManager.Run("StubMotorStopRequest" ,15, 3); - - stubManager.Write("Remove ByPass ( + read inputs) "); - stubManager.WriteLine(""); - response = stubManager.Run<StubDispenserResponse>("StubDispenserRequest" ,Dispenser_ID, false, false, 0, 0);// read inputs - stubManager.Write("MSB for Disp_UP, LSB for Disp_Down "); - stubManager.WriteHex((response.DispenserPosition),4); - stubManager.WriteLine(""); - stubManager.Write("MSB for Realy_On, LSB for Over_Press "); - stubManager.WriteHex((response.InkWorningLevel),4); - stubManager.WriteLine(""); - stubManager.WriteLine("----"); - stubManager.WriteLine(""); - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser ByPass - getout from upper safety.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser ByPass - getout from upper safety.cs deleted file mode 100644 index 1887d433c..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser ByPass - getout from upper safety.cs +++ /dev/null @@ -1,46 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - UInt32 Dispenser_ID = 1; //Software Dispensers 0..7, BP Dispensers 1..8 (4 for bp disp 5) - - stubManager.Write("ByPass + TestRelay + read inputs "); - stubManager.WriteLine(""); - var response = stubManager.Run<StubDispenserResponse>("StubDispenserRequest" ,Dispenser_ID, true, false, 0, 0);//ByPass + read inputs - stubManager.Write("MSB for Disp_UP, LSB for Disp_Down "); - stubManager.WriteHex((response.DispenserPosition),4); - stubManager.WriteLine(""); - stubManager.Write("MSB for Realy_On, LSB for Over_Press "); - stubManager.WriteHex((response.InkWorningLevel),4); - stubManager.WriteLine(""); - stubManager.WriteLine("----"); - stubManager.WriteLine(""); - - stubManager.Run("StubMotorRunRequest" ,(Dispenser_ID + 6), false, 1200 );//Dispenser ID -> motor ID - - Thread.Sleep(30000); //Sleep - stubManager.Run("StubMotorStopRequest" ,15, 3); - - stubManager.Write("Remove ByPass ( + read inputs) "); - stubManager.WriteLine(""); - response = stubManager.Run<StubDispenserResponse>("StubDispenserRequest" ,Dispenser_ID, false, false, 0, 0);// read inputs - stubManager.Write("MSB for Disp_UP, LSB for Disp_Down "); - stubManager.WriteHex((response.DispenserPosition),4); - stubManager.WriteLine(""); - stubManager.Write("MSB for Realy_On, LSB for Over_Press "); - stubManager.WriteHex((response.InkWorningLevel),4); - stubManager.WriteLine(""); - stubManager.WriteLine("----"); - stubManager.WriteLine(""); - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser_LimitSwitch.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser_LimitSwitch.cs index 7eb048556..90ad540f9 100644 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser_LimitSwitch.cs +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser_LimitSwitch.cs @@ -37,8 +37,6 @@ int LimitSW_Dispenser(Int32 Fpga, Int32 Adr, int DispenserNo) counter = counter + 1; } Thread.Sleep(100); - Temp = RetVal.Value; - } diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser_PressureSensor.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser_PressureSensor.cs index 342d2fdb2..11a419576 100644 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser_PressureSensor.cs +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser_PressureSensor.cs @@ -27,7 +27,7 @@ public void OnExecute(StubManager stubManager) for (int i=2; i<10; i++) { - Thread.Sleep(100); + Thread.Sleep(1000); var response = stubManager.Run<StubIntADCReadResponse>("StubIntADCReadRequest" ,i); stubManager.Write("\nADC VALUE, DISPENSER "); stubManager.Write(i-1); stubManager.Write("\t"); stubManager.WriteHex(response.SamplingInBits, 4); stubManager.Write("\t"); stubManager.Write(response.VoltageSamplingMv); stubManager.Write(" mV"); } diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Blowe_RMO_LOG.CSV b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Blowe_RMO_LOG.CSV deleted file mode 100644 index c91b21308..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Blowe_RMO_LOG.CSV +++ /dev/null @@ -1,4 +0,0 @@ -,RPM -0,2675 -1,2688 -2,2688 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test.cs deleted file mode 100644 index c88a17313..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test.cs +++ /dev/null @@ -1,204 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -Int32 position_32bit=0; -Int32 last_14bit_position; - -const Int32 HomeStart=1024; -const Int32 DrierLoadingArm_Motor = 5; -const Int32 NM_ROUND =30; -public void OnExecute(StubManager stubManager) -{ - Test_Load_Arm(); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3); - - -} - -bool Encoder_Dryer_Exist() -{ - Int32 temp; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190); - var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192); - - temp = Convert.ToInt32 (response.Value & 0x0300); - if (temp==0) - return true; - else - return false; -} - - - -void ReadEncoder_Dryer() -{ - Int32 temp; - Int32 temp1; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190); - var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192); - - temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff)); - if (temp>last_14bit_position) - { - temp1=temp-last_14bit_position; - position_32bit=position_32bit+temp1; - if (temp1>0x2000) - position_32bit=position_32bit-0x4000; - } - else if (temp<last_14bit_position) - - { - temp1=last_14bit_position-temp; - position_32bit=position_32bit-temp1; - if (temp1>0x2000) - position_32bit=position_32bit+0x4000; - } - - last_14bit_position=temp; - - return ; -} - -int Test_Load_Arm() -{ - int Loop_Nm = 1; - - Int32 temp3=0; - Int32 j=0; - Int32 i=0; - - if (!Encoder_Dryer_Exist()) - { - - stubManager.Write("Encoder of Dryer Fail \n"); - return 0; - - } - - var response = stubManager.ShowResponseWindow("Enter Loop Number for Dryer.", ""); - //stubManager.WriteLine(response); - Loop_Nm = int.Parse(response); - - ReadEncoder_Dryer(); - position_32bit=0; - ReadEncoder_Dryer(); - Int32 temp=position_32bit; - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, false, 100);//40 - Thread.Sleep(50); -// temp=ReadEncoder_Dryer(); - while ((temp3<2)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min - { - i++; - Thread.Sleep(50); - ReadEncoder_Dryer(); -// stubManager.Write("position_32bit " + position_32bit +"\t"); - - if (Math.Abs(position_32bit)> (50*0x4000)) - temp3=3; - if ((position_32bit-temp)>20) - temp3++; -// stubManager.Write("Temp " + temp +"\n"); - temp=position_32bit; -// stubManager.Write("Temp3 " + temp3 +"\n"); - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3); - - DialogResult result1 = MessageBox.Show("Arm Motor rotate ?", "Warning",MessageBoxButtons.YesNo); - if(result1 == DialogResult.No) - { - - stubManager.Write("Arm Motor Not rotate\n"); - return 0; - } - - DialogResult result2 = MessageBox.Show("Did Arm Motor arrive to mechanical stopper?", "Warning",MessageBoxButtons.YesNo); - if(result2 == DialogResult.No) - { - - stubManager.Write("Arm Motor Not arrive to mecahnicl stopper \n"); - return 0; - } - position_32bit=0; - -for (int loop=0;i<Loop_Nm;i++) - - { - stubManager.Write("Loop Nm " + (loop+1) +" strat up posision \n"); - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, true, 200); -// Thread.Sleep(50); - i=0; - temp3=0; - - - while ((temp3<3)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min - { - Thread.Sleep(50); - i++; - ReadEncoder_Dryer(); - - if (Math.Abs(position_32bit)> (NM_ROUND*0x4000)) - temp3=3; - if ((temp-position_32bit)>20) - temp3++; - temp=position_32bit; - - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3); - - DialogResult result5 = MessageBox.Show("Did Arm Motor make 30 rounds? See picture on document", "Warning",MessageBoxButtons.YesNo); - if(temp3 >2 ) - { - stubManager.Write("Arm Motor not make 30 rounds\n"); - return 0; - } - - Thread.Sleep(50); - stubManager.Write("Loop Nm " + (loop+1) +" strat down posision \n"); - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, false, 200); - i=0; - temp3=0; - - while ((temp3<3)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min - { - Thread.Sleep(50); - i++; - ReadEncoder_Dryer(); - - if (Math.Abs(position_32bit)< HomeStart) - temp3=3; - if ((position_32bit-temp)>20) - temp3++; - temp=position_32bit; - - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3); - - DialogResult result3 = MessageBox.Show("Did Arm Motor make 30 rounds? See picture on document", "Warning",MessageBoxButtons.YesNo); - if(temp3 >2 ) - { - stubManager.Write("Arm Motor not make 30 rounds\n"); - return 0; - } - Thread.Sleep(50); - - - - - } - return 0; -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test1.cs deleted file mode 100644 index c4c3f13f4..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test1.cs +++ /dev/null @@ -1,217 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -Int32 position_32bit=0; -Int32 last_14bit_position; - -const Int32 HomeStart=2048; -const Int32 DrierLoadingArm_Motor = 5; -const Int32 NM_ROUND =30; -public void OnExecute(StubManager stubManager) -{ - Test_Load_Arm(); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3); - - -} - -bool Encoder_Dryer_Exist() -{ - Int32 temp; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190); - var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192); - - temp = Convert.ToInt32 (response.Value & 0x0300); - if (temp==0) - return true; - else - return false; -} - - - -void ReadEncoder_Dryer() -{ - Int32 temp; - Int32 temp1; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190); - var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192); - - temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff)); - if (temp>last_14bit_position) - { - temp1=temp-last_14bit_position; - position_32bit=position_32bit+temp1; - if (temp1>0x2000) - position_32bit=position_32bit-0x4000; - } - else if (temp<last_14bit_position) - - { - temp1=last_14bit_position-temp; - position_32bit=position_32bit-temp1; - if (temp1>0x2000) - position_32bit=position_32bit+0x4000; - } - - last_14bit_position=temp; - - return ; -} - -int Test_Load_Arm() -{ - int Loop_Nm = 1; - - Int32 temp3=0; - Int32 j=0; - Int32 i=0; - - if (!Encoder_Dryer_Exist()) - { - - stubManager.Write("Encoder of Dryer Fail \n"); - return 0; - - } - - var response = stubManager.ShowResponseWindow("Enter Loop Number for Dryer.", ""); - //stubManager.WriteLine(response); - Loop_Nm = int.Parse(response); - - ReadEncoder_Dryer(); - position_32bit=0; - ReadEncoder_Dryer(); - Int32 temp=position_32bit; - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, false, 100);//40 - Thread.Sleep(50); -// temp=ReadEncoder_Dryer(); - while ((temp3<2)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min - { - i++; - Thread.Sleep(30); - ReadEncoder_Dryer(); -// stubManager.Write("position_32bit " + position_32bit +"\t"); - - if (Math.Abs(position_32bit)> (50*0x4000)) - temp3=3; - if ((position_32bit-temp)>20) - temp3++; -// stubManager.Write("Temp " + temp +"\n"); - temp=position_32bit; -// stubManager.Write("Temp3 " + temp3 +"\n"); - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3); - - DialogResult result1 = MessageBox.Show("Arm Motor rotate ?", "Warning",MessageBoxButtons.YesNo); - if(result1 == DialogResult.No) - { - - stubManager.Write("Arm Motor Not rotate\n"); - return 0; - } - - DialogResult result2 = MessageBox.Show("Did Arm Motor arrive to mechanical stopper?", "Warning",MessageBoxButtons.YesNo); - if(result2 == DialogResult.No) - { - - stubManager.Write("Arm Motor Not arrive to mecahnicl stopper \n"); - return 0; - } - - Thread.Sleep(1000); - - ReadEncoder_Dryer(); - position_32bit=0; - ReadEncoder_Dryer(); - position_32bit=0; -for (int loop=0;loop<Loop_Nm;loop++) - - { - stubManager.Write("Loop Nm " + (loop+1) +" strat up posision \n"); - temp=position_32bit; - stubManager.Write("position_32bit = " + position_32bit +"\n"); - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, true, 200); -// Thread.Sleep(50); - i=0; - temp3=-2; - - - while ((temp3<2)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min - { - Thread.Sleep(30); - i++; - ReadEncoder_Dryer(); - - if (Math.Abs(position_32bit)> (NM_ROUND*0x4000)) - temp3=3; - if ((temp-position_32bit)>20) - temp3++; - temp=position_32bit; - -// stubManager.Write("position_32bit = " +position_32bit +"\ttemp3 = " + temp3 +"\n"); - - - - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 0); - - if(temp3 !=3 ) - { - stubManager.Write("Arm Motor not make 30 rounds\n"); - return 0; - } - - Thread.Sleep(1000); - stubManager.Write("Loop Nm " + (loop+1) +" strat down posision \n"); - stubManager.Write("position_32bit = " + position_32bit +"\n"); - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, false, 200); - i=0; - temp3=-2; - temp=position_32bit; - - while ((temp3<2)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min - { - Thread.Sleep(50); - i++; - ReadEncoder_Dryer(); - - if (Math.Abs(position_32bit)< HomeStart) - temp3=3; - if ((position_32bit-temp)>20) - temp3++; - temp=position_32bit; -// stubManager.Write("position_32bit = " +position_32bit +"\ttemp3 = " + temp3 +"\n"); - - - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 0); - - if(temp3 !=3 ) - { - stubManager.Write("Arm Motor not make 30 rounds\n"); - return 0; - } - Thread.Sleep(1000); - - - - - } - return 0; -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test2.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test2.cs deleted file mode 100644 index 7670a8708..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test2.cs +++ /dev/null @@ -1,227 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -Int32 position_32bit=0; -Int32 last_14bit_position; - -const Int32 HomeStart=2048; -const Int32 DrierLoadingArm_Motor = 5; -const Int32 NM_ROUND =30; -public void OnExecute(StubManager stubManager) -{ - Test_Load_Arm(); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3); - - -} - -bool Encoder_Dryer_Exist() -{ - Int32 temp; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190); - var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192); - - temp = Convert.ToInt32 (response.Value & 0x0300); - if (temp==0) - return true; - else - return false; -} - - - -void ReadEncoder_Dryer() -{ - Int32 temp; - Int32 temp1; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190); - var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192); - - temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff)); - if (temp>last_14bit_position) - { - temp1=temp-last_14bit_position; - position_32bit=position_32bit+temp1; - if (temp1>0x2000) - position_32bit=position_32bit-0x4000; - } - else if (temp<last_14bit_position) - - { - temp1=last_14bit_position-temp; - position_32bit=position_32bit-temp1; - if (temp1>0x2000) - position_32bit=position_32bit+0x4000; - } - - last_14bit_position=temp; - - return ; -} - -int Test_Load_Arm() -{ - int Loop_Nm = 1; - - Int32 temp3=0; - Int32 j=0; - Int32 i=0; - - if (!Encoder_Dryer_Exist()) - { - - stubManager.Write("Encoder of Dryer Fail \n"); - return 0; - - } - - var response = stubManager.ShowResponseWindow("Enter Loop Number for Dryer.", ""); - //stubManager.WriteLine(response); - Loop_Nm = int.Parse(response); - - ReadEncoder_Dryer(); - position_32bit=0; - ReadEncoder_Dryer(); - Int32 temp=position_32bit; - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, false, 100);//40 - Thread.Sleep(50); -// temp=ReadEncoder_Dryer(); - while ((temp3<2)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min - { - i++; - Thread.Sleep(30); - ReadEncoder_Dryer(); -// stubManager.Write("position_32bit " + position_32bit +"\t"); - - if (Math.Abs(position_32bit)> (50*0x4000)) - temp3=3; - if ((position_32bit-temp)>20) - temp3++; -// stubManager.Write("Temp " + temp +"\n"); - temp=position_32bit; -// stubManager.Write("Temp3 " + temp3 +"\n"); - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3); - - DialogResult result1 = MessageBox.Show("Arm Motor rotate ?", "Warning",MessageBoxButtons.YesNo); - if(result1 == DialogResult.No) - { - - stubManager.Write("Arm Motor Not rotate\n"); - return 0; - } - - DialogResult result2 = MessageBox.Show("Did Arm Motor arrive to mechanical stopper?", "Warning",MessageBoxButtons.YesNo); - if(result2 == DialogResult.No) - { - - stubManager.Write("Arm Motor Not arrive to mecahnicl stopper \n"); - return 0; - } - - Thread.Sleep(1000); - stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,5, true, 50); - Thread.Sleep(1000); - - ReadEncoder_Dryer(); - position_32bit=0; - ReadEncoder_Dryer(); - position_32bit=0; -for (int loop=0;loop<Loop_Nm;loop++) - - { - stubManager.Write("Loop Nm " + (loop+1) +" strat up posision \n"); - temp=position_32bit; - stubManager.Write("position_32bit = " + position_32bit +"\n"); - -// stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, true, 200); - stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,5, true, 7680 * NM_ROUND); - -// Thread.Sleep(50); - i=0; - temp3=-2; - - - while ((temp3<2)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min - { - Thread.Sleep(30); - i++; - ReadEncoder_Dryer(); - -// if (Math.Abs(position_32bit)> (NM_ROUND*0x4000)) -// temp3=3; - if (temp==position_32bit) - temp3++; - temp=position_32bit; - -// stubManager.Write("position_32bit = " +position_32bit +"\ttemp3 = " + temp3 +"\n"); - - - - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3); - - if (Math.Abs(position_32bit - NM_ROUND*0x4000 )> 500) - - { - stubManager.Write("Arm Motor not make 30 rounds\n"); - return 0; - } - - - Thread.Sleep(1000); - stubManager.Write("Loop Nm " + (loop+1) +" strat down posision \n"); - stubManager.Write("position_32bit = " + position_32bit +"\n"); - -// stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, false, 200); - stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,5, false, 7680 * NM_ROUND); - i=0; - temp3=-2; - temp=position_32bit; - - while ((temp3<2)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min - { - Thread.Sleep(50); - i++; - ReadEncoder_Dryer(); - - // if (Math.Abs(position_32bit)< HomeStart) - // temp3=3; - if (position_32bit==temp) - temp3++; - temp=position_32bit; -// stubManager.Write("position_32bit = " +position_32bit +"\ttemp3 = " + temp3 +"\n"); - - - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3); - - - if (Math.Abs(position_32bit )> 500) - - { - stubManager.Write("Arm Motor not make 30 rounds\n"); - return 0; - } - - Thread.Sleep(1000); - - - - - } - return 0; -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test3.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test3.cs deleted file mode 100644 index 7a7542ab7..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test3.cs +++ /dev/null @@ -1,229 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -Int32 position_32bit=0; -Int32 last_14bit_position; - -const Int32 HomeStart=2048; -const Int32 DrierLoadingArm_Motor = 5; -const Int32 NM_ROUND =30; -public void OnExecute(StubManager stubManager) -{ - Test_Load_Arm(); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 1); - - -} - -bool Encoder_Dryer_Exist() -{ - Int32 temp; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190); - var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192); - - temp = Convert.ToInt32 (response.Value & 0x0300); - if (temp==0) - return true; - else - return false; -} - - - -void ReadEncoder_Dryer() -{ - Int32 temp; - Int32 temp1; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190); - var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192); - - temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff)); - if (temp>last_14bit_position) - { - temp1=temp-last_14bit_position; - position_32bit=position_32bit+temp1; - if (temp1>0x2000) - position_32bit=position_32bit-0x4000; - } - else if (temp<last_14bit_position) - - { - temp1=last_14bit_position-temp; - position_32bit=position_32bit-temp1; - if (temp1>0x2000) - position_32bit=position_32bit+0x4000; - } - - last_14bit_position=temp; - - return ; -} - -int Test_Load_Arm() -{ - int Loop_Nm = 1; - - Int32 temp3=0; - Int32 j=0; - Int32 i=0; - - if (!Encoder_Dryer_Exist()) - { - - stubManager.Write("Encoder of Dryer Fail \n"); - return 0; - - } - - var response = stubManager.ShowResponseWindow("Enter Loop Number for Dryer.", ""); - //stubManager.WriteLine(response); - Loop_Nm = int.Parse(response); - - ReadEncoder_Dryer(); - position_32bit=0; - ReadEncoder_Dryer(); - Int32 temp=position_32bit; - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, false, 100);//40 - Thread.Sleep(50); -// temp=ReadEncoder_Dryer(); - while ((temp3<2)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min - { - i++; - Thread.Sleep(30); - ReadEncoder_Dryer(); -// stubManager.Write("position_32bit " + position_32bit +"\t"); - - if (Math.Abs(position_32bit)> (50*0x4000)) - temp3=3; - if ((position_32bit-temp)>20) - temp3++; -// stubManager.Write("Temp " + temp +"\n"); - temp=position_32bit; -// stubManager.Write("Temp3 " + temp3 +"\n"); - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3); - - DialogResult result1 = MessageBox.Show("Arm Motor rotate ?", "Warning",MessageBoxButtons.YesNo); - if(result1 == DialogResult.No) - { - - stubManager.Write("Arm Motor Not rotate\n"); - return 0; - } - - DialogResult result2 = MessageBox.Show("Did Arm Motor arrive to mechanical stopper?", "Warning",MessageBoxButtons.YesNo); - if(result2 == DialogResult.No) - { - - stubManager.Write("Arm Motor Not arrive to mecahnicl stopper \n"); - return 0; - } - - Thread.Sleep(1000); - stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,5, true, 50); - Thread.Sleep(1000); - - ReadEncoder_Dryer(); - position_32bit=0; - ReadEncoder_Dryer(); - position_32bit=0; -for (int loop=0;loop<Loop_Nm;loop++) - - { - stubManager.Write("Loop Nm " + (loop+1) +" strat up posision \n"); - temp=position_32bit; - stubManager.Write("position_32bit = " + position_32bit +"\n"); - -// stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, true, 200); - stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,5, true, 7680 * NM_ROUND); - -// Thread.Sleep(50); - i=0; - temp3=-2; - - - while ((temp3<2)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min - { - Thread.Sleep(30); - i++; - ReadEncoder_Dryer(); - -// if (Math.Abs(position_32bit)> (NM_ROUND*0x4000)) -// temp3=3; - if (temp==position_32bit) - temp3++; - temp=position_32bit; - -// stubManager.Write("position_32bit = " +position_32bit +"\ttemp3 = " + temp3 +"\n"); - - - - } - Thread.Sleep(1000); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 1); - - if (Math.Abs(position_32bit - NM_ROUND*0x4000 )> 500) - - { - stubManager.Write("Arm Motor not make 30 rounds\n"); - return 0; - } - - - Thread.Sleep(1000); - stubManager.Write("Loop Nm " + (loop+1) +" strat down posision \n"); - stubManager.Write("position_32bit = " + position_32bit +"\n"); - -// stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, false, 200); - stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,5, false, 7680 * NM_ROUND); - i=0; - temp3=-2; - temp=position_32bit; - - while ((temp3<2)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min - { - Thread.Sleep(50); - i++; - ReadEncoder_Dryer(); - - // if (Math.Abs(position_32bit)< HomeStart) - // temp3=3; - if (position_32bit==temp) - temp3++; - temp=position_32bit; -// stubManager.Write("position_32bit = " +position_32bit +"\ttemp3 = " + temp3 +"\n"); - - - } - Thread.Sleep(1000); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 1); - - - if (Math.Abs(position_32bit )> 500) - - { - stubManager.Write("Arm Motor not make 30 rounds\n"); - return 0; - } - - Thread.Sleep(1000); - - - - - } - return 0; -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Jig.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Jig.cs deleted file mode 100644 index 42f35b8ef..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Jig.cs +++ /dev/null @@ -1,542 +0,0 @@ -using System; -using System.Text; -using System.IO; -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.Stubs; -using Tango.Stubs; - - -include "..\..\Defines\Tango_Defines_Basic.cs" -include "Tango_Defines_LimitSwitch.cs" -include "Tango_Defines_SSR.cs" -include "Tango_Defines_Tacho.cs" - - -const int UNIT_UNDER_TEST=3+1+2+6; -//-------------------------------------------------------------------------------- -string path1="P:\\Scripts\\Assemblies\\Dryer\\DryerLog\\"; -string path2="C:\\DryerLog\\"; - -string File_Name1 ; -string Status; -//--------------------------- -Int32 last_14bit_position; -Int32 position_32bit=0; -float [] DryerTemp = new float[3] ; - - -string [,] Units_status = new string[UNIT_UNDER_TEST,2] { - {"Lid_Motor","Not Test"}, - {"LS_Lid_Open","Not Test"}, - {"LS_Lid_Close","Not Test"}, - {"DRIVING_Motor","Not Test"}, - {"SSI_Encoder","Not Test"}, - {"LoadArm_Motor","Not Test"}, - {"Blower_test","Not Test"}, - {"Air_PT100_test","Not Test"}, - {"Main_PT100_test","Not Test"}, - {"Sec.PT100","Not Test"}, - {"SSR1_heater","Not Test"}, - {"SSR2_heater","Not Test"}, - }; - - - -//----------------------------------------------------- -string Dryer_Sn; -//-------------------------------------------------------------------------------- - -public void OnExecute(StubManager stubManager) -{ -string path=""; - Form form1 = new Form(); - -// Set the caption bar text of the form. - form1.TopMost = true; - form1.Text = "Dryer Test"; - form1.FormBorderStyle = FormBorderStyle.FixedDialog; - form1.MaximizeBox = false; - form1.MinimizeBox = false; - form1.StartPosition = FormStartPosition.CenterScreen; - form1.AutoSize = true; - form1.AutoSizeMode = AutoSizeMode.GrowAndShrink; -// Create buttons to Run. - Button button1 = new Button () - { - Width = 100, - Height = 100, - }; - button1.Text = "Run"; - button1.Location = new Point (40, 100); - form1.Controls.Add(button1); -//-----Dryer Serial Number ----------- - - Label Label1 = new Label () - { - Width = 150, - Height = 20, - Text =" Dryer S/N" - }; - Label1.Location = new Point (30, 10); - form1.Controls.Add(Label1); - TextBox TextBox1 = new TextBox () - { - Width = 100, - Height = 10, - Text ="" - }; - TextBox1.Location = new Point (40, 40); - form1.Controls.Add(TextBox1); - //----------LOCATION---------- - - Label Label3 = new Label () - { - Width = 150, - Height = 20, - Text ="LOCATION" - }; -Label3.Location = new Point (350, 10); - form1.Controls.Add(Label3); - - - -TextBox TextBox3 = new TextBox () - { - Width = 100, - Height = 10, - Text ="" - }; -TextBox3.Location = new Point (360, 40); - form1.Controls.Add(TextBox3); - -//-------------------------------------------------------------------------------- - - stubManager.Write("Counter is 2 \n"); - - button1.Click += (_,__) => - - { -if (!Directory.Exists(path1)) - { - path=path2; - if (!Directory.Exists(path2)) - Directory.CreateDirectory(path2); - } -else -path=path1; - - -File_Name1=path + TextBox1.Text +"_Dryer_" + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".log" ; - - -stubManager.Write(File_Name1 +"\n"); -stubManager.WriteToFile(File_Name1,DateTime.Now +" " ); -stubManager.Write(DateTime.Now +"\n" ); - -stubManager.AppendToFile(File_Name1,"Dryer Test Report" ); -stubManager.Write("Dryer Test Report\n" ); - -stubManager.AppendToFile(File_Name1,"Dryer S/N: \t" + TextBox1.Text ); -stubManager.Write("Dryer S/N:" + TextBox1.Text +"\n" ); - - -stubManager.AppendToFile(File_Name1,"Location:\t" + TextBox3.Text ); -stubManager.Write("Location:" + TextBox3.Text +"\n" ); - - - -Label Label5 = new Label () - { - Width = 120, - Height =100, - Text = "" - }; -Label5.Location = new Point (300, 100); -Label5.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; - -Label5.Text="Pros"; -Label5.Font = new Font("Arial", 24,FontStyle.Bold); -form1.Controls.Add(Label5); - - -//------------------------------- start test ----------- -// Test_LId(); -// Test_motor_driving(); -// Test_Load_Arm (); - Test_Blower_heaters_pt100(); - Status=write_to_file(); - - Label5.Text=Status; - TextBox1.Text=""; -}; - - form1.ShowDialog(); - - return ; - } -//------------------------------------------ -int Test_Blower_heaters_pt100() -{ - - float ftemp=0; - float ftemp1=0; - - SetBit(FPGA1,0x3d2,5,1); //turn off Blower - Thread.Sleep(500); - - var RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg8, 0); - - DialogResult result = MessageBox.Show("Close Dryer Door", "Warning"); - RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg8, 0); - if(RetVal.Value>20) - { - Units_status[6,1]="Fail"; - stubManager.Write("Error,Fan rotate\n"); - return 0; - } - - SetBit(FPGA1,0x3d2,4,1); //Dir - SetBit(FPGA1,0x3d2,3,1); //Torqer High - SetBit(FPGA1,0x3d2,5,0); //turn on Blower - - const int LOW = 70;//0 - 100% - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000400 | 0x112, 0xFF);//Freq 8 bit - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000400 | 0x3EC, LOW+1);//Low 8 bit - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000400 | 0x3EE, 101 - LOW);//High 8 bit - - Thread.Sleep(1000); - RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg8, 0); - stubManager.Write("blower Speed- " + RetVal.Value + "\n"); - if ((RetVal.Value<150)||(RetVal.Value>250) ) - { - Units_status[6,1]="Fail"; - stubManager.Write("Error,Fan rotate\n"); - return 0; - } - Units_status[6,1]="Pass"; - - - stubManager.Write("Temp Befor heating \n"); - if (test_pt100()!=0) - return 0; - -float temp=0; -float temp1=4096*95*5; - - //Write GPO_DRYER_SSR1_CTRL SSR/SSR no. 1 - SetBit (FPGA2, F2_CTRL, 10, 1); //turn SSR1 on - stubManager.Write("\tTesting SSR no. 1\t"); - Thread.Sleep(1000); -var response1 = stubManager.Run<StubIntADCReadResponse>("StubIntADCReadRequest" ,16); - temp=Convert.ToUInt32 (response1.SamplingInBits); - temp=temp*800*3*100; - temp=temp/(4096*95*50); - stubManager.Write("Current = "+ temp + "A\n"); - if ((temp>6) || (temp<3)) - Units_status[10,1]="Fail"; - else - Units_status[10,1]="Pass"; - - //Write GPO_DRYER_SSR2_CTRL SSR/SSR no. 2 - SetBit (FPGA2, F2_CTRL, 9, 1); - stubManager.Write("\tTesting SSR no. 2\t"); - Thread.Sleep(1000); - response1 = stubManager.Run<StubIntADCReadResponse>("StubIntADCReadRequest" ,17); - temp=Convert.ToUInt32 (response1.SamplingInBits); - stubManager.WriteLine(temp); - temp=temp*800*3*100; - temp=temp/(4096*95*120); - stubManager.Write("Current = "+ temp + "A\n"); - if ((temp>3) || (temp<1)) - Units_status[11,1]="Fail"; - else - Units_status[11,1]="Pass"; - - Thread.Sleep(50000); - -//check air temp - ftemp=Read_pt100(0); - stubManager.Write("After heating air temp is " + ftemp + "\n"); - ftemp = ftemp - DryerTemp[0]; - if ((ftemp<5)||(ftemp>25)) - Units_status[7,1]="Fail"; - else - Units_status[7,1]="Pass"; - - - -//check Main temp - ftemp=Read_pt100(1); - stubManager.Write("After heating Main temp is " + ftemp + "\n"); - ftemp = ftemp - DryerTemp[1]; - if ((ftemp<5)||(ftemp>40)) - Units_status[8,1]="Fail"; - else - Units_status[8,1]="Pass"; - -//check Sec. temp - ftemp=Read_pt100(2); - stubManager.Write("After heating Sec. temp is " + ftemp + "\n"); - ftemp = ftemp - DryerTemp[2]; - if ((ftemp<5)||(ftemp>40)) - Units_status[9,1]="Fail"; - else - Units_status[9,1]="Pass"; - - SetBit (FPGA2, F2_CTRL, 10, 0); //turn SSR1 off - SetBit (FPGA2, F2_CTRL, 9, 0); //turn SSR2 off - - SetBit(FPGA1,0x3d2,5,1); //turn off Blower - return 1; - -} - - int test_pt100() - { - float ftemp=0; - int temp=0; - int j=0; - for (int i = 0; i < 3; i++) - { - DryerTemp[i]=Read_pt100(i); - ftemp=DryerTemp[i]; - if ((ftemp>100)|| (ftemp<10)) - { - Units_status[i+7,1]="Fail"; - } - else - { - Units_status[i+7,1]="Pass"; - } - stubManager.Write(Units_status[i+7,0] +"\t"+ ftemp.ToString("F2")); - stubManager.Write("°C\n"); - - } - return 0; - } -//------------------------------------------------ -float Read_pt100(int i) -{ - int j=i+6; - var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,j); // - float ftemp = (float)response.TemperatureCMultBy100; - ftemp = ftemp / 100; - return (ftemp); -} - - -//------------------------------------------ -int Test_motor_driving () - -{ - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,3, true, 500); //rotate Dryer Motor. - stubManager.Write("Dryer Motor rotate \n "); - DialogResult result = MessageBox.Show("Are Dryer Motor rotate?", "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.No) - { - Units_status[3,1]="Fail"; - stubManager.Write("Dryer Motor not rotate\n"); - } - else - { - Units_status[3,1]="Pass"; - stubManager.Write("Dryer Motor rotate\n"); - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,3,3); //stop motor - - return 0; -} -//---------------------------------- -int Test_Load_Arm() -{ - - Int32 temp3=0; - Int32 j=0; - Int32 i=0; - position_32bit=0; - Int32 temp=position_32bit; - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,5, false, 60);//40 - Thread.Sleep(50); - temp=ReadEncoder(); - while ((temp3==0)&& (i<600) ) //wait until Limit Switch or timeout 200*50msec=10sec - { - Thread.Sleep(50); - ReadEncoder(); -// stubManager.Write("position_32bit " + position_32bit +"\t"); - - if (Math.Abs(position_32bit)> (50*0x4000)) - temp3=1; - if ((position_32bit-temp)>20) - temp3=2; -// stubManager.Write("Temp " + temp +"\n"); - temp=position_32bit; -// stubManager.Write("Temp3 " + temp3 +"\n"); - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,5, 3); - - DialogResult result1 = MessageBox.Show("Arm Motor rotate ?", "Warning",MessageBoxButtons.YesNo); - if(result1 == DialogResult.No) - { - Units_status[5,1]="Fail"; - stubManager.Write("Arm Motor Not rotate\n"); - return 0; - } - Units_status[5,1]="Pass"; - - DialogResult result2 = MessageBox.Show("Did Arm Motor arrive to mecahnicl stopper ?", "Warning",MessageBoxButtons.YesNo); - if(result2 == DialogResult.No) - { - Units_status[4,1]="Fail"; - stubManager.Write("Arm Motor arrive to mecahnicl stopper \n"); - return 0; - } - - position_32bit=0; - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,5, true, 60); - Thread.Sleep(50); - i=0; - while ((Math.Abs(ReadEncoder())< (30*0x4000))&& (i<4500)) - - { - Thread.Sleep(50); - i++; -// stubManager.Write("position_32bit " + position_32bit +"\t" + i + "\n" ); - - - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,5, 3); - - DialogResult result3 = MessageBox.Show("Did Arm Motor make 30 rounds?", "Warning",MessageBoxButtons.YesNo); - if(result3 == DialogResult.No) - { - Units_status[4,1]="Fail"; - stubManager.Write("Arm Motor not make 30 rounds\n"); - return 0; - } - Units_status[4,1]="Pass"; - return 1; -} - -Int32 ReadEncoder() -{ - Int32 temp; - Int32 temp1; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190); - var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192); - - temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff)); - if (temp>last_14bit_position) - { - temp1=temp-last_14bit_position; - position_32bit=position_32bit+temp1; - if (temp1>0x2000) - position_32bit=position_32bit-0x4000; - } - else if (temp<last_14bit_position) - - { - temp1=last_14bit_position-temp; - position_32bit=position_32bit-temp1; - if (temp1>0x2000) - position_32bit=position_32bit+0x4000; - } - - last_14bit_position=temp; - - return position_32bit; -} -//----------------------------------- -int Test_LId () -{ - Int32 Bit = 1; - int i = 0; - - stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,4, false, 0x800000+2); //mov Dryer Lid motor down - Thread.Sleep(2000); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,4, 2); //Hard stop hiZ motor - Thread.Sleep(1000); - - stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,4, false, 0x800000+0); //mov Dryer Lid motor up - - while ((Bit != 0x0) && (i<200)) //wait until Limit Switch or timeout 200*50msec=10sec - { - Bit = GetBit(FPGA1, F1_LS_01_Direct,4); - Thread.Sleep(50); - i++; - } - stubManager.Write("\n--------1-Lid Open--------"); - - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,4, 2); //Hard stop hiZ motor - DialogResult result1 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo); - if(result1 == DialogResult.No) - { - Units_status[1,1]="Fail"; - stubManager.Write("LS_Lid_Open Not calibrate\n"); - return 0; - } - Units_status[1,1]="Pass"; - - stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,4, false, 0x800000+2); //mov Dryer Lid motor down - - Bit = 1; - i=0; - while ((Bit != 0x0) && (i<200)) //wait until Limit Switch or timeout 200*50msec=10sec - { - Bit = GetBit(FPGA1, F1_LS_01_Direct,5); - Thread.Sleep(50); - i++; - } - stubManager.Write("\n--------2-Lid Close--------"); - - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,4, 2); //Hard stop hiZ motor - DialogResult result2 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo); - if(result2 == DialogResult.No) - { - Units_status[2,1]="Fail"; - stubManager.Write("LS_Lid_Close Not calibrate\n"); - return 0; - } - Units_status[2,1]="Pass"; - Units_status[0,1]="Pass"; - return 1; - -} - - //------------------------------------ -string write_to_file() -{ - stubManager.Write("write_to_file\n"); - -string Stemp="Pass"; - for (int i=0;i<UNIT_UNDER_TEST;i++) - { - stubManager.AppendToFile(File_Name1,Units_status[i,0]+"\t" + Units_status[i,1] ); - stubManager.Write(Units_status[i,0]+"\t" + Units_status[i,1]+"\n" ); - - if ((Units_status[i,1]=="Fail")||(Units_status[i,1]=="Not Test")) - Stemp="Fail"; - } - if (Stemp=="Fail") - { - stubManager.AppendToFile(File_Name1,"-------------Dryer Fail ------------ "); - stubManager.Write("-------------Dryer Fail ------------ "); - } - else - { - stubManager.AppendToFile(File_Name1,"-------------Dryer Pass ------------ )"); - stubManager.Write("-------------Dryer Pass ------------ "); - } - - return Stemp; - -} - diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_LimitSwitch.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_LimitSwitch.cs index d3cc0b43c..46849f051 100644 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_LimitSwitch.cs +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_LimitSwitch.cs @@ -21,18 +21,14 @@ public void OnExecute(StubManager stubManager) Int32 Bit = 1; uint Temp = 0; int counter = 0; - UInt32 PowerStep_driver=0; - if (Get_Driver_Type(4)>0x14) - PowerStep_driver=1; - for (int i=0;i<1;i++) - { - stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,4, false, 0x800000+2*PowerStep_driver); //mov Dryer Lid motor up - Bit=1; + + stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,4, false, 2); //mov Dryer Lid motor up + while (Bit != 0x0) //wait until Dryer Lid open { - Bit = GetBit(FPGA1, F1_LS_01_Direct,4); - Thread.Sleep(100); + Bit = GetBit(FPGA1, F1_LS_01_Direct,5); + Thread.Sleep(10); } stubManager.Write("\n--------1-Lid Open--------"); @@ -42,34 +38,19 @@ stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,4, 2); //Hard st - stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,4, false, 0x800000+2*(1-PowerStep_driver)); //mov Dryer Lid motor up +stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,4, true, 2); //mov Dryer Lid motor down Bit = 1; while (Bit != 0x0) //wait until Dryer Lid open { - Bit = GetBit(FPGA1, F1_LS_01_Direct,5); - Thread.Sleep(100); + Bit = GetBit(FPGA1, F1_LS_01_Direct,4); + Thread.Sleep(10); } - stubManager.Write("\n--------2-Lid Close--------\nCycle \t"+i); + stubManager.Write("\n--------2-Lid Close--------"); stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,4, 2); //Hard stop hiZ motor -} - -} - -UInt32 Get_Driver_Type(UInt32 i) -{ - Int32 x_GET_PARAM = 0x20; - Int32 x_ADC_OUT = 0x12; - UInt32 ADC_out ; - - - var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ADC_OUT)<<8, 0, 0); - ADC_out= (response.RecivedData) & 0x001F; - stubManager.WriteHex(ADC_out,2) ; - return ADC_out ; -} +}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_SSR.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_SSR.cs index d0ecd2125..da391cfb2 100644 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_SSR.cs +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_SSR.cs @@ -18,63 +18,22 @@ include "Tango_Defines_SSR.cs" public void OnExecute(StubManager stubManager) { -float temp=0; -float temp1=4096*95*5; - - //Write GPO_DRYER_SSR1_CTRL SSR/SSR no. 1 - var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,6); // - stubManager.WriteHex(response.TemperatureCMultBy100,4); + //Write GPO_DRYER_SSR1_CTRL SSR/SSR no. 1 SetBit (FPGA2, F2_CTRL, 10, 1); - stubManager.Write("\tTesting SSR no. 1\t"); - Thread.Sleep(3000); - -var response1 = stubManager.Run<StubIntADCReadResponse>("StubIntADCReadRequest" ,16); - - temp=Convert.ToUInt32 (response1.SamplingInBits); - - stubManager.Write("Current = "+ temp*100/6 + "mA/n"); - - temp=temp*800*3*100; - temp=temp/(4096*95*50); - stubManager.Write("Current = "+ temp + "A\t"); - stubManager.Write("Voltage = "+ (temp*60) + "V\n"); - -// temp=temp*2400*60*100; -// temp=temp/(4096*95*50); -// stubManager.Write("Voltage = "+ temp + "Volt/n"); -// stubManager.Write("Current = "+ temp*100/6 + "mA/n"); - - + stubManager.Write("\nTesting SSR no. 1"); + Thread.Sleep(4000); SetBit (FPGA2, F2_CTRL, 10, 0); - response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,6); // - stubManager.WriteHex(response.TemperatureCMultBy100,4); - stubManager.Write("\n"); - //Write GPO_DRYER_SSR2_CTRL SSR/SSR no. 2 - response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,7); // - stubManager.WriteHex(response.TemperatureCMultBy100,4); SetBit (FPGA2, F2_CTRL, 9, 1); - stubManager.Write("\tTesting SSR no. 2\t"); - Thread.Sleep(3000); - - response1 = stubManager.Run<StubIntADCReadResponse>("StubIntADCReadRequest" ,17); - - temp=Convert.ToUInt32 (response1.SamplingInBits); - -// temp=temp*2400*1000; -// temp=temp/(4096*95*100); -// stubManager.Write("Current = "+ temp*100/6 + "mA/n"); - - temp=temp*800*3*100; - temp=temp/(4096*95*100); - stubManager.Write("Current = "+ temp + "A\n"); - - + stubManager.Write("\nTesting SSR no. 2"); + Thread.Sleep(4000); SetBit (FPGA2, F2_CTRL, 9, 0); - response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,7); // - stubManager.WriteHex(response.TemperatureCMultBy100,4); - stubManager.Write("\n"); - + + //Write GPO_DRYER_SSR3_CTRL SSR/SSR no. 3 + SetBit (FPGA2, F2_CTRL, 8, 1); + stubManager.Write("\nTesting SSR no. 3"); + Thread.Sleep(4000); + SetBit (FPGA2, F2_CTRL, 8, 0); }
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset.CSV b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset.CSV deleted file mode 100644 index 3b00533c7..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset.CSV +++ /dev/null @@ -1,499 +0,0 @@ -01/10/2020 13:37:37 -Heating to 190 -01/10/2020 13:37:37 - 55 - 55 - 56 - 56 - 57 - 57 - 57 - 58 - 58 - 59 - 59 - 59 - 60 - 60 - 60 - 61 - 61 - 61 - 62 - 62 - 62 - 63 - 63 - 64 - 64 - 64 - 65 - 65 - 65 - 66 - 66 - 66 - 67 - 67 - 67 - 68 - 68 - 68 - 69 - 69 - 69 - 69 - 70 - 70 - 70 - 71 - 71 - 71 - 72 - 72 - 72 - 73 - 73 - 73 - 74 - 74 - 74 - 74 - 75 - 75 - 75 - 76 - 76 - 76 - 76 - 77 - 77 - 78 - 78 - 78 - 78 - 79 - 79 - 79 - 80 - 80 - 80 - 80 - 81 - 81 - 81 - 81 - 82 - 82 - 82 - 82 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 82 - 82 - 82 - 82 - 81 - 81 - 81 - 81 - 81 - 80 - 80 - 80 - 80 - 79 - 79 - 79 - 79 - 79 - 79 - 78 - 78 - 78 - 78 - 78 - 78 - 79 - 79 - 79 - 79 - 79 - 80 - 80 - 80 - 80 - 81 - 81 - 81 - 81 - 82 - 82 - 82 - 82 - 83 - 83 - 83 - 83 - 84 - 84 - 84 - 85 - 85 - 85 - 86 - 86 - 86 - 86 - 87 - 87 - 87 - 87 - 88 - 88 - 88 - 88 - 89 - 89 - 89 - 89 - 90 - 90 - 90 - 90 - 91 - 91 - 91 - 91 - 92 - 92 - 92 - 92 - 93 - 93 - 93 - 93 - 94 - 94 - 94 - 94 - 95 - 95 - 95 - 95 - 96 - 96 - 96 - 96 - 96 - 97 - 97 - 97 - 97 - 98 - 98 - 98 - 98 - 98 - 98 - 97 - 97 - 97 - 97 - 96 - 96 - 96 - 95 - 95 - 94 - 94 - 94 - 93 - 93 - 93 - 92 - 92 - 92 - 91 - 91 - 91 - 90 - 90 - 90 - 89 - 89 - 89 - 88 - 88 - 88 - 87 - 87 - 87 - 87 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 87 - 87 - 87 - 87 - 88 - 88 - 88 - 89 - 89 - 89 - 89 - 90 - 90 - 90 - 90 - 91 - 91 - 91 - 92 - 92 - 92 - 92 - 93 - 93 - 93 - 93 - 94 - 94 - 94 - 95 - 95 - 95 - 95 - 96 - 96 - 96 - 96 - 97 - 97 - 97 - 97 - 98 - 98 - 98 - 98 - 99 - 99 - 99 - 99 - 100 - 100 - 100 - 100 - 101 - 101 - 101 - 101 - 101 - 102 - 102 - 102 - 102 - 103 - 103 - 103 - 103 - 104 - 104 - 104 - 104 - 104 - 105 - 105 - 105 - 105 - 106 - 106 - 106 - 106 - 106 - 107 - 107 - 107 - 107 - 108 - 108 - 108 - 108 - 109 - 109 - 109 - 109 - 109 - 110 - 110 - 110 - 110 - 110 - 111 - 111 - 111 - 111 - 111 - 112 - 112 - 112 - 112 - 112 - 113 - 113 - 113 - 113 - 113 - 114 - 114 - 114 - 114 - 114 - 115 - 115 - 115 - 115 - 115 - 116 - 116 - 116 - 116 - 116 - 117 - 117 - 117 - 117 - 117 - 118 - 118 - 118 - 118 - 118 - 119 - 119 - 119 - 119 - 119 - 119 - 120 - 120 - 120 - 120 - 120 - 120 - 121 - 121 - 121 - 121 - 121 - 122 - 122 - 122 - 122 - 122 - 122 - 123 - 123 - 123 - 123 - 123 - 124 - 124 - 124 - 124 - 124 - 124 - 125 - 125 - 125 - 125 - 125 - 125 - 126 - 126 - 126 - 126 - 126 - 126 - 127 - 127 - 127 - 127 - 127 - 128 - 128 - 128 - 128 - 128 - 128 - 129 - 129 - 129 - 129 - 129 - 129 - 130 - 130 - 130 - 130 - 130 - 130 - 131 - 131 - 131 - 131 - 131 - 131 - 132 - 132 - 132 - 132 - 132 - 132 - 132 - 133 - 133 - 133 - 133 - 133 - 133 - 134 - 134 - 134 - 134 - 134 - 134 - 134 - 134 - 134 - 134 - 134 - 133 - 133 - 132 - 132 - 131 - 131 - 130 - 130 - 129 - 128 - 128 - 127 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset1.CSV b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset1.CSV deleted file mode 100644 index 6d1a7862c..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset1.CSV +++ /dev/null @@ -1,1600 +0,0 @@ -06/07/2020 9:43:12 -Heating to 190 -06/07/2020 9:43:12 - 23 - 23 - 23 - 23 - 23 - 23 - 23 - 23 - 23 - 23 - 23 - 23 - 23 - 23 - 23 - 23 - 23 - 23 - 23 - 23 - 23 - 23 - 23 - 23 - 23 - 23 - 24 - 24 - 24 - 24 - 24 - 24 - 25 - 25 - 25 - 26 - 26 - 26 - 27 - 27 - 28 - 28 - 29 - 29 - 30 - 30 - 31 - 31 - 32 - 32 - 33 - 33 - 34 - 34 - 35 - 35 - 36 - 37 - 37 - 38 - 38 - 39 - 39 - 40 - 41 - 41 - 42 - 42 - 43 - 43 - 44 - 44 - 45 - 46 - 46 - 47 - 47 - 48 - 48 - 49 - 49 - 50 - 50 - 51 - 52 - 52 - 53 - 53 - 54 - 54 - 55 - 55 - 56 - 56 - 56 - 57 - 57 - 58 - 58 - 59 - 59 - 60 - 60 - 60 - 61 - 61 - 62 - 62 - 63 - 63 - 63 - 64 - 64 - 65 - 65 - 65 - 66 - 66 - 66 - 67 - 67 - 68 - 68 - 68 - 69 - 69 - 69 - 70 - 70 - 71 - 71 - 71 - 72 - 72 - 72 - 73 - 73 - 73 - 74 - 74 - 74 - 75 - 75 - 75 - 76 - 76 - 76 - 77 - 77 - 77 - 78 - 78 - 78 - 79 - 79 - 79 - 79 - 80 - 80 - 80 - 81 - 81 - 81 - 82 - 82 - 82 - 82 - 83 - 83 - 83 - 84 - 84 - 84 - 84 - 85 - 85 - 85 - 86 - 86 - 86 - 86 - 87 - 87 - 87 - 88 - 88 - 88 - 88 - 89 - 89 - 89 - 89 - 90 - 90 - 90 - 91 - 91 - 91 - 92 - 92 - 92 - 92 - 93 - 93 - 93 - 93 - 94 - 94 - 94 - 94 - 95 - 95 - 95 - 95 - 96 - 96 - 96 - 96 - 97 - 97 - 97 - 97 - 98 - 98 - 98 - 98 - 98 - 99 - 99 - 99 - 99 - 100 - 100 - 100 - 100 - 101 - 101 - 101 - 101 - 102 - 102 - 102 - 102 - 102 - 103 - 103 - 103 - 103 - 104 - 104 - 104 - 104 - 105 - 105 - 105 - 105 - 105 - 106 - 106 - 106 - 106 - 106 - 107 - 107 - 107 - 107 - 107 - 108 - 108 - 108 - 108 - 108 - 109 - 109 - 109 - 109 - 110 - 110 - 110 - 110 - 110 - 111 - 111 - 111 - 111 - 111 - 112 - 112 - 112 - 112 - 112 - 113 - 113 - 113 - 113 - 113 - 114 - 114 - 114 - 114 - 114 - 115 - 115 - 115 - 115 - 115 - 116 - 116 - 116 - 116 - 116 - 117 - 117 - 117 - 117 - 117 - 118 - 118 - 118 - 118 - 119 - 119 - 119 - 119 - 119 - 119 - 120 - 120 - 120 - 120 - 120 - 121 - 121 - 121 - 121 - 121 - 122 - 122 - 122 - 122 - 122 - 123 - 123 - 123 - 123 - 123 - 123 - 124 - 124 - 124 - 124 - 124 - 125 - 125 - 125 - 125 - 125 - 125 - 126 - 126 - 126 - 126 - 126 - 127 - 127 - 127 - 127 - 127 - 128 - 128 - 128 - 128 - 128 - 128 - 129 - 129 - 129 - 129 - 129 - 130 - 130 - 130 - 130 - 130 - 130 - 131 - 131 - 131 - 131 - 131 - 131 - 132 - 132 - 132 - 132 - 132 - 132 - 133 - 133 - 133 - 133 - 133 - 134 - 134 - 134 - 134 - 134 - 134 - 135 - 135 - 135 - 135 - 135 - 135 - 136 - 136 - 136 - 136 - 136 - 136 - 137 - 137 - 137 - 137 - 137 - 137 - 138 - 138 - 138 - 138 - 138 - 138 - 139 - 139 - 139 - 139 - 139 - 139 - 140 - 140 - 140 - 140 - 140 - 140 - 141 - 141 - 141 - 141 - 141 - 141 - 142 - 142 - 142 - 142 - 142 - 142 - 143 - 143 - 143 - 143 - 143 - 143 - 144 - 144 - 144 - 144 - 144 - 144 - 145 - 145 - 145 - 145 - 145 - 145 - 145 - 146 - 146 - 146 - 146 - 146 - 146 - 147 - 147 - 147 - 147 - 147 - 147 - 147 - 148 - 148 - 148 - 148 - 148 - 148 - 149 - 149 - 149 - 149 - 149 - 149 - 150 - 150 - 150 - 150 - 150 - 150 - 150 - 151 - 151 - 151 - 151 - 151 - 151 - 151 - 152 - 152 - 152 - 152 - 152 - 152 - 152 - 153 - 153 - 153 - 153 - 153 - 153 - 153 - 154 - 154 - 154 - 154 - 154 - 154 - 155 - 155 - 155 - 155 - 155 - 155 - 155 - 156 - 156 - 156 - 156 - 156 - 156 - 156 - 157 - 157 - 157 - 157 - 157 - 157 - 157 - 158 - 158 - 158 - 158 - 158 - 158 - 158 - 159 - 159 - 159 - 159 - 159 - 159 - 160 - 160 - 160 - 160 - 160 - 160 - 160 - 161 - 161 - 161 - 161 - 161 - 161 - 161 - 162 - 162 - 162 - 162 - 162 - 162 - 162 - 163 - 163 - 163 - 163 - 163 - 163 - 163 - 164 - 164 - 164 - 164 - 164 - 164 - 164 - 165 - 165 - 165 - 165 - 165 - 165 - 165 - 166 - 166 - 166 - 166 - 166 - 166 - 166 - 166 - 167 - 167 - 167 - 167 - 167 - 167 - 167 - 167 - 168 - 168 - 168 - 168 - 168 - 168 - 168 - 169 - 169 - 169 - 169 - 169 - 169 - 169 - 170 - 170 - 170 - 170 - 170 - 170 - 170 - 170 - 171 - 171 - 171 - 171 - 171 - 171 - 171 - 172 - 172 - 172 - 172 - 172 - 172 - 172 - 172 - 173 - 173 - 173 - 173 - 173 - 173 - 173 - 174 - 174 - 174 - 174 - 174 - 174 - 174 - 175 - 175 - 175 - 175 - 175 - 175 - 175 - 175 - 176 - 176 - 176 - 176 - 176 - 176 - 176 - 176 - 176 - 177 - 177 - 177 - 177 - 177 - 177 - 177 - 177 - 177 - 177 - 177 - 178 - 178 - 178 - 178 - 178 - 178 - 178 - 178 - 178 - 178 - 178 - 179 - 179 - 179 - 179 - 179 - 179 - 179 - 179 - 179 - 179 - 180 - 180 - 180 - 180 - 180 - 180 - 180 - 180 - 180 - 180 - 181 - 181 - 181 - 181 - 181 - 181 - 181 - 181 - 181 - 181 - 182 - 182 - 182 - 182 - 182 - 182 - 182 - 182 - 182 - 182 - 183 - 183 - 183 - 183 - 183 - 183 - 183 - 183 - 183 - 183 - 184 - 184 - 184 - 184 - 184 - 184 - 184 - 184 - 184 - 185 - 185 - 185 - 185 - 185 - 185 - 185 - 185 - 185 - 185 - 186 - 186 - 186 - 186 - 186 - 186 - 186 - 186 - 186 - 187 - 187 - 187 - 187 - 187 - 187 - 187 - 187 - 187 - 188 - 188 - 188 - 188 - 188 - 188 - 188 - 188 - 188 - 188 - 189 -06/07/2020 9:56:54 -cooling down -06/07/2020 9:58:54 - 191 - 191 - 191 - 191 - 191 - 191 - 191 - 191 - 191 - 191 - 191 - 190 - 190 - 190 - 190 - 190 - 190 - 190 - 189 - 189 - 189 - 189 - 188 - 188 - 188 - 188 - 187 - 187 - 186 - 186 - 186 - 185 - 185 - 185 - 184 - 184 - 184 - 183 - 183 - 183 - 182 - 182 - 182 - 181 - 181 - 181 - 180 - 180 - 179 - 179 - 179 - 178 - 178 - 178 - 177 - 177 - 177 - 176 - 176 - 175 - 175 - 175 - 174 - 174 - 174 - 173 - 173 - 173 - 172 - 172 - 172 - 171 - 171 - 171 - 170 - 170 - 170 - 169 - 169 - 169 - 168 - 168 - 168 - 167 - 167 - 167 - 167 - 166 - 166 - 166 - 165 - 165 - 165 - 164 - 164 - 164 - 164 - 163 - 163 - 163 - 162 - 162 - 162 - 161 - 161 - 161 - 161 - 160 - 160 - 160 - 160 - 159 - 159 - 159 - 159 - 158 - 158 - 158 - 158 - 157 - 157 - 157 - 157 - 157 - 156 - 156 - 156 - 156 - 155 - 155 - 155 - 155 - 155 - 154 - 154 - 154 - 154 - 153 - 153 - 153 - 153 - 153 - 152 - 152 - 152 - 152 - 152 - 152 - 151 - 151 - 151 - 151 - 151 - 150 - 150 - 150 - 150 - 150 - 149 - 149 - 149 - 149 - 149 - 149 - 148 - 148 - 148 - 148 - 148 - 148 - 147 - 147 - 147 - 147 - 147 - 147 - 146 - 146 - 146 - 146 - 146 - 146 - 145 - 145 - 145 - 145 - 145 - 145 - 145 - 144 - 144 - 144 - 144 - 144 - 144 - 144 - 143 - 143 - 143 - 143 - 143 - 143 - 143 - 142 - 142 - 142 - 142 - 142 - 142 - 142 - 142 - 141 - 141 - 141 - 141 - 141 - 141 - 141 - 141 - 141 - 140 - 140 - 140 - 140 - 140 - 140 - 140 - 140 - 139 - 139 - 139 - 139 - 139 - 139 - 139 - 139 - 139 - 138 - 138 - 138 - 138 - 138 - 138 - 138 - 138 - 138 - 137 - 137 - 137 - 137 - 137 - 137 - 137 - 137 - 137 - 136 - 136 - 136 - 136 - 136 - 136 - 136 - 136 - 136 - 136 - 135 - 135 - 135 - 135 - 135 - 135 - 135 - 135 - 135 - 135 - 134 - 134 - 134 - 134 - 134 - 134 - 134 - 134 - 134 - 134 - 134 - 133 - 133 - 133 - 133 - 133 - 133 - 133 - 133 - 133 - 133 - 133 - 132 - 132 - 132 - 132 - 132 - 132 - 132 - 132 - 132 - 132 - 132 - 132 - 132 - 131 - 131 - 131 - 131 - 131 - 131 - 131 - 131 - 131 - 131 - 131 - 131 - 130 - 130 - 130 - 130 - 130 - 130 - 130 - 130 - 130 - 130 - 130 - 130 - 129 - 129 - 129 - 129 - 129 - 129 - 129 - 129 - 129 - 129 - 129 - 129 - 129 - 128 - 128 - 128 - 128 - 128 - 128 - 128 - 128 - 128 - 128 - 128 - 128 - 128 - 128 - 128 - 127 - 127 - 127 - 127 - 127 - 127 - 127 - 127 - 127 - 127 - 127 - 127 - 127 - 127 - 126 - 126 - 126 - 126 - 126 - 126 - 126 - 126 - 126 - 126 - 126 - 126 - 126 - 126 - 126 - 126 - 125 - 125 - 125 - 125 - 125 - 125 - 125 - 125 - 125 - 125 - 125 - 125 - 125 - 125 - 125 - 125 - 124 - 124 - 124 - 124 - 124 - 124 - 124 - 124 - 124 - 124 - 124 - 124 - 124 - 124 - 124 - 123 - 123 - 123 - 123 - 123 - 123 - 123 - 123 - 123 - 123 - 123 - 123 - 123 - 123 - 123 - 123 - 123 - 123 - 122 - 122 - 122 - 122 - 122 - 122 - 122 - 122 - 122 - 122 - 122 - 122 - 122 - 122 - 122 - 122 - 122 - 122 - 121 - 121 - 121 - 121 - 121 - 121 - 121 - 121 - 121 - 121 - 121 - 121 - 121 - 121 - 121 - 121 - 121 - 121 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset111.CSV b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset111.CSV deleted file mode 100644 index 4ab057b1c..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset111.CSV +++ /dev/null @@ -1,29654 +0,0 @@ -16/08/2020 18:49:18 -Heating to 190 -16/08/2020 18:49:18 - 24 - 24 - 24 - 24 - 24 - 24 - 24 - 24 - 24 - 24 - 24 - 24 - 24 - 25 - 25 - 25 - 25 - 25 - 26 - 26 - 26 - 26 - 27 - 27 - 27 - 28 - 28 - 29 - 29 - 29 - 30 - 30 - 31 - 31 - 32 - 32 - 33 - 33 - 33 - 34 - 34 - 35 - 36 - 36 - 37 - 38 - 38 - 39 - 39 - 40 - 40 - 41 - 41 - 42 - 42 - 43 - 43 - 44 - 44 - 45 - 45 - 46 - 46 - 47 - 47 - 48 - 48 - 49 - 49 - 50 - 50 - 51 - 51 - 52 - 52 - 53 - 53 - 53 - 54 - 54 - 55 - 55 - 56 - 56 - 57 - 57 - 57 - 58 - 58 - 59 - 59 - 60 - 60 - 60 - 61 - 61 - 62 - 62 - 63 - 63 - 63 - 64 - 64 - 65 - 65 - 66 - 66 - 66 - 67 - 67 - 67 - 68 - 68 - 69 - 69 - 69 - 70 - 70 - 70 - 71 - 71 - 71 - 72 - 72 - 72 - 73 - 73 - 73 - 74 - 74 - 74 - 75 - 75 - 75 - 76 - 76 - 76 - 77 - 77 - 77 - 78 - 78 - 78 - 79 - 79 - 79 - 79 - 80 - 80 - 80 - 81 - 81 - 81 - 81 - 82 - 82 - 82 - 83 - 83 - 83 - 84 - 84 - 84 - 84 - 85 - 85 - 85 - 85 - 86 - 86 - 86 - 87 - 87 - 87 - 87 - 88 - 88 - 88 - 88 - 89 - 89 - 89 - 89 - 90 - 90 - 90 - 91 - 91 - 91 - 91 - 92 - 92 - 92 - 92 - 93 - 93 - 93 - 93 - 94 - 94 - 94 - 94 - 95 - 95 - 95 - 95 - 95 - 96 - 96 - 96 - 96 - 97 - 97 - 97 - 97 - 98 - 98 - 98 - 98 - 98 - 99 - 99 - 99 - 99 - 100 - 100 - 100 - 100 - 100 - 101 - 101 - 101 - 101 - 102 - 102 - 102 - 102 - 102 - 103 - 103 - 103 - 103 - 104 - 104 - 104 - 104 - 104 - 105 - 105 - 105 - 105 - 105 - 106 - 106 - 106 - 106 - 106 - 107 - 107 - 107 - 107 - 107 - 108 - 108 - 108 - 108 - 108 - 109 - 109 - 109 - 109 - 110 - 110 - 110 - 110 - 110 - 111 - 111 - 111 - 111 - 111 - 112 - 112 - 112 - 112 - 112 - 112 - 113 - 113 - 113 - 113 - 113 - 114 - 114 - 114 - 114 - 114 - 115 - 115 - 115 - 115 - 115 - 115 - 116 - 116 - 116 - 116 - 116 - 117 - 117 - 117 - 117 - 117 - 117 - 118 - 118 - 118 - 118 - 118 - 119 - 119 - 119 - 119 - 119 - 119 - 120 - 120 - 120 - 120 - 120 - 120 - 121 - 121 - 121 - 121 - 121 - 122 - 122 - 122 - 122 - 122 - 122 - 123 - 123 - 123 - 123 - 123 - 123 - 124 - 124 - 124 - 124 - 124 - 124 - 125 - 125 - 125 - 125 - 125 - 125 - 126 - 126 - 126 - 126 - 126 - 126 - 127 - 127 - 127 - 127 - 127 - 127 - 128 - 128 - 128 - 128 - 128 - 128 - 128 - 129 - 129 - 129 - 129 - 129 - 129 - 130 - 130 - 130 - 130 - 130 - 130 - 131 - 131 - 131 - 131 - 131 - 131 - 131 - 132 - 132 - 132 - 132 - 132 - 133 - 133 - 133 - 133 - 133 - 133 - 133 - 134 - 134 - 134 - 134 - 134 - 134 - 135 - 135 - 135 - 135 - 135 - 135 - 135 - 136 - 136 - 136 - 136 - 136 - 136 - 136 - 137 - 137 - 137 - 137 - 137 - 137 - 138 - 138 - 138 - 138 - 138 - 138 - 138 - 139 - 139 - 139 - 139 - 139 - 139 - 139 - 140 - 140 - 140 - 140 - 140 - 140 - 140 - 141 - 141 - 141 - 141 - 141 - 141 - 141 - 142 - 142 - 142 - 142 - 142 - 142 - 142 - 143 - 143 - 143 - 143 - 143 - 143 - 143 - 143 - 144 - 144 - 144 - 144 - 144 - 144 - 144 - 145 - 145 - 145 - 145 - 145 - 145 - 146 - 146 - 146 - 146 - 146 - 146 - 146 - 147 - 147 - 147 - 147 - 147 - 147 - 147 - 147 - 148 - 148 - 148 - 148 - 148 - 148 - 148 - 148 - 149 - 149 - 149 - 149 - 149 - 149 - 149 - 150 - 150 - 150 - 150 - 150 - 150 - 150 - 150 - 151 - 151 - 151 - 151 - 151 - 151 - 151 - 151 - 152 - 152 - 152 - 152 - 152 - 152 - 152 - 152 - 153 - 153 - 153 - 153 - 153 - 153 - 154 - 154 - 154 - 154 - 154 - 154 - 154 - 154 - 155 - 155 - 155 - 155 - 155 - 155 - 155 - 155 - 155 - 156 - 156 - 156 - 156 - 156 - 156 - 156 - 156 - 156 - 157 - 157 - 157 - 157 - 157 - 157 - 157 - 157 - 157 - 158 - 158 - 158 - 158 - 158 - 158 - 158 - 158 - 158 - 159 - 159 - 159 - 159 - 159 - 159 - 159 - 159 - 159 - 160 - 160 - 160 - 160 - 160 - 160 - 160 - 160 - 160 - 161 - 161 - 161 - 161 - 161 - 161 - 161 - 161 - 161 - 162 - 162 - 162 - 162 - 162 - 162 - 162 - 162 - 163 - 163 - 163 - 163 - 163 - 163 - 163 - 163 - 164 - 164 - 164 - 164 - 164 - 164 - 164 - 164 - 164 - 165 - 165 - 165 - 165 - 165 - 165 - 165 - 165 - 165 - 166 - 166 - 166 - 166 - 166 - 166 - 166 - 166 - 167 - 167 - 167 - 167 - 167 - 167 - 167 - 167 - 167 - 168 - 168 - 168 - 168 - 168 - 168 - 168 - 168 - 168 - 169 - 169 - 169 - 169 - 169 - 169 - 169 - 169 - 169 - 170 - 170 - 170 - 170 - 170 - 170 - 170 - 170 - 170 - 171 - 171 - 171 - 171 - 171 - 171 - 171 - 171 - 171 - 172 - 172 - 172 - 172 - 172 - 172 - 172 - 172 - 172 - 173 - 173 - 173 - 173 - 173 - 173 - 173 - 173 - 173 - 174 - 174 - 174 - 174 - 174 - 174 - 174 - 174 - 174 - 174 - 175 - 175 - 175 - 175 - 175 - 175 - 175 - 175 - 175 - 175 - 176 - 176 - 176 - 176 - 176 - 176 - 176 - 176 - 176 - 176 - 177 - 177 - 177 - 177 - 177 - 177 - 177 - 177 - 177 - 177 - 177 - 177 - 178 - 178 - 178 - 178 - 178 - 178 - 178 - 178 - 178 - 178 - 179 - 179 - 179 - 179 - 179 - 179 - 179 - 179 - 179 - 180 - 180 - 180 - 180 - 180 - 180 - 180 - 180 - 180 - 180 - 181 - 181 - 181 - 181 - 181 - 181 - 181 - 181 - 181 - 182 - 182 - 182 - 182 - 182 - 182 - 182 - 182 - 182 - 183 - 183 - 183 - 183 - 183 - 183 - 183 - 183 - 183 - 183 - 184 - 184 - 184 - 184 - 184 - 184 - 184 - 184 - 184 - 185 - 185 - 185 - 185 - 185 - 185 - 185 - 185 - 185 - 185 - 186 - 186 - 186 - 186 - 186 - 186 - 186 - 186 - 186 - 186 - 187 - 187 - 187 - 187 - 187 - 187 - 187 - 187 - 187 - 188 - 188 - 188 - 188 - 188 - 188 - 188 - 188 - 188 - 188 - 189 -16/08/2020 19:04:08 -cooling down -16/08/2020 19:06:08 - 193 - 193 - 193 - 193 - 193 - 193 - 192 - 192 - 192 - 192 - 192 - 192 - 192 - 192 - 191 - 191 - 191 - 191 - 191 - 191 - 190 - 190 - 190 - 190 - 190 - 189 - 189 - 189 - 189 - 188 - 188 - 188 - 188 - 187 - 187 - 187 - 186 - 186 - 186 - 185 - 185 - 185 - 185 - 184 - 184 - 184 - 183 - 183 - 183 - 182 - 182 - 182 - 181 - 181 - 181 - 180 - 180 - 180 - 179 - 179 - 179 - 178 - 178 - 178 - 178 - 177 - 177 - 176 - 176 - 176 - 175 - 175 - 175 - 174 - 174 - 174 - 174 - 173 - 173 - 173 - 172 - 172 - 172 - 171 - 171 - 171 - 171 - 170 - 170 - 170 - 169 - 169 - 169 - 169 - 168 - 168 - 168 - 167 - 167 - 167 - 167 - 166 - 166 - 166 - 166 - 165 - 165 - 165 - 165 - 164 - 164 - 164 - 164 - 163 - 163 - 163 - 163 - 162 - 162 - 162 - 162 - 161 - 161 - 161 - 161 - 160 - 160 - 160 - 160 - 159 - 159 - 159 - 159 - 158 - 158 - 158 - 158 - 158 - 157 - 157 - 157 - 157 - 157 - 156 - 156 - 156 - 156 - 156 - 155 - 155 - 155 - 155 - 155 - 154 - 154 - 154 - 154 - 154 - 153 - 153 - 153 - 153 - 153 - 153 - 152 - 152 - 152 - 152 - 152 - 151 - 151 - 151 - 151 - 151 - 151 - 150 - 150 - 150 - 150 - 150 - 150 - 149 - 149 - 149 - 149 - 149 - 149 - 149 - 148 - 148 - 148 - 148 - 148 - 148 - 147 - 147 - 147 - 147 - 147 - 147 - 146 - 146 - 146 - 146 - 146 - 146 - 146 - 146 - 145 - 145 - 145 - 145 - 145 - 145 - 145 - 144 - 144 - 144 - 144 - 144 - 144 - 144 - 144 - 143 - 143 - 143 - 143 - 143 - 143 - 143 - 143 - 142 - 142 - 142 - 142 - 142 - 142 - 142 - 142 - 141 - 141 - 141 - 141 - 141 - 141 - 141 - 141 - 141 - 140 - 140 - 140 - 140 - 140 - 140 - 140 - 140 - 140 - 139 - 139 - 139 - 139 - 139 - 139 - 139 - 139 - 139 - 138 - 138 - 138 - 138 - 138 - 138 - 138 - 138 - 138 - 137 - 137 - 137 - 137 - 137 - 137 - 137 - 137 - 137 - 137 - 136 - 136 - 136 - 136 - 136 - 136 - 136 - 136 - 136 - 136 - 136 - 135 - 135 - 135 - 135 - 135 - 135 - 135 - 135 - 135 - 135 - 135 - 134 - 134 - 134 - 134 - 134 - 134 - 134 - 134 - 134 - 134 - 134 - 133 - 133 - 133 - 133 - 133 - 133 - 133 - 133 - 133 - 133 - 133 - 133 - 133 - 132 - 132 - 132 - 132 - 132 - 132 - 132 - 132 - 132 - 132 - 132 - 132 - 131 - 131 - 131 - 131 - 131 - 131 - 131 - 131 - 131 - 131 - 131 - 131 - 130 - 130 - 130 - 130 - 130 - 130 - 130 - 130 - 130 - 130 - 130 - 130 - 130 - 130 - 129 - 129 - 129 - 129 - 129 - 129 - 129 - 129 - 129 - 129 - 129 - 129 - 129 - 129 - 128 - 128 - 128 - 128 - 128 - 128 - 128 - 128 - 128 - 128 - 128 - 128 - 128 - 128 - 128 - 127 - 127 - 127 - 127 - 127 - 127 - 127 - 127 - 127 - 127 - 127 - 127 - 127 - 127 - 127 - 126 - 126 - 126 - 126 - 126 - 126 - 126 - 126 - 126 - 126 - 126 - 126 - 126 - 126 - 126 - 125 - 125 - 125 - 125 - 125 - 125 - 125 - 125 - 125 - 125 - 125 - 125 - 125 - 125 - 125 - 125 - 125 - 124 - 124 - 124 - 124 - 124 - 124 - 124 - 124 - 124 - 124 - 124 - 124 - 124 - 124 - 124 - 124 - 124 - 123 - 123 - 123 - 123 - 123 - 123 - 123 - 123 - 123 - 123 - 123 - 123 - 123 - 123 - 123 - 123 - 123 - 122 - 122 - 122 - 122 - 122 - 122 - 122 - 122 - 122 - 122 - 122 - 122 - 122 - 122 - 122 - 122 - 122 - 122 - 122 - 121 - 121 - 121 - 121 - 121 - 121 - 121 - 121 - 121 - 121 - 121 - 121 - 121 - 121 - 121 - 121 - 121 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 107 - 107 - 107 - 107 - 107 - 107 - 107 - 107 - 107 - 107 - 107 - 107 - 107 - 107 - 107 - 107 - 107 - 107 - 107 - 107 - 107 - 107 - 107 - 107 - 107 - 107 - 107 - 107 - 107 - 106 - 106 - 106 - 106 - 106 - 106 - 106 - 106 - 106 - 106 - 106 - 106 - 106 - 106 - 106 - 106 - 106 - 106 - 106 - 106 - 106 - 106 - 106 - 106 - 106 - 106 - 106 - 106 - 106 - 105 - 105 - 105 - 105 - 105 - 105 - 105 - 105 - 105 - 105 - 105 - 105 - 105 - 105 - 105 - 105 - 105 - 105 - 105 - 105 - 105 - 105 - 105 - 105 - 105 - 105 - 105 - 105 - 105 - 105 - 104 - 104 - 104 - 104 - 104 - 104 - 104 - 104 - 104 - 104 - 104 - 104 - 104 - 104 - 104 - 104 - 104 - 104 - 104 - 104 - 104 - 104 - 104 - 104 - 104 - 104 - 104 - 104 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 59 -16/08/2020 20:12:40 -Heating to 190 -16/08/2020 20:12:40 - 59 - 59 - 59 - 59 - 59 - 59 - 59 - 59 - 59 - 59 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 61 - 61 - 61 - 61 - 62 - 62 - 62 - 62 - 63 - 63 - 64 - 64 - 64 - 65 - 65 - 66 - 66 - 66 - 67 - 67 - 68 - 68 - 69 - 69 - 70 - 70 - 71 - 71 - 71 - 72 - 72 - 73 - 73 - 74 - 74 - 75 - 75 - 76 - 76 - 77 - 77 - 78 - 78 - 79 - 80 - 80 - 81 - 81 - 82 - 82 - 82 - 83 - 83 - 84 - 84 - 85 - 85 - 86 - 86 - 87 - 87 - 87 - 88 - 88 - 89 - 89 - 90 - 90 - 90 - 91 - 91 - 92 - 92 - 93 - 93 - 93 - 94 - 94 - 95 - 95 - 95 - 96 - 96 - 97 - 97 - 97 - 98 - 98 - 98 - 99 - 99 - 99 - 100 - 100 - 101 - 101 - 101 - 102 - 102 - 102 - 103 - 103 - 103 - 104 - 104 - 104 - 105 - 105 - 105 - 106 - 106 - 106 - 107 - 107 - 107 - 108 - 108 - 108 - 109 - 109 - 109 - 109 - 110 - 110 - 110 - 111 - 111 - 111 - 112 - 112 - 113 - 113 - 113 - 113 - 114 - 114 - 114 - 115 - 115 - 115 - 115 - 116 - 116 - 116 - 116 - 117 - 117 - 117 - 118 - 118 - 118 - 118 - 119 - 119 - 119 - 119 - 120 - 120 - 120 - 120 - 121 - 121 - 121 - 121 - 122 - 122 - 122 - 122 - 123 - 123 - 123 - 123 - 124 - 124 - 124 - 124 - 125 - 125 - 125 - 125 - 126 - 126 - 126 - 126 - 126 - 127 - 127 - 127 - 127 - 128 - 128 - 128 - 128 - 129 - 129 - 129 - 129 - 129 - 130 - 130 - 130 - 130 - 131 - 131 - 131 - 131 - 131 - 132 - 132 - 132 - 132 - 133 - 133 - 133 - 133 - 134 - 134 - 134 - 134 - 134 - 135 - 135 - 135 - 135 - 135 - 136 - 136 - 136 - 136 - 136 - 137 - 137 - 137 - 137 - 137 - 138 - 138 - 138 - 138 - 138 - 139 - 139 - 139 - 139 - 139 - 140 - 140 - 140 - 140 - 140 - 140 - 141 - 141 - 141 - 141 - 141 - 142 - 142 - 142 - 142 - 142 - 142 - 143 - 143 - 143 - 143 - 143 - 144 - 144 - 144 - 144 - 144 - 144 - 145 - 145 - 145 - 145 - 145 - 145 - 146 - 146 - 146 - 146 - 146 - 146 - 147 - 147 - 147 - 147 - 147 - 147 - 148 - 148 - 148 - 148 - 148 - 148 - 149 - 149 - 149 - 149 - 149 - 149 - 150 - 150 - 150 - 150 - 150 - 150 - 151 - 151 - 151 - 151 - 151 - 151 - 151 - 152 - 152 - 152 - 152 - 152 - 152 - 153 - 153 - 153 - 153 - 153 - 153 - 154 - 154 - 154 - 154 - 154 - 154 - 155 - 155 - 155 - 155 - 155 - 155 - 156 - 156 - 156 - 156 - 156 - 156 - 156 - 157 - 157 - 157 - 157 - 157 - 157 - 157 - 158 - 158 - 158 - 158 - 158 - 158 - 159 - 159 - 159 - 159 - 159 - 159 - 159 - 160 - 160 - 160 - 160 - 160 - 160 - 160 - 161 - 161 - 161 - 161 - 161 - 161 - 161 - 162 - 162 - 162 - 162 - 162 - 162 - 162 - 163 - 163 - 163 - 163 - 163 - 163 - 163 - 164 - 164 - 164 - 164 - 164 - 164 - 164 - 164 - 165 - 165 - 165 - 165 - 165 - 165 - 165 - 166 - 166 - 166 - 166 - 166 - 166 - 166 - 166 - 167 - 167 - 167 - 167 - 167 - 167 - 167 - 168 - 168 - 168 - 168 - 168 - 168 - 168 - 169 - 169 - 169 - 169 - 169 - 169 - 169 - 169 - 170 - 170 - 170 - 170 - 170 - 170 - 170 - 171 - 171 - 171 - 171 - 171 - 171 - 171 - 171 - 172 - 172 - 172 - 172 - 172 - 172 - 172 - 173 - 173 - 173 - 173 - 173 - 173 - 173 - 173 - 173 - 174 - 174 - 174 - 174 - 174 - 174 - 174 - 174 - 175 - 175 - 175 - 175 - 175 - 175 - 175 - 175 - 176 - 176 - 176 - 176 - 176 - 176 - 176 - 176 - 176 - 177 - 177 - 177 - 177 - 177 - 177 - 177 - 177 - 177 - 177 - 178 - 178 - 178 - 178 - 178 - 178 - 178 - 178 - 178 - 178 - 178 - 179 - 179 - 179 - 179 - 179 - 179 - 179 - 179 - 179 - 180 - 180 - 180 - 180 - 180 - 180 - 180 - 180 - 180 - 181 - 181 - 181 - 181 - 181 - 181 - 181 - 181 - 181 - 182 - 182 - 182 - 182 - 182 - 182 - 182 - 182 - 182 - 183 - 183 - 183 - 183 - 183 - 183 - 183 - 183 - 184 - 184 - 184 - 184 - 184 - 184 - 184 - 184 - 185 - 185 - 185 - 185 - 185 - 185 - 185 - 185 - 185 - 186 - 186 - 186 - 186 - 186 - 186 - 186 - 186 - 187 - 187 - 187 - 187 - 187 - 187 - 187 - 187 - 187 - 188 - 188 - 188 - 188 - 188 - 188 - 188 - 189 -16/08/2020 20:23:12 -cooling down -17/08/2020 0:35:05 - 42 -17/08/2020 0:35:06 -Heating to 190 -17/08/2020 0:35:06 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 39 - 40 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 32 - 33 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 31 - 32 - 32 - 32 - 31 - 31 - 31 - 32 - 31 - 31 - 31 - 31 - 32 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 30 - 30 - 31 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 29 - 30 - 30 - 30 - 30 - 30 - 30 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_motor_test.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_motor_test.cs deleted file mode 100644 index bd92ea498..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_motor_test.cs +++ /dev/null @@ -1,29 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - - -stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,3,true, 2200); - - - - - - - - - - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Encoder.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_ssi.cs index d2eb00cb6..0e6c5c7f0 100644 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Encoder.cs +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_ssi.cs @@ -31,25 +31,18 @@ public void OnExecute(StubManager stubManager) for (int i = 0; i < 1000; i++) { + + SSI_Read_Write(FPGA1, F1_LSPARE_ROTENC_MSB, F1_LSPARE_ROTENC_LSB, F1_LSPARE_ROTENC_TX); +// SSI_Read_Write(FPGA1, F1_LDANCER2_ROTENC_MSB, F1_LDANCER2_ROTENC_LSB, F1_LDANCER2_ROTENC_TX); + stubManager.Write("\n"); + k++; + if ( (k & 0x8) == 0x08 ) { + k = 0; + stubManager.Write(" LDANCER1 LDANCER2 \n"); + } - stubManager.Write(ReadEncoder_Dryer() +"\n"); - - Thread.Sleep(100); + Thread.Sleep(10); } } - -Int32 ReadEncoder_Dryer() -{ - Int32 temp; - Int32 temp1; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190); - var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192); - - temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff)); - - return temp; -} diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/GPO_Blower_PWM.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/GPO_Blower_PWM.cs index de04260fa..d7c4894c6 100644 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/GPO_Blower_PWM.cs +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/GPO_Blower_PWM.cs @@ -12,48 +12,26 @@ using Tango.Stubs; include "..\..\Defines\Tango_Defines_Basic.cs" include "Tango_Defines_SSR.cs" -include "Tango_Defines_Tacho.cs" -const int Time_Test_On_Second= 60*30*3 ; //1.5 hour -const string File_Name = @"P:\Scripts\Assemblies\Dryer\Blowe_RMO_LOG.CSV"; //3 hour + public void OnExecute(StubManager stubManager) { - - var RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg8, 0); - UInt32 temp; - SetBit(FPGA1,0x3d2,5,0); //turn on Blower - SetBit(FPGA1,0x3d2,4,1); //Dir + SetBit(FPGA1,0x3d2,4,0); //Dir SetBit(FPGA1,0x3d2,3,1); //Torqer High - const int LOW = 70;//0 - 100% + const int LOW = 50;//0 - 100% var response = stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000400 | 0x112, 0xFF);//Freq 8 bit var response1 = stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000400 | 0x3EC, LOW+1);//Low 8 bit var response2 = stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000400 | 0x3EE, 101 - LOW);//High 8 bit - - - stubManager.WriteToFile(File_Name,",RPM "); - - - for (int i=0;i<Time_Test_On_Second;i++) - - { - Thread.Sleep(1000); - RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg8, 0); - temp=60/12; //60 sec - temp=temp *29166667; - temp=temp/RetVal.Value; - temp=temp/250; - stubManager.AppendToFile(File_Name,i+ ","+ temp ); - - stubManager.Write("Fan5 Speed- \t"+temp + "\n"); -// stubManager.WriteHex(RetVal.Value,4); - - } + Thread.Sleep(4000); SetBit(FPGA1,0x3d2,5,1); //turn off Blower + + // low + high = 100 % in order use the same freq + // there is option to change only the high (low + freq constasnt) this will chnga the freq }
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Load_Dryer_Arm.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Load_Dryer_Arm.cs deleted file mode 100644 index 1ce0a515f..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Load_Dryer_Arm.cs +++ /dev/null @@ -1,224 +0,0 @@ -//------------------------------------------- -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.Stubs; -using Tango.Stubs; - -include "..\..\Defines\Tango_Defines_Basic.cs" -include "..\Defines\Tango_Defines_Motors.cs" - - //-------------------------------------------------------------------------------- - -//-------------------------------------------------------------------------------- -Int32 last_14bit_position; -Int32 position_32bit; - - -public void OnExecute(StubManager stubManager) -{ - - - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190); - var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192); - last_14bit_position = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff)); - position_32bit=0; - - -//Create form - Form form1 = new Form(); - -//-------------------------------------------------------------------------------- - -// Create buttons to use as the accept and cancel buttons. - Button button1 = new Button () - { - Width = 100, - Height = 100, - }; - - Button button2 = new Button () - { - Width = 100, - Height = 100, - }; -//-------------------------------------------------------------------------------- -// Set the text of button - - button1.Text = "ARM HOME"; - - button2.Text = "ARM STRART"; - -//-------------------------------------------------------------------------------- -// Set the position of the button on the form. - - button1.Location = new Point (40, 100); - - button2.Location - = new Point (button1.Left + button1.Width + 10, 100); - -//-------------------------------------------------------------------------------- - // Add button to the form. - - form1.Controls.Add(button1); - - form1.Controls.Add(button2); - -//-------------------------------------------------------------------------------- - -// Set the caption bar text of the form. - - form1.Text = "Load Dryer Arm"; - -//-------------------------------------------------------------------------------- - - // Define the border style of the form to a dialog box. - - form1.FormBorderStyle = FormBorderStyle.FixedDialog; - - // Set the MaximizeBox to false to remove the maximize box. - - form1.MaximizeBox = false; - - // Set the MinimizeBox to false to remove the minimize box. - - form1.MinimizeBox = false; - - // Set the start position of the form to the center of the screen. - - form1.StartPosition = FormStartPosition.CenterScreen; - - - form1.AutoSize = true; - form1.AutoSizeMode = AutoSizeMode.GrowAndShrink; -//-------------------------------------------------------------------------------- - - TextBox TextBox1 = new TextBox () - { - Width = 100, - Height = 10, - Text ="20" - }; -TextBox1.Location = new Point (40, 40); - form1.Controls.Add(TextBox1); -Label Label1 = new Label () - { - Width = 150, - Height = 100, - Text ="Number round" - }; -Label1.Location = new Point (20, 10); - form1.Controls.Add(Label1); - - - -//-------------------------------------------------------------------------------- - - - - button2.Click += (_,__) => - - { - position_32bit=0; - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,5, true, 40); - Thread.Sleep(200); - - while (Math.Abs(ReadEncoder())< (UInt32.Parse(TextBox1.Text)*0x4000)) - - { - Thread.Sleep(200); - - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,5, 3); - - }; - - - -//-------------------------------------------------------------------------------- - - button1.Click += (_,__) => - { - Int32 temp3=0; - Int32 j=0; - position_32bit=0; - Int32 temp=position_32bit; - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,5, false, 40); - Thread.Sleep(200); - - while (temp3==0) - - { - Thread.Sleep(200); - ReadEncoder(); - stubManager.Write("position_32bit " + position_32bit +"\t"); - - if (Math.Abs(position_32bit)> (UInt32.Parse(TextBox1.Text)*0x4000)) - temp3=1; - if (Math.Abs(position_32bit-temp)<0x40) - j=j+1; - else - j=0; - temp=position_32bit; - if (j>3) - temp3=2; - - stubManager.Write("Temp3 " + temp3 +"\n"); - - - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,5, 3); - - }; - -//-------------------------------------------------------------------------------- - -// Display the form as a modal dialog box. - form1.ShowDialog(); - - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,5, 3); - - - return; -} - -Int32 ReadEncoder() -{ - Int32 temp; - Int32 temp1; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190); - var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192); - - temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff)); - if (temp>last_14bit_position) - { - temp1=temp-last_14bit_position; - position_32bit=position_32bit+temp1; - if (temp1>0x2000) - position_32bit=position_32bit-0x4000; - } - else if (temp<last_14bit_position) - - { - temp1=last_14bit_position-temp; - position_32bit=position_32bit-temp1; - if (temp1>0x2000) - position_32bit=position_32bit+0x4000; - } - - last_14bit_position=temp; - - return position_32bit; -} - - - diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Loading_arm_center_calibration.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Loading_arm_center_calibration.cs deleted file mode 100644 index bb502309e..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Loading_arm_center_calibration.cs +++ /dev/null @@ -1,22 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - - -ProgressRequest progressRequest = new ProgressRequest(); -progressRequest.Amount = 0xB1; - -var response = stubManager.Run<ProgressResponse>(progressRequest); - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/blower_rpm.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/blower_rpm.cs deleted file mode 100644 index 13e6af513..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/blower_rpm.cs +++ /dev/null @@ -1,62 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -include "..\..\Defines\Tango_Defines_Basic.cs" -include "Tango_Defines_SSR.cs" -include "Tango_Defines_Tacho.cs" - -const int Time_Test_On_Second= 60*30*3 ; //1.5 hour -const string File_Name = @"P:\Scripts\Assemblies\Dryer\Blowe_RMO_LOG.CSV"; //3 hour - - -public void OnExecute(StubManager stubManager) -{ - - -/* - const int LOW = 75;//0 - 100% - var response = stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000400 | 0x112, 0xFF);//Freq 8 bit - var response1 = stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000400 | 0x3EC, LOW+1);//Low 8 bit - var response2 = stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000400 | 0x3EE, 101 - LOW);//High 8 bit -*/ - - - - - - - - var RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg8, 0); - UInt32 temp; - - -// stubManager.WriteToFile(File_Name,",RPM "); - - - for (int i=0;i<Time_Test_On_Second;i++) - - { - - Thread.Sleep(1000); - RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg8, 0); - temp=60/12; //60 sec - temp=temp *29166667; - temp=temp/RetVal.Value; - temp=temp/250; -// stubManager.AppendToFile(File_Name,i+ ","+ temp ); - - stubManager.Write("Fan5 Speed- \t"+temp + "\n"); -// stubManager.WriteHex(RetVal.Value,4); - - } - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test.csv deleted file mode 100644 index a31cc8341..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test.csv +++ /dev/null @@ -1,1795 +0,0 @@ -24/05/2020 13:21:48 -0,0 -58,0 -75,0 -92,-2 -111,53 -132,36 -151,-53 -172,-14 -192,-117 -212,-100 -248,-149 -268,-309 -289,-377 -309,-453 -328,-462 -350,-539 -369,-687 -388,-747 -410,-829 -431,-842 -451,-922 -464,-991 -494,-1044 -515,-1221 -535,-1237 -557,-1312 -578,-1459 -599,-1538 -619,-1552 -639,-1626 -660,-1701 -685,-1846 -704,-1873 -720,-1940 -733,-2000 -749,-2113 -765,-2172 -783,-2231 -802,-2298 -820,-2369 -836,-2435 -861,-2494 -878,-2525 -899,-2593 -919,-2735 -933,-2809 -952,-2861 -966,-2932 -982,-2986 -996,-2982 -1014,-3033 -1035,-3101 -1052,-3242 -1078,-3239 -1101,-3341 -1124,-3425 -1146,-3570 -1181,-3595 -1203,-3783 -1216,-3799 -1235,-3850 -1250,-3921 -1277,-3984 -1298,-4147 -1318,-4223 -1336,-4294 -1355,-4298 -1374,-4365 -1396,-4444 -1427,-4591 -1458,-4713 -1484,-4751 -1505,-4914 -1533,-4960 -1555,-5028 -1574,-5172 -1596,-5244 -1619,-5268 -1642,-5419 -1664,-5499 -1686,-5520 -1706,-5606 -1733,-5740 -1757,-5783 -1776,-5935 -1793,-6007 -1811,-6065 -1830,-6133 -1849,-6207 -1870,-6276 -1891,-6285 -1912,-6366 -1940,-6511 -1962,-6546 -1977,-6627 -1992,-6683 -2012,-6739 -2032,-6815 -2055,-6963 -2077,-6996 -2093,-7053 -2119,-7114 -2142,-7283 -2164,-7362 -2187,-7380 -2210,-7531 -2235,-7615 -2254,-7642 -2276,-7714 -2302,-7874 -2322,-7900 -2342,-7972 -2373,-8107 -2396,-8161 -2416,-8310 -2442,-8383 -2465,-8413 -2490,-8566 -2512,-8591 -2536,-8677 -2562,-8785 -2581,-8858 -2612,-8929 -2653,-9040 -2681,-9265 -2700,-9302 -2720,-9370 -2741,-9446 -2760,-9591 -2782,-9659 -2805,-9679 -2829,-9834 -2848,-9917 -2866,-9988 -2888,-10052 -2907,-10069 -2925,-10142 -2939,-10213 -2961,-10260 -2997,-10379 -3021,-10549 -3041,-10570 -3062,-10646 -3081,-10717 -3102,-10790 -3124,-10934 -3146,-11013 -3165,-11031 -3183,-11105 -3203,-11176 -3229,-11309 -3251,-11341 -3271,-11427 -3291,-11562 -3309,-11635 -3331,-11704 -3349,-11783 -3367,-11800 -3388,-11860 -3405,-11927 -3434,-11996 -3450,-12165 -3465,-12226 -3484,-12284 -3503,-12351 -3519,-12424 -3532,-12485 -3554,-12535 -3578,-12558 -3600,-12638 -3626,-12784 -3648,-12819 -3670,-12898 -3683,-13042 -3705,-13028 -3728,-13181 -3746,-13196 -3761,-13260 -3780,-13332 -3800,-13399 -3817,-13546 -3837,-13532 -3871,-13699 -3887,-13736 -3906,-13799 -3923,-13929 -3943,-13927 -3963,-14067 -3982,-14138 -3998,-14214 -4017,-14271 -4043,-14281 -4062,-14375 -4078,-14512 -4100,-14570 -4122,-14650 -4143,-14668 -4165,-14750 -4188,-14912 -4205,-14982 -4234,-15015 -4255,-15158 -4268,-15231 -4286,-15282 -4309,-15353 -4323,-15375 -4344,-15488 -4362,-15511 -4381,-15579 -4401,-15647 -4422,-15718 -4444,-15860 -4470,-15888 -4493,-16044 -4515,-16130 -4536,-16147 -4558,-16220 -4575,-16366 -4596,-16434 -4622,-16458 -4644,-16543 -4674,-16690 -4697,-16742 -4714,-16887 -4733,-16945 -4749,-17019 -4772,-17084 -4786,-17104 -4803,-17219 -4820,-17281 -4834,-17347 -4847,-17398 -4878,-17453 -4895,-17500 -4915,-17567 -4935,-17706 -4952,-17778 -4967,-17844 -4985,-17831 -5004,-17962 -5021,-18035 -5037,-18099 -5056,-18159 -5094,-18189 -5113,-18369 -5131,-18440 -5150,-18442 -5169,-18512 -5189,-18582 -5205,-18658 -5220,-18719 -5241,-18775 -5266,-18922 -5287,-19012 -5306,-19028 -5326,-19100 -5349,-19244 -5374,-19335 -5393,-19353 -5410,-19424 -5424,-19486 -5444,-19536 -5471,-19705 -5491,-19721 -5511,-19789 -5529,-19869 -5551,-19944 -5564,-20076 -5586,-20060 -5608,-20205 -5633,-20234 -5652,-20317 -5684,-20387 -5706,-20507 -5722,-20652 -5741,-20713 -5758,-20789 -5774,-20843 -5789,-20839 -5805,-20901 -5827,-20964 -5845,-21104 -5866,-21173 -5886,-21250 -5914,-21265 -5937,-21434 -5952,-21454 -5984,-21572 -6002,-21693 -6022,-21759 -6035,-21827 -6055,-21880 -6074,-21952 -6096,-21963 -6124,-22044 -6139,-22210 -6161,-22270 -6183,-22287 -6201,-22367 -6223,-22432 -6236,-22578 -6255,-22567 -6272,-22706 -6288,-22696 -6333,-22837 -6356,-22935 -6370,-23012 -6392,-23067 -6408,-23144 -6429,-23276 -6446,-23350 -6467,-23413 -6486,-23488 -6507,-23559 -6521,-23575 -6542,-23627 -6562,-23707 -6583,-23777 -6604,-23924 -6628,-24003 -6647,-24020 -6669,-24103 -6696,-24238 -6724,-24362 -6741,-24445 -6760,-24507 -6780,-24579 -6805,-24595 -6829,-24754 -6848,-24777 -6872,-24847 -6890,-24936 -6918,-25083 -6939,-25111 -6956,-25181 -6971,-25240 -6990,-25300 -7007,-25366 -7024,-25432 -7045,-25497 -7064,-25648 -7086,-25710 -7108,-25787 -7137,-25898 -7156,-25978 -7184,-26052 -7202,-26158 -7224,-26220 -7238,-26306 -7255,-26354 -7275,-26415 -7296,-26493 -7310,-26509 -7336,-26584 -7351,-26654 -7370,-26712 -7392,-26779 -7405,-26926 -7426,-26916 -7446,-27058 -7464,-27130 -7483,-27193 -7507,-27270 -7541,-27400 -7555,-27417 -7573,-27468 -7593,-27538 -7616,-27613 -7636,-27759 -7660,-27839 -7677,-27865 -7701,-27933 -7724,-28080 -7743,-28161 -7777,-28174 -7798,-28359 -7821,-28381 -7837,-28533 -7856,-28585 -7875,-28655 -7889,-28723 -7907,-28712 -7934,-28851 -7957,-28890 -7974,-29033 -7989,-29098 -8003,-29087 -8024,-29140 -8048,-29224 -8100,-29328 -8117,-29567 -8146,-29633 -8169,-29672 -8192,-29823 -8209,-29846 -8226,-29909 -8245,-29966 -8258,-30037 -8284,-30092 -8306,-30261 -8329,-30336 -8348,-30355 -8378,-30432 -8402,-30552 -8425,-30632 -8439,-30779 -8459,-30833 -8490,-30859 -8505,-31025 -8519,-31011 -8545,-31067 -8570,-31177 -8592,-31257 -8622,-31430 -8643,-31449 -8662,-31595 -8683,-31670 -8701,-31742 -8721,-31815 -8747,-31838 -8765,-31984 -8786,-32053 -8813,-32076 -8835,-32236 -8854,-32311 -8869,-32381 -8890,-32442 -8904,-32458 -8925,-32575 -8939,-32587 -8952,-32700 -8972,-32751 -9004,-32783 -9026,-32946 -9043,-33020 -9063,-33084 -9081,-33099 -9098,-33168 -9117,-33226 -9139,-33298 -9160,-33382 -9180,-33528 -9202,-33599 -9224,-33614 -9252,-33700 -9274,-33808 -9292,-33884 -9304,-33949 -9326,-34004 -9342,-34154 -9360,-34142 -9377,-34203 -9395,-34272 -9415,-34341 -9445,-34481 -9467,-34531 -9485,-34671 -9505,-34744 -9527,-34761 -9541,-34837 -9556,-34892 -9576,-35011 -9591,-35017 -9610,-35137 -9640,-35168 -9659,-35321 -9682,-35337 -9707,-35423 -9728,-35574 -9750,-35594 -9767,-35681 -9781,-35733 -9797,-35848 -9818,-35909 -9838,-35921 -9867,-36005 -9889,-36110 -9907,-36191 -9931,-36258 -9950,-36410 -9971,-36485 -9989,-36497 -10010,-36562 -10031,-36641 -10057,-36777 -10081,-36820 -10101,-36901 -10123,-37038 -10145,-37121 -10161,-37135 -10180,-37193 -10206,-37285 -10227,-37432 -10248,-37509 -10270,-37525 -10291,-37673 -10313,-37751 -10330,-37830 -10344,-37894 -10368,-37947 -10387,-37972 -10407,-38047 -10425,-38120 -10439,-38183 -10459,-38236 -10486,-38377 -10507,-38415 -10523,-38488 -10541,-38553 -10561,-38620 -10578,-38696 -10592,-38758 -10610,-38810 -10630,-38869 -10652,-38952 -10679,-39094 -10702,-39132 -10724,-39289 -10746,-39361 -10763,-39383 -10792,-39464 -10809,-39617 -10823,-39679 -10837,-39731 -10854,-39716 -10884,-39853 -10901,-39893 -10918,-39957 -10939,-40021 -10959,-40171 -10977,-40241 -10991,-40305 -11007,-40362 -11020,-40350 -11035,-40403 -11051,-40518 -11081,-40576 -11113,-40661 -11132,-40739 -11151,-40873 -11172,-40952 -11194,-41027 -11213,-41043 -11227,-41116 -11248,-41163 -11283,-41294 -11308,-41450 -11329,-41537 -11352,-41553 -11370,-41638 -11391,-41702 -11408,-41850 -11428,-41906 -11448,-41982 -11473,-42053 -11493,-42082 -11512,-42221 -11535,-42291 -11559,-42322 -11579,-42404 -11598,-42538 -11622,-42618 -11644,-42636 -11663,-42718 -11701,-42790 -11718,-42997 -11741,-43062 -11760,-43141 -11778,-43156 -11804,-43232 -11829,-43388 -11849,-43411 -11871,-43482 -11894,-43629 -11919,-43715 -11947,-43746 -11974,-43853 -12021,-44016 -12040,-44123 -12083,-44198 -12103,-44417 -12125,-44487 -12147,-44507 -12178,-44624 -12198,-44707 -12219,-44850 -12241,-44919 -12266,-44937 -12286,-45032 -12309,-45174 -12331,-45195 -12351,-45280 -12384,-45423 -12405,-45472 -12428,-45622 -12447,-45704 -12469,-45707 -12491,-45794 -12508,-45940 -12523,-46004 -12538,-46059 -12553,-46050 -12567,-46104 -12580,-46216 -12605,-46267 -12624,-46295 -12640,-46365 -12659,-46425 -12681,-46498 -12694,-46643 -12716,-46628 -12731,-46772 -12750,-46833 -12775,-46905 -12798,-46942 -12820,-47084 -12846,-47120 -12859,-47197 -12876,-47246 -12895,-47312 -12908,-47378 -12928,-47490 -12942,-47507 -12960,-47562 -12989,-47650 -13009,-47797 -13031,-47876 -13049,-47891 -13069,-47958 -13085,-48034 -13107,-48096 -13126,-48241 -13147,-48314 -13168,-48388 -13195,-48402 -13230,-48571 -13249,-48698 -13263,-48772 -13284,-48821 -13298,-48841 -13316,-48955 -13332,-49021 -13346,-49084 -13359,-49132 -13387,-49123 -13409,-49227 -13432,-49309 -13453,-49458 -13470,-49542 -13490,-49601 -13506,-49672 -13526,-49732 -13544,-49739 -13564,-49809 -13592,-49977 -13615,-49994 -13634,-50072 -13653,-50144 -13669,-50281 -13683,-50276 -13695,-50325 -13711,-50385 -13727,-50499 -13747,-50565 -13767,-50571 -13799,-50650 -13822,-50774 -13841,-50921 -13867,-51000 -13880,-51017 -13914,-51134 -13938,-51268 -13960,-51290 -13980,-51364 -13995,-51508 -14010,-51564 -14028,-51551 -14056,-51710 -14078,-51734 -14112,-51885 -14134,-51931 -14153,-52077 -14175,-52149 -14190,-52230 -14209,-52284 -14231,-52353 -14244,-52374 -14272,-52452 -14291,-52595 -14310,-52661 -14343,-52737 -14364,-52861 -14377,-52933 -14400,-52984 -14413,-53004 -14427,-53122 -14453,-53137 -14470,-53204 -14485,-53263 -14499,-53324 -14521,-53442 -14558,-53478 -14580,-53602 -14602,-53743 -14622,-53826 -14642,-53833 -14665,-53905 -14693,-54058 -14716,-54100 -14735,-54182 -14748,-54247 -14771,-54305 -14791,-54458 -14811,-54528 -14829,-54599 -14856,-54610 -14871,-54775 -14899,-54853 -14913,-54865 -14932,-54981 -14952,-54992 -14970,-55074 -14995,-55136 -15023,-55254 -15042,-55329 -15070,-55470 -15092,-55505 -15115,-55582 -15133,-55729 -15151,-55801 -15170,-55869 -15189,-55934 -15209,-55946 -15228,-56019 -15247,-56088 -15268,-56157 -15295,-56303 -15313,-56343 -15331,-56406 -15344,-56470 -15364,-56581 -15377,-56591 -15395,-56710 -15415,-56715 -15433,-56782 -15454,-56853 -15486,-56935 -15508,-57055 -15528,-57197 -15548,-57271 -15569,-57346 -15588,-57360 -15608,-57429 -15627,-57497 -15648,-57568 -15675,-57713 -15695,-57752 -15718,-57824 -15738,-57978 -15760,-58050 -15779,-58064 -15793,-58136 -15808,-58186 -15826,-58305 -15846,-58374 -15864,-58388 -15890,-58453 -15911,-58611 -15935,-58639 -15949,-58720 -15967,-58768 -15980,-58834 -15998,-58951 -16017,-58954 -16038,-59022 -16059,-59104 -16089,-59245 -16111,-59292 -16133,-59435 -16152,-59518 -16169,-59592 -16192,-59656 -16223,-59674 -16242,-59791 -16260,-59860 -16288,-59930 -16308,-60097 -16328,-60114 -16355,-60185 -16379,-60355 -16398,-60380 -16412,-60442 -16431,-60495 -16445,-60565 -16467,-60619 -16481,-60700 -16506,-60748 -16527,-60918 -16547,-60995 -16565,-61063 -16588,-61069 -16620,-61225 -16641,-61272 -16663,-61342 -16682,-61488 -16702,-61561 -16718,-61634 -16744,-61693 -16766,-61722 -16784,-61874 -16806,-61943 -16827,-61965 -16844,-62041 -16867,-62185 -16887,-62253 -16908,-62329 -16929,-62402 -16951,-62422 -16973,-62581 -16994,-62653 -17014,-62666 -17031,-62736 -17050,-62804 -17064,-62875 -17083,-62926 -17108,-62994 -17144,-63114 -17165,-63287 -17185,-63305 -17204,-63374 -17223,-63446 -17236,-63517 -17253,-63571 -17269,-63630 -17288,-63693 -17310,-63766 -17330,-63846 -17349,-63995 -17375,-64015 -17394,-64086 -17416,-64158 -17432,-64310 -17449,-64380 -17465,-64430 -17479,-64490 -17499,-64484 -17513,-64621 -17539,-64610 -17560,-64771 -17579,-64778 -17593,-64856 -17612,-64905 -17634,-64976 -17653,-65056 -17676,-65193 -17698,-65281 -17715,-65299 -17741,-65361 -17764,-65524 -17785,-65605 -17805,-65622 -17825,-65699 -17849,-65844 -17867,-65866 -17887,-65930 -17907,-66003 -17927,-66079 -17946,-66218 -17965,-66291 -17992,-66358 -18027,-66474 -18051,-66534 -18072,-66683 -18088,-66758 -18110,-66763 -18132,-66837 -18155,-66920 -18172,-67068 -18202,-67131 -18225,-67246 -18245,-67329 -18265,-67339 -18284,-67417 -18307,-67491 -18331,-67647 -18351,-67665 -18370,-67736 -18387,-67806 -18414,-67878 -18433,-68039 -18455,-68042 -18479,-68131 -18500,-68287 -18521,-68358 -18538,-68372 -18552,-68434 -18566,-68489 -18589,-68604 -18609,-68624 -18637,-68784 -18658,-68868 -18679,-68881 -18702,-68961 -18715,-69108 -18737,-69093 -18759,-69239 -18779,-69319 -18802,-69337 -18818,-69484 -18846,-69479 -18870,-69590 -18892,-69738 -18915,-69821 -18931,-69850 -18945,-69900 -18965,-70016 -18979,-70027 -18995,-70150 -19014,-70201 -19049,-70231 -19072,-70345 -19091,-70423 -19106,-70493 -19126,-70547 -19145,-70620 -19163,-70692 -19185,-70760 -19205,-70908 -19242,-70978 -19264,-71059 -19283,-71140 -19297,-71273 -19317,-71258 -19335,-71333 -19353,-71467 -19368,-71534 -19386,-71524 -19404,-71590 -19420,-71722 -19446,-71719 -19468,-71827 -19485,-71896 -19503,-71960 -19521,-72027 -19539,-72097 -19557,-72165 -19579,-72303 -19600,-72377 -19626,-72455 -19647,-72487 -19669,-72627 -19687,-72708 -19703,-72713 -19720,-72778 -19738,-72899 -19759,-72964 -19779,-72979 -19798,-73056 -19830,-73197 -19849,-73242 -19871,-73320 -19889,-73466 -19906,-73528 -19922,-73597 -19937,-73653 -19954,-73717 -19970,-73771 -19988,-73766 -20001,-73831 -20027,-73883 -20049,-74053 -20069,-74069 -20085,-74135 -20099,-74193 -20132,-74250 -20152,-74433 -20172,-74444 -20191,-74517 -20206,-74584 -20234,-74641 -20256,-74814 -20274,-74826 -20296,-74900 -20313,-74979 -20335,-75114 -20352,-75191 -20375,-75250 -20394,-75336 -20413,-75342 -20440,-75504 -20460,-75581 -20482,-75593 -20499,-75676 -20521,-75740 -20540,-75881 -20561,-75956 -20583,-76031 -20602,-76049 -20624,-76119 -20646,-76198 -20673,-76308 -20695,-76379 -20719,-76524 -20738,-76612 -20760,-76620 -20775,-76702 -20793,-76757 -20814,-76827 -20835,-76903 -20858,-77049 -20880,-77071 -20900,-77147 -20912,-77221 -20933,-77275 -20955,-77350 -20975,-77498 -20997,-77567 -21030,-77602 -21064,-77802 -21084,-77847 -21103,-77909 -21121,-77980 -21141,-78050 -21159,-78119 -21176,-78253 -21200,-78323 -21219,-78406 -21235,-78409 -21248,-78532 -21270,-78580 -21299,-78606 -21322,-78781 -21336,-78800 -21354,-78912 -21369,-78984 -21385,-79035 -21400,-79102 -21419,-79164 -21433,-79224 -21459,-79273 -21478,-79314 -21492,-79383 -21509,-79436 -21526,-79499 -21546,-79565 -21566,-79639 -21586,-79718 -21601,-79855 -21623,-79841 -21641,-79987 -21670,-80019 -21690,-80101 -21711,-80242 -21730,-80316 -21749,-80388 -21771,-80394 -21790,-80473 -21811,-80545 -21830,-80690 -21849,-80760 -21874,-80829 -21900,-80954 -21924,-81022 -21941,-81054 -21968,-81218 -21988,-81283 -22008,-81295 -22032,-81372 -22052,-81519 -22073,-81597 -22087,-81610 -22118,-81731 -22146,-81860 -22168,-81881 -22187,-82026 -22210,-82099 -22258,-82180 -22283,-82370 -22333,-82463 -22355,-82578 -22379,-82729 -22401,-82771 -22418,-82836 -22440,-82899 -22457,-82982 -22472,-83048 -22495,-83112 -22521,-83251 -22542,-83288 -22570,-83362 -22586,-83466 -22607,-83590 -22628,-83609 -22648,-83683 -22667,-83821 -22686,-83891 -22706,-83968 -22726,-83978 -22742,-84049 -22762,-84110 -22778,-84181 -22803,-84244 -22823,-84402 -22844,-84478 -22865,-84494 -22882,-84569 -22896,-84632 -22914,-84684 -22934,-84748 -22951,-84832 -22980,-84891 -23001,-85006 -23024,-85078 -23043,-85227 -23060,-85299 -23083,-85366 -23105,-85446 -23129,-85461 -23164,-85600 -23193,-85747 -23214,-85794 -23233,-85930 -23254,-86001 -23274,-86078 -23288,-86093 -23307,-86210 -23327,-86280 -23344,-86292 -23361,-86356 -23385,-86437 -23402,-86582 -23430,-86635 -23451,-86678 -23468,-86756 -23489,-86820 -23503,-86959 -23516,-86943 -23533,-86995 -23553,-87058 -23569,-87131 -23593,-87193 -23615,-87346 -23634,-87423 -23650,-87434 -23672,-87558 -23691,-87575 -23713,-87644 -23738,-87792 -23760,-87822 -23783,-87902 -23805,-88053 -23818,-88132 -23838,-88183 -23851,-88259 -23871,-88313 -23887,-88382 -23900,-88437 -23918,-88423 -23938,-88561 -23959,-88637 -23987,-88649 -24008,-88817 -24032,-88890 -24055,-88928 -24075,-89066 -24088,-89138 -24105,-89123 -24127,-89257 -24150,-89336 -24177,-89353 -24201,-89532 -24224,-89548 -24241,-89632 -24264,-89696 -24280,-89847 -24300,-89910 -24321,-89982 -24343,-89993 -24364,-90076 -24396,-90226 -24413,-90269 -24430,-90333 -24449,-90393 -24470,-90537 -24489,-90617 -24505,-90674 -24519,-90738 -24536,-90728 -24556,-90791 -24580,-90932 -24611,-90957 -24636,-91143 -24658,-91162 -24678,-91307 -24699,-91378 -24721,-91458 -24737,-91477 -24758,-91536 -24777,-91614 -24801,-91754 -24825,-91846 -24846,-91866 -24864,-92013 -24880,-92073 -24899,-92071 -24917,-92206 -24941,-92279 -24963,-92301 -24982,-92381 -25006,-92453 -25028,-92613 -25045,-92625 -25066,-92686 -25084,-92771 -25101,-92828 -25122,-92893 -25141,-93033 -25160,-93105 -25179,-93174 -25199,-93245 -25223,-93263 -25258,-93438 -25278,-93478 -25299,-93620 -25326,-93694 -25350,-93802 -25373,-93889 -25395,-93903 -25417,-94059 -25439,-94137 -25470,-94182 -25483,-94326 -25500,-94380 -25517,-94446 -25539,-94516 -25553,-94585 -25566,-94633 -25582,-94619 -25595,-94680 -25618,-94730 -25640,-94817 -25660,-94962 -25678,-95036 -25697,-95104 -25716,-95173 -25735,-95177 -25754,-95247 -25770,-95326 -25786,-95388 -25803,-95442 -25823,-95507 -25851,-95577 -25869,-95693 -25892,-95755 -25913,-95839 -25933,-95986 -25954,-96065 -25974,-96078 -25993,-96143 -26007,-96217 -26036,-96274 -26056,-96449 -26070,-96517 -26088,-96570 -26109,-96635 -26132,-96654 -26163,-96736 -26185,-96847 -26207,-96933 -26233,-97084 -26256,-97116 -26277,-97261 -26296,-97345 -26311,-97416 -26329,-97471 -26341,-97534 -26358,-97585 -26376,-97651 -26392,-97712 -26411,-97775 -26440,-97846 -26461,-97892 -26480,-98033 -26501,-98112 -26525,-98124 -26549,-98212 -26586,-98329 -26603,-98446 -26619,-98558 -26635,-98619 -26656,-98679 -26681,-98759 -26704,-98792 -26724,-98944 -26747,-98955 -26770,-99039 -26785,-99191 -26801,-99245 -26820,-99307 -26837,-99389 -26866,-99447 -26890,-99493 -26910,-99638 -26927,-99712 -26949,-99780 -26983,-99800 -27010,-99941 -27026,-100094 -27055,-100148 -27083,-100198 -27101,-100358 -27123,-100369 -27139,-100441 -27155,-100500 -27176,-100567 -27190,-100643 -27208,-100697 -27232,-100768 -27252,-100913 -27273,-100994 -27287,-101005 -27309,-101117 -27324,-101137 -27346,-101207 -27368,-101283 -27391,-101428 -27407,-101505 -27421,-101571 -27440,-101623 -27459,-101641 -27478,-101712 -27499,-101774 -27526,-101849 -27541,-102017 -27560,-102067 -27579,-102144 -27593,-102206 -27606,-102258 -27622,-102245 -27648,-102393 -27661,-102463 -27674,-102511 -27693,-102497 -27723,-102642 -27740,-102681 -27759,-102740 -27778,-102812 -27798,-102887 -27814,-103025 -27833,-103016 -27852,-103155 -27873,-103228 -27889,-103243 -27909,-103366 -27929,-103375 -27959,-103450 -27981,-103566 -28000,-103650 -28023,-103789 -28037,-103865 -28057,-103927 -28076,-103993 -28096,-104062 -28116,-104136 -28137,-104144 -28166,-104227 -28189,-104334 -28207,-104422 -28230,-104487 -28260,-104637 -28276,-104752 -28303,-104827 -28325,-104848 -28339,-104926 -28368,-104978 -28384,-105154 -28407,-105215 -28429,-105238 -28447,-105317 -28468,-105374 -28490,-105524 -28511,-105548 -28532,-105617 -28551,-105691 -28582,-105843 -28602,-105885 -28624,-105958 -28639,-106093 -28654,-106153 -28676,-106148 -28698,-106294 -28720,-106372 -28742,-106389 -28762,-106542 -28784,-106612 -28801,-106690 -28834,-106760 -28856,-106883 -28876,-106900 -28894,-107049 -28914,-107042 -28931,-107182 -28949,-107245 -28968,-107309 -28987,-107378 -29008,-107448 -29036,-107466 -29062,-107645 -29084,-107663 -29106,-107742 -29129,-107895 -29150,-107975 -29173,-108080 -29195,-108138 -29221,-108226 -29243,-108255 -29262,-108397 -29276,-108473 -29296,-108522 -29323,-108560 -29346,-108715 -29379,-108786 -29394,-108913 -29415,-108969 -29434,-109041 -29461,-109116 -29478,-109151 -29501,-109218 -29525,-109370 -29546,-109388 -29564,-109472 -29584,-109534 -29604,-109607 -29625,-109740 -29641,-109821 -29657,-109891 -29685,-109942 -29705,-109980 -29724,-110052 -29747,-110193 -29770,-110277 -29789,-110297 -29811,-110368 -29834,-110519 -29856,-110537 -29876,-110614 -29899,-110762 -29925,-110813 -29939,-110875 -29954,-110930 -29971,-111046 -29988,-111112 -30007,-111124 -30021,-111182 -30035,-111297 -30065,-111352 -30091,-111468 -30109,-111560 -30131,-111623 -30145,-111642 -30160,-111691 -30179,-111816 -30202,-111827 -30223,-111907 -30245,-112050 -30266,-112133 -30286,-112154 -30304,-112220 -30332,-112288 -30355,-112411 -30369,-112486 -30389,-112537 -30402,-112608 -30418,-112655 -30434,-112717 -30449,-112778 -30467,-112904 -30480,-112960 -30502,-113018 -30531,-113035 -30554,-113213 -30574,-113228 -30593,-113301 -30612,-113374 -30631,-113442 -30654,-113580 -30682,-113661 -30704,-113771 -30723,-113850 -30748,-113867 -30762,-113953 -30789,-114009 -30814,-114179 -30836,-114199 -30857,-114348 -30871,-114425 -30890,-114479 -30909,-114551 -30931,-114618 -30952,-114639 -30969,-114717 -30990,-114784 -31005,-114922 -31025,-114911 -31050,-115059 -31073,-115144 -31095,-115160 -31114,-115311 -31149,-115366 -31167,-115512 -31193,-115582 -31207,-115617 -31221,-115670 -31244,-115721 -31288,-115805 -31311,-116036 -31331,-116058 -31354,-116131 -31386,-116264 -31410,-116405 -31433,-116425 -31459,-116511 -31481,-116672 -31521,-116700 -31547,-116917 -31567,-116940 -31587,-117015 -31615,-117084 -31634,-117252 -31652,-117261 -31674,-117329 -31689,-117409 -31708,-117464 -31730,-117611 -31746,-117682 -31768,-117742 -31788,-117825 -31805,-117835 -31825,-117900 -31853,-117979 -31873,-118147 -31892,-118171 -31909,-118229 -31923,-118289 -31937,-118405 -31954,-118456 -31976,-118520 -32004,-118537 -32020,-118714 -32033,-118766 -32056,-118753 -32076,-118903 -32096,-118977 -32119,-118992 -32137,-119066 -32159,-119134 -32197,-119261 -32219,-119428 -32238,-119441 -32255,-119514 -32271,-119578 -32289,-119635 -32305,-119700 -32323,-119764 -32338,-119836 -32353,-119886 -32367,-119947 -32381,-120062 -32412,-120135 -32447,-120253 -32469,-120361 -32488,-120442 -32510,-120514 -32524,-120531 -32546,-120648 -32566,-120661 -32581,-120742 -32594,-120791 -32607,-120903 -32639,-120956 -32662,-121074 -32684,-121153 -32707,-121176 -32729,-121326 -32750,-121416 -32773,-121422 -32795,-121508 -32820,-121663 -32844,-121682 -32864,-121836 -32881,-121911 -32896,-121980 -32910,-122031 -32927,-122018 -32948,-122159 -32962,-122224 -32979,-122282 -32994,-122280 -33015,-122336 -33040,-122407 -33077,-122520 -33099,-122639 -33118,-122714 -33134,-122785 -33150,-122847 -33163,-122907 -33182,-122954 -33204,-123027 -33224,-123108 -33251,-123246 -33275,-123289 -33294,-123435 -33318,-123522 -33335,-123536 -33357,-123607 -33378,-123680 -33400,-123825 -33417,-123908 -33438,-123921 -33467,-123977 -33490,-124154 -33511,-124178 -33531,-124253 -33547,-124326 -33563,-124390 -33586,-124443 -33607,-124596 -33626,-124676 -33648,-124740 -33677,-124761 -33699,-124934 -33712,-124951 -33726,-125064 -33743,-125115 -33766,-125180 -33790,-125207 -33813,-125360 -33838,-125448 -33864,-125545 -33890,-125632 -33912,-125666 -33934,-125812 -33960,-125891 -33975,-125927 -33992,-125982 -34011,-126044 -34027,-126114 -34042,-126178 -34063,-126235 -34089,-126306 -34109,-126465 -34131,-126482 -34144,-126559 -34168,-126613 -34188,-126761 -34206,-126833 -34226,-126905 -34246,-126978 -34277,-127046 -34306,-127172 -34328,-127280 -34348,-127359 -34368,-127371 -34391,-127449 -34411,-127597 -34431,-127673 -34453,-127740 -34473,-127775 -34496,-127839 -34515,-127987 -34541,-128059 -34566,-128093 -34590,-128256 -34608,-128269 -34632,-128342 -34653,-128492 -34674,-128569 -34695,-128646 -34717,-128661 -34748,-128816 -34769,-128866 -34783,-129005 -34803,-128988 -34819,-129131 -34843,-129204 -34870,-129232 -34891,-129320 -34912,-129463 -34927,-129482 -34955,-129599 -34977,-129710 -34995,-129788 -35011,-129852 -35028,-129913 -35046,-129975 -35065,-130038 -35085,-130115 -35098,-130124 -35114,-130247 -35131,-130298 -35155,-130364 -35197,-130489 -35214,-130608 -35234,-130669 -35250,-130745 -35272,-130806 -35292,-130888 -35306,-130899 -35321,-130954 -35337,-131070 -35368,-131140 -35391,-131252 -35411,-131335 -35426,-131348 -35442,-131406 -35465,-131527 -35479,-131542 -35493,-131594 -35519,-131685 -35545,-131751 -35565,-131854 -35579,-131919 -35593,-132035 -35608,-132085 -35636,-132165 -35656,-132185 -35677,-132262 -35699,-132410 -35722,-132487 -35741,-132504 -35760,-132572 -35788,-132736 -35805,-132758 -35823,-132821 -35839,-132882 -35862,-132947 -35883,-133102 -35903,-133178 -35925,-133248 -35946,-133268 -35961,-133348 -35979,-133415 -36006,-133467 -36026,-133577 -36047,-133644 -36071,-133727 -36098,-133894 -36116,-133913 -36133,-133978 -36153,-134041 -36181,-134112 -36204,-134220 -36226,-134303 -36245,-134453 -36268,-134524 -36287,-134541 -36305,-134611 -36326,-134684 -36360,-134760 -36384,-134958 -36411,-135044 -36429,-135156 -36443,-135143 -36461,-135193 -36482,-135265 -36498,-135416 -36516,-135468 -36544,-135550 -36563,-135570 -36585,-135645 -36607,-135790 -36629,-135865 -36657,-135883 -36682,-136058 -36703,-136087 -36726,-136160 -36746,-136314 -36768,-136389 -36788,-136407 -36806,-136475 -36821,-136544 -36846,-136602 -36866,-136765 -36886,-136840 -36905,-136845 -36921,-136914 -36941,-136980 -36958,-137055 -36980,-137114 -37003,-137264 -37022,-137349 -37048,-137357 -37070,-137515 -37089,-141224 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test1.cs deleted file mode 100644 index 9be6f1ec6..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test1.cs +++ /dev/null @@ -1,78 +0,0 @@ -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.Stubs; -using Tango.Stubs; - - -Int32 last_14bit_position; -Int32 position_32bit=0; -const Int32 DrierLoadingArm_Motor = 5; -public void OnExecute(StubManager stubManager) -{ - string FileName="test.csv"; - var stopwatch = new Stopwatch(); - stopwatch.Start(); - - long elapsed_time = stopwatch.ElapsedMilliseconds; - - ReadEncoder_Dryer(); - position_32bit=0; - ReadEncoder_Dryer(); - Int32 temp=position_32bit; - - stubManager.WriteToFile(FileName,DateTime.Now +" " ); -//stubManager.AppendToFile("test.csv",elapsed_time+ ","+ position_32bit ); - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, false, 100);//40 - elapsed_time = stopwatch.ElapsedMilliseconds; - stubManager.AppendToFile(FileName,elapsed_time+ ","+ position_32bit ); - while (true) - { - ReadEncoder_Dryer(); - elapsed_time = stopwatch.ElapsedMilliseconds; -stubManager.AppendToFile(FileName,elapsed_time+ ","+ position_32bit ); - Thread.Sleep(1); - } - -} - - - -void ReadEncoder_Dryer() -{ - Int32 temp; - Int32 temp1; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190); - var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192); - - temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff)); - if (temp>last_14bit_position) - { - temp1=temp-last_14bit_position; - position_32bit=position_32bit+temp1; - if (temp1>0x2000) - position_32bit=position_32bit-0x4000; - } - else if (temp<last_14bit_position) - - { - temp1=last_14bit_position-temp; - position_32bit=position_32bit-temp1; - if (temp1>0x2000) - position_32bit=position_32bit+0x4000; - } - - last_14bit_position=temp; - - return ; -} - diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test1.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test1.csv deleted file mode 100644 index ed306d345..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test1.csv +++ /dev/null @@ -1,345 +0,0 @@ -24/05/2020 14:15:24 -0,0 -0,-8 -0,27 -0,32 -0,34 -0,-18 -0,32 -0,36 -0,-20 -0,30 -0,41 -0,35 -0,36 -0,41 -0,36 -0,36 -0,-21 -0,31 -0,-21 -0,30 -0,-21 -0,31 -0,-20 -0,31 -0,-20 -0,31 -0,-21 -0,35 -0,38 -0,30 -0,-21 -0,30 -0,-20 -0,30 -0,-21 -0,31 -0,38 -0,31 -0,-20 -0,30 -0,-20 -0,31 -0,-21 -0,31 -0,-21 -0,30 -0,-22 -0,37 -0,36 -0,38 -0,39 -0,33 -0,-22 -0,30 -0,-21 -0,30 -0,-21 -0,30 -0,-20 -0,31 -0,41 -0,34 -0,40 -0,37 -0,30 -0,-22 -0,34 -0,41 -0,35 -0,37 -0,39 -0,37 -0,40 -0,33 -0,38 -0,33 -0,-20 -0,36 -0,37 -0,39 -0,39 -0,38 -0,37 -0,39 -0,35 -0,36 -0,-21 -0,38 -0,40 -0,32 -0,-22 -0,33 -0,41 -0,31 -0,-22 -0,36 -0,35 -0,32 -0,-17 -0,-22 -0,7 -0,43 -0,122 -0,287 -0,302 -0,374 -0,452 -0,582 -0,725 -0,779 -0,803 -0,799 -0,716 -0,557 -0,454 -0,473 -0,381 -0,349 -0,216 -0,66 -0,96 -0,-62 -0,-157 -0,-231 -0,-327 -0,-310 -0,-463 -0,-542 -0,-600 -0,-712 -0,-789 -0,-807 -0,-957 -0,-1015 -0,-1013 -0,-1172 -0,-1175 -0,-1269 -0,-1400 -0,-1434 -0,-1496 -0,-1573 -0,-1683 -0,-1750 -0,-1781 -0,-1914 -0,-1998 -0,-2131 -0,-2150 -0,-2225 -0,-2269 -0,-2328 -0,-2420 -0,-2553 -0,-2626 -0,-2692 -0,-2768 -0,-2888 -0,-2963 -0,-2969 -0,-3054 -0,-3215 -0,-3229 -0,-3304 -0,-3448 -0,-3526 -0,-3605 -0,-3709 -0,-3780 -0,-3806 -0,-3865 -0,-3984 -0,-3992 -0,-4074 -0,-4222 -0,-4204 -0,-4269 -0,-4407 -0,-4445 -0,-4512 -0,-4586 -0,-4728 -0,-4814 -0,-4875 -0,-4890 -0,-4967 -0,-5038 -0,-5109 -0,-5216 -0,-5297 -0,-5447 -0,-5496 -0,-5566 -0,-5637 -0,-5718 -0,-5724 -0,-5806 -0,-5962 -0,-6037 -0,-6145 -0,-6222 -0,-6235 -0,-6320 -0,-6467 -0,-6490 -0,-6576 -0,-6636 -0,-6784 -0,-7020 -0,-7175 -0,-7206 -0,-7271 -0,-7334 -0,-7405 -0,-7465 -0,-7611 -0,-7684 -0,-7726 -0,-7882 -0,-7909 -0,-7984 -0,-8052 -0,-8183 -0,-8249 -0,-8333 -0,-8383 -0,-8461 -0,-8488 -0,-8553 -0,-8625 -0,-8693 -0,-8831 -0,-8904 -0,-8920 -0,-8998 -0,-9109 -0,-9167 -0,-9195 -0,-9360 -0,-9374 -0,-9433 -0,-9517 -0,-9657 -0,-9721 -0,-9718 -0,-9862 -0,-9934 -0,-9946 -0,-10025 -0,-10191 -0,-10262 -0,-10325 -0,-10379 -0,-10438 -0,-10490 -0,-10559 -0,-10544 -0,-10687 -0,-10757 -0,-10873 -0,-10953 -0,-11008 -0,-11063 -0,-11062 -0,-11215 -0,-11230 -0,-11303 -0,-11378 -0,-11523 -0,-11560 -0,-11706 -0,-11794 -0,-11816 -0,-11868 -0,-11990 -0,-11991 -0,-12065 -0,-12136 -0,-12189 -0,-12350 -0,-12376 -0,-12459 -0,-12527 -0,-12595 -0,-12658 -0,-12798 -0,-12790 -0,-12925 -0,-12999 -0,-13076 -0,-13100 -0,-13259 -0,-13277 -0,-13358 -0,-13505 -0,-13586 -0,-13654 -0,-13676 -0,-13739 -0,-13806 -0,-13958 -0,-14016 -0,-14049 -0,-14118 -0,-14187 -0,-14244 -0,-14297 -0,-14365 -0,-14453 -0,-14595 -0,-14618 -0,-14698 -0,-14754 -0,-14837 -0,-14973 -0,-15045 -0,-15116 -0,-15187 -0,-15235 -0,-15287 -0,-15353 -0,-15386 -0,-15499 -0,-15565 -0,-15616 -0,-15701 -0,-15764 -0,-15787 -0,-15856 -0,-15994 -0,-16074 -0,-16097 -0,-16271 -0,-16340 -0,-16359 -0,-16504 -0,-16502 -0,-16565 -0,-16617 -0,-16692 -0,-16830 -0,-16905 -0,-16944 -0,-17014 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test12.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test12.csv deleted file mode 100644 index 756c780f4..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test12.csv +++ /dev/null @@ -1,283 +0,0 @@ -24/05/2020 14:47:25 -41,0 -63,7 -77,-31 -91,-29 -117,18 -131,-77 -162,-86 -175,-131 -195,-105 -212,-219 -226,-189 -244,-283 -265,-341 -286,-357 -300,-430 -323,-543 -345,-561 -366,-712 -386,-795 -403,-803 -425,-926 -459,-944 -480,-1076 -502,-1145 -524,-1289 -544,-1319 -563,-1389 -585,-1458 -605,-1537 -627,-1681 -649,-1703 -672,-1781 -695,-1925 -723,-2014 -744,-2124 -764,-2190 -789,-2274 -809,-2306 -824,-2441 -841,-2430 -864,-2490 -882,-2636 -904,-2711 -927,-2732 -949,-2809 -973,-2960 -996,-2980 -1010,-3068 -1024,-3117 -1047,-3232 -1071,-3260 -1090,-3409 -1109,-3476 -1131,-3545 -1150,-3563 -1166,-3636 -1180,-3699 -1196,-3749 -1219,-3872 -1243,-3902 -1266,-4051 -1280,-4071 -1293,-4181 -1315,-4230 -1339,-4322 -1356,-4343 -1375,-4400 -1395,-4474 -1412,-4618 -1432,-4683 -1457,-4765 -1486,-4784 -1510,-4961 -1524,-4984 -1547,-5035 -1560,-5115 -1580,-5168 -1597,-5246 -1612,-5312 -1633,-5361 -1653,-5440 -1672,-5577 -1685,-5649 -1709,-5634 -1728,-5788 -1744,-5855 -1758,-5919 -1777,-5969 -1792,-6041 -1808,-6100 -1831,-6160 -1847,-6179 -1866,-6304 -1885,-6312 -1904,-6381 -1930,-6451 -1953,-6620 -1972,-6637 -1994,-6707 -2010,-6851 -2032,-6849 -2054,-6997 -2073,-7014 -2091,-7083 -2121,-7159 -2143,-7267 -2165,-7345 -2181,-7424 -2195,-7556 -2209,-7547 -2229,-7607 -2245,-7669 -2262,-7732 -2276,-7795 -2296,-7847 -2310,-7924 -2329,-7971 -2355,-8048 -2376,-8209 -2398,-8285 -2411,-8299 -2434,-8415 -2457,-8435 -2479,-8582 -2501,-8612 -2519,-8690 -2539,-8753 -2557,-8824 -2576,-8891 -2607,-9028 -2629,-9082 -2645,-9227 -2659,-9290 -2681,-9279 -2698,-9424 -2720,-9487 -2741,-9509 -2761,-9583 -2796,-9738 -2815,-9793 -2834,-9858 -2859,-9996 -2876,-10039 -2890,-10089 -2909,-10148 -2923,-10212 -2945,-10330 -2963,-10344 -2979,-10411 -2994,-10476 -3015,-10533 -3046,-10612 -3069,-10727 -3082,-10804 -3107,-10853 -3122,-10945 -3137,-11001 -3152,-11056 -3170,-11120 -3189,-11187 -3208,-11256 -3229,-11327 -3248,-11473 -3266,-11536 -3283,-11607 -3296,-11664 -3319,-11648 -3341,-11799 -3354,-11817 -3374,-11932 -3390,-12002 -3405,-12061 -3427,-12121 -3440,-12139 -3458,-12251 -3473,-12260 -3490,-12374 -3512,-12438 -3546,-12457 -3565,-12580 -3588,-12657 -3611,-12809 -3631,-12894 -3653,-12902 -3677,-12986 -3696,-13139 -3716,-13210 -3739,-13225 -3757,-13306 -3777,-13372 -3807,-13512 -3830,-13560 -3847,-13707 -3863,-13771 -3885,-13831 -3908,-13917 -3924,-13944 -3947,-13997 -3967,-14147 -4025,-14263 -4060,-14374 -4083,-14502 -4106,-14586 -4129,-14735 -4143,-14759 -4162,-14875 -4180,-14945 -4199,-15010 -4222,-15017 -4240,-15175 -4258,-15243 -4278,-15305 -4292,-15377 -4318,-15431 -4342,-15476 -4361,-15622 -4380,-15690 -4395,-15758 -4410,-15817 -4427,-15808 -4443,-15863 -4462,-15925 -4476,-15996 -4496,-16050 -4513,-16126 -4534,-16187 -4568,-16345 -4587,-16454 -4603,-16526 -4619,-16582 -4641,-16645 -4663,-16728 -4676,-16740 -4689,-16854 -4702,-16901 -4720,-16884 -4734,-16954 -4753,-17004 -4774,-17075 -4795,-17230 -4812,-17304 -4828,-17365 -4842,-17425 -4863,-17481 -4877,-17556 -4891,-17608 -4911,-17594 -4926,-17738 -4946,-17724 -4973,-17877 -4996,-17905 -5020,-17982 -5043,-18144 -5063,-18160 -5078,-18236 -5097,-18286 -5110,-18359 -5126,-18407 -5146,-18474 -5161,-18539 -5174,-18658 -5192,-18708 -5205,-18773 -5220,-18823 -5249,-18813 -5270,-18926 -5287,-19001 -5303,-19069 -5324,-19129 -5344,-19202 -5360,-19341 -5383,-19409 -5401,-19431 -5415,-19493 -5430,-19607 -5443,-19660 -5464,-19716 -5554,-20053 -5575,-20128 -5592,-20147 -5612,-20199 -5631,-20274 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test13.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test13.csv deleted file mode 100644 index 7344cf879..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test13.csv +++ /dev/null @@ -1,290 +0,0 @@ -24/05/2020 14:47:49 -41,0 -56,0 -71,0 -90,-1 -104,-9 -122,-19 -155,-104 -176,-162 -197,-137 -216,-184 -235,-295 -257,-352 -279,-425 -300,-496 -321,-510 -342,-592 -356,-736 -371,-722 -387,-772 -405,-829 -426,-907 -445,-1049 -476,-1115 -497,-1171 -516,-1318 -534,-1335 -555,-1450 -576,-1462 -594,-1542 -613,-1609 -627,-1680 -645,-1727 -666,-1795 -689,-1944 -710,-2032 -738,-2045 -758,-2209 -779,-2291 -797,-2301 -811,-2367 -827,-2478 -843,-2537 -859,-2598 -874,-2660 -893,-2721 -914,-2789 -934,-2866 -956,-2879 -982,-2962 -999,-3121 -1019,-3185 -1039,-3194 -1057,-3274 -1082,-3420 -1102,-3494 -1122,-3567 -1136,-3578 -1149,-3690 -1164,-3743 -1178,-3797 -1199,-3790 -1228,-3950 -1249,-3977 -1267,-4119 -1289,-4183 -1306,-4263 -1329,-4332 -1350,-4351 -1363,-4425 -1400,-4481 -1422,-4620 -1436,-4764 -1450,-4750 -1475,-4805 -1491,-4961 -1508,-5022 -1525,-5084 -1543,-5150 -1569,-5234 -1585,-5243 -1605,-5304 -1622,-5379 -1639,-5441 -1659,-5502 -1681,-5581 -1701,-5726 -1729,-5801 -1743,-5838 -1778,-5901 -1802,-6033 -1817,-6174 -1839,-6236 -1853,-6310 -1867,-6364 -1881,-6353 -1897,-6406 -1912,-6467 -1930,-6519 -1953,-6589 -1975,-6741 -1995,-6823 -2014,-6847 -2030,-6906 -2052,-6966 -2065,-7038 -2085,-7155 -2104,-7159 -2117,-7229 -2131,-7346 -2147,-7395 -2174,-7456 -2211,-7505 -2232,-7630 -2247,-7777 -2263,-7763 -2282,-7824 -2305,-7959 -2320,-8049 -2333,-8098 -2350,-8149 -2367,-8216 -2385,-8211 -2407,-8342 -2432,-8429 -2453,-8453 -2470,-8596 -2493,-8661 -2513,-8747 -2532,-8815 -2552,-8873 -2574,-8924 -2590,-8913 -2605,-8955 -2627,-9053 -2647,-9020 -2675,-9031 -2698,-9022 -2719,-9025 -2734,-9025 -2752,-9025 -2768,-9025 -2782,-9025 -2802,-9025 -2821,-9025 -2843,-9025 -2863,-9025 -2881,-9025 -2904,-9025 -2931,-9025 -2948,-9025 -2967,-9025 -2982,-9025 -2997,-9025 -3021,-9025 -3057,-9025 -3080,-9025 -3102,-9025 -3117,-9025 -3133,-9025 -3150,-9025 -3178,-9025 -3203,-9025 -3217,-9025 -3231,-9025 -3249,-9025 -3265,-9025 -3285,-9025 -3300,-9025 -3319,-9025 -3336,-9025 -3350,-9025 -3370,-9025 -3385,-9025 -3411,-9025 -3433,-9025 -3449,-9025 -3464,-9025 -3478,-9025 -3498,-9025 -3518,-9025 -3532,-9025 -3552,-9025 -3567,-9025 -3585,-9025 -3604,-9025 -3633,-9025 -3654,-9025 -3676,-9025 -3697,-9025 -3718,-9025 -3737,-9025 -3757,-9025 -3773,-9025 -3786,-9025 -3806,-9025 -3821,-9025 -3835,-9025 -3853,-9025 -3880,-9025 -3902,-9025 -3920,-9025 -3938,-9025 -3952,-9025 -3966,-9025 -3986,-9025 -4007,-9025 -4027,-9025 -4047,-9025 -4061,-9025 -4082,-9025 -4106,-9025 -4134,-9025 -4148,-9025 -4164,-9025 -4177,-9025 -4194,-9025 -4207,-9025 -4220,-9025 -4232,-9025 -4248,-9025 -4269,-9025 -4288,-9025 -4308,-9025 -4324,-9025 -4352,-9025 -4374,-9025 -4388,-9025 -4411,-9025 -4427,-9025 -4444,-9025 -4463,-9025 -4478,-9025 -4499,-9025 -4521,-9025 -4541,-9025 -4559,-9025 -4572,-9025 -4602,-9025 -4624,-9025 -4640,-9025 -4653,-9025 -4670,-9025 -4684,-9025 -4702,-9025 -4720,-9025 -4733,-9025 -4748,-9025 -4766,-9025 -4780,-9025 -4803,-9025 -4822,-9025 -4837,-9025 -4860,-9025 -4883,-9025 -4906,-9025 -4920,-9025 -4933,-9025 -4956,-9025 -4973,-9025 -4993,-9025 -5013,-9025 -5030,-9025 -5062,-9025 -5085,-9025 -5104,-9025 -5126,-9025 -5140,-9025 -5156,-9025 -5172,-9025 -5189,-9025 -5205,-9025 -5225,-9025 -5245,-9025 -5263,-9025 -5280,-9025 -5310,-9025 -5323,-9025 -5372,-9025 -5401,-9025 -5421,-9025 -5435,-9025 -5450,-9025 -5467,-9025 -5489,-9025 -5513,-9025 -5533,-9025 -5554,-9025 -5584,-9025 -5605,-9025 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test14.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test14.csv deleted file mode 100644 index 82a9b98c3..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test14.csv +++ /dev/null @@ -1,224 +0,0 @@ -24/05/2020 14:48:02 -40,0 -59,0 -80,0 -116,-3 -138,-99 -159,-72 -180,-172 -203,-146 -224,-203 -243,-262 -264,-315 -282,-379 -301,-438 -324,-525 -346,-674 -364,-752 -393,-814 -415,-929 -434,-948 -454,-1015 -474,-1086 -496,-1165 -515,-1315 -537,-1381 -558,-1400 -578,-1477 -597,-1553 -618,-1685 -639,-1765 -660,-1840 -680,-1856 -703,-1936 -725,-2078 -751,-2113 -794,-2297 -816,-2356 -836,-2431 -857,-2510 -886,-2660 -907,-2696 -921,-2836 -946,-2907 -967,-2987 -988,-2997 -1010,-3077 -1029,-3223 -1045,-3295 -1064,-3354 -1082,-3423 -1105,-3491 -1127,-3519 -1148,-3601 -1170,-3738 -1184,-3817 -1199,-3868 -1216,-3930 -1232,-3989 -1247,-3983 -1266,-4043 -1282,-4114 -1309,-4244 -1334,-4286 -1348,-4368 -1363,-4416 -1382,-4485 -1400,-4551 -1415,-4621 -1431,-4669 -1450,-4736 -1470,-4804 -1492,-4882 -1518,-5027 -1540,-5060 -1560,-5212 -1579,-5279 -1593,-5352 -1612,-5400 -1633,-5470 -1650,-5548 -1671,-5616 -1691,-5637 -1710,-5702 -1727,-5774 -1755,-5907 -1777,-5950 -1793,-6030 -1814,-6086 -1833,-6231 -1854,-6298 -1868,-6378 -1887,-6426 -1908,-6454 -1931,-6526 -1949,-6600 -1985,-6758 -2007,-6873 -2026,-6957 -2046,-7021 -2066,-7031 -2082,-7104 -2095,-7165 -2115,-7280 -2132,-7285 -2149,-7354 -2164,-7414 -2182,-7538 -2212,-7542 -2231,-7725 -2250,-7787 -2266,-7796 -2284,-7915 -2304,-7929 -2326,-8015 -2348,-8148 -2372,-8233 -2392,-8259 -2411,-8326 -2439,-8391 -2462,-8507 -2485,-8587 -2498,-8649 -2519,-8751 -2538,-8801 -2551,-8781 -2564,-8872 -2585,-8835 -2599,-8925 -2625,-8929 -2647,-8919 -2667,-8921 -2687,-8921 -2702,-8921 -2724,-8921 -2745,-8921 -2763,-8921 -2785,-8921 -2806,-8921 -2819,-8921 -2842,-8921 -2865,-8921 -2887,-8921 -2908,-8921 -2922,-8921 -2935,-8921 -2956,-8921 -2977,-8921 -3004,-8921 -3029,-8921 -3046,-8921 -3063,-8921 -3092,-8921 -3107,-8921 -3124,-8921 -3140,-8921 -3159,-8921 -3180,-8921 -3201,-8921 -3222,-8921 -3241,-8921 -3261,-8921 -3281,-8921 -3307,-8921 -3330,-8921 -3348,-8921 -3366,-8921 -3381,-8921 -3399,-8921 -3418,-8921 -3433,-8921 -3455,-8921 -3474,-8921 -3493,-8921 -3515,-8921 -3543,-8921 -3565,-8921 -3587,-8921 -3607,-8921 -3620,-8922 -3634,-8922 -3647,-8922 -3666,-8922 -3684,-8922 -3704,-8922 -3717,-8922 -3735,-8922 -3764,-8922 -3785,-8922 -3805,-8922 -3826,-8922 -3845,-8922 -3861,-8922 -3879,-8922 -3896,-8922 -3911,-8922 -3928,-8922 -3945,-8922 -3966,-8922 -3997,-8922 -4021,-8922 -4041,-8922 -4062,-8922 -4080,-8922 -4099,-8921 -4115,-8921 -4135,-8921 -4156,-8921 -4177,-8921 -4199,-8921 -4226,-8921 -4249,-8921 -4273,-8921 -4286,-8921 -4301,-8921 -4317,-8921 -4338,-8921 -4360,-8921 -4381,-8921 -4405,-8921 -4428,-8921 -4448,-8921 -4477,-8921 -4497,-8921 -4521,-8921 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test15.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test15.csv deleted file mode 100644 index 7099494c8..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test15.csv +++ /dev/null @@ -1,181 +0,0 @@ -24/05/2020 14:48:15 -55,0 -74,0 -88,-1 -102,-5 -123,-18 -146,22 -168,-82 -191,-121 -215,-103 -238,-166 -260,-233 -281,-298 -299,-375 -322,-506 -353,-598 -375,-710 -392,-782 -417,-849 -439,-884 -461,-1026 -477,-1102 -500,-1169 -522,-1195 -545,-1340 -567,-1421 -596,-1449 -619,-1620 -637,-1636 -658,-1698 -678,-1782 -701,-1928 -726,-1951 -746,-2029 -768,-2175 -791,-2201 -813,-2277 -841,-2358 -862,-2468 -883,-2544 -906,-2682 -925,-2766 -939,-2837 -953,-2891 -968,-2943 -984,-2929 -999,-2991 -1019,-3044 -1055,-3205 -1088,-3337 -1112,-3382 -1137,-3482 -1156,-3559 -1181,-3705 -1202,-3784 -1219,-3805 -1235,-3867 -1258,-3929 -1277,-4008 -1291,-4085 -1323,-4135 -1343,-4255 -1359,-4325 -1372,-4386 -1394,-4500 -1415,-4523 -1435,-4597 -1455,-4733 -1475,-4810 -1492,-4887 -1512,-4948 -1531,-4957 -1560,-5027 -1575,-5204 -1591,-5251 -1610,-5310 -1623,-5380 -1638,-5435 -1654,-5422 -1672,-5481 -1694,-5550 -1713,-5696 -1735,-5765 -1762,-5788 -1782,-5951 -1802,-6024 -1821,-6099 -1844,-6108 -1866,-6188 -1886,-6335 -1906,-6410 -1928,-6484 -1944,-6500 -1958,-6563 -1972,-6677 -1996,-6725 -2019,-6756 -2041,-6905 -2061,-6986 -2081,-7062 -2102,-7075 -2126,-7155 -2149,-7303 -2171,-7384 -2193,-7411 -2212,-7554 -2242,-7623 -2261,-7670 -2285,-7825 -2305,-7834 -2327,-7903 -2344,-7989 -2364,-8053 -2383,-8188 -2402,-8258 -2425,-8331 -2447,-8361 -2482,-8435 -2504,-8558 -2529,-8624 -2551,-8694 -2571,-8745 -2593,-8850 -2615,-8822 -2662,-8898 -2684,-8890 -2719,-8890 -2741,-8890 -2761,-8890 -2780,-8891 -2802,-8891 -2822,-8891 -2841,-8891 -2864,-8891 -2878,-8891 -2895,-8891 -2909,-8891 -2935,-8891 -2960,-8891 -2977,-8891 -2993,-8891 -3008,-8891 -3027,-8891 -3044,-8891 -3064,-8891 -3085,-8891 -3104,-8891 -3122,-8891 -3148,-8891 -3172,-8891 -3193,-8891 -3208,-8891 -3222,-8891 -3240,-8891 -3264,-8891 -3282,-8891 -3304,-8891 -3326,-8891 -3343,-8891 -3360,-8891 -3384,-8891 -3407,-8891 -3433,-8891 -3450,-8891 -3470,-8891 -3484,-8891 -3499,-8891 -3513,-8891 -3527,-8891 -3547,-8891 -3569,-8891 -3593,-8891 -3616,-8890 -3629,-8890 -3652,-8890 -3670,-8890 -3691,-8890 -3706,-8890 -3726,-8890 -3744,-8890 -3762,-8890 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test16.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test16.csv deleted file mode 100644 index a5743e552..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test16.csv +++ /dev/null @@ -1,231 +0,0 @@ -24/05/2020 14:48:26 -44,0 -61,0 -82,0 -102,-5 -123,-17 -136,25 -150,4 -180,-83 -201,-141 -218,-125 -236,-166 -258,-282 -279,-287 -301,-362 -323,-443 -342,-587 -359,-663 -381,-725 -399,-739 -421,-805 -444,-959 -474,-1007 -497,-1159 -513,-1244 -534,-1297 -548,-1371 -562,-1423 -581,-1477 -602,-1553 -622,-1625 -646,-1642 -664,-1719 -691,-1860 -711,-1891 -732,-1967 -752,-2042 -771,-2185 -790,-2261 -809,-2329 -829,-2394 -852,-2408 -886,-2563 -911,-2694 -931,-2718 -960,-2797 -982,-2969 -999,-2982 -1019,-3046 -1041,-3126 -1062,-3274 -1081,-3346 -1101,-3417 -1115,-3430 -1135,-3548 -1149,-3556 -1177,-3676 -1199,-3778 -1220,-3863 -1242,-3878 -1259,-3957 -1276,-4097 -1291,-4091 -1305,-4144 -1328,-4199 -1343,-4283 -1363,-4336 -1388,-4412 -1402,-4569 -1416,-4618 -1430,-4605 -1448,-4663 -1470,-4729 -1492,-4876 -1507,-4896 -1521,-5013 -1552,-5028 -1572,-5116 -1602,-5250 -1619,-5300 -1635,-5361 -1655,-5421 -1670,-5496 -1690,-5554 -1717,-5697 -1743,-5745 -1759,-5901 -1780,-5957 -1802,-6035 -1820,-6054 -1846,-6118 -1869,-6281 -1884,-6303 -1903,-6424 -1924,-6432 -1939,-6509 -1957,-6562 -1970,-6626 -1984,-6744 -2004,-6797 -2018,-6869 -2036,-6921 -2062,-6986 -2084,-7019 -2103,-7100 -2119,-7232 -2140,-7228 -2163,-7373 -2186,-7404 -2207,-7551 -2227,-7626 -2247,-7702 -2268,-7718 -2283,-7794 -2311,-7849 -2331,-8015 -2350,-8087 -2367,-8150 -2386,-8193 -2405,-8177 -2423,-8227 -2436,-8325 -2456,-8288 -2473,-8313 -2487,-8316 -2516,-8310 -2534,-8311 -2550,-8311 -2579,-8311 -2593,-8311 -2615,-8311 -2635,-8311 -2651,-8311 -2674,-8311 -2695,-8311 -2712,-8311 -2739,-8311 -2763,-8311 -2784,-8311 -2806,-8311 -2822,-8311 -2838,-8311 -2859,-8311 -2876,-8311 -2891,-8311 -2908,-8311 -2922,-8311 -2940,-8311 -2964,-8311 -2996,-8311 -3029,-8311 -3043,-8311 -3065,-8311 -3087,-8311 -3101,-8311 -3120,-8311 -3133,-8311 -3149,-8311 -3166,-8311 -3179,-8311 -3195,-8311 -3222,-8311 -3237,-8311 -3256,-8311 -3275,-8311 -3288,-8311 -3301,-8311 -3316,-8311 -3335,-8311 -3348,-8311 -3370,-8311 -3383,-8311 -3404,-8311 -3425,-8311 -3441,-8311 -3457,-8311 -3474,-8311 -3491,-8311 -3505,-8311 -3518,-8311 -3535,-8311 -3549,-8311 -3565,-8311 -3589,-8311 -3617,-8311 -3640,-8311 -3669,-8311 -3688,-8311 -3703,-8311 -3725,-8311 -3739,-8311 -3756,-8311 -3773,-8311 -3793,-8311 -3810,-8311 -3823,-8311 -3851,-8311 -3867,-8311 -3887,-8311 -3908,-8311 -3922,-8311 -3942,-8311 -3963,-8311 -3986,-8311 -4005,-8311 -4027,-8311 -4041,-8311 -4074,-8311 -4097,-8311 -4119,-8311 -4142,-8311 -4159,-8311 -4176,-8311 -4193,-8311 -4206,-8311 -4219,-8311 -4238,-8311 -4252,-8311 -4277,-8311 -4303,-8311 -4321,-8311 -4340,-8311 -4362,-8311 -4382,-8311 -4406,-8311 -4423,-8311 -4438,-8312 -4456,-8312 -4473,-8312 -4490,-8312 -4518,-8312 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test2.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test2.csv deleted file mode 100644 index ba03e113f..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test2.csv +++ /dev/null @@ -1,271 +0,0 @@ -24/05/2020 14:16:54 -0,0 -0,8 -0,80 -0,-7 -0,-34 -0,-163 -0,-239 -0,-342 -0,-385 -0,-457 -0,-479 -0,-630 -0,-672 -0,-752 -0,-856 -0,-1017 -0,-989 -0,-1092 -0,-1160 -0,-1179 -0,-1350 -0,-1424 -0,-1433 -0,-1507 -0,-1580 -0,-1630 -0,-1732 -0,-1717 -0,-1850 -0,-1932 -0,-1995 -0,-2042 -0,-2125 -0,-2151 -0,-2230 -0,-2375 -0,-2439 -0,-2467 -0,-2618 -0,-2700 -0,-2711 -0,-2785 -0,-2906 -0,-2969 -0,-3038 -0,-3121 -0,-3265 -0,-3339 -0,-3412 -0,-3467 -0,-3481 -0,-3545 -0,-3719 -0,-3738 -0,-3802 -0,-3890 -0,-4028 -0,-4107 -0,-4120 -0,-4192 -0,-4277 -0,-4424 -0,-4489 -0,-4522 -0,-4672 -0,-4741 -0,-4795 -0,-4788 -0,-4926 -0,-4987 -0,-5060 -0,-5130 -0,-5204 -0,-5305 -0,-5386 -0,-5458 -0,-5520 -0,-5539 -0,-5617 -0,-5771 -0,-5790 -0,-5873 -0,-6011 -0,-6076 -0,-6119 -0,-6188 -0,-6259 -0,-6407 -0,-6476 -0,-6548 -0,-6611 -0,-6675 -0,-6739 -0,-6749 -0,-6925 -0,-6941 -0,-7023 -0,-7165 -0,-7227 -0,-7298 -0,-7372 -0,-7424 -0,-7498 -0,-7520 -0,-7583 -0,-7751 -0,-7815 -0,-7892 -0,-7902 -0,-7977 -0,-8029 -0,-8146 -0,-8199 -0,-8217 -0,-8340 -0,-8397 -0,-8436 -0,-8578 -0,-8650 -0,-8702 -0,-8776 -0,-8850 -0,-8872 -0,-8931 -0,-9002 -0,-9123 -0,-9194 -0,-9266 -0,-9411 -0,-9491 -0,-9498 -0,-9559 -0,-9719 -0,-9789 -0,-9858 -0,-9881 -0,-9963 -0,-10084 -0,-10233 -0,-10309 -0,-10373 -0,-10438 -0,-10500 -0,-10684 -0,-10769 -0,-10785 -0,-10897 -0,-11015 -0,-10998 -0,-11132 -0,-11206 -0,-11242 -0,-11399 -0,-11466 -0,-11531 -0,-11603 -0,-11608 -0,-11779 -0,-11860 -0,-11925 -0,-11943 -0,-12093 -0,-12163 -0,-12216 -0,-12213 -0,-12348 -0,-12430 -0,-12444 -0,-12511 -0,-12681 -0,-12702 -0,-12784 -0,-12854 -0,-12909 -0,-12980 -0,-13118 -0,-13180 -0,-13261 -0,-13322 -0,-13374 -0,-13411 -0,-13467 -0,-13543 -0,-13619 -0,-13756 -0,-13833 -0,-13848 -0,-13929 -0,-13985 -0,-14039 -0,-14162 -0,-14176 -0,-14351 -0,-14359 -0,-14473 -0,-14522 -0,-14590 -0,-14673 -0,-14741 -0,-14793 -0,-14844 -0,-14829 -0,-14888 -0,-15033 -0,-15076 -0,-15190 -0,-15202 -0,-15273 -0,-15422 -0,-15493 -0,-15572 -0,-15636 -0,-15649 -0,-15732 -0,-15888 -0,-15967 -0,-16038 -0,-16107 -0,-16258 -0,-16281 -0,-16397 -0,-16422 -0,-16501 -0,-16561 -0,-16619 -0,-16678 -0,-16829 -0,-16857 -0,-16933 -0,-16992 -0,-17106 -0,-17157 -0,-17224 -0,-17276 -0,-17349 -0,-17422 -0,-17477 -0,-17545 -0,-17659 -0,-17731 -0,-17802 -0,-17821 -0,-17904 -0,-18048 -0,-18124 -0,-18152 -0,-18230 -0,-18282 -0,-18354 -0,-18511 -0,-18532 -0,-18606 -0,-18752 -0,-18817 -0,-18805 -0,-18954 -0,-19003 -0,-19070 -0,-19096 -0,-19185 -0,-19347 -0,-19369 -0,-19444 -0,-19580 -0,-19566 -0,-19709 -0,-19780 -0,-19853 -0,-19904 -0,-19983 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test3.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test3.csv deleted file mode 100644 index 91ae72e87..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test3.csv +++ /dev/null @@ -1,127 +0,0 @@ -24/05/2020 14:17:18 -0,0 -0,0 -0,51 -0,-62 -0,-97 -0,-19 -0,-15 -0,-64 -0,-15 -0,-8 -0,-16 -0,-4 -0,-13 -0,-5 -0,-17 -0,-5 -0,-16 -0,-5 -0,-16 -0,-4 -0,-17 -0,-7 -0,-15 -0,-14 -0,-7 -0,-14 -0,-6 -0,-15 -0,-10 -0,-11 -0,-11 -0,-8 -0,-11 -0,-7 -0,-13 -0,-17 -0,-16 -0,-5 -0,-17 -0,-4 -0,-16 -0,-5 -0,-17 -0,-5 -0,-17 -0,-5 -0,-18 -0,-5 -0,-17 -0,-9 -0,-13 -0,-5 -0,-16 -0,-8 -0,-13 -0,-15 -0,-10 -0,-15 -0,-5 -0,-17 -0,-5 -0,-17 -0,-6 -0,-15 -0,-6 -0,-17 -0,-6 -0,-17 -0,-5 -0,-17 -0,-9 -0,-14 -0,-11 -0,-5 -0,-18 -0,-5 -0,-16 -0,-5 -0,-11 -0,-14 -0,-5 -0,-17 -0,-5 -0,-17 -0,-5 -0,-17 -0,-13 -0,-8 -0,-12 -0,-7 -0,-18 -0,-6 -0,-17 -0,-7 -0,-14 -0,-10 -0,-12 -0,-10 -0,-9 -0,-15 -0,-5 -0,-13 -0,-10 -0,-15 -0,-8 -0,-17 -0,-6 -0,-13 -0,-11 -0,-12 -0,-11 -0,-13 -0,-10 -0,-13 -0,-5 -0,-18 -0,-5 -0,-14 -0,-11 -0,-17 -0,-5 -0,-17 -0,-6 -0,-13 -0,-13 -0,-6 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test_dryer_heater.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test_dryer_heater.cs deleted file mode 100644 index 1977c13a6..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test_dryer_heater.cs +++ /dev/null @@ -1,174 +0,0 @@ -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.Stubs; -using Tango.PMR.Stubs; - -const string File_Name = @"P:\Scripts\Assemblies\Dryer\Dryer_Tset.CSV"; //3 hour - -public void OnExecute(StubManager stubManager) -{ - int j; - - stubManager.WriteToFile(File_Name,DateTime.Now +" " ); - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,3,true, 2200); - - for (int i=0;i<10;i++) - - { - stubManager.WriteLine("--------------------loop number " + i +" ---------------------" ); - - Blower_190(); - stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan1*/0x3E7, /*Head_Q=*/5); - stubManager.WriteLine("Heating to 190 " ); - stubManager.AppendToFile(File_Name,"Heating to 190 " ); - - stubManager.AppendToFile(File_Name,DateTime.Now +" " ); - - j=0; - - while (j==0) - { - var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,6); //read air temp - - stubManager.WriteLine(response.TemperatureCMultBy100/100); - stubManager.AppendToFile(File_Name," " + response.TemperatureCMultBy100/100); - stubManager.Write("\n"); - if (response.TemperatureCMultBy100>(18900)) //18900 - j=1; - Thread.Sleep(1000); - - } -// stubManager.WriteLine("start motor " ); - -// stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,3, true, 2200); //rotate Dryer Motor. -// Thread.Sleep(1000*20);// - stubManager.AppendToFile(File_Name,DateTime.Now +" " ); - - Thread.Sleep(1000*60*2);//2 minits - -// stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,3,3); //stop motor -// stubManager.WriteLine("stop motor " ); - - Blower_0(); - stubManager.WriteLine("cooling down " ); - stubManager.AppendToFile(File_Name,"cooling down " ); - stubManager.AppendToFile(File_Name,DateTime.Now +" "); - - j=0; - while (j==0) - { - var response1 = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,6); //read air temp - stubManager.WriteLine(response1.TemperatureCMultBy100/100); - stubManager.AppendToFile(File_Name, " " + (response1.TemperatureCMultBy100/100)); -stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan1*/0x3E7, /*Head_Q=*/5); - stubManager.Write("\n"); - if (response1.TemperatureCMultBy100<6000)// - j=1; - Thread.Sleep(1000); - - } - stubManager.AppendToFile(File_Name,DateTime.Now +" " ); - - - } - -} - -void Blower_190() - - { -UploadProcessParametersRequest uploadProcessParametersRequest = new UploadProcessParametersRequest(); - -ProcessParameters processParameters = new ProcessParameters(); -processParameters.DyeingSpeed = 0; -processParameters.MinInkUptake = 0; -processParameters.MaxInkUptake = 0; -processParameters.FeederTension = 0; -processParameters.PullerTension = 0; -processParameters.WinderTension = 0; -processParameters.MixerTemp = 0; -processParameters.HeadZone1Temp = 0; -processParameters.HeadZone2Temp = 0; -processParameters.HeadZone3Temp = 0; -processParameters.HeadZone4Temp = 0; -processParameters.HeadZone5Temp = 0; -processParameters.HeadZone6Temp = 0; -processParameters.DryerAirFlow = 5; -processParameters.DryerZone1Temp = 190; -processParameters.DryerZone2Temp = 0; -processParameters.DryerZone3Temp = 0; -processParameters.DryerBufferLength = 0; -processParameters.HeadAirFlow = 0; -processParameters.TableIndex = 0; -processParameters.HeadZone7Temp = 0; -processParameters.HeadZone8Temp = 0; -processParameters.HeadZone9Temp = 0; -processParameters.HeadZone10Temp = 0; -processParameters.HeadZone11Temp = 0; -processParameters.HeadZone12Temp = 0; -processParameters.RBlowerFlow = 0; -processParameters.RBlowerTemp = 0; -processParameters.LBlowerFlow = 0; -processParameters.LBlowerTemp = 0; -processParameters.PressureBuildUp = 0; - -uploadProcessParametersRequest.ProcessParameters = processParameters; - - - - var response = stubManager.Run<UploadProcessParametersResponse>(uploadProcessParametersRequest); -} - -void Blower_0() - - { -UploadProcessParametersRequest uploadProcessParametersRequest = new UploadProcessParametersRequest(); - -ProcessParameters processParameters = new ProcessParameters(); -processParameters.DyeingSpeed = 0; -processParameters.MinInkUptake = 0; -processParameters.MaxInkUptake = 0; -processParameters.FeederTension = 0; -processParameters.PullerTension = 0; -processParameters.WinderTension = 0; -processParameters.MixerTemp = 0; -processParameters.HeadZone1Temp = 0; -processParameters.HeadZone2Temp = 0; -processParameters.HeadZone3Temp = 0; -processParameters.HeadZone4Temp = 0; -processParameters.HeadZone5Temp = 0; -processParameters.HeadZone6Temp = 0; -processParameters.DryerAirFlow = 5; -processParameters.DryerZone1Temp = 00; -processParameters.DryerZone2Temp = 0; -processParameters.DryerZone3Temp = 0; -processParameters.DryerBufferLength = 0; -processParameters.HeadAirFlow = 0; -processParameters.TableIndex = 0; -processParameters.HeadZone7Temp = 0; -processParameters.HeadZone8Temp = 0; -processParameters.HeadZone9Temp = 0; -processParameters.HeadZone10Temp = 0; -processParameters.HeadZone11Temp = 0; -processParameters.HeadZone12Temp = 0; -processParameters.RBlowerFlow = 0; -processParameters.RBlowerTemp = 0; -processParameters.LBlowerFlow = 0; -processParameters.LBlowerTemp = 0; -processParameters.PressureBuildUp = 0; - -uploadProcessParametersRequest.ProcessParameters = processParameters; - - - - var response = stubManager.Run<UploadProcessParametersResponse>(uploadProcessParametersRequest); -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test_dryer_heater1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test_dryer_heater1.cs deleted file mode 100644 index 3d06c1e79..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test_dryer_heater1.cs +++ /dev/null @@ -1,186 +0,0 @@ -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.Stubs; -using Tango.PMR.Stubs; - -//const string File_Name = @"P:\Scripts\Assemblies\Dryer\Dryer_Tset.CSV"; //3 hour -string File_Name; -const string Path=@"P:\Operations\Log\Dryer\"; -public void OnExecute(StubManager stubManager) -{ - - - var response8 = stubManager.ShowResponseWindow("Enter Serial number of Dryer ", ""); - - File_Name =Path +"SN_" + response8 + "DryerHeaterTest_" + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".csv" ; - - //stubManager.WriteLine(response); -// stubManager.Write("\n"); -// midtankno = int.Parse(response); - - - int j; - - stubManager.WriteToFile(File_Name,DateTime.Now +" " ); - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,3,true, 2200); - - for (int i=0;i<10;i++) - - { - stubManager.WriteLine("--------------------loop number " + i +" ---------------------" ); - - Blower_190(); - stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan1*/0x3E7, /*Head_Q=*/5); - stubManager.WriteLine("Heating to 190 " ); - stubManager.AppendToFile(File_Name,"Heating to 190 " ); - - stubManager.AppendToFile(File_Name,DateTime.Now +" " ); - - j=0; - - while (j==0) - { - var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,6); //read air temp - - stubManager.WriteLine(response.TemperatureCMultBy100/100); - stubManager.AppendToFile(File_Name," " + response.TemperatureCMultBy100/100); - stubManager.Write("\n"); - if (response.TemperatureCMultBy100>(18900)) //18900 - j=1; - Thread.Sleep(1000); - - } -// stubManager.WriteLine("start motor " ); - -// stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,3, true, 2200); //rotate Dryer Motor. -// Thread.Sleep(1000*20);// - stubManager.AppendToFile(File_Name,DateTime.Now +" " ); - - Thread.Sleep(1000*60*2);//2 minits - -// stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,3,3); //stop motor -// stubManager.WriteLine("stop motor " ); - - Blower_0(); - stubManager.WriteLine("cooling down " ); - stubManager.AppendToFile(File_Name,"cooling down " ); - stubManager.AppendToFile(File_Name,DateTime.Now +" "); - - j=0; - while (j==0) - { - var response1 = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,6); //read air temp - stubManager.WriteLine(response1.TemperatureCMultBy100/100); - stubManager.AppendToFile(File_Name, " " + (response1.TemperatureCMultBy100/100)); -stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan1*/0x3E7, /*Head_Q=*/5); - stubManager.Write("\n"); - if (response1.TemperatureCMultBy100<6000)// - j=1; - Thread.Sleep(1000); - - } - stubManager.AppendToFile(File_Name,DateTime.Now +" " ); - - - } - -} - -void Blower_190() - - { -UploadProcessParametersRequest uploadProcessParametersRequest = new UploadProcessParametersRequest(); - -ProcessParameters processParameters = new ProcessParameters(); -processParameters.DyeingSpeed = 0; -processParameters.MinInkUptake = 0; -processParameters.MaxInkUptake = 0; -processParameters.FeederTension = 0; -processParameters.PullerTension = 0; -processParameters.WinderTension = 0; -processParameters.MixerTemp = 0; -processParameters.HeadZone1Temp = 0; -processParameters.HeadZone2Temp = 0; -processParameters.HeadZone3Temp = 0; -processParameters.HeadZone4Temp = 0; -processParameters.HeadZone5Temp = 0; -processParameters.HeadZone6Temp = 0; -processParameters.DryerAirFlow = 5; -processParameters.DryerZone1Temp = 190; -processParameters.DryerZone2Temp = 0; -processParameters.DryerZone3Temp = 0; -processParameters.DryerBufferLength = 0; -processParameters.HeadAirFlow = 0; -processParameters.TableIndex = 0; -processParameters.HeadZone7Temp = 0; -processParameters.HeadZone8Temp = 0; -processParameters.HeadZone9Temp = 0; -processParameters.HeadZone10Temp = 0; -processParameters.HeadZone11Temp = 0; -processParameters.HeadZone12Temp = 0; -processParameters.RBlowerFlow = 0; -processParameters.RBlowerTemp = 0; -processParameters.LBlowerFlow = 0; -processParameters.LBlowerTemp = 0; -processParameters.PressureBuildUp = 0; - -uploadProcessParametersRequest.ProcessParameters = processParameters; - - - - var response = stubManager.Run<UploadProcessParametersResponse>(uploadProcessParametersRequest); -} - -void Blower_0() - - { -UploadProcessParametersRequest uploadProcessParametersRequest = new UploadProcessParametersRequest(); - -ProcessParameters processParameters = new ProcessParameters(); -processParameters.DyeingSpeed = 0; -processParameters.MinInkUptake = 0; -processParameters.MaxInkUptake = 0; -processParameters.FeederTension = 0; -processParameters.PullerTension = 0; -processParameters.WinderTension = 0; -processParameters.MixerTemp = 0; -processParameters.HeadZone1Temp = 0; -processParameters.HeadZone2Temp = 0; -processParameters.HeadZone3Temp = 0; -processParameters.HeadZone4Temp = 0; -processParameters.HeadZone5Temp = 0; -processParameters.HeadZone6Temp = 0; -processParameters.DryerAirFlow = 5; -processParameters.DryerZone1Temp = 00; -processParameters.DryerZone2Temp = 0; -processParameters.DryerZone3Temp = 0; -processParameters.DryerBufferLength = 0; -processParameters.HeadAirFlow = 0; -processParameters.TableIndex = 0; -processParameters.HeadZone7Temp = 0; -processParameters.HeadZone8Temp = 0; -processParameters.HeadZone9Temp = 0; -processParameters.HeadZone10Temp = 0; -processParameters.HeadZone11Temp = 0; -processParameters.HeadZone12Temp = 0; -processParameters.RBlowerFlow = 0; -processParameters.RBlowerTemp = 0; -processParameters.LBlowerFlow = 0; -processParameters.LBlowerTemp = 0; -processParameters.PressureBuildUp = 0; - -uploadProcessParametersRequest.ProcessParameters = processParameters; - - - - var response = stubManager.Run<UploadProcessParametersResponse>(uploadProcessParametersRequest); -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_In_Test.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_In_Test.cs deleted file mode 100644 index 92c50a57e..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_In_Test.cs +++ /dev/null @@ -1,34 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -int Delay_UP=200; //msec -int Delay_stop=500; -int Delay_limit=1000; - - stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf000); //mov ACTUATOR-IN down up to limit switch - Thread.Sleep(1000); - while (true) - { - - stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf003); //mov ACTUATOR-IN down up - Thread.Sleep(Delay_UP); - stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf008); //stop ACTUATOR-IN - Thread.Sleep(Delay_stop); - stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf000); //mov ACTUATOR-IN down up to limit switch - Thread.Sleep(Delay_limit); - - } - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_In_new set point.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_In_new set point.cs deleted file mode 100644 index dc5d5af07..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_In_new set point.cs +++ /dev/null @@ -1,34 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -int Delay_UP=200; //msec -int Delay_stop=500; -int Delay_limit=1000; - - stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf000); //mov ACTUATOR-IN down up to limit switch - Thread.Sleep(2000); -// while (true) -// { - - stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf003); //mov ACTUATOR-IN up - Thread.Sleep(Delay_UP); - stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf008); //stop ACTUATOR-IN - Thread.Sleep(Delay_stop); - // stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf000); //mov ACTUATOR-IN down up to limit switch -// Thread.Sleep(Delay_limit); - - // } - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_test.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_test.cs deleted file mode 100644 index 6d71a9ac3..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_test.cs +++ /dev/null @@ -1,32 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - int sleep_up=4000;//2 second - int sleep_dn=1000;//2 second - while (true) - { - stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf000); //mov ACTUATOR-IN down - Thread.Sleep(sleep_dn); - stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf001); //mov ACTUATOR-IN up - Thread.Sleep(sleep_up); - - } - // stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf100); //mov ACTUATOR-OUTdown - // stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf101); //mov ACTUATOR-OUT up - - - - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/DyeHeadJig.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/DyeHeadJig.cs deleted file mode 100644 index 2baedf7c2..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/DyeHeadJig.cs +++ /dev/null @@ -1,548 +0,0 @@ -using System; -using System.Text; -using System.IO; -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.Stubs; -using Tango.Stubs; - - -include "..\..\Defines\Tango_Defines_Basic.cs" -include "Tango_Defines_SSR.cs" -include "Tango_Defines_LimitSwitch.cs" - - -//-------------------------------------------------------------------------------- - const Int32 I2C_ID = 2; - -//-------------------------------------------------------------------------------- -//-------------------------------------------------------------------------------- -//string path1=@"P:\Scripts\Assemblies\Dye head\DyeHeadLog\"; -string path1="P:\\Scripts\\Assemblies\\Dye head\\DyeHeadLog\\"; -string path2=@"C:\DyeHeadLog"; - -string File_Name1 ; -string Status; -//--------------------------- - -float [] DyeHeadTemp = new float[6] ; - -string [,] Units_status = new string[16,2] { - {"Pt100_Zone_1","Not Test"}, - {"Pt100_Zone_2","Not Test"}, - {"Pt100_Zone_3","Not Test"}, - {"Pt100_Zone_4","Not Test"}, - {"Pt100_Zone_5","Not Test"}, - {"Pt100_Zone_6","Not Test"}, - {"Heater_Zone_1","Not Test"}, - {"Heater_Zone_2","Not Test"}, - {"Heater_Zone_3","Not Test"}, - {"Heater_Zone_4","Not Test"}, - {"Heater_Zone_5","Not Test"}, - {"Heater_Zone_6","Not Test"}, - {"Magnet","Not Test"}, - {"LS_DH_LID_Open","Not Test"}, - {"LS_DH_LID_Close","Not Test"}, - {"DH_LID_Motor","Not Test"}, - }; - - - -//----------------------------------------------------- -string DyeHead_Sn; -//-------------------------------------------------------------------------------- - -public void OnExecute(StubManager stubManager) -{ -string path=""; - Form form1 = new Form(); - -// Set the caption bar text of the form. - - form1.Text = "DyeHead Test"; - form1.FormBorderStyle = FormBorderStyle.FixedDialog; - form1.MaximizeBox = false; - form1.MinimizeBox = false; - form1.StartPosition = FormStartPosition.CenterScreen; - form1.AutoSize = true; - form1.AutoSizeMode = AutoSizeMode.GrowAndShrink; -// Create buttons to Run. - Button button1 = new Button () - { - Width = 100, - Height = 100, - }; - button1.Text = "Run"; - button1.Location = new Point (40, 100); - form1.Controls.Add(button1); -//-----DyeHead Serial Number ----------- - - Label Label1 = new Label () - { - Width = 150, - Height = 20, - Text =" DyeHead S/N" - }; - Label1.Location = new Point (30, 10); - form1.Controls.Add(Label1); - TextBox TextBox1 = new TextBox () - { - Width = 100, - Height = 10, - Text ="" - }; - TextBox1.Location = new Point (40, 40); - form1.Controls.Add(TextBox1); - //----------LOCATION---------- - - Label Label3 = new Label () - { - Width = 150, - Height = 20, - Text ="LOCATION" - }; -Label3.Location = new Point (350, 10); - form1.Controls.Add(Label3); - - - -TextBox TextBox3 = new TextBox () - { - Width = 100, - Height = 10, - Text ="" - }; -TextBox3.Location = new Point (360, 40); - form1.Controls.Add(TextBox3); - -//-------------------------------------------------------------------------------- - - stubManager.Write("Counter is 2 \n"); - - button1.Click += (_,__) => - - { -if (!Directory.Exists(path1)) - { - path=path2; - if (!Directory.Exists(path2)) - Directory.CreateDirectory(path2); - } -else -path=path1; - - -File_Name1=path + TextBox1.Text +"_DyeHead_" + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".log" ; - - -stubManager.Write(File_Name1 +"\n"); -stubManager.WriteToFile(File_Name1,DateTime.Now +" " ); -stubManager.Write(DateTime.Now +"\n" ); - -stubManager.AppendToFile(File_Name1,"DyeHead Test Report" ); -stubManager.Write("DyeHead Test Report\n" ); - -stubManager.AppendToFile(File_Name1,"RTFU S/N: \t" + TextBox1.Text ); -stubManager.Write("DyeHead S/N:" + TextBox1.Text +"\n" ); - - -stubManager.AppendToFile(File_Name1,"Location:\t" + TextBox3.Text ); -stubManager.Write("Location:" + TextBox3.Text +"\n" ); - - - -Label Label5 = new Label () - { - Width = 120, - Height =100, - Text = "" - }; -Label5.Location = new Point (300, 100); -Label5.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; - -Label5.Text="Pros"; -Label5.Font = new Font("Arial", 24,FontStyle.Bold); -form1.Controls.Add(Label5); - - -//------------------------------- start test ----------- - - DialogResult result = MessageBox.Show("Make shure, Dyehead is not hot", "Warning",MessageBoxButtons.OKCancel); - if(result == DialogResult.Cancel) - { - stubManager.AppendToFile(File_Name1,"Dyehead is too hot \tFail"); - stubManager.Write("Dyehead is too hot \tFail\n"); - return ; - } - Test_Magnet_Motor_LS_DyeHead(); - Test_heaters_pt100 (); - Status=write_to_file(); - - Label5.Text=Status; - TextBox1.Text=""; -}; - - form1.ShowDialog(); - - stubManager.Write("Counter is \n"); - - - return; - } - -//-------------------------------------------- - int Test_Magnet_Motor_LS_DyeHead() -{ - Int32 Bit = 1; - - stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,23, false,0x800000+0); - stubManager.Write("\nTesting SSR no. 13 of magnet or motor driver"); - - DialogResult result = MessageBox.Show("Make shure, Magnet is open", "Warning",MessageBoxButtons.OKCancel); - if(result == DialogResult.Cancel) - { - Units_status[12,1]="Fail"; - stubManager.Write("Magnet Not Open\n"); - return 0; - } - Units_status[12,1]="Pass"; - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,2, true, 250); - stubManager.Write("\n*** Open Lid Head "); - - Bit = 1; - int i=0; - while ((Bit != 0x0)&& (i<200)) //wait until Limit Switch or timeout 200*50msec=10sec - { - Bit = GetBit(FPGA1, F1_LS_01_Direct,7); - Thread.Sleep(50); - i++; - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,23,3); //stop motor - - DialogResult result1 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.OKCancel); - if(result1 == DialogResult.Cancel) - { - Units_status[15,1]="Fail"; - Units_status[13,1]="Fail"; - stubManager.Write("LS_DH_LID_Open Not calibrate\n"); - return 0; - } - Units_status[13,1]="Pass"; - stubManager.Write("\n*** Close Lid Head "); - Bit = 1; - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,2, false, 250); - i=0; - while ((Bit != 0x0)&& (i<200)) //wait until Limit Switch or timeout 200*50msec=10sec - { - Bit = GetBit(FPGA1, F1_LS_01_Direct,8); - Thread.Sleep(50); - i++; - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,23,3); //stop motor - - DialogResult result2 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.OKCancel); - if(result2 == DialogResult.Cancel) - { - Units_status[14,1]="Fail"; - Units_status[15,1]="Fail"; - stubManager.Write("LS_DH_LID_Close Not calibrate\n"); - return 0; - } - Units_status[14,1]="Pass"; - stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,23, false,0x800000+2); - DialogResult result3 = MessageBox.Show("Make shure, Magnet is open", "Warning",MessageBoxButtons.OKCancel); - if(result3 == DialogResult.Cancel) - { - Units_status[12,1]="Fail"; - stubManager.Write("Magnet Not Open\n"); - return 0; - } - Units_status[12,1]="Pass"; - Units_status[15,1]="Pass"; - - return 0; -} - - //------------------------------------ -string write_to_file() -{ - stubManager.Write("write_to_file\n"); - -string Stemp="Pass"; - for (int i=0;i<16;i++) - { - stubManager.AppendToFile(File_Name1,Units_status[i,0]+"\t" + Units_status[i,1] ); - stubManager.Write(Units_status[i,0]+"\t" + Units_status[i,1]+"\n" ); - - if ((Units_status[i,1]=="Fail")||(Units_status[i,1]=="Not Test")) - Stemp="Fail"; - } - return Stemp; -} -//------------------------------------ -int Test_heaters_pt100() -{ -// uint utemp=0; - uint temp=0; - float ftemp=0; - float ftemp1=0; - - stubManager.Write("\nTemp Befor heating \n"); - if (test_pt100()!=0) - return 0; - -//------------Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 8 - SetBit (FPGA2, F2_CTRL, 3, 1); - stubManager.Write("Testing SSR no. 8\tHeadZone-1\t"); - Thread.Sleep(10000); - adc_configuration(0x40,0x10); //a2d_address 0x40 channel 3 - adc_set_for_read_ch(0x40); - temp=adc_read_ch(0x40); - SetBit (FPGA2, F2_CTRL, 3, 0); - ftemp=Read_pt100(0); - stubManager.Write("After heating " + ftemp +"c\tCurrent is "+ temp + "\n"); - ftemp = ftemp - DyeHeadTemp[0]; - if ((temp>0x860)|| (temp<0x7e0)||(ftemp<5)||(ftemp>20)) - Units_status[6,1]="Fail"; - else - Units_status[6,1]="Pass"; - - //Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 7 - ftemp=Read_pt100(1); - ftemp1 = ftemp - DyeHeadTemp[1]; - if ( ftemp1>4) - Units_status[7,1]="Fail"; - else - { - SetBit (FPGA2, F2_CTRL, 4, 1); - stubManager.Write("Testing SSR no. 7\tHeadZone-2\t"); - Thread.Sleep(10000); - adc_configuration(0x40,0x08); //a2d_address 0x40 channel 4 - adc_set_for_read_ch(0x40); - temp=adc_read_ch(0x40); - SetBit (FPGA2, F2_CTRL, 4, 0); - ftemp=Read_pt100(1); - stubManager.Write("After heating " + ftemp +"c\tCurrent is "+temp + "\n"); - ftemp = ftemp - DyeHeadTemp[1]; - if ((temp>0x660)|| (temp<0x600)||(ftemp<5)||(ftemp>20)) - Units_status[7,1]="Fail"; - else - Units_status[7,1]="Pass"; - } - - //Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 6 - - ftemp=Read_pt100(2); - ftemp1 = ftemp - DyeHeadTemp[2]; - if ( ftemp1>4) - Units_status[7,1]="Fail"; - else - { - SetBit (FPGA2, F2_CTRL, 5, 1); - stubManager.Write("Testing SSR no. 6\tHeadZone-3\t"); - Thread.Sleep(10000); - adc_configuration(0x40,0x04); //a2d_address 0x40 channel 5 - adc_set_for_read_ch(0x40); - temp=adc_read_ch(0x40); - SetBit (FPGA2, F2_CTRL, 5, 0); - ftemp=Read_pt100(2); - stubManager.Write("After heating " + ftemp +"c\tCurrent is "+temp +"\n"); - ftemp = ftemp - DyeHeadTemp[2]; - if ((temp>0x660)|| (temp<0x600)||(ftemp<5)||(ftemp>20)) - Units_status[8,1]="Fail"; - else - Units_status[8,1]="Pass"; - } - - //Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 5 - ftemp=Read_pt100(3); - ftemp1 = ftemp - DyeHeadTemp[3]; - if ( ftemp1>4) - Units_status[9,1]="Fail"; - else - { - SetBit (FPGA2, F2_CTRL, 6, 1); - stubManager.Write("Testing SSR no. 5\tHeadZone-4\t"); - Thread.Sleep(10000); - adc_configuration(0x44,0x80); //a2d_address 0x44 channel 0 - adc_set_for_read_ch(0x44); - temp=adc_read_ch(0x44); - SetBit (FPGA2, F2_CTRL, 6, 0); - ftemp=Read_pt100(3); - stubManager.Write("After heating " + ftemp +"c\tCurrent is "+temp + "\n"); - ftemp = ftemp - DyeHeadTemp[3]; - if ((temp>0x1100)|| (temp<0xf90)||(ftemp<5)||(ftemp>20)) - Units_status[9,1]="Fail"; - else - Units_status[9,1]="Pass"; - } - - //Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 10 - ftemp=Read_pt100(4); - ftemp1 = ftemp - DyeHeadTemp[4]; - if ( ftemp1>4) - Units_status[10,1]="Fail"; - else - { - SetBit (FPGA1, F1_gpo_01, 2, 1); - stubManager.Write("Testing SSR no. 10\tHeadZone-5\t"); - Thread.Sleep(10000); - adc_configuration(0x44,0x40); //a2d_address 0x44 channel 1 - adc_set_for_read_ch(0x44); - temp=adc_read_ch(0x44); - SetBit (FPGA1, F1_gpo_01, 2, 0); - ftemp=Read_pt100(4); - stubManager.Write("After heating " + ftemp +"c\tCurrent is "+temp + "\n"); - ftemp = ftemp - DyeHeadTemp[4]; - if ((temp>0xa80)|| (temp<0xa20)||(ftemp<5)||(ftemp>20)) - Units_status[10,1]="Fail"; - else - Units_status[10,1]="Pass"; - } - - //Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 11 - ftemp=Read_pt100(5); - ftemp1 = ftemp - DyeHeadTemp[5]; - if ( ftemp1>4) - Units_status[11,1]="Fail"; - else - { - SetBit (FPGA3, F3_GPO_01_bus, 4, 1); - stubManager.Write("Testing SSR no. 11\tHeadZone-6\t"); - Thread.Sleep(10000); - adc_configuration(0x44,0x40); //a2d_address 0x44 channel 1 - adc_set_for_read_ch(0x44); - temp=adc_read_ch(0x44); - SetBit (FPGA3, F3_GPO_01_bus, 4, 0); - ftemp=Read_pt100(5); - stubManager.Write("After heating " + ftemp +"c\tCurrent is "+temp + "\n"); - ftemp = ftemp - DyeHeadTemp[5]; - if ((temp>0x660)|| (temp<0x600)||(ftemp<5)||(ftemp>20)) - Units_status[11,1]="Fail"; - else - Units_status[11,1]="Pass"; - } - return 0; -} -//------------------------------------------------ - int test_pt100() - { - float ftemp=0; - int temp=0; - int j=0; - for (int i = 0; i < 6; i++) - { - DyeHeadTemp[i]=Read_pt100(i); - ftemp=DyeHeadTemp[i]; - if ((ftemp>100)|| (ftemp<10)) - { - Units_status[i,1]="Fail"; - } - else - { - Units_status[i,1]="Pass"; - } - stubManager.Write("Zone-"+(i+1)+ "\t" + ftemp.ToString("F2")); - stubManager.Write("°C\n"); - - } - return 0; - } -//------------------------------------------------ -float Read_pt100(int i) -{ - int j= i+1; - if (i==5) - j=11; - var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,j); // - float ftemp = (float)response.TemperatureCMultBy100; - ftemp = ftemp / 100; - return (ftemp); -} -//--------------------------- -int adc_configuration(uint I2C_Slave_Add,uint channel ) - { - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0x00);//Byte 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(channel);//Byte 1 to Write, must be 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02 or 0x01 for different channels - stubI2CWriteBytesRequest.BytesTWrite.Add(0x80);//Byte 2 to Write - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; - } -//----------------------------------- -int adc_set_for_read_temp(uint I2C_Slave_Add) - { - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0x02);//Byte 0 to write - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; - } -//----------------------------------- -int adc_read_temp(uint I2C_Slave_Add) - { - - StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest(); - stubI2CReadBytesRequest.I2CId = I2C_ID; - stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add; - stubI2CReadBytesRequest.NumberOfBytesToRead = 2; // Number of bytes to read - - var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest); - - for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++) - { - stubManager.WriteLineHex(response1.ReadBytes[i],2); - } - - - return 1; - } -//----------------------------------- -int adc_set_for_read_ch(uint I2C_Slave_Add) - { - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0x01);//Byte 0 to write - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; - } -//----------------------------------- -uint adc_read_ch(uint I2C_Slave_Add) - { - StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest(); - stubI2CReadBytesRequest.I2CId = I2C_ID; - stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add; - stubI2CReadBytesRequest.NumberOfBytesToRead = 2; // Number of bytes to read - - var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest); - uint temph=0; - uint templ=0; - uint temp=0; - temph=response1.ReadBytes[0]; - templ=response1.ReadBytes[1]; - temp = (temph << 8) | templ; - temp=temp & 0x0fff; - return temp; - } diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/DyeHeadJig1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/DyeHeadJig1.cs deleted file mode 100644 index b3513ac55..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/DyeHeadJig1.cs +++ /dev/null @@ -1,575 +0,0 @@ -using System; -using System.Text; -using System.IO; -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.Stubs; -using Tango.Stubs; - - -include "..\..\Defines\Tango_Defines_Basic.cs" -include "Tango_Defines_SSR.cs" -include "Tango_Defines_LimitSwitch.cs" - - -//-------------------------------------------------------------------------------- - const Int32 I2C_ID = 2; - -//-------------------------------------------------------------------------------- -//-------------------------------------------------------------------------------- -//string path1=@"P:\Scripts\Assemblies\Dye head\DyeHeadLog\"; -string path1="P:\\Scripts\\Assemblies\\Dye head\\DyeHeadLog\\"; -string path2="C:\\DyeHeadLog\\"; - -string File_Name1 ; -string Status; -//--------------------------- - -float [] DyeHeadTemp = new float[6] ; - -string [,] Units_status = new string[16,2] { - {"Pt100_Zone_1","Not Test"}, - {"Pt100_Zone_2","Not Test"}, - {"Pt100_Zone_3","Not Test"}, - {"Pt100_Zone_4","Not Test"}, - {"Pt100_Zone_5","Not Test"}, - {"Pt100_Zone_6","Not Test"}, - {"Heater_Zone_1","Not Test"}, - {"Heater_Zone_2","Not Test"}, - {"Heater_Zone_3","Not Test"}, - {"Heater_Zone_4","Not Test"}, - {"Heater_Zone_5","Not Test"}, - {"Heater_Zone_6","Not Test"}, - {"Magnet ","Not Test"}, - {"LS_DH_LID_Open","Not Test"}, - {"LS_DH_LID_Close","Not Test"}, - {"DH_LID_Motor","Not Test"}, - }; - - - -//----------------------------------------------------- -string DyeHead_Sn; -//-------------------------------------------------------------------------------- - -public void OnExecute(StubManager stubManager) -{ -string path=""; - Form form1 = new Form(); - -// Set the caption bar text of the form. - - form1.Text = "DyeHead Test"; - form1.FormBorderStyle = FormBorderStyle.FixedDialog; - form1.MaximizeBox = false; - form1.MinimizeBox = false; - form1.StartPosition = FormStartPosition.CenterScreen; - form1.AutoSize = true; - form1.AutoSizeMode = AutoSizeMode.GrowAndShrink; -// Create buttons to Run. - Button button1 = new Button () - { - Width = 100, - Height = 100, - }; - button1.Text = "Run"; - button1.Location = new Point (40, 100); - form1.Controls.Add(button1); -//-----DyeHead Serial Number ----------- - - Label Label1 = new Label () - { - Width = 150, - Height = 20, - Text =" DyeHead S/N" - }; - Label1.Location = new Point (30, 10); - form1.Controls.Add(Label1); - TextBox TextBox1 = new TextBox () - { - Width = 100, - Height = 10, - Text ="" - }; - TextBox1.Location = new Point (40, 40); - form1.Controls.Add(TextBox1); - //----------LOCATION---------- - - Label Label3 = new Label () - { - Width = 150, - Height = 20, - Text ="LOCATION" - }; -Label3.Location = new Point (350, 10); - form1.Controls.Add(Label3); - - - -TextBox TextBox3 = new TextBox () - { - Width = 100, - Height = 10, - Text ="" - }; -TextBox3.Location = new Point (360, 40); - form1.Controls.Add(TextBox3); - -//-------------------------------------------------------------------------------- - - stubManager.Write("Counter is 2 \n"); - - button1.Click += (_,__) => - - { -if (!Directory.Exists(path1)) - { - path=path2; - if (!Directory.Exists(path2)) - Directory.CreateDirectory(path2); - } -else -path=path1; - - -File_Name1=path + TextBox1.Text +"_DyeHead_" + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".log" ; - - -stubManager.Write(File_Name1 +"\n"); -stubManager.WriteToFile(File_Name1,DateTime.Now +" " ); -stubManager.Write(DateTime.Now +"\n" ); - -stubManager.AppendToFile(File_Name1,"DyeHead Test Report" ); -stubManager.Write("DyeHead Test Report\n" ); - -stubManager.AppendToFile(File_Name1,"DyeHead S/N: \t" + TextBox1.Text ); -stubManager.Write("DyeHead S/N:" + TextBox1.Text +"\n" ); - - -stubManager.AppendToFile(File_Name1,"Location:\t" + TextBox3.Text ); -stubManager.Write("Location:" + TextBox3.Text +"\n" ); - - - -Label Label5 = new Label () - { - Width = 120, - Height =100, - Text = "" - }; -Label5.Location = new Point (300, 100); -Label5.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; - -Label5.Text="Pros"; -Label5.Font = new Font("Arial", 24,FontStyle.Bold); -form1.Controls.Add(Label5); - - -//------------------------------- start test ----------- - - DialogResult result = MessageBox.Show("Make shure, Dyehead is not hot", "Warning",MessageBoxButtons.OKCancel); - if(result == DialogResult.Cancel) - { - stubManager.AppendToFile(File_Name1,"Dyehead is too hot \tFail"); - stubManager.Write("Dyehead is too hot \tFail\n"); - return ; - } - Test_Magnet_Motor_LS_DyeHead(); - Test_heaters_pt100 (); - Status=write_to_file(); - - Label5.Text=Status; - TextBox1.Text=""; -}; - - form1.ShowDialog(); - -// stubManager.Write("Counter is \n"); - - - return; - } - -//-------------------------------------------- - int Test_Magnet_Motor_LS_DyeHead() -{ - Int32 Bit = 1; - - stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,23, false,0x800000+0); - stubManager.Write("\nTesting SSR no. 13 of magnet or motor driver"); - - DialogResult result = MessageBox.Show("Make shure, Magnet is open", "Warning",MessageBoxButtons.OKCancel); - if(result == DialogResult.Cancel) - { - Units_status[12,1]="Fail"; - stubManager.Write("Magnet Not Open\n"); - return 0; - } - Units_status[12,1]="Pass"; - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,2, true, 250); - stubManager.Write("\n*** Open Lid Head "); - - Bit = 1; - int i=0; - while ((Bit != 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec - { - Bit = GetBit(FPGA1, F1_LS_01_Direct,7); - Thread.Sleep(50); - i++; - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,2,3); //stop motor - - DialogResult result1 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.OKCancel); - if(result1 == DialogResult.Cancel) - { - Units_status[15,1]="Fail"; - Units_status[13,1]="Fail"; - stubManager.Write("LS_DH_LID_Open Not calibrate\n"); - return 0; - } - Units_status[13,1]="Pass"; - stubManager.Write("\n*** Close Lid Head "); - Bit = 1; - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,2, false, 250); - i=0; - while ((Bit != 0x0) && (i<200)) //wait until Limit Switch or timeout 200*50msec=10sec - { - Bit = GetBit(FPGA1, F1_LS_01_Direct,8); - Thread.Sleep(50); - i++; - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,2,3); //stop motor - - DialogResult result2 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.OKCancel); - if(result2 == DialogResult.Cancel) - { - Units_status[14,1]="Fail"; - Units_status[15,1]="Fail"; - stubManager.Write("LS_DH_LID_Close Not calibrate\n"); - return 0; - } - Units_status[14,1]="Pass"; - stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,23, false,0x800000+2); - DialogResult result3 = MessageBox.Show("Make shure, Magnet is close", "Warning",MessageBoxButtons.OKCancel); - if(result3 == DialogResult.Cancel) - { - Units_status[12,1]="Fail"; - stubManager.Write("Magnet Not close\n"); - return 0; - } - Units_status[12,1]="Pass"; - Units_status[15,1]="Pass"; - - return 0; -} - - //------------------------------------ -string write_to_file() -{ - stubManager.Write("write_to_file\n"); - -string Stemp="Pass"; - for (int i=0;i<16;i++) - { - stubManager.AppendToFile(File_Name1,Units_status[i,0]+"\t" + Units_status[i,1] ); - stubManager.Write(Units_status[i,0]+"\t" + Units_status[i,1]+"\n" ); - - if ((Units_status[i,1]=="Fail")||(Units_status[i,1]=="Not Test")) - Stemp="Fail"; - } - if (Stemp=="Fail") - { - stubManager.AppendToFile(File_Name1,"-------------Dye Head Fail ------------ )"); - stubManager.Write("-------------Dye Head Fail ------------ "); - } - else - { - stubManager.AppendToFile(File_Name1,"-------------Dye Head Pass ------------ )"); - stubManager.Write("-------------Dye Head Pass ------------ "); - } - - return Stemp; -} -//------------------------------------ -int Test_heaters_pt100() -{ - -// uint utemp=0; - uint temp=0; - float ftemp=0; - float ftemp1=0; - float current=0; - - stubManager.Write("\nTemp Befor heating \n"); - if (test_pt100()!=0) - return 0; - -//------------Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 8 - SetBit (FPGA2, F2_CTRL, 3, 1); - stubManager.Write("Testing SSR no. 8\tHeadZone-1\t"); - Thread.Sleep(10000); - adc_configuration(0x40,0x10); //a2d_address 0x40 channel 3 - adc_set_for_read_ch(0x40); - temp=adc_read_ch(0x40); - current= (float)(temp); - current=( float) (0.001221) * current; - SetBit (FPGA2, F2_CTRL, 3, 0); - ftemp=Read_pt100(0); - stubManager.Write("After heating " + ftemp +"c\tCurrent is "+ current + "\n"); - ftemp = ftemp - DyeHeadTemp[0]; - - if ((current>1.5)|| (current<0.9)||(ftemp<5)||(ftemp>25)) - Units_status[6,1]="Fail"; - else - Units_status[6,1]="Pass"; - - //Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 7 - ftemp=Read_pt100(1); - ftemp1 = ftemp - DyeHeadTemp[1]; - if ( ftemp1>4) - Units_status[7,1]="Fail"; - else - { - SetBit (FPGA2, F2_CTRL, 4, 1); - stubManager.Write("Testing SSR no. 7\tHeadZone-2\t"); - Thread.Sleep(10000); - adc_configuration(0x40,0x08); //a2d_address 0x40 channel 4 - adc_set_for_read_ch(0x40); - temp=adc_read_ch(0x40); - current= (float)(temp); - current=( float) (0.001221) * current; - SetBit (FPGA2, F2_CTRL, 4, 0); - ftemp=Read_pt100(1); - stubManager.Write("After heating " + ftemp +"c\tCurrent is "+ current + "\n"); - ftemp = ftemp - DyeHeadTemp[1]; - if ((current<1.6)|| (current>2.1)||(ftemp<5)||(ftemp>25)) - Units_status[7,1]="Fail"; - else - Units_status[7,1]="Pass"; - } - - //Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 6 - - ftemp=Read_pt100(2); - ftemp1 = ftemp - DyeHeadTemp[2]; - if ( ftemp1>4) - Units_status[8,1]="Fail"; - else - { - SetBit (FPGA2, F2_CTRL, 5, 1); - stubManager.Write("Testing SSR no. 6\tHeadZone-3\t"); - Thread.Sleep(10000); - adc_configuration(0x40,0x04); //a2d_address 0x40 channel 5 - adc_set_for_read_ch(0x40); - temp=adc_read_ch(0x40); - current= (float)(temp); - current=( float) (0.001221) * current; - SetBit (FPGA2, F2_CTRL, 5, 0); - ftemp=Read_pt100(2); - stubManager.Write("After heating " + ftemp +"c\tCurrent is "+current +"\n"); - ftemp = ftemp - DyeHeadTemp[2]; - if ((current<1.6)|| (current>2.1)||(ftemp<5)||(ftemp>25)) - Units_status[8,1]="Fail"; - else - Units_status[8,1]="Pass"; - } - - //Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 5 - ftemp=Read_pt100(3); - ftemp1 = ftemp - DyeHeadTemp[3]; - if ( ftemp1>4) - Units_status[9,1]="Fail"; - else - { - SetBit (FPGA2, F2_CTRL, 6, 1); - stubManager.Write("Testing SSR no. 5\tHeadZone-4\t"); - Thread.Sleep(10000); - adc_configuration(0x44,0x80); //a2d_address 0x44 channel 0 - adc_set_for_read_ch(0x44); - temp=adc_read_ch(0x44); - current= (float)(temp); - current=( float) (0.001221) * current; - - SetBit (FPGA2, F2_CTRL, 6, 0); - ftemp=Read_pt100(3); - stubManager.Write("After heating " + ftemp +"c\tCurrent is "+current + "\n"); - ftemp = ftemp - DyeHeadTemp[3]; - if ((current<2.9)|| (current>3.4)||(ftemp<5)||(ftemp>25)) - Units_status[9,1]="Fail"; - else - Units_status[9,1]="Pass"; - } - - //Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 10 - ftemp=Read_pt100(4); - ftemp1 = ftemp - DyeHeadTemp[4]; - if ( ftemp1>4) - Units_status[10,1]="Fail"; - else - { - SetBit (FPGA1, F1_gpo_01, 2, 1); - stubManager.Write("Testing SSR no. 10\tHeadZone-5\t"); - Thread.Sleep(10000); - adc_configuration(0x44,0x40); //a2d_address 0x44 channel 1 - adc_set_for_read_ch(0x44); - temp=adc_read_ch(0x44); - current= (float)(temp); - current=( float) (0.001526) * current; - SetBit (FPGA1, F1_gpo_01, 2, 0); - ftemp=Read_pt100(4); - stubManager.Write("After heating " + ftemp +"c\tCurrent is "+current + "\n"); - ftemp = ftemp - DyeHeadTemp[4]; - if ((current<2.9)|| (current>3.4)||(ftemp<5)||(ftemp>25)) - Units_status[10,1]="Fail"; - else - Units_status[10,1]="Pass"; - } - - //Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 11 - ftemp=Read_pt100(5); - ftemp1 = ftemp - DyeHeadTemp[5]; - if ( ftemp1>4) - Units_status[11,1]="Fail"; - else - { - SetBit (FPGA3, F3_GPO_01_bus, 4, 1); - stubManager.Write("Testing SSR no. 11\tHeadZone-6\t"); - Thread.Sleep(10000); - adc_configuration(0x44,0x40); //a2d_address 0x44 channel 1 - adc_set_for_read_ch(0x44); - temp=adc_read_ch(0x44); - current= (float)(temp); - current=( float) (0.001526) * current; - SetBit (FPGA3, F3_GPO_01_bus, 4, 0); - ftemp=Read_pt100(5); - stubManager.Write("After heating " + ftemp +"c\tCurrent is "+current + "\n"); - ftemp = ftemp - DyeHeadTemp[5]; - if ((current<1.6)|| (current>2.1)||(ftemp<5)||(ftemp>20)) - Units_status[11,1]="Fail"; - else - Units_status[11,1]="Pass"; - } - return 0; -} -//------------------------------------------------ - int test_pt100() - { - float ftemp=0; - int temp=0; - int j=0; - for (int i = 0; i < 6; i++) - { - DyeHeadTemp[i]=Read_pt100(i); - ftemp=DyeHeadTemp[i]; - if ((ftemp>100)|| (ftemp<10)) - { - Units_status[i,1]="Fail"; - } - else - { - Units_status[i,1]="Pass"; - } - stubManager.Write("Zone-"+(i+1)+ "\t" + ftemp.ToString("F2")); - stubManager.Write("°C\n"); - - } - return 0; - } -//------------------------------------------------ -float Read_pt100(int i) -{ - int j= i+1; - if (i==5) - j=11; - var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,j); // - float ftemp = (float)response.TemperatureCMultBy100; - ftemp = ftemp / 100; - return (ftemp); -} -//--------------------------- -int adc_configuration(uint I2C_Slave_Add,uint channel ) - { - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0x00);//Byte 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(channel);//Byte 1 to Write, must be 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02 or 0x01 for different channels - stubI2CWriteBytesRequest.BytesTWrite.Add(0x80);//Byte 2 to Write - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; - } -//----------------------------------- -int adc_set_for_read_temp(uint I2C_Slave_Add) - { - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0x02);//Byte 0 to write - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; - } -//----------------------------------- -int adc_read_temp(uint I2C_Slave_Add) - { - - StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest(); - stubI2CReadBytesRequest.I2CId = I2C_ID; - stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add; - stubI2CReadBytesRequest.NumberOfBytesToRead = 2; // Number of bytes to read - - var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest); - - for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++) - { - stubManager.WriteLineHex(response1.ReadBytes[i],2); - } - - - return 1; - } -//----------------------------------- -int adc_set_for_read_ch(uint I2C_Slave_Add) - { - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0x01);//Byte 0 to write - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; - } -//----------------------------------- -uint adc_read_ch(uint I2C_Slave_Add) - { - StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest(); - stubI2CReadBytesRequest.I2CId = I2C_ID; - stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add; - stubI2CReadBytesRequest.NumberOfBytesToRead = 2; // Number of bytes to read - - var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest); - uint temph=0; - uint templ=0; - uint temp=0; - temph=response1.ReadBytes[0]; - templ=response1.ReadBytes[1]; - temp = (temph << 8) | templ; - temp=temp & 0x0fff; - return temp; - } diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Jig/DyeHeadJig.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Jig/DyeHeadJig.cs deleted file mode 100644 index 3e5ccf085..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Jig/DyeHeadJig.cs +++ /dev/null @@ -1,384 +0,0 @@ -//-------------------------------------------------------------------------------- - -//include "Dispenser_setup_mbar1.cs" -//include "C:\Dispenser_setup\Dispenser_setup_seal_test.cs" - -//-------------------------------------------------------------------------------- -//include "Dispenser_Motor_stop.cs" -//include "Dispenser_setup_form_valve close_1.cs" -//include "Dispenser_setup_form_valve open_1.cs" -//include "Dispenser_Motor_run.cs" -//include "Dispenser_Motor_Up.cs" -//include "Dispenser_Motor_Down.cs" -//-------------------------------------------------------------------------------- -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.Stubs; -using Tango.Stubs; - -//-------------------------------------------------------------------------------- -const Int32 RDANCER_Motor = 21; -const Int32 RDRIVING_Motor = 22; -const Int32 RLOADING_Motor = 24; - -//-------- - -const Int32 F1_LS_RLOADMOTOR_UP = 0x0040 ; -const Int32 F1_LS_RLOADMOTOR_DN = 0x0080 ; - - - - - - -const Int32 F1_MOTO_RLOADING_TX1 = 0x60000202; -const Int32 F1_MOTO_RLOADING_TX0 = 0x60000200; -const Int32 F1_MOTO_RLOADING_RX1 = 0x60000206; -const Int32 F1_MOTO_RLOADING_RX0 = 0x60000204; - - -const Int32 F1_LS_03_Direct =0x60000040; -//-------------------------------------------------------------------------------- -string path1="M:\\RTFU\\Reports\\"; -string File_Name1 ; -string Status; - - - -//----------------------------------------------------- - -//int SealTest=0; -//int Characterization; -string RTFU_Sn; -//int dispenserNumber=1; -//string Dtype=""; -//int Table=0; -///string shortDateString; - -//UInt32 Type_card; -//-------------------------------------------------------------------------------- - -public void OnExecute(StubManager stubManager) -{ - stubManager.Write("Counter is 1 \n"); - -//----------------------------------------------------------------------------------------------------------------------------------------------------- -//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0X60000522, 0X128);//0X128 EQULE 50 MSEC - - //-----------------------------detect card ---------------------------- - - -//--------------------------------------------------------------------------------------------------------------------------------------------------------- - - -//Create form - Form form1 = new Form(); - -//-------------------------------------------------------------------------------- - -// Create buttons to use as the accept and cancel buttons. - Button button1 = new Button () - { - Width = 100, - Height = 100, - }; - -//-------------------------------------------------------------------------------- -// Set the text of button - - button1.Text = "Run"; - - -//-------------------------------------------------------------------------------- -// Set the position of the button on the form. - - button1.Location = new Point (40, 100); - - - - -//-------------------------------------------------------------------------------- - // Add button to the form. - - form1.Controls.Add(button1); - - - -//-------------------------------------------------------------------------------- - -// Set the caption bar text of the form. - - form1.Text = "RTFU Test"; - -//-------------------------------------------------------------------------------- - - // Define the border style of the form to a dialog box. - - form1.FormBorderStyle = FormBorderStyle.FixedDialog; - - // Set the MaximizeBox to false to remove the maximize box. - - form1.MaximizeBox = false; - - // Set the MinimizeBox to false to remove the minimize box. - - form1.MinimizeBox = false; - - // Set the start position of the form to the center of the screen. - - form1.StartPosition = FormStartPosition.CenterScreen; - - - form1.AutoSize = true; - form1.AutoSizeMode = AutoSizeMode.GrowAndShrink; - -//-----RTFU Serial Number ----------- - -Label Label1 = new Label () - { - Width = 150, - Height = 20, - Text =" RTFU S/N" - }; -Label1.Location = new Point (30, 10); - form1.Controls.Add(Label1); - - -TextBox TextBox1 = new TextBox () - { - Width = 100, - Height = 10, - Text ="" - }; -TextBox1.Location = new Point (40, 40); - form1.Controls.Add(TextBox1); - -//-----USER NAME ----------- - -Label Label2 = new Label () - { - Width = 150, - Height = 20, - Text ="USER NAME" - }; -Label2.Location = new Point (190, 10); - form1.Controls.Add(Label2); - - -TextBox TextBox2 = new TextBox () - { - Width = 100, - Height = 10, - Text ="" - }; -TextBox2.Location = new Point (200, 40); - form1.Controls.Add(TextBox2); - -//----------LOCATION---------- - - Label Label3 = new Label () - { - Width = 150, - Height = 20, - Text ="LOCATION" - }; -Label3.Location = new Point (350, 10); - form1.Controls.Add(Label3); - - - -TextBox TextBox3 = new TextBox () - { - Width = 100, - Height = 10, - Text ="" - }; -TextBox3.Location = new Point (360, 40); - form1.Controls.Add(TextBox3); - -//-------------------------------------------------------------------------------- - - stubManager.Write("Counter is 2 \n"); - - button1.Click += (_,__) => - - { - -//File_Name1=path1 +"RTFU.log" ; -File_Name1=path1 + TextBox1.Text +"_RTFU_" + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".log" ; -//File_Name1=path1 + DateTime.Now+"RTFU.log" ; - -stubManager.Write(File_Name1 +"\n"); -stubManager.WriteToFile(File_Name1,DateTime.Now +"\n" ); -stubManager.Write(DateTime.Now +"\n" ); - -stubManager.AppendToFile(File_Name1,"RTFU Test Report\n" ); -stubManager.Write("RTFU Test Report\n" ); - -stubManager.AppendToFile(File_Name1,"RTFU S/N: \t" + TextBox1.Text +"\n" ); -stubManager.Write("RTFU S/N:" + TextBox1.Text +"\n" ); - -stubManager.AppendToFile(File_Name1,"User Name:\t" + TextBox2.Text +"\n" ); -stubManager.Write("User Name:" + TextBox2.Text +"\n" ); - - -stubManager.AppendToFile(File_Name1,"Location:\t" + TextBox3.Text +"\n" ); -stubManager.Write("Location:" + TextBox3.Text +"\n" ); - - - - - - -Label Label5 = new Label () - { - Width = 120, - Height =100, - Text = "" - }; -Label5.Location = new Point (300, 100); -Label5.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; - -Label5.Text="Pros"; -Label5.Font = new Font("Arial", 24,FontStyle.Bold); -form1.Controls.Add(Label5); - -Status=Test_RLOADING_RTFU (); - Label5.Text=Status; - TextBox1.Text=""; -}; - - form1.ShowDialog(); - - stubManager.Write("Counter is \n"); - - - return; - } - //------------------------------------ -string Test_RLOADING_RTFU() -{ - int temp=1; - int counter; - Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x2c000000); //set kval ran to 0x2c - Thread.Sleep(100); - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RLOADING_Motor, true,100); //move Rloading down - Thread.Sleep(3000); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading - Thread.Sleep(1000); - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RLOADING_Motor,false,100); //move Rloading up - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //read LS - if ((response.Value & F1_LS_RLOADMOTOR_UP) !=F1_LS_RLOADMOTOR_UP ) //if LS_RLOADMOTOR_UP is up then error - { - stubManager.AppendToFile(File_Name1,"LS_RLOADMOTOR_UP\tFail"); - stubManager.Write("LS_RLOADMOTOR_UP\tFail\n"); - return "Fail"; - } - counter =0; - while ( counter < 150) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if LS_RLOADMOTOR_UP is up then move down - if ((response.Value & F1_LS_RLOADMOTOR_UP) != F1_LS_RLOADMOTOR_UP ) - counter=150; - Thread.Sleep(100); - } - if (counter >= 150) - { - stubManager.AppendToFile(File_Name1,"LS_RLOADMOTOR_UP or Motors RLOADING \tFail"); - stubManager.Write("LS_RLOADMOTOR_UP or Motors RLOADING \tFail\n"); - return "Fail"; - } - stubManager.AppendToFile(File_Name1,"LS_RLOADMOTOR_UP\tPass"); - stubManager.Write("LS_RLOADMOTOR_UP or Motors RLOADING \tPass\n"); -//----------------------------------------------------------------------------------------------------- - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RLOADING_Motor, true,100); //move Rloading down - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //read LS - - if ((response.Value & F1_LS_RLOADMOTOR_DN) !=F1_LS_RLOADMOTOR_DN ) //if LS_RLOADMOTOR_DN is up then error - { - stubManager.AppendToFile(File_Name1,"LS_RLOADMOTOR_DN\tFail"); - stubManager.Write("LS_RLOADMOTOR_DN\tFail\n"); - return "Fail"; - } - counter =0; - while ( counter < 150) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if LS_RLOADMOTOR_UP is up then move down - if ((response.Value & F1_LS_RLOADMOTOR_DN) != F1_LS_RLOADMOTOR_DN ) - counter=150; - Thread.Sleep(100); - } - if (counter >= 150) - { - stubManager.AppendToFile(File_Name1,"LS_RLOADMOTOR_DN \tFail"); - stubManager.Write("LS_RLOADMOTOR_UP RLOADING \tFail\n"); - return "Fail"; - } - Thread.Sleep(1000); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading - Thread.Sleep(1000); - Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x14000000); //set kval ran to 0x14 - - return "Pass";; - -} -//------------------------------------------------------------- -int Test_RDRIVING_RTFU() -{ - int temp=1; - int counter; - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RDRIVING_Motor, true,200); //move Rdriving clockwise - - DialogResult result1 = MessageBox.Show("Are RDRIVING_Motor move clockwise ?","Important Question",MessageBoxButtons.YesNo); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RDRIVING_Motor, 3); //hold Rloading - if (result1==DialogResult.Yes) - { - stubManager.AppendToFile(File_Name1,"RDRIVING_RTFU\tPass"); - stubManager.Write("RDRIVING_RTFU\tPass\n"); - return 1; - } - else - { - stubManager.AppendToFile(File_Name1,"RDRIVING_RTFU\tFail"); - stubManager.Write("RDRIVING_RTFU\tFail\n"); - return 0; - } -} -//-------------------------------------------------------------------------------- - - -//-------------------------------------------------------------------------------- - -//-------------------------------------------------------------------------------- - - -//-------------------------------------------------------------------------------- - -// Display the form as a modal dialog box. - -// ParaData1 shall be left justified i.e. <cmd><Byte0><Byte1><Byte2> -int Motor_SetParam(Int32 HighAdr, Int32 LowAdr, Int32 ParaAddr, uint ParaData1) -{ - - Int32 Temp = 0; - Temp = (ParaAddr << 8 ) + ( (Int32) ParaData1 >> 24); - - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,HighAdr, (Temp & 0xffff)); - Temp = ((Int32)ParaData1 >> 8) & 0xffff; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,LowAdr, (Temp)); - //Fpga_Read_Reg(Fpga, HighAdr+4, 1); - //Fpga_Read_Reg(Fpga, LowAdr+4, 1); - - return 1; -} diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Write Flate head eeprom.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Write Flate head eeprom.cs deleted file mode 100644 index 0d01c7dbe..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Write Flate head eeprom.cs +++ /dev/null @@ -1,146 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -//---------------------- -const Int32 I2C_ID = 3; //MCU_I2C3 -const Int32 TCA9548A_address = 0xE2; -const Int32 I2C_Slave_Add = 0xA0; // //eeprom address - 32kByte -int Head_Mux_Channel_ID = 4; //Head MUX channel -//---------------------- - -const Int32 SerialNum = 0x01; - - -int enable_channel(int Channel_ID) -{ - uint Const_temp = 0x01; - - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = TCA9548A_address; - - Const_temp = Const_temp << Channel_ID; - stubI2CWriteBytesRequest.BytesTWrite.Add(Const_temp); - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; -} - - -int WriteFlatEpprom(uint I2C_Slave_Add) -{ - uint Page=0; - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write - //-------------------------------------------------------------- - - stubI2CWriteBytesRequest.BytesTWrite.Add(0x33); //header - stubI2CWriteBytesRequest.BytesTWrite.Add(0xcc); - stubI2CWriteBytesRequest.BytesTWrite.Add(0xaa); - stubI2CWriteBytesRequest.BytesTWrite.Add(0x55); - - //stubI2CWriteBytesRequest.BytesTWrite.Add(0x04);//HEAD_TYPE_STAPLE_SPUN - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - Thread.Sleep(100); - - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(92);//Byte 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write - //-------------------------------------------------------------- - - stubI2CWriteBytesRequest.BytesTWrite.Add(0x10); //flat - stubI2CWriteBytesRequest.BytesTWrite.Add(0x00); - stubI2CWriteBytesRequest.BytesTWrite.Add(0x00); - stubI2CWriteBytesRequest.BytesTWrite.Add(0x00); - - //stubI2CWriteBytesRequest.BytesTWrite.Add(0x04);//HEAD_TYPE_STAPLE_SPUN - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - Thread.Sleep(100); - - - - - - return 1; -} - -int adc_set_for_read_ch(uint I2C_Slave_Add, uint Page) -{ - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; -} - -int adc_read_ch(uint I2C_Slave_Add) -{ - StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest(); - stubI2CReadBytesRequest.I2CId = I2C_ID; - stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add + 1; - stubI2CReadBytesRequest.NumberOfBytesToRead = 10; // Number of bytes to read - - var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest); - uint temph=0; - - for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++) - { - temph=response1.ReadBytes[i]; - stubManager.WriteHex(temph,2); - } - - return 1; -} - - -public void OnExecute(StubManager stubManager) -{ - - //enable_all_channel(); - enable_channel(Head_Mux_Channel_ID); // Chanel 0-7 => Disp0enser 0-7 - - for (int i = 0; i<1; i++) - { - - WriteFlatEpprom(I2C_Slave_Add); - Thread.Sleep(10); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet ) - - stubManager.Write("\nPage 0x00 #"); - stubManager.Write(i); - stubManager.Write("\t- The Buffer is: "); - adc_set_for_read_ch(I2C_Slave_Add, 0x00); - //Thread.Sleep(1); //Sleep for 10 milli. - adc_read_ch(I2C_Slave_Add); - - Thread.Sleep(1000); - - } -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Write SYLKO to head eeprom.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Write SYLKO to head eeprom.cs deleted file mode 100644 index d7729ca2f..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Write SYLKO to head eeprom.cs +++ /dev/null @@ -1,118 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -//---------------------- -const Int32 I2C_ID = 3; //MCU_I2C3 -const Int32 TCA9548A_address = 0xE2; -const Int32 I2C_Slave_Add = 0xA0; // //eeprom address - 32kByte -int Head_Mux_Channel_ID = 4; //Head MUX channel -//---------------------- - -const Int32 SerialNum = 0x01; - - -int enable_channel(int Channel_ID) -{ - uint Const_temp = 0x01; - - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = TCA9548A_address; - - Const_temp = Const_temp << Channel_ID; - stubI2CWriteBytesRequest.BytesTWrite.Add(Const_temp); - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; -} - - -int adc_write(uint I2C_Slave_Add, uint Page) -{ - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write - //-------------------------------------------------------------- - - stubI2CWriteBytesRequest.BytesTWrite.Add(SerialNum);//S/N - stubI2CWriteBytesRequest.BytesTWrite.Add(0x03);//HEAD_TYPE_SYLKO - //stubI2CWriteBytesRequest.BytesTWrite.Add(0x04);//HEAD_TYPE_STAPLE_SPUN - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; -} - -int adc_set_for_read_ch(uint I2C_Slave_Add, uint Page) -{ - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; -} - -int adc_read_ch(uint I2C_Slave_Add) -{ - StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest(); - stubI2CReadBytesRequest.I2CId = I2C_ID; - stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add + 1; - stubI2CReadBytesRequest.NumberOfBytesToRead = 10; // Number of bytes to read - - var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest); - uint temph=0; - - for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++) - { - temph=response1.ReadBytes[i]; - stubManager.WriteHex(temph,2); - } - - return 1; -} - - -public void OnExecute(StubManager stubManager) -{ - - //enable_all_channel(); - enable_channel(Head_Mux_Channel_ID); // Chanel 0-7 => Disp0enser 0-7 - - for (int i = 0; i<1; i++) - { - - adc_write(I2C_Slave_Add,0x00); - Thread.Sleep(10); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet ) - - stubManager.Write("\nPage 0x00 #"); - stubManager.Write(i); - stubManager.Write("\t- The Buffer is: "); - adc_set_for_read_ch(I2C_Slave_Add, 0x00); - //Thread.Sleep(1); //Sleep for 10 milli. - adc_read_ch(I2C_Slave_Add); - - Thread.Sleep(1000); - - } -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/magnet_motor_limit_switch1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/magnet_motor_limit_switch1.cs deleted file mode 100644 index a5a43f137..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/magnet_motor_limit_switch1.cs +++ /dev/null @@ -1,75 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -include "..\..\Defines\Tango_Defines_Basic.cs" -include "Tango_Defines_SSR.cs" -include "Tango_Defines_LimitSwitch.cs" - -//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\Software\Stub_scripts\Tango_Defines_Basic.cs" -//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\Software\Stub_scripts\Interfaces\Tango_Defines_SSR.cs" - - -public void OnExecute(StubManager stubManager) -{ -Int32 Bit = 1; - - //Write GPO_DRYER_SSR1_CTRL SSR/SSR no. 1 - SetBit (FPGA2, F2_CTRL, 0, 1); - stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,23, false,0x800000+0); - - stubManager.Write("\nTesting SSR no. 13 of magnet or motor driver"); - Thread.Sleep(1000); - -var response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,2, true, 150); - - - stubManager.Write("\n*** Open Lid Head "); - Bit = 1; - - while (Bit != 0x0) //wait until LTFU LOADRAM Down - { - Bit = GetBit(FPGA1, F1_LS_01_Direct,7); - Thread.Sleep(50); - } - Thread.Sleep(2000); - stubManager.Write("\n--------1--------"); - - - stubManager.Write("\n*** Close Lid Head "); - Bit = 1; - response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,2, false, 150); - - while (Bit != 0x0) //wait until LTFU LOADRAM Down - { - Bit = GetBit(FPGA1, F1_LS_01_Direct,8); - Thread.Sleep(50); - } - Thread.Sleep(100); - stubManager.Write("\n--------2--------"); - - response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,2, true, 0); - - SetBit (FPGA2, F2_CTRL, 0, 0); - - stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,23, false,0x800000+2); - Thread.Sleep(1000); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,23,3); - - -// var response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,0, true, 50); motor clean - -//response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,1, true, 50); motor clean - - - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/ElectricalEnclosure/ElectricalEnclosure_Fans1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/ElectricalEnclosure/ElectricalEnclosure_Fans1.cs index ba39cb2b0..264400e64 100644 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/ElectricalEnclosure/ElectricalEnclosure_Fans1.cs +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/ElectricalEnclosure/ElectricalEnclosure_Fans1.cs @@ -73,7 +73,7 @@ public void OnExecute(StubManager stubManager) for (int i = 0; i<1000; i++) { - stubManager.Write("\n----------------------------------------\n"); + stubManager.Write("----------------------------------------\n"); // Fpga_Read_Reg(FPGA1, F1_Tacho_reg0, 0); stubManager.Write("\n"); // Fpga_Read_Reg(FPGA1, F1_Tacho_reg1, 1); stubManager.Write("\n"); // Fpga_Read_Reg(FPGA1, F1_Tacho_reg2, 1); stubManager.Write("\n"); @@ -83,85 +83,37 @@ public void OnExecute(StubManager stubManager) var RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg0, 0); stubManager.Write("\nFan5 Speed-"); stubManager.WriteHex(RetVal.Value,4); - if (RetVal.Value>0x440 && RetVal.Value<0x4d0) - stubManager.Write("\t Pass"); - else - stubManager.Write("\t Fail"); + RetVal = Fpga_Read_Reg(FPGA1, F1_gpi_FANS, 0); + Temp1=RetVal.Value & 0x0001; + if (Temp1 !=0x0001) + stubManager.Write("\nFan1 Running "); + else + stubManager.Write("\nFan1 Stop"); - RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg1, 0); - stubManager.Write("\nFan1 Speed-"); - stubManager.WriteHex(RetVal.Value,4); - if (RetVal.Value>0x220 && RetVal.Value<0x300) - stubManager.Write("\t Pass"); - else - stubManager.Write("\t Fail"); - - - - -// RetVal = Fpga_Read_Reg(FPGA1, F1_gpi_FANS, 0); -// Temp1=RetVal.Value & 0x0001; -// if (Temp1 !=0x0001) -// stubManager.Write("\tFan1 Running "); -// else -// stubManager.Write("\tFan1 Stop"); - - - - RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg2, 0); - stubManager.Write("\nFan2 Speed-"); - stubManager.WriteHex(RetVal.Value,4); - if (RetVal.Value>0x220 && RetVal.Value<0x300) - stubManager.Write("\t Pass"); - else - stubManager.Write("\t Fail"); - - -// Temp1=RetVal.Value & 0x0002; -// if (Temp1 !=0x0002) -// stubManager.Write("\tFan2 Running "); -// else -// stubManager.Write("\tFan2 Stop"); - - - RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg3, 0); - stubManager.Write("\nFan3 Speed-"); - stubManager.WriteHex(RetVal.Value,4); - if (RetVal.Value>0x220 && RetVal.Value<0x300) - stubManager.Write("\t Pass"); - else - stubManager.Write("\t Fail"); - - -// Temp1=RetVal.Value & 0x0004; -// if (Temp1 !=0x0004) -// stubManager.Write("\tFan3 Running "); -// else -// stubManager.Write("\tFan3 Stop"); + Temp1=RetVal.Value & 0x0002; + if (Temp1 !=0x0002) + stubManager.Write("\nFan2 Running "); + else + stubManager.Write("\nFan2 Stop"); - - - RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg4, 0); - stubManager.Write("\nFan4 Speed-"); - stubManager.WriteHex(RetVal.Value,4); - if (RetVal.Value>0x220 && RetVal.Value<0x300) - stubManager.Write("\t Pass"); - else - stubManager.Write("\t Fail"); + Temp1=RetVal.Value & 0x0004; + if (Temp1 !=0x0004) + stubManager.Write("\nFan3 Running "); + else + stubManager.Write("\nFan3 Stop"); - -// Temp1=RetVal.Value & 0x0008; -// if (Temp1 !=0x0008) -// stubManager.Write("\tFan4 Running "); -// else -// stubManager.Write("\tFan4 Stop"); + Temp1=RetVal.Value & 0x0008; + if (Temp1 !=0x0008) + stubManager.Write("\nFan4 Running "); + else + stubManager.Write("\nFan4 Stop"); -// Fpga_Read_Reg(FPGA1, F1_Tacho_reg5, 1); stubManager.Write("\n"); -// Fpga_Read_Reg(FPGA1, F1_Tacho_reg6, 1); stubManager.Write("\n"); -// Fpga_Read_Reg(FPGA1, F1_Tacho_reg7, 1); stubManager.Write("\n"); -// Fpga_Read_Reg(FPGA2, F2_Tacho_reg0, 1); stubManager.Write("\n"); + Fpga_Read_Reg(FPGA1, F1_Tacho_reg5, 1); stubManager.Write("\n"); + Fpga_Read_Reg(FPGA1, F1_Tacho_reg6, 1); stubManager.Write("\n"); + Fpga_Read_Reg(FPGA1, F1_Tacho_reg7, 1); stubManager.Write("\n"); + Fpga_Read_Reg(FPGA2, F2_Tacho_reg0, 1); stubManager.Write("\n"); //stubManager.Write("\n\n"); Thread.Sleep(1000); diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Header/1.cs index 4100a770c..4100a770c 100644 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/1.cs +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Header/1.cs diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/DyeHead_SSR.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Header/DyeHead_SSR.cs index cb01a86c4..cb01a86c4 100644 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/DyeHead_SSR.cs +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Header/DyeHead_SSR.cs diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/DyeHead_SSR_CURRENT_SENSE.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Header/DyeHead_SSR_CURRENT_SENSE.cs index b9793a336..b9793a336 100644 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/DyeHead_SSR_CURRENT_SENSE.cs +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Header/DyeHead_SSR_CURRENT_SENSE.cs diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/header_LimitSwitch.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Header/header_LimitSwitch.cs index 4454e9c63..4454e9c63 100644 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/header_LimitSwitch.cs +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Header/header_LimitSwitch.cs diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/magnet_motor_limit_switch.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Header/magner_motor_limit_switch.cs index 0dcf29853..0dcf29853 100644 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/magnet_motor_limit_switch.cs +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Header/magner_motor_limit_switch.cs diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/magner_ssr.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Header/magner_ssr.cs index 54e3f4844..54e3f4844 100644 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/magner_ssr.cs +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Header/magner_ssr.cs diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_JIG.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_JIG.cs deleted file mode 100644 index f961158e9..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_JIG.cs +++ /dev/null @@ -1,574 +0,0 @@ -using System; -using System.Text; -using System.IO; -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.Stubs; -using Tango.Stubs; -//-------------------------------------------------------------------------------- - -//-------------------DEFINE Motors------------------ -const Int32 LDANCER_Motor = 16; -const Int32 LDRIVING_Motor = 18; -const Int32 LLOADING_Motor = 19; - -//-------------------DEFINE Motors Parameters------------------ - -const Int32 F1_MOTO_LLOADING_TX1 = 0x60000232; -const Int32 F1_MOTO_LLOADING_TX0 = 0x60000230; - - -//-------------------DEFINE Limit Switch--------------- -const Int32 F1_LS_02_Direct =0x60000030; - -const Int32 F1_LS_LLOADMOTOR_UP = 0x0100 ; -const Int32 F1_LS_LLOADMOTOR_DN = 0x0200 ; -const Int32 F1_LS_LDANCER1_UP = 0x1000; -const Int32 F1_LS_LDANCER1_DN = 0x2000; -const Int32 F1_LS_LDANCER2_UP = 0x0400; -const Int32 F1_LS_LDANCER2_DN = 0x0800; -const Int32 F1_LS_LLOADRAM_LF = 0x0080; -const Int32 F1_LS_LLOADRAM_RT = 0x0040; - - -const Int32 F1_LDANCER1_ROTENC_MSB = 0x600001c2; -const Int32 F1_LDANCER1_ROTENC_LSB = 0x600001c0; -const Int32 F1_LDANCER1_ROTENC_TX = 0x600001ce; - -const Int32 F1_LDANCER2_ROTENC_MSB = 0x600001b2; -const Int32 F1_LDANCER2_ROTENC_LSB = 0x600001b0; -const Int32 F1_LDANCER2_ROTENC_TX = 0x600001be; - -const int UNIT_UNDER_TEST=3+1+5; -//-------------------------------------------------------------------------------- -string path1="P:\\Scripts\\Assemblies\\LTFU\\LTFULog\\"; -string path2="C:\\LTFULog\\"; - -string File_Name1 ; -string Status; -//--------------------------- - -string [,] Units_status = new string[UNIT_UNDER_TEST,2] { - {"LS_LLOADMOTOR_Up","Not Test"}, //0 - {"LS_LLOADMOTOR_DOWN","Not Test"}, //1 - {"LLOADING_Motor","Not Test"}, //2 - {"LDRIVING_Motor","Not Test"}, //3 - {"LS_LDANCER1_DOWN","Not Test"}, //4 - {"LS_LDANCER1_UP","Not Test"}, //5 - {"LDANCER_Motor","Not Test"}, //6 - {"LDANCER1_ROTENC","Not Test"}, //7 - {"LDANCER1_ROTENC","Not Test"}, //8 - }; -//----------------------------------------------------- -string LTFU_Sn; -//-------------------------------------------------------------------------------- - -public void OnExecute(StubManager stubManager) -{ -string path=""; - Form form1 = new Form(); - Motor_SetParam(F1_MOTO_LLOADING_TX1,F1_MOTO_LLOADING_TX0,0x0a,0x14000000); //set kval ran to 0x14,0.65A - -// Set the caption bar text of the form. - form1.TopMost = true; - form1.Text = "LTFU Test"; - form1.FormBorderStyle = FormBorderStyle.FixedDialog; - form1.MaximizeBox = false; - form1.MinimizeBox = false; - form1.StartPosition = FormStartPosition.CenterScreen; - form1.AutoSize = true; - form1.AutoSizeMode = AutoSizeMode.GrowAndShrink; -// Create buttons to Run. - Button button1 = new Button () - { - Width = 100, - Height = 100, - }; - button1.Text = "Run"; - button1.Location = new Point (40, 100); - form1.Controls.Add(button1); -//-----LTFU Serial Number ----------- - - Label Label1 = new Label () - { - Width = 150, - Height = 20, - Text =" LTFU S/N" - }; - Label1.Location = new Point (30, 10); - form1.Controls.Add(Label1); - TextBox TextBox1 = new TextBox () - { - Width = 100, - Height = 10, - Text ="" - }; - TextBox1.Location = new Point (40, 40); - form1.Controls.Add(TextBox1); - //----------LOCATION---------- - - Label Label3 = new Label () - { - Width = 150, - Height = 20, - Text ="LOCATION" - }; -Label3.Location = new Point (350, 10); - form1.Controls.Add(Label3); - - - -TextBox TextBox3 = new TextBox () - { - Width = 100, - Height = 10, - Text ="" - }; -TextBox3.Location = new Point (360, 40); - form1.Controls.Add(TextBox3); - - - - - Label Label5 = new Label () - { - Width = 120, - Height =100, - Text = "" - }; - Label5.Location = new Point (300, 100); - Label5.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; - - Label5.Text=""; - Label5.Font = new Font("Arial", 24,FontStyle.Bold); - form1.Controls.Add(Label5); - - - - -//-------------------------------------------------------------------------------- - - button1.Click += (_,__) => - - { - - Label5.Text="Pros"; - - if (!Directory.Exists(path1)) - { - path=path2; - if (!Directory.Exists(path2)) - Directory.CreateDirectory(path2); - } - else - path=path1; - - File_Name1=path + TextBox1.Text +"_LTFU_" + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".log" ; - - - stubManager.Write(File_Name1 +"\n"); - stubManager.WriteToFile(File_Name1,DateTime.Now +" " ); - stubManager.Write(DateTime.Now +"\n" ); - - stubManager.AppendToFile(File_Name1,"LTFU Test Report" ); - stubManager.Write("LTFU Test Report\n" ); - - stubManager.AppendToFile(File_Name1,"LTFU S/N: \t" + TextBox1.Text ); - stubManager.Write("LTFU S/N:" + TextBox1.Text +"\n" ); - - - stubManager.AppendToFile(File_Name1,"Location:\t" + TextBox3.Text ); - stubManager.Write("Location:" + TextBox3.Text +"\n" ); - - - -//------------------------------- start test ----------- - Test_LLOADING_LTFU(); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LLOADING_Motor, 3); //hold LRoading high z - Thread.Sleep(100); - Motor_SetParam(F1_MOTO_LLOADING_TX1,F1_MOTO_LLOADING_TX0,0x0a,0x14000000); //set kval ran to 0x14,0.65A - - Test_LDRIVING_LTFU(); - - Test_DANCER_LTFU(); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LDANCER_Motor, 3); //hold Lloading high z - - Status=write_to_file(); - stubManager.Write(Status +"\n"); - - Label5.Text=Status; - TextBox1.Text=""; - }; - - form1.ShowDialog(); - - return ; - } - - //------------------------------------ -int Test_LLOADING_LTFU() -{ - int temp=1; - int counter; - - Motor_SetParam(F1_MOTO_LLOADING_TX1,F1_MOTO_LLOADING_TX0,0x0a,0x2c000000); //set kval ran to 0x2c- 1.3A - Thread.Sleep(100); - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,LLOADING_Motor, false,200); //move Rloading down - Thread.Sleep(3000); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LLOADING_Motor, 3); //hold Rloading high z - Thread.Sleep(1000); -//------------------------------------------ check F1_LS_LLOADMOTOR_UP------------------------------------------------ - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //read LS - if ((response.Value & F1_LS_LLOADMOTOR_UP) !=F1_LS_LLOADMOTOR_UP ) //if LS_RLOADMOTOR_UP is up then error - { - DialogResult result = MessageBox.Show("Did LLOADIN MOTOR Move?", "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.Yes) - { - Units_status[0,1]="Fail"; - stubManager.Write("LS_LLOADMOTOR_UP\tFail\n"); - return 0; - } - else - { - Units_status[2,1]="Fail"; - stubManager.Write("LLOADMOTOR\tFail\n"); - return 0; - } - } -//----------------------------------------- mov LLOADING up ------------------------------------------------- - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,LLOADING_Motor,true,200); //move Lloading up - counter =0; - while ( counter < 150) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //if LS_LLOADMOTOR_UP is up then move down - if ((response.Value & F1_LS_LLOADMOTOR_UP) != F1_LS_LLOADMOTOR_UP ) - counter=250; - - Thread.Sleep(100); - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LLOADING_Motor, 3); //hold Lloading high z - - if (counter == 150) - { - Units_status[0,1]="Fail"; - stubManager.Write("LS_LLOADMOTOR_UP\tFail\n"); - return 0; - } - DialogResult result1 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo); - if(result1 == DialogResult.No) - { - Units_status[0,1]="Fail"; - stubManager.Write("LS_LLOADMOTOR_UP Not calibrate\n"); - return 0; - } - Units_status[0,1]="Pass"; - Units_status[2,1]="Pass"; - -//------------------------------------------ check F1_LS_LLOADMOTOR_DN------------------------------------------------ - - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //read LS - - if ((response.Value & F1_LS_LLOADMOTOR_DN) !=F1_LS_LLOADMOTOR_DN ) //if LS_LLOADMOTOR_DN is up then error - { - Units_status[1,1]="Fail"; - stubManager.Write("LS_LLOADMOTOR_DN\tFail\n"); - return 0; - } -//------------------------------------------ mov LLOADING dn ------------------------------------------------ - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,LLOADING_Motor, false,200); //move Lloading down - counter =0; - while ( counter < 150) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //if LS_LLOADMOTOR_UP is up then move down - if ((response.Value & F1_LS_LLOADMOTOR_DN) != F1_LS_LLOADMOTOR_DN ) - counter=250; - - Thread.Sleep(100); - } - - if (counter == 150) - { - Units_status[1,1]="Fail"; - stubManager.Write("LS_LLOADMOTOR_DN\tFail\n"); - return 0; - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LLOADING_Motor, 3); //hold Lloading high z - - DialogResult result4 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo); - if(result4 == DialogResult.No) - { - Units_status[1,1]="Fail"; - stubManager.Write("LS_LLOADMOTOR_DN Not calibrate\n"); - return 0; - } - Units_status[1,1]="Pass"; - stubManager.Write("LLOADMOTOR\tPass\n"); - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,LLOADING_Motor, false,200); //move Lloading down - Thread.Sleep(2000); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LLOADING_Motor, 3); //hold Lloading high z - - return 1 ; - -} - - -Int32 ReadEncoder(int i) -{ - Int32 temp; - - if (i==0) //LDANCER1_ROTENC - { - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F1_LDANCER1_ROTENC_TX, 0x0000); //triggers a TX transmission - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LDANCER1_ROTENC_LSB); - var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LDANCER1_ROTENC_MSB); - - temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff)); - - - return temp; - } - //LDANCER2_ROTENC - - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F1_LDANCER2_ROTENC_TX, 0x0000); //triggers a TX transmission - var response2 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LDANCER2_ROTENC_LSB); - var response3 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LDANCER2_ROTENC_MSB); - - temp = Convert.ToInt32 (((((response3.Value <<16) + response2.Value)>>10 ) & 0x3fff)); - - - return temp; -} -//-------------------------------------------------------------------------------- -int Test_DANCER_LTFU() -{ - int counter; - Int32 temp; - Int32 temp1; - Int32 temp2; - Int32 temp3; - - -//------------------------------------------ check F1_LS_LDANCER1_DN ------------------------------------------------ - - MessageBox.Show("Make sure LDANCER Doun"); - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //read LS - - - if ((response.Value & F1_LS_LDANCER1_UP) !=F1_LS_LDANCER1_UP ) //if F1_LS_LDANCER1_UP is up then error - { - Units_status[5,1]="Fail"; - stubManager.Write("LS_LDANCER_UP\tFail\n"); - return 0; - } - -//----------------------------------------- check F1_LS_LDANCER1_UP ------------------------------------------------- - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,LDANCER_Motor,false,400); //move Lloading up - counter =0; - while ( counter < 250) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //if F1_LS_LDANCER1_UP is up then move down - if ((response.Value & F1_LS_LDANCER1_UP) != F1_LS_LDANCER1_UP ) - counter=350; - - Thread.Sleep(100); - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LDANCER_Motor, 3); //hold Ldancer high z - - - if (counter == 250) - { - Units_status[5,1]="Fail"; - stubManager.Write("LS_LDANCER1_UP\tFail\n"); - return 0; - } - - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //read LS - if ((response.Value & F1_LS_LDANCER1_DN) !=F1_LS_LDANCER1_DN ) //if F1_LS_LDANCER1_DN is up then error - { - Units_status[4,1]="Fail"; - stubManager.Write("LS_LDANCER1_DOWN\tFail\n"); - return 0; - } - - DialogResult result5= MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo); - - if(result5== DialogResult.No) - { - Units_status[5,1]="Fail"; - stubManager.Write("LS_LDANCER1_UP Not calibrate\n"); - return 0; - } - - Units_status[5,1]="Pass"; - stubManager.Write("LS_LDANCER1_UP\tPass\n"); - -//----------------------------------------- mov LDANCER_Motor down and check Ldancer encoder ------------------------------------------------- - temp= ReadEncoder(0); - temp2= ReadEncoder(1); - - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,LDANCER_Motor,true,400); //move Rloading down - counter =0; - while ( counter < 250) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //if LS_LDANCER1_DN is dn then move stop - if ((response.Value & F1_LS_LDANCER1_DN) != F1_LS_LDANCER1_DN ) - counter=350; - - Thread.Sleep(100); - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LDANCER_Motor, 3); //hold Rloading high z - if (counter == 250) - { - Units_status[4,1]="Fail"; - stubManager.Write("LS_LDANCER1_DOWN\tFail\n"); - return 0; - } - DialogResult result2 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo); - - if(result2 == DialogResult.No) - { - Units_status[4,1]="Fail"; - stubManager.Write("LS_LDANCER1_DN Not calibrate\n"); - return 0; - } - - Units_status[4,1]="Pass"; - stubManager.Write("LS_LDANCER1_DN\tPass\n"); - - Units_status[6,1]="Pass"; - stubManager.Write("LDANCER_Motor\tPass\n"); - - temp1= ReadEncoder(0); - temp3= ReadEncoder(1); - - stubManager.Write("temp="+temp + "\temp1="+temp1 +"\n"); - - DialogResult result = MessageBox.Show("SSI Dancer1 led is Green(not blinking)?", "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.No) - { - Units_status[7,1]="Fail"; - stubManager.Write("LDANCER1_SSI\tFail\n"); - } - else - { - if (temp>temp1) - temp1=temp1+0x4000; - temp1=temp1-temp; - if ((temp1> 4000) || (temp1 <200)) - { - Units_status[7,1]="Fail"; - stubManager.Write("LDANCER1_SSI\tFail\n"); - } - else - { - Units_status[7,1]="Pass"; - stubManager.Write("LDANCER1_SSI\tPass\n"); - } - } - stubManager.Write("temp2="+temp2 + "\temp3="+temp3 +"\n"); - - DialogResult result3 = MessageBox.Show("SSI Dancer2 led is Green(not blinking)?", "Warning",MessageBoxButtons.YesNo); - if(result3 == DialogResult.No) - { - Units_status[8,1]="Fail"; - stubManager.Write("LDANCER2_SSI\tFail\n"); - } - else - { - if (temp3>temp2) - temp2=temp2+0x4000; - temp2=temp2-temp3; - if ((temp1> 4000) || (temp1 <2000)) - { - Units_status[8,1]="Fail"; - stubManager.Write("LDANCER2_SSI\tFail\n"); - } - else - { - Units_status[8,1]="Pass"; - stubManager.Write("LDANCER2_SSI\tPass\n"); - } - } - return 1; -} - - -//------------------------------------------------------------- -int Test_LDRIVING_LTFU() -{ - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,LDRIVING_Motor, true,200); //move Ldriving clockwise - stubManager.Write("LDRIVING_Motor Motor rotate \n "); - - DialogResult result = MessageBox.Show("Are LDRIVING Motor rotate?", "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.No) - { - Units_status[3,1]="Fail"; - stubManager.Write("LDRIVING Motor not rotate\n"); - } - else - { - Units_status[3,1]="Pass"; - stubManager.Write("LDRIVING Motor rotate\n"); - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LDRIVING_Motor,3); //stop motor - - return 0; -} - - - -//-------------------------------------------------------------------------------- -int Motor_SetParam(Int32 HighAdr, Int32 LowAdr, Int32 ParaAddr, uint ParaData1) -{ - - Int32 Temp = 0; - Temp = (ParaAddr << 8 ) + ( (Int32) ParaData1 >> 24); - - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,HighAdr, (Temp & 0xffff)); - Temp = ((Int32)ParaData1 >> 8) & 0xffff; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,LowAdr, (Temp)); - - return 1; -} - //------------------------------------ -string write_to_file() -{ - stubManager.Write("write_to_file\n"); - -string Stemp="Pass"; - for (int i=0;i<UNIT_UNDER_TEST;i++) - { - stubManager.AppendToFile(File_Name1,Units_status[i,0]+"\t" + Units_status[i,1] ); - stubManager.Write(Units_status[i,0]+"\t" + Units_status[i,1]+"\n" ); - - if ((Units_status[i,1]=="Fail")||(Units_status[i,1]=="Not Test")) - Stemp="Fail"; - } - if (Stemp=="Fail") - { - stubManager.AppendToFile(File_Name1,"-------------LTFU Fail ------------ "); - stubManager.Write("-------------LTFU Fail ------------ "); - } - else - { - stubManager.AppendToFile(File_Name1,"-------------LTFU Pass ------------ )"); - stubManager.Write("-------------LTFU Pass ------------ "); - } - - return Stemp; - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Motors_Switch.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Motors_Switch.cs index 9955e0e5d..7578e825d 100644 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Motors_Switch.cs +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Motors_Switch.cs @@ -14,8 +14,6 @@ using Tango.Stubs; include "..\..\Defines\Tango_Defines_Basic.cs" include "Tango_Defines_Motors.cs" -include "Tango_Defines_LimitSwitch.cs" - //include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_Basic.cs" //include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_Motors.cs" @@ -23,108 +21,15 @@ include "Tango_Defines_LimitSwitch.cs" public void OnExecute(StubManager stubManager) { -Int32 Bit = 1; + stubManager.Write("\n*** LTFU Motor + limit switch Test ***"); +// stubManager.Write("\n*** Pulling motor drivers out of reset"); SetBit(FPGA1, F1_Moto_Driver_NSTBYRST1, 0, 1); SetBit(FPGA1, F1_Moto_Driver_NSTBYRST1, 1, 1); SetBit(FPGA1, F1_Moto_Driver_NSTBYRST1, 2, 1); SetBit(FPGA1, F1_Moto_Driver_NSTBYRST1, 4, 1); - stubManager.Write("\n*** Moving motor F1_MOTO_LLOADING back and for"); - Bit = 1; - - var response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,19,true , 500); - while (Bit != 0x0) //wait until LTFU LOADRAM Down - { - Bit = GetBit(FPGA1, F1_LS_02_Direct,8); - Thread.Sleep(10); - } - Thread.Sleep(100); - stubManager.Write("\n--------1--------"); - - -response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,19, false, 500); - Bit = 1; - while (Bit != 0x0) //wait until LTFU LOADRAM Down - { - Bit = GetBit(FPGA1, F1_LS_02_Direct,9); - Thread.Sleep(10); - } - stubManager.Write("\n--------2--------"); - response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,19, false, 0); - - Thread.Sleep(100); - var response1 = stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,19, false, 5000); - Thread.Sleep(1000); - Motor_HighZ(FPGA1, F1_MOTO_LLOADING_TX1, F1_MOTO_LLOADING_TX0); - stubManager.Write("\n*** Stopped motor F1_MOTO_LLOADING"); - - - //mov ldriving - - stubManager.Write("\n*** Running motor F1_MOTO_LDRIVING for 4 seconds... "); - Motor_Run(FPGA1, F1_MOTO_LDRIVING_TX1, F1_MOTO_LDRIVING_TX0, 0xffff, 0x1); - Thread.Sleep(4000); - Motor_HighZ(FPGA1, F1_MOTO_LDRIVING_TX1, F1_MOTO_LDRIVING_TX0); - - - - - - - - - stubManager.Write("\n\n*** Moving motor F1_MOTO_LDANCER1 back and for ..."); - - Bit = 1; - response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,16,false ,500); - while (Bit != 0x0) //wait until LTFU LOADRAM Down - { - Bit = GetBit(FPGA1, F1_LS_02_Direct,12); - Thread.Sleep(10); - } - Thread.Sleep(100); - stubManager.Write("\n--------1--------"); - - -response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,16, true, 500); - Bit = 1; - while (Bit != 0x0) //wait until LTFU LOADRAM Down - { - Bit = GetBit(FPGA1, F1_LS_02_Direct,13); - Thread.Sleep(10); - } - - Thread.Sleep(1000); - Motor_HighZ(FPGA1, F1_MOTO_LDANCER1_TX1, F1_MOTO_LDANCER1_TX0); - - - - - -/* - - - - - - - - - - - - - - - - - - - - - - - + stubManager.Write("\n*** F1_MOTO_LPIVOT1 is moving back and forth "); @@ -202,7 +107,7 @@ response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,16, true // Thread.Sleep(4000); stubManager.Write("\n\n*** RTFU Motor Test Ended ***"); - */ + } diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Motors_Switch1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Motors_Switch1.cs new file mode 100644 index 000000000..9955e0e5d --- /dev/null +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Motors_Switch1.cs @@ -0,0 +1,208 @@ +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.Diagnostics; +using Tango.PMR.Stubs; +using Tango.Stubs; + + +include "..\..\Defines\Tango_Defines_Basic.cs" +include "Tango_Defines_Motors.cs" +include "Tango_Defines_LimitSwitch.cs" + +//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_Basic.cs" +//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_Motors.cs" + + + +public void OnExecute(StubManager stubManager) +{ +Int32 Bit = 1; + stubManager.Write("\n*** LTFU Motor + limit switch Test ***"); + SetBit(FPGA1, F1_Moto_Driver_NSTBYRST1, 0, 1); + SetBit(FPGA1, F1_Moto_Driver_NSTBYRST1, 1, 1); + SetBit(FPGA1, F1_Moto_Driver_NSTBYRST1, 2, 1); + SetBit(FPGA1, F1_Moto_Driver_NSTBYRST1, 4, 1); + + stubManager.Write("\n*** Moving motor F1_MOTO_LLOADING back and for"); + Bit = 1; + + var response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,19,true , 500); + while (Bit != 0x0) //wait until LTFU LOADRAM Down + { + Bit = GetBit(FPGA1, F1_LS_02_Direct,8); + Thread.Sleep(10); + } + Thread.Sleep(100); + stubManager.Write("\n--------1--------"); + + +response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,19, false, 500); + Bit = 1; + while (Bit != 0x0) //wait until LTFU LOADRAM Down + { + Bit = GetBit(FPGA1, F1_LS_02_Direct,9); + Thread.Sleep(10); + } + stubManager.Write("\n--------2--------"); + response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,19, false, 0); + + Thread.Sleep(100); + var response1 = stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,19, false, 5000); + Thread.Sleep(1000); + Motor_HighZ(FPGA1, F1_MOTO_LLOADING_TX1, F1_MOTO_LLOADING_TX0); + stubManager.Write("\n*** Stopped motor F1_MOTO_LLOADING"); + + + //mov ldriving - + stubManager.Write("\n*** Running motor F1_MOTO_LDRIVING for 4 seconds... "); + Motor_Run(FPGA1, F1_MOTO_LDRIVING_TX1, F1_MOTO_LDRIVING_TX0, 0xffff, 0x1); + Thread.Sleep(4000); + Motor_HighZ(FPGA1, F1_MOTO_LDRIVING_TX1, F1_MOTO_LDRIVING_TX0); + + + + + + + + + stubManager.Write("\n\n*** Moving motor F1_MOTO_LDANCER1 back and for ..."); + + Bit = 1; + response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,16,false ,500); + while (Bit != 0x0) //wait until LTFU LOADRAM Down + { + Bit = GetBit(FPGA1, F1_LS_02_Direct,12); + Thread.Sleep(10); + } + Thread.Sleep(100); + stubManager.Write("\n--------1--------"); + + +response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,16, true, 500); + Bit = 1; + while (Bit != 0x0) //wait until LTFU LOADRAM Down + { + Bit = GetBit(FPGA1, F1_LS_02_Direct,13); + Thread.Sleep(10); + } + + Thread.Sleep(1000); + Motor_HighZ(FPGA1, F1_MOTO_LDANCER1_TX1, F1_MOTO_LDANCER1_TX0); + + + + + +/* + + + + + + + + + + + + + + + + + + + + + + + + + + + //mov LLOAD - up + stubManager.Write("\n*** Moving motor F1_MOTO_LLOADING back and for"); + MotorHomingRequest motorHomingRequest = new MotorHomingRequest(); + motorHomingRequest.MotorType = (Tango.PMR.Hardware.HardwareMotorType) 19; + motorHomingRequest.Speed = 500; + motorHomingRequest.Direction = Tango.PMR.Diagnostics.MotorDirection.Forward; //Forward + stubManager.Run(motorHomingRequest); + Thread.Sleep(6000); + //mov lLOAD - dn + motorHomingRequest.MotorType = (Tango.PMR.Hardware.HardwareMotorType) 19; + motorHomingRequest.Speed = 500; + motorHomingRequest.Direction = Tango.PMR.Diagnostics.MotorDirection.Backward; //Forward + stubManager.Run(motorHomingRequest); + Thread.Sleep(5000); + var response = stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,19, false, 1000); + Thread.Sleep(1000); + + + //mov ldriving - + stubManager.Write("\n*** Running motor F1_MOTO_LDRIVING for 4 seconds... "); + Motor_Run(FPGA1, F1_MOTO_LDRIVING_TX1, F1_MOTO_LDRIVING_TX0, 0xffff, 0x1); +// Thread.Sleep(4000); + Motor_HighZ(FPGA1, F1_MOTO_LDRIVING_TX1, F1_MOTO_LDRIVING_TX0); + + + //mov Ldancer - + stubManager.Write("\n*** F1_MOTO_LDANCER1 is moving back and forth "); + motorHomingRequest.MotorType = (Tango.PMR.Hardware.HardwareMotorType) 16; + motorHomingRequest.Speed = 500; + motorHomingRequest.Direction = Tango.PMR.Diagnostics.MotorDirection.Forward; //Forward + stubManager.Run(motorHomingRequest); + Thread.Sleep(20000); + motorHomingRequest.MotorType = (Tango.PMR.Hardware.HardwareMotorType) 16; + motorHomingRequest.Speed = 500; + motorHomingRequest.Direction = Tango.PMR.Diagnostics.MotorDirection.Backward; //Backard + stubManager.Run(motorHomingRequest); + Thread.Sleep(20000); + + + + //mov Lpivot - + stubManager.Write("\n*** F1_MOTO_LPIVOT1 is moving back and forth "); + motorHomingRequest.MotorType = (Tango.PMR.Hardware.HardwareMotorType) 20; + motorHomingRequest.Speed = 500; + motorHomingRequest.Direction = Tango.PMR.Diagnostics.MotorDirection.Forward; //Forward + stubManager.Run(motorHomingRequest); + Thread.Sleep(20000); + motorHomingRequest.MotorType = (Tango.PMR.Hardware.HardwareMotorType) 20; + motorHomingRequest.Speed = 500; + motorHomingRequest.Direction = Tango.PMR.Diagnostics.MotorDirection.Backward; //Backard + stubManager.Run(motorHomingRequest); + Thread.Sleep(20000); + + + + + + + + + + stubManager.Write("\n*** F1_MOTO_RDANCER is moving back and forth "); + motorHomingRequest.MotorType = (Tango.PMR.Hardware.HardwareMotorType) 21; + motorHomingRequest.Speed = 10; +// motorHomingRequest.Direction = Tango.PMR.Diagnostics.MotorDirection.Forward; //Forward +// stubManager.Run(motorHomingRequest); +// Thread.Sleep(5000); + motorHomingRequest.MotorType = (Tango.PMR.Hardware.HardwareMotorType) 21; + motorHomingRequest.Speed = 10; +// motorHomingRequest.Direction = Tango.PMR.Diagnostics.MotorDirection.Backward; //Backard +// stubManager.Run(motorHomingRequest); +// Thread.Sleep(4000); + + stubManager.Write("\n\n*** RTFU Motor Test Ended ***"); + */ + + +} diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Right_Position.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Right_Position.cs deleted file mode 100644 index ebd2cf414..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Right_Position.cs +++ /dev/null @@ -1,145 +0,0 @@ -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.Stubs; -using Tango.Stubs; - - - - -const Int32 x_ABS_POS = 0x01; -const Int32 x_EL_POS = 0x02; -const Int32 x_MARK = 0x03; -const Int32 x_SPEED = 0x04; -const Int32 x_ACC = 0x05; -const Int32 x_DEC = 0x06; -const Int32 x_MAX_SPEED = 0x07; -const Int32 x_MIN_SPEED = 0x08; -const Int32 x_FS_SPD = 0x15; -const Int32 x_KVAL_HOLD = 0x09; -const Int32 x_KVAL_RUN = 0x0A; -const Int32 x_KVAL_ACC = 0x0B; -const Int32 x_KVAL_DEC = 0x0C; -const Int32 x_INT_SPD = 0x0D; -const Int32 x_ST_SLP = 0x0E; -const Int32 x_FN_SLP_ACC = 0x0F; -const Int32 x_FN_SLP_DEC = 0x10; -const Int32 x_K_THERM = 0x11; -const Int32 x_ADC_OUT = 0x12; -const Int32 x_OCD_TH = 0x13; -const Int32 x_STALL_TH = 0x14; -const Int32 x_STEP_MODE = 0x16; -const Int32 x_ALARM_EN = 0x17; -const Int32 x_CONFIG = 0x18; -const Int32 x_STATUS = 0x19; -//------------------------------- -const Int32 x_GET_PARAM = 0x20; -//------------------------------- -const Int32 F1_LS_02_Direct = 0x60000030 ; -const Int32 F1_LS_LSPARE2 = 0x0004; //up -const Int32 F1_LS_LDANCER1_UP = 0x1000; - - - - - - - - - - - - - -public void OnExecute(StubManager stubManager) -{ - int counter; - - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,17, 3); //hold Ldancer high z - - var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,17, (x_GET_PARAM | x_ABS_POS)<<24, 0, 0); - response.RecivedData=response.RecivedData & 0x00ffffff; - stubManager.WriteHex(response.RecivedData,8); - stubManager.Write("\n"); - - var response3 = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,17, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0); - response3.RecivedData=response3.RecivedData & 0x00007; - - stubManager.WriteHex(response3.RecivedData,4); - stubManager.Write("\nNober uStep is - "); - if (response3.RecivedData>4) - response3.RecivedData=4; - stubManager.WriteLine(Math.Pow(2,response3.RecivedData)); - - -//----------------------------------------- check F1_LS_LDANCER2_UP ------------------------------------------------- - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,17,false,100); //move Lloading up - counter =0; - while ( counter < 800) - { - counter = counter + 1; -var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //if F1_LS_LSPARE2 is up then move down - if ((response1.Value & F1_LS_LSPARE2) != F1_LS_LSPARE2 ) - counter=900; - - Thread.Sleep(100); - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,17, 3); //hold Ldancer high z - -var response2 = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,17, (x_GET_PARAM | x_ABS_POS)<<24, 0, 0); - response2.RecivedData=response2.RecivedData & 0x00ffffff; - stubManager.WriteHex(response2.RecivedData,8); - stubManager.Write("\n"); - - stubManager.Write("Motor Puller positon is - "+ (response2.RecivedData-response.RecivedData)/(Math.Pow(2,response3.RecivedData))); -//--------------------------------------------------------------------------------------------------------------------- - - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,16, 3); //hold Ldancer high z - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,16, (x_GET_PARAM | x_ABS_POS)<<24, 0, 0); - response.RecivedData=response.RecivedData & 0x00ffffff; - stubManager.WriteHex(response.RecivedData,8); - stubManager.Write("\n"); - - response3 = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,16, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0); - response3.RecivedData=response3.RecivedData & 0x00007; - - stubManager.WriteHex(response3.RecivedData,4); - stubManager.Write("\nNober uStep is - "); - if (response3.RecivedData>4) - response3.RecivedData=4; - stubManager.WriteLine(Math.Pow(2,response3.RecivedData)); - - -//----------------------------------------- check F1_LS_LDANCER2_UP ------------------------------------------------- - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,16,false,100); //move Lloading up - counter =0; - while ( counter < 800) - { - counter = counter + 1; - var response8 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //if F1_LS_LSPARE2 is up then move up - if ((response8.Value & F1_LS_LDANCER1_UP) !=F1_LS_LDANCER1_UP ) //if F1_LS_LDANCER1_UP is up then error - counter=900; - - Thread.Sleep(100); - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,16, 3); //hold Ldancer high z - - response2 = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,16, (x_GET_PARAM | x_ABS_POS)<<24, 0, 0); - response2.RecivedData=response2.RecivedData & 0x00ffffff; - stubManager.WriteHex(response2.RecivedData,8); - stubManager.Write("\n"); - - stubManager.Write("Motor Winder positon is - "+ (response2.RecivedData-response.RecivedData)/(Math.Pow(2,response3.RecivedData))); - - - - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_SSI.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_SSI.cs index 94873f9f4..3218dbd83 100644 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_SSI.cs +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_SSI.cs @@ -31,64 +31,18 @@ public void OnExecute(StubManager stubManager) for (int i = 0; i < 100; i++) { - - stubManager.Write("LDANCER1 - "+ ReadEncoder(0)+ "\t\t LDANCER2 - " + ReadEncoder(1) + "\n" ); - - - + + SSI_Read_Write(FPGA1, F1_LDANCER1_ROTENC_MSB, F1_LDANCER1_ROTENC_LSB, F1_LDANCER1_ROTENC_TX); + SSI_Read_Write(FPGA1, F1_LDANCER2_ROTENC_MSB, F1_LDANCER2_ROTENC_LSB, F1_LDANCER2_ROTENC_TX); + stubManager.Write("\n"); + k++; + if ( (k & 0x8) == 0x08 ) { + k = 0; + stubManager.Write(" LDANCER1 LDANCER2 \n"); + } Thread.Sleep(400); } } - - -Int32 ReadEncoder(int i) -{ - Int32 temp; - - if (i==0) //LDANCER1_ROTENC - { - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x600001ce, 0x0000); //triggers a TX transmission - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x600001c0); - var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x600001c2); - - temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff)); - - - return temp; - } - //LDANCER2_ROTENC - - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x600001be, 0x0000); //triggers a TX transmission - var response2 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x600001b0); - var response3 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x600001b2); - - temp = Convert.ToInt32 (((((response3.Value <<16) + response2.Value)>>10 ) & 0x3fff)); - - - return temp; -} - - - - - - - - - - - - - - - - - - - - - diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/Test_Loading_TFU.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/Test_Loading_TFU.cs deleted file mode 100644 index de14d455f..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/Test_Loading_TFU.cs +++ /dev/null @@ -1,155 +0,0 @@ -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.Stubs; -using Tango.Stubs; - - - - -//-------------------DEFINE Motors------------------ -//const Int32 LDANCER_Motor = 16; -//const Int32 LDRIVING_Motor = 18; -//const Int32 LLOADING_Motor = 19; -//const Int32 LDANCER_Motor = 16; -//const Int32 LDRIVING_Motor = 18; -//const Int32 LLOADING_Motor = 19; - -const Int32 LDANCER1_Motor = 16; -const Int32 LDANCER2_Motor = 17; -const Int32 LDRIVING_Motor = 18; -const Int32 LLOADING_Motor = 19; - -const Int32 RDANCER_Motor = 21; -//const Int32 RDRIVING_Motor = 22; -//const Int32 MAGNET_Driver = 23; //replace RLOADARM -const Int32 RLOADING_Motor = 24; - -//-------------------DEFINE Motors Parameters------------------ - -const Int32 F1_MOTO_LLOADING_TX1 = 0x60000232; -const Int32 F1_MOTO_LLOADING_TX0 = 0x60000230; -const Int32 F1_MOTO_RLOADING_TX1 = 0x60000202; -const Int32 F1_MOTO_RLOADING_TX0 = 0x60000200; - - -//-------------------DEFINE Limit Switch--------------- -const Int32 F1_LS_02_Direct =0x60000030; -const Int32 F1_LS_03_Direct =0x60000040; -const Int32 F1_LS_RLOADMOTOR_UP = 0x0040 ; -const Int32 F1_LS_RLOADMOTOR_DN = 0x0080 ; - -const Int32 F1_LS_LLOADMOTOR_UP = 0x0100 ; -const Int32 F1_LS_LLOADMOTOR_DN = 0x0200 ; -const Int32 F1_LS_LDANCER1_UP = 0x1000; -const Int32 F1_LS_LDANCER1_DN = 0x2000; -const Int32 F1_LS_LDANCER2_UP = 0x0400; -const Int32 F1_LS_LDANCER2_DN = 0x0800; -const Int32 F1_LS_LLOADRAM_LF = 0x0080; -const Int32 F1_LS_LLOADRAM_RT = 0x0040; -const Int32 F1_LS_LSPARE2 = 0x0004; //up -//const Int32 F1_LS_LLOADMOTOR_UP = 0x0100 ; -const Int32 F1_LS_RDANCER_DN = 0x0200; -const Int32 F1_LS_RLOADRAM_DN = 0x0020; -const Int32 F1_LS_LSPARE1 = 0x0008; //dn - -//include "..\..\Defines\Tango_Defines_Basic.cs" -//include "Tango_Defines_LimitSwitch.cs" -//include "Tango_Defines_Motors.cs" -//include "Tango_Defines_SSI.cs" -//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_Basic.cs" -//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_SSI.cs" - - -void OnExecute(StubManager stubManager) -{ - for (int i=0;i<1;i++) - { - - Move_Motor(LDANCER1_Motor,false,F1_LS_02_Direct,F1_LS_LDANCER1_UP,450); - - Move_Motor(LDANCER2_Motor,false,F1_LS_02_Direct,F1_LS_LSPARE2,450); - - Motor_SetParam(F1_MOTO_LLOADING_TX1,F1_MOTO_LLOADING_TX0,0x0a,0x0a000000); //set kval ran to 0x2c- 0.9A - Thread.Sleep(200); - Move_Motor(LLOADING_Motor,true,F1_LS_02_Direct,F1_LS_LLOADMOTOR_UP,300); - Motor_SetParam(F1_MOTO_LLOADING_TX1,F1_MOTO_LLOADING_TX0,0x0a,0x07000000); //set kval ran to 0x2c- 0.6A - Thread.Sleep(200); - - Move_Motor(RDANCER_Motor,true,F1_LS_03_Direct,F1_LS_RLOADRAM_DN,10); - - Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x0a000000); //set kval ran to 0x14,0.65A - Thread.Sleep(200); - Move_Motor(RLOADING_Motor,false,F1_LS_03_Direct,F1_LS_RLOADMOTOR_UP,200); - Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x07000000); //set kval ran to 0x14,0.65A - Thread.Sleep(200); - - - - Thread.Sleep(2000); - - Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x0a000000); //set kval ran to 0x14,0.65A - Thread.Sleep(200); - Move_Motor(RLOADING_Motor,true,F1_LS_03_Direct,F1_LS_RLOADMOTOR_DN,200); - Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x07000000); //set kval ran to 0x14,0.65A - Thread.Sleep(200); - - Move_Motor(RDANCER_Motor,false,F1_LS_03_Direct,F1_LS_RDANCER_DN,10); - - Motor_SetParam(F1_MOTO_LLOADING_TX1,F1_MOTO_LLOADING_TX0,0x0a,0x0a000000); //set kval ran to 0x2c- 0.9A - Thread.Sleep(200); - Move_Motor(LLOADING_Motor,false,F1_LS_02_Direct,F1_LS_LLOADMOTOR_DN,300); - Motor_SetParam(F1_MOTO_LLOADING_TX1,F1_MOTO_LLOADING_TX0,0x0a,0x0a000000); //set kval ran to 0x2c- 0.9A - Thread.Sleep(200); - - Move_Motor(LDANCER2_Motor,true,F1_LS_02_Direct,F1_LS_LSPARE1,450); - - Move_Motor(LDANCER1_Motor,true,F1_LS_02_Direct,F1_LS_LDANCER1_DN,450); - - Thread.Sleep(2000); - } - - - -} - - void Move_Motor(UInt32 MotorID, bool Direction, UInt32 Register , UInt32 Bits, Double speed) -{ -int counter ; - - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,MotorID,Direction,speed); //move Lloading up - counter =0; - while ( counter < 1500) - { - counter = counter + 1; - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,Register); //if LS_LLOADMOTOR_UP is up then move down - if ((response.Value & Bits) != Bits ) - counter=1650; - - Thread.Sleep(20); - - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,MotorID, 1); //hold motor - - -} - - int Motor_SetParam(Int32 HighAdr, Int32 LowAdr, Int32 ParaAddr, uint ParaData1) -{ - - Int32 Temp = 0; - Temp = (ParaAddr << 8 ) + ( (Int32) ParaData1 >> 24); - - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,HighAdr, (Temp & 0xffff)); - Temp = ((Int32)ParaData1 >> 8) & 0xffff; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,LowAdr, (Temp)); - - return 1; -} diff --git a/Software/Stubs Collection/stubs/Scripts/auto shutt off.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/test.cs index 8fd9963c2..397c6fbd4 100644 --- a/Software/Stubs Collection/stubs/Scripts/auto shutt off.cs +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/test.cs @@ -10,19 +10,16 @@ using System.Collections.Generic; using Tango.PMR.Stubs; using Tango.Stubs; -public void OnExecute(StubManager stubManager) -{ - - while (true) - - { - - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x600004e2, 0x800); - Thread.Sleep(50); +include "..\..\Defines\Tango_Defines_Basic.cs" +include "Tango_Defines_LimitSwitch.cs" - - - } +public void OnExecute(StubManager stubManager) +{ + Int32 Bit = 1; + //Write GPO_DRYER_SSR1_CTRL SSR/SSR no. 1 + SetBit (FPGA2, F2_CTRL, 0, 1); + stubManager.Write("\nTesting SSR no. 13 of magnet"); + Thread.Sleep(4000); }
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Calibrate_Midtank_pressure_sensors_old.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Calibrate_Midtank_pressure_sensors_old.cs deleted file mode 100644 index 7c0243c49..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Calibrate_Midtank_pressure_sensors_old.cs +++ /dev/null @@ -1,347 +0,0 @@ -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.Stubs; -using Tango.PMR.EmbeddedParameters; -using Tango.Stubs; - -//---------------------- -const double MIN_SLOP=0.7; -const double MAX_SLOP=1.4; -const double ERROR_SLOP=-1; -const double MIN_50cc_on_volt=2.3; -const double MAX_50cc_on_volt=3.2; -const double ERROR_50cc_on_volt=-1; - - - -const Int32 F3_VALVE_OUT = 0x600008E2 ; -string Machine_SN ; -private const string FILE_PATH = "P:\\Operations\\Log\\Midtanlk\\"; -string File_name; -double [,] voltage_array = new double[9,9]; -string [] Parameter = new string[5] {"\t","Empty [V]","100cc [V]","800cc [V]"," b [L/V] "}; - -//---------------------- -const Int32 I2C_ID = 2; -//const Int32 I2C_Slave_Add = 0x46; //must be 0x40, 0x44 or 0x46 -//---------------------- - - - - - -public void OnExecute(StubManager stubManager) -{ - - - voltage_array[1,0]=1; - voltage_array[2,0]=2; - voltage_array[3,0]=3; - voltage_array[4,0]=4; - voltage_array[5,0]=5; - voltage_array[6,0]=6; - voltage_array[7,0]=7; - voltage_array[8,0]=8; - - var response = stubManager.ShowResponseWindow("Enter Machine S/N: ", ""); - stubManager.Write("\n"); - Machine_SN = response; - stubManager.Write(Machine_SN); - File_name= FILE_PATH +Machine_SN + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".LOG"; - stubManager.Write(File_name); - stubManager.WriteToFile(File_name,"Machine S/N:" + Machine_SN); - - string box_msg = "Make Sure all Midatnk empty"; - // string box_title = "Midatnk empty"; -// MessageBox.Show(box_msg, box_title); - MessageBox.Show(box_msg); - - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_VALVE_OUT, 0x000f); // open all valve air of midtank and close all ink of midtank - Thread.Sleep(500); - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_VALVE_OUT, 0x00ff); // open all valve air of midtank and close all ink of midtank - Thread.Sleep(500); - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_VALVE_OUT, 0x0fff); // open all valve air of midtank and close all ink of midtank - Thread.Sleep(500); - stubManager.Run<StubFpgaWriteRegResponse>("stubFpgaWriteRegRequest" ,F3_VALVE_OUT, 0xffff); // open all valve air and ink of midtank - - Thread.Sleep(2500); - - Thread.Sleep(1000); - - read_pressure_sensor(1); - - box_msg ="Insert 100cc of appropriate ink/lube to each midtank\n\t1.black ink\n\t2. Magenta ink\n\t3. Transparent ink\n\t4. Cleaner\n\t5. Cyan ink\n\t6. Yellow ink\n\t7. Spot color\n\t8. Lubricant/n"; - MessageBox.Show(box_msg); - - read_pressure_sensor(2); - - // voltage_array[3,2]=2.5; - - box_msg = "Add another 700cc for ink and TI \nFor Lubbricant add 500cc only."; - MessageBox.Show(box_msg); - read_pressure_sensor(3); - stubManager.Run<StubFpgaWriteRegResponse>("stubFpgaWriteRegRequest" ,F3_VALVE_OUT, 0x0000); // close all valve air and ink of midtank - // voltage_array[3,3]=4.5; - - calc_slop(); - print_table(); - - insert_slop_t_eeprom(); - box_msg ="Turn Power Off and On to finish the calibration."; - MessageBox.Show(box_msg); - - } - -int calc_slop() - { - stubManager.Write("\n "); - - double delta; - for (uint i=1;i<9;i++) - { - delta=voltage_array[i,3]-voltage_array[i,2]; - - stubManager.Write("\nMidtank No:"+i +"="+delta); - if (i==8) - delta=0.5/delta; //0.5 litter on lubricant - else - delta=0.7/delta; //0.7 litter - - if ((delta<MIN_SLOP) || (delta >MAX_SLOP)) - { - voltage_array[i,4]=ERROR_SLOP; - // stubManager.Write("123"); - } - else if ((voltage_array[i,2]<MIN_50cc_on_volt) || (voltage_array[i,2]>MAX_50cc_on_volt )) - voltage_array[i,4]=ERROR_SLOP; - else - voltage_array[i,4]=delta; - } - return 1; - } - - - int insert_slop_t_eeprom() -{ - stubManager.Write("\n "); - - MidTankDataSetupRequest midTankDataSetupRequest = new MidTankDataSetupRequest(); - - - for (uint i=1;i<9;i++) - { - if (voltage_array[i,4]!= ERROR_SLOP) - { - MidTankData midTankData = new MidTankData(); - midTankData.MidTankId = i-1; - midTankData.InitialOffsetA = voltage_array[i,2]; - midTankData.SlopeB = voltage_array[i,4]; - - stubManager.Write("\nMidtank No:" + i+ "=\tA="+voltage_array[i,2]+"\tSlop="+voltage_array[i,4]); - - - midTankDataSetupRequest.MidTankInfo.Add(midTankData); - - } -var response = stubManager.Run<MidTankDataSetupResponse>(midTankDataSetupRequest); - - - - } - - - - -/* -MidTankData midTankData = new MidTankData(); -midTankData.MidTankId = 0; -midTankData.InitialOffsetA = 0.1; -midTankData.SlopeB = 0.1; - -MidTankData midTankData1 = new MidTankData(); -midTankData1.MidTankId = 1; -midTankData1.InitialOffsetA = 0.11; -midTankData1.SlopeB = 0.11; - -MidTankData midTankData2 = new MidTankData(); -midTankData2.MidTankId = 2; -midTankData2.InitialOffsetA = 0.2; -midTankData2.SlopeB = 0.2; - -MidTankData midTankData3 = new MidTankData(); -midTankData3.MidTankId = 3; -midTankData3.InitialOffsetA = 0.3; -midTankData3.SlopeB = 0.3; - -MidTankData midTankData4 = new MidTankData(); -midTankData4.MidTankId = 4; -midTankData4.InitialOffsetA = 0.4; -midTankData4.SlopeB = 0.4; - -MidTankData midTankData5 = new MidTankData(); -midTankData5.MidTankId = 5; -midTankData5.InitialOffsetA = 0.5; -midTankData5.SlopeB = 0.5; - -MidTankData midTankData6 = new MidTankData(); -midTankData6.MidTankId = 6; -midTankData6.InitialOffsetA = 0.6; -midTankData6.SlopeB = 0.6; - - -MidTankData midTankData7 = new MidTankData(); -midTankData6.MidTankId = 7; -midTankData6.InitialOffsetA = 0.7; -midTankData6.SlopeB = 0.7; - - -midTankDataSetupRequest.MidTankInfo.Add(midTankData); -midTankDataSetupRequest.MidTankInfo.Add(midTankData1); -midTankDataSetupRequest.MidTankInfo.Add(midTankData2); -midTankDataSetupRequest.MidTankInfo.Add(midTankData3); -midTankDataSetupRequest.MidTankInfo.Add(midTankData4); -midTankDataSetupRequest.MidTankInfo.Add(midTankData5); -midTankDataSetupRequest.MidTankInfo.Add(midTankData6); -midTankDataSetupRequest.MidTankInfo.Add(midTankData7); -*/ -return 1; -} - - - -int print_table() - { - - for (uint i=0;i<5;i++) - { - stubManager.AppendToFile(File_name,Parameter[i]+"\t"+voltage_array[1,i]+"\t"+voltage_array[2,i]+"\t"+voltage_array[3,i]+"\t"+voltage_array[4,i]+"\t"+voltage_array[5,i]+"\t"+voltage_array[6,i]+"\t"+voltage_array[7,i]+"\t"+voltage_array[8,i]) ; - } - - - return 1; - - } - - - -int adc_configuration(uint I2C_Slave_Add,uint channel ) - { - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0x00);//Byte 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(channel);//Byte 1 to Write, must be 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02 or 0x01 for different channels - stubI2CWriteBytesRequest.BytesTWrite.Add(0x80);//Byte 2 to Write - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; - } - - -int adc_set_for_read_ch(uint I2C_Slave_Add) - { - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0x01);//Byte 0 to write - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; - } - - - - -int adc_read_ch(uint I2C_Slave_Add,uint table_index_x,uint table_index_y) - { - StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest(); - stubI2CReadBytesRequest.I2CId = I2C_ID; - stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add; - stubI2CReadBytesRequest.NumberOfBytesToRead = 2; // Number of bytes to read - - var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest); - uint temph=0; - uint templ=0; - uint temp; - double calc; - double calc1; - double calc2; - temph=response1.ReadBytes[0]; - templ=response1.ReadBytes[1]; - temp = (temph << 8) | templ; - temp=temp & 0x0fff; - - calc = (double)temp *2.5 / 4096.0; - stubManager.Write("ADC [volts]:\t"); - stubManager.Write(calc+"\t"); - - calc1 = (1.96- calc) * 4.64 + 1.96; - stubManager.Write("Vsensor [volts]:\t"); - stubManager.Write(calc1); - - voltage_array[table_index_x,table_index_y]=calc1; - - return 1; - } - -int read_pressure_sensor(uint i ) - { - - stubManager.Write("\n-----------MIDTANK_PRESSESENS-------test_no= "+i); - - stubManager.Write("\n1_1= "); - - adc_configuration(0x44,0x20); //a2d_address 0x44 channel channel 2 - adc_set_for_read_ch(0x44); - adc_read_ch(0x44,1,i); - - stubManager.Write("\n2_1= "); - adc_configuration(0x44,0x08); //a2d_address 0x44 channel channel 4 - adc_set_for_read_ch(0x44); - adc_read_ch(0x44,2,i); - - stubManager.Write("\n3_1= "); - adc_configuration(0x46,0x80); //a2d_address 0x46 channel channel 0 - adc_set_for_read_ch(0x46); - adc_read_ch(0x46,3,i); - - stubManager.Write("\n4_1= "); - adc_configuration(0x46,0x20); //a2d_address 0x46 channel channel 2 - adc_set_for_read_ch(0x46); - adc_read_ch(0x46,4,i); - - stubManager.Write("\n1_2= "); - adc_configuration(0x44,0x10); //a2d_address 0x44 channel channel 3 - adc_set_for_read_ch(0x44); - adc_read_ch(0x44,5,i); - - stubManager.Write("\n2_2= "); - adc_configuration(0x44,0x04); //a2d_address 0x44 channel channel 5 - adc_set_for_read_ch(0x44); - adc_read_ch(0x44,6,i); - - stubManager.Write("\n3_2= "); - adc_configuration(0x46,0x40); //a2d_address 0x46 channel channel 1 - adc_set_for_read_ch(0x46); - adc_read_ch(0x46,7,i); - - stubManager.Write("\n4_2= "); - adc_configuration(0x46,0x10); //a2d_address 0x46 channel channel 3 - adc_set_for_read_ch(0x46); - adc_read_ch(0x46,8,i); - - return 1; - } diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 1 Motor Frequency.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 1 Motor Frequency.csv deleted file mode 100644 index 4b9e73f00..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 1 Motor Frequency.csv +++ /dev/null @@ -1,19 +0,0 @@ -Time,Dispenser 1 Motor Frequency -13:39:54.945,0 -13:39:55.245,0 -13:39:55.545,0 -13:39:55.845,0 -13:39:56.145,0 -13:39:56.445,0 -13:39:56.745,0 -13:39:57.045,0 -13:39:57.345,0 -13:39:57.645,0 -13:39:57.945,0 -13:39:58.245,0 -13:39:58.545,0 -13:39:58.845,0 -13:39:59.145,0 -13:39:59.445,0 -13:39:59.745,0 -13:40:00.045,0 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 1 Pressure.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 1 Pressure.csv deleted file mode 100644 index 2ff983a1b..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 1 Pressure.csv +++ /dev/null @@ -1,55 +0,0 @@ -Time,Dispenser 1 Pressure -13:39:54.945,0.0458705425262451 -13:39:55.045,0.0317853689193726 -13:39:55.145,0.0388279557228088 -13:39:55.245,0.0353068113327026 -13:39:55.345,0.0353068113327026 -13:39:55.445,0.0353068113327026 -13:39:55.545,0.0353068113327026 -13:39:55.645,0.0282642245292664 -13:39:55.745,0.0353068113327026 -13:39:55.845,0.0353068113327026 -13:39:55.945,0.0353068113327026 -13:39:56.045,0.0388279557228088 -13:39:56.145,0.0388279557228088 -13:39:56.245,0.0317853689193726 -13:39:56.345,0.0353068113327026 -13:39:56.445,0.0353068113327026 -13:39:56.545,0.0353068113327026 -13:39:56.645,0.0388279557228088 -13:39:56.745,0.0388279557228088 -13:39:56.845,0.0353068113327026 -13:39:56.945,0.0388279557228088 -13:39:57.045,0.0388279557228088 -13:39:57.145,0.0317853689193726 -13:39:57.245,0.0388279557228088 -13:39:57.345,0.0388279557228088 -13:39:57.445,0.0282642245292664 -13:39:57.545,0.0353068113327026 -13:39:57.645,0.0388279557228088 -13:39:57.745,0.0353068113327026 -13:39:57.845,0.0388279557228088 -13:39:57.945,0.0317853689193726 -13:39:58.045,0.0388279557228088 -13:39:58.145,0.0353068113327026 -13:39:58.245,0.0317853689193726 -13:39:58.345,0.0423493981361389 -13:39:58.445,0.0317853689193726 -13:39:58.545,0.0423493981361389 -13:39:58.645,0.0353068113327026 -13:39:58.745,0.0353068113327026 -13:39:58.845,0.0282642245292664 -13:39:58.945,0.0353068113327026 -13:39:59.045,0.0317853689193726 -13:39:59.145,0.0317853689193726 -13:39:59.245,0.0353068113327026 -13:39:59.345,0.0388279557228088 -13:39:59.445,0.0388279557228088 -13:39:59.545,0.0458705425262451 -13:39:59.645,0.0353068113327026 -13:39:59.745,0.0353068113327026 -13:39:59.845,0.0317853689193726 -13:39:59.945,0.0317853689193726 -13:40:00.045,0.0353068113327026 -13:40:00.145,0.0388279557228088 -13:40:00.245,0.0388279557228088 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 2 Motor Frequency.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 2 Motor Frequency.csv deleted file mode 100644 index 1bf9584f3..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 2 Motor Frequency.csv +++ /dev/null @@ -1,19 +0,0 @@ -Time,Dispenser 2 Motor Frequency -13:39:54.945,0 -13:39:55.245,0 -13:39:55.545,0 -13:39:55.845,0 -13:39:56.145,0 -13:39:56.445,0 -13:39:56.745,0 -13:39:57.045,0 -13:39:57.345,0 -13:39:57.645,0 -13:39:57.945,0 -13:39:58.245,0 -13:39:58.545,0 -13:39:58.845,0 -13:39:59.145,0 -13:39:59.445,0 -13:39:59.745,0 -13:40:00.045,0 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 2 Pressure.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 2 Pressure.csv deleted file mode 100644 index 88c664efe..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 2 Pressure.csv +++ /dev/null @@ -1,55 +0,0 @@ -Time,Dispenser 2 Pressure -13:39:54.945,0.119816958904266 -13:39:55.045,0.11277437210083 -13:39:55.145,0.119816958904266 -13:39:55.245,0.11629581451416 -13:39:55.345,0.11277437210083 -13:39:55.445,0.119816958904266 -13:39:55.545,0.119816958904266 -13:39:55.645,0.119816958904266 -13:39:55.745,0.11629581451416 -13:39:55.845,0.11629581451416 -13:39:55.945,0.11629581451416 -13:39:56.045,0.126859545707703 -13:39:56.145,0.119816958904266 -13:39:56.245,0.119816958904266 -13:39:56.345,0.11629581451416 -13:39:56.445,0.11629581451416 -13:39:56.545,0.119816958904266 -13:39:56.645,0.11629581451416 -13:39:56.745,0.119816958904266 -13:39:56.845,0.11277437210083 -13:39:56.945,0.119816958904266 -13:39:57.045,0.123338103294373 -13:39:57.145,0.11629581451416 -13:39:57.245,0.11277437210083 -13:39:57.345,0.119816958904266 -13:39:57.445,0.123338103294373 -13:39:57.545,0.119816958904266 -13:39:57.645,0.11629581451416 -13:39:57.745,0.123338103294373 -13:39:57.845,0.11629581451416 -13:39:57.945,0.11629581451416 -13:39:58.045,0.119816958904266 -13:39:58.145,0.11277437210083 -13:39:58.245,0.123338103294373 -13:39:58.345,0.119816958904266 -13:39:58.445,0.119816958904266 -13:39:58.545,0.119816958904266 -13:39:58.645,0.11629581451416 -13:39:58.745,0.119816958904266 -13:39:58.845,0.109253227710724 -13:39:58.945,0.123338103294373 -13:39:59.045,0.123338103294373 -13:39:59.145,0.123338103294373 -13:39:59.245,0.11629581451416 -13:39:59.345,0.119816958904266 -13:39:59.445,0.123338103294373 -13:39:59.545,0.109253227710724 -13:39:59.645,0.119816958904266 -13:39:59.745,0.119816958904266 -13:39:59.845,0.11277437210083 -13:39:59.945,0.11629581451416 -13:40:00.045,0.11629581451416 -13:40:00.145,0.119816958904266 -13:40:00.245,0.11277437210083 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 3 Motor Frequency.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 3 Motor Frequency.csv deleted file mode 100644 index bdc3c7c8d..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 3 Motor Frequency.csv +++ /dev/null @@ -1,19 +0,0 @@ -Time,Dispenser 3 Motor Frequency -13:39:54.945,0 -13:39:55.245,0 -13:39:55.545,0 -13:39:55.845,0 -13:39:56.145,0 -13:39:56.445,0 -13:39:56.745,0 -13:39:57.045,0 -13:39:57.345,0 -13:39:57.645,0 -13:39:57.945,0 -13:39:58.245,0 -13:39:58.545,0 -13:39:58.845,0 -13:39:59.145,0 -13:39:59.445,0 -13:39:59.745,0 -13:40:00.045,0 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 3 Pressure.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 3 Pressure.csv deleted file mode 100644 index 8f0a93237..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 3 Pressure.csv +++ /dev/null @@ -1,55 +0,0 @@ -Time,Dispenser 3 Pressure -13:39:54.945,-0.00342711806297302 -13:39:55.045,-0.00342711806297302 -13:39:55.145,-0.00342711806297302 -13:39:55.245,-0.00342711806297302 -13:39:55.345,-0.00342711806297302 -13:39:55.445,-0.00342711806297302 -13:39:55.545,-0.00342711806297302 -13:39:55.645,-0.00342711806297302 -13:39:55.745,-0.00342711806297302 -13:39:55.845,-0.00342711806297302 -13:39:55.945,-0.00342711806297302 -13:39:56.045,-0.00342711806297302 -13:39:56.145,-0.00342711806297302 -13:39:56.245,-0.00342711806297302 -13:39:56.345,-0.00342711806297302 -13:39:56.445,-0.00342711806297302 -13:39:56.545,-0.00342711806297302 -13:39:56.645,-0.00342711806297302 -13:39:56.745,-0.00342711806297302 -13:39:56.845,-0.00342711806297302 -13:39:56.945,-0.00342711806297302 -13:39:57.045,-0.00342711806297302 -13:39:57.145,-0.00342711806297302 -13:39:57.245,-0.00342711806297302 -13:39:57.345,-0.00342711806297302 -13:39:57.445,-0.00342711806297302 -13:39:57.545,-0.00342711806297302 -13:39:57.645,-0.00342711806297302 -13:39:57.745,-0.00342711806297302 -13:39:57.845,-0.00342711806297302 -13:39:57.945,-0.00342711806297302 -13:39:58.045,-0.00342711806297302 -13:39:58.145,-0.00342711806297302 -13:39:58.245,-0.00342711806297302 -13:39:58.345,-0.00342711806297302 -13:39:58.445,-0.00342711806297302 -13:39:58.545,-0.00342711806297302 -13:39:58.645,-0.00342711806297302 -13:39:58.745,-0.00342711806297302 -13:39:58.845,-0.00342711806297302 -13:39:58.945,-0.00342711806297302 -13:39:59.045,-0.00342711806297302 -13:39:59.145,-0.00342711806297302 -13:39:59.245,-0.00342711806297302 -13:39:59.345,-0.00342711806297302 -13:39:59.445,-0.00342711806297302 -13:39:59.545,-0.00342711806297302 -13:39:59.645,-0.00342711806297302 -13:39:59.745,-0.00342711806297302 -13:39:59.845,-0.00342711806297302 -13:39:59.945,-0.00342711806297302 -13:40:00.045,-0.00342711806297302 -13:40:00.145,-0.00342711806297302 -13:40:00.245,-0.00342711806297302 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Feeder Motor.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Feeder Motor.csv deleted file mode 100644 index 5080effe1..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Feeder Motor.csv +++ /dev/null @@ -1,55 +0,0 @@ -Time,Feeder Motor -13:39:54.945,0 -13:39:55.045,0 -13:39:55.145,0 -13:39:55.245,0 -13:39:55.345,0 -13:39:55.445,0 -13:39:55.545,0 -13:39:55.645,0 -13:39:55.745,0 -13:39:55.845,0 -13:39:55.945,0 -13:39:56.045,0 -13:39:56.145,0 -13:39:56.245,0 -13:39:56.345,0 -13:39:56.445,0 -13:39:56.545,0 -13:39:56.645,0 -13:39:56.745,0 -13:39:56.845,0 -13:39:56.945,0 -13:39:57.045,0 -13:39:57.145,0 -13:39:57.245,0 -13:39:57.345,0 -13:39:57.445,0 -13:39:57.545,0 -13:39:57.645,0 -13:39:57.745,0 -13:39:57.845,0 -13:39:57.945,0 -13:39:58.045,0 -13:39:58.145,0 -13:39:58.245,0 -13:39:58.345,0 -13:39:58.445,0 -13:39:58.545,0 -13:39:58.645,0 -13:39:58.745,0 -13:39:58.845,0 -13:39:58.945,0 -13:39:59.045,0 -13:39:59.145,0 -13:39:59.245,0 -13:39:59.345,0 -13:39:59.445,0 -13:39:59.545,0 -13:39:59.645,0 -13:39:59.745,0 -13:39:59.845,0 -13:39:59.945,0 -13:40:00.045,0 -13:40:00.145,0 -13:40:00.245,0 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/MIDTANK_JIG.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/MIDTANK_JIG.cs deleted file mode 100644 index 6b864dfee..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/MIDTANK_JIG.cs +++ /dev/null @@ -1,480 +0,0 @@ -using System; -using System.Text; -using System.IO; -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.Stubs; -using Tango.Stubs; -using System.Timers; - - -// private static System.Timers.Timer aTimer; - -//-------------------------------------------------------------------------------- -const Int32 I2C_ID = 2; -const int UNIT_UNDER_TEST =3*8; -const Int32 F3_VALVE_OUT = 0x600008e2; -//-------------------------------------------------------------------------------- -string path1="P:\\Scripts\\Assemblies\\MidTank\\MidTankLog\\"; -string path2="C:\\MidTankLog\\"; - -string File_Name1 ; -string Status; -//--------------------------- -int [] Convert_Midtank_No = new Int32 [8] {1,3,5,7,2,4,6,8}; -uint [,] ADC_Add_Chnl = new uint [8,2] { - {0x44,0x20}, - {0x44,0x08}, - {0x46,0x80}, - {0x46,0x20}, - {0x44,0x10}, - {0x44,0x04}, - {0x46,0x40}, - {0x46,0x10}, - }; - - -string [,] Units_status = new string[UNIT_UNDER_TEST,2] { - {"Midtank1_Valve_Air","Not Test"}, //0 - {"Midtank1_Valve_Ink","Not Test"}, //1 - {"Midtank1_Pressure_Sensor","Not Test"}, //2 - {"Midtank2_Valve_Air","Not Test"}, //3 - {"Midtank2_Valve_Ink","Not Test"}, //4 - {"Midtank2_Pressure_Sensor","Not Test"}, //5 - {"Midtank3_Valve_Air","Not Test"}, //6 - {"Midtank3_Valve_Ink","Not Test"}, //7 - {"Midtank3_Pressure_Sensor","Not Test"}, //8 - {"Midtank4_Valve_Air","Not Test"}, //9 - {"Midtank4_Valve_Ink","Not Test"}, //10 - {"Midtank4_Pressure_Sensor","Not Test"}, //11 - {"Midtank5_Valve_Air","Not Test"}, //12 - {"Midtank5_Valve_Ink","Not Test"}, //13 - {"Midtank5_Pressure_Sensor","Not Test"}, //14 - {"Midtank6_Valve_Air","Not Test"}, //15 - {"Midtank6_Valve_Ink","Not Test"}, //16 - {"Midtank6_Pressure_Sensor","Not Test"}, //17 - {"Midtank7_Valve_Air","Not Test"}, //18 - {"Midtank7_Valve_Ink","Not Test"}, //19 - {"Midtank7_Pressure_Sensor","Not Test"}, //20 - {"Midtank8_Valve_Air","Not Test"}, //21 - {"Midtank8_Valve_Ink","Not Test"}, //22 - {"Midtank8_Pressure_Sensor","Not Test"}, //23 - }; -//----------------------------------------------------- -string MIDTANK_Sn; -//-------------------------------------------------------------------------------- - // private static void SetTimer() - // { - // // Create a timer with a one second interval. - // aTimer = new System.Timers.Timer(1000); -// // Hook up the Elapsed event for the timer. -// aTimer.Elapsed += OnTimedEvent; -// aTimer.AutoReset = true; -// aTimer.Enabled = true; -// } - -// private static void OnTimedEvent(Object source, ElapsedEventArgs e) - // { -// bool x=0; -// if (x==true) -// Label5.Text="Pros"; -// else -//// Label5.Text=" "; -// x = !x ; -// -// } - - - - - - - - - -public void OnExecute(StubManager stubManager) -{ -string path=""; - Form form1 = new Form(); - -// Set the caption bar text of the form. - form1.TopMost = true; - form1.Text = "MIDTANK Test"; - form1.FormBorderStyle = FormBorderStyle.FixedDialog; - form1.MaximizeBox = false; - form1.MinimizeBox = false; - form1.StartPosition = FormStartPosition.CenterScreen; - form1.AutoSize = true; - form1.AutoSizeMode = AutoSizeMode.GrowAndShrink; -// Create buttons to Run. - Button button1 = new Button () - { - Width = 100, - Height = 100, - }; - button1.Text = "Run"; - button1.Location = new Point (40, 100); - form1.Controls.Add(button1); -//-----MIDTANK Serial Number ----------- - - Label Label1 = new Label () - { - Width = 150, - Height = 20, - Text =" MIDTANK S/N" - }; - Label1.Location = new Point (30, 10); - form1.Controls.Add(Label1); - TextBox TextBox1 = new TextBox () - { - Width = 100, - Height = 10, - Text ="" - }; - TextBox1.Location = new Point (40, 40); - form1.Controls.Add(TextBox1); - //----------LOCATION---------- - - Label Label3 = new Label () - { - Width = 150, - Height = 20, - Text ="LOCATION" - }; -Label3.Location = new Point (350, 10); - form1.Controls.Add(Label3); - - - -TextBox TextBox3 = new TextBox () - { - Width = 100, - Height = 10, - Text ="" - }; -TextBox3.Location = new Point (360, 40); - form1.Controls.Add(TextBox3); - - - - - Label Label5 = new Label () - { - Width = 120, - Height =100, - Text = "" - }; - Label5.Location = new Point (300, 100); - Label5.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; - - Label5.Text=""; - Label5.Font = new Font("Arial", 24,FontStyle.Bold); - form1.Controls.Add(Label5); - -//---------------------------- - -bool BlinkOn = false; - - - -//-------------------------------------------------------------------------------- - - button1.Click += (_,__) => - - { -// SetTimer(); - -// Label5.Text="Pros"; - - - - -//-------------------------------------------------------------------------------- - - - - - Label5.Text = "Pros"; - // if (_click) - // _show_text.Text = "Fail"; - // else - // _show_text.Text = "Pass"; - - // _click = !_click; - // TextBox1.Text = ""; - - - -//-------------------------------------------------------------------------------- - - - - if (!Directory.Exists(path1)) - { - path=path2; - if (!Directory.Exists(path2)) - Directory.CreateDirectory(path2); - } - else - path=path1; - - File_Name1=path + TextBox1.Text +"_MIDTANK_" + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".log" ; - - - stubManager.Write(File_Name1 +"\n"); - stubManager.WriteToFile(File_Name1,DateTime.Now +" " ); - stubManager.Write(DateTime.Now +"\n" ); - - stubManager.AppendToFile(File_Name1,"MIDTANK Test Report" ); - stubManager.Write("MIDTANK Test Report\n" ); - - stubManager.AppendToFile(File_Name1,"MIDTANK S/N: \t" + TextBox1.Text ); - stubManager.Write("MIDTANK S/N:" + TextBox1.Text +"\n" ); - - - stubManager.AppendToFile(File_Name1,"Location:\t" + TextBox3.Text ); - stubManager.Write("Location:" + TextBox3.Text +"\n" ); - - - -//------------------------------- start test ----------- - Test_MIDTANK(); - - Status=write_to_file(); - stubManager.Write(Status +"\n"); - - Label5.Text=Status; - - // _show_text.Text =Status; - - TextBox1.Text=""; - }; - - form1.ShowDialog(); - - return ; - } - - //------------------------------------ -int Test_MIDTANK() -{ - double Pressur_Volt; - double temp; - for (Int32 i=1;i<9;i++) - { - open_valve(i,0,1) ; //open Air valve - open_valve(i,1,1) ; //open Ink valve - Thread.Sleep(2000); - Pressur_Volt=read_pressuere_sense(i); - if ((Pressur_Volt>3 )||(Pressur_Volt<2)) - { - Units_status[(i-1)*3+2,1]="Fail"; - stubManager.Write("pressuere_sense of midtank" + i +"\tFail\n"); - } - else - { - close_valve(i,1,0) ; //close Ink valve - DialogResult result = MessageBox.Show("ADD 20cc air thru Air valve of Midtank"+ i, "Warning"); - close_valve(i,0,0) ; //close Air valve - Thread.Sleep(2000); - - temp=read_pressuere_sense(i); - temp=temp-Pressur_Volt; - if ((temp>0.5) && ( temp <2)) - Units_status[(i-1)*3+2,1]="Pass"; - else - Units_status[(i-1)*3+2,1]="Fail"; - } - - close_valve(i,0,0) ; //close Air valve - close_valve(i,1,0) ; //close Ink valve - } - return 1; -} - -double read_pressuere_sense(Int32 Midtank_Nm) -{ -double Pressur_Volt; - adc_configuration((ADC_Add_Chnl[Midtank_Nm-1,0]),(ADC_Add_Chnl[Midtank_Nm-1,1]) ); //configure address and channel of midtank - adc_set_for_read_ch(ADC_Add_Chnl[Midtank_Nm-1,0]); - Pressur_Volt =adc_read_ch(ADC_Add_Chnl[Midtank_Nm-1,0]); - - stubManager.Write("pressure sense of midtank " + Midtank_Nm + "is " + Pressur_Volt+ "Volt\n"); - return Pressur_Volt; -} - - -//-------------------------------- -int adc_configuration(uint I2C_Slave_Add,uint channel ) - { - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0x00);//Byte 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(channel);//Byte 1 to Write, must be 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02 or 0x01 for different channels - stubI2CWriteBytesRequest.BytesTWrite.Add(0x80);//Byte 2 to Write - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; - } -//-------------------------------- -int adc_set_for_read_ch(uint I2C_Slave_Add) - { - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0x01);//Byte 0 to write - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; - } -//-------------------------------- - -double adc_read_ch(uint I2C_Slave_Add) - { - StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest(); - stubI2CReadBytesRequest.I2CId = I2C_ID; - stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add; - stubI2CReadBytesRequest.NumberOfBytesToRead = 2; // Number of bytes to read - - var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest); - uint temph=0; - uint templ=0; - uint temp; - double calc; - double calc1; - temph=response1.ReadBytes[0]; - templ=response1.ReadBytes[1]; - temp = (temph << 8) | templ; - temp=temp & 0x0fff; - - calc = (double)temp *2.5 / 4096.0; - calc1 = (1.96- calc) * 4.64 + 1.96; - return calc1; - } -//-------------------------------- -int open_valve (int valve_nm,int valve_type,int check_valve) //valve_type=0 is Air ,1 is Ink ; check_valve=1 send feedbak -{ - int temp1=Convert_Midtank_No[valve_nm-1] ; - - string temp; - SetBit (F3_VALVE_OUT,((valve_type+1)*8)- temp1, 1); - if (check_valve!=0) - { - temp="Air"; - if (valve_type==1) - temp="Ink"; - - DialogResult result = MessageBox.Show("Did " + temp + "Valve of Midtank " + valve_nm +" open?", "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.No) - { - Units_status[(valve_nm-1)*3+valve_type,1]="Fail"; - stubManager.Write(temp +"Valve\tFail\n"); - return 0; - } - else - { - Units_status[(valve_nm-1)*3+valve_type,1]="Pass"; - stubManager.Write(temp +"Valve\tOpen\n"); - return 1; - } - - } - return 1; - -} -//-------------------------------- -int close_valve (int valve_nm,int valve_type,int check_valve) -{ - int temp1=Convert_Midtank_No[valve_nm-1]; - - string temp; - SetBit (F3_VALVE_OUT,((valve_type+1)*8)- temp1, 0); - if (check_valve!=0) - { - temp="Air"; - if (valve_type==1) - temp="Ink"; - - DialogResult result = MessageBox.Show("Did " + temp +" Valve of Midtank " + valve_nm +" close?", "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.No) - { - Units_status[(valve_nm-1)*3+valve_type,1]="Fail"; - stubManager.Write(temp +"Valve\tFail\n"); - return 0; - } - else - { - Units_status[(valve_nm-1)*3+valve_type,1]="Pass"; - stubManager.Write(temp +"Valve\tclose\n"); - return 1; - } - } - return 1; - - - - -} -//-------------------------------- -Int32 SetBit(Int32 Adr, Int32 BitNo, Int32 Bit) -{ - Int32 BitMask; - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" , F3_VALVE_OUT); - Int32 RV = (Int32) response.Value & 0xffff; - - - if (Bit == 0x1) - { - BitMask = 0x1 << BitNo; - RV = RV | BitMask; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_VALVE_OUT , RV); - } - else if (Bit == 0x0) - { - BitMask = ~(0x1 << BitNo); - RV = RV & BitMask; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_VALVE_OUT , RV); - } - return 1; -} - //------------------------------------ -string write_to_file() -{ - stubManager.Write("write_to_file\n"); - -string Stemp="Pass"; - for (int i=0;i<UNIT_UNDER_TEST;i++) - { - stubManager.AppendToFile(File_Name1,Units_status[i,0]+"\t" + Units_status[i,1] ); - stubManager.Write(Units_status[i,0]+"\t" + Units_status[i,1]+"\n" ); - - if ((Units_status[i,1]=="Fail")||(Units_status[i,1]=="Not Test")) - Stemp="Fail"; - } - if (Stemp=="Fail") - { - stubManager.AppendToFile(File_Name1,"-------------MidTank Fail ------------ "); - stubManager.Write("-------------MidTank Fail ------------ "); - } - else - { - stubManager.AppendToFile(File_Name1,"-------------MidTank Pass ------------ )"); - stubManager.Write("-------------MidTank Pass ------------ "); - } - - return Stemp; - -} diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Midtank_Valves_test.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Midtank_Valves_test.cs deleted file mode 100644 index bacbfdcc1..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Midtank_Valves_test.cs +++ /dev/null @@ -1,65 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -include "..\..\Defines\Tango_Defines_Basic.cs" -include "..\Defines\Tango_Defines_GPO.cs" -//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_Basic.cs" -//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_GPO.cs" - - -public void OnExecute(StubManager stubManager) -{ -int i=0; -int midtankno = 0; -while(midtankno!=99) - { - var response = stubManager.ShowResponseWindow("Enter 1-16 to open Midtank, 101-116 to close , 0 - open all midtank ,100-close all midtank: press 99 to quit ", ""); - //stubManager.WriteLine(response); - stubManager.Write("\n"); - midtankno = int.Parse(response); - - - if(midtankno==0 ) - { - for (i=0;i<16;i++) - { - SetBit (FPGA3, F3_VALVE_OUT,15-i, 1); - stubManager.Write("Setting GPO F3_VALVE_OUT, bit " + (15-i) + " On\n"); - Thread.Sleep(1000); - } - } - else if(midtankno==100 ) - { - for (i=0;i<16;i++) - { - SetBit (FPGA3, F3_VALVE_OUT,15- i, 0); - stubManager.Write("Setting GPO F3_VALVE_OUT, bit " + (15-i) + " Off\n"); - Thread.Sleep(1000); - } - } - - else if(midtankno<17 ) - { - midtankno=midtankno-1; //start from 0 to 15 - SetBit (FPGA3, F3_VALVE_OUT,15- i, 1); - stubManager.Write("Setting GPO F3_VALVE_OUT, bit " + (15-i) + " On\n"); - } - - else if(midtankno>100 ) - { - midtankno=midtankno-101; //start from 0 to 15 - SetBit (FPGA3, F3_VALVE_OUT,15- i, 0); - stubManager.Write("Setting GPO F3_VALVE_OUT, bit " + (15-i) + " Off\n"); - } - } - -} diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Midtank_pressure_sensors.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Midtank_pressure_sensors.cs index e2bacf5f4..682ef322d 100644 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Midtank_pressure_sensors.cs +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Midtank_pressure_sensors.cs @@ -90,7 +90,6 @@ int adc_set_for_read_ch(uint I2C_Slave_Add) } - int adc_read_ch(uint I2C_Slave_Add) { StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest(); @@ -99,27 +98,16 @@ int adc_read_ch(uint I2C_Slave_Add) stubI2CReadBytesRequest.NumberOfBytesToRead = 2; // Number of bytes to read var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest); - UInt32 temph=0; - UInt32 templ=0; - UInt32 temp; - double calc; - double calc1; + uint temph=0; + uint templ=0; + uint temp; for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i=i+2) { temph=response1.ReadBytes[i]; templ=response1.ReadBytes[i+1]; temp = (temph << 8) | templ; temp=temp & 0x0fff; - - calc = (double)temp *2.5 / 4096.0; - calc1 = (1.96- calc) * 4.64 + 1.96; - - - // temp=temp*3300; - // temp=temp/4096; - - stubManager.Write(calc1); - stubManager.Write("mV\n"); + stubManager.WriteHex(temp,4); } @@ -133,49 +121,47 @@ public void OnExecute(StubManager stubManager) { - stubManager.Write("-----------MIDTANK_PRESSESENS-----------\n "); + stubManager.Write("\n-----------MIDTANK_PRESSESENS----------- "); - stubManager.Write("Midtank-1= "); + stubManager.Write("\n1_1= "); adc_configuration(0x44,0x20); //a2d_address 0x44 channel channel 2 +// adc_set_for_read_temp(0x44); +// adc_read_temp(0x44); + adc_set_for_read_ch(0x44); + adc_read_ch(0x44); + + stubManager.Write("\n1_2= "); + adc_configuration(0x44,0x10); //a2d_address 0x44 channel channel 3 adc_set_for_read_ch(0x44); adc_read_ch(0x44); - - stubManager.Write("Midtank-2= "); + stubManager.Write("\n2_1= "); adc_configuration(0x44,0x08); //a2d_address 0x44 channel channel 4 adc_set_for_read_ch(0x44); adc_read_ch(0x44); + stubManager.Write("\n2_2= "); + adc_configuration(0x44,0x04); //a2d_address 0x44 channel channel 5 + adc_set_for_read_ch(0x44); + adc_read_ch(0x44); - stubManager.Write("Midtank-3= "); + stubManager.Write("\n3_1= "); adc_configuration(0x46,0x80); //a2d_address 0x46 channel channel 0 adc_set_for_read_ch(0x46); adc_read_ch(0x46); - - stubManager.Write("Midtank-4= "); - adc_configuration(0x46,0x20); //a2d_address 0x46 channel channel 2 + + stubManager.Write("\n3_2= "); + adc_configuration(0x46,0x40); //a2d_address 0x46 channel channel 1 adc_set_for_read_ch(0x46); adc_read_ch(0x46); - - - stubManager.Write("Midtank-5= "); - adc_configuration(0x44,0x10); //a2d_address 0x44 channel channel 3 - adc_set_for_read_ch(0x44); - adc_read_ch(0x44); - - stubManager.Write("Midtank-6= "); - adc_configuration(0x44,0x04); //a2d_address 0x44 channel channel 5 - adc_set_for_read_ch(0x44); - adc_read_ch(0x44); - - stubManager.Write("Midtank-7= "); - adc_configuration(0x46,0x40); //a2d_address 0x46 channel channel 1 + stubManager.Write("\n4_1= "); + adc_configuration(0x46,0x20); //a2d_address 0x46 channel channel 2 adc_set_for_read_ch(0x46); adc_read_ch(0x46); - stubManager.Write("Midtank-8= "); + stubManager.Write("\n4_2= "); adc_configuration(0x46,0x10); //a2d_address 0x46 channel channel 3 adc_set_for_read_ch(0x46); adc_read_ch(0x46); diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/New_Calibrate_Midtank_pressure_sensors.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/New_Calibrate_Midtank_pressure_sensors.cs deleted file mode 100644 index 00ca4e8eb..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/New_Calibrate_Midtank_pressure_sensors.cs +++ /dev/null @@ -1,451 +0,0 @@ -using System; -using System.IO; -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.Stubs; -using Tango.PMR.EmbeddedParameters; -using Tango.Stubs; - -//---------------------- -const double MIN_SLOP=0.7; -const double MAX_SLOP=1.4; -const double ERROR_SLOP=-1; -const double MIN_50cc_on_volt=2.3; -const double MAX_50cc_on_volt=3.2; -const double ERROR_50cc_on_volt=-1; - -int [] Convert_Midtank_No = new Int32 [8] {1,3,5,7,2,4,6,8}; -uint [,] ADC_Add_Chnl = new uint [8,2] { - {0x44,0x20}, - {0x44,0x08}, - {0x46,0x80}, - {0x46,0x20}, - {0x44,0x10}, - {0x44,0x04}, - {0x46,0x40}, - {0x46,0x10}, - }; - - -const Int32 F3_VALVE_OUT = 0x600008E2 ; -string Machine_SN ; -private const string FILE_PATH = @"C:\MidTankLog\"; -string File_name; -double Full_Cartridge=1000; // on CC -double Slop=0.92; -//---------------------- -const Int32 I2C_ID = 2; -//const Int32 I2C_Slave_Add = 0x46; //must be 0x40, 0x44 or 0x46 -//---------------------- - - -public void OnExecute(StubManager stubManager) -{ - Int32 Timout ; - Int32 Interval; - Int32 midtankno = 0; - double Full_Point=0; //on Voltage - double resualt; - double Sum=0 ; - double Old_Sum=0 ; - double Start_Point=0; - - - if (!Directory.Exists(FILE_PATH)) - { - Directory.CreateDirectory(FILE_PATH); - } - - - - var response = stubManager.ShowResponseWindow("Enter Midtank S/N: ", ""); - stubManager.Write("\n"); - Machine_SN = response; - stubManager.WriteLine(Machine_SN); - File_name= FILE_PATH +Machine_SN + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".csv"; - stubManager.Write(File_name); - stubManager.WriteToFile(File_name,"MidTank S/N:," + Machine_SN); - - - var response1 = stubManager.ShowResponseWindow("Enter Midtank number to calibrate (1-8):", ""); - stubManager.WriteLine(response1); - midtankno = Int32.Parse(response1); - stubManager.AppendToFile(File_name,"MidTank Number:\t" + response1); - if (midtankno==8) - { - Slop=1; - Timout=60; //60 minutes - Interval=60; //60 second - } - else - { - Slop=0.92; - Timout=10*2; //10 minutes - Interval=30; //30 second - - } - var response10 = stubManager.ShowResponseWindow("Enter Cartridge Valume on CC (500-1500):", ""); - stubManager.WriteLine(response10); - Full_Cartridge = double.Parse(response10); - stubManager.AppendToFile(File_name,"Cartridge Valume:\t" + response10); - stubManager.AppendToFile(File_name,"Slop value:\t" + Slop); - - - DialogResult result = MessageBox.Show("Are you sure to calibrate Midtank No: "+ midtankno + " with "+ Full_Cartridge +" CC" , "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.Yes) - { - - - - string box_msg = "Please Insert cartridge "; - - MessageBox.Show(box_msg); - - open_valve(midtankno,1,1) ; //open Air valve - open_valve(midtankno,0,1) ; //open Ink valve - Int32 i=0; - while (i<Timout) //check for 15 minitus - { - Sum=0; - for (Int32 j=0;j<Interval;j++) - { - resualt=read_pressure_sensor(midtankno); - stubManager.AppendToFile(File_name,resualt+",V"); - Sum=Sum+resualt; - Thread.Sleep(1000); - } - - - if (i==0) - Start_Point=Sum/Interval; - - if (Sum>Old_Sum) - Old_Sum=Sum-Old_Sum; - else - Old_Sum=Old_Sum-Sum; - - - if ((check_valve(midtankno,1) != 0) && (check_valve(midtankno,0) != 0)) - { - i++; - if ( Old_Sum <0.02) - i=Timout+1; //end - Old_Sum=Sum; - } - else - { - open_valve(midtankno,1,0) ; //open Air valve - open_valve(midtankno,0,0) ; //open Ink valve - Old_Sum=0; - - } - } - Full_Point=Sum/Interval; - - - close_valve(midtankno,1,1) ; //close Air valve - close_valve(midtankno,0,1) ; //close Ink valve - - - if (insert_slop_t_eeprom(Full_Point, midtankno,Start_Point)==0) - { - box_msg ="Turn Power Off and On to finish the calibration."; - MessageBox.Show(box_msg); - } - else - { - box_msg ="Calibration error"; - MessageBox.Show(box_msg); - - } - } - -} - - - int insert_slop_t_eeprom( double FullPoint,Int32 midtankno, double StartPoint) -{ - stubManager.Write("\n StartPoint = "+ StartPoint +" \n"); - stubManager.Write("\n FullPoint = "+ FullPoint +" \n"); - - StartPoint=FullPoint-StartPoint; - StartPoint=1000*StartPoint/Full_Cartridge; - - stubManager.Write("\n slop = "+ StartPoint +" \n"); - - if ((StartPoint>0.7 ) && (StartPoint<1.6 )) - { - MidTankDataSetupRequest midTankDataSetupRequest = new MidTankDataSetupRequest(); - - MidTankData midTankData = new MidTankData(); - midTankData.MidTankId = Convert.ToUInt32 (midtankno-1); - midTankData.InitialOffsetA =FullPoint - (Full_Cartridge/1000-0.1)/Slop; - midTankData.SlopeB = Slop; - - stubManager.Write("\nMidtank No:" + midtankno + "=\tVoltage Zero is ="+(FullPoint - (Full_Cartridge/1000-0.1)/Slop)+"\tSlop="+ Slop); - stubManager.AppendToFile(File_name,"\nMidtank No:" + midtankno + "=\tVoltage Zero is ="+(FullPoint - (Full_Cartridge/1000-0.1)/Slop)+"\tSlop="+ Slop); - - - midTankDataSetupRequest.MidTankInfo.Add(midTankData); - - - var response = stubManager.Run<MidTankDataSetupResponse>(midTankDataSetupRequest); - - return 0; - } - else - stubManager.Write("\nError"); - stubManager.AppendToFile(File_name,"\n Slop Error"); - return 1; - -} - - -int adc_configuration(uint I2C_Slave_Add,uint channel ) - { - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0x00);//Byte 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(channel);//Byte 1 to Write, must be 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02 or 0x01 for different channels - stubI2CWriteBytesRequest.BytesTWrite.Add(0x80);//Byte 2 to Write - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; - } - - -int adc_set_for_read_ch(uint I2C_Slave_Add) - { - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0x01);//Byte 0 to write - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; - } - - - - -double adc_read_ch(uint I2C_Slave_Add) - { - StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest(); - stubI2CReadBytesRequest.I2CId = I2C_ID; - stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add; - stubI2CReadBytesRequest.NumberOfBytesToRead = 2; // Number of bytes to read - - var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest); - uint temph=0; - uint templ=0; - uint temp; - double calc; - double calc1; - double calc2; - temph=response1.ReadBytes[0]; - templ=response1.ReadBytes[1]; - temp = (temph << 8) | templ; - temp=temp & 0x0fff; - - calc = (double)temp *2.5 / 4096.0; - - calc1 = (1.96- calc) * 4.64 + 1.96; - stubManager.Write("Vsensor [volts]:\t"); - stubManager.Write(calc1 + "\n"); - - - return calc1; - } - -double read_pressure_sensor(Int32 i ) - { -double resualt =0 ; - switch (i) - { - case 1: - adc_configuration(0x44,0x20); //a2d_address 0x44 channel channel 2 - adc_set_for_read_ch(0x44); - resualt=adc_read_ch(0x44); - break; - - case 2: - adc_configuration(0x44,0x08); //a2d_address 0x44 channel channel 4 - adc_set_for_read_ch(0x44); - resualt=adc_read_ch(0x44); - break; - - case 3: - adc_configuration(0x46,0x80); //a2d_address 0x46 channel channel 0 - adc_set_for_read_ch(0x46); - resualt=adc_read_ch(0x46); - break; - - case 4: - adc_configuration(0x46,0x20); //a2d_address 0x46 channel channel 2 - adc_set_for_read_ch(0x46); - resualt=adc_read_ch(0x46); - break; - - case 5: - adc_configuration(0x44,0x10); //a2d_address 0x44 channel channel 3 - adc_set_for_read_ch(0x44); - resualt=adc_read_ch(0x44); - break; - - case 6: - adc_configuration(0x44,0x04); //a2d_address 0x44 channel channel 5 - adc_set_for_read_ch(0x44); - resualt=adc_read_ch(0x44); - break; - - case 7: - adc_configuration(0x46,0x40); //a2d_address 0x46 channel channel 1 - adc_set_for_read_ch(0x46); - resualt=adc_read_ch(0x46); - break; - - case 8: - adc_configuration(0x46,0x10); //a2d_address 0x46 channel channel 3 - adc_set_for_read_ch(0x46); - resualt=adc_read_ch(0x46); - break; - - default: - stubManager.Write("Error"); - - break; - } - - return resualt; - } - - -//-------------------------------- -int open_valve (int valve_nm,int valve_type,int check_valve) //valve_type=0 is Air ,1 is Ink ; check_valve=1 send feedbak -{ - int temp1=Convert_Midtank_No[valve_nm-1] ; - - string temp; - SetBit (F3_VALVE_OUT,(((valve_type+1)*8)- temp1), 1); - - if (check_valve!=0) - { - temp="Air"; - if (valve_type==1) - temp="Ink"; - - DialogResult result = MessageBox.Show("Did " + temp + "Valve of Midtank " + valve_nm +" open?", "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.No) - { -// Units_status[(valve_nm-1)*3+valve_type,1]="Fail"; - stubManager.Write(temp +"Valve\tFail\n"); - return 0; - } - else - { -// Units_status[(valve_nm-1)*3+valve_type,1]="Pass"; - stubManager.Write(temp +"Valve\tOpen\n"); - return 1; - } - - } - return 1; - -} -//-------------------------------- -int close_valve (int valve_nm,int valve_type,int check_valve) -{ - int temp1=Convert_Midtank_No[valve_nm-1]; - - string temp; - SetBit (F3_VALVE_OUT,(((valve_type+1)*8)- temp1), 0); - if (check_valve!=0) - { - temp="Air"; - if (valve_type==1) - temp="Ink"; - - DialogResult result = MessageBox.Show("Did " + temp +" Valve of Midtank " + valve_nm +" close?", "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.No) - { -// Units_status[(valve_nm-1)*3+valve_type,1]="Fail"; - stubManager.Write(temp +"Valve\tFail\n"); - return 0; - } - else - { -// Units_status[(valve_nm-1)*3+valve_type,1]="Pass"; - stubManager.Write(temp +"Valve\tclose\n"); - return 1; - } - } - return 1; - -} - -public Int32 SetBit(Int32 Adr, Int32 BitNo, Int32 Bit) -{ - Int32 BitMask; - var RetVal = Fpga_Read_Reg(Adr); - Int32 RV = (Int32) RetVal.Value; - - if (Bit == 0x1) - { - BitMask = 0x1 << BitNo; - RV = RV | BitMask; - Fpga_Write_Reg( Adr, RV ); - } - else if (Bit == 0x0) - { - BitMask = ~(0x1 << BitNo); - RV = RV & BitMask; - Fpga_Write_Reg(Adr, RV ); - } - return 1; -} - -int Fpga_Write_Reg(Int32 Addr, Int32 Data) -{ - var response = stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,Addr, Data); - - return 1; -} - - -Int32 check_valve (Int32 valve_nm,int valve_type) -{ - Int32 temp1=Convert_Midtank_No[valve_nm-1]; - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F3_VALVE_OUT); - Int32 RV =(Int32) response.Value & 0xffff ; - RV = RV & ( 0x1 << (((valve_type+1)*8)- temp1)); - return RV; - -} - - -StubFpgaReadRegResponse Fpga_Read_Reg(Int32 Addr) -{ - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,Addr); - response.Value = response.Value & 0xffff; - - return response; -} - - - - -//end mati
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Poller Motor.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Poller Motor.csv deleted file mode 100644 index e42f3c309..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Poller Motor.csv +++ /dev/null @@ -1,55 +0,0 @@ -Time,Poller Motor -13:39:54.945,0 -13:39:55.045,0 -13:39:55.145,0 -13:39:55.245,0 -13:39:55.345,0 -13:39:55.445,0 -13:39:55.545,0 -13:39:55.645,0 -13:39:55.745,0 -13:39:55.845,0 -13:39:55.945,0 -13:39:56.045,0 -13:39:56.145,0 -13:39:56.245,0 -13:39:56.345,0 -13:39:56.445,0 -13:39:56.545,0 -13:39:56.645,0 -13:39:56.745,0 -13:39:56.845,0 -13:39:56.945,0 -13:39:57.045,0 -13:39:57.145,0 -13:39:57.245,0 -13:39:57.345,0 -13:39:57.445,0 -13:39:57.545,0 -13:39:57.645,0 -13:39:57.745,0 -13:39:57.845,0 -13:39:57.945,0 -13:39:58.045,0 -13:39:58.145,0 -13:39:58.245,0 -13:39:58.345,0 -13:39:58.445,0 -13:39:58.545,0 -13:39:58.645,0 -13:39:58.745,0 -13:39:58.845,0 -13:39:58.945,0 -13:39:59.045,0 -13:39:59.145,0 -13:39:59.245,0 -13:39:59.345,0 -13:39:59.445,0 -13:39:59.545,0 -13:39:59.645,0 -13:39:59.745,0 -13:39:59.845,0 -13:39:59.945,0 -13:40:00.045,0 -13:40:00.145,0 -13:40:00.245,0 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Right Dancer.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Right Dancer.csv deleted file mode 100644 index 9efc47b7e..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Right Dancer.csv +++ /dev/null @@ -1,541 +0,0 @@ -Time,Right Dancer -13:39:54.945,12900 -13:39:54.955,12900 -13:39:54.965,12900 -13:39:54.975,12900 -13:39:54.985,12900 -13:39:54.995,12900 -13:39:55.005,12900 -13:39:55.015,12900 -13:39:55.025,12900 -13:39:55.035,12900 -13:39:55.045,12900 -13:39:55.055,12900 -13:39:55.065,12900 -13:39:55.075,12900 -13:39:55.085,12900 -13:39:55.095,12900 -13:39:55.105,12900 -13:39:55.115,12900 -13:39:55.125,12900 -13:39:55.135,12900 -13:39:55.145,12900 -13:39:55.155,12900 -13:39:55.165,12900 -13:39:55.175,12900 -13:39:55.185,12900 -13:39:55.195,12900 -13:39:55.205,12900 -13:39:55.215,12900 -13:39:55.225,12900 -13:39:55.235,12900 -13:39:55.245,12900 -13:39:55.255,12900 -13:39:55.265,12900 -13:39:55.275,12900 -13:39:55.285,12900 -13:39:55.295,12900 -13:39:55.305,12900 -13:39:55.315,12900 -13:39:55.325,12900 -13:39:55.335,12900 -13:39:55.345,12900 -13:39:55.355,12900 -13:39:55.365,12900 -13:39:55.375,12900 -13:39:55.385,12900 -13:39:55.395,12900 -13:39:55.405,12900 -13:39:55.415,12900 -13:39:55.425,12900 -13:39:55.435,12900 -13:39:55.445,12900 -13:39:55.455,12900 -13:39:55.465,12900 -13:39:55.475,12900 -13:39:55.485,12900 -13:39:55.495,12900 -13:39:55.505,12900 -13:39:55.515,12900 -13:39:55.525,12900 -13:39:55.535,12900 -13:39:55.545,12900 -13:39:55.555,12900 -13:39:55.565,12900 -13:39:55.575,12900 -13:39:55.585,12900 -13:39:55.595,12900 -13:39:55.605,12900 -13:39:55.615,12900 -13:39:55.625,12900 -13:39:55.635,12900 -13:39:55.645,12900 -13:39:55.655,12900 -13:39:55.665,12900 -13:39:55.675,12900 -13:39:55.685,12900 -13:39:55.695,12900 -13:39:55.705,12900 -13:39:55.715,12900 -13:39:55.725,12900 -13:39:55.735,12900 -13:39:55.745,12900 -13:39:55.755,12900 -13:39:55.765,12900 -13:39:55.775,12900 -13:39:55.785,12900 -13:39:55.795,12900 -13:39:55.805,12900 -13:39:55.815,12900 -13:39:55.825,12900 -13:39:55.835,12900 -13:39:55.845,12900 -13:39:55.855,12900 -13:39:55.865,12900 -13:39:55.875,12900 -13:39:55.885,12900 -13:39:55.895,12900 -13:39:55.905,12900 -13:39:55.915,12900 -13:39:55.925,12900 -13:39:55.935,12900 -13:39:55.945,12900 -13:39:55.955,12900 -13:39:55.965,12900 -13:39:55.975,12900 -13:39:55.985,12900 -13:39:55.995,12900 -13:39:56.005,12900 -13:39:56.015,12900 -13:39:56.025,12900 -13:39:56.035,12900 -13:39:56.045,12900 -13:39:56.055,12900 -13:39:56.065,12900 -13:39:56.075,12900 -13:39:56.085,12900 -13:39:56.095,12900 -13:39:56.105,12900 -13:39:56.115,12900 -13:39:56.125,12900 -13:39:56.135,12900 -13:39:56.145,12900 -13:39:56.155,12900 -13:39:56.165,12900 -13:39:56.175,12900 -13:39:56.185,12900 -13:39:56.195,12900 -13:39:56.205,12900 -13:39:56.215,12900 -13:39:56.225,12900 -13:39:56.235,12900 -13:39:56.245,12900 -13:39:56.255,12900 -13:39:56.265,12900 -13:39:56.275,12900 -13:39:56.285,12900 -13:39:56.295,12900 -13:39:56.305,12900 -13:39:56.315,12900 -13:39:56.325,12900 -13:39:56.335,12900 -13:39:56.345,12900 -13:39:56.355,12900 -13:39:56.365,12900 -13:39:56.375,12900 -13:39:56.385,12900 -13:39:56.395,12900 -13:39:56.405,12900 -13:39:56.415,12900 -13:39:56.425,12900 -13:39:56.435,12900 -13:39:56.445,12900 -13:39:56.455,12900 -13:39:56.465,12900 -13:39:56.475,12900 -13:39:56.485,12900 -13:39:56.495,12900 -13:39:56.505,12900 -13:39:56.515,12900 -13:39:56.525,12900 -13:39:56.535,12900 -13:39:56.545,12900 -13:39:56.555,12900 -13:39:56.565,12900 -13:39:56.575,12900 -13:39:56.585,12900 -13:39:56.595,12900 -13:39:56.605,12900 -13:39:56.615,12900 -13:39:56.625,12900 -13:39:56.635,12900 -13:39:56.645,12900 -13:39:56.655,12900 -13:39:56.665,12900 -13:39:56.675,12900 -13:39:56.685,12900 -13:39:56.695,12900 -13:39:56.705,12900 -13:39:56.715,12900 -13:39:56.725,12900 -13:39:56.735,12900 -13:39:56.745,12900 -13:39:56.755,12900 -13:39:56.765,12900 -13:39:56.775,12900 -13:39:56.785,12900 -13:39:56.795,12900 -13:39:56.805,12900 -13:39:56.815,12900 -13:39:56.825,12900 -13:39:56.835,12900 -13:39:56.845,12900 -13:39:56.855,12900 -13:39:56.865,12900 -13:39:56.875,12900 -13:39:56.885,12900 -13:39:56.895,12900 -13:39:56.905,12900 -13:39:56.915,12900 -13:39:56.925,12900 -13:39:56.935,12900 -13:39:56.945,12900 -13:39:56.955,12900 -13:39:56.965,12900 -13:39:56.975,12900 -13:39:56.985,12900 -13:39:56.995,12900 -13:39:57.005,12900 -13:39:57.015,12900 -13:39:57.025,12900 -13:39:57.035,12900 -13:39:57.045,12900 -13:39:57.055,12900 -13:39:57.065,12900 -13:39:57.075,12900 -13:39:57.085,12900 -13:39:57.095,12900 -13:39:57.105,12900 -13:39:57.115,12900 -13:39:57.125,12900 -13:39:57.135,12900 -13:39:57.145,12900 -13:39:57.155,12900 -13:39:57.165,12900 -13:39:57.175,12900 -13:39:57.185,12900 -13:39:57.195,12900 -13:39:57.205,12900 -13:39:57.215,12900 -13:39:57.225,12900 -13:39:57.235,12900 -13:39:57.245,12900 -13:39:57.255,12900 -13:39:57.265,12900 -13:39:57.275,12900 -13:39:57.285,12900 -13:39:57.295,12900 -13:39:57.305,12900 -13:39:57.315,12900 -13:39:57.325,12900 -13:39:57.335,12900 -13:39:57.345,12900 -13:39:57.355,12900 -13:39:57.365,12900 -13:39:57.375,12900 -13:39:57.385,12900 -13:39:57.395,12900 -13:39:57.405,12900 -13:39:57.415,12900 -13:39:57.425,12900 -13:39:57.435,12900 -13:39:57.445,12900 -13:39:57.455,12900 -13:39:57.465,12900 -13:39:57.475,12900 -13:39:57.485,12900 -13:39:57.495,12900 -13:39:57.505,12900 -13:39:57.515,12900 -13:39:57.525,12900 -13:39:57.535,12900 -13:39:57.545,12900 -13:39:57.555,12900 -13:39:57.565,12900 -13:39:57.575,12900 -13:39:57.585,12900 -13:39:57.595,12900 -13:39:57.605,12900 -13:39:57.615,12900 -13:39:57.625,12900 -13:39:57.635,12900 -13:39:57.645,12900 -13:39:57.655,12900 -13:39:57.665,12900 -13:39:57.675,12900 -13:39:57.685,12900 -13:39:57.695,12900 -13:39:57.705,12900 -13:39:57.715,12900 -13:39:57.725,12900 -13:39:57.735,12900 -13:39:57.745,12900 -13:39:57.755,12900 -13:39:57.765,12900 -13:39:57.775,12900 -13:39:57.785,12900 -13:39:57.795,12900 -13:39:57.805,12900 -13:39:57.815,12900 -13:39:57.825,12900 -13:39:57.835,12900 -13:39:57.845,12900 -13:39:57.855,12900 -13:39:57.865,12900 -13:39:57.875,12900 -13:39:57.885,12900 -13:39:57.895,12900 -13:39:57.905,12900 -13:39:57.915,12900 -13:39:57.925,12900 -13:39:57.935,12900 -13:39:57.945,12900 -13:39:57.955,12900 -13:39:57.965,12900 -13:39:57.975,12900 -13:39:57.985,12900 -13:39:57.995,12900 -13:39:58.005,12900 -13:39:58.015,12900 -13:39:58.025,12900 -13:39:58.035,12900 -13:39:58.045,12900 -13:39:58.055,12900 -13:39:58.065,12900 -13:39:58.075,12900 -13:39:58.085,12900 -13:39:58.095,12900 -13:39:58.105,12900 -13:39:58.115,12900 -13:39:58.125,12900 -13:39:58.135,12900 -13:39:58.145,12900 -13:39:58.155,12900 -13:39:58.165,12900 -13:39:58.175,12900 -13:39:58.185,12900 -13:39:58.195,12900 -13:39:58.205,12900 -13:39:58.215,12900 -13:39:58.225,12900 -13:39:58.235,12900 -13:39:58.245,12900 -13:39:58.255,12900 -13:39:58.265,12900 -13:39:58.275,12900 -13:39:58.285,12900 -13:39:58.295,12900 -13:39:58.305,12900 -13:39:58.315,12900 -13:39:58.325,12900 -13:39:58.335,12900 -13:39:58.345,12900 -13:39:58.355,12900 -13:39:58.365,12900 -13:39:58.375,12900 -13:39:58.385,12900 -13:39:58.395,12900 -13:39:58.405,12900 -13:39:58.415,12900 -13:39:58.425,12900 -13:39:58.435,12900 -13:39:58.445,12900 -13:39:58.455,12900 -13:39:58.465,12900 -13:39:58.475,12900 -13:39:58.485,12900 -13:39:58.495,12900 -13:39:58.505,12900 -13:39:58.515,12900 -13:39:58.525,12900 -13:39:58.535,12900 -13:39:58.545,12900 -13:39:58.555,12900 -13:39:58.565,12900 -13:39:58.575,12900 -13:39:58.585,12900 -13:39:58.595,12900 -13:39:58.605,12900 -13:39:58.615,12900 -13:39:58.625,12900 -13:39:58.635,12900 -13:39:58.645,12900 -13:39:58.655,12900 -13:39:58.665,12900 -13:39:58.675,12900 -13:39:58.685,12900 -13:39:58.695,12900 -13:39:58.705,12900 -13:39:58.715,12900 -13:39:58.725,12900 -13:39:58.735,12900 -13:39:58.745,12900 -13:39:58.755,12900 -13:39:58.765,12900 -13:39:58.775,12900 -13:39:58.785,12900 -13:39:58.795,12900 -13:39:58.805,12900 -13:39:58.815,12900 -13:39:58.825,12900 -13:39:58.835,12900 -13:39:58.845,12900 -13:39:58.855,12900 -13:39:58.865,12900 -13:39:58.875,12900 -13:39:58.885,12900 -13:39:58.895,12900 -13:39:58.905,12900 -13:39:58.915,12900 -13:39:58.925,12900 -13:39:58.935,12900 -13:39:58.945,12900 -13:39:58.955,12900 -13:39:58.965,12900 -13:39:58.975,12900 -13:39:58.985,12900 -13:39:58.995,12900 -13:39:59.005,12900 -13:39:59.015,12900 -13:39:59.025,12900 -13:39:59.035,12900 -13:39:59.045,12900 -13:39:59.055,12900 -13:39:59.065,12900 -13:39:59.075,12900 -13:39:59.085,12900 -13:39:59.095,12900 -13:39:59.105,12900 -13:39:59.115,12900 -13:39:59.125,12900 -13:39:59.135,12900 -13:39:59.145,12900 -13:39:59.155,12900 -13:39:59.165,12900 -13:39:59.175,12900 -13:39:59.185,12900 -13:39:59.195,12900 -13:39:59.205,12900 -13:39:59.215,12900 -13:39:59.225,12900 -13:39:59.235,12900 -13:39:59.245,12900 -13:39:59.255,12900 -13:39:59.265,12900 -13:39:59.275,12900 -13:39:59.285,12900 -13:39:59.295,12900 -13:39:59.305,12900 -13:39:59.315,12900 -13:39:59.325,12900 -13:39:59.335,12900 -13:39:59.345,12900 -13:39:59.355,12900 -13:39:59.365,12900 -13:39:59.375,12900 -13:39:59.385,12900 -13:39:59.395,12900 -13:39:59.405,12900 -13:39:59.415,12900 -13:39:59.425,12900 -13:39:59.435,12900 -13:39:59.445,12900 -13:39:59.455,12900 -13:39:59.465,12900 -13:39:59.475,12900 -13:39:59.485,12900 -13:39:59.495,12900 -13:39:59.505,12900 -13:39:59.515,12900 -13:39:59.525,12900 -13:39:59.535,12900 -13:39:59.545,12900 -13:39:59.555,12900 -13:39:59.565,12900 -13:39:59.575,12900 -13:39:59.585,12900 -13:39:59.595,12900 -13:39:59.605,12900 -13:39:59.615,12900 -13:39:59.625,12900 -13:39:59.635,12900 -13:39:59.645,12900 -13:39:59.655,12900 -13:39:59.665,12900 -13:39:59.675,12900 -13:39:59.685,12900 -13:39:59.695,12900 -13:39:59.705,12900 -13:39:59.715,12900 -13:39:59.725,12900 -13:39:59.735,12900 -13:39:59.745,12900 -13:39:59.755,12900 -13:39:59.765,12900 -13:39:59.775,12900 -13:39:59.785,12900 -13:39:59.795,12900 -13:39:59.805,12900 -13:39:59.815,12900 -13:39:59.825,12900 -13:39:59.835,12900 -13:39:59.845,12900 -13:39:59.855,12900 -13:39:59.865,12900 -13:39:59.875,12900 -13:39:59.885,12900 -13:39:59.895,12900 -13:39:59.905,12900 -13:39:59.915,12900 -13:39:59.925,12900 -13:39:59.935,12900 -13:39:59.945,12900 -13:39:59.955,12900 -13:39:59.965,12900 -13:39:59.975,12900 -13:39:59.985,12900 -13:39:59.995,12900 -13:40:00.005,12900 -13:40:00.015,12900 -13:40:00.025,12900 -13:40:00.035,12900 -13:40:00.045,12900 -13:40:00.055,12900 -13:40:00.065,12900 -13:40:00.075,12900 -13:40:00.085,12900 -13:40:00.095,12900 -13:40:00.105,12900 -13:40:00.115,12900 -13:40:00.125,12900 -13:40:00.135,12900 -13:40:00.145,12900 -13:40:00.155,12900 -13:40:00.165,12900 -13:40:00.175,12900 -13:40:00.185,12900 -13:40:00.195,12900 -13:40:00.205,12900 -13:40:00.215,12900 -13:40:00.225,12900 -13:40:00.235,12900 -13:40:00.245,12900 -13:40:00.255,12900 -13:40:00.265,12900 -13:40:00.275,12900 -13:40:00.285,12900 -13:40:00.295,12900 -13:40:00.305,12900 -13:40:00.315,12900 -13:40:00.325,12900 -13:40:00.335,12900 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Screw Motor.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Screw Motor.csv deleted file mode 100644 index ac6f709b1..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Screw Motor.csv +++ /dev/null @@ -1 +0,0 @@ -Time,Screw Motor diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/midtanksetparams.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/midtanksetparams.cs deleted file mode 100644 index d3aa81e83..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/midtanksetparams.cs +++ /dev/null @@ -1,151 +0,0 @@ -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.Stubs; -using Tango.Stubs; -using Tango.PMR.EmbeddedParameters; - -public void OnExecute(StubManager stubManager) -{ - uint midtankno = 0; - double Slop; - double Zero_Point; - -MidTankDataSetupRequest midTankDataSetupRequest = new MidTankDataSetupRequest(); - - var response = stubManager.ShowResponseWindow("Enter Midtank number to calibrate (1-8):", ""); - //stubManager.WriteLine(response); - stubManager.Write("\n"); - midtankno = uint.Parse(response); - - var response1 = stubManager.ShowResponseWindow("Enter Midtank Slop ", ""); - //stubManager.WriteLine(response); - stubManager.Write("\n"); - Slop = double.Parse(response1); - - var response2= stubManager.ShowResponseWindow("Enter Zero point (100cc)", ""); - //stubManager.WriteLine(response); - stubManager.Write("\n"); - Zero_Point = double.Parse(response2); - - DialogResult result = MessageBox.Show("Are you sure to calibrate Midtank No: "+ midtankno + "with Slop "+ Slop +" and Zero_Point " + Zero_Point , "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.Yes) - { - MidTankData midTankData = new MidTankData(); - midTankData.MidTankId = midtankno-1; - midTankData.InitialOffsetA = Zero_Point; - midTankData.SlopeB = Slop; - midTankDataSetupRequest.MidTankInfo.Add(midTankData); - var response3 = stubManager.Run<MidTankDataSetupResponse>(midTankDataSetupRequest); - string box_msg ="Turn Power Off and On to finish the calibration."; - MessageBox.Show(box_msg); - - } - -} - - - -//MidTankDataSetupRequest midTankDataSetupRequest = new MidTankDataSetupRequest(); - -//50cc [V] 1.93242734375 1.94375546875 1.9295953125 1.935259375 1.92109921875 2.8245171875 1.92676328125 1.92676328125 - //b [mL/V] -1 -1 -1 -1 -1 0.885922630082808 -1 -1 -/* -MidTankData midTankData = new MidTankData(); -midTankData.MidTankId = 0; -midTankData.InitialOffsetA = 2.64273428916931; -midTankData.SlopeB = 0.899999976158142; - -MidTankData midTankData1 = new MidTankData(); -midTankData1.MidTankId = 1; -midTankData1.InitialOffsetA = 2.63755464553833; -midTankData1.SlopeB = 0.899999976158142; - -MidTankData midTankData2 = new MidTankData(); -midTankData2.MidTankId = 2; -midTankData2.InitialOffsetA = 2.63525938987732; -midTankData2.SlopeB = 0.899999976158142; - -MidTankData midTankData3 = new MidTankData(); -midTankData3.MidTankId = 3; -midTankData3.InitialOffsetA = 1.4276158142; -midTankData3.SlopeB = 0.899999976158142; - - -MidTankData midTankData4 = new MidTankData(); -midTankData4.MidTankId = 4; -midTankData4.InitialOffsetA = 2.61099219322205; -midTankData4.SlopeB = 0.899999976158142; - - -MidTankData midTankData5 = new MidTankData(); -midTankData5.MidTankId = 5; -midTankData5.InitialOffsetA = 2.62451720237732; -midTankData5.SlopeB = 0.899999976158142; - - -MidTankData midTankData6 = new MidTankData(); -midTankData6.MidTankId = 6; -midTankData6.InitialOffsetA = 2.62676334381104; -midTankData6.SlopeB = 0.899999976158142; - -MidTankData midTankData7 = new MidTankData(); -midTankData7.MidTankId = 7; -midTankData7.InitialOffsetA = 2.62676334381104; -midTankData7.SlopeB = 0.899999976158142; - - - -midTankDataSetupRequest.MidTankInfo.Add(midTankData); -midTankDataSetupRequest.MidTankInfo.Add(midTankData1); -midTankDataSetupRequest.MidTankInfo.Add(midTankData2); -midTankDataSetupRequest.MidTankInfo.Add(midTankData3); -midTankDataSetupRequest.MidTankInfo.Add(midTankData4); -midTankDataSetupRequest.MidTankInfo.Add(midTankData5); -midTankDataSetupRequest.MidTankInfo.Add(midTankData6); -midTankDataSetupRequest.MidTankInfo.Add(midTankData7); - - -var response = stubManager.Run<MidTankDataSetupResponse>(midTankDataSetupRequest); - */ - -//} - -/* - int insert_slop_t_eeprom() -{ - stubManager.Write("\n "); - - MidTankDataSetupRequest midTankDataSetupRequest = new MidTankDataSetupRequest(); - - - for (uint i=1;i<9;i++) - { - if (voltage_array[i,4]!= ERROR_SLOP) - { - MidTankData midTankData = new MidTankData(); - midTankData.MidTankId = i-1; - midTankData.InitialOffsetA = voltage_array[i,2]; - midTankData.SlopeB = voltage_array[i,4]; - - stubManager.Write("\nMidtank No:" + i+ "=\tA="+voltage_array[i,2]+"\tSlop="+voltage_array[i,4]); - - - midTankDataSetupRequest.MidTankInfo.Add(midTankData); - - } -var response = stubManager.Run<MidTankDataSetupResponse>(midTankDataSetupRequest); - - - - } -} - -*/ - diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/read_midtank_calibration.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/read_midtank_calibration.cs deleted file mode 100644 index 469772888..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/read_midtank_calibration.cs +++ /dev/null @@ -1,37 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - int i; - - for(i=0;i<8;i++) - { - - var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xA, i); - stubManager.Write("\n Initial_Offset_A [#"); - stubManager.Write(i); - stubManager.Write("] = "); - stubManager.WriteLine(response.Progress); - } - - for(i=0;i<8;i++) - { - var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xB, i); - stubManager.Write("\n Slope_B [#"); - stubManager.Write(i); - stubManager.Write("] = "); - stubManager.WriteLine(response1.Progress); - } - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/New_DyeHead/Test_Actuator.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/New_DyeHead/Test_Actuator.cs deleted file mode 100644 index f9555a05b..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/New_DyeHead/Test_Actuator.cs +++ /dev/null @@ -1,42 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - int sleep_up=2000;//2 second - int sleep_dn=2000;//2 second - var response = stubManager.ShowResponseWindow("Enter Loop Number for Actuator.", ""); - //stubManager.WriteLine(response); - int Loop_Nm = int.Parse(response); - - for (int i=0;i<Loop_Nm;i++) - { - - - stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf000); //mov ACTUATOR-IN down - Thread.Sleep(sleep_dn); - stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf101); //mov ACTUATOR-OUT up - Thread.Sleep(sleep_dn); - stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf001); //mov ACTUATOR-IN up - Thread.Sleep(sleep_up); - stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf100); //mov ACTUATOR-OUT down - Thread.Sleep(sleep_up); - - } - // stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf100); //mov ACTUATOR-OUTdown - // stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf101); //mov ACTUATOR-OUT up - - - - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/New_DyeHead/Test_Lid.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/New_DyeHead/Test_Lid.cs deleted file mode 100644 index 110a0f09b..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/New_DyeHead/Test_Lid.cs +++ /dev/null @@ -1,145 +0,0 @@ -using System; -using System.Text; -using System.IO; -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.Stubs; -using Tango.Stubs; - -const int New_DyeHead_UNDER_TEST=48; - -const Int32 MGNET_OPEN=0x42F801; -const Int32 MGNET_EN=0x42F701; -const Int32 MGNET_CLOSE=0x42F800; -const Int32 MGNET_DIS=0x42F700; - -const Int32 LS_FRONT=0X460110; -const Int32 LS_REAR=0X460120; -const Int32 LS_UPPER=0X460140; -const Int32 LS_SPARE=0X460180; - -const Int32 DyeingHeadLid_Motor = 2; - -//-------------------------------------------------------------------------------- - -public void OnExecute(StubManager stubManager) -{ - var response = stubManager.ShowResponseWindow("Enter Loop Number for Dye Head Lead.", ""); - //stubManager.WriteLine(response); - int Loop_Nm = int.Parse(response); - - for (int i=0;i<Loop_Nm;i++) - { - if (Test_Magnet_Motor_LS_New_DyeHead() != 0 ) - { - i=Loop_Nm; - stubManager.Write("Error"); - } - Thread.Sleep(2000); - } -} - -//------------------------------------------------------------- - -//-------------------------------------------- - int Test_Magnet_Motor_LS_New_DyeHead() -{ - Int32 temp; - int i=0; - -//---------------------- open Magnet ---------------------------- - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,MGNET_OPEN); // turn magnet on - Thread.Sleep(100); - - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,MGNET_EN); // magnet enable - Thread.Sleep(100); - - Thread.Sleep(1000); -//---------------------- chekc Magnet is open ---------------------------- -// DialogResult result = MessageBox.Show("Make shure, Magnet is open and DyeHead cover on front.", "Warning",MessageBoxButtons.YesNo); -// if(result == DialogResult.No) -// { -// stubManager.Write("Magnet is close\n"); -// return 0; -// } - temp=read_pio (LS_UPPER); // read LS_UPPER - if (temp != 0) - { - stubManager.Write("LS_UPPER of Magnet is close\n"); - return 1; - } - stubManager.Write("Magnet is Open\n"); - - -//---------------------- Move DyeingHead Lid Motor rear---------------------------- - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DyeingHeadLid_Motor, true, 250); - stubManager.Write("*** Open Lid Head ********* \n"); - - temp = 0; - i=0; - while ((temp == 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec - { - temp=read_pio (LS_REAR); // read LS_REAR - Thread.Sleep(50); - - i++; - } - - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor,3); //stop motor - if(i==200) - { - stubManager.Write("LS_REAR Not calibrate\n"); - return 1; - } - -//---------------------- Move DyeingHead Lid Motor front---------------------------- - stubManager.Write("*** Close Lid Head \n"); - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DyeingHeadLid_Motor, false, 250); - temp = 0; - i=0; - while ((temp == 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec - { - temp=read_pio (LS_FRONT); // read LS_FRONT - Thread.Sleep(50); - i++; - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor,3); //stop motor - if(i==200) - { - stubManager.Write("LS_FRONT Not calibrate\n"); - return 1; - } -//---------------------- Close Magnet ---------------------------- - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,MGNET_CLOSE); // turn magnet off - Thread.Sleep(2000); - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,MGNET_DIS); // magnet Disable - - stubManager.Write("Magnet is Close\n"); - Thread.Sleep(1000); - - temp=read_pio (LS_UPPER); // read LS_UPPER - if (temp == 0) - { - stubManager.Write("LS_UPPER of Magnet is open\n"); - return 1; - } - stubManager.Write("LS_UPPER of Magnet is close\n"); - return 0; - } - -Int32 read_pio(Int32 i2c_input) -{ - Int32 temp=0; - var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,i2c_input); // read break - - temp = (Int32) (response.Progress); - temp =temp & (i2c_input& 0xff); //if break ok - - return temp; -} -//end mati diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/Read_Cartridge_Present.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/Read_Cartridge_Present.cs deleted file mode 100644 index 397999f12..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/Read_Cartridge_Present.cs +++ /dev/null @@ -1,97 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -include "..\..\Defines\Tango_Defines_Basic.cs" -include "Tango_Defines_LimitSwitch.cs" -//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_Basic.cs" -//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_LimitSwitch.cs" - -//MF 23092018 2 spare LS not include - -const Int32 F3_CARTx_PRES_02_Direct = 0x60000870; -const Int32 F3_LOW_Cart_Led1 = 0x60000ba4; -const Int32 F3_High_Cart_Led1 = 0x60000ba6; -const Int32 F3_LOW_Cart_Led2 = 0x60000ba8; -const Int32 F3_High_Cart_Led2 = 0x60000baa; -const Int32 F3_LOW_Cart_Led3 = 0x60000bac; -const Int32 F3_High_Cart_Led3 = 0x60000bae; - -const Int32 F3_PreScalar_Leds = 0x60000be8; - - -public void OnExecute(StubManager stubManager) -{ - - uint Temp = 0; - uint Temp1 = 0; - int counter = 0; - stubManager.Write("\nReading register F3_CARTx_PRES_02_Direct: "); - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_LOW_Cart_Led1,100);//Low 8 bit - -var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F3_PreScalar_Leds,250); - stubManager.WriteHex(response.Value,4); - Temp = response.Value; - stubManager.Write("\nActivate limit switches one-by-one"); - - while ( counter != 1000) - { - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F3_CARTx_PRES_02_Direct); - - - - if (response.Value != Temp) - { - stubManager.WriteHex(response.Value,4); - - - Temp1=response.Value & 0x080; - if (Temp1 ==0x0080) - { - stubManager.Write("\nCART1_PRES"); - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_LOW_Cart_Led1,255);//Low 8 bit - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_High_Cart_Led1,255);//High 8 bit - - - } - Temp1=response.Value & 0x0040; - if (Temp1 ==0x0040) - { - stubManager.Write("\nCART2_PRES"); - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_LOW_Cart_Led2,255);//Low 8 bit - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_High_Cart_Led2,255);//High 8 bit - } - - Temp1=response.Value & 0x0020; - if (Temp1 ==0x0020) - { - stubManager.Write("\nCART3_PRES"); - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_LOW_Cart_Led3,255);//Low 8 bit - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_High_Cart_Led3,255);//High 8 bit - } - - - counter = counter + 1; - } - Thread.Sleep(1000); - Temp = response.Value; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_LOW_Cart_Led1,10);//Low 8 bit - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_High_Cart_Led1,1);//High 8 bit - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_LOW_Cart_Led2,10);//Low 8 bit - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_High_Cart_Led2,1);//High 8 bit - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_LOW_Cart_Led3,10);//Low 8 bit - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_High_Cart_Led3,1);//High 8 bit - - } - - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/Tamper_sw.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/Tamper_sw.cs deleted file mode 100644 index 2c51aebe7..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/Tamper_sw.cs +++ /dev/null @@ -1,94 +0,0 @@ -sing 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.Stubs; -using Tango.Stubs; - -include "..\..\Defines\Tango_Defines_Basic.cs" -include "Tango_Defines_LimitSwitch.cs" -//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_Basic.cs" -//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_LimitSwitch.cs" - -//MF 23092018 2 spare LS not include - -const Int32 F3_GPI_01_Direct = 0x60000820; - -public void OnExecute(StubManager stubManager) -{ - - uint Temp = 0; - uint Temp1 = 0; - int counter = 0; - stubManager.Write("\nReading register F3_GPI_01_Direct: "); - -var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F3_GPI_01_Direct); - stubManager.WriteHex(response.Value,4); - Temp = response.Value; - stubManager.Write("\nActivate limit switches one-by-one"); - - while ( counter != 1000) - { - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F3_GPI_01_Direct); - - - - if (response.Value != Temp) - { - stubManager.WriteHex(response.Value,4); - - - Temp1=response.Value & 0x0008; - if (Temp1 ==0x0008) - { - stubManager.Write("\nF3_GPI_PANSW6"); - - } - Temp1=response.Value & 0x0010; - if (Temp1 ==0x0010) - { - stubManager.Write("\nF3_GPI_PANSW5"); - } - - Temp1=response.Value & 0x0020; - if (Temp1 ==0x0020) - { - stubManager.Write("\nF3_GPI_PANSW4"); - } - - Temp1=response.Value & 0x0040; - if (Temp1 ==0x0040) - { - stubManager.Write("\nF3_GPI_PANSW3"); - } - - Temp1=response.Value & 0x0080; - if (Temp1 ==0x0080) - { - stubManager.Write("\nF3_GPI_PANSW2"); - } - - - Temp1=response.Value & 0x0100; - if (Temp1 ==0x0100) - { - stubManager.Write("\nF3_GPI_PANSW1"); - } - - - - counter = counter + 1; - } - Thread.Sleep(1000); - Temp = response.Value; - - } - - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/Tamper_switch.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/Tamper_switch.cs deleted file mode 100644 index 9b741d981..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/Tamper_switch.cs +++ /dev/null @@ -1,72 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -include "..\..\Defines\Tango_Defines_Basic.cs" -include "Tango_Defines_LimitSwitch.cs" -//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_Basic.cs" -//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_LimitSwitch.cs" - - - -public void OnExecute(StubManager stubManager) -{ - uint Temp = 0; - uint Temp1 = 0; - int counter = 0; - stubManager.Write("\nReading register F3_GPI_01_Direct: "); - var RetVal = Fpga_Read_Reg(FPGA3, F3_GPI_01_Direct, 0); - stubManager.WriteHex(RetVal.Value,4); - Temp = RetVal.Value; - stubManager.Write("\nActivate Tamper switches one-by-one"); - - while ( counter != 100000) - { - RetVal = Fpga_Read_Reg(FPGA3, F3_GPI_01_Direct, 0); - if (RetVal.Value != Temp) - { - stubManager.Write("\nRegister F3_GPI_01_Direct new value: "); - stubManager.WriteHex(RetVal.Value, 4); - - Temp1=RetVal.Value & 0x0008; - if (Temp1 !=0x0008) - stubManager.Write("\nPANSW6"); - - - Temp1=RetVal.Value & 0x0010; - if (Temp1 !=0x0010) - stubManager.Write("\nPANSW5"); - - Temp1=RetVal.Value & 0x0020; - if (Temp1 !=0x0020) - stubManager.Write("\nPANSW4"); - - Temp1=RetVal.Value & 0x0040; - if (Temp1 !=0x0040) - stubManager.Write("\nPANSW3"); - - Temp1=RetVal.Value & 0x0080; - if (Temp1 !=0x0080) - stubManager.Write("\nPANSW2"); - - Temp1=RetVal.Value & 0x0100; - if (Temp1 !=0x0100) - stubManager.Write("\nPANSW1"); - - - counter = counter + 1; - } - Thread.Sleep(100); - Temp = RetVal.Value; - - } - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/ssr9-chiller.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/ssr9-chiller.cs deleted file mode 100644 index 28d6f69fc..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/ssr9-chiller.cs +++ /dev/null @@ -1,38 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -include "..\..\Defines\Tango_Defines_Basic.cs" -include "Tango_Defines_SSR.cs" -//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\Software\Stub_scripts\Tango_Defines_Basic.cs" -//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\Software\Stub_scripts\Interfaces\Tango_Defines_SSR.cs" - -//---------------------- -const Int32 I2C_ID = 2; -//const Int32 I2C_Slave_Add = 0x46; //must be 0x40, 0x44 or 0x46 -//---------------------- - - -public void OnExecute(StubManager stubManager) -{ - - - UInt32 temp=0; - - - //Write F2_GPO_CHILLER_SSR9_CTRL SSR/SSR no. 9 - SetBit (FPGA2, F2_CTRL, 2, 1); - stubManager.Write("\tTesting SSR no. 9\tCHILLER\t"); - Thread.Sleep(10000); - SetBit (FPGA2, F2_CTRL, 2, 0); - - -} diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Get_PowerStep01_Parameters.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Get_PowerStep01_Parameters.cs deleted file mode 100644 index ebe0dbf0f..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Get_PowerStep01_Parameters.cs +++ /dev/null @@ -1,227 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -//unmark Auto logging ! - -const Int32 x_POWERSTEP01_CONFIG = 0x1A; -const Int32 x_POWERSTEP01_STATUS = 0x1B; -const Int32 x_POWERSTEP01_GATECFG1 = 0x18; -const Int32 x_POWERSTEP01_GATECFG2 = 0x19; - -const Int32 x_ABS_POS = 0x01; -const Int32 x_EL_POS = 0x02; -const Int32 x_MARK = 0x03; -const Int32 x_SPEED = 0x04; -const Int32 x_ACC = 0x05; -const Int32 x_DEC = 0x06; -const Int32 x_MAX_SPEED = 0x07; -const Int32 x_MIN_SPEED = 0x08; -const Int32 x_FS_SPD = 0x15; -const Int32 x_KVAL_HOLD = 0x09; -const Int32 x_KVAL_RUN = 0x0A; -const Int32 x_KVAL_ACC = 0x0B; -const Int32 x_KVAL_DEC = 0x0C; -const Int32 x_INT_SPD = 0x0D; -const Int32 x_ST_SLP = 0x0E; -const Int32 x_FN_SLP_ACC = 0x0F; -const Int32 x_FN_SLP_DEC = 0x10; -const Int32 x_K_THERM = 0x11; -const Int32 x_ADC_OUT = 0x12; -const Int32 x_OCD_TH = 0x13; -const Int32 x_STALL_TH = 0x14; -const Int32 x_STEP_MODE = 0x16; -const Int32 x_ALARM_EN = 0x17; -const Int32 x_CONFIG = 0x18; -const Int32 x_STATUS = 0x19; -//------------------------------- -const Int32 x_GET_PARAM = 0x20; -//------------------------------- -const Int32 Max_Motor_ID = 25; - -string[] Motor_ID = new string[30]; - - -Motor_ID[0] ="DH_CLEANHEAD "; -Motor_ID[1] ="DH_CLEANMECH "; -Motor_ID[2] ="DH_LID "; -Motor_ID[3] ="DRYER_DRIVING"; -Motor_ID[4] ="DRYER_LID "; -Motor_ID[5] ="DRYER_LOADARM"; -Motor_ID[6] ="DISPENCER_1 "; -Motor_ID[7] ="DISPENCER_2 "; -Motor_ID[8] ="DISPENCER_3 "; -Motor_ID[9] ="DISPENCER_4 "; -Motor_ID[10]="DISPENCER_5 "; -Motor_ID[11]="DISPENCER_6 "; -Motor_ID[12]="DISPENCER_7 "; -Motor_ID[13]="DISPENCER_8 "; -Motor_ID[14]="SCREW "; -Motor_ID[15]="WINDER "; -Motor_ID[16]="LDANCER1 "; -Motor_ID[17]="LDANCER2 "; -Motor_ID[18]="LDRIVING "; -Motor_ID[19]="LLODING "; -Motor_ID[20]="LPIVOT "; -Motor_ID[21]="RDANCER "; -Motor_ID[22]="RDRIVING "; -Motor_ID[23]="RLOADARM "; -Motor_ID[24]="RLODING "; -Motor_ID[25]="SPARE1_1 "; -Motor_ID[26]="SPARE1_2 "; -Motor_ID[27]="SPARE2_1 "; -Motor_ID[28]="SPARE2_2 "; -Motor_ID[29]="SPARE3 "; - -public void OnExecute(StubManager stubManager) -{ - - var i = stubManager.ShowResponseWindow("Please Enter Motor ID:"); - - stubManager.Write("Motor_ID:\t\t "); - stubManager.Write(i); - stubManager.Write("\n"); - - stubManager.Write("ABS_POS:\t\t"); - var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ABS_POS)<<24, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("EL_POS:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_EL_POS)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("MARK:\t\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MARK)<<24, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("SPEED:\t\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_SPEED)<<24, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("ACC:\t\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ACC)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("DEC:\t\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_DEC)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("MAX_SPEED:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MAX_SPEED)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("MIN_SPEED:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MIN_SPEED)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("FS_SPD:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FS_SPD)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("KVAL\\TVAL_HOLD:\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_HOLD)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("KVAL\\TVAL_RUN:\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_RUN)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("KVAL\\TVAL_ACC:\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_ACC)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("KVAL\\TVAL_DEC:\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_DEC)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("INT_SPEED:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_INT_SPD)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("ST_SLP\\T_FAST:\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ST_SLP)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("FN_SLP_ACC\\TON_MIN:\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_ACC)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("FN_SLP_DEC\\TOFF_MIN:"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_DEC)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("K_THERM:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_K_THERM)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("ADC_OUT:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ADC_OUT)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("OCD_TH:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_OCD_TH)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("STALL_TH:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STALL_TH)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("STEP_MODE:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("ALARM_EN:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ALARM_EN)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("GATECFG1:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG1)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("GATECFG2:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG2)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("CONFIG:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_CONFIG)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("STATUS:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_STATUS)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Logger Temprature/Book4.xlsx b/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Logger Temprature/Book4.xlsx Binary files differdeleted file mode 100644 index ef3a94e64..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Logger Temprature/Book4.xlsx +++ /dev/null diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Logger Temprature/Copy of Book4.xlsx b/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Logger Temprature/Copy of Book4.xlsx Binary files differdeleted file mode 100644 index 6ea3df3ad..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Logger Temprature/Copy of Book4.xlsx +++ /dev/null diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Logger Temprature/Logger data.xlsx b/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Logger Temprature/Logger data.xlsx Binary files differdeleted file mode 100644 index 0d4bd4d8a..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Logger Temprature/Logger data.xlsx +++ /dev/null diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Motor_GMotor_Get_Param_Powerstep01_rev2.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Motor_GMotor_Get_Param_Powerstep01_rev2.cs deleted file mode 100644 index 505444080..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Motor_GMotor_Get_Param_Powerstep01_rev2.cs +++ /dev/null @@ -1,292 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -//unmark Auto logging ! - -//General Configuration -const Int32 x_ABS_POS = 0x01; -const Int32 x_EL_POS = 0x02; -const Int32 x_MARK = 0x03; -const Int32 x_SPEED = 0x04; -const Int32 x_ACC = 0x05; -const Int32 x_DEC = 0x06; -const Int32 x_MAX_SPEED = 0x07; -const Int32 x_MIN_SPEED = 0x08; -const Int32 x_ADC_OUT = 0x12; -const Int32 x_OCD_TH = 0x13; -const Int32 x_FS_SPD = 0x15; -const Int32 x_STEP_MODE = 0x16; -const Int32 x_ALARM_EN = 0x17; -const Int32 x_POWERSTEP01_GATECFG1 = 0x18; -const Int32 x_POWERSTEP01_GATECFG2 = 0x19; -const Int32 x_POWERSTEP01_CONFIG = 0x1A; -const Int32 x_POWERSTEP01_STATUS = 0x1B; -//VOLTAGE / CURRENT -const Int32 x_KTVAL_HOLD = 0x09; -const Int32 x_KTVAL_RUN = 0x0A; -const Int32 x_KTVAL_ACC = 0x0B; -const Int32 x_KTVAL_DEC = 0x0C; -const Int32 x_ST_SLP_T_FAST = 0x0E; -const Int32 x_FN_SLP_ACC_TON_MIN = 0x0F; -const Int32 x_FN_SLP_DEC_TOFF_MIN = 0x10; - -const Int32 x_INT_SPD = 0x0D;//voltage -const Int32 x_K_THERM = 0x11;//VOLTAGE -const Int32 x_STALL_TH = 0x14;//VOLTAGE - -//------------------------------- -const Int32 x_GET_PARAM = 0x20; -//------------------------------- -Int32 Start_index = 0; // start from motor - -const Int32 Max_Motor_ID = 25; - -string[] Motor_ID = new string[30]; - - -Motor_ID[0] ="DH_CLEANHEAD "; -Motor_ID[1] ="DH_CLEANMECH "; -Motor_ID[2] ="DH_LID "; -Motor_ID[3] ="DRYER_DRIVING"; -Motor_ID[4] ="DRYER_LID "; -Motor_ID[5] ="DRYER_LOADARM"; -Motor_ID[6] ="DISPENCER_1 "; -Motor_ID[7] ="DISPENCER_2 "; -Motor_ID[8] ="DISPENCER_3 "; -Motor_ID[9] ="DISPENCER_4 "; -Motor_ID[10]="DISPENCER_5 "; -Motor_ID[11]="DISPENCER_6 "; -Motor_ID[12]="DISPENCER_7 "; -Motor_ID[13]="DISPENCER_8 "; -Motor_ID[14]="SCREW "; -Motor_ID[15]="WINDER "; -Motor_ID[16]="LDANCER1 "; -Motor_ID[17]="LDANCER2 "; -Motor_ID[18]="LDRIVING "; -Motor_ID[19]="LLODING "; -Motor_ID[20]="LPIVOT "; -Motor_ID[21]="RDANCER "; -Motor_ID[22]="RDRIVING "; -Motor_ID[23]="RLOADARM "; -Motor_ID[24]="RLODING "; -Motor_ID[25]="SPARE1_1 "; -Motor_ID[26]="SPARE1_2 "; -Motor_ID[27]="SPARE2_1 "; -Motor_ID[28]="SPARE2_2 "; -Motor_ID[29]="SPARE3 "; - - - - -public void OnExecute(StubManager stubManager) -{ - Int32 i = 0; - - Int32 motname = 0; -//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000380 , 0x06b9); //7ff mati -//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000390 , 0x003f); -//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000550 , 0x0003); //ff mati -//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000b80 , 0x001f); - - for (i = Start_index; i < Max_Motor_ID; i++) - { - - if((i%8 ==0) ) - { - stubManager.Write("\n\n"); - stubManager.Write("MoTor\t\t\tMIN_SPEED\tMAX_SPEED\tSTEP_MODE\tACC\t\tDEC\t\tKTVAL_HOLD\tKTVAL_RUN\tTKVAL_ACC\tTKVAL_DEC\tOCD_TH\t\tSTALL_TH\tFS_SPD\n"); - stubManager.Write("------\t\t\t--------\t--------\t----------\t---\t\t---\t\t----------\t---------\t---------\t---------\t------\t\t--------\t------\n"); - } - //stubManager.Write(i); - - stubManager.Write(Motor_ID[i]); - stubManager.Write("\t\t"); - - var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MIN_SPEED)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MAX_SPEED)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ACC)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_DEC)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KTVAL_HOLD)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KTVAL_RUN)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KTVAL_ACC)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KTVAL_DEC)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_OCD_TH)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STALL_TH)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FS_SPD)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - stubManager.Write("\n\n"); - - } - - - - for (i = Start_index; i < Max_Motor_ID; i++) - { - - if((i%8 ==0) ) - { - stubManager.Write("\n\n"); - - stubManager.Write("MoTor\t\t\tINT_SPD\tST_SLP\t\tSLP_ACC_TON_MIN\tSLP_DEC_TOFF_MIN\n"); - stubManager.Write("-----\t\t\t-------\t------\t\t---------------\t----------------\n"); - } - - stubManager.Write(Motor_ID[i]); - -// stubManager.Write(i); - stubManager.Write("\t\t"); - - var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_INT_SPD)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ST_SLP_T_FAST)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_ACC_TON_MIN)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_DEC_TOFF_MIN)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - stubManager.Write("\n\n"); - - } - - - for (i = Start_index; i < Max_Motor_ID; i++) - { - - if((i%8 ==0) ) - { - stubManager.Write("\n\n"); - - stubManager.Write("MoTor\t\t\tPS01_CONFIG\t\tPS01_STATUS\t\tPS01_GATECFG1\t\tPS01_GATECFG2\n"); - stubManager.Write("-----\t\t\t------------\t\t-----------\t\t-------------\t\t------------\n"); - } - - stubManager.Write(Motor_ID[i]); - stubManager.Write("\t\t"); - - var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_CONFIG)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_STATUS)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG1)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG2)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n\n"); - - - } - - for (i = Start_index; i < Max_Motor_ID; i++) - { - - if((i%8 ==0) ) - { - stubManager.Write("\n\n"); - - stubManager.Write("MoTor\t\t\tABS_POS\tEL_POS\t\tMARK\t\tSPEED\t\tALARM_EN\tK_THERM\tADC_OUT\tDriver_Type\n"); - stubManager.Write("-----\t\t\t-------\t------\t\t----\t\t-----\t\t--------\t--------\t------\t\t---------\n"); - } - - stubManager.Write(Motor_ID[i]); - - stubManager.Write("\t\t"); - - var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ABS_POS)<<24, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_EL_POS)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MARK)<<24, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_SPEED)<<24, 0, 0); - stubManager.WriteHex((response.RecivedData * 1000.0 / 67108.0),4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ALARM_EN)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_K_THERM)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ADC_OUT)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - if( response.RecivedData > 0x15 && response.RecivedData < 0x1c ) - stubManager.Write("\t\tDual_Driver"); - else if ( response.RecivedData > 0x0b && response.RecivedData < 0x12 ) - stubManager.Write("\t\tVolage_Driver"); - else if ( response.RecivedData > 8 && response.RecivedData < 0x0a) - stubManager.Write("\t\tCurrent_Driver"); - else - stubManager.Write("\t\tNo_Driver"); - - stubManager.Write("\n\n"); - - } - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Motor_GMotor_Get_Param_Powerstep01_rev3.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Motor_GMotor_Get_Param_Powerstep01_rev3.cs deleted file mode 100644 index 384c079fa..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Motor_GMotor_Get_Param_Powerstep01_rev3.cs +++ /dev/null @@ -1,237 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -//unmark Auto logging ! - -//General Configuration -const Int32 x_ABS_POS = 0x01; -const Int32 x_EL_POS = 0x02; -const Int32 x_MARK = 0x03; -const Int32 x_SPEED = 0x04; -const Int32 x_ACC = 0x05; -const Int32 x_DEC = 0x06; -const Int32 x_MAX_SPEED = 0x07; -const Int32 x_MIN_SPEED = 0x08; -//VOLTAGE / CURRENT -const Int32 x_KTVAL_HOLD = 0x09; -const Int32 x_KTVAL_RUN = 0x0A; -const Int32 x_KTVAL_ACC = 0x0B; -const Int32 x_KTVAL_DEC = 0x0C; -const Int32 x_INT_SPD = 0x0D;//voltage -const Int32 x_ST_SLP_T_FAST = 0x0E; -const Int32 x_FN_SLP_ACC_TON_MIN = 0x0F; -const Int32 x_FN_SLP_DEC_TOFF_MIN = 0x10; -const Int32 x_K_THERM = 0x11;//VOLTAGE -const Int32 x_ADC_OUT = 0x12; -const Int32 x_OCD_TH = 0x13; -const Int32 x_STALL_TH = 0x14;//VOLTAGE -const Int32 x_FS_SPD = 0x15; -const Int32 x_STEP_MODE = 0x16; -const Int32 x_ALARM_EN = 0x17; -const Int32 x_POWERSTEP01_GATECFG1 = 0x18; -const Int32 x_POWERSTEP01_GATECFG2 = 0x19; -const Int32 x_POWERSTEP01_CONFIG = 0x1A; -const Int32 x_POWERSTEP01_STATUS = 0x1B; -//VOLTAGE / CURRENT - -//------------------------------- -const Int32 x_GET_PARAM = 0x20; -//------------------------------- -Int32 Start_index = 0; // start from motor - -const Int32 Max_Motor_ID = 25; - -string[] Motor_ID = new string[30]; - - -Motor_ID[0] ="DH_CLEANHEAD "; -Motor_ID[1] ="DH_CLEANMECH "; -Motor_ID[2] ="DH_LID "; -Motor_ID[3] ="DRYER_DRIVING"; -Motor_ID[4] ="DRYER_LID "; -Motor_ID[5] ="DRYER_LOADARM"; -Motor_ID[6] ="DISPENCER_1 "; -Motor_ID[7] ="DISPENCER_2 "; -Motor_ID[8] ="DISPENCER_3 "; -Motor_ID[9] ="DISPENCER_4 "; -Motor_ID[10]="DISPENCER_5 "; -Motor_ID[11]="DISPENCER_6 "; -Motor_ID[12]="DISPENCER_7 "; -Motor_ID[13]="DISPENCER_8 "; -Motor_ID[14]="SCREW "; -Motor_ID[15]="WINDER "; -Motor_ID[16]="LDANCER1 "; -Motor_ID[17]="LDANCER2 "; -Motor_ID[18]="LDRIVING "; -Motor_ID[19]="LLODING "; -Motor_ID[20]="LPIVOT "; -Motor_ID[21]="RDANCER "; -Motor_ID[22]="RDRIVING "; -Motor_ID[23]="RLOADARM "; -Motor_ID[24]="RLODING "; -Motor_ID[25]="SPARE1_1 "; -Motor_ID[26]="SPARE1_2 "; -Motor_ID[27]="SPARE2_1 "; -Motor_ID[28]="SPARE2_2 "; -Motor_ID[29]="SPARE3 "; - - - - -public void OnExecute(StubManager stubManager) -{ - Int32 i = 0; - - Int32 motname = 0; -//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000380 , 0x06b9); //7ff mati -//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000390 , 0x003f); -//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000550 , 0x0003); //ff mati -//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000b80 , 0x001f); - - -// stubManager.Write("\n\n"); - stubManager.Write("MoTor\tABS_POS\tEL_POS\tMARK\tSPEED\tACC\tDEC\tMAX_SPEED\tMIN_SPEED\tKTVAL_HOLD\tKTVAL_RUN\tTKVAL_ACC\tTKVAL_DEC\tINT_SPD\tT_FAST\t TON_MIN\tTOFF_MIN\tK_THERM\tADC_OUT\tOCD_TH\tSTALL_TH\tFS_SPD\tSTEP_MODE\tALARM_EN\tGATECFG1\tGATECFG2\tCONFIG\tSTATUS\n"); -// stubManager.Write("------\t\t\t--------\t--------\t----------\t---\t\t---\t\t----------\t---------\t---------\t---------\t------\t\t--------\t------\n"); - - - - for (i = Start_index; i < Max_Motor_ID; i++) - { - -// if((i%8 ==0) ) -// { -// } - //stubManager.Write(i); - - stubManager.Write(Motor_ID[i]); - stubManager.Write("\t\t"); - - var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ABS_POS)<<24, 0, 0); - stubManager.WriteHex(response.RecivedData,6); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_EL_POS)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t"); - - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MARK)<<24, 0, 0); - stubManager.WriteHex(response.RecivedData,6); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_SPEED)<<24, 0, 0); - stubManager.WriteHex(response.RecivedData,6); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ACC)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_DEC)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MAX_SPEED)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MIN_SPEED)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t"); - - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KTVAL_HOLD)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KTVAL_RUN)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KTVAL_ACC)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KTVAL_DEC)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_INT_SPD)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t"); - - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ST_SLP_T_FAST)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_ACC_TON_MIN)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_DEC_TOFF_MIN)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t"); - - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_K_THERM)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ADC_OUT)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_OCD_TH)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t"); - - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STALL_TH)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FS_SPD)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ALARM_EN)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG1)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG2)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_CONFIG)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_STATUS)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - - - - } - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Set_PowerStep01_Parameters.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Set_PowerStep01_Parameters.cs deleted file mode 100644 index 9571deb9e..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Set_PowerStep01_Parameters.cs +++ /dev/null @@ -1,230 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -//unmark Auto logging ! - -const Int32 x_POWERSTEP01_CONFIG = 0x1A; -const Int32 x_POWERSTEP01_STATUS = 0x1B; -const Int32 x_POWERSTEP01_GATECFG1 = 0x18; -const Int32 x_POWERSTEP01_GATECFG2 = 0x19; - -const Int32 x_ABS_POS = 0x01; -const Int32 x_EL_POS = 0x02; -const Int32 x_MARK = 0x03; -const Int32 x_SPEED = 0x04; -const Int32 x_ACC = 0x05; -const Int32 x_DEC = 0x06; -const Int32 x_MAX_SPEED = 0x07; -const Int32 x_MIN_SPEED = 0x08; -const Int32 x_FS_SPD = 0x15; -const Int32 x_KVAL_HOLD = 0x09; -const Int32 x_KVAL_RUN = 0x0A; -const Int32 x_KVAL_ACC = 0x0B; -const Int32 x_KVAL_DEC = 0x0C; -const Int32 x_INT_SPD = 0x0D; -const Int32 x_ST_SLP = 0x0E; -const Int32 x_FN_SLP_ACC = 0x0F; -const Int32 x_FN_SLP_DEC = 0x10; -const Int32 x_K_THERM = 0x11; -const Int32 x_ADC_OUT = 0x12; -const Int32 x_OCD_TH = 0x13; -const Int32 x_STALL_TH = 0x14; -const Int32 x_STEP_MODE = 0x16; -const Int32 x_ALARM_EN = 0x17; -const Int32 x_CONFIG = 0x18; -const Int32 x_STATUS = 0x19; -//------------------------------- -const Int32 x_GET_PARAM = 0x20; -const Int32 x_SET_PARAM = 0x00; - -//------------------------------- -const Int32 Max_Motor_ID = 25; - -string[] Motor_ID = new string[30]; - - -Motor_ID[0] ="DH_CLEANHEAD "; -Motor_ID[1] ="DH_CLEANMECH "; -Motor_ID[2] ="DH_LID "; -Motor_ID[3] ="DRYER_DRIVING"; -Motor_ID[4] ="DRYER_LID "; -Motor_ID[5] ="DRYER_LOADARM"; -Motor_ID[6] ="DISPENCER_1 "; -Motor_ID[7] ="DISPENCER_2 "; -Motor_ID[8] ="DISPENCER_3 "; -Motor_ID[9] ="DISPENCER_4 "; -Motor_ID[10]="DISPENCER_5 "; -Motor_ID[11]="DISPENCER_6 "; -Motor_ID[12]="DISPENCER_7 "; -Motor_ID[13]="DISPENCER_8 "; -Motor_ID[14]="SCREW "; -Motor_ID[15]="WINDER "; -Motor_ID[16]="LDANCER1 "; -Motor_ID[17]="LDANCER2 "; -Motor_ID[18]="LDRIVING "; -Motor_ID[19]="LLODING "; -Motor_ID[20]="LPIVOT "; -Motor_ID[21]="RDANCER "; -Motor_ID[22]="RDRIVING "; -Motor_ID[23]="RLOADARM "; -Motor_ID[24]="RLODING "; -Motor_ID[25]="SPARE1_1 "; -Motor_ID[26]="SPARE1_2 "; -Motor_ID[27]="SPARE2_1 "; -Motor_ID[28]="SPARE2_2 "; -Motor_ID[29]="SPARE3 "; - -public void OnExecute(StubManager stubManager) -{ - - var i = stubManager.ShowResponseWindow("Please Enter Motor ID:"); - - stubManager.Write("Motor_ID:\t\t "); - stubManager.Write(i); - stubManager.Write("\n"); -/* - stubManager.Write("ABS_POS:\t\t"); - var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ABS_POS)<<24, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("EL_POS:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_EL_POS)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("MARK:\t\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MARK)<<24, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("SPEED:\t\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_SPEED)<<24, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("ACC:\t\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ACC)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("DEC:\t\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_DEC)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("MAX_SPEED:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MAX_SPEED)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("MIN_SPEED:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MIN_SPEED)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("FS_SPD:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FS_SPD)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("KVAL\\TVAL_HOLD:\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_HOLD)<<8+0x5, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); -*/ - stubManager.Write("KVAL\\TVAL_RUN:\t"); - var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_RUN)<<8+0x20 , 0, 0) ; //3v - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("KVAL\\TVAL_ACC:\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_ACC)<<8+0x20 , 0, 0); //3v - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("KVAL\\TVAL_DEC:\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_DEC)<<8+0x20 , 0, 0); //3v - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); -/* - stubManager.Write("INT_SPEED:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_INT_SPD)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); -*/ - stubManager.Write("ST_SLP\\T_FAST:\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ST_SLP)<<8, 0, 0); //0 - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("FN_SLP_ACC\\TON_MIN:\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_ACC)<<8, 0, 0); //0 - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("FN_SLP_DEC\\TOFF_MIN:"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_DEC)<<8, 0, 0); //00 - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); -/* - stubManager.Write("K_THERM:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_K_THERM)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("ADC_OUT:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ADC_OUT)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("OCD_TH:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_OCD_TH)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("STALL_TH:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STALL_TH)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); -*/ - stubManager.Write("STEP_MODE:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STEP_MODE)<<8+0x07, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); -/* - stubManager.Write("ALARM_EN:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ALARM_EN)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("GATECFG1:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG1)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("GATECFG2:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG2)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("CONFIG:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_CONFIG)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("STATUS:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_STATUS)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - */ -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/RTFU/RTFU_JIG.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/RTFU/RTFU_JIG.cs deleted file mode 100644 index 9ffd0d9d5..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/RTFU/RTFU_JIG.cs +++ /dev/null @@ -1,537 +0,0 @@ -using System; -using System.Text; -using System.IO; -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.Stubs; -using Tango.Stubs; -//-------------------------------------------------------------------------------- -//-------------------------------------------------------------------------------- -//string path1="P:\\Scripts\\Assemblies\\RTFU\\RTFULog\\"; -//string path2="C:\\RTFULog\\"; - -//string File_Name1 ; -//string Status; - -//-------------------DEFINE Motors------------------ -const Int32 RDANCER_Motor = 21; -const Int32 RDRIVING_Motor = 22; -const Int32 RLOADING_Motor = 24; - -//-------------------DEFINE Motors Parameters------------------ - -const Int32 F1_MOTO_RLOADING_TX1 = 0x60000202; -const Int32 F1_MOTO_RLOADING_TX0 = 0x60000200; -const Int32 F1_MOTO_RLOADING_RX1 = 0x60000206; -const Int32 F1_MOTO_RLOADING_RX0 = 0x60000204; - -//-------------------DEFINE Limit Switch--------------- -const Int32 F1_LS_03_Direct =0x60000040; - -const Int32 F1_LS_RLOADMOTOR_UP = 0x0040 ; -const Int32 F1_LS_RLOADMOTOR_DN = 0x0080 ; -const Int32 F1_LS_RDANCER_UP = 0x0100; -const Int32 F1_LS_RDANCER_DOWN = 0x0200; -const Int32 F1_LS_RLOADRAM_DOWN = 0x0020; - -const Int32 F1_RDANCER_ROTENC_DATA_p_RX_lsb = 0x600001a0; -const Int32 F1_RDANCER_ROTENC_DATA_p_RX_msb = 0x600001a2; -const Int32 F1_RDANCER_ROTENC_DATA_p_TX = 0x600001ae; - - -const int UNIT_UNDER_TEST=3+1+5; -//-------------------------------------------------------------------------------- -string path1="P:\\Scripts\\Assemblies\\RTFU\\RTFULog\\"; -string path2="C:\\RTFULog\\"; - -string File_Name1 ; -string Status; -//--------------------------- - -string [,] Units_status = new string[UNIT_UNDER_TEST,2] { - {"LS_RLOADMOTOR_Up","Not Test"}, //0 - {"LS_RLOADMOTOR_DOWN","Not Test"}, //1 - {"RLOADING_Motor","Not Test"}, //2 - {"DRIVING_Motor","Not Test"}, //3 - {"LS_RDANCER_DOWN","Not Test"}, //4 - {"LS_RDANCER_UP","Not Test"}, //5 - {"LS_RLOADRAM_DOWN","Not Test"}, //6 - {"RDANCER_Motor","Not Test"}, //7 - {"RDANCER_ROTENC","Not Test"}, //8 - }; - - - -//----------------------------------------------------- -string RTFU_Sn; -//-------------------------------------------------------------------------------- - -public void OnExecute(StubManager stubManager) -{ -string path=""; - Form form1 = new Form(); - -// Set the caption bar text of the form. - form1.TopMost = true; - form1.Text = "RTFU Test"; - form1.FormBorderStyle = FormBorderStyle.FixedDialog; - form1.MaximizeBox = false; - form1.MinimizeBox = false; - form1.StartPosition = FormStartPosition.CenterScreen; - form1.AutoSize = true; - form1.AutoSizeMode = AutoSizeMode.GrowAndShrink; -// Create buttons to Run. - Button button1 = new Button () - { - Width = 100, - Height = 100, - }; - button1.Text = "Run"; - button1.Location = new Point (40, 100); - form1.Controls.Add(button1); -//-----RTFU Serial Number ----------- - - Label Label1 = new Label () - { - Width = 150, - Height = 20, - Text =" RTFU S/N" - }; - Label1.Location = new Point (30, 10); - form1.Controls.Add(Label1); - TextBox TextBox1 = new TextBox () - { - Width = 100, - Height = 10, - Text ="" - }; - TextBox1.Location = new Point (40, 40); - form1.Controls.Add(TextBox1); - //----------LOCATION---------- - - Label Label3 = new Label () - { - Width = 150, - Height = 20, - Text ="LOCATION" - }; -Label3.Location = new Point (350, 10); - form1.Controls.Add(Label3); - - - -TextBox TextBox3 = new TextBox () - { - Width = 100, - Height = 10, - Text ="" - }; -TextBox3.Location = new Point (360, 40); - form1.Controls.Add(TextBox3); - -//-------------------------------------------------------------------------------- - - stubManager.Write("Counter is 2 \n"); - - button1.Click += (_,__) => - - { - if (!Directory.Exists(path1)) - { - path=path2; - if (!Directory.Exists(path2)) - Directory.CreateDirectory(path2); - } - else - path=path1; - - File_Name1=path + TextBox1.Text +"_RTFU_" + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".log" ; - - - stubManager.Write(File_Name1 +"\n"); - stubManager.WriteToFile(File_Name1,DateTime.Now +" " ); - stubManager.Write(DateTime.Now +"\n" ); - - stubManager.AppendToFile(File_Name1,"RTFU Test Report" ); - stubManager.Write("RTFU Test Report\n" ); - - stubManager.AppendToFile(File_Name1,"RTFU S/N: \t" + TextBox1.Text ); - stubManager.Write("RTFU S/N:" + TextBox1.Text +"\n" ); - - - stubManager.AppendToFile(File_Name1,"Location:\t" + TextBox3.Text ); - stubManager.Write("Location:" + TextBox3.Text +"\n" ); - - - - Label Label5 = new Label () - { - Width = 120, - Height =100, - Text = "" - }; - Label5.Location = new Point (300, 100); - Label5.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; - - Label5.Text="Pros"; - Label5.Font = new Font("Arial", 24,FontStyle.Bold); - form1.Controls.Add(Label5); - - -//------------------------------- start test ----------- - Test_RLOADING_RTFU(); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading high z - Thread.Sleep(100); - Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x14000000); //set kval ran to 0x14,0.65A - - Test_RDRIVING_RTFU(); - Test_DANCER_RTFU(); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RDANCER_Motor, 3); //hold Rloading high z - - Status=write_to_file(); - - Label5.Text=Status; - TextBox1.Text=""; - }; - - form1.ShowDialog(); - - return ; - } - //------------------------------------ -int Test_RLOADING_RTFU() -{ - int temp=1; - int counter; - - Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x2c000000); //set kval ran to 0x2c- 1.3A - Thread.Sleep(100); - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RLOADING_Motor, true,100); //move Rloading down - Thread.Sleep(3000); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading high z - Thread.Sleep(1000); -//------------------------------------------ check F1_LS_RLOADMOTOR_up------------------------------------------------ - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //read LS - if ((response.Value & F1_LS_RLOADMOTOR_UP) !=F1_LS_RLOADMOTOR_UP ) //if LS_RLOADMOTOR_UP is up then error - { - DialogResult result = MessageBox.Show("Did RLOADIN MOTOR Move?", "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.Yes) - { - Units_status[0,1]="Fail"; - stubManager.Write("LS_RLOADMOTOR_UP\tFail\n"); - return 0; - } - else - { - Units_status[2,1]="Fail"; - stubManager.Write("RLOADMOTOR\tFail\n"); - return 0; - } - } - -//----------------------------------------- mov RLOADING up ------------------------------------------------- - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RLOADING_Motor,false,100); //move Rloading up - counter =0; - while ( counter < 150) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if LS_RLOADMOTOR_UP is up then move down - if ((response.Value & F1_LS_RLOADMOTOR_UP) != F1_LS_RLOADMOTOR_UP ) - counter=250; - - Thread.Sleep(100); - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading high z - - if (counter == 150) - { - Units_status[0,1]="Fail"; - stubManager.Write("LS_RLOADMOTOR_UP\tFail\n"); - return 0; - } - DialogResult result1 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo); - if(result1 == DialogResult.No) - { - Units_status[0,1]="Fail"; - stubManager.Write("LS_RLOADMOTOR_UP Not calibrate\n"); - return 0; - } - Units_status[0,1]="Pass"; - Units_status[2,1]="Pass"; - -//------------------------------------------ check F1_LS_RLOADMOTOR_DN------------------------------------------------ - - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //read LS - - if ((response.Value & F1_LS_RLOADMOTOR_DN) !=F1_LS_RLOADMOTOR_DN ) //if LS_RLOADMOTOR_DN is up then error - { - Units_status[1,1]="Fail"; - stubManager.Write("LS_RLOADMOTOR_DN\tFail\n"); - return 0; - } -//------------------------------------------ mov RLOADING dn ------------------------------------------------ - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RLOADING_Motor, true,100); //move Rloading down - counter =0; - while ( counter < 150) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if LS_RLOADMOTOR_UP is up then move down - if ((response.Value & F1_LS_RLOADMOTOR_DN) != F1_LS_RLOADMOTOR_DN ) - counter=250; - - Thread.Sleep(100); - } - - if (counter == 150) - { - Units_status[1,1]="Fail"; - stubManager.Write("LS_RLOADMOTOR_DN\tFail\n"); - return 0; - } - DialogResult result2 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo); - if(result2 == DialogResult.No) - { - Units_status[1,1]="Fail"; - stubManager.Write("LS_RLOADMOTOR_DN Not calibrate\n"); - return 0; - } - Units_status[1,1]="Pass"; - stubManager.Write("RLOADMOTOR\tPass\n"); - - return 1 ; - -} - -//---------------------------------- - -Int32 ReadEncoder() -{ - Int32 temp; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F1_RDANCER_ROTENC_DATA_p_TX, 0x0000); //triggers a TX transmission - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_RDANCER_ROTENC_DATA_p_RX_lsb); - var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_RDANCER_ROTENC_DATA_p_RX_msb); - - temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff)); - - - return temp; -} -//-------------------------------------------------------------------------------- -int Test_DANCER_RTFU() -{ - int counter; - Int32 temp; - Int32 temp1; - -//------------------------------------------ check F1_LS_RDANCER_DOWN ------------------------------------------------ - - MessageBox.Show("Make sure RDANCER Doun"); - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //read LS - if ((response.Value & F1_LS_RDANCER_DOWN) !=F1_LS_RDANCER_DOWN ) //if F1_LS_RDANCER_DOWN is up then error - { - Units_status[4,1]="Fail"; - stubManager.Write("LS_RDANCER_DOWN\tFail\n"); - return 0; - } -//----------------------------------------- mov RDANCER_Motor up and check F1_LS_RDANCER_DOWN ------------------------------------------------- - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RDANCER_Motor,true,10); //move Rloading up - counter =0; - while ( counter < 150) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if LS_RLOADMOTOR_UP is up then move down - if ((response.Value & F1_LS_RDANCER_DOWN) != F1_LS_RDANCER_DOWN ) - counter=250; - - Thread.Sleep(100); - } - if (counter == 150) - { - Units_status[4,1]="Fail"; - stubManager.Write("LS_RDANCER_DOWN\tFail\n"); - return 0; - } - Units_status[4,1]="Pass"; - stubManager.Write("LS_RDANCER_DOWN\tPass\n"); - -//----------------------------------------- check F1_LS_RDANCER_UP ------------------------------------------------- - - if ((response.Value & F1_LS_RDANCER_UP) !=F1_LS_RDANCER_UP ) //if F1_LS_RDANCER_UP is up then error - { - Units_status[5,1]="Fail"; - stubManager.Write("LS_RDANCER_UP\tFail\n"); - return 0; - } - counter =0; - while ( counter < 150) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if F1_LS_RDANCER_UP is up then move down - if ((response.Value & F1_LS_RDANCER_UP) != F1_LS_RDANCER_UP ) - counter=250; - - Thread.Sleep(100); - } - if (counter == 150) - { - Units_status[5,1]="Fail"; - stubManager.Write("LS_RDANCER_UP\tFail\n"); - return 0; - } - Units_status[5,1]="Pass"; - stubManager.Write("LS_RDANCER_UP\tPass\n"); - -//----------------------------------------- check F1_LS_RLOADRAM_DOWN ------------------------------------------------- - - if ((response.Value & F1_LS_RLOADRAM_DOWN) !=F1_LS_RLOADRAM_DOWN ) //if F1_LS_RLOADRAM_DOWN is up then error - { - Units_status[6,1]="Fail"; - stubManager.Write("LS_RLOADRAM_DOWN\tFail\n"); - return 0; - } - counter =0; - while ( counter < 150) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if F1_LS_RLOADRAM_DOWN is up then move down - if ((response.Value & F1_LS_RLOADRAM_DOWN) != F1_LS_RLOADRAM_DOWN ) - counter=250; - - Thread.Sleep(100); - } - if (counter == 150) - { - Units_status[6,1]="Fail"; - stubManager.Write("LS_RLOADRAM_DOWN\tFail\n"); - return 0; - } - Units_status[6,1]="Pass"; - stubManager.Write("LS_RLOADRAM_DOWN\tPass\n"); - -//----------------------------------------- mov RDANCER_Motor down and check rdancer encoder ------------------------------------------------- - temp= ReadEncoder(); - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RDANCER_Motor,false,10); //move Rloading down - counter =0; - while ( counter < 150) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if LS_RLOADMOTOR_UP is up then move down - if ((response.Value & F1_LS_RDANCER_DOWN) != F1_LS_RDANCER_DOWN ) - counter=250; - - Thread.Sleep(100); - } - if (counter == 150) - { - Units_status[4,1]="Fail"; - stubManager.Write("LS_RDANCER_DOWN\tFail\n"); - return 0; - } - Units_status[7,1]="Pass"; - stubManager.Write("RDANCER_Motor\tPass\n"); - - temp1= ReadEncoder(); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RDANCER_Motor, 3); //hold Rloading high z - - stubManager.Write("temp="+temp + "\temp1="+temp1 +"\n"); - - DialogResult result = MessageBox.Show("SSI Dancer led is Green(not blinking)?", "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.No) - { - Units_status[8,1]="Fail"; - stubManager.Write("RDANCER_SSI\tFail\n"); - return 0; - } - - if (temp>temp1) - temp1=temp1+0x4000; - - temp1=temp1-temp; - if ((temp1> 15000) || (temp1 <1000)) - { - Units_status[8,1]="Fail"; - stubManager.Write("RDANCER_SSI\tFail\n"); - return 0; - } - Units_status[8,1]="Pass"; - stubManager.Write("RDANCER_SSI\tPass\n"); - - return 1; -} - - -//------------------------------------------------------------- -int Test_RDRIVING_RTFU() -{ - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RDRIVING_Motor, true,200); //move Rdriving clockwise - stubManager.Write("RDRIVING_Motor Motor rotate \n "); - - DialogResult result = MessageBox.Show("Are RDRIVING Motor rotate?", "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.No) - { - Units_status[3,1]="Fail"; - stubManager.Write("RDRIVING Motor not rotate\n"); - } - else - { - Units_status[3,1]="Pass"; - stubManager.Write("RDRIVING Motor rotate\n"); - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RDRIVING_Motor,3); //stop motor - - return 0; -} - - - -//-------------------------------------------------------------------------------- -int Motor_SetParam(Int32 HighAdr, Int32 LowAdr, Int32 ParaAddr, uint ParaData1) -{ - - Int32 Temp = 0; - Temp = (ParaAddr << 8 ) + ( (Int32) ParaData1 >> 24); - - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,HighAdr, (Temp & 0xffff)); - Temp = ((Int32)ParaData1 >> 8) & 0xffff; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,LowAdr, (Temp)); - - return 1; -} - //------------------------------------ -string write_to_file() -{ - stubManager.Write("write_to_file\n"); - -string Stemp="Pass"; - for (int i=0;i<UNIT_UNDER_TEST;i++) - { - stubManager.AppendToFile(File_Name1,Units_status[i,0]+"\t" + Units_status[i,1] ); - stubManager.Write(Units_status[i,0]+"\t" + Units_status[i,1]+"\n" ); - - if ((Units_status[i,1]=="Fail")||(Units_status[i,1]=="Not Test")) - Stemp="Fail"; - } - if (Stemp=="Fail") - { - stubManager.AppendToFile(File_Name1,"-------------RTFU Fail ------------ "); - stubManager.Write("-------------RTFU Fail ------------ "); - } - else - { - stubManager.AppendToFile(File_Name1,"-------------RTFU Pass ------------ )"); - stubManager.Write("-------------RTFU Pass ------------ "); - } - - return Stemp; - -} - diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/RTFU/RTFU_JIG1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/RTFU/RTFU_JIG1.cs deleted file mode 100644 index 500e153c4..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/RTFU/RTFU_JIG1.cs +++ /dev/null @@ -1,552 +0,0 @@ -using System; -using System.Text; -using System.IO; -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.Stubs; -using Tango.Stubs; -//-------------------------------------------------------------------------------- -//-------------------------------------------------------------------------------- -//string path1="P:\\Scripts\\Assemblies\\RTFU\\RTFULog\\"; -//string path2="C:\\RTFULog\\"; - -//string File_Name1 ; -//string Status; - -//-------------------DEFINE Motors------------------ -const Int32 RDANCER_Motor = 21; -const Int32 RDRIVING_Motor = 22; -const Int32 RLOADING_Motor = 24; - -//-------------------DEFINE Motors Parameters------------------ - -const Int32 F1_MOTO_RLOADING_TX1 = 0x60000202; -const Int32 F1_MOTO_RLOADING_TX0 = 0x60000200; -const Int32 F1_MOTO_RLOADING_RX1 = 0x60000206; -const Int32 F1_MOTO_RLOADING_RX0 = 0x60000204; - -//-------------------DEFINE Limit Switch--------------- -const Int32 F1_LS_03_Direct =0x60000040; - -const Int32 F1_LS_RLOADMOTOR_UP = 0x0040 ; -const Int32 F1_LS_RLOADMOTOR_DN = 0x0080 ; -const Int32 F1_LS_RDANCER_UP = 0x0100; -const Int32 F1_LS_RDANCER_DOWN = 0x0200; -const Int32 F1_LS_RLOADRAM_DOWN = 0x0020; - -const Int32 F1_RDANCER_ROTENC_DATA_p_RX_lsb = 0x600001a0; -const Int32 F1_RDANCER_ROTENC_DATA_p_RX_msb = 0x600001a2; -const Int32 F1_RDANCER_ROTENC_DATA_p_TX = 0x600001ae; - - -const int UNIT_UNDER_TEST=3+1+5; -//-------------------------------------------------------------------------------- -string path1="P:\\Scripts\\Assemblies\\RTFU\\RTFULog\\"; -string path2="C:\\RTFULog\\"; - -string File_Name1 ; -string Status; -//--------------------------- - -string [,] Units_status = new string[UNIT_UNDER_TEST,2] { - {"LS_RLOADMOTOR_Up","Not Test"}, //0 - {"LS_RLOADMOTOR_DOWN","Not Test"}, //1 - {"RLOADING_Motor","Not Test"}, //2 - {"DRIVING_Motor","Not Test"}, //3 - {"LS_RDANCER_DOWN","Not Test"}, //4 - {"LS_RDANCER_UP","Not Test"}, //5 - {"LS_RLOADRAM_DOWN","Not Test"}, //6 - {"RDANCER_Motor","Not Test"}, //7 - {"RDANCER_ROTENC","Not Test"}, //8 - }; - - - -//----------------------------------------------------- -string RTFU_Sn; -//-------------------------------------------------------------------------------- - -public void OnExecute(StubManager stubManager) -{ -string path=""; - Form form1 = new Form(); - Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x14000000); //set kval ran to 0x14,0.65A - -// Set the caption bar text of the form. - form1.TopMost = true; - form1.Text = "RTFU Test"; - form1.FormBorderStyle = FormBorderStyle.FixedDialog; - form1.MaximizeBox = false; - form1.MinimizeBox = false; - form1.StartPosition = FormStartPosition.CenterScreen; - form1.AutoSize = true; - form1.AutoSizeMode = AutoSizeMode.GrowAndShrink; -// Create buttons to Run. - Button button1 = new Button () - { - Width = 100, - Height = 100, - }; - button1.Text = "Run"; - button1.Location = new Point (40, 100); - form1.Controls.Add(button1); -//-----RTFU Serial Number ----------- - - Label Label1 = new Label () - { - Width = 150, - Height = 20, - Text =" RTFU S/N" - }; - Label1.Location = new Point (30, 10); - form1.Controls.Add(Label1); - TextBox TextBox1 = new TextBox () - { - Width = 100, - Height = 10, - Text ="" - }; - TextBox1.Location = new Point (40, 40); - form1.Controls.Add(TextBox1); - //----------LOCATION---------- - - Label Label3 = new Label () - { - Width = 150, - Height = 20, - Text ="LOCATION" - }; -Label3.Location = new Point (350, 10); - form1.Controls.Add(Label3); - - - -TextBox TextBox3 = new TextBox () - { - Width = 100, - Height = 10, - Text ="" - }; -TextBox3.Location = new Point (360, 40); - form1.Controls.Add(TextBox3); - - - - - Label Label5 = new Label () - { - Width = 120, - Height =100, - Text = "" - }; - Label5.Location = new Point (300, 100); - Label5.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; - - Label5.Text=""; - Label5.Font = new Font("Arial", 24,FontStyle.Bold); - form1.Controls.Add(Label5); - - - - -//-------------------------------------------------------------------------------- - - stubManager.Write("Counter is 2 \n"); - - button1.Click += (_,__) => - - { - - Label5.Text="Pros"; - - if (!Directory.Exists(path1)) - { - path=path2; - if (!Directory.Exists(path2)) - Directory.CreateDirectory(path2); - } - else - path=path1; - - File_Name1=path + TextBox1.Text +"_RTFU_" + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".log" ; - - - stubManager.Write(File_Name1 +"\n"); - stubManager.WriteToFile(File_Name1,DateTime.Now +" " ); - stubManager.Write(DateTime.Now +"\n" ); - - stubManager.AppendToFile(File_Name1,"RTFU Test Report" ); - stubManager.Write("RTFU Test Report\n" ); - - stubManager.AppendToFile(File_Name1,"RTFU S/N: \t" + TextBox1.Text ); - stubManager.Write("RTFU S/N:" + TextBox1.Text +"\n" ); - - - stubManager.AppendToFile(File_Name1,"Location:\t" + TextBox3.Text ); - stubManager.Write("Location:" + TextBox3.Text +"\n" ); - - -//------------------------------- start test ----------- - Test_RLOADING_RTFU(); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading high z - Thread.Sleep(100); - Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x14000000); //set kval ran to 0x14,0.65A - - Test_RDRIVING_RTFU(); - Test_DANCER_RTFU(); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RDANCER_Motor, 3); //hold Rloading high z - - Status=write_to_file(); - stubManager.Write(Status +"\n"); - - Label5.Text=Status; - TextBox1.Text=""; - }; - - form1.ShowDialog(); - - return ; - } - //------------------------------------ -int Test_RLOADING_RTFU() -{ - int temp=1; - int counter; - - Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x2c000000); //set kval ran to 0x2c- 1.3A - Thread.Sleep(100); - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RLOADING_Motor, true,200); //move Rloading down - Thread.Sleep(3000); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading high z - Thread.Sleep(1000); -//------------------------------------------ check F1_LS_RLOADMOTOR_up------------------------------------------------ - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //read LS - if ((response.Value & F1_LS_RLOADMOTOR_UP) !=F1_LS_RLOADMOTOR_UP ) //if LS_RLOADMOTOR_UP is up then error - { - DialogResult result = MessageBox.Show("Did RLOADIN MOTOR Move?", "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.Yes) - { - Units_status[0,1]="Fail"; - stubManager.Write("LS_RLOADMOTOR_UP\tFail\n"); - return 0; - } - else - { - Units_status[2,1]="Fail"; - stubManager.Write("RLOADMOTOR\tFail\n"); - return 0; - } - } - -//----------------------------------------- mov RLOADING up ------------------------------------------------- - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RLOADING_Motor,false,200); //move Rloading up - counter =0; - while ( counter < 150) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if LS_RLOADMOTOR_UP is up then move down - if ((response.Value & F1_LS_RLOADMOTOR_UP) != F1_LS_RLOADMOTOR_UP ) - counter=250; - - Thread.Sleep(100); - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading high z - - if (counter == 150) - { - Units_status[0,1]="Fail"; - stubManager.Write("LS_RLOADMOTOR_UP\tFail\n"); - return 0; - } - DialogResult result1 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo); - if(result1 == DialogResult.No) - { - Units_status[0,1]="Fail"; - stubManager.Write("LS_RLOADMOTOR_UP Not calibrate\n"); - return 0; - } - Units_status[0,1]="Pass"; - Units_status[2,1]="Pass"; - -//------------------------------------------ check F1_LS_RLOADMOTOR_DN------------------------------------------------ - - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //read LS - - if ((response.Value & F1_LS_RLOADMOTOR_DN) !=F1_LS_RLOADMOTOR_DN ) //if LS_RLOADMOTOR_DN is up then error - { - Units_status[1,1]="Fail"; - stubManager.Write("LS_RLOADMOTOR_DN\tFail\n"); - return 0; - } -//------------------------------------------ mov RLOADING dn ------------------------------------------------ - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RLOADING_Motor, true,200); //move Rloading down - counter =0; - while ( counter < 150) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if LS_RLOADMOTOR_UP is up then move down - if ((response.Value & F1_LS_RLOADMOTOR_DN) != F1_LS_RLOADMOTOR_DN ) - counter=250; - - Thread.Sleep(100); - } - - if (counter == 150) - { - Units_status[1,1]="Fail"; - stubManager.Write("LS_RLOADMOTOR_DN\tFail\n"); - return 0; - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading high z - - DialogResult result2 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo); - if(result2 == DialogResult.No) - { - Units_status[1,1]="Fail"; - stubManager.Write("LS_RLOADMOTOR_DN Not calibrate\n"); - return 0; - } - Units_status[1,1]="Pass"; - stubManager.Write("RLOADMOTOR\tPass\n"); - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RLOADING_Motor, true,200); //move Rloading down - Thread.Sleep(2000); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading high z - - return 1 ; - -} - -//---------------------------------- - -Int32 ReadEncoder() -{ - Int32 temp; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F1_RDANCER_ROTENC_DATA_p_TX, 0x0000); //triggers a TX transmission - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_RDANCER_ROTENC_DATA_p_RX_lsb); - var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_RDANCER_ROTENC_DATA_p_RX_msb); - - temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff)); - - - return temp; -} -//-------------------------------------------------------------------------------- -int Test_DANCER_RTFU() -{ - int counter; - Int32 temp; - Int32 temp1; - -//------------------------------------------ check F1_LS_RDANCER_DOWN ------------------------------------------------ - - MessageBox.Show("Make sure RDANCER Doun"); - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //read LS - if ((response.Value & F1_LS_RDANCER_DOWN) !=F1_LS_RDANCER_DOWN ) //if F1_LS_RDANCER_DOWN is up then error - { - Units_status[4,1]="Fail"; - stubManager.Write("LS_RDANCER_DOWN\tFail\n"); - return 0; - } -//----------------------------------------- mov RDANCER_Motor up and check F1_LS_RDANCER_DOWN ------------------------------------------------- - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RDANCER_Motor,true,10); //move Rloading up - counter =0; - while ( counter < 150) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if LS_RLOADMOTOR_UP is up then move down - if ((response.Value & F1_LS_RDANCER_DOWN) != F1_LS_RDANCER_DOWN ) - counter=250; - - Thread.Sleep(100); - } - if (counter == 150) - { - Units_status[4,1]="Fail"; - stubManager.Write("LS_RDANCER_DOWN\tFail\n"); - return 0; - } - Units_status[4,1]="Pass"; - stubManager.Write("LS_RDANCER_DOWN\tPass\n"); - -//----------------------------------------- check F1_LS_RDANCER_UP ------------------------------------------------- - - if ((response.Value & F1_LS_RDANCER_UP) !=F1_LS_RDANCER_UP ) //if F1_LS_RDANCER_UP is up then error - { - Units_status[5,1]="Fail"; - stubManager.Write("LS_RDANCER_UP\tFail\n"); - return 0; - } - counter =0; - while ( counter < 150) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if F1_LS_RDANCER_UP is up then move down - if ((response.Value & F1_LS_RDANCER_UP) != F1_LS_RDANCER_UP ) - counter=250; - - Thread.Sleep(100); - } - if (counter == 150) - { - Units_status[5,1]="Fail"; - stubManager.Write("LS_RDANCER_UP\tFail\n"); - return 0; - } - Units_status[5,1]="Pass"; - stubManager.Write("LS_RDANCER_UP\tPass\n"); - -//----------------------------------------- check F1_LS_RLOADRAM_DOWN ------------------------------------------------- - - if ((response.Value & F1_LS_RLOADRAM_DOWN) !=F1_LS_RLOADRAM_DOWN ) //if F1_LS_RLOADRAM_DOWN is up then error - { - Units_status[6,1]="Fail"; - stubManager.Write("LS_RLOADRAM_DOWN\tFail\n"); - return 0; - } - counter =0; - while ( counter < 150) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if F1_LS_RLOADRAM_DOWN is up then move down - if ((response.Value & F1_LS_RLOADRAM_DOWN) != F1_LS_RLOADRAM_DOWN ) - counter=250; - - Thread.Sleep(100); - } - if (counter == 150) - { - Units_status[6,1]="Fail"; - stubManager.Write("LS_RLOADRAM_DOWN\tFail\n"); - return 0; - } - Units_status[6,1]="Pass"; - stubManager.Write("LS_RLOADRAM_DOWN\tPass\n"); - -//----------------------------------------- mov RDANCER_Motor down and check rdancer encoder ------------------------------------------------- - temp= ReadEncoder(); - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RDANCER_Motor,false,10); //move Rloading down - counter =0; - while ( counter < 150) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if LS_RLOADMOTOR_UP is up then move down - if ((response.Value & F1_LS_RDANCER_DOWN) != F1_LS_RDANCER_DOWN ) - counter=250; - - Thread.Sleep(100); - } - if (counter == 150) - { - Units_status[4,1]="Fail"; - stubManager.Write("LS_RDANCER_DOWN\tFail\n"); - return 0; - } - Units_status[7,1]="Pass"; - stubManager.Write("RDANCER_Motor\tPass\n"); - - temp1= ReadEncoder(); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RDANCER_Motor, 3); //hold Rloading high z - - stubManager.Write("temp="+temp + "\temp1="+temp1 +"\n"); - - DialogResult result = MessageBox.Show("SSI Dancer led is Green(not blinking)?", "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.No) - { - Units_status[8,1]="Fail"; - stubManager.Write("RDANCER_SSI\tFail\n"); - return 0; - } - - if (temp>temp1) - temp1=temp1+0x4000; - - temp1=temp1-temp; - if ((temp1> 15000) || (temp1 <1000)) - { - Units_status[8,1]="Fail"; - stubManager.Write("RDANCER_SSI\tFail\n"); - return 0; - } - Units_status[8,1]="Pass"; - stubManager.Write("RDANCER_SSI\tPass\n"); - - return 1; -} - - -//------------------------------------------------------------- -int Test_RDRIVING_RTFU() -{ - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RDRIVING_Motor, true,200); //move Rdriving clockwise - stubManager.Write("RDRIVING_Motor Motor rotate \n "); - - DialogResult result = MessageBox.Show("Are RDRIVING Motor rotate?", "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.No) - { - Units_status[3,1]="Fail"; - stubManager.Write("RDRIVING Motor not rotate\n"); - } - else - { - Units_status[3,1]="Pass"; - stubManager.Write("RDRIVING Motor rotate\n"); - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RDRIVING_Motor,3); //stop motor - - return 0; -} - - - -//-------------------------------------------------------------------------------- -int Motor_SetParam(Int32 HighAdr, Int32 LowAdr, Int32 ParaAddr, uint ParaData1) -{ - - Int32 Temp = 0; - Temp = (ParaAddr << 8 ) + ( (Int32) ParaData1 >> 24); - - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,HighAdr, (Temp & 0xffff)); - Temp = ((Int32)ParaData1 >> 8) & 0xffff; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,LowAdr, (Temp)); - - return 1; -} - //------------------------------------ -string write_to_file() -{ - stubManager.Write("write_to_file\n"); - -string Stemp="Pass"; - for (int i=0;i<UNIT_UNDER_TEST;i++) - { - stubManager.AppendToFile(File_Name1,Units_status[i,0]+"\t" + Units_status[i,1] ); - stubManager.Write(Units_status[i,0]+"\t" + Units_status[i,1]+"\n" ); - - if ((Units_status[i,1]=="Fail")||(Units_status[i,1]=="Not Test")) - Stemp="Fail"; - } - if (Stemp=="Fail") - { - stubManager.AppendToFile(File_Name1,"-------------RTFU Fail ------------ "); - stubManager.Write("-------------RTFU Fail ------------ "); - } - else - { - stubManager.AppendToFile(File_Name1,"-------------RTFU Pass ------------ )"); - stubManager.Write("-------------RTFU Pass ------------ "); - } - - return Stemp; - -} - diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/RTFU/RTFU_SSI1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/RTFU/RTFU_SSI1.cs deleted file mode 100644 index f448e0971..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/RTFU/RTFU_SSI1.cs +++ /dev/null @@ -1,93 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -include "..\..\Defines\Tango_Defines_Basic.cs" -include "Tango_Defines_SSI.cs" -//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_Basic.cs" -//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_SSI.cs" -const Int32 F1_RDANCER_ROTENC_DATA_p_RX_lsb = 0x600001a0; -const Int32 F1_RDANCER_ROTENC_DATA_p_RX_msb = 0x600001a2; -const Int32 F1_RDANCER_ROTENC_DATA_p_TX = 0x600001ae; - - - - - -public void OnExecute(StubManager stubManager) -{ - - int k = 0; - - Fpga_Read_Reg(FPGA1, F1_Prescaler1_reg1,0 ); - Fpga_Read_Reg(FPGA1, F1_Prescaler1_reg2,0 ); - - //Set output clock frequency to about 200 kHz - Fpga_Write_Reg(FPGA1, F1_Prescaler1_reg1, 0x0024, 0); - Fpga_Write_Reg(FPGA1, F1_Prescaler1_reg2, 0x0024, 0); - - Fpga_Read_Reg(FPGA1, F1_Prescaler1_reg1, 0); - Fpga_Read_Reg(FPGA1, F1_Prescaler1_reg2, 0); - - for (int i = 0; i < 100; i++) - { - - - stubManager.Write("RDANCER1 - "+ ReadEncoder()+ "\n" ); - - - - - Thread.Sleep(400); - - - - - - - - - - - - - - - - - -// SSI_Read_Write(FPGA1, F1_RDANCER_ROTENC_MSB, F1_RDANCER_ROTENC_LSB, F1_RDANCER_ROTENC_TX); -// SSI_Read_Write(FPGA1, F1_RSPARE_ROTENC_MSB, F1_RSPARE_ROTENC_LSB, F1_RSPARE_ROTENC_TX); -// stubManager.Write("\n"); -// k++; -// if ( (k & 0x8) == 0x08 ) { -// k = 0; -// stubManager.Write(" RDANCER RSpeed \n"); -// } -// Thread.Sleep(400); - } - - -} - -Int32 ReadEncoder() -{ - Int32 temp; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F1_RDANCER_ROTENC_DATA_p_TX, 0x0000); //triggers a TX transmission - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_RDANCER_ROTENC_DATA_p_RX_lsb); - var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_RDANCER_ROTENC_DATA_p_RX_msb); - - temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff)); - - - return temp; -} diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/WHS/WHS_waste_Tank_Calibration_Save_V0.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/WHS/WHS_waste_Tank_Calibration_Save_V0.cs deleted file mode 100644 index c52424b2f..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/WHS/WHS_waste_Tank_Calibration_Save_V0.cs +++ /dev/null @@ -1,90 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -double V0_default_ml = 8.7433; - -public void OnExecute(StubManager stubManager) -{ - var response1 = stubManager.ShowResponseWindow("Warning - you are going to change the value of Vo in the eeprom !!!\nPlease Enter Password to confirme:"); - if (response1=="Aa123456") - { - stubManager.WriteLine(response1); - - //Write_0_Vo_in_ml_to_eeprom - stubManager.WriteLine("\nWrite_0_Vo_in_ml_to_eeprom"); - StubWhsEEpromRequest stubWhsEEpromRequest = new StubWhsEEpromRequest(); - stubWhsEEpromRequest.BurnRequest = true; //write - StubWhsEEpromData stubWhsEEpromData = new StubWhsEEpromData(); - stubWhsEEpromData.Orifice1Flow = 0; - stubWhsEEpromRequest.WhsEEprom = stubWhsEEpromData; - var response = stubManager.Run<StubWhsEEpromResponse>(stubWhsEEpromRequest); - - //wait_10mSec - stubManager.WriteLine("\nwait_10mSec"); - Thread.Sleep(100); //Sleep for 10 milli. - - //Read_Vo_in_ml_from_eeprom & verify it is 0 - stubManager.WriteLine("\nRead_Vo_in_ml_from_eeprom & verify it is 0"); - stubWhsEEpromRequest.BurnRequest = false; //write - stubWhsEEpromRequest.WhsEEprom = stubWhsEEpromData; - var response2 = stubManager.Run<StubWhsEEpromResponse>(stubWhsEEpromRequest); - - //Read_Vo_in_mV - stubManager.WriteLine("\nRead_Vo_in_mV"); - var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EC, 0x01); - //Print_Vo_in_mV - stubManager.WriteLine(response3.Progress); - - //check validity - stubManager.WriteLine("\ncheck validity"); - if((response3.Progress <= 800) || (response3.Progress >=1200)) - { - response3.Progress = 1076; //default - stubManager.Write("\nERROR ------ Vreading value outside the defined range !!! ------"); - } - else - { - //calculate_V0_in_ml - stubManager.WriteLine("\ncalculate_V0_in_ml"); - V0_default_ml = V0_default_ml * response3.Progress; - - //print_Vo_in_ml - stubManager.WriteLine("\nprint_Vo_in_ml"); - stubManager.WriteLine(V0_default_ml); - stubManager.WriteLine(""); - - //Write_Vo_in_ml_to_eeprom - stubManager.WriteLine("\nWrite_Vo_in_ml_to_eeprom"); - stubWhsEEpromRequest.BurnRequest = true; //write - - stubWhsEEpromData.Orifice1Flow = V0_default_ml; - stubWhsEEpromRequest.WhsEEprom = stubWhsEEpromData; - var response4 = stubManager.Run<StubWhsEEpromResponse>(stubWhsEEpromRequest); - - //wait_10mSec - stubManager.WriteLine("\nwait_10mSec"); - Thread.Sleep(100); //Sleep for 10 milli. - - //Read_Vo_in_ml_from_eeprom - stubManager.WriteLine("\nRead_Vo_in_ml_from_eeprom"); - stubWhsEEpromRequest.BurnRequest = false; //write - stubWhsEEpromRequest.WhsEEprom = stubWhsEEpromData; - var response5 = stubManager.Run<StubWhsEEpromResponse>(stubWhsEEpromRequest); - - //Check if we read the correct value - stubManager.WriteLine("\nVerify that we read the correct value of Orifice1Flow!!"); - } - - stubManager.WriteLine("\n -- END OF SCRIPT -- "); - - } -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/WHS/fan1-4.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/WHS/fan1-4.cs deleted file mode 100644 index 69f8e4d13..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/WHS/fan1-4.cs +++ /dev/null @@ -1,29 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - int x=0; - - // var response1 = stubManager.ShowResponseWindow("Please Enter fan value from 0 to 255:"); - // int x = Int32.Parse(response1); - - - stubManager.Run<ProgressResponse>("ProgressRequest" ,0xffac2, x); //whs fan1 full - stubManager.Run<ProgressResponse>("ProgressRequest" ,0xffac3, x); //whs fan2 full - stubManager.Run<ProgressResponse>("ProgressRequest" ,0xffac4, x); //whs fan3 full - stubManager.Run<ProgressResponse>("ProgressRequest" ,0xffac5, x); //whs fan4 full - - var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3ea, 6); //whs fan4 full - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/WHS/pump2.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/WHS/pump2.cs deleted file mode 100644 index c72a7cd33..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/WHS/pump2.cs +++ /dev/null @@ -1,32 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - Int32 i=0 ; - while (i==0) -{ - DialogResult result = MessageBox.Show("Do you want to open (Yes) or close (No) valve ?", "Warning", - MessageBoxButtons.YesNoCancel, MessageBoxIcon.Warning); - if(result == DialogResult.Yes) - - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x600000d2, 0x800); - - else if(result == DialogResult.No) - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x600000d2, 0x000); - else if(result == DialogResult.Cancel) - i=1; - -} - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Winder/Screw_Encoder.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Winder/Screw_Encoder.cs deleted file mode 100644 index 88a2e703a..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Winder/Screw_Encoder.cs +++ /dev/null @@ -1,44 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - -UInt32 temp ; - - - - - - // Request ---- -// UInt32 : Address - -// Response ---- -// UInt32 : Address -// UInt32 : Value -// String : Status -// UInt32 : StatusWord - -while (true) - { -var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000100); -var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000102); - -temp=(response.Value & 0xffff )+((response1.Value & 0xffff )<<16); -temp=temp&0x0fffffff; -stubManager.WriteHex(temp,8); -stubManager.Write("\n"); - - Thread.Sleep(100); - -} -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Winder/Winder_Jig.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Winder/Winder_Jig.cs deleted file mode 100644 index 518cd5be3..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Winder/Winder_Jig.cs +++ /dev/null @@ -1,370 +0,0 @@ -using System; -using System.Text; -using System.IO; -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.Stubs; -using Tango.Stubs; - - -//include "..\..\Defines\Tango_Defines_Basic.cs" -//include "Tango_Defines_LimitSwitch.cs" - -const Int32 FPGA1 = 0x60000000; -const Int32 FPGA2 = 0x60000400; -const Int32 FPGA3 = 0x60000800; -const Int32 F1_LS_03_Direct = 0x040 ; // Reads the direct values that are currently being sent to the fpga. rsv rsv rsv rsv F1_SW_SPOOL_EXISTS F1_SW_SPARE F1_LS_RDANCER_DOWN F1_LS_RDANCER_UP F1_LS_RLOADMOTOR_DOWN F1_LS_RLOADMOTOR_UP F1_LS_RLOADRAM_DOWN F1_LS_RLOADRAM_UP F1_LS_RSPARE1 F1_LS_RSPARE2 F1_LS_SCREW_LEFT F1_LS_SCREW_RIGHT - - - - -const int UNIT_UNDER_TEST=6; -//-------------------------------------------------------------------------------- -string path1="P:\\Scripts\\Assemblies\\Winder\\WinderLog\\"; -string path2="C:\\WinderLog\\"; - -string File_Name1 ; -string Status; -//--------------------------- - - -string [,] Units_status = new string[UNIT_UNDER_TEST,2] { - {"Winder_Motor","Not Test"}, - {"Screw_Motor","Not Test"}, - {"LS_Screw_Right","Not Test"}, - {"LS_Screw_Left","Not Test"}, - {"Screw_Encoder","Not Test"}, - {"SW_Spool_Exist","Not Test"}, - }; - - - -//----------------------------------------------------- -string Winder_Sn; -//-------------------------------------------------------------------------------- - -public void OnExecute(StubManager stubManager) -{ -string path=""; - Form form1 = new Form(); - -// Set the caption bar text of the form. - - form1.Text = "Winder Test"; - form1.FormBorderStyle = FormBorderStyle.FixedDialog; - form1.MaximizeBox = false; - form1.MinimizeBox = false; - form1.StartPosition = FormStartPosition.CenterScreen; - form1.AutoSize = true; - form1.AutoSizeMode = AutoSizeMode.GrowAndShrink; -// Create buttons to Run. - Button button1 = new Button () - { - Width = 100, - Height = 100, - }; - button1.Text = "Run"; - button1.Location = new Point (40, 100); - form1.Controls.Add(button1); -//-----Winder Serial Number ----------- - - Label Label1 = new Label () - { - Width = 150, - Height = 20, - Text =" Winder S/N" - }; - Label1.Location = new Point (30, 10); - form1.Controls.Add(Label1); - TextBox TextBox1 = new TextBox () - { - Width = 100, - Height = 10, - Text ="" - }; - TextBox1.Location = new Point (40, 40); - form1.Controls.Add(TextBox1); - //----------LOCATION---------- - - Label Label3 = new Label () - { - Width = 150, - Height = 20, - Text ="LOCATION" - }; -Label3.Location = new Point (350, 10); - form1.Controls.Add(Label3); - - - -TextBox TextBox3 = new TextBox () - { - Width = 100, - Height = 10, - Text ="" - }; -TextBox3.Location = new Point (360, 40); - form1.Controls.Add(TextBox3); - -//-------------------------------------------------------------------------------- - - stubManager.Write("Counter is 2 \n"); - - button1.Click += (_,__) => - - { -if (!Directory.Exists(path1)) - { - path=path2; - if (!Directory.Exists(path2)) - Directory.CreateDirectory(path2); - } -else -path=path1; - - -File_Name1=path + TextBox1.Text +"_Winder_" + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".log" ; - - -stubManager.Write(File_Name1 +"\n"); -stubManager.WriteToFile(File_Name1,DateTime.Now +" " ); -stubManager.Write(DateTime.Now +"\n" ); - -stubManager.AppendToFile(File_Name1,"Winder Test Report" ); -stubManager.Write("Winder Test Report\n" ); - -stubManager.AppendToFile(File_Name1,"Winder S/N: \t" + TextBox1.Text ); -stubManager.Write("Winder S/N:" + TextBox1.Text +"\n" ); - - -stubManager.AppendToFile(File_Name1,"Location:\t" + TextBox3.Text ); -stubManager.Write("Location:" + TextBox3.Text +"\n" ); - - - -Label Label5 = new Label () - { - Width = 120, - Height =100, - Text = "" - }; -Label5.Location = new Point (300, 100); -Label5.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; - -Label5.Text="Pros"; -Label5.Font = new Font("Arial", 24,FontStyle.Bold); -form1.Controls.Add(Label5); - - -//------------------------------- start test ----------- - Test_Winder_motor(); - Test_Screw_LS_Motor_Encoder (); - Test_Pooler_Exist (); - - - - Status=write_to_file(); - - Label5.Text=Status; - TextBox1.Text=""; -}; - - form1.ShowDialog(); - - return ; - } -//------------------------------------------ -int Test_Winder_motor () - -{ - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,15, true, 500); //rotate Winder Motor. - stubManager.Write("Winder Motor rotate \n "); - DialogResult result = MessageBox.Show("Are Winder Motor rotate?", "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.No) - { - Units_status[0,1]="Fail"; - stubManager.Write("Winder Motor not rotate\n"); - } - else - { - Units_status[0,1]="Pass"; - stubManager.Write("Winder Motor rotate\n"); - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,15,3); //stop motor - - return 0; -} - - -//-------------------------------------------- - int Test_Screw_LS_Motor_Encoder() -{ - UInt32 temp ; - Int32 Bit = 1; - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,14, false, 250); //rotate screw Motor out. - Thread.Sleep(1000); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,14,3); //stop motor - - DialogResult result2 = MessageBox.Show("Did screw Motor move ?", "Warning",MessageBoxButtons.YesNo); - if(result2 == DialogResult.No) - { - Units_status[1,1]="Fail"; - stubManager.Write("Screw Motor not move\n"); - return 0; - } - Units_status[1,1]="Pass"; - - stubManager.Write("Screw Motor rotate \n "); - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,14, true, 250); - stubManager.Write("\nMove screw in "); - - Bit = 1; - int i=0; - while ((Bit != 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec - { - Bit = GetBit(FPGA1, F1_LS_03_Direct,0); - Thread.Sleep(50); - i++; - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,14,3); //stop motor - - DialogResult result1 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo); - if(result1 == DialogResult.No) - { - Units_status[2,1]="Fail"; - stubManager.Write("LS_SCREW_RIGHT Not calibrate\n"); - return 0; - } - Units_status[2,1]="Pass"; - stubManager.Write("\nMove screw out \n"); - - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000100, 0x0000); //clear encoder - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000102, 0x0000); //clear encoder - - Bit = 1; - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,14, false, 250); - i=0; - while ((Bit != 0x0) && (i<200)) //wait until Limit Switch or timeout 200*50msec=10sec - { - Bit = GetBit(FPGA1, F1_LS_03_Direct,1); - Thread.Sleep(50); - i++; - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,14,3); //stop motor - - DialogResult result3 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo); - if(result3 == DialogResult.No) - { - Units_status[3,1]="Fail"; - stubManager.Write("LS_SCREW_LEFT Not calibrate\n"); - return 0; - } - Units_status[3,1]="Pass"; - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000100); - var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000102); - - temp=(response.Value & 0xffff )+((response1.Value & 0xffff )<<16); - temp=temp&0x0fffffff; - temp= 0x4000000-temp; - stubManager.Write("Encoder positio:" +temp+"\n"); - - if ((temp>20000) && temp<28000) - Units_status[4,1]="Pass"; - else - Units_status[4,1]="Fail"; - - return 1; -} - //--------------------------------------- -int Test_Pooler_Exist() -{ - if ( (GetBit(FPGA1, F1_LS_03_Direct,11))==0) - { - Units_status[5,1]="Fail"; - return 0; - } - - DialogResult result2 = MessageBox.Show("Remove Spool"); - if ( (GetBit(FPGA1, F1_LS_03_Direct,11))!=0) - Units_status[5,1]="Fail"; - else - Units_status[5,1]="Pass"; - - return 0 ; - - -} - //------------------------------------ -string write_to_file() -{ - stubManager.Write("write_to_file\n"); - -string Stemp="Pass"; - for (int i=0;i<UNIT_UNDER_TEST;i++) - { - stubManager.AppendToFile(File_Name1,Units_status[i,0]+"\t" + Units_status[i,1] ); - stubManager.Write(Units_status[i,0]+"\t" + Units_status[i,1]+"\n" ); - - if ((Units_status[i,1]=="Fail")||(Units_status[i,1]=="Not Test")) - Stemp="Fail"; - } - if (Stemp=="Fail") - { - stubManager.AppendToFile(File_Name1,"-------------Winder Fail ------------ "); - stubManager.Write("-------------Winder Fail ------------ "); - } - else - { - stubManager.AppendToFile(File_Name1,"-------------Winder Pass ------------ )"); - stubManager.Write("-------------Winder Pass ------------ "); - } - - return Stemp; - -} - - - -Int32 GetBit(Int32 Fpga, Int32 Adr, Int32 BitNo) -{ - Int32 BitMask; - var RetVal = Fpga_Read_Reg(Fpga, Adr, 0); - BitMask = 0x1 << BitNo; - if ( ( (Int32) RetVal.Value & BitMask) == BitMask ) - { - return 1; - } - else - { - return 0; - } - -} - - -StubFpgaReadRegResponse Fpga_Read_Reg(Int32 Fpga, Int32 Addr, Int32 Verbose) -{ - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" , Fpga + Addr); - response.Value = response.Value & 0xffff; - - if (Verbose == 1) { - stubManager.Write("FPGA Reg. Read (FPGA Base, Addr, Data): ("); - stubManager.WriteHex(Fpga,4); - stubManager.Write(", "); - stubManager.WriteHex(Addr,4); - stubManager.Write(", "); - stubManager.WriteHex(response.Value,4); - stubManager.Write(")"); - } - - return response; -} diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Winder/Winder_Zero.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Winder/Winder_Zero.cs deleted file mode 100644 index 46894812c..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Winder/Winder_Zero.cs +++ /dev/null @@ -1,90 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -const Int32 FPGA1 = 0x60000000; -const Int32 FPGA2 = 0x60000400; -const Int32 FPGA3 = 0x60000800; -const Int32 F1_LS_03_Direct = 0x040 ; // Reads the direct values that are currently being sent to the fpga. rsv rsv rsv rsv F1_SW_SPOOL_EXISTS F1_SW_SPARE F1_LS_RDANCER_DOWN F1_LS_RDANCER_UP F1_LS_RLOADMOTOR_DOWN F1_LS_RLOADMOTOR_UP F1_LS_RLOADRAM_DOWN F1_LS_RLOADRAM_UP F1_LS_RSPARE1 F1_LS_RSPARE2 F1_LS_SCREW_LEFT F1_LS_SCREW_RIGHT - -//include "..\..\Defines\Tango_Defines_Basic.cs" -//include "Tango_Defines_Motors.cs" - - -public void OnExecute(StubManager stubManager) -{ - Int32 position=30; - UInt32 temp ; - Int32 Bit = 1; - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,14, false, 250); //rotate screw Motor out. - Thread.Sleep(2000); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,14,3); //stop motor - Thread.Sleep(1000); - - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,14, true, 50); - stubManager.Write("\nMove screw in "); - - Bit = 1; - int i=0; - while ((Bit != 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec - { - Bit = GetBit(FPGA1, F1_LS_03_Direct,0); - Thread.Sleep(10); - i++; - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,14,3); //stop motor - Thread.Sleep(1000); - - - stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,14, true, position ); - Thread.Sleep(1000); - - -} - - - - -Int32 GetBit(Int32 Fpga, Int32 Adr, Int32 BitNo) -{ - Int32 BitMask; - var RetVal = Fpga_Read_Reg(Fpga, Adr, 0); - BitMask = 0x1 << BitNo; - if ( ( (Int32) RetVal.Value & BitMask) == BitMask ) - { - return 1; - } - else - { - return 0; - } - -} - -StubFpgaReadRegResponse Fpga_Read_Reg(Int32 Fpga, Int32 Addr, Int32 Verbose) -{ - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" , Fpga + Addr); - response.Value = response.Value & 0xffff; - - if (Verbose == 1) { - stubManager.Write("FPGA Reg. Read (FPGA Base, Addr, Data): ("); - stubManager.WriteHex(Fpga,4); - stubManager.Write(", "); - stubManager.WriteHex(Addr,4); - stubManager.Write(", "); - stubManager.WriteHex(response.Value,4); - stubManager.Write(")"); - } - - return response; -} diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Winder/Winder_spoll_exist.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Winder/Winder_spoll_exist.cs deleted file mode 100644 index c0ada87e1..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Winder/Winder_spoll_exist.cs +++ /dev/null @@ -1,65 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -include "..\..\Defines\Tango_Defines_Basic.cs" -include "Tango_Defines_LimitSwitch.cs" -//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_Basic.cs" -//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_LimitSwitch.cs" - -public void OnExecute(StubManager stubManager) -{ - - uint Temp = 0; - int counter = 0; - stubManager.Write("\nReading register F1_LS_03_Direct: "); - var RetVal = Fpga_Read_Reg(FPGA1, F1_LS_03_Direct, 0); - Temp=RetVal.Value & 0x0800; - if (Temp==0x0800) - { - stubManager.Write("\nWinder Spoll Exist "); - } - else - { - stubManager.Write("\nWinder Spoll NOT Exist "); - } - Temp = RetVal.Value; - stubManager.Write("\nActivate limit switches one-by-one"); - - while ( counter != 100) - { - RetVal = Fpga_Read_Reg(FPGA1, F1_LS_03_Direct, 0); - if (RetVal.Value != Temp) - { -// stubManager.Write("\nRegister F1_LS_03_Direct new value: "); -// stubManager.WriteHex(RetVal.Value,4); - - Temp=RetVal.Value & 0x0800; - if (Temp==0x0800) - { - stubManager.Write("\nWinder Spoll Exist "); - } - else - { - stubManager.Write("\nWinder Spoll NOT Exist "); - } - - - - counter = counter + 1; - } - Thread.Sleep(50); - Temp=RetVal.Value; - } - - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Blower.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Blower.cs deleted file mode 100644 index c365c4884..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Blower.cs +++ /dev/null @@ -1,21 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - - //Blower speed - var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E8, /*disable control loop*/0x0000 + /* speed =*/0xFFF); //Blower speed - // to enable control loop send 0x1000 - // speed max voltage value is 0xFFF //12 bit (0xFFF) -> 5V - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Blower_Data.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Blower_Data.cs deleted file mode 100644 index 740f0778d..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Blower_Data.cs +++ /dev/null @@ -1,28 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -//show current data -/*var response1 =*/ stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan1*/0x3Ea, /*Head_Q=*/0x3000); // -//start/stop whs control and set value -int StopWhsControl = 0; -int RestartWhsControl = 0x1000; - stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan1*/0x3E8, /*Head_Q=*/StopWhsControl + 2700); // -// stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan1*/0x3E8, /*Head_Q=*/RestartWhsControl +2700); // - -//enable loop -/*var response1 =*/ //stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan1*/0x3E7, /*Head_Q=*/5); // -//500=1F4 -//250=FA - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Fan_speed.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Fan_speed.cs deleted file mode 100644 index 045db16fe..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Fan_speed.cs +++ /dev/null @@ -1,36 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -// Request ---- -// Int32 : Amount -// Int32 : Delay - -// Response ---- -// Double : Progress - - -//fan test -var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan1*/0xFAC2, /*speed=*/0xFF); // -//Thread.Sleep(5000); //Sleep for 10 milli. -var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan2*/0xFAC3, /*speed=*/0x80); // -//Thread.Sleep(5000); //Sleep for 10 milli. -var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan3*/0xFAC4, /*speed=*/0x80); // -//Thread.Sleep(5000); //Sleep for 10 milli. -var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan4*/0xFAC5, /*speed=*/0x80); // -//Thread.Sleep(5000); //Sleep for 10 milli. -stubManager.WriteLineHex(response1.Progress,4); -stubManager.WriteLineHex(response2.Progress,4); -stubManager.WriteLineHex(response3.Progress,4); -stubManager.WriteLineHex(response4.Progress,4); -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Fan_test.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Fan_test.cs deleted file mode 100644 index 166c1cd2a..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Fan_test.cs +++ /dev/null @@ -1,42 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -// Request ---- -// Int32 : Amount -// Int32 : Delay - -// Response ---- -// Double : Progress - - -//fan test -var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC2, 0x80); //valv1_en=1 -//Thread.Sleep(5000); //Sleep for 10 milli. -var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC3, 0x80); //valv1_en=1 -//Thread.Sleep(5000); //Sleep for 10 milli. -var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC4, 0x80); //valv1_en=1 -//Thread.Sleep(5000); //Sleep for 10 milli. -var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC5, 0x80); //valv1_en=1 -//Thread.Sleep(5000); //Sleep for 10 milli. - -/*var response5 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC2, 0x00); //valv1_en=1 -Thread.Sleep(5000); //Sleep for 10 milli. -var response6 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC3, 0x00; //valv1_en=1 -Thread.Sleep(5000); //Sleep for 10 milli. -var response7 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC4, 0x00); //valv1_en=1 -Thread.Sleep(5000); //Sleep for 10 milli. -var response8 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC5, 0x00); //valv1_en=1 -Thread.Sleep(5000); //Sleep for 10 milli. -*/ -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Rehostat.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Rehostat.cs deleted file mode 100644 index 142c1597d..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Rehostat.cs +++ /dev/null @@ -1,31 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -// Request ---- -// Int32 : Amount -// Int32 : Delay - -// Response ---- -// Double : Progress - - -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EB, 0x300); //set rehostat value=0x300 -stubManager.WriteLine("First response received"); -Thread.Sleep(1000); //Sleep for 1000 milli. -var response6 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 5); // get GAS_OUT -stubManager.WriteLine("Second response received"); - - stubManager.WriteLineHex(response6.Progress, 4); - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Set_Blower_Get_Q_Qavarege_Volt.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Set_Blower_Get_Q_Qavarege_Volt.cs deleted file mode 100644 index 13d0c3471..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Set_Blower_Get_Q_Qavarege_Volt.cs +++ /dev/null @@ -1,64 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -// Request ---- -// Int32 : Amount -// Int32 : Delay - -// Response ---- -// Double : Progress - - -//Blower speed -//stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E8, /* speed =*/2400); //set Blower speed -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E7, /* Q value =*/7); //set Blower speed - -Thread.Sleep(5000); -var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, /* speed =*/0); //get ORF1 -var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, /* speed =*/10); //get Q ORF1 -var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, /* speed =*/20); //get Q ORF1 average - -var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, /* speed =*/2); //get ORF3 -var response5 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, /* speed =*/12); //get Q ORF3 average -var response6 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, /* speed =*/22); //get Q ORF3 average - -var response7 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E6, /* speed =*/10); //Get Blower speed -//Thread.Sleep(5000); //Sleep for 10 milli. -stubManager.WriteLine("orf1 value:"); stubManager.WriteLine(response1.Progress); -stubManager.WriteLine("orf1 Q value:"); stubManager.WriteLine(response2.Progress); -stubManager.WriteLine("orf1 Q avarege value:"); stubManager.WriteLine(response3.Progress); -stubManager.WriteLine("orf3 value:"); stubManager.WriteLine(response4.Progress); -stubManager.WriteLine("orf3 Q value:"); stubManager.WriteLine(response5.Progress); -stubManager.WriteLine("orf3 Q avarege value:"); stubManager.WriteLine(response6.Progress); -stubManager.WriteLine("blower volt:"); stubManager.WriteLine(response7.Progress); - -Thread.Sleep(5000); - response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, /* speed =*/0); //get ORF1 - response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, /* speed =*/10); //get Q ORF1 - response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, /* speed =*/20); //get Q ORF1 average - - response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, /* speed =*/2); //get ORF3 - response5 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, /* speed =*/12); //get Q ORF3 average - response6 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, /* speed =*/22); //get Q ORF3 average - - response7 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E6, /* speed =*/10); //Get Blower speed -//Thread.Sleep(5000); //Sleep for 10 milli. -stubManager.WriteLine("orf1 value:"); stubManager.WriteLine(response1.Progress); -stubManager.WriteLine("orf1 Q value:"); stubManager.WriteLine(response2.Progress); -stubManager.WriteLine("orf1 Q avarege value:"); stubManager.WriteLine(response3.Progress); -stubManager.WriteLine("orf3 value:"); stubManager.WriteLine(response4.Progress); -stubManager.WriteLine("orf3 Q value:"); stubManager.WriteLine(response5.Progress); -stubManager.WriteLine("orf3 Q avarege value:"); stubManager.WriteLine(response6.Progress); -stubManager.WriteLine("blower volt:"); stubManager.WriteLine(response7.Progress); -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Shinko_Read_Temperature.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Shinko_Read_Temperature.cs deleted file mode 100644 index fc769f125..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Shinko_Read_Temperature.cs +++ /dev/null @@ -1,26 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - //read temerature value - var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xB05, 1); - var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xB05, 3); - stubManager.Write("\nShinko temerature value: "); - stubManager.WriteLine(response1.Progress); - //read setting temerature - var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xB05, 2); - var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xB05, 4); - stubManager.Write("\nShinko setting temerature : "); - stubManager.WriteLine(response3.Progress); - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Shinko_Read_Temperature_1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Shinko_Read_Temperature_1.cs deleted file mode 100644 index 235c1baa4..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Shinko_Read_Temperature_1.cs +++ /dev/null @@ -1,35 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - var response0 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xB05, 0); - if(response0.Progress == 0) - stubManager.Write("\nShinko Init Passed "); - - //read temerature value - var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xB05, 1); - if(response.Progress == 0) - stubManager.Write("\nShinko recieve ACQ for reading request of the temerature value"); - var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xB05, 3); - stubManager.Write("\nShinko temerature value: "); - stubManager.WriteLine(response1.Progress); - - //read setting temerature - var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xB05, 2); - if(response2.Progress == 0) - stubManager.Write("\nShinko recieve ACQ for reading request of the setting temerature"); - var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xB05, 4); - stubManager.Write("\nShinko setting temerature : "); - stubManager.WriteLine(response3.Progress); - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/fan.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/fan.cs deleted file mode 100644 index 7e68d62ef..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/fan.cs +++ /dev/null @@ -1,34 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - - - // Request ---- -// Int32 : Amount -// Int32 : Delay - -// Response ---- -// Double : Progress -//stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC2, 0x20); //WHS FAN 1 low seed -//stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC3, 0x20); //WHS FAN 2 low seed -//stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC4, 0x20); //WHS FAN 3 low seed -//stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC5, 0x20); //WHS FAN 4 low seed -//stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC6, 0x20); //WHS FAN 5 low seed -//stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC2, 0x20); //WHS FAN 6 low seed -var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC3, 0x20); - - - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/get_A2D_MAX11614.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/get_A2D_MAX11614.cs deleted file mode 100644 index 670732ae0..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/get_A2D_MAX11614.cs +++ /dev/null @@ -1,48 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -// Request ---- -// Int32 : Amount -// Int32 : Delay - -// Response ---- -// Double : Progress - -//valv1 -var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 0); //ORF1 -//Thread.Sleep(5000); //Sleep for 10 milli. -var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 1); // ORF2 -//Thread.Sleep(5000); //Sleep for 10 milli. -var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); // ORF3 -//Thread.Sleep(5000); //Sleep for 10 milli. -var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 3); // VLEV1 -//Thread.Sleep(5000); //Sleep for 10 milli. -var response5 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 4); // VLEV2 not connected -//Thread.Sleep(5000); //Sleep for 10 milli. -var response6 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 5); // GAS_OUT -//Thread.Sleep(5000); //Sleep for 10 milli. -var response7 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 6); // CUR_FAN -//Thread.Sleep(5000); //Sleep for 10 milli. -var response8 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 7); // CUR_VaLV1 -//Thread.Sleep(5000); //Sleep for 10 milli. - stubManager.WriteLineHex(response1.Progress,4); - stubManager.WriteLineHex(response2.Progress,4); - stubManager.WriteLineHex(response3.Progress,4); - stubManager.WriteLineHex(response4.Progress,4); - stubManager.WriteLineHex(response5.Progress,4); - stubManager.WriteLineHex(response6.Progress,4); - stubManager.WriteLineHex(response7.Progress,4); - stubManager.WriteLineHex(response8.Progress,4); - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/pump.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/pump.cs deleted file mode 100644 index 8999da126..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/pump.cs +++ /dev/null @@ -1,29 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -// Request ---- -// Int32 : Amount -// Int32 : Delay - -// Response ---- -// Double : Progress - - -//test pump -//Thread.Sleep(5000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0701);// pump on -//Thread.Sleep(5000); //Sleep for 10 milli. -//stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0700); // pump off - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/set_gas_get_A2D_MAX11614.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/set_gas_get_A2D_MAX11614.cs deleted file mode 100644 index fad4ac22a..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/set_gas_get_A2D_MAX11614.cs +++ /dev/null @@ -1,52 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -// Request ---- -// Int32 : Amount -// Int32 : Delay - -// Response ---- -// Double : Progress - -//valv1 -//var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 0); //ORF1 -//Thread.Sleep(5000); //Sleep for 10 milli. -//var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 1); // ORF2 -//Thread.Sleep(5000); //Sleep for 10 milli. -//var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); // ORF3 -//Thread.Sleep(5000); //Sleep for 10 milli. -//var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 3); // VLEV1 -//Thread.Sleep(5000); //Sleep for 10 milli. -//var response5 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 4); // VLEV2 not connected -//Thread.Sleep(5000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EB, 0x401); //ORF1 -stubManager.WriteLine("First response received"); -Thread.Sleep(1000); //Sleep for 1000 milli. -var response6 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 5); // GAS_OUT -stubManager.WriteLine("Second response received"); -//Thread.Sleep(5000); //Sleep for 10 milli. -//var response7 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 6); // CUR_FAN -//Thread.Sleep(5000); //Sleep for 10 milli. -//var response8 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 7); // CUR_VaLV1 -//Thread.Sleep(5000); //Sleep for 10 milli. -// stubManager.WriteLineHex(response1.Progress,4); -// stubManager.WriteLineHex(response2.Progress,4); -// stubManager.WriteLineHex(response3.Progress,4); -// stubManager.WriteLineHex(response4.Progress,4); -// stubManager.WriteLineHex(response5.Progress,4); - stubManager.WriteLineHex(response6.Progress, 4); -// stubManager.WriteLineHex(response7.Progress,4); -// stubManager.WriteLineHex(response8.Progress,4); - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_Blower.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_Blower.cs deleted file mode 100644 index 2e44d901d..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_Blower.cs +++ /dev/null @@ -1,60 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -// Request ---- -// Int32 : Amount -// Int32 : Delay - -// Response ---- -// Double : Progress - - -//Blower speed -/*var response1 =*/ stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E8, /* speed =*/0x800); //Blower speed -Thread.Sleep(1000); //Sleep for 1000 milli. -var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); //ORF3 -stubManager.WriteLine("First response received"); -Thread.Sleep(1000); //Sleep for 1000 milli. -//Thread.Sleep(5000); //Sleep for 10 milli. -stubManager.WriteLine(response1.Progress); -Thread.Sleep(1000); //Sleep for 1000 milli. -var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); //ORF3 -stubManager.WriteLine(response2.Progress); -Thread.Sleep(1000); //Sleep for 1000 milli. -var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); //ORF3 -stubManager.WriteLine(response3.Progress); -Thread.Sleep(1000); //Sleep for 1000 milli. -var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); //ORF3 -stubManager.WriteLine(response4.Progress); -Thread.Sleep(1000); //Sleep for 1000 milli. -var response5 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); //ORF3 -stubManager.WriteLine(response5.Progress); -Thread.Sleep(1000); //Sleep for 1000 milli. -var response6 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); //ORF3 -stubManager.WriteLine(response6.Progress); -Thread.Sleep(1000); //Sleep for 1000 milli. -var response7 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); //ORF3 -stubManager.WriteLine(response7.Progress); -Thread.Sleep(1000); //Sleep for 1000 milli. -var response8 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); //ORF3 -stubManager.WriteLine(response8.Progress); -Thread.Sleep(1000); //Sleep for 1000 milli. -var response9 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); //ORF3 -stubManager.WriteLine(response9.Progress); -Thread.Sleep(1000); //Sleep for 1000 milli. -var response10 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); //ORF3 -stubManager.WriteLine(response10.Progress); -//var response_av = (response1.Progress + response2.Progress +response3.Progress + response4.Progress + response5.Progress + response6.Progress + response7.Progress + response8.Progress +response9.Progress + response10.Progress)/10; -//stubManager.WriteLine(response_av.Progress); -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_Fan_speed.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_Fan_speed.cs deleted file mode 100644 index 582a7f7e7..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_Fan_speed.cs +++ /dev/null @@ -1,59 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -// Request ---- -// Int32 : Amount -// Int32 : Delay - -// Response ---- -// Double : Progress - -//valv1 -var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8501); //valv1_en=1 -Thread.Sleep(5000); //Sleep for 10 milli. -var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8401);// valv1_dir=1 -Thread.Sleep(5000); //Sleep for 10 milli. -var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8400);// valv1_dir=0 -Thread.Sleep(5000); //Sleep for 10 milli. -var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8500);// valv1_disable - - -// valve 2 -var response5 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8701); //valv2_en=1 -Thread.Sleep(5000); //Sleep for 10 milli. -var response6 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8601);// valv2_dir=1 -Thread.Sleep(5000); //Sleep for 10 milli. -var response7 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8600);// valv2_dir=0 -Thread.Sleep(5000); //Sleep for 10 milli. -var response8 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8700); //valv2_disable - -//test pump -Thread.Sleep(5000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0701);// pump on -Thread.Sleep(5000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0700); // pump off - -// test Blower -Thread.Sleep(5000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E8, 0x0000);// Blower OFF -Thread.Sleep(5000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E8, 0x0400);// Blower 1.25v -Thread.Sleep(5000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E8, 0x0800); // Blower 2.5v -Thread.Sleep(5000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E8, 0x0C00);// Blower 3.77v -Thread.Sleep(5000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E8, 0x0FFF); // Blower 5.0v - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_blower_and_ORF3.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_blower_and_ORF3.cs deleted file mode 100644 index 3eb47bc93..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_blower_and_ORF3.cs +++ /dev/null @@ -1,48 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -// Request ---- -// Int32 : Amount -// Int32 : Delay - -// Response ---- -// Double : Progress - -//Blower speed -var stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E8, /* speed =*/0xFFF); //Blower speed -var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); // ORF3 -//Thread.Sleep(5000); //Sleep for 10 milli. -//Blower speed -var stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E8, /* speed =*/0x800); //Blower speed -var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); // ORF3 -//Thread.Sleep(5000); //Sleep for 10 milli. -//Blower speed -var stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E8, /* speed =*/0x400); //Blower speed -var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); // ORF3 -//Thread.Sleep(5000); //Sleep for 10 milli. -//Blower speed -var stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E8, /* speed =*/0x200); //Blower speed -var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); // ORF3 -//Thread.Sleep(5000); //Sleep for 10 milli. -//Blower speed -var stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E8, /* speed =*/0x100); //Blower speed -var response5 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); // ORF3 -//Thread.Sleep(5000); //Sleep for 10 milli. - stubManager.WriteLineHex(response1.Progress,4); - stubManager.WriteLineHex(response2.Progress,4); - stubManager.WriteLineHex(response3.Progress,4); - stubManager.WriteLineHex(response4.Progress,4); - stubManager.WriteLineHex(response5.Progress,4); - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_fan.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_fan.cs deleted file mode 100644 index acd5e3c50..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_fan.cs +++ /dev/null @@ -1,90 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -// Request ---- -// Int32 : Amount -// Int32 : Delay - -// Response ---- -// Double : Progress -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0001); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0101); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0201); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0301); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0401); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0501); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0601); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0701); -Thread.Sleep(1000); //Sleep for 10 milli. - -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4001); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4101); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4201); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4301); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4401); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4501); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4601); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4701); -Thread.Sleep(1000); //Sleep for 10 milli. - -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0001); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0101); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0201); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0301); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0401); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0501); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0601); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0701); -Thread.Sleep(1000); //Sleep for 10 milli. - -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4001); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4101); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4201); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4301); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4401); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4501); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4601); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4701); -Thread.Sleep(1000); //Sleep for 10 milli. - -var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E8, 0); -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_valv1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_valv1.cs deleted file mode 100644 index c81bdaebd..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_valv1.cs +++ /dev/null @@ -1,47 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -// Request ---- -// Int32 : Amount -// Int32 : Delay - -// Response ---- -// Double : Progress - -//valv1 -var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8501); //valv1_en=1 -Thread.Sleep(5000); //Sleep for 10 milli. -var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8401);// valv1_dir=1 -Thread.Sleep(5000); //Sleep for 10 milli. -var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8400);// valv1_dir=0 -Thread.Sleep(5000); //Sleep for 10 milli. -var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8500);// valv1_disable - - -// valve 2 -var response5 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8701); //valv2_en=1 -Thread.Sleep(5000); //Sleep for 10 milli. -var response6 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8601);// valv2_dir=1 -Thread.Sleep(5000); //Sleep for 10 milli. -var response7 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8600);// valv2_dir=0 -Thread.Sleep(5000); //Sleep for 10 milli. -var response8 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8700); //valv2_disable - -//test pump -Thread.Sleep(5000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0701);// pump on -Thread.Sleep(5000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0700); // pump off - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_valv1_disable.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_valv1_disable.cs deleted file mode 100644 index 086063855..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_valv1_disable.cs +++ /dev/null @@ -1,40 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -// Request ---- -// Int32 : Amount -// Int32 : Delay - -// Response ---- -// Double : Progress -//stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8500); //valv1_en=0 -//Thread.Sleep(5000); //Sleep for 10 milli. -//stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8501); //valv1_en=0 -//Thread.Sleep(5000); //Sleep for 10 milli. - - - - int a = 0; - - while (a < 100) - { - a = a + 1; -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8500); //valv1_en=0 -Thread.Sleep(5000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8501); //valv1_en=0 -Thread.Sleep(5000); //Sleep for 10 milli. -//stubManager.WriteLine(a); - } - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_valv1_valv2_pump.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_valv1_valv2_pump.cs deleted file mode 100644 index c4435ab42..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_valv1_valv2_pump.cs +++ /dev/null @@ -1,47 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -// Request ---- -// Int32 : Amount -// Int32 : Delay - -// Response ---- -// Double : Progress - -//valv1 -var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8501); //valv1_en=1 -Thread.Sleep(5000); //Sleep for 10 milli. -var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8401);// valv1_dir=1 -Thread.Sleep(5000); //Sleep for 10 milli. -var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8400);// valv1_dir=0 -Thread.Sleep(5000); //Sleep for 10 milli. -var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8500);// valv1_disable - - -// valve 2 -var response5 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8701); //valv2_en=1 -Thread.Sleep(5000); //Sleep for 10 milli. -var response6 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8601);// valv2_dir=1 -Thread.Sleep(5000); //Sleep for 10 milli. -var response7 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8600);// valv2_dir=0 -Thread.Sleep(5000); //Sleep for 10 milli. -var response8 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8700); //valv2_disable - -//test pump -//Thread.Sleep(5000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0701);// pump on -Thread.Sleep(5000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0700); // pump off - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_valv1_valv2_pump_Blower.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_valv1_valv2_pump_Blower.cs deleted file mode 100644 index f873ba057..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_valv1_valv2_pump_Blower.cs +++ /dev/null @@ -1,27 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -// Request ---- -// Int32 : Amount -// Int32 : Delay - -// Response ---- -// Double : Progress - - -//fan test -var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC1, 0xFF); //valv1_en=1 -Thread.Sleep(5000); //Sleep for 10 milli. - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/valv1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/valv1.cs deleted file mode 100644 index 47f5cdff5..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/valv1.cs +++ /dev/null @@ -1,33 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -// Request ---- -// Int32 : Amount -// Int32 : Delay - -// Response ---- -// Double : Progress - -//valv1 -var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8501); //valv1_en=1 -//Thread.Sleep(5000); //Sleep for 10 milli. -//var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8401);// valv1_dir=1 -//Thread.Sleep(5000); //Sleep for 10 milli. -//var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8400);// valv1_dir=0 -//Thread.Sleep(5000); //Sleep for 10 milli. -//var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8500);// valv1_disable - - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/valv2.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/valv2.cs deleted file mode 100644 index ce19f0d1e..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/valv2.cs +++ /dev/null @@ -1,34 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -// Request ---- -// Int32 : Amount -// Int32 : Delay - -// Response ---- -// Double : Progress - - - -// valve 2 -var response5 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8701); //valv2_en=1 -//Thread.Sleep(5000); //Sleep for 10 milli. -//var response6 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8601);// valv2_dir=1 -//Thread.Sleep(5000); //Sleep for 10 milli. -//var response7 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8600);// valv2_dir=0 -//Thread.Sleep(5000); //Sleep for 10 milli. -//var response8 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8700); //valv2_disable - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/whs control loop disable.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/whs control loop disable.cs deleted file mode 100644 index 01bd67d0a..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/whs control loop disable.cs +++ /dev/null @@ -1,26 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -//Loading Arm Calibration - this command writes the arm position to a non-volatile memory - -int ControlLoopEnable = 0x1000; -int ControlLoopDisable = 0x0000; - -ProgressRequest progressRequest = new ProgressRequest(); -progressRequest.Amount = 0x3e8; -progressRequest.Delay = ControlLoopDisable+2700; - - var response = stubManager.Run<ProgressResponse>(progressRequest); - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/CalculateContinuous.cs b/Software/Stubs Collection/stubs/Scripts/CalculateContinuous.cs deleted file mode 100644 index 443df9008..000000000 --- a/Software/Stubs Collection/stubs/Scripts/CalculateContinuous.cs +++ /dev/null @@ -1,42 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - int i = 0; - //for (int i = 0; i < 10; i++) - { - // Request ---- - // Double : A - // Double : B - - // Response ---- - // Double : Sum - CalculateRequest calculateRequest = new CalculateRequest(); - calculateRequest.A = 1; - calculateRequest.B = 1; - - //var response = stubManager.RunContinuous<CalculateResponse>("CalculateRequest",0,2,Write); - stubManager.RunContinuous<CalculateResponse>(calculateRequest,(response1) => - { - stubManager.WriteLine (String.Format("Data, {0} {1}",++i,response1.Sum)); - }); - - /*if (response.Sum == 15) - { - stubManager.Write(i); - stubManager.WriteLine(" OK!"); - } - Thread.Sleep(10);*/ - } -} - diff --git a/Software/Stubs Collection/stubs/Scripts/ChangePidDuringRun.cs b/Software/Stubs Collection/stubs/Scripts/ChangePidDuringRun.cs deleted file mode 100644 index 9422e2cdc..000000000 --- a/Software/Stubs Collection/stubs/Scripts/ChangePidDuringRun.cs +++ /dev/null @@ -1,52 +0,0 @@ -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.Stubs; -using Tango.PMR.Hardware; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -StubHeatingTestRequest stubHeatingTestRequest = new StubHeatingTestRequest(); - -stubHeatingTestRequest.DryerZone1Temp = 0; -stubHeatingTestRequest.DryerZone2Temp = 0; - -HardwarePidControl hardwarePidControl = new HardwarePidControl(); -hardwarePidControl.OutputProportionalPowerLimit = 0.5; //Maximal additional power -hardwarePidControl.OutputProportionalBand = 5; -hardwarePidControl.DerivativeTime = 0; //Kd -hardwarePidControl.SensorCorrectionAdjustment = 0; -hardwarePidControl.SensorMinValue = 0; -hardwarePidControl.SensorMaxValue = 0; -hardwarePidControl.SetPointRampRateorSoftStartRamp = 100; //Ki divider -hardwarePidControl.SetPointControlOutputRate = 0; -hardwarePidControl.ControlOutputType = 0.001; ////Dt -hardwarePidControl.SsrControlOutputType = 0; -hardwarePidControl.OutputOnOffHysteresisValue = 100; //Kp divider -hardwarePidControl.ProcessVariableSamplingRate = 10; -hardwarePidControl.PvInputFilterFactorMode = 4; //averaging the readouts / number of samples -hardwarePidControl.OutputProportionalCycleTime = 0; -hardwarePidControl.AcHeatersHalfCycleTime = 0; -hardwarePidControl.PidActive = false; -hardwarePidControl.Epsilon = 0; -hardwarePidControl.OutputOnOffHysteresisValue = 100; - -hardwarePidControl.HardwarePidControlType = Tango.PMR.Hardware.HardwarePidControlType.MotorWinder; -hardwarePidControl.IntegralTime = 8000; //Ki -hardwarePidControl.ProportionalGain = 7000; //Kp - -stubHeatingTestRequest.HardwarePidControl1 = hardwarePidControl; - -StubHeatingTestPollRequest stubHeatingTestPollRequest = new StubHeatingTestPollRequest(); - -var response = stubManager.Run<StubHeatingTestResponse>(stubHeatingTestRequest); - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/ConvertFloat2Bytes.cs b/Software/Stubs Collection/stubs/Scripts/ConvertFloat2Bytes.cs deleted file mode 100644 index c199b9c29..000000000 --- a/Software/Stubs Collection/stubs/Scripts/ConvertFloat2Bytes.cs +++ /dev/null @@ -1,54 +0,0 @@ -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.Stubs; -using Tango.Stubs; - - - -public void OnExecute(StubManager stubManager) -{ - //see online Floating Point to Hex Converter (with Swap endianness) :https://gregstoll.com/~gregstoll/floattohex/ - // ----------------- option 1 ------------------------------- - stubManager.WriteLine("--- option 1 ---"); - float value = 5.2F; - byte [] byteArray1 = new byte[4];// a single float is 4 bytes/32 bits - byteArray1 = BitConverter.GetBytes(value); - - //print - for(int i =0;i<4;i++) - { - stubManager.WriteHex(byteArray1[i],2); - stubManager.Write(" "); - } - stubManager.WriteLine(""); - stubManager.WriteLine(""); - - // ----------------- option 2 for buffer ------------------------------- - stubManager.WriteLine("--- option 2 ---"); - var floatArray1 = new float[] {5.2f, 1.2f, 3.7f}; - - - // create a byte array and copy the floats into it... - var byteArray = new byte[floatArray1.Length * 4];// a single float is 4 bytes/32 bits - Buffer.BlockCopy(floatArray1, 0, byteArray, 0, byteArray.Length); - - //print - for(int j =0;j<floatArray1.Length;j++) - { - for(int i =0;i<4;i++) - { - stubManager.WriteHex(byteArray[j+i],2); - stubManager.Write(" "); - } - stubManager.WriteLine(""); - } - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Defines/Blowe_RMO_LOG.CSV b/Software/Stubs Collection/stubs/Scripts/Defines/Blowe_RMO_LOG.CSV deleted file mode 100644 index 6473707c7..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Defines/Blowe_RMO_LOG.CSV +++ /dev/null @@ -1,47 +0,0 @@ -,RPM -0,1672 -1,1628 -2,1633 -3,1672 -4,1672 -5,1628 -6,1666 -7,1672 -8,1628 -9,1672 -10,1628 -11,1628 -12,1628 -13,1628 -14,1666 -15,1672 -16,1628 -17,1628 -18,1628 -19,1628 -20,1666 -21,1628 -22,1672 -23,1672 -24,1628 -25,1672 -26,1628 -27,1628 -28,1666 -29,1666 -30,1628 -31,1623 -32,1672 -33,1628 -34,1628 -35,1633 -36,1628 -37,1666 -38,1628 -39,1672 -40,1666 -41,1623 -42,1672 -43,1633 -44,1633 -45,1672 diff --git a/Software/Stubs Collection/stubs/Scripts/Dispenser_setup.cs b/Software/Stubs Collection/stubs/Scripts/Dispenser_setup.cs deleted file mode 100644 index 703d34ae9..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Dispenser_setup.cs +++ /dev/null @@ -1,1415 +0,0 @@ - -//-------------------------------------------------------------------------------- -include "Dispenser_setup_mbar.cs" -include "Dispenser_Motor_stop.cs" -include "Dispenser_setup_form_valve close.cs" -include "Dispenser_setup_form_valve open.cs" -include "Dispenser_Motor_run.cs" -include "Dispenser_Motor_Up.cs" -include "Dispenser_Motor_Down.cs" -include "EEPROM.cs" - -//-------------------------------------------------------------------------------- - -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Windows.Forms; -using System.Diagnostics; -using System.Threading; -using System.Threading.Tasks; -using Tango.PMR.Stubs; -using Tango.Stubs; -using System.IO; - -//-------------------------------------------------------------------------------- -int Characterization; -UInt32 [] Motor_Dir=new UInt32 [8] {0,0,0,0,0,0,0,0}; - -string[] Dispenser_Fname= new string[9]; -string [] Dispenser_name= new string[8]; -string [] PCB_SN= new string[8]; -string [] Dispenser_PN= new string[8]; - -Int32 [,] Dispenser_no = new Int32 [8,2] {{-1,0},{-1,0},{-1,0},{-1,0},{-1,0},{-1,0},{-1,0},{-1,0}}; - -Int32 [] Dispenser_press= new Int32[8]{0,0,0,0,0,0,0,0}; -Int32 [] max_pressure_level = new Int32 [8] {20000,20000,20000,20000,20000,20000,20000,20000}; -Int32 [] min_pressure_level = new Int32 [8] {-20000,-20000,-20000,-20000,-20000,-20000,-20000,-20000}; - -Int32 [] A2D_Dispenser= new Int32[8]{0,0,0,0,0,0,0,0}; -Int32 [] Loop_cnt= new Int32[8]{1,1,1,1,1,1,1,1}; -Int32 [] Loop_length= new Int32[8]{1,1,1,1,1,1,1,1}; - -//byte [] Empty_EEprom=0; - -byte [] Empty_EEprom= new byte[8]; -byte [] Dry_Run_EEprom =new byte[8]; -byte [] Flow_EEprom =new byte[8]; - - - -Int32 msec_index=0; - -byte [] EEPROM_Data = new byte [128]; - -const int X_location =500;//260 -const int Y_location =40; - -Int32 [] Dispenser_sample_rate= new Int32[8]{1,1,1,1,1,1,1,1}; -//int dispenserNumber=1; -//int Table=0; -string shortDateString; -string ButtonPress; -string ButtonName; -UInt32 Type_card; - - -UInt32 RD_LS_01_Direct; -UInt32 RD_LS_02_Direct; -UInt32 RD_LS_03_Direct; -UInt32 RD_LS_04_Direct; - -OpenFileDialog _openFiledialog; - -CancellationTokenSource _cancellationTokenSource; -string path ; -string Tbl_File_Name; - -Int32 Press_Sensor_Type ;//0 - 0-10 Bar ; 1- (-1) - 10 Bar ; -ushort check_sum=0; - -//start mat -//-------------------------------------------------------------------------------- -[STAThread] -public void OnExecute(StubManager stubManager) -{ -Dispenser_Fname[0]=""; -Dispenser_Fname[1]=""; -Dispenser_Fname[2]=""; -Dispenser_Fname[3]=""; -Dispenser_Fname[4]=""; -Dispenser_Fname[5]=""; -Dispenser_Fname[6]=""; -Dispenser_Fname[7]=""; -//---------------------------------------------------------------------------------- -stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0X60000522, 0X128);//0X128 EQULE 50 MSEC - -//--------------------Create form------------------------------------------------- - Form form1 = new Form(); - _openFiledialog = new OpenFileDialog(); -//--------------------Set the caption bar text of the form------------------------ - form1.Text = "Dispenser Test V1.9"; - form1.TopMost = true; -//------- Define the border style of the form to a dialog box--------------------- - form1.FormBorderStyle = FormBorderStyle.FixedDialog; -//------Set the MaximizeBox to false to remove the maximize box------------------- - form1.MaximizeBox = false; -//------Set the MinimizeBox to false to remove the minimize box------------------- - form1.MinimizeBox = false; -//----Set the start position of the form to the center of the screen-------------- - form1.StartPosition = FormStartPosition.CenterScreen; - form1.AutoSize = true; - form1.AutoSizeMode = AutoSizeMode.GrowAndShrink; -//--------------create ListBox -------------------------------------- - // Create an instance of the ListBox. - ListBox listBox1 = new ListBox(); - // Set the size and location of the ListBox. - listBox1.Size = new System.Drawing.Size(200, 80); - listBox1.Location = new System.Drawing.Point(150,400); - // Add the ListBox to the form. - form1.Controls.Add(listBox1); - // Set the ListBox to display items in multiple columns. - listBox1.MultiColumn = false; - // Set the selection mode to multiple and extended. - listBox1.SelectionMode = SelectionMode.MultiExtended; - - // Shutdown the painting of the ListBox as items are added. - listBox1.BeginUpdate(); - listBox1.Items.Add("Press-Sensor 0 to 10 Bar"); - listBox1.Items.Add("Press-Sensor -1 to 10 Bar"); - listBox1.Items.Add("Temp"); - listBox1.Items.Add("Moti"); - listBox1.EndUpdate(); - - // Select one items from the ListBox. - string text="0"; - if (File.Exists("C:\\Dispenser_setup\\setup.txt")) - { - text = System.IO.File.ReadAllText(@"C:\Dispenser_setup\setup.txt") ; - } - - listBox1.SetSelected( Convert.ToInt32(text), true); -string Text_Blck; -string Text_Cyn; -string Text_Mgnt; -string Text_Ylw; -string Text_TI; - - if ( (listBox1.SelectedItem)=="Moti") - { - Text_Blck = "Blck"; - Text_Cyn = "Cyn"; - Text_Mgnt = "Mgnt"; - Text_Ylw = "Ylw"; - Text_TI = "TI"; - path = "P:\\TSKF\\BPT\\"; - } - else - { - Text_Blck = ""; - Text_Cyn = ""; - Text_Mgnt = ""; - Text_Ylw = ""; - Text_TI = ""; - path = "C:\\dispenser_setup\\Log\\"; -// path="%userprofile%\\Dropbox\\Dispenser_Tester\\Log\\"; -// path = "C:\\Dispenser_setup\\Log\\"; - } - - if ( (listBox1.SelectedItem)=="Press-Sensor -1 to 10 Bar") - { - stubManager.WriteLine("Press_Sensor_Type=1"); - Press_Sensor_Type=1; - } - else - { - stubManager.WriteLine("Press_Sensor_Type=0"); - Press_Sensor_Type=0; - } -//----------------------------------Dispenser 1 ------------------------------------------ -Label Label100 = new Label () - { - Width = 10, - Height = 20, - Text ="1" - }; - Label100.Location = new Point (5, 55); - form1.Controls.Add(Label100); -TextBox TextBox1 = new TextBox () - { - Width = 100, - Height = 10, - Text = Text_Blck, - }; -TextBox1.Location = new Point (20, 50); -TextBox1.CharacterCasing = CharacterCasing.Upper; - form1.Controls.Add(TextBox1); //dispencer 1 - - TextBox Press0 = new TextBox () - { - Width = 100, - Height = 10, - Text = "" - - }; -Press0.Location = new Point (135, 50); - form1.Controls.Add(Press0); //dispencer 1 - - TextBox PartNm0 = new TextBox () - { - Width = 100, - Height = 10, - Text = "" - - }; -PartNm0.Location = new Point (250, 50); - form1.Controls.Add(PartNm0); //dispencer 1 - - // Create and initialize a CheckBox. - CheckBox checkBox0 = new CheckBox(); - checkBox0.Location = new Point (370, 50); - form1.Controls.Add(checkBox0); -//----------------------------------Dispenser 2 ------------------------------------------ -Label Label102 = new Label () - { - Width = 10, - Height = 20, - Text ="2" - }; - Label102.Location = new Point (5, 85); - form1.Controls.Add(Label102); - - TextBox TextBox3 = new TextBox () - { - Width = 100, - Height = 10, - Text =Text_Cyn - }; -TextBox3.Location = new Point (20, 80); -TextBox3.CharacterCasing = CharacterCasing.Upper; -form1.Controls.Add(TextBox3); //dispencer 2 - - - TextBox Press1 = new TextBox () - { - Width = 100, - Height = 10, - Text = "" - - }; -Press1.Location = new Point (135, 80); - form1.Controls.Add(Press1); //dispencer 2 - - TextBox PartNm1 = new TextBox () - { - Width = 100, - Height = 10, - Text = "" - - }; -PartNm1.Location = new Point (250, 80); - form1.Controls.Add(PartNm1); //dispencer 2 - // Create and initialize a CheckBox. - CheckBox checkBox1 = new CheckBox(); - checkBox1.Location = new Point (370, 80); - form1.Controls.Add(checkBox1); - -//----------------------------------Dispenser 3 ------------------------------------------ -Label Label103 = new Label () - { - Width = 10, - Height = 20, - Text ="3" - }; - Label103.Location = new Point (5, 125); - form1.Controls.Add(Label103); - - TextBox TextBox4 = new TextBox () - { - Width = 100, - Height = 10, - Text =Text_Mgnt, - }; -TextBox4.Location = new Point (20, 120); -TextBox4.CharacterCasing = CharacterCasing.Upper; -form1.Controls.Add(TextBox4); //dispencer 3 - - TextBox Press2 = new TextBox () - { - Width = 100, - Height = 10, - Text = "" - - }; -Press2.Location = new Point (135, 120); - form1.Controls.Add(Press2); //dispencer3 - - TextBox PartNm2 = new TextBox () - { - Width = 100, - Height = 10, - Text = "" - - }; -PartNm2.Location = new Point (250, 120); - form1.Controls.Add(PartNm2); //dispencer 3 - // Create and initialize a CheckBox. - CheckBox checkBox2 = new CheckBox(); - checkBox2.Location = new Point (370, 120); - form1.Controls.Add(checkBox2); - -//----------------------------------Dispenser 4 ------------------------------------------ -Label Label104= new Label () - { - Width = 10, - Height = 20, - Text ="4" - }; - Label104.Location = new Point (5, 165); - form1.Controls.Add(Label104); - -TextBox TextBox5 = new TextBox () - { - Width = 100, - Height = 10, - Text =Text_Ylw, - }; -TextBox5.Location = new Point (20, 160); -TextBox5.CharacterCasing = CharacterCasing.Upper; - form1.Controls.Add(TextBox5); //dispencer 4 - - TextBox Press3 = new TextBox () - { - Width = 100, - Height = 10, - Text = "" - - }; -Press3.Location = new Point (135, 160); - form1.Controls.Add(Press3); //dispencer4 - - TextBox PartNm3 = new TextBox () - { - Width = 100, - Height = 10, - Text = "" - - }; -PartNm3.Location = new Point (250, 160); - form1.Controls.Add(PartNm3); //dispencer 4 - CheckBox checkBox3 = new CheckBox(); - checkBox3.Location = new Point (370, 160); - form1.Controls.Add(checkBox3); - - //----------------------------------Dispenser 5 ------------------------------------------ -Label Label101 = new Label () - { - Width = 10, - Height = 20, - Text ="5" - }; - Label101.Location = new Point (5, 205); - form1.Controls.Add(Label101); - - TextBox TextBox6 = new TextBox () - { - Width = 100, - Height = 10, - Text =Text_TI - }; -TextBox6.Location = new Point (20, 200); -TextBox6.CharacterCasing = CharacterCasing.Upper; - form1.Controls.Add(TextBox6); //dispencer 5 - - TextBox Press4 = new TextBox () - { - Width = 100, - Height = 10, - Text = "" - - }; -Press4.Location = new Point (135, 200); - form1.Controls.Add(Press4); //dispencer5 - - TextBox PartNm4 = new TextBox () - { - Width = 100, - Height = 10, - Text = "" - - }; -PartNm4.Location = new Point (250, 200); - form1.Controls.Add(PartNm4); //dispencer 5 - CheckBox checkBox4 = new CheckBox(); - checkBox4.Location = new Point (370, 200); - form1.Controls.Add(checkBox4); - - //----------------------------------Dispenser 6 ------------------------------------------ -Label Label106= new Label () - { - Width = 10, - Height = 20, - Text ="6" - }; - Label106.Location = new Point (5, 245); - form1.Controls.Add(Label106); - - TextBox TextBox7 = new TextBox () - { - Width = 100, - Height = 10, - Text ="" - }; -TextBox7.Location = new Point (20, 240); -TextBox7.CharacterCasing = CharacterCasing.Upper; - form1.Controls.Add(TextBox7); //dispencer 6 - - TextBox Press5 = new TextBox () - { - Width = 100, - Height = 10, - Text = "" - - }; -Press5.Location = new Point (135, 240); - form1.Controls.Add(Press5); //dispencer6 - - TextBox PartNm5 = new TextBox () - { - Width = 100, - Height = 10, - Text = "" - - }; -PartNm5.Location = new Point (250, 240); - form1.Controls.Add(PartNm5); //dispencer 6 - CheckBox checkBox5 = new CheckBox(); - checkBox5.Location = new Point (370, 240); - form1.Controls.Add(checkBox5); - - //----------------------------------Dispenser 7 ------------------------------------------ -Label Label107= new Label () - { - Width = 10, - Height = 20, - Text ="7" - }; - Label107.Location = new Point (5, 285); - form1.Controls.Add(Label107); - - TextBox TextBox8 = new TextBox () - { - Width = 100, - Height = 10, - Text ="" - }; -TextBox8.Location = new Point (20, 280); -TextBox8.CharacterCasing = CharacterCasing.Upper; - form1.Controls.Add(TextBox8); //dispencer 7 - - TextBox Press6 = new TextBox () - { - Width = 100, - Height = 10, - Text = "" - - }; -Press6.Location = new Point (135, 280); - form1.Controls.Add(Press6); //dispencer7 - - TextBox PartNm6 = new TextBox () - { - Width = 100, - Height = 10, - Text = "" - - }; -PartNm6.Location = new Point (250, 280); - form1.Controls.Add(PartNm6); //dispencer 6 - CheckBox checkBox6 = new CheckBox(); - checkBox6.Location = new Point (370, 280); - form1.Controls.Add(checkBox6); - -//----------------------------------Dispenser 8 ------------------------------------------ -Label Label108= new Label () - { - Width = 10, - Height = 20, - Text ="8" - }; - Label108.Location = new Point (5, 325); - form1.Controls.Add(Label108); - - TextBox TextBox9 = new TextBox () - { - Width = 100, - Height = 10, - Text ="" - }; -TextBox9.Location = new Point (20, 320); -TextBox9.CharacterCasing = CharacterCasing.Upper; - form1.Controls.Add(TextBox9); //dispencer 8 - - TextBox Press7 = new TextBox () - { - Width = 100, - Height = 10, - Text = "" - - }; -Press7.Location = new Point (135, 320); - form1.Controls.Add(Press7); //dispencer8 - - TextBox PartNm7 = new TextBox () - { - Width = 100, - Height = 10, - Text = "" - - }; -PartNm7.Location = new Point (250, 320); - form1.Controls.Add(PartNm7); //dispencer 7 - CheckBox checkBox7 = new CheckBox(); - checkBox7.Location = new Point (370, 320); - form1.Controls.Add(checkBox7); - - //-----------------------------File name ----------------------------------------- - TextBox TextBox10 = new TextBox () - { - Width = 210, - Height = 10, - Text ="" - }; -TextBox10.Location = new Point (270, 10); -TextBox10.CharacterCasing = CharacterCasing.Upper; -form1.Controls.Add(TextBox10); -//-----------------------------Dispenser Serial Number---------------------------------------- - -Label Label1 = new Label () - { - Width = 100, - Height = 40, - Text =" Dispenser S/N" - }; -Label1.Location = new Point (20, 32); - form1.Controls.Add(Label1); -//-----------------------------PCB Serial Number---------------------------------------- - -Label Label109 = new Label () - { - Width = 100, - Height = 40, - Text =" PCB S/N" - }; -Label109.Location = new Point (135, 32); - form1.Controls.Add(Label109); - //-----------------------------Dispenser Part Number---------------------------------------- - -Label Labe2109 = new Label () - { - Width = 100, - Height = 40, - Text =" Dispenser P/N" - }; -Labe2109.Location = new Point (250, 32); - form1.Controls.Add(Labe2109); - //-----------------------------Pass---------------------------------------- - -Label Labe3109 = new Label () - { - Width = 100, - Height = 40, - Text ="Pass" - }; -Labe3109.Location = new Point (360, 32); - form1.Controls.Add(Labe3109); - - -//---------------------- Seal Test -------------------------------------------- -Button button1 = new Button () - { - Width = 100, - Height = 100, - }; - - button1.Location = new Point (X_location,Y_location); - button1.Text = "Seal Test"; -form1.Controls.Add(button1); -//------------------------------------Priming -------------------------------------------- -Button button2 = new Button () - { - Width = 100, - Height = 100, - }; - button2.Location = new Point (X_location+110,Y_location); - button2.Text = "Priming"; - form1.Controls.Add(button2); -//------------------------------------Empty Process -------------------------------------------- -Button button3 = new Button () - { - Width = 100, - Height = 100, - }; - button3.Location = new Point (X_location+110,Y_location+220); -button3.Text = "Empty Process"; - form1.Controls.Add(button3); -//----------------------------------------- Load EEprom --------------------------------------- -Button button4 = new Button () - { - Width = 100, - Height = 100, - }; - button4.Location = new Point (X_location+220,Y_location); - button4.Text = "Load EEprom"; - form1.Controls.Add(button4); -//---------------------------------------Save EEprom ----------------------------------------- -Button button5 = new Button () - { - Width = 100, - Height = 100, - }; - button5.Location = new Point (X_location+220,Y_location+110); - button5.Text = "Save EEprom"; - form1.Controls.Add(button5); -//----------------------------------------Motor_Up ---------------------------------------- -Button button6 = new Button () - { - Width = 100, - Height = 100, - }; - button6.Location = new Point (X_location+330,Y_location); - button6.Text = "Up"; - form1.Controls.Add(button6); - -//--------------------------------------Motor_Down------------------------------------------ -Button button7 = new Button () - { - Width = 100, - Height = 100, - }; - button7.Location = new Point (X_location+330,Y_location+110); - button7.Text = "Down"; - form1.Controls.Add(button7); -//-------------------------------------Dynamic sealing positive pressure------------------------------------------- -Button button8 = new Button () - { - Width = 100, - Height = 100, - }; - button8.Location = new Point (X_location,Y_location+110); - button8.Text = "Dynamic sealing positive pressure"; - form1.Controls.Add(button8); -//---------------------------------- Dynamic sealing negative pressure ---------------------------------------------- -Button button9 = new Button () - { - Width = 100, - Height = 100, - }; - - button9.Location = new Point (X_location,Y_location+220); - button9.Text = "Dynamic sealing negative pressure"; - form1.Controls.Add(button9); -//-------------------------------- Flow Test------------------------------------------------ -Button button10 = new Button () - { - Width = 100, - Height = 100, - }; - button10.Location = new Point (X_location+110,Y_location+110); - button10.Text = "Flow Test"; - form1.Controls.Add(button10); -//---------------------------------------Spare ----------------------------------------- -Button button11 = new Button () - { - Width = 100, - Height = 100, - }; -button11.Location = new Point (X_location+330,Y_location+220); -button11.Text = "spare3"; - form1.Controls.Add(button11); -//-------------------------------------Valve Open------------------------------------------- -Button button12 = new Button () - { - Width = 100, - Height = 100, - }; - button12.Location = new Point (X_location+440,Y_location); - button12.Text = "Open Valve"; - form1.Controls.Add(button12); -//-------------------------------------Valve Close ------------------------------------------- -Button button13 = new Button () - { - Width = 100, - Height = 100, - }; - button13.Location = new Point (X_location+440,Y_location+110); - button13.Text = "Close Valve"; - form1.Controls.Add(button13); -//-----------------------------------Reliability Test --------------------------------------------- -Button button14 = new Button () - { - Width = 100, - Height = 100, - }; - button14.Location = new Point (X_location+220,Y_location+220); - button14.Text = "Reliability Test"; - form1.Controls.Add(button14); - //-----------------------------------Pressure build up --------------------------------------------- -Button button15 = new Button () - { - Width = 100, - Height = 100, - }; - button15.Location = new Point (X_location+440,Y_location+220); - button15.Text = "Pressure build up"; - form1.Controls.Add(button15); - //------------------------------- load file.. ------------------------------------------------- -Button button16 = new Button () - { - Width = 100, - Height = 20, - }; - button16.Location = new Point (160, 10); - button16.Text = "Load file"; - form1.Controls.Add(button16); -//------------------------------------run file -------------------------------------------- -Button button17 = new Button () - { - Width = 100, - Height = 20, - }; - button17.Location = new Point (490, 10); - button17.BackColor = System.Drawing.Color.Green; - button17.Text = "Run"; - form1.Controls.Add(button17); -//------------------------------------stop -------------------------------------------- -Button button18 = new Button () - { - Width = 100, - Height = 20, - }; - button18.Text = "Stop"; - button18.BackColor = System.Drawing.Color.Red; - button18.Location = new System.Drawing.Point(600, 10); - button18.Enabled =false; - - form1.Controls.Add(button18); -//--------------DispPress-------------------------------------------------------------------- -// void DispPress () -// { -// Press0.Text=Dispenser_press[0].ToString(); -// Press1.Text=Dispenser_press[1].ToString(); -// Press2.Text=Dispenser_press[2].ToString(); -// Press3.Text=Dispenser_press[3].ToString(); -// Press4.Text=Dispenser_press[4].ToString(); -// Press5.Text=Dispenser_press[5].ToString(); -// Press6.Text=Dispenser_press[6].ToString(); -// Press7.Text=Dispenser_press[7].ToString(); -// } - - -//---------------------- Seal Test -------------------------------------------- - button1.Click +=async (_,__) => - { - _cancellationTokenSource = new CancellationTokenSource(); - try - { - disable_test(); - var longRunningTask =await DispenserSetup(SealTest_Table,"SealTest"); - } - catch (OperationCanceledException) - { - enable_test(); - // Status="Cancel"; - stubManager.WriteLine("Task was cancelled"); - } - finally - { - _cancellationTokenSource.Dispose(); - stubManager.WriteLine("end Task "); - enable_test(); - } - }; -//------------------------------------Priming -------------------------------------------- - button2.Click += async(_,__) => - { - _cancellationTokenSource = new CancellationTokenSource(); - try - { - disable_test(); - var longRunningTask =await DispenserSetup(Priming_Table,"Priming"); - } - catch (OperationCanceledException) - { - enable_test(); - // Status="Cancel"; - stubManager.WriteLine("Task was cancelled"); - } - finally - { - _cancellationTokenSource.Dispose(); - stubManager.WriteLine("end Task "); - enable_test(); - } - }; -//------------------------------------Empty Process -------------------------------------------- - - button3.Click += async (_,__) => - { - _cancellationTokenSource = new CancellationTokenSource(); - try - { - disable_test(); - var longRunningTask =await DispenserSetup(EmptyProcess_Table,"EmptyProcess"); - } - catch (OperationCanceledException) - { - enable_test(); - // Status="Cancel"; - stubManager.WriteLine("Task was cancelled"); - } - finally - { - _cancellationTokenSource.Dispose(); - stubManager.WriteLine("end Task "); - enable_test(); - } - }; - -//----------------------------------------- Load EEprom --------------------------------------- - button4.Click += (_,__) => - { - disable_test(); - Load_EEPROM(); - LoadDispenserName(); - enable_test(); - }; - -//----------------------------------------- save EEprom --------------------------------------- - - button5.Click += (_,__) => - { - disable_test(); - Dispenser_name[0] = (TextBox1.Text); - Dispenser_name[1] = (TextBox3.Text); - Dispenser_name[2] = (TextBox4.Text); - Dispenser_name[3] = (TextBox5.Text); - Dispenser_name[4] = (TextBox6.Text); - Dispenser_name[5] = (TextBox7.Text); - Dispenser_name[6] = (TextBox8.Text); - Dispenser_name[7] = (TextBox9.Text); - - PCB_SN[0]=(Press0.Text); - PCB_SN[1]=(Press1.Text); - PCB_SN[2]=(Press2.Text); - PCB_SN[3]=(Press3.Text); - PCB_SN[4]=(Press4.Text); - PCB_SN[5]=(Press5.Text); - PCB_SN[6]=(Press6.Text); - PCB_SN[7]=(Press7.Text); - - Dispenser_PN[0]=(PartNm0.Text); - Dispenser_PN[1]=(PartNm1.Text); - Dispenser_PN[2]=(PartNm2.Text); - Dispenser_PN[3]=(PartNm3.Text); - Dispenser_PN[4]=(PartNm4.Text); - Dispenser_PN[5]=(PartNm5.Text); - Dispenser_PN[6]=(PartNm6.Text); - Dispenser_PN[7]=(PartNm7.Text); - - - //----------------------------------------- - if (checkBox0.Checked) - { - Empty_EEprom[0] = 80; //"P" - Dry_Run_EEprom[0]= 80; //"P" - Flow_EEprom[0]= 80; //"P" - } - else - { - Empty_EEprom[0] = 70; //"F" - Dry_Run_EEprom[0]= 70; //"F" - Flow_EEprom[0]= 70; //"F" - } -//----------------------------------------- - if (checkBox1.Checked) - { - Empty_EEprom[1] = 80; //"P" - Dry_Run_EEprom[1]= 80; //"P" - Flow_EEprom[1]= 80; //"P" - } - else - { - Empty_EEprom[1] = 70; //"F" - Dry_Run_EEprom[1]= 70; //"F" - Flow_EEprom[1]= 70; //"F" - } -//----------------------------------------- - if (checkBox2.Checked) - { - Empty_EEprom[2] = 80; //"P" - Dry_Run_EEprom[2]= 80; //"P" - Flow_EEprom[2]= 80; //"P" - } - else - { - Empty_EEprom[2] = 70; //"F" - Dry_Run_EEprom[2]= 70; //"F" - Flow_EEprom[2]= 70; //"F" - } -//----------------------------------------- - if (checkBox3.Checked) - { - Empty_EEprom[3] = 80; //"P" - Dry_Run_EEprom[3]= 80; //"P" - Flow_EEprom[3]= 80; //"P" - } - else - { - Empty_EEprom[3] = 70; //"F" - Dry_Run_EEprom[3]= 70; //"F" - Flow_EEprom[3]= 70; //"F" - } -//----------------------------------------- - if (checkBox4.Checked) - { - Empty_EEprom[4] = 80; //"P" - Dry_Run_EEprom[4]= 80; //"P" - Flow_EEprom[4]= 80; //"P" - } - else - { - Empty_EEprom[4] = 70; //"F" - Dry_Run_EEprom[4]= 70; //"F" - Flow_EEprom[4]= 70; //"F" - } -//----------------------------------------- - if (checkBox5.Checked) - { - Empty_EEprom[5] = 80; //"P" - Dry_Run_EEprom[5]= 80; //"P" - Flow_EEprom[5]= 80; //"P" - } - else - { - Empty_EEprom[5] = 70; //"F" - Dry_Run_EEprom[5]= 70; //"F" - Flow_EEprom[5]= 70; //"F" - } -//----------------------------------------- - if (checkBox6.Checked) - { - Empty_EEprom[6] = 80; //"P" - Dry_Run_EEprom[6]= 80; //"P" - Flow_EEprom[6]= 80; //"P" - } - else - { - Empty_EEprom[6] = 70; //"F" - Dry_Run_EEprom[6]= 70; //"F" - Flow_EEprom[6]= 70; //"F" - } -//----------------------------------------- - if (checkBox7.Checked) - { - Empty_EEprom[7] = 80; //"P" - Dry_Run_EEprom[7]= 80; //"P" - Flow_EEprom[7]= 80; //"P" - } - else - { - Empty_EEprom[7] = 70; //"F" - Dry_Run_EEprom[7]= 70; //"F" - Flow_EEprom[7]= 70; //"F" - } - - Save_EEPROM(); - enable_test(); - - }; - //----------------------------------------Motor_Up ---------------------------------------- - button6.Click +=async(_,__) => - { - _cancellationTokenSource = new CancellationTokenSource(); - try - { - disable_test(); - var longRunningTask =await DispenserSetup(Up_Table,"MotorUp"); - } - catch (OperationCanceledException) - { - enable_test(); - // Status="Cancel"; - stubManager.WriteLine("Task was cancelled"); - } - finally - { - _cancellationTokenSource.Dispose(); - stubManager.WriteLine("end Task "); - enable_test(); - - } - }; -//--------------------------------------Motor_Down Homing------------------------------------------ - button7.Click += async(_,__) => - { - _cancellationTokenSource = new CancellationTokenSource(); - try - { - disable_test(); - var longRunningTask =await DispenserSetup(Down_Table,"Homing"); - } - catch (OperationCanceledException) - { - enable_test(); - // Status="Cancel"; - stubManager.WriteLine("Task was cancelled"); - } - finally - { - _cancellationTokenSource.Dispose(); - stubManager.WriteLine("end Task "); - enable_test(); - - } - }; -//-------------------------------------Dynamic sealing positive pressure------------------------------------------- - - button8.Click += async(_,__) => - { - _cancellationTokenSource = new CancellationTokenSource(); - try - { - disable_test(); - var longRunningTask =await DispenserSetup(DynamicPositive_Table,"Dynamic Positive"); - } - catch (OperationCanceledException) - { - enable_test(); - // Status="Cancel"; - stubManager.WriteLine("Task was cancelled"); - } - finally - { - _cancellationTokenSource.Dispose(); - stubManager.WriteLine("end Task "); - enable_test(); - } - }; -//---------------------------------- Dynamic sealing negative pressure ---------------------------------------------- - button9.Click +=async (_,__) => - { - _cancellationTokenSource = new CancellationTokenSource(); - try - { - disable_test(); - var longRunningTask =await DispenserSetup(DynamicNegative_Table,"Dynamic Negative"); - } - catch (OperationCanceledException) - { - enable_test(); - // Status="Cancel"; - stubManager.WriteLine("Task was cancelled"); - } - finally - { - _cancellationTokenSource.Dispose(); - stubManager.WriteLine("end Task "); - enable_test(); - } - }; -//-------------------------------- Flow Test------------------------------------------------ - button10.Click += async(_,__) => - { - _cancellationTokenSource = new CancellationTokenSource(); - try - { - disable_test(); - var longRunningTask =await DispenserSetup(Flow_Table,"Flow Test"); - } - catch (OperationCanceledException) - { - enable_test(); - // Status="Cancel"; - stubManager.WriteLine("Task was cancelled"); - } - finally - { - _cancellationTokenSource.Dispose(); - stubManager.WriteLine("end Task "); - enable_test(); - } - }; - -//---------------------------------------Homing no need ----------------------------------------- -// button11.Click += (_,__) => -// { -// ButtonName = "Homing"; -// Dispenser_name[0] = (TextBox1.Text); -// Dispenser_name[1] = (TextBox3.Text); -// Dispenser_name[2] = (TextBox4.Text); -// Dispenser_name[3] = (TextBox5.Text); -// Dispenser_name[4] = (TextBox6.Text); -// Dispenser_name[5] = (TextBox7.Text); -// Dispenser_name[6] = (TextBox8.Text); -// Dispenser_name[7] = (TextBox9.Text); -// Table=2; -// -// DispenserSetup(); -// }; -//-------------------------------------Valve Open------------------------------------------- - - button12.Click += (_,__) => - { - ButtonName = "Open Valve"; - valveopen(stubManager); - }; - -//-------------------------------------Valve Close ------------------------------------------- - button13.Click += (_,__) => - { - ButtonName = "Close Valve"; - valveclose(stubManager); - }; - -//-----------------------------------Reliability Test --------------------------------------------- - button14.Click += async(_,__) => - { - _cancellationTokenSource = new CancellationTokenSource(); - try - { - disable_test(); - var longRunningTask =await DispenserSetup(Reliability_Table,"Reliability Test"); - } - catch (OperationCanceledException) - { - enable_test(); - // Status="Cancel"; - stubManager.WriteLine("Task was cancelled"); - } - finally - { - _cancellationTokenSource.Dispose(); - stubManager.WriteLine("end Task "); - enable_test(); - } - }; - //-----------------------------------Pressure build up --------------------------------------------- - button15.Click += async(_,__) => - { - _cancellationTokenSource = new CancellationTokenSource(); - try - { - disable_test(); - var longRunningTask =await DispenserSetup(BuildUp_Table,"Pressure Build Up"); - } - catch (OperationCanceledException) - { - enable_test(); - // Status="Cancel"; - stubManager.WriteLine("Task was cancelled"); - } - finally - { - _cancellationTokenSource.Dispose(); - stubManager.WriteLine("end Task "); - enable_test(); - } - }; - -//------------------------------- load file.. ------------------------------------------------- - button16.Click += (_,__) => - { - try - { - Thread t = new Thread(() => { - OpenFileDialog dlg = new OpenFileDialog(); - // The following would not return the dialog if the current - // thread is not STA - dlg.Filter = "TBL|*.tbl"; - if(dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK) - { - TextBox10.Text= dlg.SafeFileName; - Tbl_File_Name=TextBox10.Text; - } - }); - t.SetApartmentState(ApartmentState.STA); - t.Start(); - } - catch (Exception ex) - { - stubManager.WriteLine("exseption"); - //ex.LogException(); - } - }; - //------------------------------------run file -------------------------------------------- - button17.Click += async(_,__) => - { - // stubManager.WriteLine(Tbl_File_Name +" -1"); - - if ((ConverFileToTBL(Tbl_File_Name)) ==0) - { - stubManager.WriteLine(Tbl_File_Name +" --ok"); - - _cancellationTokenSource = new CancellationTokenSource(); - try - { - disable_test(); - string[] FileName = Tbl_File_Name.Split('.'); - var longRunningTask =await DispenserSetup(Start_Table,FileName[0]); - } - catch (OperationCanceledException) - { - enable_test(); - // Status="Cancel"; - stubManager.WriteLine("Task was cancelled"); - } - finally - { - _cancellationTokenSource.Dispose(); - stubManager.WriteLine("end Task "); - enable_test(); - } - } - else - { - _cancellationTokenSource = new CancellationTokenSource(); - _cancellationTokenSource.Dispose(); - stubManager.WriteLine("Error Table "); - } - - }; -//------------------------------------stop -------------------------------------------- - button18.Click += (_, __) => - { - _cancellationTokenSource.Cancel(); - stubManager.WriteLine("stop "); - - // ButtonName = "Stop"; - - - //TextBox1.Text =""; - }; - - //--------------------load dispenser name ------------------------ - void LoadDispenserName () - { - (TextBox1.Text) = Dispenser_name[0]; - (TextBox3.Text) = Dispenser_name[1]; - (TextBox4.Text) = Dispenser_name[2]; - (TextBox5.Text) = Dispenser_name[3]; - (TextBox6.Text) = Dispenser_name[4]; - (TextBox7.Text) = Dispenser_name[5]; - (TextBox8.Text) = Dispenser_name[6]; - (TextBox9.Text) = Dispenser_name[7]; - - - (Press0.Text)=PCB_SN[0]; - (Press1.Text)=PCB_SN[1]; - (Press2.Text)=PCB_SN[2]; - (Press3.Text)=PCB_SN[3]; - (Press4.Text)=PCB_SN[4]; - (Press5.Text)=PCB_SN[5]; - (Press6.Text)=PCB_SN[6]; - (Press7.Text)=PCB_SN[7]; - - (PartNm0.Text)=Dispenser_PN[0]; - (PartNm1.Text)=Dispenser_PN[1]; - (PartNm2.Text)=Dispenser_PN[2]; - (PartNm3.Text)=Dispenser_PN[3]; - (PartNm4.Text)=Dispenser_PN[4]; - (PartNm5.Text)=Dispenser_PN[5]; - (PartNm6.Text)=Dispenser_PN[6]; - (PartNm7.Text)=Dispenser_PN[7]; - - - } - - -//--------------------disabele test ------------------------ - void disable_test() - { - - if ( (listBox1.SelectedItem)=="Press-Sensor -1 to 10 Bar") - { - stubManager.WriteLine("Press_Sensor_Type=1"); - Press_Sensor_Type=1; - } - else - { - stubManager.WriteLine("Press_Sensor_Type=0"); - Press_Sensor_Type=0; - } - - button1.Enabled =false; - button2.Enabled =false; - button3.Enabled =false; - button4.Enabled =false; - button5.Enabled =false; - button6.Enabled =false; - button7.Enabled =false; - button8.Enabled =false; - button9.Enabled =false; - button10.Enabled =false; - button11.Enabled =false; - button12.Enabled =false; - button13.Enabled =false; - button14.Enabled =false; - button15.Enabled =false; - button16.Enabled =false; - button17.Enabled =false; - button18.Enabled =true; - - - Dispenser_name[0] = (TextBox1.Text); - Dispenser_name[1] = (TextBox3.Text); - Dispenser_name[2] = (TextBox4.Text); - Dispenser_name[3] = (TextBox5.Text); - Dispenser_name[4] = (TextBox6.Text); - Dispenser_name[5] = (TextBox7.Text); - Dispenser_name[6] = (TextBox8.Text); - Dispenser_name[7] = (TextBox9.Text); - - PCB_SN[0]=(Press0.Text); - PCB_SN[1]=(Press1.Text); - PCB_SN[2]=(Press2.Text); - PCB_SN[3]=(Press3.Text); - PCB_SN[4]=(Press4.Text); - PCB_SN[5]=(Press5.Text); - PCB_SN[6]=(Press6.Text); - PCB_SN[7]=(Press7.Text); - - - Dispenser_PN[0]=(PartNm0.Text); - Dispenser_PN[1]=(PartNm1.Text); - Dispenser_PN[2]=(PartNm2.Text); - Dispenser_PN[3]=(PartNm3.Text); - Dispenser_PN[4]=(PartNm4.Text); - Dispenser_PN[5]=(PartNm5.Text); - Dispenser_PN[6]=(PartNm6.Text); - Dispenser_PN[7]=(PartNm7.Text); - - - - - - } -//--------------------enable test ------------------------ - - void enable_test() - { - button1.Enabled =true; - button2.Enabled =true; - button3.Enabled =true; - button4.Enabled =true; - button5.Enabled =true; - button6.Enabled =true; - button7.Enabled =true; - button8.Enabled =true; - button9.Enabled =true; - button10.Enabled =true; - button11.Enabled =true; - button12.Enabled =true; - button13.Enabled =true; - button14.Enabled =true; - button15.Enabled =true; - button16.Enabled =true; - button17.Enabled =true; - button18.Enabled =false; - - for (Int32 i=0;i<8;i++) - { - MotorStop(i); - } - - // stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,WINDER_Motor,3); //stop motor - // stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,SCREW,3); //stop motor - - } - - - -// Display the form as a modal dialog box. - form1.ShowDialog(); - - - for (Int32 i=0;i<8;i++) - { - MotorStop(i); - stubManager.Write("Motor Stop Hard Hiz \t"); - - System.IO.File.WriteAllText(@"C:\Dispenser_setup\setup.txt", listBox1.SelectedIndex.ToString()); - - stubManager.Write(listBox1.SelectedItem); - } - - return; -} - -public int delay(Int32 ms_delay) - { - - Thread.Sleep(ms_delay); - if (_cancellationTokenSource.Token.IsCancellationRequested) - { - _cancellationTokenSource.Token.ThrowIfCancellationRequested(); - throw new TaskCanceledException(); - return 0; - } - return 0; - } diff --git a/Software/Stubs Collection/stubs/Scripts/Head_EEPROM.cs b/Software/Stubs Collection/stubs/Scripts/Head_EEPROM.cs deleted file mode 100644 index 1b3ab7213..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Head_EEPROM.cs +++ /dev/null @@ -1,135 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -//---------------------- -const Int32 I2C_ID = 3; //MCU_I2C3 -const Int32 TCA9548A_address = 0xE2; -const Int32 I2C_Slave_Add = 0xA0; // //eeprom address - 32kByte -int Head_Mux_Channel_ID = 4; //Head MUX channel -//---------------------- - - -int enable_channel(int Channel_ID) -{ - uint Const_temp = 0x01; - - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = TCA9548A_address; - - Const_temp = Const_temp << Channel_ID; - stubI2CWriteBytesRequest.BytesTWrite.Add(Const_temp); - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; -} - - -int adc_write(uint I2C_Slave_Add, uint Page) -{ - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write - //-------------------------------------------------------------- - - stubI2CWriteBytesRequest.BytesTWrite.Add(0x12 + Page);//Data 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(0x34 + Page);//Data 1 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(0x56 + Page);//Data 2 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(0x78 + Page);//Data 3 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(0x90 + Page);//Data 4 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(0xAB + Page);//Data 5 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(0xCD + Page);//Data 6 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(0xEF + Page);//Data 7 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(0x01 + Page);//Data 8 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(0x02 + Page);//Data 9 to write - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; -} - -int adc_set_for_read_ch(uint I2C_Slave_Add, uint Page) -{ - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; -} - -int adc_read_ch(uint I2C_Slave_Add) -{ - StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest(); - stubI2CReadBytesRequest.I2CId = I2C_ID; - stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add + 1; - stubI2CReadBytesRequest.NumberOfBytesToRead = 10; // Number of bytes to read - - var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest); - uint temph=0; - - for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++) - { - temph=response1.ReadBytes[i]; - stubManager.WriteHex(temph,2); - } - - return 1; -} - - -public void OnExecute(StubManager stubManager) -{ - - //enable_all_channel(); - enable_channel(Head_Mux_Channel_ID); // Chanel 0-7 => Disp0enser 0-7 - - for (int i = 0; i<1; i++) - { - - adc_write(I2C_Slave_Add,0x10); - Thread.Sleep(10); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet ) - - adc_write(I2C_Slave_Add,0x00); - Thread.Sleep(10); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet ) - - stubManager.Write("\nPage 0x10 #"); - stubManager.Write(i); - stubManager.Write("\t- The Buffer is: "); - adc_set_for_read_ch(I2C_Slave_Add,0x10); - //Thread.Sleep(1); //Sleep for 10 milli. - adc_read_ch(I2C_Slave_Add); - - Thread.Sleep(10); - - stubManager.Write("\nPage 0x00 #"); - stubManager.Write(i); - stubManager.Write("\t- The Buffer is: "); - adc_set_for_read_ch(I2C_Slave_Add, 0x00); - //Thread.Sleep(1); //Sleep for 10 milli. - adc_read_ch(I2C_Slave_Add); - - Thread.Sleep(1000); - - } -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Head_Type_Indification.cs b/Software/Stubs Collection/stubs/Scripts/Head_Type_Indification.cs deleted file mode 100644 index 948b847af..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Head_Type_Indification.cs +++ /dev/null @@ -1,25 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - - var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFEAD, 0); - - /* Response: - HEAD_TYPE_UNKNOWN // 0 - HEAD_TYPE_SYLKO_WITHOUT_CARD// 1 - HEAD_TYPE_UNKNOWN_WITH_CARD// 2 - HEAD_TYPE_SYLKO// 3 - HEAD_TYPE_STAPLE_SPUN// 4 - */ -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Head_Type_Indification_2.cs b/Software/Stubs Collection/stubs/Scripts/Head_Type_Indification_2.cs deleted file mode 100644 index a5f28a01d..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Head_Type_Indification_2.cs +++ /dev/null @@ -1,25 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - - var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFEAD, 0); - - /* Response: - HEAD_TYPE_UNKNOWN // 0 - HEAD_TYPE_FLAT_WITHOUT_CARD// 1 - HEAD_TYPE_UNKNOWN_WITH_CARD// 2 - HEAD_TYPE_FLAT// 3 - HEAD_TYPE_ARC// 4 - */ -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/I2C_RW_Dispenser_EEPROM.cs b/Software/Stubs Collection/stubs/Scripts/I2C_RW_Dispenser_EEPROM.cs deleted file mode 100644 index 3c4a1d70a..000000000 --- a/Software/Stubs Collection/stubs/Scripts/I2C_RW_Dispenser_EEPROM.cs +++ /dev/null @@ -1,134 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -//---------------------- -const Int32 I2C_ID = 4; //MCU_I2C4 -const Int32 TCA9548A_address = 0xE2; -//const Int32 I2C_Slave_Add = 0xA0; // //eeprom address - 32kByte & 128kByte -const Int32 I2C_Slave_Add = 0xA2; //eeprom address - only in the eeprom of 128kByte -int Dispenser_ID = 6; //Software Dispensers 0..7, BP Dispensers 1..8 -//---------------------- - -int enable_all_channel() -{ - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = TCA9548A_address; - - stubI2CWriteBytesRequest.BytesTWrite.Add(0xff);//enable all 8 i2c channel - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; -} - -int enable_channel(int Channel_ID) -{ - uint Const_temp = 0x01; - - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = TCA9548A_address; - - Const_temp = Const_temp << Channel_ID; - stubI2CWriteBytesRequest.BytesTWrite.Add(Const_temp);//enable i2c channel 0 Dispenser 1 - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; -} - - -int adc_write(uint I2C_Slave_Add) -{ - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write - //-------------------------------------------------------------- - stubI2CWriteBytesRequest.BytesTWrite.Add(0x12);//Data 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(0x34);//Data 1 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(0x56);//Data 2 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(0x78);//Data 3 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(0x90);//Data 4 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(0xAB);//Data 5 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(0xCD);//Data 6 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(0xEF);//Data 7 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(0x01);//Data 8 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(0x02);//Data 9 to write - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; -} - -int adc_set_for_read_ch(uint I2C_Slave_Add) -{ - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; -} - -int adc_read_ch(uint I2C_Slave_Add) -{ - StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest(); - stubI2CReadBytesRequest.I2CId = I2C_ID; - stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add + 1; - stubI2CReadBytesRequest.NumberOfBytesToRead = 10; // Number of bytes to read - - var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest); - uint temph=0; - - for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++) - { - temph=response1.ReadBytes[i]; - stubManager.WriteHex(temph,2); - } - - return 1; -} - - -public void OnExecute(StubManager stubManager) -{ - - //enable_all_channel(); - enable_channel(Dispenser_ID); // Chanel 0-7 => Disp0enser 0-7 - - for (int i = 0; i<100; i++) - { - - adc_write(I2C_Slave_Add); - Thread.Sleep(5); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet ) - stubManager.Write("\n#"); - stubManager.Write(i); - stubManager.Write("\t- The Buffer is: "); - adc_set_for_read_ch(I2C_Slave_Add); - //Thread.Sleep(1); //Sleep for 10 milli. - adc_read_ch(I2C_Slave_Add); - - Thread.Sleep(1000); - - } -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/I2C_RW_Main_Card_EEPROM_Save_Main_SN.cs b/Software/Stubs Collection/stubs/Scripts/I2C_RW_Main_Card_EEPROM_Save_Main_SN.cs deleted file mode 100644 index 6ec538758..000000000 --- a/Software/Stubs Collection/stubs/Scripts/I2C_RW_Main_Card_EEPROM_Save_Main_SN.cs +++ /dev/null @@ -1,98 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -//---------------------- -const Int32 I2C_ID = 2; //MCU_I2C2 - -const Int32 I2C_Slave_Add = 0xA0; //Slave (EEPROM) address - -string str = "UM181700004";//main card S/N - -uint length = 11; -int i = 0; - -//---------------------- - -int adc_write(uint I2C_Slave_Add) -{ - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write - //-------------------------------------------------------------- - - for(i=0;i<length;i++) - stubI2CWriteBytesRequest.BytesTWrite.Add(str[i]);//Data 0 to write - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; -} - -int adc_set_for_read_ch(uint I2C_Slave_Add) -{ - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; -} - -int adc_read_ch(uint I2C_Slave_Add) -{ - StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest(); - stubI2CReadBytesRequest.I2CId = I2C_ID; - stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add + 1; - stubI2CReadBytesRequest.NumberOfBytesToRead = length; // Number of bytes to read - - var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest); - uint temph=0; - - for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++) - { - temph=response1.ReadBytes[i]; - stubManager.Write((char) temph); - } - - return 1; -} - - -public void OnExecute(StubManager stubManager) -{ - - for (int i = 0; i<1; i++) - { - - adc_write(I2C_Slave_Add); - Thread.Sleep(5); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet ) - stubManager.Write("\n"); - - stubManager.Write("The eeprom data: "); - adc_set_for_read_ch(I2C_Slave_Add); - - adc_read_ch(I2C_Slave_Add); - - Thread.Sleep(1000); - - } -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Dryer_Jig.cs b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Dryer_Jig.cs deleted file mode 100644 index 91b8944ca..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Dryer_Jig.cs +++ /dev/null @@ -1,457 +0,0 @@ -using System; -using System.Text; -using System.IO; -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.Stubs; -using Tango.Stubs; - - - -const int Dryer_UNDER_TEST=12; -//-------------------------------------------------------------------------------- -//--------------------------- -Int32 last_14bit_position; -Int32 position_32bit=0; -float [] DryerTemp = new float[20] ; - - -string [,] Units_status_Dryer = new string[Dryer_UNDER_TEST,2] { - {"Lid_Motor","Not Test"}, //0 - {"LS_Lid_Open","Not Test"}, //1 - {"LS_Lid_Close","Not Test"}, //2 - {"DRIVING_Motor","Not Test"}, //3 - {"SSI_Encoder","Not Test"}, //4 - {"LoadArm_Motor","Not Test"}, //5 - {"Blower_test","Not Test"}, //6 - {"Air_PT100_test","Not Test"}, //7 - {"Main_PT100_test","Not Test"}, //8 - {"Sec.PT100","Not Test"}, //9 - {"SSR1_heater","Not Test"}, //10 - {"SSR2_heater","Not Test"}, //11 - }; - - - -//-------------------------------------------------------------------------------- - - -public Task<decimal> Dryer_test( Action<string> settext, CancellationToken cancellationToken, string SN, string Location ) -{ - Task<decimal> task = null; - // Start a task and return it - task = Task.Run(() => - { - stubManager.Write("S/N:" +SN+ "\n"); - stubManager.Write("Location:" +Location+ "\n"); - - copy_table (Dryer_UNDER_TEST,Units_status_Dryer); - - settext("Test Dryer LId"); - Test_LId(); - - settext("Test Dryer motor Driving"); - Test_motor_driving(); - - settext("Test Dryer Load Arm"); - Test_Load_Arm (); - - settext("Test Dryer Blower heaters pt100"); - Test_Blower_heaters_pt100(); - - Status=write_to_file(SN,Location,Dryer_UNDER_TEST,"Dryer"); - - settext("End Test"); - - decimal result = 0; - - return result; - }); - return task; -} -//------------------------------------------ -int Test_Blower_heaters_pt100() -{ - - float ftemp=0; - float ftemp1=0; - - SetBit(F1_gpo_01,5,1); //turn off Blower - delay(500); - - var RetVal=Fpga_Read_Reg(F1_Tacho_reg8); - - DialogResult result = MessageBox.Show("Close Dryer Door", "Warning"); - - SetBit(F1_gpo_01,4,1); //Dir - SetBit(F1_gpo_01,3,1); //Torqer High - SetBit(F1_gpo_01,5,0); //turn on Blower - - const int LOW = 70;//0 - 100% - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F2_Prescaler1_reg11, 0xFF);//Freq 8 bit - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F2_BLOWER_PWM_LOW, LOW+1);//Low 8 bit - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F2_BLOWER_PWM_HIGH, 101 - LOW);//High 8 bit - - delay(1000); - RetVal=Fpga_Read_Reg(F1_Tacho_reg8); - stubManager.Write("blower Speed- " + RetVal.Value + "\n"); - if ((RetVal.Value<150)||(RetVal.Value>250) ) - { - Units_status[6,1]="Fail"; - stubManager.Write("Error,Fan rotate\n"); - return 0; - } - Units_status[6,1]="Pass"; - - stubManager.Write("Temp Befor heating \n"); - if (test_pt100_dryer()!=0) - return 0; - -float temp=0; -float temp1=4096*95*5; - - //Write GPO_DRYER_SSR1_CTRL SSR/SSR no. 1 - SetBit (F2_CTRL, 10, 1); //turn SSR1 on - stubManager.Write("\tTesting SSR no. 1\t"); - delay(1000); -var response1 = stubManager.Run<StubIntADCReadResponse>("StubIntADCReadRequest" ,16); - temp=Convert.ToUInt32 (response1.SamplingInBits); - temp=temp*800*3*100; - temp=temp/(4096*95*50); - stubManager.Write("Current = "+ temp + "A\n"); - if ((temp>6) || (temp<3)) - Units_status[10,1]="Fail"; - else - Units_status[10,1]="Pass"; - - //Write GPO_DRYER_SSR2_CTRL SSR/SSR no. 2 - SetBit (F2_CTRL, 9, 1); - stubManager.Write("\tTesting SSR no. 2\t"); - delay(1000); - response1 = stubManager.Run<StubIntADCReadResponse>("StubIntADCReadRequest" ,17); - temp=Convert.ToUInt32 (response1.SamplingInBits); - temp=temp*800*3*100; - temp=temp/(4096*95*100); - stubManager.Write("Current = "+ temp + "A\n"); - if ((temp>3) || (temp<1)) - Units_status[11,1]="Fail"; - else - Units_status[11,1]="Pass"; - - delay(50000); - -//check air temp - ftemp=Read_pt100(6); - stubManager.Write("After heating air temp is " + ftemp + "\n"); - ftemp = ftemp - DryerTemp[6]; - if ((ftemp<5)||(ftemp>40)) - Units_status[7,1]="Fail"; - else - Units_status[7,1]="Pass"; - - - -//check Main temp - ftemp=Read_pt100(7); - stubManager.Write("After heating Main temp is " + ftemp + "\n"); - ftemp = ftemp - DryerTemp[7]; - if ((ftemp<5)||(ftemp>60)) - Units_status[8,1]="Fail"; - else - Units_status[8,1]="Pass"; - -//check Sec. temp - ftemp=Read_pt100(8); - stubManager.Write("After heating Sec. temp is " + ftemp + "\n"); - ftemp = ftemp - DryerTemp[8]; - if ((ftemp<5)||(ftemp>60)) - Units_status[9,1]="Fail"; - else - Units_status[9,1]="Pass"; - - SetBit (F2_CTRL, 10, 0); //turn SSR1 off - SetBit (F2_CTRL, 9, 0); //turn SSR2 off - - SetBit(F1_gpo_01,5,1); //turn off Blower - return 1; - -} - - int test_pt100_dryer() - { - float ftemp=0; - int temp=0; - int j=0; - for (int i = 6; i < 9; i++) - { - DryerTemp[i]=Read_pt100(i); - - ftemp=DryerTemp[i]; - if ((ftemp>140)|| (ftemp<10)) - { - Units_status[i+1,1]="Fail"; - } - else - { - Units_status[i+1,1]="Pass"; - } - stubManager.Write(Units_status[i+1,0] +"\t"+ ftemp.ToString("F2")); - stubManager.Write("°C \t" + Units_status[i+1,1] + " \n"); - - } - return 0; - } -//------------------------------------------ -int Test_motor_driving () - -{ - MessageBox.Show("Open Dryer Door and add CHEATER to Door. ", "Warning"); - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DryerMain_Motor, true, 2200); //rotate Dryer Motor. - stubManager.Write("Dryer Motor rotate \n "); - DialogResult result = MessageBox.Show("Are Dryer Motor rotate smoothly ?", "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.No) - { - Units_status[3,1]="Fail"; - stubManager.Write("Dryer Motor not rotate\n"); - } - else - { - Units_status[3,1]="Pass"; - stubManager.Write("Dryer Motor rotate\n"); - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DryerMain_Motor,3); //stop motor - - return 0; -} -//---------------------------------- -int Test_Load_Arm() -{ - - Int32 temp3=0; - Int32 j=0; - Int32 i=0; - - if (!Encoder_Dryer_Exist()) - { - Units_status[4,1]="Fail"; - stubManager.Write("Encoder of Dryer Fail \n"); - return 0; - - } -// position_32bit=0; -//last_14bit_position - ReadEncoder_Dryer(); - position_32bit=0; - ReadEncoder_Dryer(); - Int32 temp=position_32bit; - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, false, 100);//40 - delay(50); -// temp=ReadEncoder_Dryer(); - while ((temp3<2)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min - { - i++; - delay(50); - ReadEncoder_Dryer(); -// stubManager.Write("position_32bit " + position_32bit +"\t"); - - if (Math.Abs(position_32bit)> (50*0x4000)) - temp3=3; - if ((position_32bit-temp)>20) - temp3++; -// stubManager.Write("Temp " + temp +"\n"); - temp=position_32bit; -// stubManager.Write("Temp3 " + temp3 +"\n"); - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3); - - DialogResult result1 = MessageBox.Show("Arm Motor rotate ?", "Warning",MessageBoxButtons.YesNo); - if(result1 == DialogResult.No) - { - Units_status[5,1]="Fail"; - stubManager.Write("Arm Motor Not rotate\n"); - return 0; - } - Units_status[5,1]="Pass"; - - DialogResult result2 = MessageBox.Show("Did Arm Motor arrive to mechanical stopper?. See picture on document", "Warning",MessageBoxButtons.YesNo); - if(result2 == DialogResult.No) - { - Units_status[4,1]="Fail"; - stubManager.Write("Arm Motor Not arrive to mecahnicl stopper \n"); - return 0; - } - - position_32bit=0; - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, true, 100); - delay(50); - i=0; - temp3=0; - - - while ((temp3<1)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min - { - - -// while ((Math.Abs(ReadEncoder_Dryer())< (30*0x4000))&& (i<12000)) -// -// { - delay(50); - i++; -// stubManager.Write("position_32bit " + position_32bit +"\t" + temp3 + "\n" ); - ReadEncoder_Dryer(); -// stubManager.Write("position_32bit " + position_32bit +"\t"); - - if (Math.Abs(position_32bit)> (30*0x4000)) - temp3=3; - if ((temp-position_32bit)>20) - temp3++; -// stubManager.Write("Temp " + temp +"\n"); - temp=position_32bit; - - - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3); - - DialogResult result3 = MessageBox.Show("Did Arm Motor make 30 rounds? See picture on document", "Warning",MessageBoxButtons.YesNo); - if(result3 == DialogResult.No) - { - Units_status[4,1]="Fail"; - stubManager.Write("Arm Motor not make 30 rounds\n"); - return 0; - } - Units_status[4,1]="Pass"; - return 1; -} -bool Encoder_Dryer_Exist() -{ - Int32 temp; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190); - var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192); - - temp = Convert.ToInt32 (response.Value & 0x0300); - if (temp==0) - return true; - else - return false; -} - - - -void ReadEncoder_Dryer() -{ - Int32 temp; - Int32 temp1; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190); - var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192); - - temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff)); - if (temp>last_14bit_position) - { - temp1=temp-last_14bit_position; - position_32bit=position_32bit+temp1; - if (temp1>0x2000) - position_32bit=position_32bit-0x4000; - } - else if (temp<last_14bit_position) - - { - temp1=last_14bit_position-temp; - position_32bit=position_32bit-temp1; - if (temp1>0x2000) - position_32bit=position_32bit+0x4000; - } - - last_14bit_position=temp; - - return ; -} -//----------------------------------- -int Test_LId () -{ - Int32 Bit = 1; - int i = 0; - - UInt32 PowerStep_driver=0; - - if (Get_Driver_Type(4)>0x14) - PowerStep_driver=1; - - - - - stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,DryerLid_Motor, false, 0x800000+2*(1-PowerStep_driver)); //mov Dryer Lid motor down - delay(2000); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DryerLid_Motor, 2); //Hard stop hiZ motor - delay(1000); - - stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,DryerLid_Motor, false, 0x800000+2*PowerStep_driver); //mov Dryer Lid motor up - - while ((Bit != 0x0) && (i<200)) //wait until Limit Switch or timeout 200*50msec=10sec - { - Bit = GetBit(F1_LS_01_Direct,4); - delay(50); - i++; - } - - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DryerLid_Motor, 2); //Hard stop hiZ motor - DialogResult result1 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo); - if((result1 == DialogResult.No) || (i==200) ) - { - Units_status[1,1]="Fail"; - stubManager.Write("LS_Lid_Open Not calibrate\n"); - return 0; - } - Units_status[1,1]="Pass"; - stubManager.Write("\n--------1-Lid Open--------"); - - stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,DryerLid_Motor, false, 0x800000+2*(1-PowerStep_driver)); //mov Dryer Lid motor down - - Bit = 1; - i=0; - while ((Bit != 0x0) && (i<200)) //wait until Limit Switch or timeout 200*50msec=10sec - { - Bit = GetBit(F1_LS_01_Direct,5); - delay(50); - i++; - } - - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DryerLid_Motor, 2); //Hard stop hiZ motor - DialogResult result2 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo); - if((result2 == DialogResult.No) || (i==200)) - { - Units_status[2,1]="Fail"; - stubManager.Write("LS_Lid_Close Not calibrate\n"); - return 0; - } - - stubManager.Write("\n--------2-Lid Close--------"); - - Units_status[2,1]="Pass"; - Units_status[0,1]="Pass"; - return 1; - -} - -UInt32 Get_Driver_Type(UInt32 i) -{ - Int32 x_GET_PARAM = 0x20; - Int32 x_ADC_OUT = 0x12; - UInt32 ADC_out ; - - - var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ADC_OUT)<<8, 0, 0); - - ADC_out= (response.RecivedData) & 0x001F; - stubManager.WriteHex(ADC_out,2) ; - return ADC_out ; -} - diff --git a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/DyeHead_Jig.cs b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/DyeHead_Jig.cs deleted file mode 100644 index bf1a7d9c8..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/DyeHead_Jig.cs +++ /dev/null @@ -1,344 +0,0 @@ -using System; -using System.Text; -using System.IO; -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.Stubs; -using Tango.Stubs; - -const int DyeHead_UNDER_TEST=16; - -float [] DyeHeadTemp = new float[6] ; - -string [,] Units_status_DyeHead = new string[DyeHead_UNDER_TEST,2] { - {"Pt100_Zone_1","Not Test"}, - {"Pt100_Zone_2","Not Test"}, - {"Pt100_Zone_3","Not Test"}, - {"Pt100_Zone_4","Not Test"}, - {"Pt100_Zone_5","Not Test"}, - {"Pt100_Zone_6","Not Test"}, - {"Heater_Zone_1","Not Test"}, - {"Heater_Zone_2","Not Test"}, - {"Heater_Zone_3","Not Test"}, - {"Heater_Zone_4","Not Test"}, - {"Heater_Zone_5","Not Test"}, - {"Heater_Zone_6","Not Test"}, - {"Magnet ","Not Test"}, - {"LS_DH_LID_Open","Not Test"}, - {"LS_DH_LID_Close","Not Test"}, - {"DH_LID_Motor","Not Test"}, - }; - - - -//-------------------------------------------------------------------------------- - -public Task<decimal> DyeHead_test( Action<string> settext, CancellationToken cancellationToken, string SN, string Location) -{ - Task<decimal> task = null; - // Start a task and return it - task = Task.Run(() => - { - stubManager.Write("S/N:" +SN+ "\n"); - stubManager.Write("Location:" +Location+ "\n"); - - copy_table (DyeHead_UNDER_TEST,Units_status_DyeHead); - - DialogResult result1 = MessageBox.Show("Make shure, Dyehead is not hot", "Warning",MessageBoxButtons.OKCancel); - if(result1 == DialogResult.Cancel) - { - stubManager.AppendToFile(File_Name1,"Dyehead is too hot \tFail"); - stubManager.Write("Dyehead is too hot \tFail\n"); - return 0 ; - } - else - { - -//------------------------------- start test ----------- - settext("Test Magnet Motor LS"); - Test_Magnet_Motor_LS_DyeHead(); - settext("Test heaters &pt100"); - Test_heaters_pt100 (); - - Status=write_to_file(SN,Location,DyeHead_UNDER_TEST,"Dyehead"); - - settext("End Test"); - } - decimal result = 0; - - return result; - }); - return task; -} - - - -//-------------------------------------------- - int Test_Magnet_Motor_LS_DyeHead() -{ - Int32 Bit = 1; - - stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,MAGNET_Driver, false,0x800000+0); - stubManager.Write("\nTesting SSR no. 13 of magnet or motor driver"); - - DialogResult result = MessageBox.Show("Make shure, Magnet is open", "Warning",MessageBoxButtons.OKCancel); - if(result == DialogResult.Cancel) - { - Units_status[12,1]="Fail"; - stubManager.Write("Magnet Not Open\n"); - return 0; - } - Units_status[12,1]="Pass"; - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DyeingHeadLid_Motor, true, 250); - stubManager.Write("\n*** Open Lid Head "); - - Bit = 1; - int i=0; - while ((Bit != 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec - { - Bit = GetBit(F1_LS_01_Direct,7); - delay(50); - i++; - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor,3); //stop motor - - DialogResult result1 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.OKCancel); - if(result1 == DialogResult.Cancel) - { - Units_status[15,1]="Fail"; - Units_status[13,1]="Fail"; - stubManager.Write("LS_DH_LID_Open Not calibrate\n"); - return 0; - } - Units_status[13,1]="Pass"; - stubManager.Write("\n*** Close Lid Head "); - Bit = 1; - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DyeingHeadLid_Motor, false, 250); - i=0; - while ((Bit != 0x0) && (i<200)) //wait until Limit Switch or timeout 200*50msec=10sec - { - Bit = GetBit(F1_LS_01_Direct,8); - delay(50); - i++; - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor,3); //stop motor - - DialogResult result2 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.OKCancel); - if(result2 == DialogResult.Cancel) - { - Units_status[14,1]="Fail"; - Units_status[15,1]="Fail"; - stubManager.Write("LS_DH_LID_Close Not calibrate\n"); - return 0; - } - Units_status[14,1]="Pass"; - stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,MAGNET_Driver, false,0x800000+2); - DialogResult result3 = MessageBox.Show("Make shure, Magnet is close", "Warning",MessageBoxButtons.OKCancel); - if(result3 == DialogResult.Cancel) - { - Units_status[12,1]="Fail"; - stubManager.Write("Magnet Not close\n"); - return 0; - } - Units_status[12,1]="Pass"; - Units_status[15,1]="Pass"; - - return 0; -} - - -//------------------------------------ -public int Test_heaters_pt100() -{ - -// uint utemp=0; - uint temp=0; - float ftemp=0; - float ftemp1=0; - float current=0; - - stubManager.Write("\nTemp Befor heating \n"); - if (test_pt100_dyehead()!=0) - return 0; - -//------------Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 8 - SetBit (F2_CTRL, 3, 1); - stubManager.Write("Testing SSR no. 8\tHeadZone-1\t"); - delay(15000); - adc_configuration(0x40,0x10); //a2d_address 0x40 channel 3 - adc_set_for_read_ch(0x40); - temp=adc_read_ch(0x40); - current= (float)(temp); - current=( float) (0.001221) * current; - SetBit (F2_CTRL, 3, 0); - ftemp=Read_pt100(1); - stubManager.Write("After heating " + ftemp +"c\tCurrent is "+ current + "\n"); - ftemp = ftemp - DyeHeadTemp[0]; - - if ((current>1.5)|| (current<0.9)||(ftemp<5)||(ftemp>40)) - Units_status[6,1]="Fail"; - else - Units_status[6,1]="Pass"; - - //Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 7 - ftemp=Read_pt100(2); - ftemp1 = ftemp - DyeHeadTemp[1]; - if ( ftemp1>4) - Units_status[7,1]="Fail"; - else - { - SetBit (F2_CTRL, 4, 1); - stubManager.Write("Testing SSR no. 7\tHeadZone-2\t"); - delay(15000); - adc_configuration(0x40,0x08); //a2d_address 0x40 channel 4 - adc_set_for_read_ch(0x40); - temp=adc_read_ch(0x40); - current= (float)(temp); - current=( float) (0.001221) * current; - SetBit (F2_CTRL, 4, 0); - ftemp=Read_pt100(2); - stubManager.Write("After heating " + ftemp +"c\tCurrent is "+ current + "\n"); - ftemp = ftemp - DyeHeadTemp[1]; - if ((current<1.6)|| (current>2.1)||(ftemp<5)||(ftemp>40)) - Units_status[7,1]="Fail"; - else - Units_status[7,1]="Pass"; - } - - //Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 6 - - ftemp=Read_pt100(3); - ftemp1 = ftemp - DyeHeadTemp[2]; - if ( ftemp1>4) - Units_status[8,1]="Fail"; - else - { - SetBit (F2_CTRL, 5, 1); - stubManager.Write("Testing SSR no. 6\tHeadZone-3\t"); - delay(15000); - adc_configuration(0x40,0x04); //a2d_address 0x40 channel 5 - adc_set_for_read_ch(0x40); - temp=adc_read_ch(0x40); - current= (float)(temp); - current=( float) (0.001221) * current; - SetBit (F2_CTRL, 5, 0); - ftemp=Read_pt100(3); - stubManager.Write("After heating " + ftemp +"c\tCurrent is "+current +"\n"); - ftemp = ftemp - DyeHeadTemp[2]; - if ((current<1.6)|| (current>2.1)||(ftemp<5)||(ftemp>40)) - Units_status[8,1]="Fail"; - else - Units_status[8,1]="Pass"; - } - - //Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 5 - ftemp=Read_pt100(4); - ftemp1 = ftemp - DyeHeadTemp[3]; - if ( ftemp1>4) - Units_status[9,1]="Fail"; - else - { - SetBit (F2_CTRL, 6, 1); - stubManager.Write("Testing SSR no. 5\tHeadZone-4\t"); - delay(15000); - adc_configuration(0x44,0x80); //a2d_address 0x44 channel 0 - adc_set_for_read_ch(0x44); - temp=adc_read_ch(0x44); - current= (float)(temp); - current=( float) (0.001221) * current; - - SetBit (F2_CTRL, 6, 0); - ftemp=Read_pt100(4); - stubManager.Write("After heating " + ftemp +"c\tCurrent is "+current + "\n"); - ftemp = ftemp - DyeHeadTemp[3]; - if ((current<2.9)|| (current>3.4)||(ftemp<5)||(ftemp>40 )) - Units_status[9,1]="Fail"; - else - Units_status[9,1]="Pass"; - } - - //Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 10 - ftemp=Read_pt100(5); - ftemp1 = ftemp - DyeHeadTemp[4]; - if ( ftemp1>4) - Units_status[10,1]="Fail"; - else - { - SetBit (F1_gpo_01, 2, 1); - stubManager.Write("Testing SSR no. 10\tHeadZone-5\t"); - delay(15000); - adc_configuration(0x44,0x40); //a2d_address 0x44 channel 1 - adc_set_for_read_ch(0x44); - temp=adc_read_ch(0x44); - current= (float)(temp); - current=( float) (0.001526) * current; - SetBit (F1_gpo_01, 2, 0); - ftemp=Read_pt100(5); - stubManager.Write("After heating " + ftemp +"c\tCurrent is "+current + "\n"); - ftemp = ftemp - DyeHeadTemp[4]; - if ((current<2.9)|| (current>3.4)||(ftemp<5)||(ftemp>40)) - Units_status[10,1]="Fail"; - else - Units_status[10,1]="Pass"; - } - - //Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 11 - ftemp=Read_pt100(11); - ftemp1 = ftemp - DyeHeadTemp[5]; - if ( ftemp1>4) - Units_status[11,1]="Fail"; - else - { - SetBit (F3_GPO_01_bus, 4, 1); - stubManager.Write("Testing SSR no. 11\tHeadZone-6\t"); - delay(15000); - adc_configuration(0x44,0x40); //a2d_address 0x44 channel 1 - adc_set_for_read_ch(0x44); - temp=adc_read_ch(0x44); - current= (float)(temp); - current=( float) (0.001526) * current; - SetBit (F3_GPO_01_bus, 4, 0); - ftemp=Read_pt100(11); - stubManager.Write("After heating " + ftemp +"c\tCurrent is "+current + "\n"); - ftemp = ftemp - DyeHeadTemp[5]; - if ((current<1.6)|| (current>2.1)||(ftemp<5)||(ftemp>40)) - Units_status[11,1]="Fail"; - else - Units_status[11,1]="Pass"; - } - return 0; -} -//------------------------------------------------ - int test_pt100_dyehead() - { - float ftemp=0; - int temp=0; - int j=0; - for (int i = 0; i < 6; i++) - { - if (i==5) - j=11; - else - j=i+1; - DyeHeadTemp[i]=Read_pt100(j); - ftemp=DyeHeadTemp[i]; - if ((ftemp>100)|| (ftemp<10)) - { - Units_status[i,1]="Fail"; - } - else - { - Units_status[i,1]="Pass"; - } - stubManager.Write("Zone-"+(i+1)+ "\t" + ftemp.ToString("F2")); - stubManager.Write("°C\n"); - - } - return 0; - } diff --git a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/JIG_TESTER.cs b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/JIG_TESTER.cs deleted file mode 100644 index a90acd902..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/JIG_TESTER.cs +++ /dev/null @@ -1,1032 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -include "Tango_define.cs" -include "MidTank_Jig.cs" -include "DyeHead_Jig.cs" -include "LTFU_Jig.cs" -include "RTFU_Jig.cs" -include "Winder_Jig.cs" -include "Dryer_Jig.cs" -include "Mixer_Jig.cs" -include "Location.cs" -include "New_DyeHead_Jig.cs" -include "New_Mixer_Jig.cs" - -//bool _click = false; -System.Timers.Timer timer; - - -string [,] Units_status = new string[50,2]; - -string File_Name2; -string File_Name1 ; -string Status; - - -const int Winder =0 ; -const int LTFU =1 ; - -string path; -string path1="C:\\Jig_Log\\";; - -bool BlinkOn = false; -bool timer_started = false; -CancellationTokenSource _cancellationTokenSource; - -int UNIT_UNDER_TEST ; - - -public void OnExecute(StubManager stubManager) -{ - string u =System.Environment.UserName; - - - - Label Run_text = new Label () - { - Width = 110, - Height =35, - Text = "", - BackColor = Color.White - }; - - System.Windows.Forms.Label _calc_text= new Label() - { - Width = 350, - Height = 125, - Text = "" - }; - void setLabel1TextSafe(string txt) - { - if (_calc_text.InvokeRequired) - _calc_text.Invoke(new Action(() => _calc_text.Text = txt)); - else - _calc_text.Text = txt; - } - - void timer_Tick(object sender, EventArgs e) - { - if (BlinkOn) - { - Run_text.ForeColor = Color.Green; - Run_text.BackColor = Color.White; - } - else - { - Run_text.ForeColor = Color.Red; - Run_text.BackColor = Color.Black; - - } - BlinkOn = !BlinkOn; - } - - timer = new System.Timers.Timer(); - timer.Elapsed += timer_Tick; - timer.Interval = new TimeSpan(0, 0, 0, 0, 500).TotalMilliseconds; - //stubManager.WriteLine("OK!"); - Form form1 = new Form(); -// Set the caption bar text of the form. - //form1.TopMost = true; - form1.Text = "Tests"; - form1.FormBorderStyle = FormBorderStyle.FixedDialog; - form1.MaximizeBox = false; - form1.MinimizeBox = false; - form1.StartPosition = FormStartPosition.CenterScreen; - form1.AutoSize = true; - form1.AutoSizeMode = AutoSizeMode.GrowAndShrink; - form1.BackColor = Color.FromArgb(233, 245, 255); -//start mat -// Create buttons to Winder. - Button Winder_btm = new Button () - { - Width = 80, - Height = 40, - }; - Winder_btm.Text = "Winder"; - Winder_btm.Location = new Point (4, 70); - Winder_btm.BackColor = System.Drawing.Color.Gray; - form1.Controls.Add(Winder_btm); - -// Create buttons to LTFU. - Button LTFU_btm = new Button () - { - Width = 80, - Height = 40, - }; - LTFU_btm.Text = "LTFU"; - LTFU_btm.Location = new Point (94, 70); - LTFU_btm.BackColor = System.Drawing.Color.Gray; - form1.Controls.Add(LTFU_btm); - -// Create buttons to Dryer. - Button Dryer_btm = new Button () - { - Width = 80, - Height = 40, - }; - Dryer_btm.Text = "Dryer"; - Dryer_btm.Location = new Point (184, 70); - Dryer_btm.BackColor = System.Drawing.Color.Gray; - form1.Controls.Add(Dryer_btm); - -// Create buttons to Dye head. - Button DyeHead_btm = new Button () - { - Width = 80, - Height = 40, - }; - DyeHead_btm.Text = "Dye head"; - DyeHead_btm.Location = new Point (4, 114); - DyeHead_btm.BackColor = System.Drawing.Color.Gray; - form1.Controls.Add(DyeHead_btm); - -// Create buttons to RTFU. - Button RTFU_btm = new Button () - { - Width = 80, - Height = 40, - }; - RTFU_btm.Text = "RTFU"; - RTFU_btm.Location = new Point (94, 114); - RTFU_btm.BackColor = System.Drawing.Color.Gray; - form1.Controls.Add(RTFU_btm); - -// Create buttons to Mid Tank. - Button MidTank_btm = new Button () - { - Width = 80, - Height = 40, - }; - MidTank_btm.Text = "Mid Tank"; - MidTank_btm.Location = new Point (184, 114); - MidTank_btm.BackColor = System.Drawing.Color.Gray; - form1.Controls.Add(MidTank_btm); - -// Create buttons to WHS. - Button WHS_btm = new Button () - { - Width = 80, - Height = 40, - }; - WHS_btm.Text = "WHS"; - WHS_btm.Location = new Point (94, 158); - WHS_btm.BackColor = System.Drawing.Color.Gray; - form1.Controls.Add(WHS_btm); - -// Create buttons to Mixer. - Button Mixer_btm = new Button () - { - Width = 80, - Height = 40, - }; - Mixer_btm.Text = "Mixer"; - Mixer_btm.Location = new Point (4, 158) ; - Mixer_btm.BackColor = System.Drawing.Color.Gray; - form1.Controls.Add(Mixer_btm); - -// Create buttons to New Mixer . - Button NewMixer_btm = new Button () - { - Width = 80, - Height = 40, - }; - NewMixer_btm.Text = "New Mixer"; - NewMixer_btm.Location = new Point (4, 202); - NewMixer_btm.BackColor = System.Drawing.Color.Gray; - form1.Controls.Add(NewMixer_btm); - -// Create buttons to NewDyeHead. - Button NewDyeHead_btm = new Button () - { - Width = 80, - Height = 40, - }; - NewDyeHead_btm.Text = "New Dye head"; - NewDyeHead_btm.Location = new Point (184, 158); - NewDyeHead_btm.BackColor = System.Drawing.Color.Gray; - form1.Controls.Add(NewDyeHead_btm); - -//-----Create Lable to Serial Number ----------- - - Label SN_lbl = new Label () - { - Width = 150, - Height = 20, - Text =" S/N" - }; - SN_lbl.Location = new Point (40, 10); - form1.Controls.Add(SN_lbl); - TextBox SN_TexstBox = new TextBox () - { - Width = 150, - Height = 20, - Text ="" - }; - SN_TexstBox.Location = new Point (40, 40); - form1.Controls.Add(SN_TexstBox); - //-----Create Lable to Part Number ----------- - - Label PN_lbl = new Label () - { - Width = 150, - Height = 20, - Text =" P/N" - }; - PN_lbl.Location = new Point (190, 10); - form1.Controls.Add(PN_lbl); - - TextBox PN_TexstBox = new TextBox () - { - Width = 150, - Height = 20, - Text ="" - }; - PN_TexstBox.Location = new Point (190, 40); - PN_TexstBox.CharacterCasing = CharacterCasing.Upper; - - form1.Controls.Add(PN_TexstBox); - //----------Create Lable to LOCATION---------- - Label Location_lbl = new Label () - { - Width = 150, - Height = 20, - Text ="LOCATION" - }; - Location_lbl.Location = new Point (440, 10); - form1.Controls.Add(Location_lbl); - - TextBox Location_TexstBox = new TextBox () - { - Width = 150, - Height = 20, - Text =Location_str - }; - Location_TexstBox.Location = new Point (440, 40); - form1.Controls.Add(Location_TexstBox); - - Run_text.Location = new System.Drawing.Point(300, 100); - Run_text.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; - Run_text.Name = "blink_Text"; - Run_text.Font = new Font("Areal", 16, System.Drawing.FontStyle.Bold); - form1.Controls.Add(Run_text); -//-------------------------------------------------------------------------------- - Button Open_Log_btm = new Button() - { - Width = 100, - Height = 40, - }; - Open_Log_btm.Text = "Open Log File"; - Open_Log_btm.BackColor = System.Drawing.Color.Red; - Open_Log_btm.Location = new System.Drawing.Point(300, 286); - Open_Log_btm.Enabled= false; - form1.Controls.Add(Open_Log_btm); - - - Open_Log_btm.Click += (_, __) => - { - System.Diagnostics.Process.Start(File_Name2 ); - }; - - -//-------------------------------------------------------------------------------- - Button Stop_btm = new Button() - { - Width = 260, - Height = 40, - }; - Stop_btm.Text = "Stop process"; - Stop_btm.BackColor = System.Drawing.Color.Red; - Stop_btm.Location = new System.Drawing.Point(4, 286); - Stop_btm.Enabled= false; - - - - - Stop_btm.Click += (_, __) => - { - timer.Stop(); - timer_started = false; - _cancellationTokenSource.Cancel(); - stubManager.WriteLine("stop "); - - }; - - form1.Controls.Add(Stop_btm); - disable_test(); - void disable_test() - { - Winder_btm.Enabled = false; - LTFU_btm.Enabled = false; - RTFU_btm.Enabled = false; - Dryer_btm.Enabled = false; - MidTank_btm.Enabled= false; - DyeHead_btm.Enabled= false; - WHS_btm.Enabled= false; - Mixer_btm.Enabled= false; - NewMixer_btm.Enabled= false; - NewDyeHead_btm.Enabled= false; - Stop_btm.Enabled= false; - } - -// void enable_test() -// { -// Winder_btm.Enabled = true; -// LTFU_btm.Enabled = true; -// RTFU_btm.Enabled = true; -// Dryer_btm.Enabled = true; -// MidTank_btm.Enabled= true; -// DyeHead_btm.Enabled= true; -// WHS_btm.Enabled= true; -// Mixer_btm.Enabled= true; -// NewMixer_btm.Enabled= true; -// NewDyeHead_btm.Enabled= true; -// Stop_btm.Enabled= false; -// } - void Timer_en() - { - if (timer_started == false) - { - timer.Start(); - timer_started = true; - } - } - void Timer_dis() - { - if (timer_started == true) - { - timer.Stop(); - timer_started = false; - } - } - void end_test() - { disable_test(); - //enable_test(); - - Timer_dis(); - Open_Log_btm.Enabled= true; - Run_text.Text = Status; - if (Status=="Pass") - { - Run_text.ForeColor = Color.White;; - Run_text.BackColor = Color.Green; - } - else - { - Run_text.ForeColor = Color.Black; - Run_text.BackColor = Color.Red; - - } - } - -PN_TexstBox.TextChanged += (_,__)=> - - { - string temp; - - if (SN_TexstBox.Text.Length!=15) - { - disable_test(); - return; - } - - if (PN_TexstBox.Text.Contains("-")) - - { - temp=PN_TexstBox.Text.Substring(0, PN_TexstBox.Text.IndexOf("-")); - switch (temp) - { - case "AM00315": //DyeHead - NewDyeHead_btm.Enabled= true; - break; - case "AM00103": //Winder - Winder_btm.Enabled = true; - break; - case "AM00087": //MidTank - MidTank_btm.Enabled = true; - break; - case "AM00031": //LTFU - LTFU_btm.Enabled = true; - break; - case "AM00007": //Dryer - Dryer_btm.Enabled = true; - break; - case "AM00030": //RTFU - RTFU_btm.Enabled = true; - break; - case "AM00281": //New Mixer - NewMixer_btm.Enabled= true; - break; - // case "AM00281": // Mixer - // Mixer_btm.Enabled= true; - // break; - default: - disable_test(); - break; - } - } - else - disable_test(); - - - }; - SN_TexstBox.TextChanged += (_,__)=> - - { - string temp; - if (SN_TexstBox.Text.Length!=15) - { - disable_test(); - return; - } - if (PN_TexstBox.Text.Contains("-")) - { - - temp=PN_TexstBox.Text.Substring(0, PN_TexstBox.Text.IndexOf("-")); - - switch (temp) - { - case "AM00315": //DyeHead - NewDyeHead_btm.Enabled= true; - break; - case "AM00103": //Winder - Winder_btm.Enabled = true; - break; - case "AM00087": //MidTank - MidTank_btm.Enabled = true; - break; - case "AM00031": //LTFU - LTFU_btm.Enabled = true; - break; - case "AM00007": //Dryer - Dryer_btm.Enabled = true; - break; - case "AM00030": //RTFU - RTFU_btm.Enabled = true; - break; - case "AM00286": //New Mixer - NewMixer_btm.Enabled= true; - break; - default: - disable_test(); - break; -// case "AM00281": // Mixer -// Mixer_btm.Enabled= true; -// break; - } - } - else - disable_test(); - }; -//----------------------------------------- - Winder_btm.Click += async(_,__) => - { - Open_Log_btm.Enabled= false; - Run_text.Text = "Run"; - stubManager.WriteLine("DUT- Winder "); -// path="C:\\Users\\" + u + "\\Dropbox\\"+Location_TexstBox.Text +"_Bench_Tester"+"\\Winder\\" ; - path="C:\\Users\\" + u + "\\Dropbox\\"+Location_TexstBox.Text +"_Bench_Tester"+"\\Winder\\" ; - - Timer_en(); - _cancellationTokenSource = new CancellationTokenSource(); - try - { - // disable_test(); - Winder_btm.Enabled = false; - Stop_btm.Enabled= true; - var longRunningTask = await Winder_test(setLabel1TextSafe, _cancellationTokenSource.Token, SN_TexstBox.Text ,Location_TexstBox.Text ); - } - catch (OperationCanceledException) - { - disable_test(); - Status="Cancel"; - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,WINDER_Motor,3); //stop motor - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,SCREW,3); //stop motor - - stubManager.WriteLine("Task was cancelled"); - } - finally - { - _cancellationTokenSource.Dispose(); - } - end_test(); - }; -//----------------------------------------- - LTFU_btm.Click += async(_,__) => - { - Open_Log_btm.Enabled= false; - Run_text.Text = "Run"; - stubManager.WriteLine("DUT- LTFU "); - path="C:\\Users\\" + u + "\\Dropbox\\"+Location_TexstBox.Text +"_Bench_Tester"+"\\LTFU\\" ; - - Timer_en(); - _cancellationTokenSource = new CancellationTokenSource(); - try - { -// disable_test(); - LTFU_btm.Enabled = false; - Stop_btm.Enabled= true; - var longRunningTask = await LTFU_test(setLabel1TextSafe, _cancellationTokenSource.Token, SN_TexstBox.Text ,Location_TexstBox.Text ); - } - catch (OperationCanceledException) - { - disable_test(); - Status="Cancel"; - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LLOADING_Motor, 3); //hold LRoading high z - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LDANCER1_Motor, 3); //hold Lloading high z - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LDANCER2_Motor, 3); //hold Lloading high z - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LDRIVING_Motor,3); //stop motor - - Thread.Sleep(100); - Motor_SetParam(F1_MOTO_LLOADING_TX1,F1_MOTO_LLOADING_TX0,0x0a,0x14000000); //set kval ran to 0x14,0.65A - - - stubManager.WriteLine("Task was cancelled"); - } - finally - { - _cancellationTokenSource.Dispose(); - } - end_test(); - }; -//----------------------------------------- - Dryer_btm.Click += async(_,__) => - { - Open_Log_btm.Enabled= false; - Run_text.Text = "Run"; - stubManager.WriteLine("DUT- Dryer "); - path="C:\\Users\\" + u + "\\Dropbox\\"+Location_TexstBox.Text +"_Bench_Tester"+"\\Dryer\\" ; - - Timer_en(); - _cancellationTokenSource = new CancellationTokenSource(); - try - { -// disable_test(); - Dryer_btm.Enabled = false; - Stop_btm.Enabled= true; - var longRunningTask = await Dryer_test(setLabel1TextSafe, _cancellationTokenSource.Token, SN_TexstBox.Text ,Location_TexstBox.Text ); - } - catch (OperationCanceledException) - { - - disable_test(); - Status="Cancel"; - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DryerLid_Motor, 2); //Hard stop hiZ motor - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DryerMain_Motor,3); //stop motor - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3); - SetBit (F2_CTRL, 10, 0); //turn SSR1 off - SetBit (F2_CTRL, 9, 0); //turn SSR2 off - - - stubManager.WriteLine("Task was cancelled"); - } - finally - { - _cancellationTokenSource.Dispose(); - } - end_test(); - }; -//----------------------------------------- - DyeHead_btm.Click += async(_,__) => - { - Open_Log_btm.Enabled= false; - Run_text.Text = "Run"; - stubManager.WriteLine("DUT- DyeHead "); - path="C:\\Users\\" + u + "\\Dropbox\\"+Location_TexstBox.Text +"_Bench_Tester"+"\\DyeHead\\" ; - - Timer_en(); - _cancellationTokenSource = new CancellationTokenSource(); - try - { -// disable_test(); - DyeHead_btm.Enabled= false; - Stop_btm.Enabled= true; - var longRunningTask = await DyeHead_test(setLabel1TextSafe, _cancellationTokenSource.Token, SN_TexstBox.Text ,Location_TexstBox.Text ); - } - catch (OperationCanceledException) - { - disable_test(); - Status="Cancel"; - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,MAGNET_Driver,3); //stop magnet - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor,3); //stop motor - SetBit (F2_CTRL, 3, 0); - SetBit (F2_CTRL, 4, 0); - SetBit (F2_CTRL, 5, 0); - SetBit (F2_CTRL, 6, 0); - SetBit (F1_gpo_01, 2, 0); - SetBit (F3_GPO_01_bus, 4, 0); - - - stubManager.WriteLine("Task was cancelled"); - } - finally - { - _cancellationTokenSource.Dispose(); - } - end_test(); - }; -//----------------------------------------- - NewDyeHead_btm.Click += async(_,__) => - { - Open_Log_btm.Enabled= false; - Run_text.Text = "Run"; - stubManager.WriteLine("DUT- New DyeHead "); - path="C:\\Users\\" + u + "\\Dropbox\\"+Location_TexstBox.Text +"_Bench_Tester"+"\\NewDyeHead\\" ; - - Timer_en(); - _cancellationTokenSource = new CancellationTokenSource(); - try - { -// disable_test(); - NewDyeHead_btm.Enabled= false; - Stop_btm.Enabled= true; - var longRunningTask = await NewDyeHead_test(setLabel1TextSafe, _cancellationTokenSource.Token, SN_TexstBox.Text ,Location_TexstBox.Text ); - } - catch (OperationCanceledException) - { - disable_test(); - Status="Cancel"; - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,MAGNET_Driver,3); //stop magnet - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor,3); //stop motor - - for (Int32 i = 0; i < 12; i++) //???MF - { - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,0x40F000 + i*0x100); // turn all heaters OFF - Thread.Sleep(10); - } - - stubManager.WriteLine("Task was cancelled"); - } - finally - { - _cancellationTokenSource.Dispose(); - } - end_test(); - }; -//----------------------------------------- - RTFU_btm.Click += async(_,__) => - { - Open_Log_btm.Enabled= false; - Run_text.Text = "Run"; - stubManager.WriteLine("DUT- RTFU "); - path="C:\\Users\\" + u + "\\Dropbox\\"+Location_TexstBox.Text +"_Bench_Tester"+"\\RTFU\\" ; - Timer_en(); - _cancellationTokenSource = new CancellationTokenSource(); - try - { -// disable_test(); - RTFU_btm.Enabled= false; - Stop_btm.Enabled= true; - var longRunningTask = await RTFU_test(setLabel1TextSafe, _cancellationTokenSource.Token, SN_TexstBox.Text ,Location_TexstBox.Text ); - } - catch (OperationCanceledException) - { - disable_test(); - Status="Cancel"; - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading high z - Thread.Sleep(100); - Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x14000000); //set kval ran to 0x14,0.65A - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RDANCER_Motor, 3); //hold Rloading high z - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RDRIVING_Motor,3); //stop motor - stubManager.WriteLine("Task was cancelled"); - } - finally - { - _cancellationTokenSource.Dispose(); - } - end_test(); - }; -//----------------------------------------- - MidTank_btm.Click += async(_,__) => - { - Open_Log_btm.Enabled= false; - Run_text.Text = "Run"; - stubManager.WriteLine("DUT- MidTank "); - path="C:\\Users\\" + u + "\\Dropbox\\"+Location_TexstBox.Text +"_Bench_Tester"+"\\MidTank\\" ; - Timer_en(); - _cancellationTokenSource = new CancellationTokenSource(); - try - { -// disable_test(); - MidTank_btm.Enabled= false; - Stop_btm.Enabled= true; - var longRunningTask = await MidTank_test(setLabel1TextSafe, _cancellationTokenSource.Token, SN_TexstBox.Text ,Location_TexstBox.Text ); - } - catch (OperationCanceledException) - { - disable_test(); - Status="Cancel"; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_VALVE_OUT, 0); //close all valve - - stubManager.WriteLine("Task was cancelled"); - } - finally - { - _cancellationTokenSource.Dispose(); - } - end_test(); - }; -//---------------------------Mixer-------------- - Mixer_btm.Click += async(_,__) => - { - Open_Log_btm.Enabled= false; - Run_text.Text = "Run"; - stubManager.WriteLine("DUT- Mixer "); - path="C:\\Users\\" + u + "\\Dropbox\\"+Location_TexstBox.Text +"_Bench_Tester"+"\\Mixer\\" ; - - Timer_en(); - _cancellationTokenSource = new CancellationTokenSource(); - try - { -// disable_test(); - Mixer_btm.Enabled= false; - Stop_btm.Enabled= true; - var longRunningTask = await Mixer_test(setLabel1TextSafe, _cancellationTokenSource.Token, SN_TexstBox.Text ,Location_TexstBox.Text ); - } - catch (OperationCanceledException) - { - disable_test(); - Status="Cancel"; - SetBit (F1_gpo_01, 7, 0); //clear bit F1_VALVE_MIXCHIP_WASTECH - SetBit (F2_CTRL, 7, 0); //clear bit mixer SSR - stubManager.WriteLine("Task was cancelled"); - } - finally - { - _cancellationTokenSource.Dispose(); - } - end_test(); - }; -//---------------------------new Mixer-------------- - NewMixer_btm.Click += async(_,__) => - { - Open_Log_btm.Enabled= false; - Run_text.Text = "Run"; - stubManager.WriteLine("DUT- New Mixer "); - path="C:\\Users\\" + u + "\\Dropbox\\"+Location_TexstBox.Text +"_Bench_Tester"+"\\Mixer\\" ; - - Timer_en(); - _cancellationTokenSource = new CancellationTokenSource(); - try - { -// disable_test(); - NewMixer_btm.Enabled= false; - Stop_btm.Enabled= true; - var longRunningTask = await New_Mixer_test(setLabel1TextSafe, _cancellationTokenSource.Token, SN_TexstBox.Text ,Location_TexstBox.Text ); - } - catch (OperationCanceledException) - { - disable_test(); - Status="Cancel"; - // SetBit (F1_gpo_01, 7, 0); ????????????//clear bit F1_VALVE_MIXCHIP_WASTECH - // SetBit (F2_CTRL, 7, 0); //????????????clear bit mixer SSR - stubManager.WriteLine("Task was cancelled"); - } - finally - { - _cancellationTokenSource.Dispose(); - } - end_test(); - }; - -//---------------------------WHS-------------- - -//---------------------------------------- - _calc_text.Location = new System.Drawing.Point(300, 150); - _calc_text.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; - _calc_text.Name = ""; - _calc_text.Font = new Font("Areal", 16, System.Drawing.FontStyle.Bold); - form1.Controls.Add(_calc_text); -// stubManager.WriteLine("Start dialog!"); - form1.ShowDialog(); - return ; - - -} - //--------------------------------------------------------------------------------------------------------------------- -string write_to_file(string s_n,string loocation,int unit_nm,string DUT) - -{ -string Stemp="Pass"; -string Stemp1="P"; - -int i; - - for ( i=0;i<unit_nm;i++) - { - if ((Units_status[i,1]=="Fail")||(Units_status[i,1]=="Not Test")) - { Stemp="Fail"; - Stemp1="F"; - } - } - -if (!Directory.Exists(path)) - { - if (!Directory.Exists(path1)) - Directory.CreateDirectory(path1); - path=path1; - } - - - - File_Name2=Environment.ExpandEnvironmentVariables(path +Stemp1+"_"+ s_n +"_"+DUT +"_"+ DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".log" ); - -stubManager.Write(File_Name2 +"\n"); - -stubManager.WriteToFile(File_Name2,DateTime.Now +" " ); -stubManager.Write(DateTime.Now +"\n" ); - -stubManager.AppendToFile(File_Name2,DUT + " Test Report" ); -stubManager.Write(DUT + " Test Report\n" ); - -stubManager.AppendToFile(File_Name2,DUT + " S/N: \t" + s_n ); -stubManager.Write(DUT + " S/N: \t" + s_n+"\n" ); - - -stubManager.AppendToFile(File_Name2,"Location:\t" + loocation +"\n" ); -stubManager.Write("Location:" + loocation+"\n\n" ); - - for ( i=0;i<unit_nm;i++) - { - stubManager.AppendToFile(File_Name2,Units_status[i,0]+"\t" + Units_status[i,1] ); - stubManager.Write(Units_status[i,0]+"\t" + Units_status[i,1]+"\n" ); - } - if (Stemp=="Fail") - { - stubManager.AppendToFile(File_Name2,"-------------"+DUT+ " Fail ------------ "); - stubManager.Write("-------------"+DUT+ " Fail ------------ "); - } - else - { - stubManager.AppendToFile(File_Name2,"-------------"+DUT+ " Pass ------------ "); - stubManager.Write("-------------"+DUT+ " Pass ------------ "); - } - return Stemp; -} - -//------------------------------------------------------------------------------------- -void copy_table(int testing_nm,string [,]Units_status_DUT) -{ - for (int i=0;i<testing_nm;i++) - { -/// Units_status[i,0]=Units_status_Winder[i,0]; -// Units_status[i,1]=Units_status_Winder[i,1]; - Units_status[i,0]=Units_status_DUT[i,0]; - Units_status[i,1]=Units_status_DUT[i,1]; - - } -} - -public int delay(Int32 ms_delay) - { -int i; - for (i=0 ;i<ms_delay;i=i+10) - { - Thread.Sleep(10); - if (_cancellationTokenSource.Token.IsCancellationRequested) - { - _cancellationTokenSource.Token.ThrowIfCancellationRequested(); - throw new TaskCanceledException(); - return 0; - } - } - return 0; - - } - - -Int32 GetBit(Int32 Adr, Int32 BitNo) -{ - Int32 BitMask; - var RetVal = Fpga_Read_Reg(Adr); - BitMask = 0x1 << BitNo; - if ( ( (Int32) RetVal.Value & BitMask) == BitMask ) - { - return 1; - } - else - { - return 0; - } - -} - -public Int32 SetBit(Int32 Adr, Int32 BitNo, Int32 Bit) -{ - Int32 BitMask; - var RetVal = Fpga_Read_Reg(Adr); - Int32 RV = (Int32) RetVal.Value; - - if (Bit == 0x1) - { - BitMask = 0x1 << BitNo; - RV = RV | BitMask; - Fpga_Write_Reg( Adr, RV ); - } - else if (Bit == 0x0) - { - BitMask = ~(0x1 << BitNo); - RV = RV & BitMask; - Fpga_Write_Reg(Adr, RV ); - } - return 1; -} - - -int Fpga_Write_Reg(Int32 Addr, Int32 Data) -{ - var response = stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,Addr, Data); - - return 1; -} - - - -StubFpgaReadRegResponse Fpga_Read_Reg(Int32 Addr) -{ - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,Addr); - response.Value = response.Value & 0xffff; - - return response; -} - -float Read_pt100(int i) -{ - var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,i); // - - float ftemp = (float)response.TemperatureCMultBy100; - ftemp = ftemp / 100; - return (ftemp); -} -int Motor_SetParam(Int32 HighAdr, Int32 LowAdr, Int32 ParaAddr, uint ParaData1) -{ - - Int32 Temp = 0; - Temp = (ParaAddr << 8 ) + ( (Int32) ParaData1 >> 24); - - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,HighAdr, (Temp & 0xffff)); - Temp = ((Int32)ParaData1 >> 8) & 0xffff; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,LowAdr, (Temp)); - - return 1; -} - -//-------------------------------- -int adc_configuration(uint I2C_Slave_Add,uint channel ) -{ - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID2; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0x00);//Byte 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(channel);//Byte 1 to Write, must be 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02 or 0x01 for different channels - stubI2CWriteBytesRequest.BytesTWrite.Add(0x80);//Byte 2 to Write - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; -} -//-------------------------------- -int adc_set_for_read_ch(uint I2C_Slave_Add) -{ - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID2; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0x01);//Byte 0 to write - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; -} -//-------------------------------- - -uint adc_read_ch(uint I2C_Slave_Add) -{ - StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest(); - stubI2CReadBytesRequest.I2CId = I2C_ID2; - stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add; - stubI2CReadBytesRequest.NumberOfBytesToRead = 2; // Number of bytes to read - - var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest); - uint temph=0; - uint templ=0; - uint temp; - temph=response1.ReadBytes[0]; - templ=response1.ReadBytes[1]; - temp = (temph << 8) | templ; - temp=temp & 0x0fff; - - return temp; -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Jig-TesterV 1.0.docx b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Jig-TesterV 1.0.docx Binary files differdeleted file mode 100644 index f7aa53997..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Jig-TesterV 1.0.docx +++ /dev/null diff --git a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Jig-TesterV 1.1.docx b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Jig-TesterV 1.1.docx Binary files differdeleted file mode 100644 index 948efd86b..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Jig-TesterV 1.1.docx +++ /dev/null diff --git a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/LTFU_Jig.cs b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/LTFU_Jig.cs deleted file mode 100644 index 7d954e8b1..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/LTFU_Jig.cs +++ /dev/null @@ -1,496 +0,0 @@ -using System; -using System.Text; -using System.IO; -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.Stubs; -using Tango.Stubs; -//-------------------------------------------------------------------------------- - -const int LTFU_UNDER_TEST=12; -//--------------------------- - -string [,] Units_status_LTFU = new string[LTFU_UNDER_TEST,2] { - {"LS_LLOADMOTOR_Up","Not Test"}, //0 - {"LS_LLOADMOTOR_DOWN","Not Test"}, //1 - {"LLOADING_Motor","Not Test"}, //2 - {"LDRIVING_Motor","Not Test"}, //3 - {"LS_LDANCER_Left_DOWN","Not Test"}, //4 - {"LS_LDANCER_Left_UP","Not Test"}, //5 - {"LDANCER_Left_Motor","Not Test"}, //6 - {"LDANCER_Left_ROTENC","Not Test"}, //7 - {"LDANCER_Right_ROTENC","Not Test"}, //8 - {"LS_LDANCER_Right_DOWN","Not Test"}, //9 - {"LS_LDANCER_Right_UP","Not Test"}, //10 - {"LDANCER_Right_Motor","Not Test"}, //11 - - }; -//----------------------------------------------------- -//-------------------------------------------------------------------------------- - - -public Task<decimal> LTFU_test( Action<string> settext, CancellationToken cancellationToken, string SN, string Location) -{ - int no_of_test=12; - - Task<decimal> task = null; - // Start a task and return it - task = Task.Run(() => - { - - stubManager.Write("S/N:" +SN+ "\n"); - stubManager.Write("Location:" +Location+ "\n"); - - copy_table (no_of_test,Units_status_LTFU); - - settext("Test LLOADING LTFU"); - Test_LLOADING_LTFU(); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LLOADING_Motor, 3); //hold LRoading high z - delay(100); - Motor_SetParam(F1_MOTO_LLOADING_TX1,F1_MOTO_LLOADING_TX0,0x0a,0x14000000); //set kval ran to 0x14,0.65A - - settext("Test LDRIVING LTFU"); - Test_LDRIVING_LTFU(); - - settext("Test DANCER LTFU"); - -no_of_test=Test_DANCER_LTFU(); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LDANCER1_Motor, 3); //hold Lloading high z - - Status=write_to_file(SN,Location,no_of_test,"LTFU"); - - settext("End Test"); - - decimal result = 0; - - return result; - }); - return task; -} - - - //------------------------------------ -int Test_LLOADING_LTFU() -{ - int temp=1; - int counter; - - Motor_SetParam(F1_MOTO_LLOADING_TX1,F1_MOTO_LLOADING_TX0,0x0a,0x2c000000); //set kval ran to 0x2c- 1.3A - delay(100); - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,LLOADING_Motor, false,200); //move Rloading down - delay(3000); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LLOADING_Motor, 3); //hold Rloading high z - delay(1000); -//------------------------------------------ check F1_LS_LLOADMOTOR_UP------------------------------------------------ - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //read LS - if ((response.Value & F1_LS_LLOADMOTOR_UP) !=F1_LS_LLOADMOTOR_UP ) //if LS_RLOADMOTOR_UP is up then error - { - DialogResult result = MessageBox.Show("Did LLOADIN MOTOR Move?", "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.Yes) - { - Units_status[0,1]="Fail"; - stubManager.Write("LS_LLOADMOTOR_UP\tFail\n"); - return 0; - } - else - { - Units_status[2,1]="Fail"; - stubManager.Write("LLOADMOTOR\tFail\n"); - return 0; - } - } -//----------------------------------------- mov LLOADING up ------------------------------------------------- - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,LLOADING_Motor,true,300); //move Lloading up - counter =0; - while ( counter < 200) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //if LS_LLOADMOTOR_UP is up then move down - if ((response.Value & F1_LS_LLOADMOTOR_UP) != F1_LS_LLOADMOTOR_UP ) - counter=250; - - delay(100); - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LLOADING_Motor, 3); //hold Lloading high z - - if (counter == 200) - { - Units_status[0,1]="Fail"; - stubManager.Write("LS_LLOADMOTOR_UP\tFail\n"); - return 0; - } - DialogResult result1 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo); - if(result1 == DialogResult.No) - { - Units_status[0,1]="Fail"; - stubManager.Write("LS_LLOADMOTOR_UP Not calibrate\n"); - return 0; - } - Units_status[0,1]="Pass"; - Units_status[2,1]="Pass"; - -//------------------------------------------ check F1_LS_LLOADMOTOR_DN------------------------------------------------ - - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //read LS - - if ((response.Value & F1_LS_LLOADMOTOR_DN) !=F1_LS_LLOADMOTOR_DN ) //if LS_LLOADMOTOR_DN is up then error - { - Units_status[1,1]="Fail"; - stubManager.Write("LS_LLOADMOTOR_DN\tFail\n"); - return 0; - } -//------------------------------------------ mov LLOADING dn ------------------------------------------------ - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,LLOADING_Motor, false,300); //move Lloading down - counter =0; - while ( counter < 200) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //if LS_LLOADMOTOR_UP is up then move down - if ((response.Value & F1_LS_LLOADMOTOR_DN) != F1_LS_LLOADMOTOR_DN ) - counter=250; - - delay(100); - } - - if (counter == 200) - { - Units_status[1,1]="Fail"; - stubManager.Write("LS_LLOADMOTOR_DN\tFail\n"); - return 0; - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LLOADING_Motor, 3); //hold Lloading high z - - DialogResult result4 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo); - if(result4 == DialogResult.No) - { - Units_status[1,1]="Fail"; - stubManager.Write("LS_LLOADMOTOR_DN Not calibrate\n"); - return 0; - } - Units_status[1,1]="Pass"; - stubManager.Write("LLOADMOTOR\tPass\n"); - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,LLOADING_Motor, false,200); //move Lloading down - delay(4000); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LLOADING_Motor, 3); //hold Lloading high z - - return 1 ; - -} - - -Int32 ReadEncoder(int i) -{ - Int32 temp; - - if (i==1) //LDANCER1_ROTENC == LTFU Danser Right - { - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F1_LDANCER1_ROTENC_TX, 0x0000); //triggers a TX transmission - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LDANCER1_ROTENC_LSB); - var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LDANCER1_ROTENC_MSB); - - temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff)); - - - return temp; - } - //LDANCER2_ROTENC == LTFU Danser Left - - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F1_LDANCER2_ROTENC_TX, 0x0000); //triggers a TX transmission - var response2 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LDANCER2_ROTENC_LSB); - var response3 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LDANCER2_ROTENC_MSB); - - temp = Convert.ToInt32 (((((response3.Value <<16) + response2.Value)>>10 ) & 0x3fff)); - - - return temp; -} -//-------------------------------------------------------------------------------- -int Test_DANCER_LTFU() -{ - int counter; - Int32 temp_left_before; - Int32 temp_left_after; - Int32 temp_right_before; - Int32 temp_right_after; - - -//------------------------------------------ check F1_LS_LDANCER1_DN ------------------------------------------------ - MessageBox.Show("Make sure LDANCERs Down"); - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //read LS - - if ((response.Value & F1_LS_LDANCER1_UP) !=F1_LS_LDANCER1_UP ) //if F1_LS_LDANCER1_UP is up then error - { - Units_status[5,1]="Fail"; - stubManager.Write("LS_LDANCER_Left_UP\tFail\n"); - return 12; - } -//----------------------------------------- check F1_LS_LDANCER1_UP ------------------------------------------------- - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,LDANCER1_Motor,false,450); //move Lloading up - counter =0; - while ( counter < 300) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //if F1_LS_LDANCER1_UP is up then move down - if ((response.Value & F1_LS_LDANCER1_UP) != F1_LS_LDANCER1_UP ) - counter=350; - - delay(100); - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LDANCER1_Motor, 3); //hold Ldancer high z - if (counter == 300) - { - Units_status[5,1]="Fail"; - stubManager.Write("LS_LDANCER_Left_UP\tFail\n"); - return 12; - } - - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //read LS - if ((response.Value & F1_LS_LDANCER1_DN) !=F1_LS_LDANCER1_DN ) //if F1_LS_LDANCER1_DN is up then error - { - Units_status[4,1]="Fail"; - stubManager.Write("LS_LDANCER_Left_DN\tFail\n"); - return 12; - } - - DialogResult result5= MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo); - - if(result5== DialogResult.No) - { - Units_status[5,1]="Fail"; - stubManager.Write("LS_LDANCER_Left_UP Not calibrate\n"); - return 12; - } - - Units_status[5,1]="Pass"; - stubManager.Write("LS_LDANCER_Left_UP\tPass\n"); - -//----------------------------------------- mov LDANCER1_Motor down and check Ldancer encoder ------------------------------------------------- - temp_left_before= ReadEncoder(0); - delay(10); - - temp_right_before= ReadEncoder(1); - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,LDANCER1_Motor,true,450); //move Rloading down - counter =0; - while ( counter < 300) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //if LS_LDANCER1_DN is dn then move stop - if ((response.Value & F1_LS_LDANCER1_DN) != F1_LS_LDANCER1_DN ) - counter=350; - - delay(100); - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LDANCER1_Motor, 3); //hold Rloading high z - // if (counter == 300) -// { -// Units_status[4,1]="Fail"; -// stubManager.Write("LS_LDANCER_Left_DN\tFail\n"); -// return 12; -// } - DialogResult result2 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo); - - if(result2 == DialogResult.No) - { - Units_status[4,1]="Fail"; - stubManager.Write("LS_LDANCER_Left_DN Not calibrate\n"); - return 12; - } - else - { - Units_status[4,1]="Pass"; - stubManager.Write("LS_LDANCER_Left_DN\tPass\n"); - } - Units_status[6,1]="Pass"; - stubManager.Write("LDANCER_Left_Motor\tPass\n"); - - temp_left_after= ReadEncoder(0); - delay(10); - temp_right_after= ReadEncoder(1); - delay(10); - - stubManager.Write("temp_left_before="+temp_left_before + "\ttemp_left_after="+temp_left_after +"\n"); - delay(10); - - stubManager.Write("temp_right_before="+temp_right_before + "\ttemp_right_after="+temp_right_after +"\n"); - delay(10); - - DialogResult result = MessageBox.Show("SSI Dancer Left led is Green(not blinking)?", "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.No) - { - Units_status[7,1]="Fail"; - stubManager.Write("LDANCER_Left_SSI\tFail\n"); - return 9; - - } - - if (temp_left_after>temp_left_before) - temp_left_before=temp_left_before+0x4000; - temp_left_before=temp_left_before-temp_left_after; - if ((temp_left_before> 5000) || (temp_left_before <200)) - { - Units_status[7,1]="Fail"; - stubManager.Write("LDANCER_Left_SSI\tFail\n"); - return 9; - } - Units_status[7,1]="Pass"; - stubManager.Write("LDANCER_Left_SSI\tPass\n"); - - - DialogResult result3 = MessageBox.Show("SSI Dancer_Right_led is Green(not blinking)?", "Warning",MessageBoxButtons.YesNo); - if(result3 == DialogResult.No) - { - Units_status[8,1]="Fail"; - stubManager.Write("LDANCER_Right_SSI\tFail\n"); - return 12; - } - - - if (temp_right_after<temp_right_before) - temp_right_after=temp_right_after+0x4000; - temp_right_before=temp_right_after-temp_right_before; - if ((temp_right_before< 5000) && (temp_right_before >200)) - { - Units_status[8,1]="Pass"; - stubManager.Write("LDANCER_Right_SSI\tPass\n"); - return 9; - } - -//------------------------------------------ check F1_LS_LSPARE2 ------------------------------------------------ - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //read LS - - if ((response.Value & F1_LS_LSPARE2) !=F1_LS_LSPARE2 ) //if F1_LS_LSPARE2 is up then error - { - Units_status[10,1]="Fail"; - stubManager.Write("LS_LDANCER_Right_UP\tFail\n"); - return 12; - } -//----------------------------------------- check F1_LS_LDANCER2_UP ------------------------------------------------- - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,LDANCER2_Motor,false,450); //move Lloading up - counter =0; - while ( counter < 300) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //if F1_LS_LSPARE2 is up then move down - if ((response.Value & F1_LS_LSPARE2) != F1_LS_LSPARE2 ) - counter=350; - - delay(100); - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LDANCER2_Motor, 3); //hold Ldancer high z - if (counter == 300) - { - Units_status[10,1]="Fail"; - stubManager.Write("LS_LDANCER_Right_UP\tFail\n"); - return 12; - } - - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //read LS - if ((response.Value & F1_LS_LSPARE1) !=F1_LS_LSPARE1 ) //if F1_LS_LSPARE1 is up then error - { - Units_status[9,1]="Fail"; - stubManager.Write("LS_LDANCER_Right_DN\tFail\n"); - return 12; - } - - DialogResult result7= MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo); - - if(result7== DialogResult.No) - { - Units_status[10,1]="Fail"; - stubManager.Write("LS_LDANCER_Right_UP Not calibrate\n"); - return 12; - } - - Units_status[10,1]="Pass"; - stubManager.Write("LS_LDANCER_Right_UP\tPass\n"); - -//----------------------------------------- mov LDANCER2_Motor down and check Ldancer encoder ------------------------------------------------- - temp_right_before= ReadEncoder(1); - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,LDANCER2_Motor,true,450); //move Rloading down - counter =0; - while ( counter < 300) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //if F1_LS_LSPARE1 is dn then move stop - if ((response.Value & F1_LS_LSPARE1) != F1_LS_LSPARE1 ) - counter=350; - - delay(100); - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LDANCER2_Motor, 3); //hold Rloading high z - if (counter == 300) - { - Units_status[9,1]="Fail"; - stubManager.Write("LS_LDANCER_Right_DN\tFail\n"); - return 12; - } - DialogResult result8 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo); - - if(result8 == DialogResult.No) - { - Units_status[9,1]="Fail"; - stubManager.Write("LS_LDANCER_Right_DN Not calibrate\n"); - return 12; - } - - Units_status[9,1]="Pass"; - stubManager.Write("LS_LDANCER_Right_DN\tPass\n"); - - Units_status[11,1]="Pass"; - stubManager.Write("LDANCER_Right_Motor\tPass\n"); - - temp_right_after= ReadEncoder(1); - - stubManager.Write("temp_right_before="+temp_right_before + "\ttemp_right_after="+temp_right_after +"\n"); - - - if (temp_right_after<temp_right_before) - temp_right_after=temp_right_after+0x4000; - temp_right_before=temp_right_after-temp_right_before; - if ((temp_right_before< 5000) && (temp_right_before >200)) - { - Units_status[8,1]="Pass"; - stubManager.Write("LDANCER_Right_SSI\tPass\n"); - return 12; - } - Units_status[8,1]="Fail"; - stubManager.Write("LDANCER_Right_SSI\tFail\n"); - - - return 12; -} -//------------------------------------------------------------- -int Test_LDRIVING_LTFU() -{ - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,LDRIVING_Motor, true,200); //move Ldriving clockwise - stubManager.Write("LDRIVING_Motor Motor rotate \n "); - - DialogResult result = MessageBox.Show("Are LDRIVING Motor rotate?", "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.No) - { - Units_status[3,1]="Fail"; - stubManager.Write("LDRIVING Motor not rotate\n"); - } - else - { - Units_status[3,1]="Pass"; - stubManager.Write("LDRIVING Motor rotate\n"); - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LDRIVING_Motor,3); //stop motor - - return 0; -} - - - diff --git a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/MidTank_Jig.cs b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/MidTank_Jig.cs deleted file mode 100644 index 16139df2c..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/MidTank_Jig.cs +++ /dev/null @@ -1,201 +0,0 @@ -using System; -using System.Text; -using System.IO; -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.Stubs; -using Tango.Stubs; -using System.Timers; - -const int MidTank_UNDER_TEST =24; -int [] Convert_Midtank_No = new Int32 [8] {1,3,5,7,2,4,6,8}; -uint [,] ADC_Add_Chnl = new uint [8,2] { - {0x44,0x20}, - {0x44,0x08}, - {0x46,0x80}, - {0x46,0x20}, - {0x44,0x10}, - {0x44,0x04}, - {0x46,0x40}, - {0x46,0x10}, - }; - - -string [,] Units_status_MidTank = new string[MidTank_UNDER_TEST,2] { - {"Midtank1_Valve_Air","Not Test"}, //0 - {"Midtank1_Valve_Ink","Not Test"}, //1 - {"Midtank1_Pressure_Sensor","Not Test"}, //2 - {"Midtank2_Valve_Air","Not Test"}, //3 - {"Midtank2_Valve_Ink","Not Test"}, //4 - {"Midtank2_Pressure_Sensor","Not Test"}, //5 - {"Midtank3_Valve_Air","Not Test"}, //6 - {"Midtank3_Valve_Ink","Not Test"}, //7 - {"Midtank3_Pressure_Sensor","Not Test"}, //8 - {"Midtank4_Valve_Air","Not Test"}, //9 - {"Midtank4_Valve_Ink","Not Test"}, //10 - {"Midtank4_Pressure_Sensor","Not Test"}, //11 - {"Midtank5_Valve_Air","Not Test"}, //12 - {"Midtank5_Valve_Ink","Not Test"}, //13 - {"Midtank5_Pressure_Sensor","Not Test"}, //14 - {"Midtank6_Valve_Air","Not Test"}, //15 - {"Midtank6_Valve_Ink","Not Test"}, //16 - {"Midtank6_Pressure_Sensor","Not Test"}, //17 - {"Midtank7_Valve_Air","Not Test"}, //18 - {"Midtank7_Valve_Ink","Not Test"}, //19 - {"Midtank7_Pressure_Sensor","Not Test"}, //20 - {"Midtank8_Valve_Air","Not Test"}, //21 - {"Midtank8_Valve_Ink","Not Test"}, //22 - {"Midtank8_Pressure_Sensor","Not Test"}, //23 - }; -//-------------------------------------------------------------------------------- - -public Task<decimal> MidTank_test( Action<string> settext, CancellationToken cancellationToken, string SN, string Location) -{ - Task<decimal> task = null; - // Start a task and return it - task = Task.Run(() => - { - - stubManager.Write("S/N:" +SN+ "\n"); - stubManager.Write("Location:" +Location+ "\n"); - stubManager.Write("-----------------------\n"); - - copy_table (MidTank_UNDER_TEST,Units_status_MidTank); - stubManager.Write("+++++++++++++++++++\n"); - - settext("Test MidTank"); - Test_MIDTANK(); - - Status=write_to_file(SN,Location,MidTank_UNDER_TEST,"MidTank"); - settext("End Test"); - decimal result = 0; - - return result; - }); - return task; -} - - //------------------------------------ -int Test_MIDTANK() -{ - double Pressur_Volt; - double temp; - for (Int32 i=1;i<9;i++) - { - open_valve(i,1,1) ; //open Air valve - open_valve(i,0,1) ; //open Ink valve - delay(2000); - Pressur_Volt=read_pressuere_sense(i); - if ((Pressur_Volt>3 )||(Pressur_Volt<2)) - { - Units_status[(i-1)*3+2,1]="Fail"; - stubManager.Write("pressuere_sense of midtank" + i +"\tFail\n"); - } - else - { - close_valve(i,0,0) ; //close Ink valve - DialogResult result = MessageBox.Show("ADD 20cc air thru Ink valve of Midtank"+ i, "Warning"); - close_valve(i,1,0) ; //close Air valve - delay(2000); - - temp=read_pressuere_sense(i); - temp=temp-Pressur_Volt; - if ((temp>0.5) && ( temp <2)) - Units_status[(i-1)*3+2,1]="Pass"; - else - Units_status[(i-1)*3+2,1]="Fail"; - } - - close_valve(i,0,0) ; //close Air valve - close_valve(i,1,0) ; //close Ink valve - } - return 1; -} - -double read_pressuere_sense(Int32 Midtank_Nm) -{ -double Pressur_Volt; -double calc; -uint temp; - - adc_configuration((ADC_Add_Chnl[Midtank_Nm-1,0]),(ADC_Add_Chnl[Midtank_Nm-1,1]) ); //configure address and channel of midtank - adc_set_for_read_ch(ADC_Add_Chnl[Midtank_Nm-1,0]); - temp =adc_read_ch(ADC_Add_Chnl[Midtank_Nm-1,0]); - calc= (double)temp *2.5 / 4096.0; - Pressur_Volt = (1.96- calc) * 4.64 + 1.96; - stubManager.Write("pressure sense of midtank " + Midtank_Nm + "is " + Pressur_Volt+ "Volt\n"); - return Pressur_Volt; -} - - -//-------------------------------- -int open_valve (int valve_nm,int valve_type,int check_valve) //valve_type=0 is Air ,1 is Ink ; check_valve=1 send feedbak -{ - int temp1=Convert_Midtank_No[valve_nm-1] ; - - string temp; - SetBit (F3_VALVE_OUT,(((valve_type+1)*8)- temp1), 1); - - if (check_valve!=0) - { - temp="Air "; - if (valve_type==1) - temp="Ink "; - - DialogResult result = MessageBox.Show("Did " + temp + "Valve of Midtank " + valve_nm +" open?", "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.No) - { - Units_status[(valve_nm-1)*3+valve_type,1]="Fail"; - stubManager.Write(temp +"Valve\tFail\n"); - return 0; - } - else - { - Units_status[(valve_nm-1)*3+valve_type,1]="Pass"; - stubManager.Write(temp +"Valve\tOpen\n"); - return 1; - } - - } - return 1; - -} -//-------------------------------- -int close_valve (int valve_nm,int valve_type,int check_valve) -{ - int temp1=Convert_Midtank_No[valve_nm-1]; - - string temp; - SetBit (F3_VALVE_OUT,(((valve_type+1)*8)- temp1), 0); - if (check_valve!=0) - { - temp="Air"; - if (valve_type==1) - temp="Ink"; - - DialogResult result = MessageBox.Show("Did " + temp +" Valve of Midtank " + valve_nm +" close?", "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.No) - { - Units_status[(valve_nm-1)*3+valve_type,1]="Fail"; - stubManager.Write(temp +"Valve\tFail\n"); - return 0; - } - else - { - Units_status[(valve_nm-1)*3+valve_type,1]="Pass"; - stubManager.Write(temp +"Valve\tclose\n"); - return 1; - } - } - return 1; - - - - -} -//-------------------------------- diff --git a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Mixer_Jig.cs b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Mixer_Jig.cs deleted file mode 100644 index c5d14855e..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Mixer_Jig.cs +++ /dev/null @@ -1,131 +0,0 @@ -using System; -using System.Text; -using System.IO; -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.Stubs; -using Tango.Stubs; - -const int Mixer_UNDER_TEST=3; - -float MixerTemp ; - -string [,] Units_status_Mixer = new string[Mixer_UNDER_TEST,2] { - {"Pt100_Mixer","Not Test"}, - {"Heater_Mixer","Not Test"}, - {"VALVE_Mixer","Not Test"}, - }; - - - -//-------------------------------------------------------------------------------- - -public Task<decimal> Mixer_test( Action<string> settext, CancellationToken cancellationToken, string SN, string Location) -{ - Task<decimal> task = null; - // Start a task and return it - task = Task.Run(() => - { - stubManager.Write("S/N:" +SN+ "\n"); - stubManager.Write("Location:" +Location+ "\n"); - - copy_table (Mixer_UNDER_TEST,Units_status_Mixer); - - -//------------------------------- start test ----------- - settext("Test heaters & pt100"); - Test_Mixer_heaters_pt100 (); - settext("Test VALVE Mixer"); - Test_VALVE_Mixer (); - - Status=write_to_file(SN,Location,Mixer_UNDER_TEST,"Mixer"); - - settext("End Test"); - - decimal result = 0; - - return result; - }); - return task; -} - -//-------------------------------------------- - int Test_VALVE_Mixer () - { - SetBit (F1_gpo_01, 7, 1); //set bit F1_VALVE_MIXCHIP_WASTECH - - DialogResult result = MessageBox.Show("MixCHIP Valve Open ?", "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.No) - { - Units_status[2,1]="Fail"; - stubManager.Write("VALVE_MIXCHIP_WASTECH Not open\n"); - return 0; - } - SetBit (F1_gpo_01, 7, 0); //clear bit F1_VALVE_MIXCHIP_WASTECH - - DialogResult result1 = MessageBox.Show("MixCHIP Valve close ?", "Warning",MessageBoxButtons.YesNo); - if(result1 == DialogResult.No) - { - Units_status[2,1]="Fail"; - stubManager.Write("VALVE_MIXCHIP_WASTECH Not close\n"); - return 0; - } - Units_status[2,1]="Pass"; - return 0; - } - -//------------------------------------ -public int Test_Mixer_heaters_pt100() -{ - -// uint utemp=0; - uint temp=0; - float ftemp=0; - float ftemp1=0; - float current=0; - - stubManager.Write("\nTemp Befor heating \n"); - - ftemp=Read_pt100(0); - if ((ftemp>100)|| (ftemp<10)) - { - Units_status[0,1]="Fail"; - return 0; - } - stubManager.Write("Temp Befor heating is"+ ftemp.ToString("F2")); - stubManager.Write("°C\n"); - - - - //Write F2_GPO_MIXCHIP_SSR4_CTRL SSR/SSR no. 4 - SetBit (F2_CTRL, 7, 1); - stubManager.Write("Testing SSR no. 4\tMIXCHIP \t"); - delay(10000); - adc_configuration(0x46,0x08); //a2d_address 0x46 channel 4 - adc_set_for_read_ch(0x46); - temp=adc_read_ch(0x46); - current= (float)(temp); - current=( float) (0.001221) * current; - SetBit (F2_CTRL, 7, 0); - - ftemp1=Read_pt100(0); - stubManager.Write("After heating " + ftemp1 +"c\tCurrent is "+ current + "\n"); - ftemp = ftemp1 - ftemp; - - if ((current>2.5)|| (current<1.5)||(ftemp<5)||(ftemp>25)) - { - Units_status[0,1]="Fail"; - Units_status[1,1]="Fail"; - } - else - { - Units_status[0,1]="Pass"; - Units_status[1,1]="Pass"; - } - return 0; -} diff --git a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/New_DyeHead_Jig.cs b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/New_DyeHead_Jig.cs deleted file mode 100644 index 22cf14f3e..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/New_DyeHead_Jig.cs +++ /dev/null @@ -1,583 +0,0 @@ -using System; -using System.Text; -using System.IO; -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.Stubs; -using Tango.Stubs; - -const int New_DyeHead_UNDER_TEST=48; - -const Int32 MGNET_OPEN=0x42F801; -const Int32 MGNET_EN=0x42F701; -const Int32 MGNET_CLOSE=0x42F800; -const Int32 MGNET_DIS=0x42F700; - -const Int32 LS_FRONT=0X460110; -const Int32 LS_REAR=0X460120; -const Int32 LS_UPPER=0X460140; -const Int32 LS_SPARE=0X460180; - - -string EEPROM_Header="Header_1 "; //16 characters - -int Head_Mux_Channel_ID = 4; //Head MUX channel - char[] characters = new char[16]; - - -//float [] DyeHeadTemp = new float[6] ; - -string [,] Units_status_New_DyeHead = new string[New_DyeHead_UNDER_TEST,2] { - {"Pt100_Zone_1","Pass"}, //0 - {"Pt100_Zone_2","Pass"}, //1 - {"Pt100_Zone_3","Pass"}, //2 - {"Pt100_Zone_4","Pass"}, //3 - {"Pt100_Zone_5","Pass"}, //4 - {"Pt100_Zone_6","Pass"}, //5 - {"Pt100_Zone_7","Pass"}, //6 - {"Pt100_Zone_8","Pass"}, //7 - {"Pt100_Zone_9","Pass"}, //8 - {"Pt100_Zone_10","Pass"}, //9 - {"Pt100_Zone_11","Pass"}, //10 - {"Pt100_Zone_12","Pass"}, //11 - - {"Current_Zone_1","Pass"}, //12 - {"Current_Zone_2","Pass"}, //13 - {"Current_Zone_3","Pass"}, //14 - {"Current_Zone_4","Pass"}, //15 - {"Current_Zone_5","Pass"}, //16 - {"Current_Zone_6","Pass"}, //17 - {"Current_Zone_7","Pass"}, //18 - {"Current_Zone_8","Pass"}, //19 - {"Current_Zone_9","Pass"}, //20 - {"Current_Zone_10","Pass"}, //21 - {"Current_Zone_11","Pass"}, //22 - {"Current_Zone_12","Pass"}, //23 - - {"Break_Zone_1","Pass"}, //24 - {"Break_Zone_2","Pass"}, //25 - {"Break_Zone_3","Pass"}, //26 - {"Break_Zone_4","Pass"}, //27 - {"Break_Zone_5","Pass"}, //28 - {"Break_Zone_6","Pass"}, //29 - {"Break_Zone_7","Pass"}, //30 - {"Break_Zone_8","Pass"}, //31 - {"Break_Zone_9","Pass"}, //32 - {"Break_Zone_10","Pass"}, //33 - {"Break_Zone_11","Pass"}, //34 - {"Break_Zone_12","Pass"}, //35 - - {"Magnet ","Not Test"}, //36 - {"LS_REAR","Not Test"}, //37 - {"LS_FRONT","Not Test"}, //38 - {"DH_LID_Motor","Not Test"}, //39 - - {"EEPROM ","Pass"}, //40 - - {"ACTUATOR_IN","Not Test"}, //41 - {"LS_IN_UP","Not Test"}, //42 - {"LS_IN_DN","Not Test"}, //43 - {"ACTUATOR_OUT","Not Test"}, //44 - {"LS_OUT_UP","Not Test"}, //45 - {"LS_OUT_DN","Not Test"}, //46 - - {"LS_MAGNET_DN","Not Test"}, //47 - - - }; - - - -//-------------------------------------------------------------------------------- - -public Task<decimal> NewDyeHead_test( Action<string> settext, CancellationToken cancellationToken, string SN, string Location) -{ - Task<decimal> task = null; - // Start a task and return it - task = Task.Run(() => - { - stubManager.Write("S/N:" +SN+ "\n"); - stubManager.Write("Location:" +Location+ "\n"); - - copy_table (New_DyeHead_UNDER_TEST,Units_status_New_DyeHead); - DialogResult result1 = MessageBox.Show("Make shure, Dyehead is not hot", "Warning",MessageBoxButtons.OKCancel); - if(result1 == DialogResult.Cancel) - { - stubManager.AppendToFile(File_Name1,"Dyehead is too hot \tFail"); - stubManager.Write("Dyehead is too hot \tFail\n"); - return 0 ; - } - else - { - -//------------------------------- start test ----------- - settext("Test Magnet Motor LS"); -// stubManager.Run<ProgressResponse>("ProgressRequest" ,0xC3,0); // disable i2c - Test_Magnet_Motor_LS_New_DyeHead(); - delay(2000); -// stubManager.Run<ProgressResponse>("ProgressRequest" ,0xC3,1); // enable i2c - delay(2000); - - - settext("Test heaters &pt100"); - Test_new_heaters_pt100 (); - settext("Test Head EEPROM"); - Test_Head_EEPROM(SN); //pass - settext("Test Actuator In"); - Test_Actuator_in(); //pass - settext("Test Actuator Out"); - Test_Actuator_out(); //pass - Status=write_to_file(SN,Location,New_DyeHead_UNDER_TEST,"Dyehead"); - - settext("End Test"); - } - decimal result = 0; - - return result; - }); - return task; -} - -//------------------------------------------------------------- - int Test_Actuator_in() -{ - Int32 temp; - int i=0; - - stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf000); //mov ACTUATOR-IN Dn - delay(2000); - - -// DialogResult result = MessageBox.Show("Is ACTUATOR-IN on Upper Limit Swtich?", "Warning",MessageBoxButtons.YesNo); -// if(result == DialogResult.Yes) -// { -// stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf000); //mov ACTUATOR-IN down -// -// delay(2000); -// DialogResult result2 = MessageBox.Show("Is ACTUATOR-IN Move to Lower Limit Switch?", "Warning",MessageBoxButtons.YesNo); -// if(result2 != DialogResult.Yes) -// { -// Units_status[43,1]="Fail"; -// return 0; -// } -// stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf001); //mov ACTUATOR-IN up -// delay(2000); -// DialogResult result3 = MessageBox.Show("Is ACTUATOR-IN Move to Upper Limit Switch?", "Warning",MessageBoxButtons.YesNo); -// if(result3 != DialogResult.Yes) -// { -// Units_status[42,1]="Fail"; -// return 0; -// } -// Units_status[41,1]="Pass"; -// Units_status[42,1]="Pass"; -// Units_status[43,1]="Pass"; -// return 0; -// } -// else - stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf001); //mov ACTUATOR-IN up - delay(2000); - DialogResult result4 = MessageBox.Show("Is ACTUATOR-IN Move to Upper Limit Switch ?", "Warning",MessageBoxButtons.YesNo); - if(result4 != DialogResult.Yes) - { - Units_status[42,1]="Fail"; - return 0; - } - stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf000); //mov ACTUATOR-IN down - delay(2000); - DialogResult result6 = MessageBox.Show("Is ACTUATOR-IN Move to Lower Limit Switch?", "Warning",MessageBoxButtons.YesNo); - if(result6 != DialogResult.Yes) - { - Units_status[43,1]="Fail"; - return 0; - } - Units_status[41,1]="Pass"; - Units_status[42,1]="Pass"; - Units_status[43,1]="Pass"; - return 0; -} - - - -//------------------------------------------------------------- - int Test_Actuator_out() -{ - Int32 temp; - int i=0; - stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf100); //mov ACTUATOR-OUT down - delay(2000); - -// DialogResult result = MessageBox.Show("Is ACTUATOR-OUT on Upper Limit swtich?", "Warning",MessageBoxButtons.YesNo); -// if(result == DialogResult.Yes) -// { -// stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf100); -// -// -// delay(2000); -// DialogResult result1 = MessageBox.Show("Is ACTUATOR-OUT Move to Lower Limit Switch?", "Warning",MessageBoxButtons.YesNo); -// if(result1 != DialogResult.Yes) -// { -// Units_status[46,1]="Fail"; -// return 0; -// } -// -// stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf101); //mov ACTUATOR-OUT up -// delay(2000); -// DialogResult result3 = MessageBox.Show("Is ACTUATOR-OUT Move to Upper Limit Switch?", "Warning",MessageBoxButtons.YesNo); -// if(result3 != DialogResult.Yes) -// { -// Units_status[45,1]="Fail"; -// return 0; -// } -// Units_status[44,1]="Pass"; -// Units_status[45,1]="Pass"; -// Units_status[46,1]="Pass"; -// return 0; -// } -// else - stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf101); //mov ACTUATOR-OUT up - delay(2000); - DialogResult result4 = MessageBox.Show("Is ACTUATOR-OUT Move to Upper Limit Switch?", "Warning",MessageBoxButtons.YesNo); - if(result4 != DialogResult.Yes) - { - Units_status[45,1]="Fail"; - return 0; - } - stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf100); //mov ACTUATOR-OUT down - delay(2000); - DialogResult result6 = MessageBox.Show("Is ACTUATOR-OUT Move to Lower Limit Switch?", "Warning",MessageBoxButtons.YesNo); - if(result6 != DialogResult.Yes) - { - Units_status[46,1]="Fail"; - return 0; - } - Units_status[44,1]="Pass"; - Units_status[45,1]="Pass"; - Units_status[46,1]="Pass"; - return 0; - } - - -//-------------------------------------------- - int Test_Magnet_Motor_LS_New_DyeHead() -{ - Int32 temp; - int i=0; - -//---------------------- open Magnet ---------------------------- - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,MGNET_OPEN); // turn magnet on - delay(100); - - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,MGNET_EN); // magnet enable - delay(100); - - stubManager.Write("Magnet is Open\n"); - delay(1000); -//---------------------- chekc Magnet is open ---------------------------- - DialogResult result = MessageBox.Show("Make shure, Magnet is open and DyeHead cover on front.", "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.No) - { - Units_status[36,1]="Fail"; - stubManager.Write("Magnet is close\n"); - return 0; - } - temp=read_pio (LS_UPPER); // read LS_UPPER - if (temp != 0) - { - Units_status[47,1]="Fail"; - stubManager.Write("LS_UPPER of Magnet is close\n"); - } - - -//---------------------- Move DyeingHead Lid Motor rear---------------------------- - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DyeingHeadLid_Motor, true, 250); - stubManager.Write("*** Open Lid Head ********* \n"); - - temp = 0; - i=0; - while ((temp == 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec - { - temp=read_pio (LS_REAR); // read LS_REAR - delay(50); - - i++; - } - - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor,3); //stop motor - DialogResult result2 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo); - if(result2 == DialogResult.No || i==200) - { - Units_status[37,1]="Fail"; - stubManager.Write("LS_REAR Not calibrate\n"); - } - else - Units_status[37,1]="Pass"; -//---------------------- Move DyeingHead Lid Motor front---------------------------- - stubManager.Write("*** Close Lid Head \n"); - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DyeingHeadLid_Motor, false, 250); - temp = 0; - i=0; - while ((temp == 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec - { - temp=read_pio (LS_FRONT); // read LS_FRONT - delay(50); - i++; - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor,3); //stop motor - - DialogResult result3 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo); - if(result3 == DialogResult.No || i==200) - { - Units_status[38,1]="Fail"; - stubManager.Write("LS_FRONT Not calibrate\n"); - } - else - { - Units_status[39,1]="Pass"; - Units_status[38,1]="Pass"; - } -//---------------------- Close Magnet ---------------------------- - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,MGNET_CLOSE); // turn magnet off - delay(2000); - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,MGNET_DIS); // magnet Disable - - stubManager.Write("Magnet is Close\n"); - delay(1000); -//---------------------- chekc Magnet is close ---------------------------- - - DialogResult result4 = MessageBox.Show("Make shure, Magnet is close", "Warning",MessageBoxButtons.YesNo); - if(result4 == DialogResult.No) - { - Units_status[36,1]="Fail"; - stubManager.Write("Magnet is open\n"); - return 0; - } - Units_status[36,1]="Pass"; - temp=read_pio (LS_UPPER); // read LS_UPPER - if (temp == 0) - { - Units_status[47,1]="Fail"; - stubManager.Write("LS_UPPER of Magnet is open\n"); - return 0; - } - Units_status[47,1]="Pass"; - stubManager.Write("LS_UPPER of Magnet is close\n"); - return 0; - } -//------------------------------------ -public int Test_new_heaters_pt100() -{ - -// uint utemp=0; - Int32 temp=0; - float ftemp=0; - float ftemp1=0; - float current=0; - Double current_sense; - - for (Int32 i = 0; i < 12; i++) //12 - { - Int32 tdly=20000; -//---------------------- get tempurature of heaters---------------------------- - temp= 12+i/2+(i%2)*8; //HZone_1=12 - //HZone_2=20 - //HZone_3=13 - //HZone_4=21 - //HZone_5=14 - //HZone_6=22 - //HZone_7=15 - //HZone_8=23 - //HZone_9=16 - //HZone_10=24 - //HZone_11=17 - //HZone_11=25 - - var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" , temp); //get temperature from the buffer - ftemp = (float)response.TemperatureCMultBy100; - ftemp = ftemp / 100; - - if ((ftemp>50)|| (ftemp<15)) - { - Units_status[i,1]="Fail"; - tdly=2000; - - } - stubManager.Write("Zone-"+(i+1)+ "-\t" + ftemp.ToString("F2")+"°C\n"); -//---------------------- get current of heaters ---------------------------- - var response1 = stubManager.Run<StubMidTankPressureSensorResponse>("StubMidTankPressureSensorRequest" ,0x8000 + i); // get current - current_sense=response1.Pressure; - if (current_sense>0.1) - { - Units_status[i+12,1]="Fail"; - } - stubManager.Write("current zone -" +(i+1)+ " is \t-" + current_sense +"\n"); -//---------------------- get Break of heaters ---------------------------- - var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,0x440000 +(i/8)*0x100+(1<<(i&7))); // read break - temp = (Int32) (response2.Progress); - if ((temp & (1<<(i&7))) ==0) //if break ok - { - Units_status[i+24,1]="Fail"; - stubManager.Write("Break Zone "+(i+1)+ "\t is on\n"); - } - else - { - stubManager.Write("Break Zone "+(i+1)+ "\t is Off\n"); - } -//---------------------- turn heater on ---------------------------- -// stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,0x400200 +(i/8)*0x100+(1<<(i&7))); // turn heater on - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,0x40F001 + i*0x100); // turn heater on - - stubManager.Write("Heater- "+(i+1)+ "\t is On\n"); - delay(tdly); //delay 10 second -//---------------------- get current of heaters ---------------------------- - var response3 = stubManager.Run<StubMidTankPressureSensorResponse>("StubMidTankPressureSensorRequest" ,0x8000 + i); // get current - current_sense=response3.Pressure; - if ((current_sense<1.0) ||(current_sense>1.5) ) //if current not 1.25A - { - Units_status[i+12,1]="Fail"; - } - stubManager.Write("current zone -" +(i+1)+ " is \t-" + current_sense +"\n"); -//---------------------- get Break of heaters ---------------------------- - var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,0x440000 +(i/8)*0x100+(1<<(i&7))); // read break - temp = (Int32) (response4.Progress); - if ((temp & (1<<(i&7))) ==0) //if break ok - { - stubManager.Write("Break Zone "+(i+1)+ "\t is On\n"); - Units_status[i+24,1]="Fail"; - } - else - { - stubManager.Write("Break Zone "+(i+1)+ "\t is Off\n"); - - } - temp= 12+i/2+(i%2)*8; - var response5 = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" , temp); //get temperature from the buffer - ftemp1 = (float)response5.TemperatureCMultBy100; - ftemp1 = ftemp1 / 100; - - if (((ftemp1-ftemp)<10)|| ((ftemp1-ftemp)>45)) - { - Units_status[i,1]="Fail"; - } - stubManager.Write("Zone-"+(i+1)+ " after heating is \t" + ftemp1.ToString("F2")+"°C\n"); -//---------------------- turn heater off ---------------------------- -// stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,0x400200 +(i/8)*0x100); // turn heater off - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,0x40F000 + i*0x100); // turn heater OFF - - stubManager.Write("Heater - "+(i+1)+ "\t is Off\n"); - - } - return 0; -} - -Int32 read_pio(Int32 i2c_input) -{ - Int32 temp=0; - var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,i2c_input); // read break - - temp = (Int32) (response.Progress); - temp =temp & (i2c_input& 0xff); //if break ok - - return temp; -} -//end mati - - //enable_all_channel(); -public int Test_Head_EEPROM(string s_n) -{ - - enable_channel(Head_Mux_Channel_ID); // Chanel 0-7 => Disp0enser 0-7 - - Write_EEPROM(0xA0,s_n); - delay(200); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet ) - -//------------ go to address 0 on eeprom -------------- - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID3; - stubI2CWriteBytesRequest.SlaveAddress = 0xA0; - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write - stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - //Thread.Sleep(1); //Sleep for 10 milli. - Read_EEPROM(0xA0); - - delay(20); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet ) - return 0; - -} - -int enable_channel(int Channel_ID) -{ - uint Const_temp = 0x01; - - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID3; - stubI2CWriteBytesRequest.SlaveAddress = TCA9548A_address; - - Const_temp = Const_temp << Channel_ID; - stubI2CWriteBytesRequest.BytesTWrite.Add(Const_temp); - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; -} - -int Write_EEPROM (uint I2C_Slave_Add,string s_n ) -{ - - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID3; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write - - //-------------------------------------------------------------- - characters = EEPROM_Header.ToCharArray(); - - for (int i=0;i<16;i++) - { - stubI2CWriteBytesRequest.BytesTWrite.Add(characters[i]); //add header - // characters[i]=0x20; - } - characters = s_n.ToCharArray(); - - for (int i=0;i<characters.Length ;i++) - { - - stubI2CWriteBytesRequest.BytesTWrite.Add(characters[i]); //add s/n - - } - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; -} - -int Read_EEPROM(uint I2C_Slave_Add) -{ - char temp; - StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest(); - stubI2CReadBytesRequest.I2CId = I2C_ID3; - stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add + 1; - stubI2CReadBytesRequest.NumberOfBytesToRead = 16; // Number of header bytes to read - - var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest); - uint temph=0; - char[] characters = EEPROM_Header.ToCharArray(); - for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++) - { - temp = Convert.ToChar(response1.ReadBytes[i]); - - - } - - return 1; -} diff --git a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/New_Mixer_Jig.cs b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/New_Mixer_Jig.cs deleted file mode 100644 index 076f4ce68..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/New_Mixer_Jig.cs +++ /dev/null @@ -1,170 +0,0 @@ -using System; -using System.Text; -using System.IO; -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.Stubs; -using Tango.Stubs; - -const int New_Mixer_UNDER_TEST=4; - -const Int32 Valve_EN=0x42F501; -const Int32 Valve_DIS=0x42F500; -const Int32 Mixer_ON=0x42F401; -const Int32 Mixer_OFF=0x42F400; - -float NewMixerTemp ; - -string [,] Units_status_New_Mixer = new string[New_Mixer_UNDER_TEST,2] { - {"Pt100_Mixer","Pass"}, //0 - {"Heater_Mixer","Pass"}, //1 - {"Break_Mixer","Pass"}, //2 - {"VALVE_Mixer","Not Test"}, //3 - }; - - - -//-------------------------------------------------------------------------------- - -public Task<decimal> New_Mixer_test( Action<string> settext, CancellationToken cancellationToken, string SN, string Location) -{ - Task<decimal> task = null; - // Start a task and return it - task = Task.Run(() => - { - stubManager.Write("S/N:" +SN+ "\n"); - stubManager.Write("Location:" +Location+ "\n"); - - copy_table (New_Mixer_UNDER_TEST,Units_status_New_Mixer); - - -//------------------------------- start test ----------- - settext("Test heater & pt100"); - Test_New_Mixer_heater_pt100 (); - settext("Test VALVE Mixer"); - Test_VALVE_New_Mixer (); - - Status=write_to_file(SN,Location,New_Mixer_UNDER_TEST,"Mixer"); - - settext("End Test"); - - decimal result = 0; - - return result; - }); - return task; -} - -//-------------------------------------------- - int Test_VALVE_New_Mixer () - { - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,Valve_EN); // Valve enable - - DialogResult result = MessageBox.Show("MixCHIP Valve Open ?", "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.No) - { - Units_status[3,1]="Fail"; - stubManager.Write("VALVE_MIXCHIP_WASTECH Not open\n"); - return 0; - } - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,Valve_DIS); // Valve enable - - DialogResult result1 = MessageBox.Show("MixCHIP Valve close ?", "Warning",MessageBoxButtons.YesNo); - if(result1 == DialogResult.No) - { - Units_status[3,1]="Fail"; - stubManager.Write("VALVE_MIXCHIP_WASTECH Not close\n"); - return 0; - } - Units_status[3,1]="Pass"; - return 0; - } - -//------------------------------------ -public int Test_New_Mixer_heater_pt100() -{ - Int32 temp=0; - float ftemp=0; - float ftemp1=0; - float current=0; - Int32 tdly=15000; - Double current_sense; - -//---------------------- get tempurature of mixer---------------------------- - -// stubManager.Write("\nTemp Befor heating \n"); - - var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" , 19); //get temperature from mixer - ftemp = (float)response.TemperatureCMultBy100; - ftemp = ftemp / 100; - if ((ftemp>100)|| (ftemp<10)) - { - Units_status[0,1]="Fail"; - tdly=1000; - } - stubManager.Write("Temp Befor heating is"+ ftemp.ToString("F2")); - stubManager.Write("°C\n"); -//---------------------- get current of mixer ---------------------------- - var response1 = stubManager.Run<StubMidTankPressureSensorResponse>("StubMidTankPressureSensorRequest" ,0x8000 + 20); // get current mixer - current_sense=response1.Pressure; - if (current_sense>0.1) - { - Units_status[1,1]="Fail"; - } - stubManager.Write("current is " + current_sense +"\n"); -//---------------------- get Break of Mixer ---------------------------- - var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,0x460000 +0x10); // read break - temp = (Int32) (response2.Progress); - if ((temp & 0x10 )==0) //if break ok - { - Units_status[2,1]="Fail"; - stubManager.Write("Break Mixer is On\n"); - } - else - { - stubManager.Write("Break Mixer is off\n"); - } -//---------------------- turn Mixer on ---------------------------- - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,Mixer_ON); // turn mixer on - stubManager.Write("Mixer On\n"); - delay(tdly); //delay 20 second -//---------------------- get current of mixer ---------------------------- - var response3 = stubManager.Run<StubMidTankPressureSensorResponse>("StubMidTankPressureSensorRequest" ,0x8000 + 20); // get current - current_sense=response3.Pressure; - if ((current_sense<2) ||(current_sense>3) ) //if current not 2.5A - { - Units_status[3,1]="Fail"; - } - stubManager.Write("current in Mixer is " + current_sense +"\n"); -//---------------------- get Break of Mixer ---------------------------- - var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,0x460000 +0x10); // read break - temp = (Int32) (response4.Progress); - if ((temp & 0x10 )==0) //if break ok - { - Units_status[2,1]="Fail"; - stubManager.Write("Break Mixer is On\n"); - } - else - { - stubManager.Write("Break Mixer is Off\n"); - } -//---------------------- get tempurature of mixer---------------------------- - var response5 = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" , 19); //get temperature from the mixer - ftemp1 = (float)response5.TemperatureCMultBy100; - ftemp1 = ftemp1 / 100; - - if (((ftemp1-ftemp)<5)|| ((ftemp1-ftemp)>50)) - { - Units_status[0,1]="Fail"; - } - stubManager.Write("Mixer after heating is \t" + ftemp1.ToString("F2")+"°C\n"); -//---------------------- turn Mixer off ---------------------------- - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,Mixer_OFF); // turn mixer off - stubManager.Write("Mixer is Off\n"); - return 0; -} diff --git a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/RTFU_Jig.cs b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/RTFU_Jig.cs deleted file mode 100644 index 4e1223328..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/RTFU_Jig.cs +++ /dev/null @@ -1,367 +0,0 @@ -using System; -using System.Text; -using System.IO; -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.Stubs; -using Tango.Stubs; -//-------------------------------------------------------------------------------- -//-------------------------------------------------------------------------------- - -const int RTFU_UNDER_TEST=9; - -string [,] Units_status_RTFU = new string[RTFU_UNDER_TEST,2] { - {"LS_RLOADMOTOR_Up","Not Test"}, //0 - {"LS_RLOADMOTOR_DOWN","Not Test"}, //1 - {"RLOADING_Motor","Not Test"}, //2 - {"DRIVING_Motor","Not Test"}, //3 - {"LS_RDANCER_DOWN","Not Test"}, //4 - {"LS_RDANCER_UP","Not Test"}, //5 - {"LS_RLOADRAM_DOWN","Not Test"}, //6 - {"RDANCER_Motor","Not Test"}, //7 - {"RDANCER_ROTENC","Not Test"}, //8 - }; - - - -//----------------------------------------------------- - -public Task<decimal> RTFU_test( Action<string> settext, CancellationToken cancellationToken, string SN, string Location) -{ - Task<decimal> task = null; - // Start a task and return it - task = Task.Run(() => - { - - stubManager.Write("S/N:" +SN+ "\n"); - stubManager.Write("Location:" +Location+ "\n"); - - copy_table (RTFU_UNDER_TEST,Units_status_RTFU); - - settext("Test RLOADING RTFU"); - Test_RLOADING_RTFU(); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading high z - - delay(100); - Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x14000000); //set kval ran to 0x14,0.65A - - settext("Test RDRIVING RTFU"); - Test_RDRIVING_RTFU(); - - settext("Test DANCER RTFU"); - - Test_DANCER_RTFU(); - - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RDANCER_Motor, 3); //hold Rloading high z - - Status=write_to_file(SN,Location,RTFU_UNDER_TEST,"RTFU"); - - settext("End Test"); - decimal result = 0; - - return result; - }); - return task; -} - - - //------------------------------------ -int Test_RLOADING_RTFU() -{ - int temp=1; - int counter; - - Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x2c000000); //set kval ran to 0x40- 1.9A - delay(100); - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RLOADING_Motor, true,200); //move Rloading down - delay(3000); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading high z - delay(1000); -//------------------------------------------ check F1_LS_RLOADMOTOR_up------------------------------------------------ - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //read LS - if ((response.Value & F1_LS_RLOADMOTOR_UP) !=F1_LS_RLOADMOTOR_UP ) //if LS_RLOADMOTOR_UP is up then error - { - DialogResult result = MessageBox.Show("Did RLOADIN MOTOR Move?", "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.Yes) - { - Units_status[0,1]="Fail"; - stubManager.Write("LS_RLOADMOTOR_UP\tFail\n"); - return 0; - } - else - { - Units_status[2,1]="Fail"; - stubManager.Write("RLOADMOTOR\tFail\n"); - return 0; - } - } - -//----------------------------------------- mov RLOADING up ------------------------------------------------- - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RLOADING_Motor,false,300); //move Rloading up - counter =0; - while ( counter < 200) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if LS_RLOADMOTOR_UP is up then move down - if ((response.Value & F1_LS_RLOADMOTOR_UP) != F1_LS_RLOADMOTOR_UP ) - counter=250; - - delay(100); - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading high z - - if (counter == 200) - { - Units_status[0,1]="Fail"; - stubManager.Write("LS_RLOADMOTOR_UP\tFail\n"); - return 0; - } - DialogResult result1 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo); - if(result1 == DialogResult.No) - { - Units_status[0,1]="Fail"; - stubManager.Write("LS_RLOADMOTOR_UP Not calibrate\n"); - return 0; - } - Units_status[0,1]="Pass"; - Units_status[2,1]="Pass"; - -//------------------------------------------ check F1_LS_RLOADMOTOR_DN------------------------------------------------ - - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //read LS - - if ((response.Value & F1_LS_RLOADMOTOR_DN) !=F1_LS_RLOADMOTOR_DN ) //if LS_RLOADMOTOR_DN is up then error - { - Units_status[1,1]="Fail"; - stubManager.Write("LS_RLOADMOTOR_DN\tFail\n"); - return 0; - } -//------------------------------------------ mov RLOADING dn ------------------------------------------------ - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RLOADING_Motor, true,300); //move Rloading down - counter =0; - while ( counter < 200) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if LS_RLOADMOTOR_UP is up then move down - if ((response.Value & F1_LS_RLOADMOTOR_DN) != F1_LS_RLOADMOTOR_DN ) - counter=250; - - delay(100); - } - - if (counter == 150) - { - Units_status[1,1]="Fail"; - stubManager.Write("LS_RLOADMOTOR_DN\tFail\n"); - return 0; - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading high z - - DialogResult result2 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo); - if(result2 == DialogResult.No) - { - Units_status[1,1]="Fail"; - stubManager.Write("LS_RLOADMOTOR_DN Not calibrate\n"); - return 0; - } - Units_status[1,1]="Pass"; - stubManager.Write("RLOADMOTOR\tPass\n"); - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RLOADING_Motor, true,200); //move Rloading down - delay(2000); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading high z - - return 1 ; - -} - -//---------------------------------- - -Int32 ReadEncoder() -{ - Int32 temp; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F1_RDANCER_ROTENC_DATA_p_TX, 0x0000); //triggers a TX transmission - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_RDANCER_ROTENC_DATA_p_RX_lsb); - var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_RDANCER_ROTENC_DATA_p_RX_msb); - - temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff)); - - - return temp; -} -//-------------------------------------------------------------------------------- -int Test_DANCER_RTFU() -{ - int counter; - Int32 temp; - Int32 temp1; - -//------------------------------------------ check F1_LS_RDANCER_DOWN ------------------------------------------------ - - MessageBox.Show("Make sure RDANCER Down"); - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //read LS - if ((response.Value & F1_LS_RDANCER_DOWN) !=F1_LS_RDANCER_DOWN ) //if F1_LS_RDANCER_DOWN is up then error - { - Units_status[4,1]="Fail"; - stubManager.Write("LS_RDANCER_DOWN\tFail\n"); - return 0; - } -//----------------------------------------- mov RDANCER_Motor up and check F1_LS_RDANCER_DOWN ------------------------------------------------- - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RDANCER_Motor,true,10); //move Rloading up - counter =0; - while ( counter < 150) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if LS_RLOADMOTOR_UP is up then move down - if ((response.Value & F1_LS_RDANCER_DOWN) != F1_LS_RDANCER_DOWN ) - counter=250; - - delay(100); - } - if (counter == 150) - { - Units_status[4,1]="Fail"; - stubManager.Write("LS_RDANCER_DOWN\tFail\n"); - return 0; - } - Units_status[4,1]="Pass"; - stubManager.Write("LS_RDANCER_DOWN\tPass\n"); - -//----------------------------------------- check F1_LS_RDANCER_UP ------------------------------------------------- - - if ((response.Value & F1_LS_RDANCER_UP) !=F1_LS_RDANCER_UP ) //if F1_LS_RDANCER_UP is up then error - { - Units_status[5,1]="Fail"; - stubManager.Write("LS_RDANCER_UP\tFail\n"); - return 0; - } - counter =0; - while ( counter < 150) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if F1_LS_RDANCER_UP is up then move down - if ((response.Value & F1_LS_RDANCER_UP) != F1_LS_RDANCER_UP ) - counter=250; - - delay(100); - } - if (counter == 150) - { - Units_status[5,1]="Fail"; - stubManager.Write("LS_RDANCER_UP\tFail\n"); - return 0; - } - Units_status[5,1]="Pass"; - stubManager.Write("LS_RDANCER_UP\tPass\n"); - -//----------------------------------------- check F1_LS_RLOADRAM_DOWN ------------------------------------------------- - - if ((response.Value & F1_LS_RLOADRAM_DOWN) !=F1_LS_RLOADRAM_DOWN ) //if F1_LS_RLOADRAM_DOWN is up then error - { - Units_status[6,1]="Fail"; - stubManager.Write("LS_RLOADRAM_DOWN\tFail\n"); - return 0; - } - counter =0; - while ( counter < 150) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if F1_LS_RLOADRAM_DOWN is up then move down - if ((response.Value & F1_LS_RLOADRAM_DOWN) != F1_LS_RLOADRAM_DOWN ) - counter=250; - - delay(100); - } - if (counter == 150) - { - Units_status[6,1]="Fail"; - stubManager.Write("LS_RLOADRAM_DOWN\tFail\n"); - return 0; - } - Units_status[6,1]="Pass"; - stubManager.Write("LS_RLOADRAM_DOWN\tPass\n"); - -//----------------------------------------- mov RDANCER_Motor down and check rdancer encoder ------------------------------------------------- - temp= ReadEncoder(); - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RDANCER_Motor,false,10); //move Rloading down - counter =0; - while ( counter < 150) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if LS_RLOADMOTOR_UP is up then move down - if ((response.Value & F1_LS_RDANCER_DOWN) != F1_LS_RDANCER_DOWN ) - counter=250; - - delay(100); - } - if (counter == 150) - { - Units_status[4,1]="Fail"; - stubManager.Write("LS_RDANCER_DOWN\tFail\n"); - return 0; - } - Units_status[7,1]="Pass"; - stubManager.Write("RDANCER_Motor\tPass\n"); - - temp1= ReadEncoder(); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RDANCER_Motor, 3); //hold Rloading high z - - stubManager.Write("temp="+temp + "\temp1="+temp1 +"\n"); - - DialogResult result = MessageBox.Show("SSI Dancer led is Green(Not blinking)?", "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.No) - { - Units_status[8,1]="Fail"; - stubManager.Write("RDANCER_SSI\tFail\n"); - return 0; - } - - if (temp>temp1) - temp1=temp1+0x4000; - - temp1=temp1-temp; - if ((temp1> 15000) || (temp1 <1000)) - { - Units_status[8,1]="Fail"; - stubManager.Write("RDANCER_SSI\tFail\n"); - return 0; - } - Units_status[8,1]="Pass"; - stubManager.Write("RDANCER_SSI\tPass\n"); - - return 1; -} - - -//------------------------------------------------------------- -int Test_RDRIVING_RTFU() -{ - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RDRIVING_Motor, true,200); //move Rdriving clockwise - stubManager.Write("RDRIVING_Motor Motor rotate \n "); - - DialogResult result = MessageBox.Show("Are RDRIVING Motor rotate?", "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.No) - { - Units_status[3,1]="Fail"; - stubManager.Write("RDRIVING Motor not rotate\n"); - } - else - { - Units_status[3,1]="Pass"; - stubManager.Write("RDRIVING Motor rotate\n"); - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RDRIVING_Motor,3); //stop motor - - return 0; -} - - diff --git a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Tango_define.cs b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Tango_define.cs deleted file mode 100644 index a66fa5fa1..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Tango_define.cs +++ /dev/null @@ -1,124 +0,0 @@ -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.Stubs; -using Tango.Stubs; - - -const Int32 F1_LS_01_Direct = 0x60000020 ; -const Int32 F1_LS_02_Direct = 0x60000030 ; -const Int32 F1_LS_03_Direct = 0x60000040 ; - -const Int32 F1_gpo_01 = 0x600003D2 ; - - -const Int32 F2_CTRL = 0x600004E2 ; - -const Int32 F3_GPO_01_bus = 0x600008C2; - -const Int32 TCA9548A_address = 0xE2; - - -const Int32 I2C_ID2 = 2; -const Int32 I2C_ID3 = 3; - - - -const Int32 F1_SCREW_ROTENC_lsb = 0x60000100; -const Int32 F1_SCREW_ROTENC_msb = 0x60000102; - - - - - - - - - - -const Int32 F3_VALVE_OUT = 0x600008e2; - - -const Int32 F1_Tacho_reg8 = 0x600001e0 ; - - - - -//-------------------DEFINE Motors Parameters------------------ - -const Int32 F1_MOTO_RLOADING_TX1 = 0x60000202; -const Int32 F1_MOTO_RLOADING_TX0 = 0x60000200; -const Int32 F1_MOTO_RLOADING_RX1 = 0x60000206; -const Int32 F1_MOTO_RLOADING_RX0 = 0x60000204; - -//-------------------DEFINE Limit Switch--------------- - -const Int32 F1_LS_RLOADMOTOR_UP = 0x0040 ; -const Int32 F1_LS_RLOADMOTOR_DN = 0x0080 ; -const Int32 F1_LS_RDANCER_UP = 0x0100; -const Int32 F1_LS_RDANCER_DOWN = 0x0200; -const Int32 F1_LS_RLOADRAM_DOWN = 0x0020; - -const Int32 F1_RDANCER_ROTENC_DATA_p_RX_lsb = 0x600001a0; -const Int32 F1_RDANCER_ROTENC_DATA_p_RX_msb = 0x600001a2; -const Int32 F1_RDANCER_ROTENC_DATA_p_TX = 0x600001ae; - - - -const Int32 F2_Prescaler1_reg11 = 0x60000512 ; -const Int32 F2_BLOWER_PWM_LOW = 0x600007EC ; -const Int32 F2_BLOWER_PWM_HIGH = 0x600007EE ; - - -//-------------------DEFINE Motors------------------ -const Int32 CleaningHead_Motor = 0; -const Int32 CleaningMechanisim_Motor= 1; -const Int32 DyeingHeadLid_Motor = 2; -const Int32 DryerMain_Motor = 3; -const Int32 DryerLid_Motor = 4; -const Int32 DrierLoadingArm_Motor = 5; - -const Int32 SCREW = 14; -const Int32 WINDER_Motor = 15; - -const Int32 LDANCER1_Motor = 16; -const Int32 LDANCER2_Motor = 17; -const Int32 LDRIVING_Motor = 18; -const Int32 LLOADING_Motor = 19; - -const Int32 RDANCER_Motor = 21; -const Int32 RDRIVING_Motor = 22; -const Int32 MAGNET_Driver = 23; //replace RLOADARM -const Int32 RLOADING_Motor = 24; - - -//-------------------DEFINE Motors Parameters------------------ - -const Int32 F1_MOTO_LLOADING_TX1 = 0x60000232; -const Int32 F1_MOTO_LLOADING_TX0 = 0x60000230; - -const Int32 F1_LS_LLOADMOTOR_UP = 0x0100 ; -const Int32 F1_LS_LLOADMOTOR_DN = 0x0200 ; -const Int32 F1_LS_LDANCER1_UP = 0x1000; -const Int32 F1_LS_LDANCER1_DN = 0x2000; -const Int32 F1_LS_LDANCER2_UP = 0x0400; -const Int32 F1_LS_LDANCER2_DN = 0x0800; -const Int32 F1_LS_LLOADRAM_LF = 0x0080; -const Int32 F1_LS_LLOADRAM_RT = 0x0040; -const Int32 F1_LS_LSPARE1 = 0x0008; //dn -const Int32 F1_LS_LSPARE2 = 0x0004; //up - - -const Int32 F1_LDANCER1_ROTENC_MSB = 0x600001c2; -const Int32 F1_LDANCER1_ROTENC_LSB = 0x600001c0; -const Int32 F1_LDANCER1_ROTENC_TX = 0x600001ce; - -const Int32 F1_LDANCER2_ROTENC_MSB = 0x600001b2; -const Int32 F1_LDANCER2_ROTENC_LSB = 0x600001b0; -const Int32 F1_LDANCER2_ROTENC_TX = 0x600001be; diff --git a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Winder_Jig.cs b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Winder_Jig.cs deleted file mode 100644 index 3ad16cb5e..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Winder_Jig.cs +++ /dev/null @@ -1,189 +0,0 @@ -using System; -using System.Text; -using System.IO; -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.Stubs; -using Tango.Stubs; - - -const int Winder_UNDER_TEST=6; - -string [,] Units_status_Winder = new string[Winder_UNDER_TEST,2] { - {"Winder_Motor","Not Test"}, - {"Screw_Motor","Not Test"}, - {"LS_Screw_Right","Not Test"}, - {"LS_Screw_Left","Not Test"}, - {"Screw_Encoder","Not Test"}, - {"SW_Spool_Exist","Not Test"}, - }; - - -//-------------------------------------------------------------------------------- - -public Task<decimal> Winder_test( Action<string> settext, CancellationToken cancellationToken, string SN, string Location) -{ - Task<decimal> task = null; - // Start a task and return it - task = Task.Run(() => - { - - stubManager.Write("S/N:" +SN+ "\n"); - stubManager.Write("Location:" +Location+ "\n"); - - copy_table (Winder_UNDER_TEST,Units_status_Winder); - DialogResult result2 = MessageBox.Show("Insert Spool"); - - settext("Test_Winder_motor"); - Test_Winder_motor(); - settext("Test_Screw_LS_Motor_Encoder"); - Test_Screw_LS_Motor_Encoder (); - settext("Test_Pooler_Exis"); - Test_Pooler_Exist (); - - Status=write_to_file(SN,Location,Winder_UNDER_TEST,"Winder"); - settext("End Test"); - decimal result = 0; - - return result; - }); - return task; -} - -//------------------------------------------ -public int Test_Winder_motor () - -{ - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,WINDER_Motor, true, 500); //rotate Winder Motor. - stubManager.Write("Winder Motor rotate \n"); - DialogResult result = MessageBox.Show("Are Winder Motor rotate?", "Warning",MessageBoxButtons.YesNo); - if (_cancellationTokenSource.Token.IsCancellationRequested) - { - _cancellationTokenSource.Token.ThrowIfCancellationRequested(); - throw new TaskCanceledException(); - return 0; - } - if(result == DialogResult.No) - { - Units_status[0,1]="Fail"; - stubManager.Write("Winder Motor not rotate\n"); - } - else - { - Units_status[0,1]="Pass"; - stubManager.Write("Winder Motor rotate\n"); - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,WINDER_Motor,3); //stop motor - - return 0; -} - - -//-------------------------------------------- - int Test_Screw_LS_Motor_Encoder() -{ - UInt32 temp ; - Int32 Bit = 1; - - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,SCREW, false, 250); //rotate screw Motor out. - delay(1000); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,SCREW,3); //stop motor - - DialogResult result2 = MessageBox.Show("Did screw Motor move ?", "Warning",MessageBoxButtons.YesNo); - if(result2 == DialogResult.No) - { - Units_status[1,1]="Fail"; - stubManager.Write("Screw Motor not move\n"); - return 0; - } - Units_status[1,1]="Pass"; - - stubManager.Write("Screw Motor rotate \n"); - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,SCREW, true, 250); - stubManager.Write("Move screw in\n"); - - Bit = 1; - int i=0; - while ((Bit != 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec - { - Bit = GetBit(F1_LS_03_Direct,0); - delay(50); - i++; - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,SCREW,3); //stop motor - - DialogResult result1 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo); - if(result1 == DialogResult.No) - { - Units_status[2,1]="Fail"; - stubManager.Write("LS_SCREW_RIGHT Not calibrate\n"); - return 0; - } - Units_status[2,1]="Pass"; - stubManager.Write("Move screw out\n"); - - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F1_SCREW_ROTENC_lsb, 0x0000); //clear encoder - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F1_SCREW_ROTENC_msb, 0x0000); //clear encoder - - Bit = 1; - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,SCREW, false, 250); - i=0; - while ((Bit != 0x0) && (i<200)) //wait until Limit Switch or timeout 200*50msec=10sec - { - Bit = GetBit(F1_LS_03_Direct,1); - delay(50); - i++; - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,SCREW,3); //stop motor - - DialogResult result3 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo); - if(result3 == DialogResult.No) - { - Units_status[3,1]="Fail"; - stubManager.Write("LS_SCREW_LEFT Not calibrate\n"); - return 0; - } - Units_status[3,1]="Pass"; - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_SCREW_ROTENC_lsb); - var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_SCREW_ROTENC_msb); - - temp=(response.Value & 0xffff )+((response1.Value & 0xffff )<<16); - temp=temp&0x0fffffff; - temp= 0x4000000-temp; - stubManager.Write("Encoder positio:" +temp+"\n"); - - if ((temp>20000) && temp<28000) - Units_status[4,1]="Pass"; - else - Units_status[4,1]="Fail";// - - return 1; -} - //--------------------------------------- -int Test_Pooler_Exist() -{ - if ( (GetBit(F1_LS_03_Direct,11))==0) - { - Units_status[5,1]="Fail"; - return 0; - } - - DialogResult result2 = MessageBox.Show("Remove Spool"); - if ( (GetBit(F1_LS_03_Direct,11))!=0) - Units_status[5,1]="Fail"; // - else - Units_status[5,1]="Pass"; - - return 0 ; - - -} - diff --git a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/location.cs b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/location.cs deleted file mode 100644 index 11bf6556a..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/location.cs +++ /dev/null @@ -1 +0,0 @@ -string Location_str = "Hameshabev";
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/span.cs b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/span.cs deleted file mode 100644 index 1b31dbb4e..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/span.cs +++ /dev/null @@ -1,615 +0,0 @@ -using System; -using System.Text; -using System.IO; -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.Stubs; -using Tango.Stubs; - -const int New_DyeHead_UNDER_TEST=47; -const Int32 MGNET_OPEN=0x420301; -const Int32 MGNET_EN=0x420280; -const Int32 MGNET_CLOSE=0x420300; -const Int32 MGNET_DIS=0x420200; -const Int32 ACTDIR_ON=0x460280; -const Int32 ACTDIR_OFF=0x460200; - -const Int32 ACTIN_ON=0x460308; -const Int32 ACTOUT_ON=0x460304; - -const Int32 ACTIN_OFF=0x46030C; -const Int32 ACTOUT_OFF=0x46030C; - - - -const Int32 LS_FRONT=0X460110; -const Int32 LS_REAR=0X460120; -const Int32 LS_UPPER=0X460140; -const Int32 LS_SPARE=0X460180; -const Int32 ACTIN_EN=0X460101; -const Int32 ACTOUT_EN=0X460102; - - - -string EEPROM_Header="Header_1 "; //16 characters - -int Head_Mux_Channel_ID = 4; //Head MUX channel - - -//float [] DyeHeadTemp = new float[6] ; - -string [,] Units_status_New_DyeHead = new string[New_DyeHead_UNDER_TEST,2] { - {"Pt100_Zone_1","Pass"}, //0 - {"Pt100_Zone_2","Pass"}, //1 - {"Pt100_Zone_3","Pass"}, //2 - {"Pt100_Zone_4","Pass"}, //3 - {"Pt100_Zone_5","Pass"}, //4 - {"Pt100_Zone_6","Pass"}, //5 - {"Pt100_Zone_7","Pass"}, //6 - {"Pt100_Zone_8","Pass"}, //7 - {"Pt100_Zone_9","Pass"}, //8 - {"Pt100_Zone_10","Pass"}, //9 - {"Pt100_Zone_11","Pass"}, //10 - {"Pt100_Zone_12","Pass"}, //11 - - {"Current_Zone_1","Pass"}, //12 - {"Current_Zone_2","Pass"}, //13 - {"Current_Zone_3","Pass"}, //14 - {"Current_Zone_4","Pass"}, //15 - {"Current_Zone_5","Pass"}, //16 - {"Current_Zone_6","Pass"}, //17 - {"Current_Zone_7","Pass"}, //18 - {"Current_Zone_8","Pass"}, //19 - {"Current_Zone_9","Pass"}, //20 - {"Current_Zone_10","Pass"}, //21 - {"Current_Zone_11","Pass"}, //22 - {"Current_Zone_12","Pass"}, //23 - - {"Break_Zone_1","Pass"}, //24 - {"Break_Zone_2","Pass"}, //25 - {"Break_Zone_3","Pass"}, //26 - {"Break_Zone_4","Pass"}, //27 - {"Break_Zone_5","Pass"}, //28 - {"Break_Zone_6","Pass"}, //29 - {"Break_Zone_7","Pass"}, //30 - {"Break_Zone_8","Pass"}, //31 - {"Break_Zone_9","Pass"}, //32 - {"Break_Zone_10","Pass"}, //33 - {"Break_Zone_11","Pass"}, //34 - {"Break_Zone_12","Pass"}, //35 - - {"Magnet ","Not Test"}, //36 - {"LS_REAR","Not Test"}, //37 - {"LS_FRONT","Not Test"}, //38 - {"DH_LID_Motor","Not Test"}, //39 - - {"EEPROM ","Pass"}, //40 - - {"ACTUATOR_IN","Not Test"}, //41 - {"LS_IN_UP","Not Test"}, //42 - {"LS_IN_DN","Not Test"}, //43 - {"ACTUATOR_OUT","Not Test"}, //44 - {"LS_OUT_UP","Not Test"}, //45 - {"LS_OUT_DN","Not Test"}, //46 - - - }; - - - -//-------------------------------------------------------------------------------- - -public Task<decimal> NewDyeHead_test( Action<string> settext, CancellationToken cancellationToken, string SN, string Location) -{ - Task<decimal> task = null; - // Start a task and return it - task = Task.Run(() => - { - stubManager.Write("S/N:" +SN+ "\n"); - stubManager.Write("Location:" +Location+ "\n"); - - copy_table (New_DyeHead_UNDER_TEST,Units_status_New_DyeHead); - - DialogResult result1 = MessageBox.Show("Make shure, Dyehead is not hot", "Warning",MessageBoxButtons.OKCancel); - if(result1 == DialogResult.Cancel) - { - stubManager.AppendToFile(File_Name1,"Dyehead is too hot \tFail"); - stubManager.Write("Dyehead is too hot \tFail\n"); - return 0 ; - } - else - { - -//------------------------------- start test ----------- - settext("Test Magnet Motor LS"); - Test_Magnet_Motor_LS_New_DyeHead(); - settext("Test heaters &pt100"); - Test_heaters_pt100 (); - settext("Test Head EEPROM"); - Test_Head_EEPROM(SN); - settext("Test Actuator In"); - Test_Actuator_in(); - settext("Test Actuator Out"); - Test_Actuator_out(); - Status=write_to_file(SN,Location,DyeHead_UNDER_TEST,"Dyehead"); - - settext("End Test"); - } - decimal result = 0; - - return result; - }); - return task; -} - -//------------------------------------------------------------- - int Test_Actuator_in() -{ - Int32 temp; - int i=0; - - DialogResult result = MessageBox.Show("Make shure, ACTUATOR-IN is down", "Warning",MessageBoxButtons.OKCancel); - if(result == DialogResult.Cancel) - { - Units_status[41,1]="Fail"; - stubManager.Write("ACTUATOR-IN is Up\n"); - return 0; - } -//---------------------- move ACTUATOR-IN Up ---------------------------- - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,ACTDIR_ON); // DIR=1 - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,ACTIN_ON); // act_in enable - delay(10); - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,ACTIN_OFF); // act_in disable - stubManager.Write("ACTUATOR-IN moving Up\n"); - - temp = 1; - i=0; - while ((temp != 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec - { - temp=read_pio (ACTIN_EN); // read ACTIN_EN - delay(50); - i++; - } - - if(i == 200) - { - Units_status[41,1]="Fail"; - stubManager.Write("CTUATOR-IN is not moving Up\n"); - return 0; - } - - DialogResult result2 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.OKCancel); - if(result2 == DialogResult.Cancel) - { - Units_status[42,1]="Fail"; - stubManager.Write("LS_IN_UP Not calibrate\n"); - return 0; - } - Units_status[41,1]="Pass"; - Units_status[42,1]="Pass"; -//---------------------- move ACTUATOR-IN Dn ---------------------------- - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,ACTDIR_OFF); // DIR=0 - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,ACTIN_ON); // act_in enable - delay(10); - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,ACTIN_OFF); // act_in disable - stubManager.Write("ACTUATOR-IN moving Dn\n"); - - temp = 1; - i=0; - while ((temp != 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec - { - temp=read_pio (ACTIN_EN); // read ACTIN_EN - delay(50); - i++; - } - - if(i == 200) - { - Units_status[41,1]="Fail"; - stubManager.Write("CTUATOR-IN is not moving Down\n"); - return 0; - } - - DialogResult result3 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.OKCancel); - if(result3 == DialogResult.Cancel) - { - Units_status[43,1]="Fail"; - stubManager.Write("LS_IN_Down Not calibrate\n"); - return 0; - } - Units_status[43,1]="Pass"; - return 0; - -} -//------------------------------------------------------------- - int Test_Actuator_out() -{ - Int32 temp; - int i=0; - - DialogResult result = MessageBox.Show("Make shure, ACTUATOR-OUT is down", "Warning",MessageBoxButtons.OKCancel); - if(result == DialogResult.Cancel) - { - Units_status[44,1]="Fail"; - stubManager.Write("ACTUATOR-OUT is Up\n"); - return 0; - } -//---------------------- move ACTUATOR-OUT Up ---------------------------- - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,ACTDIR_ON); // DIR=1 - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,ACTOUT_ON); // act_OUT enable - delay(10); - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,ACTOUT_OFF); // act_OUT disable - stubManager.Write("ACTUATOR-OUT moving Up\n"); - - temp = 1; - i=0; - while ((temp != 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec - { - temp=read_pio (ACTOUT_EN); // read ACTOUT_EN - delay(50); - i++; - } - - if(i == 200) - { - Units_status[44,1]="Fail"; - stubManager.Write("CTUATOR-OUT is not moving Up\n"); - return 0; - } - - DialogResult result2 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.OKCancel); - if(result2 == DialogResult.Cancel) - { - Units_status[45,1]="Fail"; - stubManager.Write("LS_OUT_UP Not calibrate\n"); - return 0; - } - Units_status[44,1]="Pass"; - Units_status[45,1]="Pass"; -//---------------------- move ACTUATOR-OUT Dn ---------------------------- - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,ACTDIR_OFF); // DIR=0 - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,ACTOUT_ON); // act_out enable - delay(10); - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,ACTOUT_OFF); // act_out disable - stubManager.Write("ACTUATOR-OUT moving Dn\n"); - - temp = 1; - i=0; - while ((temp != 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec - { - temp=read_pio (ACTOUT_EN); // read ACTOUT_EN - delay(50); - i++; - } - - if(i == 200) - { - Units_status[44,1]="Fail"; - stubManager.Write("CTUATOR-OUT is not moving Down\n"); - return 0; - } - - DialogResult result3 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.OKCancel); - if(result3 == DialogResult.Cancel) - { - Units_status[46,1]="Fail"; - stubManager.Write("LS_OUT_Down Not calibrate\n"); - return 0; - } - Units_status[46,1]="Pass"; - return 0; - -} - - - -//-------------------------------------------- - int Test_Magnet_Motor_LS_New_DyeHead() -{ - Int32 temp; - int i=0; -//---------------------- open Magnet ---------------------------- - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,MGNET_OPEN); // turn magnet on - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,MGNET_EN); // magnet enable - stubManager.Write("Magnet is Open\n"); - delay(1000); -//---------------------- chekc Magnet is open ---------------------------- - temp=read_pio (LS_UPPER); // read LS_UPPER - if (temp != 0) - { - Units_status[36,1]="Fail"; - stubManager.Write("Magnet is close\n"); - return 0; - } - DialogResult result = MessageBox.Show("Make shure, Magnet is open", "Warning",MessageBoxButtons.OKCancel); - if(result == DialogResult.Cancel) - { - Units_status[36,1]="Fail"; - stubManager.Write("Magnet is close\n"); - return 0; - } -//---------------------- Move DyeingHead Lid Motor rear---------------------------- - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DyeingHeadLid_Motor, true, 250); - stubManager.Write("*** Open Lid Head \n"); - - temp = 0; - i=0; - while ((temp == 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec - { - temp=read_pio (LS_REAR); // read LS_REAR - delay(50); - i++; - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor,3); //stop motor - if(i == 200) - { - Units_status[37,1]="Fail"; - Units_status[39,1]="Fail"; - stubManager.Write("LS_REAR Not calibrate\n"); - return 0; - } - DialogResult result2 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.OKCancel); - if(result2 == DialogResult.Cancel) - { - Units_status[37,1]="Fail"; - Units_status[39,1]="Fail"; - stubManager.Write("LS_REAR Not calibrate\n"); - return 0; - } - Units_status[37,1]="Pass"; -//---------------------- Move DyeingHead Lid Motor front---------------------------- - stubManager.Write("*** Close Lid Head \n"); - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DyeingHeadLid_Motor, false, 250); - temp = 0; - i=0; - while ((temp == 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec - { - temp=read_pio (LS_FRONT); // read LS_FRONT - delay(50); - i++; - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor,3); //stop motor - if(i == 200) - { - Units_status[38,1]="Fail"; - stubManager.Write("LS_FRONT Not calibrate\n"); - return 0; - } - - DialogResult result3 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.OKCancel); - if(result3 == DialogResult.Cancel) - { - Units_status[38,1]="Fail"; - stubManager.Write("LS_FRONT Not calibrate\n"); - return 0; - } - Units_status[37,1]="Pass"; - Units_status[38,1]="Pass"; -//---------------------- Close Magnet ---------------------------- - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,MGNET_CLOSE); // turn magnet off - delay(2000); - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,MGNET_DIS); // magnet Disable - - stubManager.Write("Magnet is Close\n"); - delay(1000); -//---------------------- chekc Magnet is close ---------------------------- - temp=read_pio (LS_UPPER); // read LS_UPPER - if (temp == 0) - { - Units_status[36,1]="Fail"; - stubManager.Write("Magnet is open\n"); - return 0; - } - DialogResult result4 = MessageBox.Show("Make shure, Magnet is close", "Warning",MessageBoxButtons.OKCancel); - if(result4 == DialogResult.Cancel) - { - Units_status[36,1]="Fail"; - stubManager.Write("Magnet is open\n"); - return 0; - } - Units_status[36,1]="Pass"; - stubManager.Write("Magnet is close\n"); - return 0; -} - - -//------------------------------------ -public int Test_new_heaters_pt100() -{ - -// uint utemp=0; - Int32 temp=0; - float ftemp=0; - float ftemp1=0; - float current=0; - Double current_sense; - - for (Int32 i = 0; i < 12; i++) - { - Int32 tdly=10000; -//---------------------- get tempurature of heaters---------------------------- - temp= 12+i/2+(i%2)*8; //HZone_1=12 - //HZone_2=20 - //HZone_3=13 - //HZone_4=21 - //HZone_5=14 - //HZone_6=22 - //HZone_7=15 - //HZone_8=23 - //HZone_9=16 - //HZone_10=24 - //HZone_11=17 - //HZone_11=25 - var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" , temp); //get temperature from the buffer - ftemp = (float)response.TemperatureCMultBy100; - ftemp = ftemp / 100; - - if ((ftemp>50)|| (ftemp<15)) - { - Units_status[i,1]="Fail"; - tdly=1000; - - } - stubManager.Write("Zone-"+(i+1)+ "\t" + ftemp.ToString("F2")+"°C\n"); -//---------------------- get current of heaters ---------------------------- - var response1 = stubManager.Run<StubMidTankPressureSensorResponse>("StubMidTankPressureSensorRequest" ,0x8000 + i); // get current - current_sense=response1.Pressure; - if (current_sense>0.1) - { - Units_status[i+12,1]="Fail"; - } - stubManager.Write("current is "+(i+1)+ "\t" + current_sense +"\n"); -//---------------------- get Break of heaters ---------------------------- - var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,0x440000 +(i/8)*0x100+(1<<(i&7))); // read break - temp = (Int32) (response2.Progress); - if ((temp & (1<<(i&7))) !=0) //if break ok - { - Units_status[i+24,1]="Fail"; - stubManager.Write("Break Zone "+(i+1)+ "\t is Off\n"); - } - else - { - stubManager.Write("Break Zone "+(i+1)+ "\t is Off\n"); - } -//---------------------- turn heater on ---------------------------- - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,0x400200 +(i/8)*0x100+(1<<(i&7))); // turn heater on - stubManager.Write("Heater - "+(i+1)+ "\t is On\n"); - delay(2000); //delay 20 second -//---------------------- get current of heaters ---------------------------- - var response3 = stubManager.Run<StubMidTankPressureSensorResponse>("StubMidTankPressureSensorRequest" ,0x8000 + i); // get current - current_sense=response3.Pressure; - if ((current_sense<1.1) ||(current_sense>1.4) ) //if current not 1.25A - { - Units_status[i+12,1]="Fail"; - } - stubManager.Write("current is "+(i+1)+ "\t" + current_sense +"\n"); -//---------------------- get Break of heaters ---------------------------- - var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,0x440000 +(i/8)*0x100+(1<<(i&7))); // read break - temp = (Int32) (response4.Progress); - if ((temp & (1<<(i&7))) !=0) //if break ok - { - Units_status[i+24,1]="Fail"; - stubManager.Write("Break Zone "+(i+1)+ "\t is Off\n"); - } - else - { - stubManager.Write("Break Zone "+(i+1)+ "\t is On\n"); - } - delay(tdly); //delay 20 second - temp= 12+i/2+(i%2)*8; - var response5 = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" , temp); //get temperature from the buffer - ftemp1 = (float)response5.TemperatureCMultBy100; - ftemp1 = ftemp1 / 100; - - if (((ftemp1-ftemp)<5)|| ((ftemp1-ftemp)>35)) - { - Units_status[i,1]="Fail"; - } - stubManager.Write("Zone-"+(i+1)+ "after heating is \t" + ftemp1.ToString("F2")+"°C\n"); -//---------------------- turn heater off ---------------------------- - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,0x400200 +(i/8)*0x100); // turn heater off - stubManager.Write("Heater - "+(i+1)+ "\t is Off\n"); - - } - return 0; -} - -Int32 read_pio(Int32 i2c_input) -{ - Int32 temp=0; - var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,i2c_input); // read break - temp = (Int32) (response.Progress); - temp =temp & (i2c_input& 0xff); //if break ok - return temp; -} -//end mati - - //enable_all_channel(); -public int Test_Head_EEPROM(string s_n) -{ - - enable_channel(Head_Mux_Channel_ID); // Chanel 0-7 => Disp0enser 0-7 - - Write_EEPROM(0xA0,s_n); - delay(20); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet ) - - adc_set_for_read_ch(0xA0); - //Thread.Sleep(1); //Sleep for 10 milli. - Read_EEPROM(0xA0); - - delay(20); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet ) - return 0; - -} - - - -int enable_channel(int Channel_ID) -{ - uint Const_temp = 0x01; - - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID3; - stubI2CWriteBytesRequest.SlaveAddress = TCA9548A_address; - - Const_temp = Const_temp << Channel_ID; - stubI2CWriteBytesRequest.BytesTWrite.Add(Const_temp); - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; -} - -int Write_EEPROM (uint I2C_Slave_Add,string s_n ) -{ - - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID3; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write - //-------------------------------------------------------------- - char[] characters = EEPROM_Header.ToCharArray(); - - for (int i=0;i<16;i++) - { - stubI2CWriteBytesRequest.BytesTWrite.Add(characters[i]); //add header - } - characters = s_n.ToCharArray(); - - for (int i=0;i<16;i++) - { - stubI2CWriteBytesRequest.BytesTWrite.Add(characters[i]); //add s/n - } - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; -} - -int Read_EEPROM(uint I2C_Slave_Add) -{ - StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest(); - stubI2CReadBytesRequest.I2CId = I2C_ID3; - stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add + 1; - stubI2CReadBytesRequest.NumberOfBytesToRead = 16; // Number of header bytes to read - - var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest); - uint temph=0; - char[] characters = EEPROM_Header.ToCharArray(); - - for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++) - { - if (characters[i]!=response1.ReadBytes[i]); - Units_status[40,1]="Fail"; - } - stubManager.Write("EEprom "+ Units_status[40,1]+"\n"); - - return 1; -} diff --git a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/stapele_span.cs b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/stapele_span.cs deleted file mode 100644 index 656786ad7..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/stapele_span.cs +++ /dev/null @@ -1,631 +0,0 @@ -using System; -using System.Text; -using System.IO; -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.Stubs; -using Tango.Stubs; - -const int New_Stapele_Span_UNDER_TEST=47; -const Int32 MGNET_OPEN=0x420301; -const Int32 MGNET_EN=0x420280; -const Int32 MGNET_CLOSE=0x420300; -const Int32 MGNET_DIS=0x420200; -const Int32 ACTDIR_ON=0x460280; -const Int32 ACTDIR_OFF=0x460200; - -const Int32 ACTIN_ON=0x460308; -const Int32 ACTOUT_ON=0x460304; - -const Int32 ACTIN_OFF=0x46030C; -const Int32 ACTOUT_OFF=0x46030C; - - - -const Int32 LS_FRONT=0X460110; -const Int32 LS_REAR=0X460120; -const Int32 LS_UPPER=0X460140; -const Int32 LS_SPARE=0X460180; -const Int32 ACTIN_EN=0X460101; -const Int32 ACTOUT_EN=0X460102; - - - -string EEPROM_Header="Header_1 "; //16 characters - -int Head_Mux_Channel_ID = 4; //Head MUX channel - - -//float [] Stapele_SpanTemp = new float[6] ; - -string [,] Units_status_New_Stapele_Span = new string[New_Stapele_Span_UNDER_TEST,2] { - {"Pt100_HTIN","Pass"}, //0 - {"Pt100_HTOUT","Pass"}, //1 - - {"Current_HTIN1","Pass"}, //2 - {"Current_HTIN2","Pass"}, //3 - {"Current_HTIN3","Pass"}, //4 - {"Current_HTIN4","Pass"}, //5 - {"Current_HTOUT1","Pass"}, //6 - {"Current_HTOUT2","Pass"}, //7 - {"Current_HTOUT3","Pass"}, //8 - {"Current_HTOUT4","Pass"}, //9 - - {"Break_HTIN1","Pass"}, //10 - {"Break_HTIN2","Pass"}, //11 - {"Break_HTIN3","Pass"}, //12 - {"Break_HTIN4","Pass"}, //13 - {"Break_HTOUT1","Pass"}, //14 - {"Break_HTOUT2","Pass"}, //15 - {"Break_HTOUT3","Pass"}, //16 - {"Break_HTOUT4","Pass"}, //17 - - {"Fan_in","Not Test"}, //18 - {"Fan_out","Not Test"}, //19 - - - - {"Magnet ","Not Test"}, //18 - {"LS_REAR","Not Test"}, //19 - {"LS_FRONT","Not Test"}, //2 - {"DH_LID_Motor","Not Test"}, //39 - - {"EEPROM ","Pass"}, //40 - - {"ACTUATOR_IN","Not Test"}, //41 - {"LS_IN_UP","Not Test"}, //42 - {"LS_IN_DN","Not Test"}, //43 - {"ACTUATOR_OUT","Not Test"}, //44 - {"LS_OUT_UP","Not Test"}, //45 - {"LS_OUT_DN","Not Test"}, //46 - - - }; - - - -//-------------------------------------------------------------------------------- - -public Task<decimal> NewStapele_Span_test( Action<string> settext, CancellationToken cancellationToken, string SN, string Location) -{ - Task<decimal> task = null; - // Start a task and return it - task = Task.Run(() => - { - stubManager.Write("S/N:" +SN+ "\n"); - stubManager.Write("Location:" +Location+ "\n"); - - copy_table (New_Stapele_Span_UNDER_TEST,Units_status_New_Stapele_Span); - - DialogResult result1 = MessageBox.Show("Make shure, Stapele_Span is not hot", "Warning",MessageBoxButtons.OKCancel); - if(result1 == DialogResult.Cancel) - { - stubManager.AppendToFile(File_Name1,"Stapele_Span is too hot \tFail"); - stubManager.Write("Stapele_Span is too hot \tFail\n"); - return 0 ; - } - else - { - -//------------------------------- start test ----------- - settext("Test Magnet Motor LS"); - Test_Magnet_Motor_LS_New_Stapele_Span(); - settext("Test blowers &pt100"); - Test_blowers_pt100 (); - settext("Test Head EEPROM"); - Test_Head_EEPROM(SN); - settext("Test Actuator In"); - Test_Actuator_in(); - settext("Test Actuator Out"); - Test_Actuator_out(); - Status=write_to_file(SN,Location,Stapele_Span_UNDER_TEST,"Stapele_Span"); - - settext("End Test"); - } - decimal result = 0; - - return result; - }); - return task; -} - -//------------------------------------------------------------- - int Test_Actuator_in() -{ - Int32 temp; - int i=0; - - DialogResult result = MessageBox.Show("Make shure, ACTUATOR-IN is down", "Warning",MessageBoxButtons.OKCancel); - if(result == DialogResult.Cancel) - { - Units_status[41,1]="Fail"; - stubManager.Write("ACTUATOR-IN is Up\n"); - return 0; - } -//---------------------- move ACTUATOR-IN Up ---------------------------- - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,ACTDIR_ON); // DIR=1 - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,ACTIN_ON); // act_in enable - delay(10); - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,ACTIN_OFF); // act_in disable - stubManager.Write("ACTUATOR-IN moving Up\n"); - - temp = 1; - i=0; - while ((temp != 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec - { - temp=read_pio (ACTIN_EN); // read ACTIN_EN - delay(50); - i++; - } - - if(i == 200) - { - Units_status[41,1]="Fail"; - stubManager.Write("CTUATOR-IN is not moving Up\n"); - return 0; - } - - DialogResult result2 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.OKCancel); - if(result2 == DialogResult.Cancel) - { - Units_status[42,1]="Fail"; - stubManager.Write("LS_IN_UP Not calibrate\n"); - return 0; - } - Units_status[41,1]="Pass"; - Units_status[42,1]="Pass"; -//---------------------- move ACTUATOR-IN Dn ---------------------------- - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,ACTDIR_OFF); // DIR=0 - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,ACTIN_ON); // act_in enable - delay(10); - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,ACTIN_OFF); // act_in disable - stubManager.Write("ACTUATOR-IN moving Dn\n"); - - temp = 1; - i=0; - while ((temp != 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec - { - temp=read_pio (ACTIN_EN); // read ACTIN_EN - delay(50); - i++; - } - - if(i == 200) - { - Units_status[41,1]="Fail"; - stubManager.Write("CTUATOR-IN is not moving Down\n"); - return 0; - } - - DialogResult result3 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.OKCancel); - if(result3 == DialogResult.Cancel) - { - Units_status[43,1]="Fail"; - stubManager.Write("LS_IN_Down Not calibrate\n"); - return 0; - } - Units_status[43,1]="Pass"; - return 0; - -} -//------------------------------------------------------------- - int Test_Actuator_out() -{ - Int32 temp; - int i=0; - - DialogResult result = MessageBox.Show("Make shure, ACTUATOR-OUT is down", "Warning",MessageBoxButtons.OKCancel); - if(result == DialogResult.Cancel) - { - Units_status[44,1]="Fail"; - stubManager.Write("ACTUATOR-OUT is Up\n"); - return 0; - } -//---------------------- move ACTUATOR-OUT Up ---------------------------- - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,ACTDIR_ON); // DIR=1 - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,ACTOUT_ON); // act_OUT enable - delay(10); - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,ACTOUT_OFF); // act_OUT disable - stubManager.Write("ACTUATOR-OUT moving Up\n"); - - temp = 1; - i=0; - while ((temp != 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec - { - temp=read_pio (ACTOUT_EN); // read ACTOUT_EN - delay(50); - i++; - } - - if(i == 200) - { - Units_status[44,1]="Fail"; - stubManager.Write("CTUATOR-OUT is not moving Up\n"); - return 0; - } - - DialogResult result2 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.OKCancel); - if(result2 == DialogResult.Cancel) - { - Units_status[45,1]="Fail"; - stubManager.Write("LS_OUT_UP Not calibrate\n"); - return 0; - } - Units_status[44,1]="Pass"; - Units_status[45,1]="Pass"; -//---------------------- move ACTUATOR-OUT Dn ---------------------------- - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,ACTDIR_OFF); // DIR=0 - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,ACTOUT_ON); // act_out enable - delay(10); - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,ACTOUT_OFF); // act_out disable - stubManager.Write("ACTUATOR-OUT moving Dn\n"); - - temp = 1; - i=0; - while ((temp != 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec - { - temp=read_pio (ACTOUT_EN); // read ACTOUT_EN - delay(50); - i++; - } - - if(i == 200) - { - Units_status[44,1]="Fail"; - stubManager.Write("CTUATOR-OUT is not moving Down\n"); - return 0; - } - - DialogResult result3 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.OKCancel); - if(result3 == DialogResult.Cancel) - { - Units_status[46,1]="Fail"; - stubManager.Write("LS_OUT_Down Not calibrate\n"); - return 0; - } - Units_status[46,1]="Pass"; - return 0; - -} - - - -//-------------------------------------------- - int Test_Magnet_Motor_LS_New_Stapele_Span() -{ - Int32 temp; - int i=0; -//---------------------- open Magnet ---------------------------- - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,MGNET_OPEN); // turn magnet on - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,MGNET_EN); // magnet enable - stubManager.Write("Magnet is Open\n"); - delay(1000); -//---------------------- chekc Magnet is open ---------------------------- - temp=read_pio (LS_UPPER); // read LS_UPPER - if (temp != 0) - { - Units_status[36,1]="Fail"; - stubManager.Write("Magnet is close\n"); - return 0; - } - DialogResult result = MessageBox.Show("Make shure, Magnet is open", "Warning",MessageBoxButtons.OKCancel); - if(result == DialogResult.Cancel) - { - Units_status[36,1]="Fail"; - stubManager.Write("Magnet is close\n"); - return 0; - } -//---------------------- Move DyeingHead Lid Motor rear---------------------------- - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DyeingHeadLid_Motor, true, 250); - stubManager.Write("*** Open Lid Head \n"); - - temp = 0; - i=0; - while ((temp == 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec - { - temp=read_pio (LS_REAR); // read LS_REAR - delay(50); - i++; - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor,3); //stop motor - if(i == 200) - { - Units_status[37,1]="Fail"; - Units_status[39,1]="Fail"; - stubManager.Write("LS_REAR Not calibrate\n"); - return 0; - } - DialogResult result2 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.OKCancel); - if(result2 == DialogResult.Cancel) - { - Units_status[37,1]="Fail"; - Units_status[39,1]="Fail"; - stubManager.Write("LS_REAR Not calibrate\n"); - return 0; - } - Units_status[37,1]="Pass"; -//---------------------- Move DyeingHead Lid Motor front---------------------------- - stubManager.Write("*** Close Lid Head \n"); - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DyeingHeadLid_Motor, false, 250); - temp = 0; - i=0; - while ((temp == 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec - { - temp=read_pio (LS_FRONT); // read LS_FRONT - delay(50); - i++; - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor,3); //stop motor - if(i == 200) - { - Units_status[38,1]="Fail"; - stubManager.Write("LS_FRONT Not calibrate\n"); - return 0; - } - - DialogResult result3 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.OKCancel); - if(result3 == DialogResult.Cancel) - { - Units_status[38,1]="Fail"; - stubManager.Write("LS_FRONT Not calibrate\n"); - return 0; - } - Units_status[37,1]="Pass"; - Units_status[38,1]="Pass"; -//---------------------- Close Magnet ---------------------------- - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,MGNET_CLOSE); // turn magnet off - delay(2000); - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,MGNET_DIS); // magnet Disable - - stubManager.Write("Magnet is Close\n"); - delay(1000); -//---------------------- chekc Magnet is close ---------------------------- - temp=read_pio (LS_UPPER); // read LS_UPPER - if (temp == 0) - { - Units_status[36,1]="Fail"; - stubManager.Write("Magnet is open\n"); - return 0; - } - DialogResult result4 = MessageBox.Show("Make shure, Magnet is close", "Warning",MessageBoxButtons.OKCancel); - if(result4 == DialogResult.Cancel) - { - Units_status[36,1]="Fail"; - stubManager.Write("Magnet is open\n"); - return 0; - } - Units_status[36,1]="Pass"; - stubManager.Write("Magnet is close\n"); - return 0; -} - - -//------------------------------------ -public int Test_blowers_pt100_fan() -{ - -// uint utemp=0; - Int32 temp=0; - float ftemp=0; - float ftemp1=0; - float current=0; - Double current_sense; - - for (Int32 i = 0; i < 2; i++) - { - //---------------------- check fans---------------------------- - stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfac0+i, 0xff);//Fan Click Head Card , Fan 1 Setting - 0xFF Full PWM 0x80 = 50% FF = 100% 0 - STOP - delay(2000); //delay 2 second - - var response5 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfac0+i, 0xff);//Fan Click Head Card , Fan 1 Setting - 0xFF Full PWM 0x80 = 50% FF = 100% 0 - STOP - temp = (Int32) (response.Progress); - temp =temp & (response.Progress & 0xffff); // - if (temp>0xEC0) - { - Units_status[18+i,1]="Fail"; - return 0; - } - Units_status[18+i,1]="Pass"; - - //---------------------- get tempurature of heaters---------------------------- - if (i==0) - temp=18; - else - temp=16; - var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" , 0x8000 +temp); //get temperature from the buffer - ftemp = (float)response.TemperatureCMultBy100; - ftemp = ftemp / 100; - - if ((ftemp>50)|| (ftemp<15)) - { - Units_status[i,1]="Fail"; - tdly=1000; - - } - stubManager.Write("Hit-"+(i+1)+ "\t" + ftemp.ToString("F2")+"°C\n"); - - for (Int32 j = 0; j < 4; j++) - { - Int32 tdly=10000; - //---------------------- get current of heaters ---------------------------- - var response1 = stubManager.Run<StubMidTankPressureSensorResponse>("StubMidTankPressureSensorRequest" ,0x8000 +12 + 4*i +j); // get current - current_sense=2*response1.Pressure; - if (current_sense>0.1) - { - Units_status[2+j+4*i,1]="Fail"; - } - stubManager.Write("current is "+(j+1+4*i )+ "\t" + current_sense +"\n"); - //---------------------- get Break of heaters ---------------------------- - var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,0x440000 +0x20000*i +(1-i)*0x100); // read break - temp = (Int32) (response2.Progress); - if ((temp & (1<<((1-i)*4+j))) !=0) //if break ok - { - Units_status[10+j+4*i,1]="Fail"; - stubManager.Write("Break Zone "+(i*4+j+1)+ "\t is Off\n"); - } - else - { - stubManager.Write("Break Zone "+(i*4+j+1)+ "\t is On\n"); - } - //---------------------- turn heater on ---------------------------- - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,0x400300 +0x1fff00*i +(1<<((1-i)*4+j))); // turn heater on - stubManager.Write("Heater - "+(i*4+j+1)+ "\t is On\n"); - delay(2000); //delay 2 second - //---------------------- get current of heaters ---------------------------- - var response3 = stubManager.Run<StubMidTankPressureSensorResponse>("StubMidTankPressureSensorRequest" ,0x8000 + +12 + 4*i +j); // get current - current_sense=2*response3.Pressure; - if ((current_sense<1.1) ||(current_sense>1.4) ) //if current not 2.5A - { - Units_status[2+j+4*i,1]="Fail"; - } - stubManager.Write("current is "+(j+1+4*i )+"\t" + current_sense +"\n"); - //---------------------- get Break of heaters ---------------------------- - var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,0x440000 +0x20000*i +(1-i)*0x100); // read break - temp = (Int32) (response4.Progress); - if ((temp & (1<<((1-i)*4+j))) !=0) //if break ok - { - Units_status[10+j+4*i,1]="Fail"; - stubManager.Write("Break Zone "+(i*4+j+1)+ "\t is Off\n"); - } - else - { - stubManager.Write("Break Zone "+(i*4+j+1)+ "\t is On\n"); - } - - delay(tdly); //delay 20 second - //---------------------- turn heater off ---------------------------- - - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,0x400300 +0x1fff00*i ); // turn heater on - stubManager.Write("Heater - "+(i*4+j+1)+ "\t is Off\n"); - } - //---------------------- get tempurature of heaters---------------------------- - if (i==0) - temp=18; - else - temp=16; - var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" , 0x8000 +temp); //get temperature from the buffer - ftemp1 = (float)response.TemperatureCMultBy100; - ftemp1 = ftemp1 / 100; - - if (((ftemp1-ftemp)<5)|| ((ftemp1-ftemp)>35)) - { - Units_status[i,1]="Fail"; - } - stubManager.Write("Zone-"+(i+1)+ "after heating is \t" + ftemp1.ToString("F2")+"°C\n"); - - //---------------------- check fan off---------------------------- - - stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfac0+i, 0);//Fan Click Head Card , Fan 1 Setting - 0xFF Full PWM 0x80 = 50% FF = 100% 0 - STOP - delay(2000); //delay 2 second - var response6 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfac0+i, 0);//Fan Click Head Card , Fan 1 Setting - 0xFF Full PWM 0x80 = 50% FF = 100% 0 - STOP - temp = (Int32) (response6.Progress); - temp =temp & (response.Progress & 0xffff); // - if (temp<0x0xFF00) - { - Units_status[18+i,1]="Fail"; - return 0; - } - - } - return 0; -} - -Int32 read_pio(Int32 i2c_input) -{ - Int32 temp=0; - var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,i2c_input); // read break - temp = (Int32) (response.Progress); - temp =temp & (i2c_input& 0xff); //if break ok - return temp; -} -//end mati - - //enable_all_channel(); -public int Test_Head_EEPROM(string s_n) -{ - - enable_channel(Head_Mux_Channel_ID); // Chanel 0-7 => Disp0enser 0-7 - - Write_EEPROM(0xA0,s_n); - delay(20); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet ) - - adc_set_for_read_ch(0xA0); - //Thread.Sleep(1); //Sleep for 10 milli. - Read_EEPROM(0xA0); - - delay(20); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet ) - return 0; - -} - - - -int enable_channel(int Channel_ID) -{ - uint Const_temp = 0x01; - - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID3; - stubI2CWriteBytesRequest.SlaveAddress = TCA9548A_address; - - Const_temp = Const_temp << Channel_ID; - stubI2CWriteBytesRequest.BytesTWrite.Add(Const_temp); - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; -} - -int Write_EEPROM (uint I2C_Slave_Add,string s_n ) -{ - - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID3; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write - //-------------------------------------------------------------- - char[] characters = EEPROM_Header.ToCharArray(); - - for (int i=0;i<16;i++) - { - stubI2CWriteBytesRequest.BytesTWrite.Add(characters[i]); //add header - } - characters = s_n.ToCharArray(); - - for (int i=0;i<16;i++) - { - stubI2CWriteBytesRequest.BytesTWrite.Add(characters[i]); //add s/n - } - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; -} - -int Read_EEPROM(uint I2C_Slave_Add) -{ - StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest(); - stubI2CReadBytesRequest.I2CId = I2C_ID3; - stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add + 1; - stubI2CReadBytesRequest.NumberOfBytesToRead = 16; // Number of header bytes to read - - var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest); - uint temph=0; - char[] characters = EEPROM_Header.ToCharArray(); - - for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++) - { - if (characters[i]!=response1.ReadBytes[i]); - Units_status[40,1]="Fail"; - } - stubManager.Write("EEprom "+ Units_status[40,1]+"\n"); - - return 1; -} diff --git a/Software/Stubs Collection/stubs/Scripts/Main card Watchdog test.cs b/Software/Stubs Collection/stubs/Scripts/Main card Watchdog test.cs deleted file mode 100644 index 3db075678..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Main card Watchdog test.cs +++ /dev/null @@ -1,24 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - -//"Set WFCF Value -ProgressRequest progressRequest = new ProgressRequest(); -progressRequest.Amount = 0xAD9; -progressRequest.Delay = 0; - -var response = stubManager.Run<ProgressResponse>(progressRequest); - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/MidTank Calibration.pproj b/Software/Stubs Collection/stubs/Scripts/MidTank Calibration.pproj deleted file mode 100644 index ce80c8a70..000000000 --- a/Software/Stubs Collection/stubs/Scripts/MidTank Calibration.pproj +++ /dev/null @@ -1 +0,0 @@ -{"$id":"1","Name":"MidTank Calibration","Description":null,"Scripts":{"$id":"2","$values":[{"$id":"3","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Entities;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\nusing System.IO;\r\nusing System.Windows.Forms;\r\nusing Tango.PMR.EmbeddedParameters;\r\n\r\npublic class Program\r\n{\r\nconst double\tMIN_SLOP=0.7;\r\nconst double\tMAX_SLOP=1.4;\r\nconst double\tERROR_SLOP=-1;\r\nconst double\tMIN_50cc_on_volt=2.3;\r\nconst double\tMAX_50cc_on_volt=3.2;\r\nconst double\tERROR_50cc_on_volt=-1;\r\n\r\nint [] Convert_Midtank_No = new Int32 [8] {1,3,5,7,2,4,6,8};\r\nuint [,] ADC_Add_Chnl = new uint [8,2]\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t{0x44,0x20},\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t{0x44,0x08},\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t{0x46,0x80},\r\n\t\t\t\t\t\t\t\t\t\t\t\t{0x46,0x20},\r\n\t\t\t\t\t\t\t\t\t\t\t\t{0x44,0x10},\r\n\t\t\t\t\t\t\t\t\t\t\t\t{0x44,0x04},\r\n\t\t\t\t\t\t\t\t\t\t\t\t{0x46,0x40},\r\n\t\t\t\t\t\t\t\t\t\t\t\t{0x46,0x10},\r\n\t\t\t\t\t\t\t\t\t\t};\r\n\r\n\r\nconst Int32\tF3_VALVE_OUT\t=\t0x600008E2\t;\r\nstring Machine_SN\t;\r\nprivate const string FILE_PATH = @\"C:\\MidTankLog\\\";\r\nstring File_name;\r\ndouble Full_Cartridge=1000;\t// on CC \r\ndouble \tSlop=0.92;\r\n//----------------------\r\nconst Int32 I2C_ID = 2;\r\n//const Int32 I2C_Slave_Add = 0x46; //must be 0x40, 0x44 or 0x46\r\n//----------------------\r\n\r\n\r\nprivate IProcedureContext context;\r\n\r\n\r\n\r\n\r\n public void OnExecute(IProcedureContext context)\r\n {\r\n \r\n\r\n\tInt32 Timout ;\r\n\tInt32 Interval;\r\n\tInt32 midtankno = 0;\r\n\tdouble Full_Point=0;\t\t\t//on Voltage\r\n\tdouble resualt;\r\n\tdouble Sum=0 ;\r\n\tdouble Old_Sum=0 ;\r\n\tdouble Start_Point=0;\r\n\t\r\n\r\n\tif (!Directory.Exists(FILE_PATH))\r\n\t\t{\r\n\t\t\tDirectory.CreateDirectory(FILE_PATH);\r\n\t\t}\t\t\t\r\n\r\n\r\n\r\n var response =context.RequestUserInputFor<String>(\"Enter Midtank S/N: \", \"\");\r\n\tcontext.Write(\"\\n\");\r\n\tMachine_SN = response;\r\n\tcontext.WriteLine(Machine_SN);\r\n\tFile_name= FILE_PATH +Machine_SN + DateTime.Now.ToString(\"MM_dd_yyyy_HH_mm_ss\")+\".csv\";\r\n\tcontext.Write(File_name);\r\n \tcontext.WriteToFile(File_name,\"MidTank S/N:,\" + Machine_SN);\r\n\t\r\n\r\n var response1 =context.RequestUserInputFor<String>(\"Enter Midtank number to calibrate (1-8):\", \"\");\r\n context.WriteLine(response1);\r\n\tmidtankno = Int32.Parse(response1);\r\n \tcontext.AppendToFile(File_name,\"MidTank Number:\\t\" + response1);\r\n\tif (midtankno==8)\r\n\t{\r\n\t\tSlop=1;\r\n\t\tTimout=60;\t\t//60 minutes\r\n\t\tInterval=60;\t//60 second\r\n\t}\r\n\telse\r\n\t{\r\n\t\tSlop=0.92;\r\n\t\tTimout=10*2;\t\t//10 minutes\r\n\t\tInterval=30;\t//30 second\r\n\r\n\t}\r\n var response10 =context.RequestUserInputFor<String>(\"Enter Cartridge Valume on CC (500-1500):\", \"\");\r\n context.WriteLine(response10);\r\n\tFull_Cartridge = double.Parse(response10);\r\n \tcontext.AppendToFile(File_name,\"Cartridge Valume:\\t\" + response10);\r\n \tcontext.AppendToFile(File_name,\"Slop value:\\t\" + Slop);\r\n\r\n\r\n\tDialogResult result = MessageBox.Show(\"Are you sure to calibrate Midtank No: \"+ midtankno + \" with \"+ Full_Cartridge +\" CC\" , \"Warning\",MessageBoxButtons.YesNo);\r\n\tif(result == DialogResult.Yes)\r\n\t{\r\n\r\n\r\n\r\n\t\tstring box_msg = \"Please Insert cartridge \";\r\n\r\n\t\tMessageBox.Show(box_msg);\r\n\t\t\r\n\t\topen_valve(midtankno,1,1)\t\t;\t//open Air valve\r\n\t\topen_valve(midtankno,0,1)\t\t;\t//open Ink valve\r\n\t\tInt32 i=0; \r\n\t\twhile (i<Timout)\t\t\t\t\t//check for 15 minitus \r\n\t\t{\r\n\t\t\tSum=0;\r\n\t\t\tfor (Int32 j=0;j<Interval;j++)\r\n\t\t\t{\r\n\t\t\t\tresualt=read_pressure_sensor(midtankno);\r\n\t\t\t\tcontext.AppendToFile(File_name,resualt+\",V\");\r\n\t\t\t\tSum=Sum+resualt;\r\n\t\t\t\tThread.Sleep(1000);\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\tif (i==0) \r\n\t\t\t\tStart_Point=Sum/Interval;\r\n\t\t\t\r\n\t\t\tif (Sum>Old_Sum)\r\n\t\t\t\tOld_Sum=Sum-Old_Sum;\r\n\t\t\telse\r\n\t\t\t\tOld_Sum=Old_Sum-Sum;\r\n\t\t\r\n \r\n\t\t\tif ((check_valve(midtankno,1) != 0) && (check_valve(midtankno,0) != 0))\r\n\t\t\t{\r\n\t\t\t\ti++;\r\n\t\t\t\tif ( Old_Sum <0.02)\t\r\n\t\t\t\t\ti=Timout+1;\t\t//end \r\n\t\t\t\tOld_Sum=Sum;\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\topen_valve(midtankno,1,0)\t\t;\t//open Air valve\r\n\t\t\topen_valve(midtankno,0,0)\t\t;\t//open Ink valve\r\n\t\t\tOld_Sum=0;\r\n\t\t\t\r\n\t\t\t}\t\r\n\t\t}\r\n\t\tFull_Point=Sum/Interval;\r\n\t\t\r\n\r\n\t\tclose_valve(midtankno,1,1)\t\t;\t//close Air valve\r\n\t\tclose_valve(midtankno,0,1)\t\t;\t//close Ink valve\r\n\r\n\t\t\t\r\n\t\tif (insert_slop_t_eeprom(Full_Point, midtankno,Start_Point)==0)\r\n\t\t{\r\n\t\t\t\tbox_msg =\"Turn Power Off and On to finish the calibration.\";\r\n\t\t\t\tMessageBox.Show(box_msg);\r\n\r\n\r\n \tcontext.AddResult(ResultType.Passed, \"Test passed\", \"Test passed.\");\r\n\t\t\t\t\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t\tbox_msg =\"Calibration error\";\r\n\t\t\t\tMessageBox.Show(box_msg);\r\n\r\n\r\n \tcontext.AddResult(ResultType.Failed, \"Test Fail\", \"Test Fail.\");\r\n\t\t\t\t\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\n\r\n\tint\tinsert_slop_t_eeprom( double FullPoint,Int32 midtankno, double StartPoint)\r\n{\r\n//\tcontext.Write(\"\\n \");\r\n\r\n\t\tStartPoint=FullPoint-StartPoint;\r\n\t\tStartPoint=StartPoint/Full_Cartridge;\r\n\t\tif ((StartPoint>0.7 ) && (StartPoint>1.3 ))\r\n\t\t{\r\n\t\t\tMidTankDataSetupRequest midTankDataSetupRequest = new MidTankDataSetupRequest();\r\n\r\n\t\t\tMidTankData midTankData = new MidTankData();\r\n\t\t\tmidTankData.MidTankId = Convert.ToUInt32 (midtankno-1);\r\n\t\t\tmidTankData.InitialOffsetA =FullPoint - (Full_Cartridge/1000-0.1)/Slop;\r\n\t\t\tmidTankData.SlopeB = Slop;\r\n\t\t\t\r\n\t\t\tcontext.Write(\"\\nMidtank No:\" + midtankno + \"=\\tVoltage Zero is =\"+(FullPoint - (Full_Cartridge/1000-0.1)/Slop)+\"\\tSlop=\"+ Slop);\r\n\t\t\tcontext.AppendToFile(File_name,\"\\nMidtank No:\" + midtankno + \"=\\tVoltage Zero is =\"+(FullPoint - (Full_Cartridge/1000-0.1)/Slop)+\"\\tSlop=\"+ Slop);\r\n\r\n\t\t\t\r\n\t\t\tmidTankDataSetupRequest.MidTankInfo.Add(midTankData);\r\n\t\t\r\n\r\n\t\t\tvar response =context.Send<MidTankDataSetupResponse>(midTankDataSetupRequest);\r\n\r\n\t\t\treturn\t0;\r\n\t\t}\r\n\t\telse\r\n\t\t\tcontext.Write(\"\\nError\");\r\n\t\t\tcontext.AppendToFile(File_name,\"\\n Slop Error\");\r\n\t\t\treturn\t1;\r\n\t\r\n\r\n }\r\n\r\n\r\n\r\nint adc_configuration(uint I2C_Slave_Add,uint channel ) \r\n\t{\r\n\tStubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();\r\n\tstubI2CWriteBytesRequest.I2CId = I2C_ID;\r\n\tstubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;\r\n\t\r\n\tUInt32 uInt32 = new UInt32();\r\n\tstubI2CWriteBytesRequest.BytesTWrite.Add(0x00);//Byte 0 to write\r\n\tstubI2CWriteBytesRequest.BytesTWrite.Add(channel);//Byte 1 to Write, must be 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02 or 0x01 for different channels\r\n\tstubI2CWriteBytesRequest.BytesTWrite.Add(0x80);//Byte 2 to Write\r\n\t\r\n\tvar response =context.Send<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);\r\n\t\r\n\treturn 1;\r\n\t}\r\n\r\n\r\nint adc_set_for_read_ch(uint I2C_Slave_Add) \r\n\t{\r\n\tStubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();\r\n\tstubI2CWriteBytesRequest.I2CId = I2C_ID;\r\n\tstubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;\r\n\t\r\n\tUInt32 uInt32 = new UInt32();\r\n\tstubI2CWriteBytesRequest.BytesTWrite.Add(0x01);//Byte 0 to write\r\n\r\n\tvar response =context.Send<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);\r\n\t\r\n\treturn 1;\r\n\t}\r\n\r\n\r\n\r\n\r\ndouble adc_read_ch(uint I2C_Slave_Add) \r\n\t{\r\n\tStubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();\r\n\tstubI2CReadBytesRequest.I2CId = I2C_ID;\r\n\tstubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add;\r\n\tstubI2CReadBytesRequest.NumberOfBytesToRead = 2; // Number of bytes to read\r\n\r\n\tvar response1 =context.Send<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);\r\n\tuint temph=0;\r\n\tuint templ=0;\r\n\tuint temp;\r\n\tdouble calc;\r\n\tdouble calc1;\r\n\tdouble calc2;\r\n\t\t\ttemph=response1.ReadBytes[0];\r\n\t\t\ttempl=response1.ReadBytes[1];\r\n\t\t\ttemp = (temph << 8) | templ;\r\n\t\t\ttemp=temp & 0x0fff;\r\n\t\t\t\t\r\n\t\t\tcalc = (double)temp *2.5 / 4096.0;\r\n\t\t\r\n\t\t\tcalc1 = (1.96- calc) * 4.64 + 1.96;\r\n\t\t\tcontext.Write(\"Vsensor [volts]:\\t\");\r\n\t\t\tcontext.Write(calc1 + \"\\n\");\r\n\r\n\t\r\n\treturn calc1;\r\n\t}\r\n\r\ndouble\t\tread_pressure_sensor(Int32 i )\r\n\t{\r\ndouble resualt =0 ;\r\n\t\t switch (i)\r\n {\r\n case 1:\r\n\t\t\tadc_configuration(0x44,0x20);\t\t//a2d_address 0x44 channel channel 2\r\n\t\t\tadc_set_for_read_ch(0x44);\r\n\t\t\tresualt=adc_read_ch(0x44);\r\n\t\tbreak;\r\n\t\t\r\n\t\tcase 2:\r\n\t\t\tadc_configuration(0x44,0x08);\t\t//a2d_address 0x44 channel channel 4\r\n\t\t\tadc_set_for_read_ch(0x44);\r\n\t\t\tresualt=adc_read_ch(0x44);\r\n\t\tbreak;\r\n\t\t\r\n\t\tcase 3:\r\n\t\t\tadc_configuration(0x46,0x80);\t\t//a2d_address 0x46 channel channel 0\r\n\t\t\tadc_set_for_read_ch(0x46);\r\n\t\t\tresualt=adc_read_ch(0x46);\r\n\t\tbreak;\r\n\t\t\r\n\t\tcase 4:\r\n\t\t\tadc_configuration(0x46,0x20);\t\t//a2d_address 0x46 channel channel 2\r\n\t\t\tadc_set_for_read_ch(0x46);\r\n\t\t\tresualt=adc_read_ch(0x46);\r\n\t\tbreak;\r\n\t\t\r\n\t\tcase 5:\r\n\t\t\tadc_configuration(0x44,0x10);\t\t//a2d_address 0x44 channel channel 3\r\n\t\t\tadc_set_for_read_ch(0x44);\r\n\t\t\tresualt=adc_read_ch(0x44);\r\n\t\tbreak;\r\n\t\t\r\n\t\tcase 6:\r\n\t\t\tadc_configuration(0x44,0x04);\t\t//a2d_address 0x44 channel channel 5\r\n\t\t\tadc_set_for_read_ch(0x44);\r\n\t\t\tresualt=adc_read_ch(0x44);\r\n\t\tbreak;\r\n\t\t\r\n\t\tcase 7:\r\n\t\t\tadc_configuration(0x46,0x40);\t\t//a2d_address 0x46 channel channel 1\r\n\t\t\tadc_set_for_read_ch(0x46);\r\n\t\t\tresualt=adc_read_ch(0x46);\r\n\t\tbreak;\r\n\t\t\r\n\t\tcase 8:\r\n\t\t\tadc_configuration(0x46,0x10);\t\t//a2d_address 0x46 channel channel 3\r\n\t\t\tadc_set_for_read_ch(0x46);\r\n\t\t\tresualt=adc_read_ch(0x46);\r\n\t\tbreak;\r\n\t\t\r\n default:\r\n context.Write(\"Error\");\r\n\r\n break;\r\n\t }\t\r\n\t\t\r\n\t\treturn resualt;\r\n\t}\t\r\n\r\n\r\n//--------------------------------\r\nint open_valve (int valve_nm,int valve_type,int check_valve)\t\t//valve_type=0 is Air ,1 is Ink ; check_valve=1 send feedbak\r\n{\r\n\tint temp1=Convert_Midtank_No[valve_nm-1]\t;\r\n\r\n\tstring temp;\r\n\tSetBit (F3_VALVE_OUT,(((valve_type+1)*8)- temp1), 1);\t\r\n\t\r\n\t\tif (check_valve!=0)\r\n\t\t{\r\n\t\t\ttemp=\"Air\";\r\n\t\t\tif (valve_type==1)\r\n\t\t\ttemp=\"Ink\";\r\n\t\t\t\t\r\n\t\t\tDialogResult result = MessageBox.Show(\"Did \" + temp + \"Valve of Midtank \" + valve_nm +\" open?\", \"Warning\",MessageBoxButtons.YesNo);\r\n\t\t\tif(result == DialogResult.No)\r\n\t\t\t\t{\r\n//\t\t\t\t\tUnits_status[(valve_nm-1)*3+valve_type,1]=\"Fail\";\r\n\t\t\t\t\tcontext.Write(temp +\"Valve\\tFail\\n\");\t\r\n\t\t\t\t\treturn 0;\r\n\t\t\t\t}\r\n\t\t\telse \r\n\t\t\t\t{\r\n//\t\t\t\t\tUnits_status[(valve_nm-1)*3+valve_type,1]=\"Pass\";\r\n\t\t\t\t\tcontext.Write(temp +\"Valve\\tOpen\\n\");\t\r\n\t\t\t\t\treturn 1;\r\n\t\t\t\t}\r\n\t\t\t\r\n\t\t}\r\n\t\treturn 1;\r\n\r\n}\r\n//--------------------------------\t\r\nint close_valve (int valve_nm,int valve_type,int check_valve)\r\n{\r\n\tint temp1=Convert_Midtank_No[valve_nm-1];\t\r\n\r\n\tstring temp;\r\n\tSetBit (F3_VALVE_OUT,(((valve_type+1)*8)- temp1), 0);\r\n\tif (check_valve!=0)\r\n\t\t{\r\n\t\t\ttemp=\"Air\";\r\n\t\t\tif (valve_type==1)\r\n\t\t\ttemp=\"Ink\";\r\n\t\t\t\t\r\n\t\t\tDialogResult result = MessageBox.Show(\"Did \" + temp +\" Valve of Midtank \" + valve_nm +\" close?\", \"Warning\",MessageBoxButtons.YesNo);\r\n\t\t\tif(result == DialogResult.No)\r\n\t\t\t\t{\r\n//\t\t\t\t\tUnits_status[(valve_nm-1)*3+valve_type,1]=\"Fail\";\r\n\t\t\t\t\tcontext.Write(temp +\"Valve\\tFail\\n\");\t\r\n\t\t\t\t\treturn 0;\r\n\t\t\t\t}\r\n\t\t\telse \r\n\t\t\t\t{\r\n//\t\t\t\t\tUnits_status[(valve_nm-1)*3+valve_type,1]=\"Pass\";\r\n\t\t\t\t\tcontext.Write(temp +\"Valve\\tclose\\n\");\t\r\n\t\t\t\t\treturn 1;\r\n\t\t\t\t}\t\t\t\r\n\t\t}\r\n\treturn 1;\r\n\r\n}\r\n\r\npublic Int32 SetBit(Int32 Adr, Int32 BitNo, Int32 Bit)\r\n{\r\n\tInt32 BitMask;\r\n\tInt32 RetVal;\r\n\tRetVal = Fpga_Read_Reg(Adr);\r\n\tInt32 RV = RetVal ;\r\n\t\r\n\tif (Bit == 0x1) \r\n\t{\r\n\t\tBitMask = 0x1 << BitNo;\r\n\t\tRV = RV | BitMask;\r\n\t\tFpga_Write_Reg( Adr, RV );\r\n\t}\r\n\telse if (Bit == 0x0)\r\n\t{\r\n\t\tBitMask = ~(0x1 << BitNo);\r\n\t\tRV = RV & BitMask;\r\n\t\tFpga_Write_Reg(Adr, RV );\t\r\n\t}\r\n\treturn 1;\r\n}\r\n\r\nint Fpga_Write_Reg(Int32 Addr, Int32 Data)\r\n{\r\n\tvar response =context.Send<StubFpgaWriteRegResponse>(\"StubFpgaWriteRegRequest\" ,Addr, Data);\r\n\t\r\n\treturn 1;\r\n}\r\n\r\n\r\nInt32 check_valve (Int32 valve_nm,int valve_type)\r\n{\r\n\tInt32 temp1=Convert_Midtank_No[valve_nm-1];\t\r\n\t\r\n var response =context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F3_VALVE_OUT);\r\n\tInt32 RV =(Int32) response.Value & 0xffff ;\r\n\tRV = RV & ( 0x1 << (((valve_type+1)*8)- temp1));\r\n\treturn RV;\r\n\r\n}\r\n\r\n\r\nInt32 Fpga_Read_Reg(Int32 Addr)\r\n{\r\n \r\ncontext.Write(\"123\");\r\n\r\n\tvar response =context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,Addr);\r\n\tcontext.Write(\"456\");\r\n\r\n\tInt32 RV= (Int32) response.Value & 0xffff;\r\n\tcontext.Write(\"789\");\r\n\r\n\treturn RV;\r\n} \r\n \r\n \r\n \r\n}","Name":"Program.csx","IsEntryPoint":true},{"$id":"4","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Entities;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}","Name":"Service.csx","IsEntryPoint":false}]},"Inputs":{"$id":"5","$values":[]},"Variables":{"$id":"6","$values":[]},"ReferenceAssemblies":{"$id":"7","$values":[{"$id":"8","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"9","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"10","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"11","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"12","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"13","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"14","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"15","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"16","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"17","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"18","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"Resources":{"$id":"19","$values":[]},"Dialogs":{"$id":"20","$values":[]},"ID":"e2c3c81d-1914-4d45-b031-d054af33a18e","ApartmentState":"STA"}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Moshe Copy Files.exe b/Software/Stubs Collection/stubs/Scripts/Moshe Copy Files.exe Binary files differdeleted file mode 100644 index 428ce300b..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Moshe Copy Files.exe +++ /dev/null diff --git a/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing.cs b/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing.cs deleted file mode 100644 index 6221ff388..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing.cs +++ /dev/null @@ -1,118 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -//unmark Auto logging ! - -const Int32 x_ABS_POS = 0x01; -const Int32 x_EL_POS = 0x02; -const Int32 x_MARK = 0x03; -const Int32 x_SPEED = 0x04; -const Int32 x_ACC = 0x05; -const Int32 x_DEC = 0x06; -const Int32 x_MAX_SPEED = 0x07; -const Int32 x_MIN_SPEED = 0x08; -const Int32 x_FS_SPD = 0x15; -const Int32 x_KVAL_HOLD = 0x09; -const Int32 x_KVAL_RUN = 0x0A; -const Int32 x_KVAL_ACC = 0x0B; -const Int32 x_KVAL_DEC = 0x0C; -const Int32 x_INT_SPD = 0x0D; -const Int32 x_ST_SLP = 0x0E; -const Int32 x_FN_SLP_ACC = 0x0F; -const Int32 x_FN_SLP_DEC = 0x10; -const Int32 x_K_THERM = 0x11; -const Int32 x_ADC_OUT = 0x12; -const Int32 x_OCD_TH = 0x13; -const Int32 x_STALL_TH = 0x14; -const Int32 x_STEP_MODE = 0x16; -const Int32 x_ALARM_EN = 0x17; -const Int32 x_CONFIG = 0x18; -const Int32 x_STATUS = 0x19; -//------------------------------- -const Int32 x_GET_PARAM = 0x20; -//------------------------------- -const Int32 Max_Motor_ID = 25; - -Int32 i = 12; // to run only for specific motor - -public void OnExecute(StubManager stubManager) -{ - for (i = 0; i < Max_Motor_ID; i++) - { - - if((i%8 ==0) ) - { - stubManager.Write("MoTor\tMIN_SPEED\tMAX_SPEED\tSTEP_MODE\tACC\t\tDEC\t\tKVAL_HOLD\tKVAL_RUN\tKVAL_ACC\tKVAL_DEC\tOCD_TH\t\tSTALL_TH\tCONFIG\t\tFS_SPD\t\tADC_OUT\n"); - stubManager.Write("------\t--------\t--------\t----------\t---\t\t---\t\t---------\t--------\t--------\t--------\t------\t\t--------\t------\t\t------\t\t------\n"); - } - stubManager.Write(i); - stubManager.Write("\t"); - - var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MIN_SPEED)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MAX_SPEED)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); stubManager.Write("\t"); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ACC)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_DEC)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_HOLD)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_RUN)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_ACC)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_DEC)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_OCD_TH)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STALL_TH)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_CONFIG)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FS_SPD)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ADC_OUT)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n\n"); - - } - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing1.cs b/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing1.cs deleted file mode 100644 index 6221ff388..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing1.cs +++ /dev/null @@ -1,118 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -//unmark Auto logging ! - -const Int32 x_ABS_POS = 0x01; -const Int32 x_EL_POS = 0x02; -const Int32 x_MARK = 0x03; -const Int32 x_SPEED = 0x04; -const Int32 x_ACC = 0x05; -const Int32 x_DEC = 0x06; -const Int32 x_MAX_SPEED = 0x07; -const Int32 x_MIN_SPEED = 0x08; -const Int32 x_FS_SPD = 0x15; -const Int32 x_KVAL_HOLD = 0x09; -const Int32 x_KVAL_RUN = 0x0A; -const Int32 x_KVAL_ACC = 0x0B; -const Int32 x_KVAL_DEC = 0x0C; -const Int32 x_INT_SPD = 0x0D; -const Int32 x_ST_SLP = 0x0E; -const Int32 x_FN_SLP_ACC = 0x0F; -const Int32 x_FN_SLP_DEC = 0x10; -const Int32 x_K_THERM = 0x11; -const Int32 x_ADC_OUT = 0x12; -const Int32 x_OCD_TH = 0x13; -const Int32 x_STALL_TH = 0x14; -const Int32 x_STEP_MODE = 0x16; -const Int32 x_ALARM_EN = 0x17; -const Int32 x_CONFIG = 0x18; -const Int32 x_STATUS = 0x19; -//------------------------------- -const Int32 x_GET_PARAM = 0x20; -//------------------------------- -const Int32 Max_Motor_ID = 25; - -Int32 i = 12; // to run only for specific motor - -public void OnExecute(StubManager stubManager) -{ - for (i = 0; i < Max_Motor_ID; i++) - { - - if((i%8 ==0) ) - { - stubManager.Write("MoTor\tMIN_SPEED\tMAX_SPEED\tSTEP_MODE\tACC\t\tDEC\t\tKVAL_HOLD\tKVAL_RUN\tKVAL_ACC\tKVAL_DEC\tOCD_TH\t\tSTALL_TH\tCONFIG\t\tFS_SPD\t\tADC_OUT\n"); - stubManager.Write("------\t--------\t--------\t----------\t---\t\t---\t\t---------\t--------\t--------\t--------\t------\t\t--------\t------\t\t------\t\t------\n"); - } - stubManager.Write(i); - stubManager.Write("\t"); - - var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MIN_SPEED)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MAX_SPEED)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); stubManager.Write("\t"); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ACC)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_DEC)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_HOLD)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_RUN)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_ACC)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_DEC)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_OCD_TH)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STALL_TH)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_CONFIG)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FS_SPD)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ADC_OUT)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n\n"); - - } - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing2.cs b/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing2.cs deleted file mode 100644 index 09d22dea9..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing2.cs +++ /dev/null @@ -1,233 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -//unmark Auto logging ! - -const Int32 x_ABS_POS = 0x01; -const Int32 x_EL_POS = 0x02; -const Int32 x_MARK = 0x03; -const Int32 x_SPEED = 0x04; -const Int32 x_ACC = 0x05; -const Int32 x_DEC = 0x06; -const Int32 x_MAX_SPEED = 0x07; -const Int32 x_MIN_SPEED = 0x08; -const Int32 x_FS_SPD = 0x15; -const Int32 x_KVAL_HOLD = 0x09; -const Int32 x_KVAL_RUN = 0x0A; -const Int32 x_KVAL_ACC = 0x0B; -const Int32 x_KVAL_DEC = 0x0C; -const Int32 x_INT_SPD = 0x0D; -const Int32 x_ST_SLP = 0x0E; -const Int32 x_FN_SLP_ACC = 0x0F; -const Int32 x_FN_SLP_DEC = 0x10; -const Int32 x_K_THERM = 0x11; -const Int32 x_ADC_OUT = 0x12; -const Int32 x_OCD_TH = 0x13; -const Int32 x_STALL_TH = 0x14; -const Int32 x_STEP_MODE = 0x16; -const Int32 x_ALARM_EN = 0x17; -const Int32 x_CONFIG = 0x18; -const Int32 x_STATUS = 0x19; -//------------------------------- -const Int32 x_GET_PARAM = 0x20; -//------------------------------- -const Int32 Max_Motor_ID = 25; - - - -string[] Motor_ID = new string[30]; - - -Motor_ID[0] ="DH_CLEANHEAD "; -Motor_ID[1] ="DH_CLEANMECH "; -Motor_ID[2] ="DH_LID "; -Motor_ID[3] ="DRYER_DRIVING"; -Motor_ID[4] ="DRYER_LID "; -Motor_ID[5] ="DRYER_LOADARM"; -Motor_ID[6] ="DISPENCER_1 "; -Motor_ID[7] ="DISPENCER_2 "; -Motor_ID[8] ="DISPENCER_3 "; -Motor_ID[9] ="DISPENCER_4 "; -Motor_ID[10]="DISPENCER_5 "; -Motor_ID[11]="DISPENCER_6 "; -Motor_ID[12]="DISPENCER_7 "; -Motor_ID[13]="DISPENCER_8 "; -Motor_ID[14]="SCREW "; -Motor_ID[15]="WINDER "; -Motor_ID[16]="LDANCER1 "; -Motor_ID[17]="LDANCER2 "; -Motor_ID[18]="LDRIVING "; -Motor_ID[19]="LLODING "; -Motor_ID[20]="LPIVOT "; -Motor_ID[21]="RDANCER "; -Motor_ID[22]="RDRIVING "; -Motor_ID[23]="RLOADARM "; -Motor_ID[24]="RLODING "; -Motor_ID[25]="SPARE1_1 "; -Motor_ID[26]="SPARE1_2 "; -Motor_ID[27]="SPARE2_1 "; -Motor_ID[28]="SPARE2_2 "; -Motor_ID[29]="SPARE3 "; - - - - - - - - - - - - - - - - - -Int32 i = 12; // to run only for specific motor - -public void OnExecute(StubManager stubManager) -{ - -stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000380 , 0x06b9); -stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000390 , 0x003f); -stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000550 , 0x0003); -stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000b80 , 0x001f); - - - - - - - - - - - - for (i = 0; i < Max_Motor_ID; i++) - { - - if((i%8 ==0) ) - { - stubManager.Write("\n\n"); - stubManager.Write("MoTor\t\t\tMIN_SPEED\tMAX_SPEED\tSTEP_MODE\tACC\t\tDEC\t\tKVAL_HOLD\tKVAL_RUN\tKVAL_ACC\tKVAL_DEC\tOCD_TH\t\tSTALL_TH\tCONFIG\t\tFS_SPD\t\tADC_OUT\tDriver_Type\n"); - stubManager.Write("------\t\t\t--------\t--------\t----------\t---\t\t---\t\t---------\t--------\t--------\t--------\t------\t\t--------\t------\t\t------\t\t------\t\t------\n"); - } - //stubManager.Write(i); - - stubManager.Write(Motor_ID[i]); - stubManager.Write("\t\t"); - - var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MIN_SPEED)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MAX_SPEED)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); stubManager.Write("\t"); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ACC)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_DEC)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_HOLD)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_RUN)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_ACC)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_DEC)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_OCD_TH)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STALL_TH)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_CONFIG)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FS_SPD)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ADC_OUT)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - if( response.RecivedData > 0x15 ) - stubManager.Write("\t\tDual_Driver"); - else if ( response.RecivedData > 0x0b) - stubManager.Write("\t\tVolage_Driver"); - else if ( response.RecivedData > 8 ) - stubManager.Write("\t\tCurrent_Driver"); - else - stubManager.Write("\t\tNo_Driver"); - - - stubManager.Write("\n\n"); - - } - - stubManager.Write("MoTor\t\t\tINT_SPD\tST_SLP\t\tSLP_ACC\tSLP_DEC\tSTATUS\n"); - stubManager.Write("-----\t\t\t-------\t------\t\t-------\t--------\t-----\n"); - - for (i = 0; i < Max_Motor_ID; i++) - { - stubManager.Write(Motor_ID[i]); - -// stubManager.Write(i); - stubManager.Write("\t\t"); - - var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_INT_SPD)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ST_SLP)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_ACC)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_DEC)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STATUS)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n\n"); - - - - } - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing3.cs b/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing3.cs deleted file mode 100644 index 73042af54..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing3.cs +++ /dev/null @@ -1,261 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -//unmark Auto logging ! - -const Int32 x_ABS_POS = 0x01; -const Int32 x_EL_POS = 0x02; -const Int32 x_MARK = 0x03; -const Int32 x_SPEED = 0x04; -const Int32 x_ACC = 0x05; -const Int32 x_DEC = 0x06; -const Int32 x_MAX_SPEED = 0x07; -const Int32 x_MIN_SPEED = 0x08; -const Int32 x_FS_SPD = 0x15; -const Int32 x_KVAL_HOLD = 0x09; -const Int32 x_KVAL_RUN = 0x0A; -const Int32 x_KVAL_ACC = 0x0B; -const Int32 x_KVAL_DEC = 0x0C; -const Int32 x_INT_SPD = 0x0D; -const Int32 x_ST_SLP = 0x0E; -const Int32 x_FN_SLP_ACC = 0x0F; -const Int32 x_FN_SLP_DEC = 0x10; -const Int32 x_K_THERM = 0x11; -const Int32 x_ADC_OUT = 0x12; -const Int32 x_OCD_TH = 0x13; -const Int32 x_STALL_TH = 0x14; -const Int32 x_STEP_MODE = 0x16; -const Int32 x_ALARM_EN = 0x17; -const Int32 x_CONFIG = 0x18; -const Int32 x_STATUS = 0x19; -//------------------------------- -const Int32 x_GET_PARAM = 0x20; -//------------------------------- -const Int32 Max_Motor_ID = 25; - - - -string[] Motor_ID = new string[30]; - - -Motor_ID[0] ="DH_CLEANHEAD "; -Motor_ID[1] ="DH_CLEANMECH "; -Motor_ID[2] ="DH_LID "; -Motor_ID[3] ="DRYER_DRIVING"; -Motor_ID[4] ="DRYER_LID "; -Motor_ID[5] ="DRYER_LOADARM"; -Motor_ID[6] ="DISPENCER_1 "; -Motor_ID[7] ="DISPENCER_2 "; -Motor_ID[8] ="DISPENCER_3 "; -Motor_ID[9] ="DISPENCER_4 "; -Motor_ID[10]="DISPENCER_5 "; -Motor_ID[11]="DISPENCER_6 "; -Motor_ID[12]="DISPENCER_7 "; -Motor_ID[13]="DISPENCER_8 "; -Motor_ID[14]="SCREW "; -Motor_ID[15]="WINDER "; -Motor_ID[16]="LDANCER1 "; -Motor_ID[17]="LDANCER2 "; -Motor_ID[18]="LDRIVING "; -Motor_ID[19]="LLODING "; -Motor_ID[20]="LPIVOT "; -Motor_ID[21]="RDANCER "; -Motor_ID[22]="RDRIVING "; -Motor_ID[23]="RLOADARM "; -Motor_ID[24]="RLODING "; -Motor_ID[25]="SPARE1_1 "; -Motor_ID[26]="SPARE1_2 "; -Motor_ID[27]="SPARE2_1 "; -Motor_ID[28]="SPARE2_2 "; -Motor_ID[29]="SPARE3 "; - - - - - - - - - - - - - - - - - -Int32 i = 12; // to run only for specific motor - -public void OnExecute(StubManager stubManager) -{ - -stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000380 , 0x06b9); -stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000390 , 0x003f); -stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000550 , 0x0003); -stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000b80 , 0x001f); - - - - - - - - - - - - for (i = 0; i < Max_Motor_ID; i++) - { - - if((i%8 ==0) ) - { - stubManager.Write("\n\n"); - stubManager.Write("MoTor\t\t\tMIN_SPEED\tMAX_SPEED\tSTEP_MODE\tACC\t\tDEC\t\tKVAL_HOLD\tKVAL_RUN\tKVAL_ACC\tKVAL_DEC\tOCD_TH\t\tSTALL_TH\tCONFIG\t\tFS_SPD\t\tADC_OUT\tDriver_Type\n"); - stubManager.Write("------\t\t\t--------\t--------\t----------\t---\t\t---\t\t---------\t--------\t--------\t--------\t------\t\t--------\t------\t\t------\t\t------\t\t------\n"); - } - //stubManager.Write(i); - - stubManager.Write(Motor_ID[i]); - stubManager.Write("\t\t"); - - var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MIN_SPEED)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MAX_SPEED)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); stubManager.Write("\t"); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ACC)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_DEC)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_HOLD)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_RUN)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_ACC)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_DEC)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_OCD_TH)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STALL_TH)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_CONFIG)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FS_SPD)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ADC_OUT)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - if( response.RecivedData > 0x15 ) - stubManager.Write("\t\tDual_Driver"); - else if ( response.RecivedData > 0x0b) - stubManager.Write("\t\tVolage_Driver"); - else if ( response.RecivedData > 8 ) - stubManager.Write("\t\tCurrent_Driver"); - else - stubManager.Write("\t\tNo_Driver"); - - - stubManager.Write("\n\n"); - - } - - stubManager.Write("MoTor\t\t\tINT_SPD\tST_SLP\t\tSLP_ACC\tSLP_DEC\tSTATUS\n"); - stubManager.Write("-----\t\t\t-------\t------\t\t-------\t--------\t-----\n"); - - for (i = 0; i < Max_Motor_ID; i++) - { - stubManager.Write(Motor_ID[i]); - -// stubManager.Write(i); - stubManager.Write("\t\t"); - - var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_INT_SPD)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ST_SLP)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_ACC)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_DEC)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STATUS)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n\n"); - - - - } - - stubManager.Write("--------------- New Driver POWERSTEP01 ---------------\n\n"); - stubManager.Write("MoTor\tPS01_CONFIG\t\tPS01_STATUS\t\tPS01_GATECFG1\t\tPS01_GATECFG2\n"); - stubManager.Write("-----\t------------\t\t-----------\t\t-------------\t\t------------\n"); - - for (i = 6; i < 14; i++)//Dispensers only - //for (i = 25; i < 29; i++)//Dispensers only - { - stubManager.Write(i); - stubManager.Write("\t"); - - var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_CONFIG)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_STATUS)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG1)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG2)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n\n"); - } - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing4.cs b/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing4.cs deleted file mode 100644 index 5d6259cb4..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing4.cs +++ /dev/null @@ -1,265 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -//unmark Auto logging ! -const Int32 x_POWERSTEP01_CONFIG = 0x1A; -const Int32 x_POWERSTEP01_STATUS = 0x1B; -const Int32 x_POWERSTEP01_GATECFG1 = 0x18; -const Int32 x_POWERSTEP01_GATECFG2 = 0x19; - -const Int32 x_ABS_POS = 0x01; -const Int32 x_EL_POS = 0x02; -const Int32 x_MARK = 0x03; -const Int32 x_SPEED = 0x04; -const Int32 x_ACC = 0x05; -const Int32 x_DEC = 0x06; -const Int32 x_MAX_SPEED = 0x07; -const Int32 x_MIN_SPEED = 0x08; -const Int32 x_FS_SPD = 0x15; -const Int32 x_KVAL_HOLD = 0x09; -const Int32 x_KVAL_RUN = 0x0A; -const Int32 x_KVAL_ACC = 0x0B; -const Int32 x_KVAL_DEC = 0x0C; -const Int32 x_INT_SPD = 0x0D; -const Int32 x_ST_SLP = 0x0E; -const Int32 x_FN_SLP_ACC = 0x0F; -const Int32 x_FN_SLP_DEC = 0x10; -const Int32 x_K_THERM = 0x11; -const Int32 x_ADC_OUT = 0x12; -const Int32 x_OCD_TH = 0x13; -const Int32 x_STALL_TH = 0x14; -const Int32 x_STEP_MODE = 0x16; -const Int32 x_ALARM_EN = 0x17; -const Int32 x_CONFIG = 0x18; -const Int32 x_STATUS = 0x19; -//------------------------------- -const Int32 x_GET_PARAM = 0x20; -//------------------------------- -const Int32 Max_Motor_ID = 25; - - - -string[] Motor_ID = new string[30]; - - -Motor_ID[0] ="DH_CLEANHEAD "; -Motor_ID[1] ="DH_CLEANMECH "; -Motor_ID[2] ="DH_LID "; -Motor_ID[3] ="DRYER_DRIVING"; -Motor_ID[4] ="DRYER_LID "; -Motor_ID[5] ="DRYER_LOADARM"; -Motor_ID[6] ="DISPENCER_1 "; -Motor_ID[7] ="DISPENCER_2 "; -Motor_ID[8] ="DISPENCER_3 "; -Motor_ID[9] ="DISPENCER_4 "; -Motor_ID[10]="DISPENCER_5 "; -Motor_ID[11]="DISPENCER_6 "; -Motor_ID[12]="DISPENCER_7 "; -Motor_ID[13]="DISPENCER_8 "; -Motor_ID[14]="SCREW "; -Motor_ID[15]="WINDER "; -Motor_ID[16]="LDANCER1 "; -Motor_ID[17]="LDANCER2 "; -Motor_ID[18]="LDRIVING "; -Motor_ID[19]="LLODING "; -Motor_ID[20]="LPIVOT "; -Motor_ID[21]="RDANCER "; -Motor_ID[22]="RDRIVING "; -Motor_ID[23]="RLOADARM "; -Motor_ID[24]="RLODING "; -Motor_ID[25]="SPARE1_1 "; -Motor_ID[26]="SPARE1_2 "; -Motor_ID[27]="SPARE2_1 "; -Motor_ID[28]="SPARE2_2 "; -Motor_ID[29]="SPARE3 "; - - - - - - - - - - - - - - - - - -Int32 i = 12; // to run only for specific motor - -public void OnExecute(StubManager stubManager) -{ - -stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000380 , 0x06b9); -stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000390 , 0x003f); -stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000550 , 0x0003); -stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000b80 , 0x001f); - - - - - - - - - - - - for (i = 0; i < Max_Motor_ID; i++) - { - - if((i%8 ==0) ) - { - stubManager.Write("\n\n"); - stubManager.Write("MoTor\t\t\tMIN_SPEED\tMAX_SPEED\tSTEP_MODE\tACC\t\tDEC\t\tKVAL_HOLD\tKVAL_RUN\tKVAL_ACC\tKVAL_DEC\tOCD_TH\t\tSTALL_TH\tCONFIG\t\tFS_SPD\t\tADC_OUT\tDriver_Type\n"); - stubManager.Write("------\t\t\t--------\t--------\t----------\t---\t\t---\t\t---------\t--------\t--------\t--------\t------\t\t--------\t------\t\t------\t\t------\t\t------\n"); - } - //stubManager.Write(i); - - stubManager.Write(Motor_ID[i]); - stubManager.Write("\t\t"); - - var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MIN_SPEED)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MAX_SPEED)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); stubManager.Write("\t"); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ACC)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_DEC)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_HOLD)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_RUN)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_ACC)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_DEC)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_OCD_TH)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STALL_TH)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_CONFIG)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FS_SPD)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ADC_OUT)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - if( response.RecivedData > 0x15 ) - stubManager.Write("\t\tDual_Driver"); - else if ( response.RecivedData > 0x0b) - stubManager.Write("\t\tVolage_Driver"); - else if ( response.RecivedData > 8 ) - stubManager.Write("\t\tCurrent_Driver"); - else - stubManager.Write("\t\tNo_Driver"); - - - stubManager.Write("\n\n"); - - } - - stubManager.Write("MoTor\t\t\tINT_SPD\tST_SLP\t\tSLP_ACC\tSLP_DEC\tSTATUS\n"); - stubManager.Write("-----\t\t\t-------\t------\t\t-------\t--------\t-----\n"); - - for (i = 0; i < Max_Motor_ID; i++) - { - stubManager.Write(Motor_ID[i]); - -// stubManager.Write(i); - stubManager.Write("\t\t"); - - var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_INT_SPD)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ST_SLP)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_ACC)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_DEC)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STATUS)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n\n"); - - - - } - - stubManager.Write("--------------- New Driver POWERSTEP01 ---------------\n\n"); - stubManager.Write("MoTor\tPS01_CONFIG\t\tPS01_STATUS\t\tPS01_GATECFG1\t\tPS01_GATECFG2\n"); - stubManager.Write("-----\t------------\t\t-----------\t\t-------------\t\t------------\n"); - - for (i = 6; i < 14; i++)//Dispensers only - //for (i = 25; i < 29; i++)//Dispensers only - { - stubManager.Write(i); - stubManager.Write("\t"); - - var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_CONFIG)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_STATUS)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG1)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG2)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n\n"); - } - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing_powerstep01.cs b/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing_powerstep01.cs deleted file mode 100644 index b02a6072c..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing_powerstep01.cs +++ /dev/null @@ -1,266 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -//unmark Auto logging ! - -const Int32 x_POWERSTEP01_CONFIG = 0x1A; -const Int32 x_POWERSTEP01_STATUS = 0x1B; -const Int32 x_POWERSTEP01_GATECFG1 = 0x18; -const Int32 x_POWERSTEP01_GATECFG2 = 0x19; - -const Int32 x_ABS_POS = 0x01; -const Int32 x_EL_POS = 0x02; -const Int32 x_MARK = 0x03; -const Int32 x_SPEED = 0x04; -const Int32 x_ACC = 0x05; -const Int32 x_DEC = 0x06; -const Int32 x_MAX_SPEED = 0x07; -const Int32 x_MIN_SPEED = 0x08; -const Int32 x_FS_SPD = 0x15; -const Int32 x_KVAL_HOLD = 0x09; -const Int32 x_KVAL_RUN = 0x0A; -const Int32 x_KVAL_ACC = 0x0B; -const Int32 x_KVAL_DEC = 0x0C; -const Int32 x_INT_SPD = 0x0D; -const Int32 x_ST_SLP = 0x0E; -const Int32 x_FN_SLP_ACC = 0x0F; -const Int32 x_FN_SLP_DEC = 0x10; -const Int32 x_K_THERM = 0x11; -const Int32 x_ADC_OUT = 0x12; -const Int32 x_OCD_TH = 0x13; -const Int32 x_STALL_TH = 0x14; -const Int32 x_STEP_MODE = 0x16; -const Int32 x_ALARM_EN = 0x17; -const Int32 x_CONFIG = 0x18; -const Int32 x_STATUS = 0x19; -//------------------------------- -const Int32 x_GET_PARAM = 0x20; -//------------------------------- -const Int32 Max_Motor_ID = 25; - - - -string[] Motor_ID = new string[30]; - - -Motor_ID[0] ="DH_CLEANHEAD "; -Motor_ID[1] ="DH_CLEANMECH "; -Motor_ID[2] ="DH_LID "; -Motor_ID[3] ="DRYER_DRIVING"; -Motor_ID[4] ="DRYER_LID "; -Motor_ID[5] ="DRYER_LOADARM"; -Motor_ID[6] ="DISPENCER_1 "; -Motor_ID[7] ="DISPENCER_2 "; -Motor_ID[8] ="DISPENCER_3 "; -Motor_ID[9] ="DISPENCER_4 "; -Motor_ID[10]="DISPENCER_5 "; -Motor_ID[11]="DISPENCER_6 "; -Motor_ID[12]="DISPENCER_7 "; -Motor_ID[13]="DISPENCER_8 "; -Motor_ID[14]="SCREW "; -Motor_ID[15]="WINDER "; -Motor_ID[16]="LDANCER1 "; -Motor_ID[17]="LDANCER2 "; -Motor_ID[18]="LDRIVING "; -Motor_ID[19]="LLODING "; -Motor_ID[20]="LPIVOT "; -Motor_ID[21]="RDANCER "; -Motor_ID[22]="RDRIVING "; -Motor_ID[23]="RLOADARM "; -Motor_ID[24]="RLODING "; -Motor_ID[25]="SPARE1_1 "; -Motor_ID[26]="SPARE1_2 "; -Motor_ID[27]="SPARE2_1 "; -Motor_ID[28]="SPARE2_2 "; -Motor_ID[29]="SPARE3 "; - - - - - - - - - - - - - - - - - -Int32 i = 12; // to run only for specific motor - -public void OnExecute(StubManager stubManager) -{ - -//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000380 , 0x06b9); //7ff mati -//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000390 , 0x003f); -//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000550 , 0x0003); //ff mati -//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000b80 , 0x001f); - - - - - - - - - - - - for (i = 0; i < Max_Motor_ID; i++) - { - - if((i%8 ==0) ) - { - stubManager.Write("\n\n"); - stubManager.Write("MoTor\t\t\tMIN_SPEED\tMAX_SPEED\tSTEP_MODE\tACC\t\tDEC\t\tKVAL_HOLD\tKVAL_RUN\tKVAL_ACC\tKVAL_DEC\tOCD_TH\t\tSTALL_TH\tCONFIG\t\tFS_SPD\t\tADC_OUT\tDriver_Type\n"); - stubManager.Write("------\t\t\t--------\t--------\t----------\t---\t\t---\t\t---------\t--------\t--------\t--------\t------\t\t--------\t------\t\t------\t\t------\t\t------\n"); - } - //stubManager.Write(i); - - stubManager.Write(Motor_ID[i]); - stubManager.Write("\t\t"); - - var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MIN_SPEED)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MAX_SPEED)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); stubManager.Write("\t"); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ACC)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_DEC)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_HOLD)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_RUN)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_ACC)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_DEC)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_OCD_TH)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STALL_TH)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_CONFIG)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FS_SPD)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ADC_OUT)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - if( response.RecivedData > 0x15 && response.RecivedData < 0x1c ) - stubManager.Write("\t\tDual_Driver"); - else if ( response.RecivedData > 0x0b && response.RecivedData < 0x12 ) - stubManager.Write("\t\tVolage_Driver"); - else if ( response.RecivedData > 8 && response.RecivedData < 0x0a) - stubManager.Write("\t\tCurrent_Driver"); - else - stubManager.Write("\t\tNo_Driver"); - - - stubManager.Write("\n\n"); - - } - - stubManager.Write("MoTor\t\t\tINT_SPD\tST_SLP\t\tSLP_ACC\tSLP_DEC\tSTATUS\n"); - stubManager.Write("-----\t\t\t-------\t------\t\t-------\t--------\t-----\n"); - - for (i = 0; i < Max_Motor_ID; i++) - { - stubManager.Write(Motor_ID[i]); - -// stubManager.Write(i); - stubManager.Write("\t\t"); - - var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_INT_SPD)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ST_SLP)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_ACC)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_DEC)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STATUS)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n\n"); - - - - } - - - stubManager.Write("--------------- New Driver POWERSTEP01 ---------------\n\n"); - stubManager.Write("MoTor\tPS01_CONFIG\t\tPS01_STATUS\t\tPS01_GATECFG1\t\tPS01_GATECFG2\n"); - stubManager.Write("-----\t------------\t\t-----------\t\t-------------\t\t------------\n"); - - for (i = 6; i < 14; i++)//Dispensers only - //for (i = 25; i < 29; i++)//Dispensers only - { - stubManager.Write(i); - stubManager.Write("\t"); - - var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_CONFIG)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_STATUS)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG1)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG2)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n\n"); - } - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing_powerstep01_rev10.cs b/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing_powerstep01_rev10.cs deleted file mode 100644 index b02a6072c..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing_powerstep01_rev10.cs +++ /dev/null @@ -1,266 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -//unmark Auto logging ! - -const Int32 x_POWERSTEP01_CONFIG = 0x1A; -const Int32 x_POWERSTEP01_STATUS = 0x1B; -const Int32 x_POWERSTEP01_GATECFG1 = 0x18; -const Int32 x_POWERSTEP01_GATECFG2 = 0x19; - -const Int32 x_ABS_POS = 0x01; -const Int32 x_EL_POS = 0x02; -const Int32 x_MARK = 0x03; -const Int32 x_SPEED = 0x04; -const Int32 x_ACC = 0x05; -const Int32 x_DEC = 0x06; -const Int32 x_MAX_SPEED = 0x07; -const Int32 x_MIN_SPEED = 0x08; -const Int32 x_FS_SPD = 0x15; -const Int32 x_KVAL_HOLD = 0x09; -const Int32 x_KVAL_RUN = 0x0A; -const Int32 x_KVAL_ACC = 0x0B; -const Int32 x_KVAL_DEC = 0x0C; -const Int32 x_INT_SPD = 0x0D; -const Int32 x_ST_SLP = 0x0E; -const Int32 x_FN_SLP_ACC = 0x0F; -const Int32 x_FN_SLP_DEC = 0x10; -const Int32 x_K_THERM = 0x11; -const Int32 x_ADC_OUT = 0x12; -const Int32 x_OCD_TH = 0x13; -const Int32 x_STALL_TH = 0x14; -const Int32 x_STEP_MODE = 0x16; -const Int32 x_ALARM_EN = 0x17; -const Int32 x_CONFIG = 0x18; -const Int32 x_STATUS = 0x19; -//------------------------------- -const Int32 x_GET_PARAM = 0x20; -//------------------------------- -const Int32 Max_Motor_ID = 25; - - - -string[] Motor_ID = new string[30]; - - -Motor_ID[0] ="DH_CLEANHEAD "; -Motor_ID[1] ="DH_CLEANMECH "; -Motor_ID[2] ="DH_LID "; -Motor_ID[3] ="DRYER_DRIVING"; -Motor_ID[4] ="DRYER_LID "; -Motor_ID[5] ="DRYER_LOADARM"; -Motor_ID[6] ="DISPENCER_1 "; -Motor_ID[7] ="DISPENCER_2 "; -Motor_ID[8] ="DISPENCER_3 "; -Motor_ID[9] ="DISPENCER_4 "; -Motor_ID[10]="DISPENCER_5 "; -Motor_ID[11]="DISPENCER_6 "; -Motor_ID[12]="DISPENCER_7 "; -Motor_ID[13]="DISPENCER_8 "; -Motor_ID[14]="SCREW "; -Motor_ID[15]="WINDER "; -Motor_ID[16]="LDANCER1 "; -Motor_ID[17]="LDANCER2 "; -Motor_ID[18]="LDRIVING "; -Motor_ID[19]="LLODING "; -Motor_ID[20]="LPIVOT "; -Motor_ID[21]="RDANCER "; -Motor_ID[22]="RDRIVING "; -Motor_ID[23]="RLOADARM "; -Motor_ID[24]="RLODING "; -Motor_ID[25]="SPARE1_1 "; -Motor_ID[26]="SPARE1_2 "; -Motor_ID[27]="SPARE2_1 "; -Motor_ID[28]="SPARE2_2 "; -Motor_ID[29]="SPARE3 "; - - - - - - - - - - - - - - - - - -Int32 i = 12; // to run only for specific motor - -public void OnExecute(StubManager stubManager) -{ - -//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000380 , 0x06b9); //7ff mati -//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000390 , 0x003f); -//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000550 , 0x0003); //ff mati -//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000b80 , 0x001f); - - - - - - - - - - - - for (i = 0; i < Max_Motor_ID; i++) - { - - if((i%8 ==0) ) - { - stubManager.Write("\n\n"); - stubManager.Write("MoTor\t\t\tMIN_SPEED\tMAX_SPEED\tSTEP_MODE\tACC\t\tDEC\t\tKVAL_HOLD\tKVAL_RUN\tKVAL_ACC\tKVAL_DEC\tOCD_TH\t\tSTALL_TH\tCONFIG\t\tFS_SPD\t\tADC_OUT\tDriver_Type\n"); - stubManager.Write("------\t\t\t--------\t--------\t----------\t---\t\t---\t\t---------\t--------\t--------\t--------\t------\t\t--------\t------\t\t------\t\t------\t\t------\n"); - } - //stubManager.Write(i); - - stubManager.Write(Motor_ID[i]); - stubManager.Write("\t\t"); - - var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MIN_SPEED)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MAX_SPEED)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); stubManager.Write("\t"); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ACC)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_DEC)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_HOLD)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_RUN)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_ACC)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_DEC)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_OCD_TH)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STALL_TH)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_CONFIG)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FS_SPD)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ADC_OUT)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - if( response.RecivedData > 0x15 && response.RecivedData < 0x1c ) - stubManager.Write("\t\tDual_Driver"); - else if ( response.RecivedData > 0x0b && response.RecivedData < 0x12 ) - stubManager.Write("\t\tVolage_Driver"); - else if ( response.RecivedData > 8 && response.RecivedData < 0x0a) - stubManager.Write("\t\tCurrent_Driver"); - else - stubManager.Write("\t\tNo_Driver"); - - - stubManager.Write("\n\n"); - - } - - stubManager.Write("MoTor\t\t\tINT_SPD\tST_SLP\t\tSLP_ACC\tSLP_DEC\tSTATUS\n"); - stubManager.Write("-----\t\t\t-------\t------\t\t-------\t--------\t-----\n"); - - for (i = 0; i < Max_Motor_ID; i++) - { - stubManager.Write(Motor_ID[i]); - -// stubManager.Write(i); - stubManager.Write("\t\t"); - - var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_INT_SPD)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ST_SLP)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_ACC)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_DEC)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STATUS)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n\n"); - - - - } - - - stubManager.Write("--------------- New Driver POWERSTEP01 ---------------\n\n"); - stubManager.Write("MoTor\tPS01_CONFIG\t\tPS01_STATUS\t\tPS01_GATECFG1\t\tPS01_GATECFG2\n"); - stubManager.Write("-----\t------------\t\t-----------\t\t-------------\t\t------------\n"); - - for (i = 6; i < 14; i++)//Dispensers only - //for (i = 25; i < 29; i++)//Dispensers only - { - stubManager.Write(i); - stubManager.Write("\t"); - - var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_CONFIG)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_STATUS)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG1)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG2)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n\n"); - } - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/NewSpeedSensor.cs b/Software/Stubs Collection/stubs/Scripts/NewSpeedSensor.cs deleted file mode 100644 index 02f8384bc..000000000 --- a/Software/Stubs Collection/stubs/Scripts/NewSpeedSensor.cs +++ /dev/null @@ -1,45 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -const UInt32 Freq = 29166667;//FPGA Freq - -const UInt32 F1_Tacho_reg9 = 0x1E2;//Time of Tacho / No of clk in one cycle -const UInt32 F1_gpo_cnt_A_reg = 0x3B0;// how many pulses to count -//const Int32 F1_Prescaler1_reg5 = 0x3E8; //OLD FPGA 05.022019 -const UInt32 F1_Prescaler1_reg6 = 0x3EA; //New FPGA - -const UInt32 CNT = 4;//bigger number for resolution -const UInt32 Presc = 2;//Lower number for resolution -UInt32 temp; - -public void OnExecute(StubManager stubManager) -{ - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000000 + F1_Prescaler1_reg6, Presc);//for new FPGA use reg6!! - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000000 + F1_Prescaler1_reg6);//for new FPGA use reg6!!! - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000000 + F1_gpo_cnt_A_reg); - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000000 + F1_gpo_cnt_A_reg, CNT); - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000000 + F1_gpo_cnt_A_reg); - - for(int i =0;i<1000;i++) - { - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000000 + F1_Tacho_reg9); - - - temp = (Freq * CNT) /((UInt32)response.Value * Presc); - - stubManager.Write(temp); - stubManager.Write(" Hz, "); - stubManager.WriteHex((response.Value & 0xffff),4); - stubManager.WriteLine(""); - Thread.Sleep(100); //Sleep for 100 milli. - } -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/POPUP example for mati.cs b/Software/Stubs Collection/stubs/Scripts/POPUP example for mati.cs deleted file mode 100644 index f0c8cb1af..000000000 --- a/Software/Stubs Collection/stubs/Scripts/POPUP example for mati.cs +++ /dev/null @@ -1,30 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - DialogResult d; - d=MessageBox.Show("Is it what you need?","Example for Mati", MessageBoxButtons.YesNo, MessageBoxIcon.Information); - if(d==DialogResult.Yes) - { - stubManager.WriteLine("Yes"); - } - else - { - stubManager.WriteLine("No"); - } -/* -see https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.messagebox.show?view=netcore-3.1 -*/ - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Priming.pproj b/Software/Stubs Collection/stubs/Scripts/Priming.pproj deleted file mode 100644 index 309dae73e..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Priming.pproj +++ /dev/null @@ -1 +0,0 @@ -{"$id":"1","Name":"Priming","Description":null,"Scripts":{"$id":"2","$values":[{"$id":"3","Name":"Program.csx","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Entities;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\nusing System.IO;\r\nusing System.Diagnostics;\r\nusing System.Windows.Forms;\r\n\r\n\r\npublic class Program\r\n{\r\n\r\n\r\nprivate IProcedureContext context;\r\n\r\n//---------------------Start Command ----------------\r\nconst Int32\tCMD_RUN\t=\t0;\t\t//Run on Pulse Per Secound .positive run Up and negative run Down b\r\nconst Int32\tCMD_STOP=\t1;\t\t//0;Hard stop(Defualt);1-Soft stop;2-Hard Hiz;3-Soft Hiz\r\nconst Int32\tCMD_VALVE=\t2;\t\t//0-to Midtank ,1-to head \r\nconst Int32\tCMD_DLY\t=\t3;\t\t//delay in Seconds .\r\nconst Int32\tCMD_TIME=\t4;\t\t//Print Time .\r\nconst Int32\tCMD_PRESS=\t5;\t\t//return from Delay loop when pressure is high (on mBAR) .\r\nconst Int32 CMD_LOOP_NM=6;\t\t//NUMBER OF counter\r\nconst Int32 CMD_LOOP=\t7;\t\t//jump up(+) or down(-) command u\r\nconst Int32 CMD_MTV_OPEN =\t8;\t\t//0 Air ; 1 Ink\r\nconst Int32 CMD_MTV_CLOSE=\t9;\t\t//0 Air ; 1 Ink\r\nconst Int32 CMD_LBL=\t10;\t//label for user \r\nconst Int32 CMD_SMP=\t11; //sample rate ,defualt 100msec (1); for 1 second is 10.\r\nconst Int32 CMD_PRESL=\t12; //return from Delay loop when pressure is low (on mBAR) .\r\n\r\nconst Int32\tCMD_END\t=\t13;\t//end loop .\r\n \r\n\r\nInt32[] BuildUp_Table = new int []\r\n{\r\n\tCMD_VALVE,1,\r\n\tCMD_PRESL,200,\r\n\tCMD_DLY,200, \r\n\r\n\tCMD_LOOP_NM,3,\r\n\r\n\tCMD_VALVE,0,\r\n\tCMD_DLY,1, \r\n\tCMD_VALVE,1,\r\n\tCMD_DLY,1, \r\n\tCMD_LOOP,-4,\r\n\r\n\tCMD_VALVE,0,\r\n\tCMD_RUN,1068,\r\n\tCMD_PRESS,1000,\t//mbar --> 1000 = 100% work, 4000 = 200% work, 350 = 20% work\r\n\tCMD_DLY,150, \t\t\r\n\tCMD_LBL,1,\r\n\tCMD_PRESS,2000,\t//mbar --> 2000 = 100% work, 4000 = 200% work, 350 = 20% work\r\n\tCMD_DLY,60, \t\t\r\n\tCMD_LBL,2,\r\n\tCMD_PRESS,3000,\r\n\tCMD_DLY,60, // to limit\r\n\tCMD_STOP,0,\r\n\tCMD_VALVE,1,\r\n\tCMD_END,3,\r\n};\r\n\t\r\n\r\nInt32[] Up_Table = new int []\r\n{\r\n\tCMD_VALVE,1,\r\n\tCMD_PRESL,200,\r\n\tCMD_DLY,200, \r\n\t\r\n\tCMD_PRESS,3000,\t//mbar --> 1000 = 100% work, 4000 = 200% work, 350 = 20% work\r\n\tCMD_RUN,534, // 100%\r\n\tCMD_DLY,120,\r\n\tCMD_STOP,0,\r\n\tCMD_END,3,\r\n};\r\nInt32 Dispenser_sample_rate= 1; \r\n\r\n\tstring path = @\"C:\\Dispenser_setup\\Log\\\"; \t\r\n//----------------------\r\nconst UInt32 I2C_ID \t\t\t= \t4;\t\t\t\t\t//MCU_I2C4 \r\nconst UInt32 TCA9548A_address \t=\t0xE2;\t \t\r\nconst UInt32 I2C_Slave_Low_Add \t= \t0xA0;\t\t\t\t//eeprom address - 64k low \r\nconst UInt32 I2C_Slave_High_Add = \t0xA2;\t\t\t\t//eeprom address - 64k High\r\n//----------------------\r\nbyte [] EEPROM_Data = new byte [128];\r\n\r\n\r\n//---------------------End Command ----------------\r\n\r\nconst Int32\tDispenser_Motor1\t=\t6;\t\t \r\nconst Int32\tDispenser_Motor2\t=\t7;\t\t \r\nconst Int32\tDispenser_Motor3\t=\t8;\t\t \r\nconst Int32\tDispenser_Motor4\t=\t9;\t\t \r\nconst Int32\tDispenser_Motor5\t=\t10;\t\t \r\nconst Int32\tDispenser_Motor6\t=\t11;\t\t \r\nconst Int32\tDispenser_Motor7\t=\t12;\t\t \r\nconst Int32\tDispenser_Motor8\t=\t13;\t\t \r\n\r\nconst Int32 AN_IDS_PRESSENS_1\t=\t2;\r\nconst Int32 AN_IDS_PRESSENS_2\t=\t3;\r\nconst Int32 AN_IDS_PRESSENS_3\t=\t4;\r\nconst Int32 AN_IDS_PRESSENS_4\t=\t5;\r\nconst Int32 AN_IDS_PRESSENS_5\t=\t6;\r\nconst Int32 AN_IDS_PRESSENS_6\t=\t7;\r\nconst Int32 AN_IDS_PRESSENS_7\t=\t8;\r\nconst Int32 AN_IDS_PRESSENS_8\t=\t9;\r\n\r\nconst Int32\tF2_LS_01_Direct\t=\t0x60000420\t;\t//\tReads the direct values that are currently being sent to the fpga.\trsv\t\trsv\t\trsv\t\t\t\t\t\trsv\t\t\t\t\t\tF2_LS_DISPENSER_UP_2\tF2_LS_DISPENSER_25_2\tF2_LS_DISPENSER_75_2\tF2_LS_DISPENSER_DOWN_2 \tF2_LS_DISPENSER_50_2\tF2_LS_DISPENSER_SPARE_2\tF2_LS_DISPENSER_UP_1\tF2_LS_DISPENSER_25_1 \tF2_LS_DISPENSER_75_1\tF2_LS_DISPENSER_DOWN_1\tF2_LS_DISPENSER_50_1\tF2_LS_DISPENSER_SPARE_1\t\t\t\r\nconst Int32\tF2_LS_02_Direct\t=\t0x60000430\t;\t//\tReads the direct values that are currently being sent to the fpga.\trsv\t\trsv\t\trsv\t\t\t\t\t\trsv\t\t\t\t\t\tF2_LS_DISPENSER_UP_4\tF2_LS_DISPENSER_25_4\tF2_LS_DISPENSER_75_4\tF2_LS_DISPENSER_DOWN_4\tF2_LS_DISPENSER_50_4\tF2_LS_DISPENSER_SPARE_4\tF2_LS_DISPENSER_UP_3\tF2_LS_DISPENSER_25_3 \tF2_LS_DISPENSER_75_3\tF2_LS_DISPENSER_DOWN_3\tF2_LS_DISPENSER_50_3\tF2_LS_DISPENSER_SPARE_3\t\t\t\r\nconst Int32\tF2_LS_03_Direct\t=\t0x60000440\t;\t//\tReads the direct values that are currently being sent to the fpga.\trsv\t\trsv\t\trsv\t\t\t\t\t\trsv\t\t\t\t\t\tF2_LS_DISPENSER_UP_6 \tF2_LS_DISPENSER_25_6 \tF2_LS_DISPENSER_75_6 \tF2_LS_DISPENSER_DOWN_6\tF2_LS_DISPENSER_50_6\tF2_LS_DISPENSER_SPARE_6\tF2_LS_DISPENSER_UP_5\tF2_LS_DISPENSER_25_5 \tF2_LS_DISPENSER_75_5\tF2_LS_DISPENSER_DOWN_5\tF2_LS_DISPENSER_50_5\tF2_LS_DISPENSER_SPARE_5\t\t\t\r\nconst Int32\tF2_LS_04_Direct =\t0x60000480\t;\t//\tReads the direct values that are currently being sent to the fpga.\trsv\t\trsv\t\trsv\t\t\t\t\t\trsv\t\t\t\t\t\tF2_LS_DISPENSER_UP_8\tF2_LS_DISPENSER_25_8\tF2_LS_DISPENSER_75_8\tF2_LS_DISPENSER_DOWN_8\tF2_LS_DISPENSER_50_8\tF2_LS_DISPENSER_SPARE_8\tF2_LS_DISPENSER_UP_7\tF2_LS_DISPENSER_25_7 \tF2_LS_DISPENSER_75_7\tF2_LS_DISPENSER_DOWN_7\tF2_LS_DISPENSER_50_7\tF2_LS_DISPENSER_SPARE_7\t\t\t\r\n\r\nconst Int32 Dispenser_Valve1\t=\t0;\r\nconst Int32 Dispenser_Valve2\t=\t1;\r\nconst Int32 Dispenser_Valve3\t=\t2;\r\nconst Int32 Dispenser_Valve4\t=\t3;\r\nconst Int32 Dispenser_Valve5\t=\t4;\r\nconst Int32 Dispenser_Valve6\t=\t5;\r\nconst Int32 Dispenser_Valve7\t=\t6;\r\nconst Int32 Dispenser_Valve8\t=\t7;\r\n\r\nconst ushort MinPress_Mbar_Add =0x5c ;\r\nconst ushort MaxPress_Mbar_Add =0x60 ;\r\n\r\nconst Int32 F3_VALVE_OUT\t= 0x600000e2;\t\t\r\n\r\n//string path = \"C:\\\\Dispenser_setup\\\\Log\\\\\"; \r\n\r\n\r\n//Int32[] Start_Table;\r\n\r\nInt32[] Start_Table = new Int32 [10000];\r\n\r\nUInt32 [] Motor_Dir=new UInt32 [8] {0,0,0,0,0,0,0,0};\r\n\r\nstring Dispenser_Fname ;\r\n\r\nInt32 Dispenser_ptr =-1;\r\n\r\nInt32 [] Dispenser_press= new Int32[8]{0,0,0,0,0,0,0,0};\r\nInt32 max_pressure_level = 20000;\r\nInt32 min_pressure_level = -20000;\r\n\t\r\nInt32 [] A2D_Dispenser= new Int32[8]{0,0,0,0,0,0,0,0};\r\nInt32 Loop_cnt= 1;\r\nInt32 Loop_length=1;\r\n\r\nInt32 PressureSensorType= 1;\t\t//1- new -1up +10 . 0-old 0 to +10\r\nInt32\tTemp_Delay=0;\r\n\r\n\r\nUInt32 RD_LS_01_Direct;\r\nUInt32 RD_LS_02_Direct;\r\nUInt32 RD_LS_03_Direct;\r\nUInt32 RD_LS_04_Direct;\r\n\r\nlong Lebel1_time;\r\nlong Lebel2_time;\r\n\r\nlong time_Table;\r\n\r\nInt32 msec_index=0;\r\n\r\nInt32 MaxPress_Mbar;\r\nInt32 MinPress_Mbar;\r\nstring state;\r\n\r\n\tpublic Int32 OnExecute(IProcedureContext context)\r\n {\r\n\t\tlong Max_PBU;\r\n\t\tInt32 Index=0;\r\n\t\tInt32 speed=0;\r\n\t\tInt32 Dispenser_Nm;\r\n\t\tthis.context = context;\r\n\t\r\n\t\tstring box_msg = \"Make sure Mixer Hot \";\r\n\t\tMessageBox.Show(box_msg);\r\n\t\t\r\n\t\tvar response1 = context.RequestUserInputFor<String>(\"Dispenser Number\", \"Enter Dispenser number to make priming (1-8):\");\r\n\t\tcontext.WriteLine(response1);\r\n\t\tDispenser_Nm = Int32.Parse(response1);\r\n\t\t\r\n\t\tcheck_Min_Max_Mbar(Dispenser_Nm);\r\n\t\r\n\t\tif (Dispenser_Nm==8)\r\n\t\t\tMax_PBU=6000;\r\n\t\telse\r\n\t\t\tMax_PBU=4000;\r\n\t\t\t\r\n\t\r\n\tif (!Directory.Exists(path))\r\n\t\t{\r\n\t\t\tDirectory.CreateDirectory(path);\r\n\t\t}\t\r\n\t\t\tcontext.WriteLine(path);\r\n\t\t\t\r\n\tcontext.Send<ProgressResponse>(\"ProgressRequest\" ,0xe0, 1);\r\n\r\n\tDispenser_Fname=path + \"Dispenser_Nm_\" + Dispenser_Nm+\"_\" + DateTime.Now.ToString(\"MM-dd-yy hh-mm\")+ \".csv\" ;\r\n\r\n\tcontext.WriteLine(Dispenser_Fname);\r\n\r\n\tcontext.WriteToFile(Dispenser_Fname,\"Dispenser Nm,\" + Dispenser_Nm + \"\\n\" );\r\n\tcontext.AppendToFile(Dispenser_Fname,\"Pressure,Command,Value,DateTime,Remark\\n\" ); \r\n\t\tfor(int j=0; j<2;j++)\r\n\t\t{\r\n\t\t\tfor(int i=0; i<4;i++)\r\n\t\t\t{\r\n\t\t\t\tstate=\"PBU No. \"+ (4*j+i+1 );\r\n\t\t\t\tStart_Table=BuildUp_Table;\r\n\t\t\t\tTable_Run(Dispenser_Nm );\r\n\t\t\t\tif (time_Table>300000)\r\n\t\t\t\t{\r\n\t\t\t\t\tcontext.AddResult(ResultType.Failed,\"PBU\", \"PBU No.\"+ (4*j+i+1 ) + \" Fail\");\r\n\t\t\t\t\treturn 0;\r\n\t\t\t\t}\r\n\t\t\t\t context.AddResult(ResultType.Passed,\"PBU\",\"PBU No.\"+ (4*j+i+1 ) + \" Pass\");\r\n\t\t\t\t\t\r\n\t\t\t}\r\n\t\t\tstate=\"Flow No.\"+ (j+1 ) ;\r\n\t\t\tStart_Table=Up_Table;\r\n\t\t\tTable_Run(Dispenser_Nm );\r\n\t\t\tif (time_Table<115000)\r\n\t\t\t\t{\r\n\t\t\t\t\tcontext.WriteLine(\"time_Table= \" +time_Table);\r\n\t\t\t\t\tcontext.AddResult(ResultType.Failed,\"Flow\", \"Flow No.\"+ (j+1) + \" Fail\");\r\n\t\t\t\t\treturn 0;\r\n\t\t\t\t}\r\n\t\t\t\t context.AddResult(ResultType.Passed,\"Flow\",\"Flow No.\"+ (j+1 ) + \" Pass\");\r\n\t\t\t\t\t\t\r\n\t\t}\r\n\t\t\t\t state=\"Last PBU \" ;\r\n\t\t\t\tStart_Table=BuildUp_Table; \r\n\t\t\t\tTable_Run(Dispenser_Nm );\r\n\t\t\t\tlong Time=Lebel2_time-Lebel1_time;\r\n\t\t\t\tif (Time>Max_PBU)\r\n\t\t\t\t { \r\n\t\t\t\t context.AddResult(ResultType.Failed,\"PBU\", \"PBU = \" +Time + \"msec \");\r\n\t\t\t\t state=\"PBU = \" +Time + \"msec \\tFail\";\r\n\t\t\t\t }\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t context.AddResult(ResultType.Passed,\"PBU\", \"PBU = \" +Time + \"msec \");\r\n\t\t\t\t state=\"PBU = \" +Time + \"msec \\tPass\";\r\n\t\t\t\t}\t\r\n\t\treturn 0;\r\n\t\t\r\n }\r\n\r\n/////////////////////////////////////////////\r\nvoid \t\tcheck_Min_Max_Mbar(Int32 i )\r\n{\r\n\tint k;\r\n\tstring s ;\r\n\ti--;\r\n\r\n\t\t\t\t\tcontext.WriteLine(\"-------------- write Enable Channel ------------\");\t//debug\r\n\t\tenable_channel(i); // Chanel 0-7 => Disp0enser 0-7 \r\n\t\t\t\t\tcontext.WriteLine(\"-------------- Read_header ------------\");\t//debug\r\n\r\n\t\t\t\t\tcontext.WriteLine(\"-------------- write_address_eeprom ------------\");\t//debug\r\n\t\twrite_address_eeprom (I2C_Slave_Low_Add,MinPress_Mbar_Add);\r\n\t\t\t\t\tcontext.WriteLine(\"-------------- read_data_from_eeprom ------------\");\t//debug\r\n\t\tread_data_from_eeprom (I2C_Slave_Low_Add,1);\r\n\t\tif \t(EEPROM_Data[0]==0\t)\r\n\t\t{\tPressureSensorType=0;\r\n\t\t\tcontext.WriteLine(\"PressureSensorType=0\" );\t//debug\r\n\t\t}\r\n\t\telse\t\r\n\t\t{\t\r\n\t\t\tPressureSensorType=1;\t\t\t\t\t\r\n\t\t\tcontext.WriteLine(\"PressureSensorType=1\" );\t//debug\r\n\t\t}\r\n\t\r\n}\t\r\n//----------------write address eeprom -------------------------\r\npublic void write_address_eeprom (UInt32 I2C_Add, UInt32 Eeprom_Add)\r\n{\t\r\n\tStubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();\r\n\tstubI2CWriteBytesRequest.I2CId = I2C_ID;\r\n\tstubI2CWriteBytesRequest.SlaveAddress = I2C_Add;\r\n\t\r\n\tUInt32 uInt32 = new UInt32();\r\n\tstubI2CWriteBytesRequest.BytesTWrite.Add(Convert.ToByte( (Eeprom_Add & 0xff00) >>8));\t//Byte High add to write\r\n\tstubI2CWriteBytesRequest.BytesTWrite.Add(Convert.ToByte(Eeprom_Add & 0xff));\t\t\t//Byte Low add to write\r\n\t\t\t\t\tcontext.WriteLine( (Eeprom_Add & 0xff00) >>8) ;\t//debug\r\n\t\t\t\t\tcontext.WriteLine( Eeprom_Add & 0xff);\t//debug\r\n\r\n\tcontext.Send<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);\t\r\n}\r\n//------------------- read Data from EEprom--------------------------\r\n\r\npublic void read_data_from_eeprom ( UInt32 I2C_Add, UInt32 cnt )\r\n{\r\n\tStubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();\r\n\tstubI2CReadBytesRequest.I2CId = I2C_ID;\r\n\tstubI2CReadBytesRequest.SlaveAddress = (I2C_Add + 1);\r\n\tstubI2CReadBytesRequest.NumberOfBytesToRead = cnt; // Number of bytes to read\r\n\r\n\tvar response1 = context.Send<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);\r\n\r\n\tfor(int i=0; i<cnt;i++)\r\n\t\t{\r\n\t\t\tEEPROM_Data[i]=Convert.ToByte(response1.ReadBytes[i]);\r\n\t\t\tcontext.WriteLine(EEPROM_Data[i] );\t//debug\r\n\r\n\t\t}\t\t\r\n}\t\r\n\r\n\r\n///////////////////////////////////////////////\r\n//----------- enable I2c channel --------------\r\npublic int enable_channel(Int32 Channel_ID) \r\n{\r\n\tuint Const_temp = 0x01;\t\r\n\t\r\n\tStubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();\r\n\tstubI2CWriteBytesRequest.I2CId = I2C_ID;\r\n\tstubI2CWriteBytesRequest.SlaveAddress = TCA9548A_address;\r\n\t\r\n\tConst_temp = Const_temp << Channel_ID;\r\n\tstubI2CWriteBytesRequest.BytesTWrite.Add(Const_temp);//enable i2c channel 0 Dispenser 1\r\n\r\n\tvar response = context.Send<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);\r\n\t\r\n\treturn 1;\r\n}\r\n\r\n\r\n////////////////////////////////////////////////////////////// \r\nInt32 Table_Run(Int32 Dispenser )\r\n\r\n{\r\n\tInt32 COMMAND=0;\r\n\tInt32 Data=0;\r\n\tInt32 count=0;\r\n\t\r\n\tDispenser--;\t\t//check from 0-7\r\n\t\r\n\tint j=0;\r\n\tvar stopwatch = new Stopwatch();\r\n\t\tstopwatch.Start();\r\n\t\r\n\t\tlong elapsed_time = stopwatch.ElapsedMilliseconds;\r\n\t\tcontext.WriteLine(elapsed_time);\r\n\t\t\r\n\twhile (count!=-1) \r\n\t{\r\n\tmsec_index=msec_index+1;\r\n\t\t\r\n\t\tif (Dispenser<2) \r\n\t\t\t{\r\n\t\t\t\tvar response1 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_01_Direct);\r\n\t\t\t\tRD_LS_01_Direct=response1.Value\t ;\r\n\t\t\t}\r\n\t\telse if ( (Dispenser<4) )\r\n\t\t\t{\r\n\t\t\t\tvar response1 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_02_Direct);\r\n\t\t\t\tRD_LS_02_Direct=response1.Value\t ;\r\n\t\t\t}\r\n\t\telse if ( (Dispenser<6) )\r\n\t\t\t{\r\n\t\t\t\tvar response1 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_03_Direct);\r\n\t\t\t\tRD_LS_03_Direct=response1.Value\t ;\r\n\t\t\t}\r\n\t\telse\r\n\t\t\t{\r\n\t\t\t\tvar response1 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_04_Direct);\r\n\t\t\t\tRD_LS_04_Direct=response1.Value\t ;\r\n\t\t\t}\r\n\t\tif (Dispenser<4) \r\n\t\t\t{\r\n\t\t\tvar response2 = context.Send<StubIntADCReadResponse>(\"StubIntADCReadRequest\" ,0x8000 + AN_IDS_PRESSENS_1);\r\n\t\t\t\tA2D_Dispenser[0]=(response2.SamplingInBits)>>16;\r\n\t\t\t\tA2D_Dispenser[1] =(response2.SamplingInBits) & 0x0000ffff;\r\n\t\t\t\tA2D_Dispenser[2] =(response2.VoltageSamplingMv)>>16;\r\n\t\t\t\tA2D_Dispenser[3] =(response2.VoltageSamplingMv) & 0x0000ffff;\r\n\t\t\t}\r\n\t\telse\r\n\t\t\t{\r\n\t\t\tvar\tresponse3 = context.Send<StubIntADCReadResponse>(\"StubIntADCReadRequest\" ,0x8000 + AN_IDS_PRESSENS_5);\r\n\t\t\t\tA2D_Dispenser[4] =(response3.SamplingInBits)>>16;\r\n\t\t\t\tA2D_Dispenser[5] =(response3.SamplingInBits)& 0x0000ffff;\r\n\t\t\t\tA2D_Dispenser[6] =(response3.VoltageSamplingMv)>>16;\r\n\t\t\t\tA2D_Dispenser[7] =(response3.VoltageSamplingMv)& 0x0000ffff;\r\n\t\t\t}\r\n\t\t\t\t\r\n\t\t\tCOMMAND=Start_Table[count];\r\n\t\t\tData=Start_Table[(count+1)];\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t//Index=Index+2;\r\n\t\t\tswitch (COMMAND)\r\n\t\t\t\t{\r\n\t\t\t\tcase CMD_RUN:\r\n\t\t\t\t\tMotor_Run(Data,Dispenser);\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_VALVE:\r\n\t\t\t\t\tValve_3W(Data,Dispenser);\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_STOP:\r\n\t\t\t\t\tMotor_Stop(Data,Dispenser);\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_DLY:\r\n\t\t\t\t\tDelay_on_second(Data,Dispenser);\r\n\t\t\t\t\tif (Temp_Delay ==0)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmax_pressure_level=20000;\t\r\n\t\t\t\t\t\tmin_pressure_level=-20000;\t\r\n\t\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_TIME:\r\n\t\t\t\t\tPrint_Time();\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_PRESS:\r\n\t\t\t\t\tmax_pressure_level=Data;\r\n\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",Max_pressure_level is, \" + Data +\",\"+DateTime.Now+\"\\n\");\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_PRESL:\r\n\t\t\t\t\tmin_pressure_level=Data;\r\n\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",Min_pressure_level is, \" + Data +\",\"+DateTime.Now+\"\\n\");\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_LBL:\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",Label,\" + Data+\",\"+DateTime.Now+\"\\n\");\r\n\t\t\t\t\tif(Data==1)\r\n\t\t\t\t\t\tLebel1_time=stopwatch.ElapsedMilliseconds;\r\n\t\t\t\t\tif(Data==2)\r\n\t\t\t\t\t\tLebel2_time=stopwatch.ElapsedMilliseconds;\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_SMP:\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",SampleRate,\" + Data+\",\"+DateTime.Now+\"\\n\");\r\n\t\t\t\t\tDispenser_sample_rate =Data;\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_END:\r\n\t\t\t\t\tcount=-1;\r\n\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",End testing,,\"+DateTime.Now+\"\\n\");\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\r\n\t\t\t\tcase CMD_MTV_OPEN:\r\n\t\t\t\t\topen_midtank_valve(Data,Dispenser);\r\n\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",OPEN MIDTANK, \" + Dispenser+\",\"+DateTime.Now+\"\\n\");\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase CMD_MTV_CLOSE:\r\n\t\t\t\t\tclose_midtank_valve(Data,Dispenser);\r\n\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",CLOSE MIDTANK, \" + Dispenser+\",\"+DateTime.Now+\"\\n\");\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\r\n\t\t\t\tcase CMD_LOOP_NM:\r\n\t\t\t\t\r\n\t\t\t\t\tLoop_cnt=Data-1;\r\n\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",Counter Loop,\"+ Data+\",\"+DateTime.Now +\"\\n\");\r\n\t\t\t\t\tcount = count+2;\t\t\t\t\t\t\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase CMD_LOOP:\r\n\t\t\t\t\r\n\t\t\t\t\tif (Loop_cnt!=0)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\"Counter Loop,\"+ Loop_cnt+\",\"+DateTime.Now+\"\\n\" );\r\n\t\t\t\t\t\tcount = count+2*Data;\r\n\t\t\t\t\t\tLoop_cnt--;\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",End loop,,\"+DateTime.Now +\"\\n\");\r\n\t\t\t\t\t\tcount = count+2;\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t}\t\r\n\t\t\t\r\n\t\t\tlong elapsed_time1 = stopwatch.ElapsedMilliseconds;\r\n\t\t\tlong elapsed_time2= elapsed_time1-elapsed_time;\r\n\t\t\tif (elapsed_time2>95)\r\n\t\t\telapsed_time2=95;\t\t//minimum time\r\n\t\t\t\tThread.Sleep(100-(int )(elapsed_time2));\r\n\r\n\t\t\telapsed_time = stopwatch.ElapsedMilliseconds;\t\t\r\n\r\n\r\n\t\t\tj++;\r\n\t\t\t\tif (j==10)\r\n\t\t\t\t{\r\n\t\t\t\t\tj=0;\r\n\t\t\t\t\tcontext.WriteLine(Dispenser_press[Dispenser]+ \" mBar\\t\"+state + \"\\tTime-\" + (elapsed_time/1000));\r\n\t\t\t\t}\r\n\t}\r\n\ttime_Table=elapsed_time;\r\n\treturn 0;\r\n}\r\n\r\n///////////////////////////////////////////////////////////////////\t\r\nInt32 Motor_Run(Int32 speed,Int32 Dispenser)\r\n\r\n{\r\n\r\n\tswitch (Dispenser)\r\n\t\t{\r\n\t\tcase 0:\r\n\t\t\t\tif ( speed<0)\r\n\t\t\t\t{\r\n\t\t\t\t\tMotor_Dir[0]=2;\r\n\t\t\t\t\tif ((RD_LS_01_Direct & 0x04)!=0x04)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor1, false, (-speed));\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\t\r\n\t\t\t\t\tMotor_Dir[0]=1;\r\n\t\t\t\t\tif ((RD_LS_01_Direct & 0x20)!=0x20)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor1, true, (speed));\r\n\t\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase 1:\r\n\t\t\t\tif ( speed<0)\r\n\t\t\t\t{\r\n\t\t\t\t\tMotor_Dir[1]=2;\r\n\t\t\t\t\tif ((RD_LS_01_Direct & 0x100)!=0x100)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor2, false, (-speed));\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\t\r\n\t\t\t\t\tMotor_Dir[1]=1;\r\n\t\t\t\t\tif ((RD_LS_01_Direct & 0x800)!=0x800)\r\n\t\t\t\t\t{\t\t\t\t\t\t\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor2, true, (speed));\r\n\t\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase 2:\r\n\t\t\t\tif ( speed<0)\r\n\t\t\t\t{\r\n\t\t\t\t\tMotor_Dir[2]=2;\r\n\t\t\t\t\tif ((RD_LS_02_Direct & 0x04)!=0x04)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor3, false, (-speed));\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\t\r\n\t\t\t\t\tMotor_Dir[2]=1;\r\n\t\t\t\t\tif ((RD_LS_02_Direct & 0x20)!=0x20)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now+ \",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor3, true, (speed));\r\n\t\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase 3:\r\n\t\t\t\tif ( speed<0)\r\n\t\t\t\t{\r\n\t\t\t\t\tMotor_Dir[3]=2;\r\n\r\n\t\t\t\t\tif ((RD_LS_02_Direct & 0x100)!=0x100)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now+ \",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor4, false, (-speed));\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\t\r\n\t\t\t\t\tMotor_Dir[3]=1;\r\n\r\n\t\t\t\t\tif ((RD_LS_02_Direct & 0x800)!=0x800)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor4, true, (speed));\r\n\t\t\t\t}\r\n\t\t\tbreak;\r\n\t\t\r\n\t\tcase 4:\r\n\t\t\t\tif ( speed<0)\r\n\t\t\t\t{\r\n\t\t\t\t\tMotor_Dir[4]=2;\r\n\t\t\t\t\tif ((RD_LS_03_Direct & 0x04)!=0x04)\r\n\t\t\t\t\t{ \r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now+ \",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor5, false, (-speed));\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\t\r\n\t\t\t\t\tMotor_Dir[4]=1;\r\n\t\t\t\t\tif ((RD_LS_03_Direct & 0x20)!=0x20)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now+ \",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor5, true, (speed));\r\n\t\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase 5:\r\n\t\t\t\tif ( speed<0)\r\n\t\t\t\t{\r\n\t\t\t\t\tMotor_Dir[5]=2;\r\n\t\t\t\t\tif ((RD_LS_03_Direct & 0x100)!=0x100)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor6, false, (-speed));\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\t\r\n\t\t\t\t\tMotor_Dir[5]=1;\r\n\t\t\t\t\tif ((RD_LS_03_Direct & 0x800)!=0x800)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now+ \",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor6, true, (speed));\r\n\t\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase 6:\r\n\t\t\t\tif ( speed<0)\r\n\t\t\t\t{\r\n\t\t\t\t\tMotor_Dir[6]=2;\r\n\t\t\t\t\tif ((RD_LS_04_Direct & 0x04)!=0x04)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor7, false, (-speed));\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\t\r\n\t\t\t\t\tMotor_Dir[6]=1;\r\n\t\t\t\t\tif ((RD_LS_04_Direct & 0x20)!=0x20)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor7, true, (speed));\r\n\t\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase 7:\r\n\t\t\t\tif ( speed<0)\r\n\t\t\t\t{\r\n\t\t\t\t\tMotor_Dir[7]=2;\r\n\r\n\t\t\t\t\tif ((RD_LS_04_Direct & 0x100)!=0x100)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor8, false, (-speed));\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\t\r\n\t\t\t\t\tMotor_Dir[7]=1;\r\n\r\n\t\t\t\t\tif ((RD_LS_04_Direct & 0x800)!=0x800)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor8, true, (speed));\r\n\t\t\t\t}\r\n\t\t\tbreak;\r\n\t\t\t\r\n\t\tdefault:\r\n\t\t\tbreak;\r\n\r\n\t\t}\r\n \tcontext.AppendToFile(Dispenser_Fname,\",Run,\" +speed+\",\"+DateTime.Now +\"\\n\" ); \r\n\r\n\treturn 1;\r\n} \r\n \r\n \t\r\n Int32 Valve_3W(Int32 Valve_Value,Int32 Dispenser)\r\n{\r\n\tif ( Valve_Value==1)\r\n\t\tcontext.Send<StubValveResponse>(\"StubValveRequest\" ,Dispenser_Valve1+Dispenser, 3, true);\t//3 3Way\r\n\telse\t\r\n\t\tcontext.Send<StubValveResponse>(\"StubValveRequest\" ,Dispenser_Valve1+Dispenser, 3, false); //3 3Way\r\n \r\n\tcontext.AppendToFile(Dispenser_Fname,\",Dispenser Valve position is, \" + Valve_Value+\",\"+DateTime.Now +\"\\n\" );\r\n\r\n\treturn 1;\t\r\n}\t\r\n//--------------------------------------- \r\n\r\n Int32 Motor_Stop(Int32 Stop_Value,Int32 Dispenser )\r\n{\r\n\tcontext.Send<StubMotorStopResponse>(\"StubMotorStopRequest\" ,Dispenser_Motor1+Dispenser, Stop_Value);\r\n\t\r\n\tcontext.AppendToFile(Dispenser_Fname,\",Motor Stop,\" + Stop_Value+\",\"+DateTime.Now +\"\\n\");\r\n\tMotor_Dir[Dispenser]=0;\r\n\treturn 1;\t\r\n}\r\n\r\n//--------------------------------------- \r\n\r\n Int32 Delay_on_second(Int32 Delay,Int32 Dispenser )\r\n{\r\n//Int32 temp1;\r\nInt32 pressure_om_mBAR=0;\r\n\tif \t(Temp_Delay ==0)\r\n\t{\r\n\t\tcontext.AppendToFile(Dispenser_Fname,\",DLY, \" + Delay +\",\"+DateTime.Now+\"\\n\");\r\n\t\tTemp_Delay = Delay *10 -1;\r\n//\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontext.Write(\"A\");\t\t//debug\r\n\t}\r\n\telse\t\r\n\t\t\tTemp_Delay--;\r\n\t\t\t\r\n\tif ( LimitSW_Dispenser(Dispenser)==0)\r\n \t {\t\r\n \t \tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now+\",Warning Motor on Limit\\n\");\r\n\t\t\tMotorStop(Dispenser);\r\n\t\t\tTemp_Delay =0;\t//end delay\r\n//\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontext.Write(\"C\");\t\t//debug\r\n\r\n\t\t\treturn 0 ;\r\n \t }\r\n\t\t\t\t\t\r\n\tpressure_om_mBAR=Calc_mBAR(Dispenser,true);\r\n \tif (pressure_om_mBAR > max_pressure_level)\r\n \t \t{\r\n\t\t//\tMotorStop(Dispenser);\r\n\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Pressure too high\\n\");\r\n\t\t\tTemp_Delay =0;\t//end delay\r\n//\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontext.Write(\"D\");\t\t//debug\r\n\t\t\t\r\n\t\t\treturn 0;\r\n\t\t}\r\n \tif (pressure_om_mBAR < min_pressure_level)\r\n \t \t{\r\n\t\t//\tMotorStop(Dispenser);\r\n\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Pressure too low\\n\");\r\n\t\t\tTemp_Delay =0;\t//end delay\r\n//\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontext.Write(\"D\");\t\t//debug\r\n\t\t\t\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\t\r\n\t\t\r\n \treturn 1;\r\n}\t\r\n \t \t\r\nInt32 LimitSW_Dispenser(Int32 Dispenser) \r\n{\r\n\r\n\tif (Dispenser==0)\r\n\t\t\r\n\t\t{\r\n\t\t\t\r\n//\t\tvar response1 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_01_Direct);\r\n\r\n\t\t\t\tif (((RD_LS_01_Direct & 0x04)!=0x04) && (Motor_Dir[0]==2))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\tif (((RD_LS_01_Direct & 0x20)!=0x20) && (Motor_Dir[0]==1))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\treturn 1;\t\t\r\n\t\t}\r\n\t\t\r\n\tif (Dispenser==1)\r\n\t\t\r\n\t\t{\r\n//\t\tvar response2 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_01_Direct);\r\n\t\t\t\tif (((RD_LS_01_Direct & 0x100)!=0x100) && (Motor_Dir[1]==2))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\tif (((RD_LS_01_Direct & 0x800)!=0x800) && (Motor_Dir[1]==1))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\treturn 1;\t\t\r\n\t\t}\r\n\t\t\r\n\r\n\tif (Dispenser==2)\r\n\t\t\r\n\t\t{\r\n\t\t\t\t\r\n\t\t//var response3 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_02_Direct);\r\n\t\t\t\tif (((RD_LS_02_Direct & 0x04)!=0x04) && (Motor_Dir[2]==2))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\tif (((RD_LS_02_Direct & 0x20)!=0x20) && (Motor_Dir[2]==1))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\treturn 1;\t\t\r\n\t\t\t\r\n\t\t}\r\n\t\t\r\n\tif (Dispenser==3)\r\n\t\t\r\n\t\t{\r\n\t\t\t\tvar response4 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_02_Direct);\r\n\t\t\t\tif (((RD_LS_02_Direct & 0x100)!=0x100) && (Motor_Dir[3]==2))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\tif (((RD_LS_02_Direct & 0x800)!=0x800) && (Motor_Dir[3]==1))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\treturn 1;\t\t\r\n\t\t}\r\n\t\t\r\n\t\t\r\n\t\t\r\n\r\n\tif (Dispenser==4)\r\n\t\t\r\n\t\t{\r\n\t\t\t\r\n//\t\tvar response1 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_01_Direct);\r\n\t\t\t\tif (((RD_LS_03_Direct & 0x04)!=0x04) && (Motor_Dir[4]==2))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\tif (((RD_LS_03_Direct & 0x20)!=0x20) && (Motor_Dir[4]==1))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\treturn 1;\t\t\r\n\t\t}\r\n\t\t\r\n\tif (Dispenser==5)\r\n\t\t\r\n\t\t{\r\n//\t\tvar response2 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_01_Direct);\r\n\t\t\t\tif (((RD_LS_03_Direct & 0x100)!=0x100) && (Motor_Dir[5]==2))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\tif (((RD_LS_03_Direct & 0x800)!=0x800) && (Motor_Dir[5]==1))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\treturn 1;\t\t\r\n\t\t}\r\n\t\t\r\n\r\n\tif (Dispenser==6)\r\n\t\t\r\n\t\t{\r\n\t\t\t\t\r\n\t\t//var response3 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_02_Direct);\r\n\t\t\t\tif (((RD_LS_04_Direct & 0x04)!=0x04) && (Motor_Dir[6]==2))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\tif (((RD_LS_04_Direct & 0x20)!=0x20) && (Motor_Dir[6]==1))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\treturn 1;\t\t\r\n\t\t\t\r\n\t\t}\r\n\t\t\r\n\tif (Dispenser==7)\r\n\t\t\r\n\t\t{\r\n//\t\tvar response4 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_02_Direct);\r\n\t\t\t\tif (((RD_LS_04_Direct & 0x100)!=0x100) && (Motor_Dir[7]==2))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\tif (((RD_LS_04_Direct & 0x800)!=0x800) && (Motor_Dir[7]==1))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\treturn 1;\t\t\r\n\t\t}\r\n\t\t\r\n\t\t\r\n\t\treturn 0;\r\n}\t\t\r\n\t\t\r\n\t \t\r\nInt32 Print_Time() \r\n{\t\r\n\t\tcontext.AppendToFile(Dispenser_Fname,\",Time is\\t,,\"+ DateTime.Now +\"\\n\" ); \r\n\r\n\t\treturn 1;\r\n}\t\r\n\r\n\r\n\r\nInt32 Calc_mBAR(Int32 Dispenser, bool save_press)\r\n{\t\t\r\nInt32 Data;\r\nInt32 Sense1;\r\nInt32 temp=0;\r\n\r\n\t\tData =A2D_Dispenser[Dispenser];\r\n\t\tif (Data<100)\r\n\t\t\ttemp=-1;\r\n\t\tData=Data-710;\r\n\t\tif (Data<0)\r\n\t\tData=0;\r\n\r\n\t\tData=Data*(10000+PressureSensorType*1000)/2840;\t//\tfor -1 to 10 bar Press_Sensor_Type=1 else 0\r\n\t\tData=Data-1000*PressureSensorType; \t\t\t// for -1 to 10 bar\r\n\r\n\t\tif (temp==-1)\t\t\t\t\t\t//if SamplingInBits <100 then No pressure sensor exist\r\n\t\tSense1=-9999\t;\r\n\t\telse\t\r\n\t\tSense1=Data\t;\r\n\t\tif (\t((msec_index) % (Dispenser_sample_rate)) == 0)\r\n\t\t{\r\n\t\t\tcontext.AppendToFile(Dispenser_Fname,\"\" + Sense1+\"\\n\");\r\n\t\t}\r\n\t\tDispenser_press[Dispenser]=Sense1;\r\n\treturn Sense1;\r\n\t\t\t\r\n } \t\r\n\r\n \r\n//--------------------------------\r\nint open_midtank_valve (Int32 valve_type,Int32 valve_nm)\t\t//valve_type=0 is Air ,1 is Ink ; valve_nm 0-7\r\n{\r\n\tSetBit (F3_VALVE_OUT,((valve_type+1)*8)- valve_nm-1, 1);\r\n\treturn 1;\r\n\r\n}\r\n//--------------------------------\t\r\nint close_midtank_valve (Int32 valve_type,Int32 valve_nm)\t\t//valve_type=0 is Air ,1 is Ink ; valve_nm 0-7\r\n{\r\n\tSetBit (F3_VALVE_OUT,((valve_type+1)*8)- valve_nm-1, 0);\r\n\treturn 1;\r\n}\r\n//--------------------------------\r\nInt32 SetBit(Int32 Adr, Int32 BitNo, Int32 Bit)\r\n{\r\n\tInt32 BitMask;\r\n\r\n var response = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" , F3_VALVE_OUT);\r\n\tInt32 RV = (Int32) response.Value & 0xffff;\r\n\t\r\n\t\r\n\tif (Bit == 0x1) \r\n\t{\r\n\t\tBitMask = 0x1 << BitNo;\r\n\t\tRV = RV | BitMask;\r\n\t\tcontext.Send<StubFpgaWriteRegResponse>(\"StubFpgaWriteRegRequest\" ,F3_VALVE_OUT , RV);\r\n\t}\r\n\telse if (Bit == 0x0)\r\n\t{\r\n\t\tBitMask = ~(0x1 << BitNo);\r\n\t\tRV = RV & BitMask;\r\n\t\tcontext.Send<StubFpgaWriteRegResponse>(\"StubFpgaWriteRegRequest\" ,F3_VALVE_OUT , RV);\r\n\t}\r\n\treturn 1;\r\n}\r\n//---------------------------------- \r\n void MotorStop(Int32 i)\r\n{\r\n \r\ncontext.Send<StubMotorStopResponse>(\"StubMotorStopRequest\" ,Dispenser_Motor1+i, 2);\r\nMotor_Dir[i]=0;\t//0 stop 1- up 2-dn\r\n\r\n}\r\n \r\n}","IsEntryPoint":true},{"$id":"4","Name":"Service.csx","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Entities;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}","IsEntryPoint":false}]},"Inputs":{"$id":"5","$values":[]},"Variables":{"$id":"6","$values":[{"$id":"7","Name":null,"Value":null}]},"ReferenceAssemblies":{"$id":"8","$values":[{"$id":"9","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"10","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"11","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"12","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"13","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"14","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"15","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"16","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"17","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"18","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"19","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"Resources":{"$id":"20","$values":[]},"Dialogs":{"$id":"21","$values":[]},"ID":"b5924fbd-808a-41e3-99fb-980cd8df910c","ApartmentState":"STA"}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Priming1.pproj b/Software/Stubs Collection/stubs/Scripts/Priming1.pproj deleted file mode 100644 index 4a7f5fcc3..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Priming1.pproj +++ /dev/null @@ -1 +0,0 @@ -{"$id":"1","Visibility":"Public","Inputs":{"$id":"2","$values":[]},"Variables":{"$id":"3","$values":[]},"Resources":{"$id":"4","$values":[]},"Dialogs":{"$id":"5","$values":[]},"ID":"eb73dbd4-1e1e-4f5d-adc8-5f159edab802","Name":"Priming1","Description":"Used for a dispenser priming","ApartmentState":"STA","ReferenceAssemblies":{"$id":"6","$values":[{"$id":"7","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"8","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"9","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"10","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"11","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"12","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"13","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"14","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"15","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"16","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"17","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"Scripts":{"$id":"18","$values":[{"$id":"19","Name":"Program.csx","IsEntryPoint":true,"Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Entities;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\nusing System.IO;\r\nusing System.Diagnostics;\r\nusing System.Windows.Forms;\r\n\r\n\r\npublic class Program\r\n{\r\n\r\n\r\nprivate IProcedureContext context;\r\n\r\n//---------------------Start Command ----------------\r\nconst Int32\tCMD_RUN\t=\t0;\t\t//Run on Pulse Per Secound .positive run Up and negative run Down b\r\nconst Int32\tCMD_STOP=\t1;\t\t//0;Hard stop(Defualt);1-Soft stop;2-Hard Hiz;3-Soft Hiz\r\nconst Int32\tCMD_VALVE=\t2;\t\t//0-to Midtank ,1-to head \r\nconst Int32\tCMD_DLY\t=\t3;\t\t//delay in Seconds .\r\nconst Int32\tCMD_TIME=\t4;\t\t//Print Time .\r\nconst Int32\tCMD_PRESS=\t5;\t\t//return from Delay loop when pressure is high (on mBAR) .\r\nconst Int32 CMD_LOOP_NM=6;\t\t//NUMBER OF counter\r\nconst Int32 CMD_LOOP=\t7;\t\t//jump up(+) or down(-) command u\r\nconst Int32 CMD_MTV_OPEN =\t8;\t\t//0 Air ; 1 Ink\r\nconst Int32 CMD_MTV_CLOSE=\t9;\t\t//0 Air ; 1 Ink\r\nconst Int32 CMD_LBL=\t10;\t//label for user \r\nconst Int32 CMD_SMP=\t11; //sample rate ,defualt 100msec (1); for 1 second is 10.\r\nconst Int32 CMD_PRESL=\t12; //return from Delay loop when pressure is low (on mBAR) .\r\n\r\nconst Int32\tCMD_END\t=\t13;\t//end loop .\r\n \r\n\r\nInt32[] BuildUp_Table = new int []\r\n{\r\n\tCMD_LOOP_NM,3,\r\n\r\n\tCMD_VALVE,0,\r\n\tCMD_DLY,1, \r\n\tCMD_VALVE,1,\r\n\tCMD_DLY,1, \r\n\tCMD_LOOP,-4,\r\n\r\n\r\n\tCMD_VALVE,1,\r\n\tCMD_PRESL,800,\r\n\tCMD_DLY,60, \r\n\r\n\r\n\tCMD_VALVE,0,\r\n\tCMD_PRESS,1000,\t//mbar --> 1000 = 100% work, 4000 = 200% work, 350 = 20% work\r\n\tCMD_RUN,1068,\r\n\tCMD_DLY,150, \t\t\r\n\tCMD_LBL,1,\r\n\tCMD_PRESS,2000,\t//mbar --> 2000 = 100% work, 4000 = 200% work, 350 = 20% work\r\n\tCMD_DLY,60, \t\t\r\n\tCMD_LBL,2,\r\n\tCMD_PRESS,3000,\r\n\tCMD_DLY,60, // to limit\r\n\tCMD_STOP,0,\r\n\tCMD_VALVE,1,\r\n\tCMD_DLY,1, \r\n\r\n\t\r\n\tCMD_END,3,\r\n};\r\n\t\r\n\r\nInt32[] Up_Table = new int []\r\n{\r\n\tCMD_VALVE,0,\r\n\tCMD_DLY,1, \r\n\tCMD_VALVE,1,\r\n\tCMD_DLY,1, \r\n\tCMD_LOOP,-4,\r\n\r\n\tCMD_VALVE,1,\r\n\tCMD_PRESL,800,\r\n\tCMD_DLY,60, \r\n\t\r\n\tCMD_PRESS,3000,\t//mbar --> 1000 = 100% work, 4000 = 200% work, 350 = 20% work\r\n\tCMD_RUN,534, // 100%\r\n\tCMD_DLY,120,\r\n\tCMD_STOP,0,\r\n\tCMD_END,3,\r\n};\r\nInt32 Dispenser_sample_rate= 1; \r\n\r\n\tstring path = @\"C:\\Dispenser_setup\\Log\\\"; \t\r\n//----------------------\r\nconst UInt32 I2C_ID \t\t\t= \t4;\t\t\t\t\t//MCU_I2C4 \r\nconst UInt32 TCA9548A_address \t=\t0xE2;\t \t\r\nconst UInt32 I2C_Slave_Low_Add \t= \t0xA0;\t\t\t\t//eeprom address - 64k low \r\nconst UInt32 I2C_Slave_High_Add = \t0xA2;\t\t\t\t//eeprom address - 64k High\r\n//----------------------\r\nbyte [] EEPROM_Data = new byte [128];\r\n\r\n\r\n//---------------------End Command ----------------\r\n\r\nconst Int32\tDispenser_Motor1\t=\t6;\t\t \r\nconst Int32\tDispenser_Motor2\t=\t7;\t\t \r\nconst Int32\tDispenser_Motor3\t=\t8;\t\t \r\nconst Int32\tDispenser_Motor4\t=\t9;\t\t \r\nconst Int32\tDispenser_Motor5\t=\t10;\t\t \r\nconst Int32\tDispenser_Motor6\t=\t11;\t\t \r\nconst Int32\tDispenser_Motor7\t=\t12;\t\t \r\nconst Int32\tDispenser_Motor8\t=\t13;\t\t \r\n\r\nconst Int32 AN_IDS_PRESSENS_1\t=\t2;\r\nconst Int32 AN_IDS_PRESSENS_2\t=\t3;\r\nconst Int32 AN_IDS_PRESSENS_3\t=\t4;\r\nconst Int32 AN_IDS_PRESSENS_4\t=\t5;\r\nconst Int32 AN_IDS_PRESSENS_5\t=\t6;\r\nconst Int32 AN_IDS_PRESSENS_6\t=\t7;\r\nconst Int32 AN_IDS_PRESSENS_7\t=\t8;\r\nconst Int32 AN_IDS_PRESSENS_8\t=\t9;\r\n\r\nconst Int32\tF2_LS_01_Direct\t=\t0x60000420\t;\t//\tReads the direct values that are currently being sent to the fpga.\trsv\t\trsv\t\trsv\t\t\t\t\t\trsv\t\t\t\t\t\tF2_LS_DISPENSER_UP_2\tF2_LS_DISPENSER_25_2\tF2_LS_DISPENSER_75_2\tF2_LS_DISPENSER_DOWN_2 \tF2_LS_DISPENSER_50_2\tF2_LS_DISPENSER_SPARE_2\tF2_LS_DISPENSER_UP_1\tF2_LS_DISPENSER_25_1 \tF2_LS_DISPENSER_75_1\tF2_LS_DISPENSER_DOWN_1\tF2_LS_DISPENSER_50_1\tF2_LS_DISPENSER_SPARE_1\t\t\t\r\nconst Int32\tF2_LS_02_Direct\t=\t0x60000430\t;\t//\tReads the direct values that are currently being sent to the fpga.\trsv\t\trsv\t\trsv\t\t\t\t\t\trsv\t\t\t\t\t\tF2_LS_DISPENSER_UP_4\tF2_LS_DISPENSER_25_4\tF2_LS_DISPENSER_75_4\tF2_LS_DISPENSER_DOWN_4\tF2_LS_DISPENSER_50_4\tF2_LS_DISPENSER_SPARE_4\tF2_LS_DISPENSER_UP_3\tF2_LS_DISPENSER_25_3 \tF2_LS_DISPENSER_75_3\tF2_LS_DISPENSER_DOWN_3\tF2_LS_DISPENSER_50_3\tF2_LS_DISPENSER_SPARE_3\t\t\t\r\nconst Int32\tF2_LS_03_Direct\t=\t0x60000440\t;\t//\tReads the direct values that are currently being sent to the fpga.\trsv\t\trsv\t\trsv\t\t\t\t\t\trsv\t\t\t\t\t\tF2_LS_DISPENSER_UP_6 \tF2_LS_DISPENSER_25_6 \tF2_LS_DISPENSER_75_6 \tF2_LS_DISPENSER_DOWN_6\tF2_LS_DISPENSER_50_6\tF2_LS_DISPENSER_SPARE_6\tF2_LS_DISPENSER_UP_5\tF2_LS_DISPENSER_25_5 \tF2_LS_DISPENSER_75_5\tF2_LS_DISPENSER_DOWN_5\tF2_LS_DISPENSER_50_5\tF2_LS_DISPENSER_SPARE_5\t\t\t\r\nconst Int32\tF2_LS_04_Direct =\t0x60000480\t;\t//\tReads the direct values that are currently being sent to the fpga.\trsv\t\trsv\t\trsv\t\t\t\t\t\trsv\t\t\t\t\t\tF2_LS_DISPENSER_UP_8\tF2_LS_DISPENSER_25_8\tF2_LS_DISPENSER_75_8\tF2_LS_DISPENSER_DOWN_8\tF2_LS_DISPENSER_50_8\tF2_LS_DISPENSER_SPARE_8\tF2_LS_DISPENSER_UP_7\tF2_LS_DISPENSER_25_7 \tF2_LS_DISPENSER_75_7\tF2_LS_DISPENSER_DOWN_7\tF2_LS_DISPENSER_50_7\tF2_LS_DISPENSER_SPARE_7\t\t\t\r\n\r\nconst Int32 Dispenser_Valve1\t=\t0;\r\nconst Int32 Dispenser_Valve2\t=\t1;\r\nconst Int32 Dispenser_Valve3\t=\t2;\r\nconst Int32 Dispenser_Valve4\t=\t3;\r\nconst Int32 Dispenser_Valve5\t=\t4;\r\nconst Int32 Dispenser_Valve6\t=\t5;\r\nconst Int32 Dispenser_Valve7\t=\t6;\r\nconst Int32 Dispenser_Valve8\t=\t7;\r\n\r\nconst ushort MinPress_Mbar_Add =0x5c ;\r\nconst ushort MaxPress_Mbar_Add =0x60 ;\r\n\r\nconst Int32 F3_VALVE_OUT\t= 0x600000e2;\t\t\r\n\r\n//string path = \"C:\\\\Dispenser_setup\\\\Log\\\\\"; \r\n\r\n\r\n//Int32[] Start_Table;\r\n\r\nInt32[] Start_Table = new Int32 [10000];\r\n\r\nUInt32 [] Motor_Dir=new UInt32 [8] {0,0,0,0,0,0,0,0};\r\n\r\nstring Dispenser_Fname ;\r\n\r\nInt32 Dispenser_ptr =-1;\r\n\r\nInt32 [] Dispenser_press= new Int32[8]{0,0,0,0,0,0,0,0};\r\nInt32 max_pressure_level = 20000;\r\nInt32 min_pressure_level = -20000;\r\n\t\r\nInt32 [] A2D_Dispenser= new Int32[8]{0,0,0,0,0,0,0,0};\r\nInt32 Loop_cnt= 1;\r\nInt32 Loop_length=1;\r\n\r\nInt32 PressureSensorType= 1;\t\t//1- new -1up +10 . 0-old 0 to +10\r\nInt32\tTemp_Delay=0;\r\n\r\nInt32\tFirst_Delay=0;\r\n\r\n\r\nUInt32 RD_LS_01_Direct;\r\nUInt32 RD_LS_02_Direct;\r\nUInt32 RD_LS_03_Direct;\r\nUInt32 RD_LS_04_Direct;\r\n\r\nlong Lebel1_time;\r\nlong Lebel2_time;\r\nlong End_Time=0;\r\n\r\nlong elapsed_time =0;\r\n\r\nlong time_Table;\r\n\r\nInt32 msec_index=0;\r\n\r\nInt32 MaxPress_Mbar;\r\nInt32 MinPress_Mbar;\r\nstring state;\r\n\r\n\tpublic Int32 OnExecute(IProcedureContext context)\r\n {\r\n\t\tlong Max_PBU;\r\n\t\tInt32 Index=0;\r\n\t\tInt32 speed=0;\r\n\t\tInt32 Dispenser_Nm;\r\n\t\tthis.context = context;\r\n\t\tint Test_Index=0;\r\n \t\t\r\n \r\n\r\n\t\t\r\n\t\tstring box_msg = \"Make sure Mixer Hot \";\r\n\t\tMessageBox.Show(box_msg);\r\n\t\t\r\n\t\tvar response1 = context.RequestUserInputFor<String>(\"Dispenser Number\", \"Enter Dispenser number to make priming (1-8):\");\r\n\t\tcontext.WriteLine(response1);\r\n\t\tDispenser_Nm = Int32.Parse(response1);\r\n\t\t\r\n\t\tcheck_Min_Max_Mbar(Dispenser_Nm);\r\n\t\r\n\t\tif (Dispenser_Nm==8)\r\n\t\t\tMax_PBU=8000;\r\n\t\telse\r\n\t\t\tMax_PBU=6000;\r\n\t\t\t\r\n\t\r\n\tif (!Directory.Exists(path))\r\n\t\t{\r\n\t\t\tDirectory.CreateDirectory(path);\r\n\t\t}\t\r\n\t\t\tcontext.WriteLine(path);\r\n\t\t\t\r\n\tcontext.Send<ProgressResponse>(\"ProgressRequest\" ,0xe0, 1);\r\n\r\n\tDispenser_Fname=path + \"Dispenser_Nm_\" + Dispenser_Nm+\"_\" + DateTime.Now.ToString(\"MM-dd-yy hh-mm\")+ \".csv\" ;\r\n\r\n\tcontext.WriteLine(Dispenser_Fname);\r\n\r\n\tcontext.WriteToFile(Dispenser_Fname,\"Dispenser Nm,\" + Dispenser_Nm + \"\\n\" );\r\n\tcontext.AppendToFile(Dispenser_Fname,\"Pressure,Command,Value,DateTime,Remark\\n\" ); \r\n\t\r\n\tcontext.UpdateProgress(\"Priming\",false,Test_Index,10);\r\n\r\n\tfor(int j=0; j<2;j++)\r\n\t\t{\r\n\t\t\tfor(int i=0; i<4;i++)\r\n\t\t\t{\r\n\t\t\t\tstate=\"PBU No. \"+ (4*j+i+1 );\r\n\t\t\t\tStart_Table=BuildUp_Table;\r\n\t\t\t\tTable_Run(Dispenser_Nm );\r\n\t\t\t\tif (time_Table>300000)\r\n\t\t\t\t{\r\n\t\t\t\t\tcontext.AddResult(ResultType.Failed,\"PBU\", \"PBU No.\"+ (4*j+i+1 ) + \" Fail\");\r\n\t\t\t\t\treturn 0;\r\n\t\t\t\t}\r\n\t\t\t\t context.AddResult(ResultType.Passed,\"PBU\",\"PBU No.\"+ (4*j+i+1 ) + \" Pass\");\r\n \r\n\t\t\tTest_Index++;\r\n \t\t\tcontext.UpdateProgress(\"Priming\",false,Test_Index,10);\r\n\t\t\t\t\t\r\n\t\t\t}\r\n\t\t\tstate=\"Flow No.\"+ (j+1 ) ;\r\n\t\t\tStart_Table=Up_Table;\r\n\t\t\tTable_Run(Dispenser_Nm );\r\n\t\t\tif (time_Table<115000)\r\n\t\t\t\t{\r\n\t\t\t\t\tcontext.WriteLine(\"time_Table= \" +time_Table);\r\n\t\t\t\t\tcontext.AddResult(ResultType.Failed,\"Flow\", \"Flow No.\"+ (j+1) + \" Fail\");\r\n\t\t\t\t\treturn 0;\r\n\t\t\t\t}\r\n\t\t\t\t context.AddResult(ResultType.Passed,\"Flow\",\"Flow No.\"+ (j+1 ) + \" Pass\");\r\n\t\t\t\t \tTest_Index++;\r\n \t\t\t\t\tcontext.UpdateProgress(\"Priming\",false,Test_Index,10);\r\n\t\t\r\n\t\t}\r\n\t\t\t\t state=\"Last PBU \" ;\r\n\t\t\t\t Start_Table=BuildUp_Table;\r\n\t\t\t\tTable_Run(Dispenser_Nm );\r\n\t\t\t\t\tTest_Index++;\r\n \t\t\t\t\tcontext.UpdateProgress(\"Priming\",false,Test_Index,10);\r\n\r\n\t\t\t\tlong Time=Lebel2_time-Lebel1_time;\r\n\t\t\t\tif (Time>Max_PBU)\r\n\t\t\t\t { \r\n\t\t\t\t context.AddResult(ResultType.Failed,\"PBU\", \"PBU = \" +Time + \"msec \");\r\n\t\t\t\t state=\"PBU = \" +Time + \"msec \\tFail\";\r\n\t\t\t\t }\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t context.AddResult(ResultType.Passed,\"PBU\", \"PBU = \" +Time + \"msec \");\r\n\t\t\t\t state=\"PBU = \" +Time + \"msec \\tPass\";\r\n\t\t\t\t}\t\r\n\t\treturn 0;\r\n\t\t\r\n }\r\n\r\n/////////////////////////////////////////////\r\nvoid \t\tcheck_Min_Max_Mbar(Int32 i )\r\n{\r\n\tint k;\r\n\tstring s ;\r\n\ti--;\r\n\r\n\t\t\t\t\tcontext.WriteLine(\"-------------- write Enable Channel ------------\");\t//debug\r\n\t\tenable_channel(i); // Chanel 0-7 => Disp0enser 0-7 \r\n\t\t\t\t\tcontext.WriteLine(\"-------------- Read_header ------------\");\t//debug\r\n\r\n\t\t\t\t\tcontext.WriteLine(\"-------------- write_address_eeprom ------------\");\t//debug\r\n\t\twrite_address_eeprom (I2C_Slave_Low_Add,MinPress_Mbar_Add);\r\n\t\t\t\t\tcontext.WriteLine(\"-------------- read_data_from_eeprom ------------\");\t//debug\r\n\t\tread_data_from_eeprom (I2C_Slave_Low_Add,1);\r\n\t\tif \t(EEPROM_Data[0]==0\t)\r\n\t\t{\tPressureSensorType=0;\r\n\t\t\tcontext.WriteLine(\"PressureSensorType=0\" );\t//debug\r\n\t\t}\r\n\t\telse\t\r\n\t\t{\t\r\n\t\t\tPressureSensorType=1;\t\t\t\t\t\r\n\t\t\tcontext.WriteLine(\"PressureSensorType=1\" );\t//debug\r\n\t\t}\r\n\t\r\n}\t\r\n//----------------write address eeprom -------------------------\r\npublic void write_address_eeprom (UInt32 I2C_Add, UInt32 Eeprom_Add)\r\n{\t\r\n\tStubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();\r\n\tstubI2CWriteBytesRequest.I2CId = I2C_ID;\r\n\tstubI2CWriteBytesRequest.SlaveAddress = I2C_Add;\r\n\t\r\n\tUInt32 uInt32 = new UInt32();\r\n\tstubI2CWriteBytesRequest.BytesTWrite.Add(Convert.ToByte( (Eeprom_Add & 0xff00) >>8));\t//Byte High add to write\r\n\tstubI2CWriteBytesRequest.BytesTWrite.Add(Convert.ToByte(Eeprom_Add & 0xff));\t\t\t//Byte Low add to write\r\n\t\t\t\t\tcontext.WriteLine( (Eeprom_Add & 0xff00) >>8) ;\t//debug\r\n\t\t\t\t\tcontext.WriteLine( Eeprom_Add & 0xff);\t//debug\r\n\r\n\tcontext.Send<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);\t\r\n}\r\n//------------------- read Data from EEprom--------------------------\r\n\r\npublic void read_data_from_eeprom ( UInt32 I2C_Add, UInt32 cnt )\r\n{\r\n\tStubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();\r\n\tstubI2CReadBytesRequest.I2CId = I2C_ID;\r\n\tstubI2CReadBytesRequest.SlaveAddress = (I2C_Add + 1);\r\n\tstubI2CReadBytesRequest.NumberOfBytesToRead = cnt; // Number of bytes to read\r\n\r\n\tvar response1 = context.Send<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);\r\n\r\n\tfor(int i=0; i<cnt;i++)\r\n\t\t{\r\n\t\t\tEEPROM_Data[i]=Convert.ToByte(response1.ReadBytes[i]);\r\n\t\t\tcontext.WriteLine(EEPROM_Data[i] );\t//debug\r\n\r\n\t\t}\t\t\r\n}\t\r\n\r\n\r\n///////////////////////////////////////////////\r\n//----------- enable I2c channel --------------\r\npublic int enable_channel(Int32 Channel_ID) \r\n{\r\n\tuint Const_temp = 0x01;\t\r\n\t\r\n\tStubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();\r\n\tstubI2CWriteBytesRequest.I2CId = I2C_ID;\r\n\tstubI2CWriteBytesRequest.SlaveAddress = TCA9548A_address;\r\n\t\r\n\tConst_temp = Const_temp << Channel_ID;\r\n\tstubI2CWriteBytesRequest.BytesTWrite.Add(Const_temp);//enable i2c channel 0 Dispenser 1\r\n\r\n\tvar response = context.Send<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);\r\n\t\r\n\treturn 1;\r\n}\r\n\r\n\r\n////////////////////////////////////////////////////////////// \r\nInt32 Table_Run(Int32 Dispenser )\r\n\r\n{\r\n\tInt32 COMMAND=0;\r\n\tInt32 Data=0;\r\n\tInt32 count=0;\r\n\t\r\n\tDispenser--;\t\t//check from 0-7\r\n\t\r\n\tint j=0;\r\n\t\tvar stopwatch = new Stopwatch();\r\n\r\n\t\tstopwatch.Start();\r\n\t\r\n\t\t elapsed_time = stopwatch.ElapsedMilliseconds;\r\n\t\tcontext.WriteLine(elapsed_time);\r\n\t\t\r\n\twhile (count!=-1) \r\n\t{\r\n\tmsec_index=msec_index+1;\r\n\t\t\r\n\t\tif (Dispenser<2) \r\n\t\t\t{\r\n\t\t\t\tvar response1 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_01_Direct);\r\n\t\t\t\tRD_LS_01_Direct=response1.Value\t ;\r\n\t\t\t}\r\n\t\telse if ( (Dispenser<4) )\r\n\t\t\t{\r\n\t\t\t\tvar response1 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_02_Direct);\r\n\t\t\t\tRD_LS_02_Direct=response1.Value\t ;\r\n\t\t\t}\r\n\t\telse if ( (Dispenser<6) )\r\n\t\t\t{\r\n\t\t\t\tvar response1 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_03_Direct);\r\n\t\t\t\tRD_LS_03_Direct=response1.Value\t ;\r\n\t\t\t}\r\n\t\telse\r\n\t\t\t{\r\n\t\t\t\tvar response1 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_04_Direct);\r\n\t\t\t\tRD_LS_04_Direct=response1.Value\t ;\r\n\t\t\t}\r\n\t\tif (Dispenser<4) \r\n\t\t\t{\r\n\t\t\tvar response2 = context.Send<StubIntADCReadResponse>(\"StubIntADCReadRequest\" ,0x8000 + AN_IDS_PRESSENS_1);\r\n\t\t\t\tA2D_Dispenser[0]=(response2.SamplingInBits)>>16;\r\n\t\t\t\tA2D_Dispenser[1] =(response2.SamplingInBits) & 0x0000ffff;\r\n\t\t\t\tA2D_Dispenser[2] =(response2.VoltageSamplingMv)>>16;\r\n\t\t\t\tA2D_Dispenser[3] =(response2.VoltageSamplingMv) & 0x0000ffff;\r\n\t\t\t}\r\n\t\telse\r\n\t\t\t{\r\n\t\t\tvar\tresponse3 = context.Send<StubIntADCReadResponse>(\"StubIntADCReadRequest\" ,0x8000 + AN_IDS_PRESSENS_5);\r\n\t\t\t\tA2D_Dispenser[4] =(response3.SamplingInBits)>>16;\r\n\t\t\t\tA2D_Dispenser[5] =(response3.SamplingInBits)& 0x0000ffff;\r\n\t\t\t\tA2D_Dispenser[6] =(response3.VoltageSamplingMv)>>16;\r\n\t\t\t\tA2D_Dispenser[7] =(response3.VoltageSamplingMv)& 0x0000ffff;\r\n\t\t\t}\r\n\t\t\t\t\r\n\t\t\tCOMMAND=Start_Table[count];\r\n\t\t\tData=Start_Table[(count+1)];\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t//Index=Index+2;\r\n\t\t\tswitch (COMMAND)\r\n\t\t\t\t{\r\n\t\t\t\tcase CMD_RUN:\r\n\t\t\t\t\tMotor_Run(Data,Dispenser);\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_VALVE:\r\n\t\t\t\t\tValve_3W(Data,Dispenser);\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_STOP:\r\n\t\t\t\t\tMotor_Stop(Data,Dispenser);\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_DLY:\r\n\t\t\t\t\tDelay_on_second(Data,Dispenser,elapsed_time);\r\n\t\t\t\t\tif (Temp_Delay <1)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmax_pressure_level=20000;\t\r\n\t\t\t\t\t\tmin_pressure_level=-20000;\t\r\n\t\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_TIME:\r\n\t\t\t\t\tPrint_Time();\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_PRESS:\r\n\t\t\t\t\tmax_pressure_level=Data;\r\n\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",Max_pressure_level is, \" + Data +\",\"+DateTime.Now+\"\\n\");\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_PRESL:\r\n\t\t\t\t\tmin_pressure_level=Data;\r\n\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",Min_pressure_level is, \" + Data +\",\"+DateTime.Now+\"\\n\");\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_LBL:\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",Label,\" + Data+\",\"+DateTime.Now+\"\\n\");\r\n\t\t\t\t\tif(Data==1)\r\n\t\t\t\t\t\tLebel1_time=stopwatch.ElapsedMilliseconds;\r\n\t\t\t\t\tif(Data==2)\r\n\t\t\t\t\t\tLebel2_time=stopwatch.ElapsedMilliseconds;\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_SMP:\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",SampleRate,\" + Data+\",\"+DateTime.Now+\"\\n\");\r\n\t\t\t\t\tDispenser_sample_rate =Data;\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_END:\r\n\t\t\t\t\tcount=-1;\r\n\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",End testing,,\"+DateTime.Now+\"\\n\");\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\r\n\t\t\t\tcase CMD_MTV_OPEN:\r\n\t\t\t\t\topen_midtank_valve(Data,Dispenser);\r\n\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",OPEN MIDTANK, \" + Dispenser+\",\"+DateTime.Now+\"\\n\");\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase CMD_MTV_CLOSE:\r\n\t\t\t\t\tclose_midtank_valve(Data,Dispenser);\r\n\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",CLOSE MIDTANK, \" + Dispenser+\",\"+DateTime.Now+\"\\n\");\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\r\n\t\t\t\tcase CMD_LOOP_NM:\r\n\t\t\t\t\r\n\t\t\t\t\tLoop_cnt=Data-1;\r\n\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",Counter Loop,\"+ Data+\",\"+DateTime.Now +\"\\n\");\r\n\t\t\t\t\tcount = count+2;\t\t\t\t\t\t\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase CMD_LOOP:\r\n\t\t\t\t\r\n\t\t\t\t\tif (Loop_cnt!=0)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\"Counter Loop,\"+ Loop_cnt+\",\"+DateTime.Now+\"\\n\" );\r\n\t\t\t\t\t\tcount = count+2*Data;\r\n\t\t\t\t\t\tLoop_cnt--;\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",End loop,,\"+DateTime.Now +\"\\n\");\r\n\t\t\t\t\t\tcount = count+2;\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t}\t\r\n\t\t\t\r\n\t\t\tlong elapsed_time1 = stopwatch.ElapsedMilliseconds;\r\n\t\t\tlong elapsed_time2= elapsed_time1-elapsed_time;\r\n\t\t\tif (elapsed_time2>95)\r\n\t\t\telapsed_time2=95;\t\t//minimum time\r\n\t\t\t\tThread.Sleep(100-(int )(elapsed_time2));\r\n\r\n\t\t\telapsed_time = stopwatch.ElapsedMilliseconds;\t\t\r\n\r\n\r\n\t\t\tj++;\r\n\t\t\t\tif (j==10)\r\n\t\t\t\t{\r\n\t\t\t\t\tj=0;\r\n\t\t\t\t\tcontext.WriteLine(Dispenser_press[Dispenser]+ \" mBar\\t\"+state + \"\\tTime-\" + (elapsed_time/1000));\r\n\t\t\t\t}\r\n\t}\r\n\ttime_Table=elapsed_time;\r\n\treturn 0;\r\n}\r\n\r\n///////////////////////////////////////////////////////////////////\t\r\nInt32 Motor_Run(Int32 speed,Int32 Dispenser)\r\n\r\n{\r\n\r\n\tswitch (Dispenser)\r\n\t\t{\r\n\t\tcase 0:\r\n\t\t\t\tif ( speed<0)\r\n\t\t\t\t{\r\n\t\t\t\t\tMotor_Dir[0]=2;\r\n\t\t\t\t\tif ((RD_LS_01_Direct & 0x04)!=0x04)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor1, false, (-speed));\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\t\r\n\t\t\t\t\tMotor_Dir[0]=1;\r\n\t\t\t\t\tif ((RD_LS_01_Direct & 0x20)!=0x20)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor1, true, (speed));\r\n\t\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase 1:\r\n\t\t\t\tif ( speed<0)\r\n\t\t\t\t{\r\n\t\t\t\t\tMotor_Dir[1]=2;\r\n\t\t\t\t\tif ((RD_LS_01_Direct & 0x100)!=0x100)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor2, false, (-speed));\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\t\r\n\t\t\t\t\tMotor_Dir[1]=1;\r\n\t\t\t\t\tif ((RD_LS_01_Direct & 0x800)!=0x800)\r\n\t\t\t\t\t{\t\t\t\t\t\t\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor2, true, (speed));\r\n\t\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase 2:\r\n\t\t\t\tif ( speed<0)\r\n\t\t\t\t{\r\n\t\t\t\t\tMotor_Dir[2]=2;\r\n\t\t\t\t\tif ((RD_LS_02_Direct & 0x04)!=0x04)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor3, false, (-speed));\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\t\r\n\t\t\t\t\tMotor_Dir[2]=1;\r\n\t\t\t\t\tif ((RD_LS_02_Direct & 0x20)!=0x20)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now+ \",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor3, true, (speed));\r\n\t\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase 3:\r\n\t\t\t\tif ( speed<0)\r\n\t\t\t\t{\r\n\t\t\t\t\tMotor_Dir[3]=2;\r\n\r\n\t\t\t\t\tif ((RD_LS_02_Direct & 0x100)!=0x100)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now+ \",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor4, false, (-speed));\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\t\r\n\t\t\t\t\tMotor_Dir[3]=1;\r\n\r\n\t\t\t\t\tif ((RD_LS_02_Direct & 0x800)!=0x800)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor4, true, (speed));\r\n\t\t\t\t}\r\n\t\t\tbreak;\r\n\t\t\r\n\t\tcase 4:\r\n\t\t\t\tif ( speed<0)\r\n\t\t\t\t{\r\n\t\t\t\t\tMotor_Dir[4]=2;\r\n\t\t\t\t\tif ((RD_LS_03_Direct & 0x04)!=0x04)\r\n\t\t\t\t\t{ \r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now+ \",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor5, false, (-speed));\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\t\r\n\t\t\t\t\tMotor_Dir[4]=1;\r\n\t\t\t\t\tif ((RD_LS_03_Direct & 0x20)!=0x20)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now+ \",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor5, true, (speed));\r\n\t\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase 5:\r\n\t\t\t\tif ( speed<0)\r\n\t\t\t\t{\r\n\t\t\t\t\tMotor_Dir[5]=2;\r\n\t\t\t\t\tif ((RD_LS_03_Direct & 0x100)!=0x100)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor6, false, (-speed));\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\t\r\n\t\t\t\t\tMotor_Dir[5]=1;\r\n\t\t\t\t\tif ((RD_LS_03_Direct & 0x800)!=0x800)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now+ \",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor6, true, (speed));\r\n\t\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase 6:\r\n\t\t\t\tif ( speed<0)\r\n\t\t\t\t{\r\n\t\t\t\t\tMotor_Dir[6]=2;\r\n\t\t\t\t\tif ((RD_LS_04_Direct & 0x04)!=0x04)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor7, false, (-speed));\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\t\r\n\t\t\t\t\tMotor_Dir[6]=1;\r\n\t\t\t\t\tif ((RD_LS_04_Direct & 0x20)!=0x20)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor7, true, (speed));\r\n\t\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase 7:\r\n\t\t\t\tif ( speed<0)\r\n\t\t\t\t{\r\n\t\t\t\t\tMotor_Dir[7]=2;\r\n\r\n\t\t\t\t\tif ((RD_LS_04_Direct & 0x100)!=0x100)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor8, false, (-speed));\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\t\r\n\t\t\t\t\tMotor_Dir[7]=1;\r\n\r\n\t\t\t\t\tif ((RD_LS_04_Direct & 0x800)!=0x800)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor8, true, (speed));\r\n\t\t\t\t}\r\n\t\t\tbreak;\r\n\t\t\t\r\n\t\tdefault:\r\n\t\t\tbreak;\r\n\r\n\t\t}\r\n \tcontext.AppendToFile(Dispenser_Fname,\",Run,\" +speed+\",\"+DateTime.Now +\"\\n\" ); \r\n\r\n\treturn 1;\r\n} \r\n \r\n \t\r\n Int32 Valve_3W(Int32 Valve_Value,Int32 Dispenser)\r\n{\r\n\tif ( Valve_Value==1)\r\n\t\tcontext.Send<StubValveResponse>(\"StubValveRequest\" ,Dispenser_Valve1+Dispenser, 3, true);\t//3 3Way\r\n\telse\t\r\n\t\tcontext.Send<StubValveResponse>(\"StubValveRequest\" ,Dispenser_Valve1+Dispenser, 3, false); //3 3Way\r\n \r\n\tcontext.AppendToFile(Dispenser_Fname,\",Dispenser Valve position is, \" + Valve_Value+\",\"+DateTime.Now +\"\\n\" );\r\n\r\n\treturn 1;\t\r\n}\t\r\n//--------------------------------------- \r\n\r\n Int32 Motor_Stop(Int32 Stop_Value,Int32 Dispenser )\r\n{\r\n\tcontext.Send<StubMotorStopResponse>(\"StubMotorStopRequest\" ,Dispenser_Motor1+Dispenser, Stop_Value);\r\n\t\r\n\tcontext.AppendToFile(Dispenser_Fname,\",Motor Stop,\" + Stop_Value+\",\"+DateTime.Now +\"\\n\");\r\n\tMotor_Dir[Dispenser]=0;\r\n\treturn 1;\t\r\n}\r\n\r\n//--------------------------------------- \r\n\r\n Int32 Delay_on_second(Int32 Delay,Int32 Dispenser ,long time)\r\n{\r\n//Int32 temp1;\r\nInt32 pressure_om_mBAR=0;\r\n\tif \t(Temp_Delay ==0)\r\n\t{\r\n\t\tcontext.AppendToFile(Dispenser_Fname,\",DLY, \" + Delay +\",\"+DateTime.Now+\"\\n\");\r\n\t\tEnd_Time=time+Delay*1000-1;\r\n\r\n\t\tTemp_Delay = 1;\r\n//\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontext.Write(\"A\");\t\t//debug\r\n\t}\r\n\telse\t\r\nif (time>End_Time)\t\r\n\t\t{\t\t\t\t\r\n\t\tTemp_Delay=0;\r\n\t\t}\r\n\t\t\t\r\n\tif ( LimitSW_Dispenser(Dispenser)==0)\r\n \t {\t\r\n \t \tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now+\",Warning Motor on Limit\\n\");\r\n\t\t\tMotorStop(Dispenser);\r\n\t\t\tTemp_Delay =0;\t//end delay\r\n//\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontext.Write(\"C\");\t\t//debug\r\n\r\n\t\t\treturn 0 ;\r\n \t }\r\n\t\t\t\t\t\r\n\tpressure_om_mBAR=Calc_mBAR(Dispenser,true);\r\n \tif (pressure_om_mBAR > max_pressure_level)\r\n \t \t{\r\n\t\t//\tMotorStop(Dispenser);\r\n\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Pressure too high\\n\");\r\n\t\t\tTemp_Delay =0;\t//end delay\r\n//\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontext.Write(\"D\");\t\t//debug\r\n\t\t\t\r\n\t\t\treturn 0;\r\n\t\t}\r\n \tif (pressure_om_mBAR < min_pressure_level)\r\n \t \t{\r\n\t\t//\tMotorStop(Dispenser);\r\n\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Pressure too low\\n\");\r\n\t\t\tTemp_Delay =0;\t//end delay\r\n//\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontext.Write(\"D\");\t\t//debug\r\n\t\t\t\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\t\r\n\t\t\r\n \treturn 1;\r\n}\t\r\n \t \t\r\nInt32 LimitSW_Dispenser(Int32 Dispenser) \r\n{\r\n\r\n\tif (Dispenser==0)\r\n\t\t\r\n\t\t{\r\n\t\t\t\r\n//\t\tvar response1 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_01_Direct);\r\n\r\n\t\t\t\tif (((RD_LS_01_Direct & 0x04)!=0x04) && (Motor_Dir[0]==2))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\tif (((RD_LS_01_Direct & 0x20)!=0x20) && (Motor_Dir[0]==1))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\treturn 1;\t\t\r\n\t\t}\r\n\t\t\r\n\tif (Dispenser==1)\r\n\t\t\r\n\t\t{\r\n//\t\tvar response2 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_01_Direct);\r\n\t\t\t\tif (((RD_LS_01_Direct & 0x100)!=0x100) && (Motor_Dir[1]==2))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\tif (((RD_LS_01_Direct & 0x800)!=0x800) && (Motor_Dir[1]==1))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\treturn 1;\t\t\r\n\t\t}\r\n\t\t\r\n\r\n\tif (Dispenser==2)\r\n\t\t\r\n\t\t{\r\n\t\t\t\t\r\n\t\t//var response3 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_02_Direct);\r\n\t\t\t\tif (((RD_LS_02_Direct & 0x04)!=0x04) && (Motor_Dir[2]==2))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\tif (((RD_LS_02_Direct & 0x20)!=0x20) && (Motor_Dir[2]==1))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\treturn 1;\t\t\r\n\t\t\t\r\n\t\t}\r\n\t\t\r\n\tif (Dispenser==3)\r\n\t\t\r\n\t\t{\r\n\t\t\t\tvar response4 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_02_Direct);\r\n\t\t\t\tif (((RD_LS_02_Direct & 0x100)!=0x100) && (Motor_Dir[3]==2))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\tif (((RD_LS_02_Direct & 0x800)!=0x800) && (Motor_Dir[3]==1))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\treturn 1;\t\t\r\n\t\t}\r\n\t\t\r\n\t\t\r\n\t\t\r\n\r\n\tif (Dispenser==4)\r\n\t\t\r\n\t\t{\r\n\t\t\t\r\n//\t\tvar response1 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_01_Direct);\r\n\t\t\t\tif (((RD_LS_03_Direct & 0x04)!=0x04) && (Motor_Dir[4]==2))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\tif (((RD_LS_03_Direct & 0x20)!=0x20) && (Motor_Dir[4]==1))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\treturn 1;\t\t\r\n\t\t}\r\n\t\t\r\n\tif (Dispenser==5)\r\n\t\t\r\n\t\t{\r\n//\t\tvar response2 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_01_Direct);\r\n\t\t\t\tif (((RD_LS_03_Direct & 0x100)!=0x100) && (Motor_Dir[5]==2))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\tif (((RD_LS_03_Direct & 0x800)!=0x800) && (Motor_Dir[5]==1))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\treturn 1;\t\t\r\n\t\t}\r\n\t\t\r\n\r\n\tif (Dispenser==6)\r\n\t\t\r\n\t\t{\r\n\t\t\t\t\r\n\t\t//var response3 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_02_Direct);\r\n\t\t\t\tif (((RD_LS_04_Direct & 0x04)!=0x04) && (Motor_Dir[6]==2))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\tif (((RD_LS_04_Direct & 0x20)!=0x20) && (Motor_Dir[6]==1))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\treturn 1;\t\t\r\n\t\t\t\r\n\t\t}\r\n\t\t\r\n\tif (Dispenser==7)\r\n\t\t\r\n\t\t{\r\n//\t\tvar response4 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_02_Direct);\r\n\t\t\t\tif (((RD_LS_04_Direct & 0x100)!=0x100) && (Motor_Dir[7]==2))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\tif (((RD_LS_04_Direct & 0x800)!=0x800) && (Motor_Dir[7]==1))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\treturn 1;\t\t\r\n\t\t}\r\n\t\t\r\n\t\t\r\n\t\treturn 0;\r\n}\t\t\r\n\t\t\r\n\t \t\r\nInt32 Print_Time() \r\n{\t\r\n\t\tcontext.AppendToFile(Dispenser_Fname,\",Time is\\t,,\"+ DateTime.Now +\"\\n\" ); \r\n\r\n\t\treturn 1;\r\n}\t\r\n\r\n\r\n\r\nInt32 Calc_mBAR(Int32 Dispenser, bool save_press)\r\n{\t\t\r\nInt32 Data;\r\nInt32 Sense1;\r\nInt32 temp=0;\r\n\r\n\t\tData =A2D_Dispenser[Dispenser];\r\n\t\tif (Data<100)\r\n\t\t\ttemp=-1;\r\n\t\tData=Data-710;\r\n\t\tif (Data<0)\r\n\t\tData=0;\r\n\r\n\t\tData=Data*(10000+PressureSensorType*1000)/2840;\t//\tfor -1 to 10 bar Press_Sensor_Type=1 else 0\r\n\t\tData=Data-1000*PressureSensorType; \t\t\t// for -1 to 10 bar\r\n\r\n\t\tif (temp==-1)\t\t\t\t\t\t//if SamplingInBits <100 then No pressure sensor exist\r\n\t\tSense1=-9999\t;\r\n\t\telse\t\r\n\t\tSense1=Data\t;\r\n\t\tif (\t((msec_index) % (Dispenser_sample_rate)) == 0)\r\n\t\t{\r\n\t\t\tcontext.AppendToFile(Dispenser_Fname,\"\" + Sense1+\",,,\"+ DateTime.Now+\"\\n\");\r\n\t\t}\r\n\t\tDispenser_press[Dispenser]=Sense1;\r\n\treturn Sense1;\r\n\t\t\t\r\n } \t\r\n\r\n \r\n//--------------------------------\r\nint open_midtank_valve (Int32 valve_type,Int32 valve_nm)\t\t//valve_type=0 is Air ,1 is Ink ; valve_nm 0-7\r\n{\r\n\tSetBit (F3_VALVE_OUT,((valve_type+1)*8)- valve_nm-1, 1);\r\n\treturn 1;\r\n\r\n}\r\n//--------------------------------\t\r\nint close_midtank_valve (Int32 valve_type,Int32 valve_nm)\t\t//valve_type=0 is Air ,1 is Ink ; valve_nm 0-7\r\n{\r\n\tSetBit (F3_VALVE_OUT,((valve_type+1)*8)- valve_nm-1, 0);\r\n\treturn 1;\r\n}\r\n//--------------------------------\r\nInt32 SetBit(Int32 Adr, Int32 BitNo, Int32 Bit)\r\n{\r\n\tInt32 BitMask;\r\n\r\n var response = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" , F3_VALVE_OUT);\r\n\tInt32 RV = (Int32) response.Value & 0xffff;\r\n\t\r\n\t\r\n\tif (Bit == 0x1) \r\n\t{\r\n\t\tBitMask = 0x1 << BitNo;\r\n\t\tRV = RV | BitMask;\r\n\t\tcontext.Send<StubFpgaWriteRegResponse>(\"StubFpgaWriteRegRequest\" ,F3_VALVE_OUT , RV);\r\n\t}\r\n\telse if (Bit == 0x0)\r\n\t{\r\n\t\tBitMask = ~(0x1 << BitNo);\r\n\t\tRV = RV & BitMask;\r\n\t\tcontext.Send<StubFpgaWriteRegResponse>(\"StubFpgaWriteRegRequest\" ,F3_VALVE_OUT , RV);\r\n\t}\r\n\treturn 1;\r\n}\r\n//---------------------------------- \r\n void MotorStop(Int32 i)\r\n{\r\n \r\ncontext.Send<StubMotorStopResponse>(\"StubMotorStopRequest\" ,Dispenser_Motor1+i, 2);\r\nMotor_Dir[i]=0;\t//0 stop 1- up 2-dn\r\n\r\n}\r\n \r\n}"},{"$id":"20","Name":"Service.csx","IsEntryPoint":false,"Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Entities;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}"}]}}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Read Dancer new.cs b/Software/Stubs Collection/stubs/Scripts/Read Dancer new.cs deleted file mode 100644 index 9d1572291..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Read Dancer new.cs +++ /dev/null @@ -1,138 +0,0 @@ -//------------------------------------------- -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.Stubs; -using Tango.Stubs; - -//include "..\..\Defines\Tango_Defines_Basic.cs" -//include "..\Defines\Tango_Defines_Motors.cs" - - //-------------------------------------------------------------------------------- - -//-------------------------------------------------------------------------------- -Int32 last_14bit_position; -Int32 position_32bit; - - -public void OnExecute(StubManager stubManager) -{ - - -//Create form - Form form1 = new Form(); - -//-------------------------------------------------------------------------------- - -// Create buttons to use as the accept and cancel buttons. - Button button1 = new Button () - { - Width = 100, - Height = 100, - }; - - Button button2 = new Button () - { - Width = 100, - Height = 100, - }; - Button button3 = new Button () - { - Width = 100, - Height = 100, - }; -//-------------------------------------------------------------------------------- -// Set the text of button - - button1.Text = "Left Dancer"; - button2.Text = "Center Dancer"; - button3.Text = "Right Dancer"; - -//-------------------------------------------------------------------------------- -// Set the position of the button on the form. - - button1.Location = new Point (40, 40); - - button2.Location - = new Point (button1.Left + button1.Width + 10, 40); - - button3.Location - = new Point (button2.Left + button2.Width + 10, 40); - -//-------------------------------------------------------------------------------- - // Add button to the form. - - form1.Controls.Add(button1); - - form1.Controls.Add(button2); - - form1.Controls.Add(button3); - -//-------------------------------------------------------------------------------- - -// Set the caption bar text of the form. - - form1.Text = "Read Dancer"; - -//-------------------------------------------------------------------------------- - - // Define the border style of the form to a dialog box. - - form1.FormBorderStyle = FormBorderStyle.FixedDialog; - - // Set the MaximizeBox to false to remove the maximize box. - - form1.MaximizeBox = false; - - // Set the MinimizeBox to false to remove the minimize box. - - form1.MinimizeBox = false; - - // Set the start position of the form to the center of the screen. - - form1.StartPosition = FormStartPosition.CenterScreen; - - - form1.AutoSize = true; - form1.AutoSizeMode = AutoSizeMode.GrowAndShrink; -//----------------------------------------- - button1.Click += (_,__) => - { - stubManager.Run<StubDancerPositionResponse>("StubDancerPositionRequest" ,0); - Thread.Sleep(1000); - }; -//----------------------------------------- - button2.Click += (_,__) => - - { - stubManager.Run<StubDancerPositionResponse>("StubDancerPositionRequest" ,1); - Thread.Sleep(1000); - - }; -//----------------------------------------- - - button3.Click += (_,__) => - { - stubManager.Run<StubDancerPositionResponse>("StubDancerPositionRequest" ,2); - Thread.Sleep(1000); - }; - -//-------------------------------------------------------------------------------- - -// Display the form as a modal dialog box. - form1.ShowDialog(); - - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,5, 3); - - - return; -} - - - diff --git a/Software/Stubs Collection/stubs/Scripts/Read Dancer.cs b/Software/Stubs Collection/stubs/Scripts/Read Dancer.cs deleted file mode 100644 index 8fcfc94b0..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Read Dancer.cs +++ /dev/null @@ -1,32 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - var response1 = stubManager.ShowResponseWindow("Please Enter Password:"); - if (response1=="Aa123456") - { - stubManager.WriteLine(response1); - - - stubManager.RequestTimeout = 2000; - //for (int i = 0; i < 100; i++) - { - var response = stubManager.Run<StubDancerPositionResponse>("StubDancerPositionRequest" ,0); - Thread.Sleep(1000); - response = stubManager.Run<StubDancerPositionResponse>("StubDancerPositionRequest" ,1); - Thread.Sleep(1000); - response = stubManager.Run<StubDancerPositionResponse>("StubDancerPositionRequest" ,2); - Thread.Sleep(1000); - } - } -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Read Dispensers Serial Num.cs b/Software/Stubs Collection/stubs/Scripts/Read Dispensers Serial Num.cs deleted file mode 100644 index 934371725..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Read Dispensers Serial Num.cs +++ /dev/null @@ -1,27 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - uint i; - string serialnum; - - StubDispenserEEpromRequest dispenserEEpromRequest = new StubDispenserEEpromRequest(); - for (i = 0; i<8;i++) - { - dispenserEEpromRequest.DispenserId = i; - dispenserEEpromRequest.BurnRequest = false; - var response = stubManager.Run<StubDispenserEEpromResponse>(dispenserEEpromRequest); - stubManager.Write("Dispenser Serial # read \t"+ (i+1) + " serial number "+ response.DispenserEEprom.DispenserSN +"\n"); - } - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Read_Version.cs b/Software/Stubs Collection/stubs/Scripts/Read_Version.cs index b3e3e2c1f..3bc9eb929 100644 --- a/Software/Stubs Collection/stubs/Scripts/Read_Version.cs +++ b/Software/Stubs Collection/stubs/Scripts/Read_Version.cs @@ -53,6 +53,7 @@ public void OnExecute(StubManager stubManager) stubManager.Write("\n"); + var response_swid = stubManager.Run<StubReadEmbeddedVersionResponse>("StubReadEmbeddedVersionRequest" , true); stubManager.Write("\nTIVA MCU SW Version (Major, Minor, Patch, Build, Version String): ("); stubManager.WriteHex(response_swid.VerMajor,4); @@ -85,7 +86,21 @@ public void OnExecute(StubManager stubManager) //ReadFPGATestReg(FPGA3); stubManager.Write("\n"); - + +var response1 = stubManager.Run<StubReadEmbeddedVersionResponse>("StubReadEmbeddedVersionRequest" ); + + stubManager.Write("\nCPU Version: "); + stubManager.Write("\nVerMajor:"); + stubManager.Write(response1.VerMajor); + stubManager.Write("\nVerMinor:"); + stubManager.Write(response1.VerMinor); + stubManager.Write("\nVerMinor:"); + stubManager.Write(response1.VerPatch); + stubManager.Write("\nVerPatch:"); + stubManager.Write(response1.VerBuild); + stubManager.Write("\nVerBuild:"); + stubManager.Write(response1.Version); + } /* Example Script Output diff --git a/Software/Stubs Collection/stubs/Scripts/SS Head Sensor board.cs b/Software/Stubs Collection/stubs/Scripts/SS Head Sensor board.cs deleted file mode 100644 index 102029cf2..000000000 --- a/Software/Stubs Collection/stubs/Scripts/SS Head Sensor board.cs +++ /dev/null @@ -1,22 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -// Request ---- -// Int32 : Amount -// Int32 : Delay - -// Response ---- -// Double : Progress -var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xb10, 0x01);//S.S Head Sensor board -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Set cleaning sequence.cs b/Software/Stubs Collection/stubs/Scripts/Set cleaning sequence.cs deleted file mode 100644 index 6f5357535..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Set cleaning sequence.cs +++ /dev/null @@ -1,23 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - - -ProgressRequest progressRequest = new ProgressRequest(); -progressRequest.Amount = 0xAD7; -progressRequest.Delay = 1; // 1 - active, 0 - disabled - -var response = stubManager.Run<ProgressResponse>(progressRequest); - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Set loading arm center.cs b/Software/Stubs Collection/stubs/Scripts/Set loading arm center.cs deleted file mode 100644 index bb502309e..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Set loading arm center.cs +++ /dev/null @@ -1,22 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - - -ProgressRequest progressRequest = new ProgressRequest(); -progressRequest.Amount = 0xB1; - -var response = stubManager.Run<ProgressResponse>(progressRequest); - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Tango_Main_PCB_ATP_sn_xxxxxxx.xlsx b/Software/Stubs Collection/stubs/Scripts/Tango_Main_PCB_ATP_sn_xxxxxxx.xlsx Binary files differdeleted file mode 100644 index 57fd92df9..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Tango_Main_PCB_ATP_sn_xxxxxxx.xlsx +++ /dev/null diff --git a/Software/Stubs Collection/stubs/Scripts/TestForVika.cs b/Software/Stubs Collection/stubs/Scripts/TestForVika.cs deleted file mode 100644 index 7861bae7a..000000000 --- a/Software/Stubs Collection/stubs/Scripts/TestForVika.cs +++ /dev/null @@ -1,126 +0,0 @@ -using System; -using System.Text; -using System.IO; -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.Stubs; -using Tango.Stubs; - - bool i = true; -//-------------------------------------------------------------------------------- - -public void OnExecute(StubManager stubManager) -{ - Form form1 = new Form(); -// Set the caption bar text of the form. - form1.TopMost = true; - form1.Text = "RTFU Test"; - form1.FormBorderStyle = FormBorderStyle.FixedDialog; - form1.MaximizeBox = false; - form1.MinimizeBox = false; - form1.StartPosition = FormStartPosition.CenterScreen; - form1.AutoSize = true; - form1.AutoSizeMode = AutoSizeMode.GrowAndShrink; -// Create buttons to Run. - Button button1 = new Button () - { - Width = 100, - Height = 100, - }; - button1.Text = "Run"; - button1.Location = new Point (40, 100); - form1.Controls.Add(button1); -//-----RTFU Serial Number ----------- - - Label Label1 = new Label () - { - Width = 150, - Height = 20, - Text =" RTFU S/N" - }; - Label1.Location = new Point (30, 10); - form1.Controls.Add(Label1); - TextBox TextBox1 = new TextBox () - { - Width = 100, - Height = 10, - Text ="" - }; - TextBox1.Location = new Point (40, 40); - form1.Controls.Add(TextBox1); - //----------LOCATION---------- - - Label Label3 = new Label () - { - Width = 150, - Height = 20, - Text ="LOCATION" - }; -Label3.Location = new Point (350, 10); - form1.Controls.Add(Label3); - - - -TextBox TextBox3 = new TextBox () - { - Width = 100, - Height = 10, - Text ="" - }; -TextBox3.Location = new Point (360, 40); - form1.Controls.Add(TextBox3); - - - - - Label Label5 = new Label () - { - Width = 120, - Height =100, - Text = "" - }; - Label5.Location = new Point (300, 100); - Label5.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; - - Label5.Text=""; - Label5.Font = new Font("Arial", 24,FontStyle.Bold); - form1.Controls.Add(Label5); - - - - -//-------------------------------------------------------------------------------- - - - button1.Click += (_,__) => - - { - - - Label5.Text="Pros"; ///???? not working - - - - -//------------------------------- start test ----------- - Thread.Sleep(5000); //delay 10 second - -if (i==true) - Label5.Text="Fail"; -else - Label5.Text="Pass"; - - i= !i; - TextBox1.Text=""; - }; - - form1.ShowDialog(); - - return ; - } - diff --git a/Software/Stubs Collection/stubs/Scripts/Twine_Tango_Main_Test12.docx b/Software/Stubs Collection/stubs/Scripts/Twine_Tango_Main_Test12.docx Binary files differdeleted file mode 100644 index f82f59d00..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Twine_Tango_Main_Test12.docx +++ /dev/null diff --git a/Software/Stubs Collection/stubs/Scripts/Twine_Tango_Main_Test13.docx b/Software/Stubs Collection/stubs/Scripts/Twine_Tango_Main_Test13.docx Binary files differdeleted file mode 100644 index d56728507..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Twine_Tango_Main_Test13.docx +++ /dev/null diff --git a/Software/Stubs Collection/stubs/Scripts/WHS_Test_EEPROM.cs b/Software/Stubs Collection/stubs/Scripts/WHS_Test_EEPROM.cs deleted file mode 100644 index 88de4de01..000000000 --- a/Software/Stubs Collection/stubs/Scripts/WHS_Test_EEPROM.cs +++ /dev/null @@ -1,135 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -//---------------------- -const Int32 I2C_ID = 3; //MCU_I2C3 -const Int32 TCA9548A_address = 0xE2; -const Int32 I2C_Slave_Add = 0xA0; // //eeprom address - 32kByte -int Head_Mux_Channel_ID = 0; //WHS MUX channel -//---------------------- - - -int enable_channel(int Channel_ID) -{ - uint Const_temp = 0x01; - - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = TCA9548A_address; - - Const_temp = Const_temp << Channel_ID; - stubI2CWriteBytesRequest.BytesTWrite.Add(Const_temp); - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; -} - - -int adc_write(uint I2C_Slave_Add, uint Page) -{ - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write - //-------------------------------------------------------------- - - stubI2CWriteBytesRequest.BytesTWrite.Add(0x12 + Page);//Data 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(0x34 + Page);//Data 1 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(0x56 + Page);//Data 2 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(0x78 + Page);//Data 3 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(0x90 + Page);//Data 4 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(0xAB + Page);//Data 5 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(0xCD + Page);//Data 6 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(0xEF + Page);//Data 7 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(0x01 + Page);//Data 8 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(0x02 + Page);//Data 9 to write - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; -} - -int adc_set_for_read_ch(uint I2C_Slave_Add, uint Page) -{ - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; -} - -int adc_read_ch(uint I2C_Slave_Add) -{ - StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest(); - stubI2CReadBytesRequest.I2CId = I2C_ID; - stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add + 1; - stubI2CReadBytesRequest.NumberOfBytesToRead = 10; // Number of bytes to read - - var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest); - uint temph=0; - - for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++) - { - temph=response1.ReadBytes[i]; - stubManager.WriteHex(temph,2); - } - - return 1; -} - - -public void OnExecute(StubManager stubManager) -{ - - //enable_all_channel(); - enable_channel(Head_Mux_Channel_ID); // Chanel 0-7 => Disp0enser 0-7 - - for (int i = 0; i<1; i++) - { - - adc_write(I2C_Slave_Add,0x10); - Thread.Sleep(10); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet ) - - adc_write(I2C_Slave_Add,0x00); - Thread.Sleep(10); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet ) - - stubManager.Write("\nPage 0x10 #"); - stubManager.Write(i); - stubManager.Write("\t- The Buffer is: "); - adc_set_for_read_ch(I2C_Slave_Add,0x10); - //Thread.Sleep(1); //Sleep for 10 milli. - adc_read_ch(I2C_Slave_Add); - - Thread.Sleep(10); - - stubManager.Write("\nPage 0x00 #"); - stubManager.Write(i); - stubManager.Write("\t- The Buffer is: "); - adc_set_for_read_ch(I2C_Slave_Add, 0x00); - //Thread.Sleep(1); //Sleep for 10 milli. - adc_read_ch(I2C_Slave_Add); - - Thread.Sleep(1000); - - } -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/WHS_waste_Tank_Calibration_Save_V0.pproj b/Software/Stubs Collection/stubs/Scripts/WHS_waste_Tank_Calibration_Save_V0.pproj deleted file mode 100644 index 5932b58a0..000000000 --- a/Software/Stubs Collection/stubs/Scripts/WHS_waste_Tank_Calibration_Save_V0.pproj +++ /dev/null @@ -1 +0,0 @@ -{"$id":"1","Name":"untitled","Description":null,"Scripts":{"$id":"2","$values":[{"$id":"3","Name":"Program.csx","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Entities;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\n\r\npublic class Program\r\n{\r\n\tdouble V0_default_ml = 8.7433;\r\n\r\n public void OnExecute(IProcedureContext context)\r\n {\r\n \r\n\tvar response1 = context.RequestUserInputFor<String>(\"Warning - you are going to change the value of Vo in the eeprom !!!\\nPlease Enter Password to confirme:\",\"\");\r\n\tif (response1==\"Aa123456\")\r\n\t{\r\n\t\tcontext.WriteLine(response1);\r\n\t\t\r\n\t\t//Write_0_Vo_in_ml_to_eeprom\r\n\t\tcontext.WriteLine(\"\\nWrite_0_Vo_in_ml_to_eeprom\");\t\r\n\t\tStubWhsEEpromRequest stubWhsEEpromRequest = new StubWhsEEpromRequest();\r\n\t\tstubWhsEEpromRequest.BurnRequest = true; //write\r\n\t\tStubWhsEEpromData stubWhsEEpromData = new StubWhsEEpromData();\r\n\t\tstubWhsEEpromData.Orifice1Flow = 0;\r\n\t\tstubWhsEEpromRequest.WhsEEprom = stubWhsEEpromData;\r\n\t\tvar response = context.Send<StubWhsEEpromResponse>(stubWhsEEpromRequest);\r\n\t\t\t\t\r\n\t\t//wait_10mSec\r\n\t\tcontext.WriteLine(\"\\nwait_10mSec\");\t\r\n\t\tThread.Sleep(100); //Sleep for 10 milli.\r\n\t\t\r\n\t\t//Read_Vo_in_ml_from_eeprom\t& verify it is 0\r\n\t\tcontext.WriteLine(\"\\nRead_Vo_in_ml_from_eeprom\t& verify it is 0\");\r\n\t\tstubWhsEEpromRequest.BurnRequest = false; //write\r\n\t\tstubWhsEEpromRequest.WhsEEprom = stubWhsEEpromData;\r\n\t\tvar response2 = context.Send<StubWhsEEpromResponse>(stubWhsEEpromRequest);\r\n\t\t\r\n\t\t//Read_Vo_in_mV\r\n\t\tcontext.WriteLine(\"\\nRead_Vo_in_mV\");\r\n\t\tvar response3 = context.Send<ProgressResponse>(\"ProgressRequest\" ,0x3EC, 0x01);\r\n\t\t//Print_Vo_in_mV\r\n\t\tcontext.WriteLine(response3.Progress);\r\n\t\t\r\n\t\t//check validity\r\n\t\tcontext.WriteLine(\"\\ncheck validity\");\r\n\t\t if((response3.Progress <= 800) || (response3.Progress >=1200))\r\n\t\t {\r\n\t\t \tresponse3.Progress = 1076; //default\r\n\t\t \tcontext.Write(\"\\nERROR ------ Vreading value outside the defined range !!! ------\");\r\n\t\t \t context.AddResult(ResultType.Failed , \"Error\", \"ERROR ------ Vreading value outside the defined range !!! ------\");\r\n\t\t }\r\n\t\telse\r\n\t\t{\t\t\t\r\n\t\t\t//calculate_V0_in_ml\r\n\t\t\tcontext.WriteLine(\"\\ncalculate_V0_in_ml\");\r\n\t\t\tV0_default_ml = V0_default_ml * response3.Progress;\r\n\t\t\t\r\n\t\t\t//print_Vo_in_ml\r\n\t\t\tcontext.WriteLine(\"\\nprint_Vo_in_ml\");\r\n\t\t\tcontext.WriteLine(V0_default_ml);\r\n\t\t\tcontext.WriteLine(\"\");\r\n\t\t\t\r\n\t\t\t//Write_Vo_in_ml_to_eeprom\r\n\t\t\tcontext.WriteLine(\"\\nWrite_Vo_in_ml_to_eeprom\");\r\n\t\t\tstubWhsEEpromRequest.BurnRequest = true; //write\r\n\t\r\n\t\t\tstubWhsEEpromData.Orifice1Flow = V0_default_ml;\r\n\t\t\tstubWhsEEpromRequest.WhsEEprom = stubWhsEEpromData;\r\n\t\t\tvar response4 = context.Send<StubWhsEEpromResponse>(stubWhsEEpromRequest);\r\n\t\t\t\t\r\n\t\t\t//wait_10mSec\r\n\t\t\tcontext.WriteLine(\"\\nwait_10mSec\");\t\r\n\t\t\t Thread.Sleep(100); //Sleep for 10 milli.\r\n\t\t\t \t\t\r\n\t\t\t //Read_Vo_in_ml_from_eeprom\r\n\t\t\tcontext.WriteLine(\"\\nRead_Vo_in_ml_from_eeprom\");\r\n\t\t\tstubWhsEEpromRequest.BurnRequest = false; //write\r\n\t\t\tstubWhsEEpromRequest.WhsEEprom = stubWhsEEpromData;\r\n\t\t\tvar response5 = context.Send<StubWhsEEpromResponse>(stubWhsEEpromRequest);\r\n\t\t\t\r\n\t\t\t//Check if we read the correct value\r\n\t\t\tcontext.WriteLine(\"\\nVerify that we read the correct value of Orifice1Flow!!\");\r\n\t\t\t context.AddResult(ResultType.Passed , \"Pass\", \"Calibration Pass.\");\r\n\r\n\t\t\t}\r\n\t}\r\n\t\telse\r\n \t{\r\n\t\t\tcontext.AddResult(ResultType.Failed , \"Error\", \"Password Fail.\");\r\n\t\t}\r\n\t\tcontext.WriteLine(\"\\n -- END OF SCRIPT -- \");\r\n }\r\n}\r\n\r\n\r\n","IsEntryPoint":true},{"$id":"4","Name":"Service.csx","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Entities;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}","IsEntryPoint":false}]},"Inputs":{"$id":"5","$values":[]},"Variables":{"$id":"6","$values":[]},"ReferenceAssemblies":{"$id":"7","$values":[{"$id":"8","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"9","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"10","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"11","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"12","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"13","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"14","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"15","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"16","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"17","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"18","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"Resources":{"$id":"19","$values":[]},"Dialogs":{"$id":"20","$values":[]},"ID":"605a2ef0-71a6-450d-92f7-9b6d22850ad1","ApartmentState":"STA"}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/blower_Q.cs b/Software/Stubs Collection/stubs/Scripts/blower_Q.cs deleted file mode 100644 index f6b595873..000000000 --- a/Software/Stubs Collection/stubs/Scripts/blower_Q.cs +++ /dev/null @@ -1,29 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -// Request ---- -// Int32 : Amount -// Int32 : Delay - -// Response ---- -// Double : Progress -//stop loop -/*var response1 =*/ stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan1*/0x3E8, /*Head_Q=*/2500); // - -//enable loop -/*var response1 =*/ stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan1*/0x3E7, /*Head_Q=*/5); // -//500=1F4 -//250=FA - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/change sublimation time.cs b/Software/Stubs Collection/stubs/Scripts/change sublimation time.cs deleted file mode 100644 index 3292a3b7e..000000000 --- a/Software/Stubs Collection/stubs/Scripts/change sublimation time.cs +++ /dev/null @@ -1,23 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - -int SublimationDuration = 30; -ProgressRequest progressRequest = new ProgressRequest(); -progressRequest.Amount = 0xB26; -progressRequest.Delay = SublimationDuration; - - var response = stubManager.Run<ProgressResponse>(progressRequest); - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/check_kval_load_arm.cs b/Software/Stubs Collection/stubs/Scripts/check_kval_load_arm.cs deleted file mode 100644 index 8276ad449..000000000 --- a/Software/Stubs Collection/stubs/Scripts/check_kval_load_arm.cs +++ /dev/null @@ -1,80 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -const Int32 x_KVAL_HOLD = 0x09; -const Int32 x_KVAL_RUN = 0x0A; -const Int32 x_KVAL_ACC = 0x0B; -const Int32 x_KVAL_DEC = 0x0C; - -const Int32 x_GET_PARAM = 0x20; - - - -public void OnExecute(StubManager stubManager) -{ - - while (true) - { - stubManager.Write("\nLeft Load KVAL \t"); - var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,19, (x_GET_PARAM | x_KVAL_HOLD)<<8, 0, 0); - stubManager.Write(response.RecivedData); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,19, (x_GET_PARAM | x_KVAL_RUN)<<8, 0, 0); - stubManager.Write(response.RecivedData); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,19, (x_GET_PARAM | x_KVAL_ACC)<<8, 0, 0); - stubManager.Write(response.RecivedData); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,19, (x_GET_PARAM | x_KVAL_DEC)<<8, 0, 0); - stubManager.Write(response.RecivedData); - stubManager.Write("\n"); - - - stubManager.Write("Right Load KVAL \t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,24, (x_GET_PARAM | x_KVAL_HOLD)<<8, 0, 0); - stubManager.Write(response.RecivedData); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,24, (x_GET_PARAM | x_KVAL_RUN)<<8, 0, 0); - stubManager.Write(response.RecivedData); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,24, (x_GET_PARAM | x_KVAL_ACC)<<8, 0, 0); - stubManager.Write(response.RecivedData); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,24, (x_GET_PARAM | x_KVAL_DEC)<<8, 0, 0); - stubManager.Write(response.RecivedData); - stubManager.Write("\n"); - stubManager.Write(DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")); - Thread.Sleep(1000); - - - - - - -} - - - - - - - - - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/config head type to hed card eeprom.cs b/Software/Stubs Collection/stubs/Scripts/config head type to hed card eeprom.cs deleted file mode 100644 index fd0f7fcf7..000000000 --- a/Software/Stubs Collection/stubs/Scripts/config head type to hed card eeprom.cs +++ /dev/null @@ -1,118 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -//---------------------- -const Int32 I2C_ID = 3; //MCU_I2C3 -const Int32 TCA9548A_address = 0xE2; -const Int32 I2C_Slave_Add = 0xA0; // //eeprom address - 32kByte -int Head_Mux_Channel_ID = 4; //Head MUX channel -//---------------------- - -const Int32 SerialNum = 0x01; - - -int enable_channel(int Channel_ID) -{ - uint Const_temp = 0x01; - - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = TCA9548A_address; - - Const_temp = Const_temp << Channel_ID; - stubI2CWriteBytesRequest.BytesTWrite.Add(Const_temp); - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; -} - - -int adc_write(uint I2C_Slave_Add, uint Page) -{ - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write - //-------------------------------------------------------------- - - stubI2CWriteBytesRequest.BytesTWrite.Add(SerialNum);//S/N - //stubI2CWriteBytesRequest.BytesTWrite.Add(0x03);//HEAD_TYPE_FLAT - stubI2CWriteBytesRequest.BytesTWrite.Add(0x04);//HEAD_TYPE_ARC - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; -} - -int adc_set_for_read_ch(uint I2C_Slave_Add, uint Page) -{ - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; -} - -int adc_read_ch(uint I2C_Slave_Add) -{ - StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest(); - stubI2CReadBytesRequest.I2CId = I2C_ID; - stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add + 1; - stubI2CReadBytesRequest.NumberOfBytesToRead = 10; // Number of bytes to read - - var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest); - uint temph=0; - - for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++) - { - temph=response1.ReadBytes[i]; - stubManager.WriteHex(temph,2); - } - - return 1; -} - - -public void OnExecute(StubManager stubManager) -{ - - //enable_all_channel(); - enable_channel(Head_Mux_Channel_ID); // Chanel 0-7 => Disp0enser 0-7 - - for (int i = 0; i<1; i++) - { - - adc_write(I2C_Slave_Add,0x00); - Thread.Sleep(10); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet ) - - stubManager.Write("\nPage 0x00 #"); - stubManager.Write(i); - stubManager.Write("\t- The Buffer is: "); - adc_set_for_read_ch(I2C_Slave_Add, 0x00); - //Thread.Sleep(1); //Sleep for 10 milli. - adc_read_ch(I2C_Slave_Add); - - Thread.Sleep(1000); - - } -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/eepromati2.c b/Software/Stubs Collection/stubs/Scripts/eepromati2.c deleted file mode 100644 index bd0e44674..000000000 --- a/Software/Stubs Collection/stubs/Scripts/eepromati2.c +++ /dev/null @@ -1,458 +0,0 @@ -Read_Head_EEPROM union <unnamed> {bytes={Header=1437256755,TableLength=260,TableVersion=0,DyeHead_PN=[65 'A',77 'M',...,HeadPCB_SN=...,Buf=... 0x2002BB68 - bytes struct <unnamed> {Header=0x55AACC33,TableLength=0x00000104,TableVersion=0x00000000,DyeHead_PN=[0x41 'A',...,HeadPCB_SN=... (Hex) 0x2002BB68 - Header unsigned int 0x55AACC33 (Hex) 0x2002BB68 - TableLength unsigned int 0x00000104 (Hex) 0x2002BB6C - TableVersion unsigned int 0x00000000 (Hex) 0x2002BB70 - DyeHead_PN unsigned char[20] [0x41 'A',0x4D 'M',0x30 '0',0x30 '0',0x32 '2'...] (Hex) 0x2002BB74 - [0] unsigned char 0x41 'A' (Hex) 0x2002BB74 - [1] unsigned char 0x4D 'M' (Hex) 0x2002BB75 - [2] unsigned char 0x30 '0' (Hex) 0x2002BB76 - [3] unsigned char 0x30 '0' (Hex) 0x2002BB77 - [4] unsigned char 0x32 '2' (Hex) 0x2002BB78 - [5] unsigned char 0x32 '2' (Hex) 0x2002BB79 - [6] unsigned char 0x32 '2' (Hex) 0x2002BB7A - [7] unsigned char 0x33 '3' (Hex) 0x2002BB7B - [8] unsigned char 0x2D '-' (Hex) 0x2002BB7C - [9] unsigned char 0x30 '0' (Hex) 0x2002BB7D - [10] unsigned char 0x30 '0' (Hex) 0x2002BB7E - [11] unsigned char 0x00 '\x00' (Hex) 0x2002BB7F - [12] unsigned char 0x00 '\x00' (Hex) 0x2002BB80 - [13] unsigned char 0x00 '\x00' (Hex) 0x2002BB81 - [14] unsigned char 0x00 '\x00' (Hex) 0x2002BB82 - [15] unsigned char 0x00 '\x00' (Hex) 0x2002BB83 - [16] unsigned char 0x00 '\x00' (Hex) 0x2002BB84 - [17] unsigned char 0x00 '\x00' (Hex) 0x2002BB85 - [18] unsigned char 0x00 '\x00' (Hex) 0x2002BB86 - [19] unsigned char 0x00 '\x00' (Hex) 0x2002BB87 - HeadPCB_SN unsigned char[20] [0x41 'A',0x50 'P',0x30 '0',0x30 '0',0x30 '0'...] (Hex) 0x2002BB88 - [0] unsigned char 0x41 'A' (Hex) 0x2002BB88 - [1] unsigned char 0x50 'P' (Hex) 0x2002BB89 - [2] unsigned char 0x30 '0' (Hex) 0x2002BB8A - [3] unsigned char 0x30 '0' (Hex) 0x2002BB8B - [4] unsigned char 0x30 '0' (Hex) 0x2002BB8C - [5] unsigned char 0x39 '9' (Hex) 0x2002BB8D - [6] unsigned char 0x33 '3' (Hex) 0x2002BB8E - [7] unsigned char 0x31 '1' (Hex) 0x2002BB8F - [8] unsigned char 0x00 '\x00' (Hex) 0x2002BB90 - [9] unsigned char 0x00 '\x00' (Hex) 0x2002BB91 - [10] unsigned char 0x00 '\x00' (Hex) 0x2002BB92 - [11] unsigned char 0x00 '\x00' (Hex) 0x2002BB93 - [12] unsigned char 0x00 '\x00' (Hex) 0x2002BB94 - [13] unsigned char 0x00 '\x00' (Hex) 0x2002BB95 - [14] unsigned char 0x00 '\x00' (Hex) 0x2002BB96 - [15] unsigned char 0x00 '\x00' (Hex) 0x2002BB97 - [16] unsigned char 0x00 '\x00' (Hex) 0x2002BB98 - [17] unsigned char 0x00 '\x00' (Hex) 0x2002BB99 - [18] unsigned char 0x00 '\x00' (Hex) 0x2002BB9A - [19] unsigned char 0x00 '\x00' (Hex) 0x2002BB9B - HeadPCB_PN unsigned char[20] [0x41 'A',0x50 'P',0x30 '0',0x30 '0',0x30 '0'...] (Hex) 0x2002BB9C - [0] unsigned char 0x41 'A' (Hex) 0x2002BB9C - [1] unsigned char 0x50 'P' (Hex) 0x2002BB9D - [2] unsigned char 0x30 '0' (Hex) 0x2002BB9E - [3] unsigned char 0x30 '0' (Hex) 0x2002BB9F - [4] unsigned char 0x30 '0' (Hex) 0x2002BBA0 - [5] unsigned char 0x39 '9' (Hex) 0x2002BBA1 - [6] unsigned char 0x33 '3' (Hex) 0x2002BBA2 - [7] unsigned char 0x31 '1' (Hex) 0x2002BBA3 - [8] unsigned char 0x00 '\x00' (Hex) 0x2002BBA4 - [9] unsigned char 0x00 '\x00' (Hex) 0x2002BBA5 - [10] unsigned char 0x00 '\x00' (Hex) 0x2002BBA6 - [11] unsigned char 0x00 '\x00' (Hex) 0x2002BBA7 - [12] unsigned char 0x00 '\x00' (Hex) 0x2002BBA8 - [13] unsigned char 0x00 '\x00' (Hex) 0x2002BBA9 - [14] unsigned char 0x00 '\x00' (Hex) 0x2002BBAA - [15] unsigned char 0x00 '\x00' (Hex) 0x2002BBAB - [16] unsigned char 0x00 '\x00' (Hex) 0x2002BBAC - [17] unsigned char 0x00 '\x00' (Hex) 0x2002BBAD - [18] unsigned char 0x00 '\x00' (Hex) 0x2002BBAE - [19] unsigned char 0x00 '\x00' (Hex) 0x2002BBAF - DyeHead_SN unsigned char[20] [0x31 '1',0x32 '2',0x33 '3',0x34 '4',0x35 '5'...] (Hex) 0x2002BBB0 - [0] unsigned char 0x31 '1' (Hex) 0x2002BBB0 - [1] unsigned char 0x32 '2' (Hex) 0x2002BBB1 - [2] unsigned char 0x33 '3' (Hex) 0x2002BBB2 - [3] unsigned char 0x34 '4' (Hex) 0x2002BBB3 - [4] unsigned char 0x35 '5' (Hex) 0x2002BBB4 - [5] unsigned char 0x36 '6' (Hex) 0x2002BBB5 - [6] unsigned char 0x37 '7' (Hex) 0x2002BBB6 - [7] unsigned char 0x38 '8' (Hex) 0x2002BBB7 - [8] unsigned char 0x39 '9' (Hex) 0x2002BBB8 - [9] unsigned char 0x30 '0' (Hex) 0x2002BBB9 - [10] unsigned char 0x31 '1' (Hex) 0x2002BBBA - [11] unsigned char 0x32 '2' (Hex) 0x2002BBBB - [12] unsigned char 0x33 '3' (Hex) 0x2002BBBC - [13] unsigned char 0x34 '4' (Hex) 0x2002BBBD - [14] unsigned char 0x35 '5' (Hex) 0x2002BBBE - [15] unsigned char 0x00 '\x00' (Hex) 0x2002BBBF - [16] unsigned char 0x00 '\x00' (Hex) 0x2002BBC0 - [17] unsigned char 0x00 '\x00' (Hex) 0x2002BBC1 - [18] unsigned char 0x00 '\x00' (Hex) 0x2002BBC2 - [19] unsigned char 0x00 '\x00' (Hex) 0x2002BBC3 - HeadType unsigned int 0x00000020 (Hex) 0x2002BBC4 - BlowerRunHours1 unsigned int 0x00000000 (Hex) 0x2002BBC8 - BlowerRunHours2 unsigned int 0x00000000 (Hex) 0x2002BBCC - FanFilterMaxLifecycle unsigned int 0x0000FFFF (Hex) 0x2002BBD0 - FansFilterUsageHours unsigned int 0x00000000 (Hex) 0x2002BBD4 - FilterSpare1 unsigned int 0x00000000 (Hex) 0x2002BBD8 - FilterSpare2 unsigned int 0x00000000 (Hex) 0x2002BBDC - BenchTestD unsigned int 0x00000000 (Hex) 0x2002BBE0 - Spare1 unsigned int 0x00000000 (Hex) 0x2002BBE4 - Spare2 unsigned int 0x00000000 (Hex) 0x2002BBE8 - ProductionTestDate unsigned char[8] [0x32 '2',0x31 '1',0x2F '/',0x31 '1',0x30 '0'...] (Hex) 0x2002BBEC - [0] unsigned char 0x32 '2' (Hex) 0x2002BBEC - [1] unsigned char 0x31 '1' (Hex) 0x2002BBED - [2] unsigned char 0x2F '/' (Hex) 0x2002BBEE - [3] unsigned char 0x31 '1' (Hex) 0x2002BBEF - [4] unsigned char 0x30 '0' (Hex) 0x2002BBF0 - [5] unsigned char 0x2F '/' (Hex) 0x2002BBF1 - [6] unsigned char 0x32 '2' (Hex) 0x2002BBF2 - [7] unsigned char 0x30 '0' (Hex) 0x2002BBF3 - FuncTestStatus unsigned int 0x00000046 (Hex) 0x2002BBF4 - PresSensPCB_SN unsigned char[20] [0x30 '0',0x30 '0',0x30 '0',0x31 '1',0x00 '\x00'...] (Hex) 0x2002BBF8 - [0] unsigned char 0x30 '0' (Hex) 0x2002BBF8 - [1] unsigned char 0x30 '0' (Hex) 0x2002BBF9 - [2] unsigned char 0x30 '0' (Hex) 0x2002BBFA - [3] unsigned char 0x31 '1' (Hex) 0x2002BBFB - [4] unsigned char 0x00 '\x00' (Hex) 0x2002BBFC - [5] unsigned char 0x00 '\x00' (Hex) 0x2002BBFD - [6] unsigned char 0x00 '\x00' (Hex) 0x2002BBFE - [7] unsigned char 0x00 '\x00' (Hex) 0x2002BBFF - [8] unsigned char 0x00 '\x00' (Hex) 0x2002BC00 - [9] unsigned char 0x00 '\x00' (Hex) 0x2002BC01 - [10] unsigned char 0x00 '\x00' (Hex) 0x2002BC02 - [11] unsigned char 0x00 '\x00' (Hex) 0x2002BC03 - [12] unsigned char 0x00 '\x00' (Hex) 0x2002BC04 - [13] unsigned char 0x00 '\x00' (Hex) 0x2002BC05 - [14] unsigned char 0x00 '\x00' (Hex) 0x2002BC06 - [15] unsigned char 0x00 '\x00' (Hex) 0x2002BC07 - [16] unsigned char 0x00 '\x00' (Hex) 0x2002BC08 - [17] unsigned char 0x00 '\x00' (Hex) 0x2002BC09 - [18] unsigned char 0x00 '\x00' (Hex) 0x2002BC0A - [19] unsigned char 0x00 '\x00' (Hex) 0x2002BC0B - PresSensPCB_PN unsigned char[20] [0x41 'A',0x50 'P',0x30 '0',0x30 '0',0x32 '2'...] (Hex) 0x2002BC0C - [0] unsigned char 0x41 'A' (Hex) 0x2002BC0C - [1] unsigned char 0x50 'P' (Hex) 0x2002BC0D - [2] unsigned char 0x30 '0' (Hex) 0x2002BC0E - [3] unsigned char 0x30 '0' (Hex) 0x2002BC0F - [4] unsigned char 0x32 '2' (Hex) 0x2002BC10 - [5] unsigned char 0x32 '2' (Hex) 0x2002BC11 - [6] unsigned char 0x33 '3' (Hex) 0x2002BC12 - [7] unsigned char 0x31 '1' (Hex) 0x2002BC13 - [8] unsigned char 0x00 '\x00' (Hex) 0x2002BC14 - [9] unsigned char 0x00 '\x00' (Hex) 0x2002BC15 - [10] unsigned char 0x00 '\x00' (Hex) 0x2002BC16 - [11] unsigned char 0x00 '\x00' (Hex) 0x2002BC17 - [12] unsigned char 0x00 '\x00' (Hex) 0x2002BC18 - [13] unsigned char 0x00 '\x00' (Hex) 0x2002BC19 - [14] unsigned char 0x00 '\x00' (Hex) 0x2002BC1A - [15] unsigned char 0x00 '\x00' (Hex) 0x2002BC1B - [16] unsigned char 0x00 '\x00' (Hex) 0x2002BC1C - [17] unsigned char 0x00 '\x00' (Hex) 0x2002BC1D - [18] unsigned char 0x00 '\x00' (Hex) 0x2002BC1E - [19] unsigned char 0x00 '\x00' (Hex) 0x2002BC1F - PressCalibDate1 unsigned char[8] [0xFF '\xff',0xFF '\xff',0xFF '\xff',0xFF '\xff',0xFF '\xff'...] (Hex) 0x2002BC20 - [0] unsigned char 0xFF '\xff' (Hex) 0x2002BC20 - [1] unsigned char 0xFF '\xff' (Hex) 0x2002BC21 - [2] unsigned char 0xFF '\xff' (Hex) 0x2002BC22 - [3] unsigned char 0xFF '\xff' (Hex) 0x2002BC23 - [4] unsigned char 0xFF '\xff' (Hex) 0x2002BC24 - [5] unsigned char 0xFF '\xff' (Hex) 0x2002BC25 - [6] unsigned char 0xFF '\xff' (Hex) 0x2002BC26 - [7] unsigned char 0xFF '\xff' (Hex) 0x2002BC27 - PressWithoutBlower_mV1 unsigned int 0x00000002 (Hex) 0x2002BC28 - PressWithMinBlower_mV1 unsigned int 0x00000003 (Hex) 0x2002BC2C - PressMaxPress_mV1 unsigned int 0x00000F50 (Hex) 0x2002BC30 - PressCalibDate2 unsigned char[8] [0x32 '2',0x31 '1',0x2F '/',0x31 '1',0x30 '0'...] (Hex) 0x2002BC34 - [0] unsigned char 0x32 '2' (Hex) 0x2002BC34 - [1] unsigned char 0x31 '1' (Hex) 0x2002BC35 - [2] unsigned char 0x2F '/' (Hex) 0x2002BC36 - [3] unsigned char 0x31 '1' (Hex) 0x2002BC37 - [4] unsigned char 0x30 '0' (Hex) 0x2002BC38 - [5] unsigned char 0x2F '/' (Hex) 0x2002BC39 - [6] unsigned char 0x32 '2' (Hex) 0x2002BC3A - [7] unsigned char 0x30 '0' (Hex) 0x2002BC3B - PressWithoutBlower_mV2 unsigned int 0x00000000 (Hex) 0x2002BC3C - PressWithMinBlower_mV2 unsigned int 0x00000005 (Hex) 0x2002BC40 - PressMaxPress_mV2 unsigned int 0x00000F50 (Hex) 0x2002BC44 - FansMinPWM unsigned int 0x00000000 (Hex) 0x2002BC48 - FansMinRPM unsigned int 0x00000CE4 (Hex) 0x2002BC4C - FansMaxPWM unsigned int 0x00000064 (Hex) 0x2002BC50 - FansMaxRPM unsigned int 0x0000044C (Hex) 0x2002BC54 - FansNomPWM unsigned int 0x00000046 (Hex) 0x2002BC58 - FansNomRPM unsigned int 0x00001F40 (Hex) 0x2002BC5C - FansLimitRPM unsigned int 0x00001388 (Hex) 0x2002BC60 - FansTachoPPR unsigned int 0x00000002 (Hex) 0x2002BC64 - FansSpare1 unsigned int 0x00000000 (Hex) 0x2002BC68 - FansSpare2 unsigned int 0x00000000 (Hex) 0x2002BC6C - CheckSum unsigned int 0x00002257 (Hex) 0x2002BC70 - Buf unsigned char[268] [51 '3',204 '\xcc',170 '\xaa',85 'U',4 '\x04'...] 0x2002BB68 - [0 ... 99] - [0] unsigned char 51 '3' 0x2002BB68 - [1] unsigned char 204 '\xcc' 0x2002BB69 - [2] unsigned char 170 '\xaa' 0x2002BB6A - [3] unsigned char 85 'U' 0x2002BB6B - [4] unsigned char 4 '\x04' 0x2002BB6C - [5] unsigned char 1 '\x01' 0x2002BB6D - [6] unsigned char 0 '\x00' 0x2002BB6E - [7] unsigned char 0 '\x00' 0x2002BB6F - [8] unsigned char 0 '\x00' 0x2002BB70 - [9] unsigned char 0 '\x00' 0x2002BB71 - [10] unsigned char 0 '\x00' 0x2002BB72 - [11] unsigned char 0 '\x00' 0x2002BB73 - [12] unsigned char 65 'A' 0x2002BB74 - [13] unsigned char 77 'M' 0x2002BB75 - [14] unsigned char 48 '0' 0x2002BB76 - [15] unsigned char 48 '0' 0x2002BB77 - [16] unsigned char 50 '2' 0x2002BB78 - [17] unsigned char 50 '2' 0x2002BB79 - [18] unsigned char 50 '2' 0x2002BB7A - [19] unsigned char 51 '3' 0x2002BB7B - [20] unsigned char 45 '-' 0x2002BB7C - [21] unsigned char 48 '0' 0x2002BB7D - [22] unsigned char 48 '0' 0x2002BB7E - [23] unsigned char 0 '\x00' 0x2002BB7F - [24] unsigned char 0 '\x00' 0x2002BB80 - [25] unsigned char 0 '\x00' 0x2002BB81 - [26] unsigned char 0 '\x00' 0x2002BB82 - [27] unsigned char 0 '\x00' 0x2002BB83 - [28] unsigned char 0 '\x00' 0x2002BB84 - [29] unsigned char 0 '\x00' 0x2002BB85 - [30] unsigned char 0 '\x00' 0x2002BB86 - [31] unsigned char 0 '\x00' 0x2002BB87 - [32] unsigned char 65 'A' 0x2002BB88 - [33] unsigned char 80 'P' 0x2002BB89 - [34] unsigned char 48 '0' 0x2002BB8A - [35] unsigned char 48 '0' 0x2002BB8B - [36] unsigned char 48 '0' 0x2002BB8C - [37] unsigned char 57 '9' 0x2002BB8D - [38] unsigned char 51 '3' 0x2002BB8E - [39] unsigned char 49 '1' 0x2002BB8F - [40] unsigned char 0 '\x00' 0x2002BB90 - [41] unsigned char 0 '\x00' 0x2002BB91 - [42] unsigned char 0 '\x00' 0x2002BB92 - [43] unsigned char 0 '\x00' 0x2002BB93 - [44] unsigned char 0 '\x00' 0x2002BB94 - [45] unsigned char 0 '\x00' 0x2002BB95 - [46] unsigned char 0 '\x00' 0x2002BB96 - [47] unsigned char 0 '\x00' 0x2002BB97 - [48] unsigned char 0 '\x00' 0x2002BB98 - [49] unsigned char 0 '\x00' 0x2002BB99 - [50] unsigned char 0 '\x00' 0x2002BB9A - [51] unsigned char 0 '\x00' 0x2002BB9B - [52] unsigned char 65 'A' 0x2002BB9C - [53] unsigned char 80 'P' 0x2002BB9D - [54] unsigned char 48 '0' 0x2002BB9E - [55] unsigned char 48 '0' 0x2002BB9F - [56] unsigned char 48 '0' 0x2002BBA0 - [57] unsigned char 57 '9' 0x2002BBA1 - [58] unsigned char 51 '3' 0x2002BBA2 - [59] unsigned char 49 '1' 0x2002BBA3 - [60] unsigned char 0 '\x00' 0x2002BBA4 - [61] unsigned char 0 '\x00' 0x2002BBA5 - [62] unsigned char 0 '\x00' 0x2002BBA6 - [63] unsigned char 0 '\x00' 0x2002BBA7 - [64] unsigned char 0 '\x00' 0x2002BBA8 - [65] unsigned char 0 '\x00' 0x2002BBA9 - [66] unsigned char 0 '\x00' 0x2002BBAA - [67] unsigned char 0 '\x00' 0x2002BBAB - [68] unsigned char 0 '\x00' 0x2002BBAC - [69] unsigned char 0 '\x00' 0x2002BBAD - [70] unsigned char 0 '\x00' 0x2002BBAE - [71] unsigned char 0 '\x00' 0x2002BBAF - [72] unsigned char 49 '1' 0x2002BBB0 - [73] unsigned char 50 '2' 0x2002BBB1 - [74] unsigned char 51 '3' 0x2002BBB2 - [75] unsigned char 52 '4' 0x2002BBB3 - [76] unsigned char 53 '5' 0x2002BBB4 - [77] unsigned char 54 '6' 0x2002BBB5 - [78] unsigned char 55 '7' 0x2002BBB6 - [79] unsigned char 56 '8' 0x2002BBB7 - [80] unsigned char 57 '9' 0x2002BBB8 - [81] unsigned char 48 '0' 0x2002BBB9 - [82] unsigned char 49 '1' 0x2002BBBA - [83] unsigned char 50 '2' 0x2002BBBB - [84] unsigned char 51 '3' 0x2002BBBC - [85] unsigned char 52 '4' 0x2002BBBD - [86] unsigned char 53 '5' 0x2002BBBE - [87] unsigned char 0 '\x00' 0x2002BBBF - [88] unsigned char 0 '\x00' 0x2002BBC0 - [89] unsigned char 0 '\x00' 0x2002BBC1 - [90] unsigned char 0 '\x00' 0x2002BBC2 - [91] unsigned char 0 '\x00' 0x2002BBC3 - [92] unsigned char 32 ' ' 0x2002BBC4 - [93] unsigned char 0 '\x00' 0x2002BBC5 - [94] unsigned char 0 '\x00' 0x2002BBC6 - [95] unsigned char 0 '\x00' 0x2002BBC7 - [96] unsigned char 0 '\x00' 0x2002BBC8 - [97] unsigned char 0 '\x00' 0x2002BBC9 - [98] unsigned char 0 '\x00' 0x2002BBCA - [99] unsigned char 0 '\x00' 0x2002BBCB - [100 ... 199] - [100] unsigned char 0 '\x00' 0x2002BBCC - [101] unsigned char 0 '\x00' 0x2002BBCD - [102] unsigned char 0 '\x00' 0x2002BBCE - [103] unsigned char 0 '\x00' 0x2002BBCF - [104] unsigned char 255 '\xff' 0x2002BBD0 - [105] unsigned char 255 '\xff' 0x2002BBD1 - [106] unsigned char 0 '\x00' 0x2002BBD2 - [107] unsigned char 0 '\x00' 0x2002BBD3 - [108] unsigned char 0 '\x00' 0x2002BBD4 - [109] unsigned char 0 '\x00' 0x2002BBD5 - [110] unsigned char 0 '\x00' 0x2002BBD6 - [111] unsigned char 0 '\x00' 0x2002BBD7 - [112] unsigned char 0 '\x00' 0x2002BBD8 - [113] unsigned char 0 '\x00' 0x2002BBD9 - [114] unsigned char 0 '\x00' 0x2002BBDA - [115] unsigned char 0 '\x00' 0x2002BBDB - [116] unsigned char 0 '\x00' 0x2002BBDC - [117] unsigned char 0 '\x00' 0x2002BBDD - [118] unsigned char 0 '\x00' 0x2002BBDE - [119] unsigned char 0 '\x00' 0x2002BBDF - [120] unsigned char 0 '\x00' 0x2002BBE0 - [121] unsigned char 0 '\x00' 0x2002BBE1 - [122] unsigned char 0 '\x00' 0x2002BBE2 - [123] unsigned char 0 '\x00' 0x2002BBE3 - [124] unsigned char 0 '\x00' 0x2002BBE4 - [125] unsigned char 0 '\x00' 0x2002BBE5 - [126] unsigned char 0 '\x00' 0x2002BBE6 - [127] unsigned char 0 '\x00' 0x2002BBE7 - [128] unsigned char 0 '\x00' 0x2002BBE8 - [129] unsigned char 0 '\x00' 0x2002BBE9 - [130] unsigned char 0 '\x00' 0x2002BBEA - [131] unsigned char 0 '\x00' 0x2002BBEB - [132] unsigned char 50 '2' 0x2002BBEC - [133] unsigned char 49 '1' 0x2002BBED - [134] unsigned char 47 '/' 0x2002BBEE - [135] unsigned char 49 '1' 0x2002BBEF - [136] unsigned char 48 '0' 0x2002BBF0 - [137] unsigned char 47 '/' 0x2002BBF1 - [138] unsigned char 50 '2' 0x2002BBF2 - [139] unsigned char 48 '0' 0x2002BBF3 - [140] unsigned char 70 'F' 0x2002BBF4 - [141] unsigned char 0 '\x00' 0x2002BBF5 - [142] unsigned char 0 '\x00' 0x2002BBF6 - [143] unsigned char 0 '\x00' 0x2002BBF7 - [144] unsigned char 48 '0' 0x2002BBF8 - [145] unsigned char 48 '0' 0x2002BBF9 - [146] unsigned char 48 '0' 0x2002BBFA - [147] unsigned char 49 '1' 0x2002BBFB - [148] unsigned char 0 '\x00' 0x2002BBFC - [149] unsigned char 0 '\x00' 0x2002BBFD - [150] unsigned char 0 '\x00' 0x2002BBFE - [151] unsigned char 0 '\x00' 0x2002BBFF - [152] unsigned char 0 '\x00' 0x2002BC00 - [153] unsigned char 0 '\x00' 0x2002BC01 - [154] unsigned char 0 '\x00' 0x2002BC02 - [155] unsigned char 0 '\x00' 0x2002BC03 - [156] unsigned char 0 '\x00' 0x2002BC04 - [157] unsigned char 0 '\x00' 0x2002BC05 - [158] unsigned char 0 '\x00' 0x2002BC06 - [159] unsigned char 0 '\x00' 0x2002BC07 - [160] unsigned char 0 '\x00' 0x2002BC08 - [161] unsigned char 0 '\x00' 0x2002BC09 - [162] unsigned char 0 '\x00' 0x2002BC0A - [163] unsigned char 0 '\x00' 0x2002BC0B - [164] unsigned char 65 'A' 0x2002BC0C - [165] unsigned char 80 'P' 0x2002BC0D - [166] unsigned char 48 '0' 0x2002BC0E - [167] unsigned char 48 '0' 0x2002BC0F - [168] unsigned char 50 '2' 0x2002BC10 - [169] unsigned char 50 '2' 0x2002BC11 - [170] unsigned char 51 '3' 0x2002BC12 - [171] unsigned char 49 '1' 0x2002BC13 - [172] unsigned char 0 '\x00' 0x2002BC14 - [173] unsigned char 0 '\x00' 0x2002BC15 - [174] unsigned char 0 '\x00' 0x2002BC16 - [175] unsigned char 0 '\x00' 0x2002BC17 - [176] unsigned char 0 '\x00' 0x2002BC18 - [177] unsigned char 0 '\x00' 0x2002BC19 - [178] unsigned char 0 '\x00' 0x2002BC1A - [179] unsigned char 0 '\x00' 0x2002BC1B - [180] unsigned char 0 '\x00' 0x2002BC1C - [181] unsigned char 0 '\x00' 0x2002BC1D - [182] unsigned char 0 '\x00' 0x2002BC1E - [183] unsigned char 0 '\x00' 0x2002BC1F - [184] unsigned char 255 '\xff' 0x2002BC20 - [185] unsigned char 255 '\xff' 0x2002BC21 - [186] unsigned char 255 '\xff' 0x2002BC22 - [187] unsigned char 255 '\xff' 0x2002BC23 - [188] unsigned char 255 '\xff' 0x2002BC24 - [189] unsigned char 255 '\xff' 0x2002BC25 - [190] unsigned char 255 '\xff' 0x2002BC26 - [191] unsigned char 255 '\xff' 0x2002BC27 - [192] unsigned char 2 '\x02' 0x2002BC28 - [193] unsigned char 0 '\x00' 0x2002BC29 - [194] unsigned char 0 '\x00' 0x2002BC2A - [195] unsigned char 0 '\x00' 0x2002BC2B - [196] unsigned char 3 '\x03' 0x2002BC2C - [197] unsigned char 0 '\x00' 0x2002BC2D - [198] unsigned char 0 '\x00' 0x2002BC2E - [199] unsigned char 0 '\x00' 0x2002BC2F - [200 ... 267] - [200] unsigned char 80 'P' 0x2002BC30 - [201] unsigned char 15 '\x0f' 0x2002BC31 - [202] unsigned char 0 '\x00' 0x2002BC32 - [203] unsigned char 0 '\x00' 0x2002BC33 - [204] unsigned char 50 '2' 0x2002BC34 - [205] unsigned char 49 '1' 0x2002BC35 - [206] unsigned char 47 '/' 0x2002BC36 - [207] unsigned char 49 '1' 0x2002BC37 - [208] unsigned char 48 '0' 0x2002BC38 - [209] unsigned char 47 '/' 0x2002BC39 - [210] unsigned char 50 '2' 0x2002BC3A - [211] unsigned char 48 '0' 0x2002BC3B - [212] unsigned char 0 '\x00' 0x2002BC3C - [213] unsigned char 0 '\x00' 0x2002BC3D - [214] unsigned char 0 '\x00' 0x2002BC3E - [215] unsigned char 0 '\x00' 0x2002BC3F - [216] unsigned char 5 '\x05' 0x2002BC40 - [217] unsigned char 0 '\x00' 0x2002BC41 - [218] unsigned char 0 '\x00' 0x2002BC42 - [219] unsigned char 0 '\x00' 0x2002BC43 - [220] unsigned char 80 'P' 0x2002BC44 - [221] unsigned char 15 '\x0f' 0x2002BC45 - [222] unsigned char 0 '\x00' 0x2002BC46 - [223] unsigned char 0 '\x00' 0x2002BC47 - [224] unsigned char 0 '\x00' 0x2002BC48 - [225] unsigned char 0 '\x00' 0x2002BC49 - [226] unsigned char 0 '\x00' 0x2002BC4A - [227] unsigned char 0 '\x00' 0x2002BC4B - [228] unsigned char 228 '\xe4' 0x2002BC4C - [229] unsigned char 12 '\x0c' 0x2002BC4D - [230] unsigned char 0 '\x00' 0x2002BC4E - [231] unsigned char 0 '\x00' 0x2002BC4F - [232] unsigned char 100 'd' 0x2002BC50 - [233] unsigned char 0 '\x00' 0x2002BC51 - [234] unsigned char 0 '\x00' 0x2002BC52 - [235] unsigned char 0 '\x00' 0x2002BC53 - [236] unsigned char 76 'L' 0x2002BC54 - [237] unsigned char 4 '\x04' 0x2002BC55 - [238] unsigned char 0 '\x00' 0x2002BC56 - [239] unsigned char 0 '\x00' 0x2002BC57 - [240] unsigned char 70 'F' 0x2002BC58 - [241] unsigned char 0 '\x00' 0x2002BC59 - [242] unsigned char 0 '\x00' 0x2002BC5A - [243] unsigned char 0 '\x00' 0x2002BC5B - [244] unsigned char 64 '@' 0x2002BC5C - [245] unsigned char 31 '\x1f' 0x2002BC5D - [246] unsigned char 0 '\x00' 0x2002BC5E - [247] unsigned char 0 '\x00' 0x2002BC5F - [248] unsigned char 136 '\x88' 0x2002BC60 - [249] unsigned char 19 '\x13' 0x2002BC61 - [250] unsigned char 0 '\x00' 0x2002BC62 - [251] unsigned char 0 '\x00' 0x2002BC63 - [252] unsigned char 2 '\x02' 0x2002BC64 - [253] unsigned char 0 '\x00' 0x2002BC65 - [254] unsigned char 0 '\x00' 0x2002BC66 - [255] unsigned char 0 '\x00' 0x2002BC67 - [256] unsigned char 0 '\x00' 0x2002BC68 - [257] unsigned char 0 '\x00' 0x2002BC69 - [258] unsigned char 0 '\x00' 0x2002BC6A - [259] unsigned char 0 '\x00' 0x2002BC6B - [260] unsigned char 0 '\x00' 0x2002BC6C - [261] unsigned char 0 '\x00' 0x2002BC6D - [262] unsigned char 0 '\x00' 0x2002BC6E - [263] unsigned char 0 '\x00' 0x2002BC6F - [264] unsigned char 87 'W' 0x2002BC70 - [265] unsigned char 34 '"' 0x2002BC71 - [266] unsigned char 0 '\x00' 0x2002BC72 - [267] unsigned char 0 '\x00' 0x2002BC73 diff --git a/Software/Stubs Collection/stubs/Scripts/eepromati3.c b/Software/Stubs Collection/stubs/Scripts/eepromati3.c deleted file mode 100644 index dfba43764..000000000 --- a/Software/Stubs Collection/stubs/Scripts/eepromati3.c +++ /dev/null @@ -1,272 +0,0 @@ -Buf unsigned char[268] [51 '3',204 '\xcc',170 '\xaa',85 'U',4 '\x04'...] 0x2002BB68 - [0 ... 99] - [0] unsigned char 51 '3' 0x2002BB68 - [1] unsigned char 204 '\xcc' 0x2002BB69 - [2] unsigned char 170 '\xaa' 0x2002BB6A - [3] unsigned char 85 'U' 0x2002BB6B - [4] unsigned char 4 '\x04' 0x2002BB6C - [5] unsigned char 1 '\x01' 0x2002BB6D - [6] unsigned char 0 '\x00' 0x2002BB6E - [7] unsigned char 0 '\x00' 0x2002BB6F - [8] unsigned char 0 '\x00' 0x2002BB70 - [9] unsigned char 0 '\x00' 0x2002BB71 - [10] unsigned char 0 '\x00' 0x2002BB72 - [11] unsigned char 0 '\x00' 0x2002BB73 - [12] unsigned char 65 'A' 0x2002BB74 - [13] unsigned char 77 'M' 0x2002BB75 - [14] unsigned char 48 '0' 0x2002BB76 - [15] unsigned char 48 '0' 0x2002BB77 - [16] unsigned char 50 '2' 0x2002BB78 - [17] unsigned char 50 '2' 0x2002BB79 - [18] unsigned char 50 '2' 0x2002BB7A - [19] unsigned char 51 '3' 0x2002BB7B - [20] unsigned char 45 '-' 0x2002BB7C - [21] unsigned char 49 '1' 0x2002BB7D - [22] unsigned char 0 '\x00' 0x2002BB7E - [23] unsigned char 0 '\x00' 0x2002BB7F - [24] unsigned char 0 '\x00' 0x2002BB80 - [25] unsigned char 0 '\x00' 0x2002BB81 - [26] unsigned char 0 '\x00' 0x2002BB82 - [27] unsigned char 0 '\x00' 0x2002BB83 - [28] unsigned char 0 '\x00' 0x2002BB84 - [29] unsigned char 0 '\x00' 0x2002BB85 - [30] unsigned char 0 '\x00' 0x2002BB86 - [31] unsigned char 0 '\x00' 0x2002BB87 - [32] unsigned char 65 'A' 0x2002BB88 - [33] unsigned char 80 'P' 0x2002BB89 - [34] unsigned char 48 '0' 0x2002BB8A - [35] unsigned char 48 '0' 0x2002BB8B - [36] unsigned char 48 '0' 0x2002BB8C - [37] unsigned char 57 '9' 0x2002BB8D - [38] unsigned char 51 '3' 0x2002BB8E - [39] unsigned char 49 '1' 0x2002BB8F - [40] unsigned char 0 '\x00' 0x2002BB90 - [41] unsigned char 0 '\x00' 0x2002BB91 - [42] unsigned char 0 '\x00' 0x2002BB92 - [43] unsigned char 0 '\x00' 0x2002BB93 - [44] unsigned char 0 '\x00' 0x2002BB94 - [45] unsigned char 0 '\x00' 0x2002BB95 - [46] unsigned char 0 '\x00' 0x2002BB96 - [47] unsigned char 0 '\x00' 0x2002BB97 - [48] unsigned char 0 '\x00' 0x2002BB98 - [49] unsigned char 0 '\x00' 0x2002BB99 - [50] unsigned char 0 '\x00' 0x2002BB9A - [51] unsigned char 0 '\x00' 0x2002BB9B - [52] unsigned char 65 'A' 0x2002BB9C - [53] unsigned char 80 'P' 0x2002BB9D - [54] unsigned char 48 '0' 0x2002BB9E - [55] unsigned char 48 '0' 0x2002BB9F - [56] unsigned char 48 '0' 0x2002BBA0 - [57] unsigned char 57 '9' 0x2002BBA1 - [58] unsigned char 51 '3' 0x2002BBA2 - [59] unsigned char 49 '1' 0x2002BBA3 - [60] unsigned char 0 '\x00' 0x2002BBA4 - [61] unsigned char 0 '\x00' 0x2002BBA5 - [62] unsigned char 0 '\x00' 0x2002BBA6 - [63] unsigned char 0 '\x00' 0x2002BBA7 - [64] unsigned char 0 '\x00' 0x2002BBA8 - [65] unsigned char 0 '\x00' 0x2002BBA9 - [66] unsigned char 0 '\x00' 0x2002BBAA - [67] unsigned char 0 '\x00' 0x2002BBAB - [68] unsigned char 0 '\x00' 0x2002BBAC - [69] unsigned char 0 '\x00' 0x2002BBAD - [70] unsigned char 0 '\x00' 0x2002BBAE - [71] unsigned char 0 '\x00' 0x2002BBAF - [72] unsigned char 49 '1' 0x2002BBB0 - [73] unsigned char 50 '2' 0x2002BBB1 - [74] unsigned char 51 '3' 0x2002BBB2 - [75] unsigned char 52 '4' 0x2002BBB3 - [76] unsigned char 53 '5' 0x2002BBB4 - [77] unsigned char 54 '6' 0x2002BBB5 - [78] unsigned char 55 '7' 0x2002BBB6 - [79] unsigned char 56 '8' 0x2002BBB7 - [80] unsigned char 57 '9' 0x2002BBB8 - [81] unsigned char 48 '0' 0x2002BBB9 - [82] unsigned char 49 '1' 0x2002BBBA - [83] unsigned char 50 '2' 0x2002BBBB - [84] unsigned char 51 '3' 0x2002BBBC - [85] unsigned char 52 '4' 0x2002BBBD - [86] unsigned char 53 '5' 0x2002BBBE - [87] unsigned char 0 '\x00' 0x2002BBBF - [88] unsigned char 0 '\x00' 0x2002BBC0 - [89] unsigned char 0 '\x00' 0x2002BBC1 - [90] unsigned char 0 '\x00' 0x2002BBC2 - [91] unsigned char 0 '\x00' 0x2002BBC3 - [92] unsigned char 32 ' ' 0x2002BBC4 - [93] unsigned char 0 '\x00' 0x2002BBC5 - [94] unsigned char 0 '\x00' 0x2002BBC6 - [95] unsigned char 0 '\x00' 0x2002BBC7 - [96] unsigned char 0 '\x00' 0x2002BBC8 - [97] unsigned char 0 '\x00' 0x2002BBC9 - [98] unsigned char 0 '\x00' 0x2002BBCA - [99] unsigned char 0 '\x00' 0x2002BBCB - [100 ... 199] - [100] unsigned char 0 '\x00' 0x2002BBCC - [101] unsigned char 0 '\x00' 0x2002BBCD - [102] unsigned char 0 '\x00' 0x2002BBCE - [103] unsigned char 0 '\x00' 0x2002BBCF - [104] unsigned char 255 '\xff' 0x2002BBD0 - [105] unsigned char 255 '\xff' 0x2002BBD1 - [106] unsigned char 0 '\x00' 0x2002BBD2 - [107] unsigned char 0 '\x00' 0x2002BBD3 - [108] unsigned char 0 '\x00' 0x2002BBD4 - [109] unsigned char 0 '\x00' 0x2002BBD5 - [110] unsigned char 0 '\x00' 0x2002BBD6 - [111] unsigned char 0 '\x00' 0x2002BBD7 - [112] unsigned char 0 '\x00' 0x2002BBD8 - [113] unsigned char 0 '\x00' 0x2002BBD9 - [114] unsigned char 0 '\x00' 0x2002BBDA - [115] unsigned char 0 '\x00' 0x2002BBDB - [116] unsigned char 0 '\x00' 0x2002BBDC - [117] unsigned char 0 '\x00' 0x2002BBDD - [118] unsigned char 0 '\x00' 0x2002BBDE - [119] unsigned char 0 '\x00' 0x2002BBDF - [120] unsigned char 0 '\x00' 0x2002BBE0 - [121] unsigned char 0 '\x00' 0x2002BBE1 - [122] unsigned char 0 '\x00' 0x2002BBE2 - [123] unsigned char 0 '\x00' 0x2002BBE3 - [124] unsigned char 0 '\x00' 0x2002BBE4 - [125] unsigned char 0 '\x00' 0x2002BBE5 - [126] unsigned char 0 '\x00' 0x2002BBE6 - [127] unsigned char 0 '\x00' 0x2002BBE7 - [128] unsigned char 0 '\x00' 0x2002BBE8 - [129] unsigned char 0 '\x00' 0x2002BBE9 - [130] unsigned char 0 '\x00' 0x2002BBEA - [131] unsigned char 0 '\x00' 0x2002BBEB - [132] unsigned char 50 '2' 0x2002BBEC - [133] unsigned char 49 '1' 0x2002BBED - [134] unsigned char 47 '/' 0x2002BBEE - [135] unsigned char 49 '1' 0x2002BBEF - [136] unsigned char 48 '0' 0x2002BBF0 - [137] unsigned char 47 '/' 0x2002BBF1 - [138] unsigned char 50 '2' 0x2002BBF2 - [139] unsigned char 48 '0' 0x2002BBF3 - [140] unsigned char 70 'F' 0x2002BBF4 - [141] unsigned char 0 '\x00' 0x2002BBF5 - [142] unsigned char 0 '\x00' 0x2002BBF6 - [143] unsigned char 0 '\x00' 0x2002BBF7 - [144] unsigned char 0 '\x00' 0x2002BBF8 - [145] unsigned char 0 '\x00' 0x2002BBF9 - [146] unsigned char 0 '\x00' 0x2002BBFA - [147] unsigned char 0 '\x00' 0x2002BBFB - [148] unsigned char 0 '\x00' 0x2002BBFC - [149] unsigned char 0 '\x00' 0x2002BBFD - [150] unsigned char 0 '\x00' 0x2002BBFE - [151] unsigned char 0 '\x00' 0x2002BBFF - [152] unsigned char 0 '\x00' 0x2002BC00 - [153] unsigned char 0 '\x00' 0x2002BC01 - [154] unsigned char 0 '\x00' 0x2002BC02 - [155] unsigned char 0 '\x00' 0x2002BC03 - [156] unsigned char 0 '\x00' 0x2002BC04 - [157] unsigned char 0 '\x00' 0x2002BC05 - [158] unsigned char 0 '\x00' 0x2002BC06 - [159] unsigned char 0 '\x00' 0x2002BC07 - [160] unsigned char 0 '\x00' 0x2002BC08 - [161] unsigned char 0 '\x00' 0x2002BC09 - [162] unsigned char 0 '\x00' 0x2002BC0A - [163] unsigned char 0 '\x00' 0x2002BC0B - [164] unsigned char 65 'A' 0x2002BC0C - [165] unsigned char 80 'P' 0x2002BC0D - [166] unsigned char 48 '0' 0x2002BC0E - [167] unsigned char 48 '0' 0x2002BC0F - [168] unsigned char 50 '2' 0x2002BC10 - [169] unsigned char 50 '2' 0x2002BC11 - [170] unsigned char 51 '3' 0x2002BC12 - [171] unsigned char 49 '1' 0x2002BC13 - [172] unsigned char 0 '\x00' 0x2002BC14 - [173] unsigned char 0 '\x00' 0x2002BC15 - [174] unsigned char 0 '\x00' 0x2002BC16 - [175] unsigned char 0 '\x00' 0x2002BC17 - [176] unsigned char 0 '\x00' 0x2002BC18 - [177] unsigned char 0 '\x00' 0x2002BC19 - [178] unsigned char 0 '\x00' 0x2002BC1A - [179] unsigned char 0 '\x00' 0x2002BC1B - [180] unsigned char 0 '\x00' 0x2002BC1C - [181] unsigned char 0 '\x00' 0x2002BC1D - [182] unsigned char 0 '\x00' 0x2002BC1E - [183] unsigned char 0 '\x00' 0x2002BC1F - [184] unsigned char 50 '2' 0x2002BC20 - [185] unsigned char 49 '1' 0x2002BC21 - [186] unsigned char 47 '/' 0x2002BC22 - [187] unsigned char 49 '1' 0x2002BC23 - [188] unsigned char 48 '0' 0x2002BC24 - [189] unsigned char 47 '/' 0x2002BC25 - [190] unsigned char 50 '2' 0x2002BC26 - [191] unsigned char 48 '0' 0x2002BC27 - [192] unsigned char 2 '\x02' 0x2002BC28 - [193] unsigned char 0 '\x00' 0x2002BC29 - [194] unsigned char 0 '\x00' 0x2002BC2A - [195] unsigned char 0 '\x00' 0x2002BC2B - [196] unsigned char 3 '\x03' 0x2002BC2C - [197] unsigned char 0 '\x00' 0x2002BC2D - [198] unsigned char 0 '\x00' 0x2002BC2E - [199] unsigned char 0 '\x00' 0x2002BC2F - [200 ... 267] - [200] unsigned char 80 'P' 0x2002BC30 - [201] unsigned char 15 '\x0f' 0x2002BC31 - [202] unsigned char 0 '\x00' 0x2002BC32 - [203] unsigned char 0 '\x00' 0x2002BC33 - [204] unsigned char 50 '2' 0x2002BC34 - [205] unsigned char 49 '1' 0x2002BC35 - [206] unsigned char 47 '/' 0x2002BC36 - [207] unsigned char 49 '1' 0x2002BC37 - [208] unsigned char 48 '0' 0x2002BC38 - [209] unsigned char 47 '/' 0x2002BC39 - [210] unsigned char 50 '2' 0x2002BC3A - [211] unsigned char 48 '0' 0x2002BC3B - [212] unsigned char 4 '\x04' 0x2002BC3C - [213] unsigned char 0 '\x00' 0x2002BC3D - [214] unsigned char 0 '\x00' 0x2002BC3E - [215] unsigned char 0 '\x00' 0x2002BC3F - [216] unsigned char 5 '\x05' 0x2002BC40 - [217] unsigned char 0 '\x00' 0x2002BC41 - [218] unsigned char 0 '\x00' 0x2002BC42 - [219] unsigned char 0 '\x00' 0x2002BC43 - [220] unsigned char 80 'P' 0x2002BC44 - [221] unsigned char 15 '\x0f' 0x2002BC45 - [222] unsigned char 0 '\x00' 0x2002BC46 - [223] unsigned char 0 '\x00' 0x2002BC47 - [224] unsigned char 0 '\x00' 0x2002BC48 - [225] unsigned char 0 '\x00' 0x2002BC49 - [226] unsigned char 0 '\x00' 0x2002BC4A - [227] unsigned char 0 '\x00' 0x2002BC4B - [228] unsigned char 228 '\xe4' 0x2002BC4C - [229] unsigned char 12 '\x0c' 0x2002BC4D - [230] unsigned char 0 '\x00' 0x2002BC4E - [231] unsigned char 0 '\x00' 0x2002BC4F - [232] unsigned char 100 'd' 0x2002BC50 - [233] unsigned char 0 '\x00' 0x2002BC51 - [234] unsigned char 0 '\x00' 0x2002BC52 - [235] unsigned char 0 '\x00' 0x2002BC53 - [236] unsigned char 76 'L' 0x2002BC54 - [237] unsigned char 4 '\x04' 0x2002BC55 - [238] unsigned char 0 '\x00' 0x2002BC56 - [239] unsigned char 0 '\x00' 0x2002BC57 - [240] unsigned char 70 'F' 0x2002BC58 - [241] unsigned char 0 '\x00' 0x2002BC59 - [242] unsigned char 0 '\x00' 0x2002BC5A - [243] unsigned char 0 '\x00' 0x2002BC5B - [244] unsigned char 64 '@' 0x2002BC5C - [245] unsigned char 31 '\x1f' 0x2002BC5D - [246] unsigned char 0 '\x00' 0x2002BC5E - [247] unsigned char 0 '\x00' 0x2002BC5F - [248] unsigned char 136 '\x88' 0x2002BC60 - [249] unsigned char 19 '\x13' 0x2002BC61 - [250] unsigned char 0 '\x00' 0x2002BC62 - [251] unsigned char 0 '\x00' 0x2002BC63 - [252] unsigned char 2 '\x02' 0x2002BC64 - [253] unsigned char 0 '\x00' 0x2002BC65 - [254] unsigned char 0 '\x00' 0x2002BC66 - [255] unsigned char 0 '\x00' 0x2002BC67 - [256] unsigned char 0 '\x00' 0x2002BC68 - [257] unsigned char 0 '\x00' 0x2002BC69 - [258] unsigned char 0 '\x00' 0x2002BC6A - [259] unsigned char 0 '\x00' 0x2002BC6B - [260] unsigned char 0 '\x00' 0x2002BC6C - [261] unsigned char 0 '\x00' 0x2002BC6D - [262] unsigned char 0 '\x00' 0x2002BC6E - [263] unsigned char 0 '\x00' 0x2002BC6F - [264] unsigned char 247 '\xf7' 0x2002BC70 - [265] unsigned char 26 '\x1a' 0x2002BC71 - [266] unsigned char 0 '\x00' 0x2002BC72 - [267] unsigned char 0 '\x00' 0x2002BC73 diff --git a/Software/Stubs Collection/stubs/Scripts/embeddedparametersbuild_w_cleaning.cs b/Software/Stubs Collection/stubs/Scripts/embeddedparametersbuild_w_cleaning.cs deleted file mode 100644 index 16a8324ba..000000000 --- a/Software/Stubs Collection/stubs/Scripts/embeddedparametersbuild_w_cleaning.cs +++ /dev/null @@ -1,215 +0,0 @@ -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.Stubs; -using Tango.Stubs; -using Google.Protobuf; -using Tango.PMR.EmbeddedParameters; -using System.IO; -using Tango.PMR.IO; - - -public void OnExecute(StubManager stubManager) -{ -// parameters version for TESTING 1.5.0.2 - -ConfigurationParameters configurationParameters = new ConfigurationParameters(); - -configurationParameters.BreakSensorLimit = 10; - -//how many samples to collect in diagnostics before sending -configurationParameters.DiagnosticCollectionLimit = 1; - -//how many consecutive readout before declaring DC over/underheat alarm -configurationParameters.OverHeatCountLimit = 3; -configurationParameters.UnderHeatCountLimit = 3; - -// time of motor activity before opening the valve or after closing the valve, in milliseconds -configurationParameters.CloseValveTimeout = 20; -configurationParameters.OpenValveTimeout = 20; - -//backlash after filling - target pressure, timoeout, time staps (speed will be added in general parameters) -configurationParameters.InitialDispenserPressure = 3.85; //used for initial pre-run maximal pressure -configurationParameters.InitialDispenserTimeout = 120000; ////used for initial pre-run target number of steps -configurationParameters.InitialDispenserTimeLag = 100; - -//job prepare - build pressure in dispensers - target pressure, timoeout, time staps, speed -configurationParameters.DispenserBuildPressureSpeed = 950; //no more than 1000 -configurationParameters.DispenserBuildPressureLimit = 0.85; -configurationParameters.DispenserBuildPressureTimeout = 420000; // 7 minutes - long prepare for 5 cycles build -configurationParameters.DispenserBuildPressureLag = 100; - -//temperature band 1000 = 100% - thresholds for job start around target temprature - AC -configurationParameters.ACHeatersLowerOperationLimit = 995; -configurationParameters.ACHeatersUpperOperationLimit = 1005; - -//temperature band 1000 = 100% - thresholds for job start around target temprature - DC -configurationParameters.DCHeatersLowerOperationLimit = 978; -configurationParameters.DCHeatersUpperOperationLimit = 1005; - -// mid tank reading offset to add to the readout (OBSOLETE!) -configurationParameters.MidTankPressureCorrection = 0.0; - -//waste factor for intersegment pressure building -configurationParameters.DispenserPresegmentWFCF = 40; -//how much time to start the WFCF process (pressure buildup) before segment start -configurationParameters.IDSPreSegmentWFCFTimeBeforeSegment = 12000; - -//flag: start heaters according to saved process parameters upon init? -configurationParameters.StartHeatingOnInitSequence = true; - -// current test for the heaters - alarm thresholds -configurationParameters.CurrentAlarmLowLimit = 0.78; -configurationParameters.CurrentAlarmHighLimit = 1.07; - -//currently not in use -configurationParameters.IDSSegmentRefillTimeout = 5000; -configurationParameters.IDSPreSegmentBuildupTime = 5000; -//cleaning!!!!!!!!!! -configurationParameters.IDSCleaningSpeed = 800; -configurationParameters.IDSCleaningStopBeforeSegmentTime = 10000; //end of presegemnt -configurationParameters.IDSCleaningStartSprayPreSegmentTime =2000; //beginning of presegment - -int Tup = 10,Tdelay1 = 98,Tdelay2 = 198; //350nsec up, 1 second delay, 2 seconds before up again -// Tup = LeftRockerSpeed/100; -// Tdelay1 = LeftRockerSpeed%100; -// Tdelay2 = RightRockerSpeed; -int LeftRockerSpeed = Tup*100+Tdelay1; -int RightRockerSpeed = Tdelay2; - -configurationParameters.IDSLeftCleaningMotorSpeed = LeftRockerSpeed; -configurationParameters.IDSRightCleaningMotorSpeed = RightRockerSpeed; - -configurationParameters.SwitchToIdleTimeinSeconds = 3600; -configurationParameters.IdleDrierTemperature = 80; -configurationParameters.IdleHeadTemperature = 80; -configurationParameters.IdleMixerTemperature = 0; -configurationParameters.PowerOffTemperatureLimit = 100; - -//general parameters, ORDER MUST BE PRESERVED!!!! -//check the dispensers hard limit alarms -/*1*/ -Double checkHardLimitAlarms = new Double(); - -checkHardLimitAlarms = 1.0; -configurationParameters.GeneralParameters.Add(checkHardLimitAlarms); - -/*2*/ -Double checkCurrentAlarms = new Double(); -checkCurrentAlarms = 1.0; -configurationParameters.GeneralParameters.Add(checkCurrentAlarms); -//check the tamper alarms - -/*3*/ -Double checkTamperAlarms = new Double(); -checkTamperAlarms = 0.0; -configurationParameters.GeneralParameters.Add(checkTamperAlarms); - -/*4*/ -Double checkMotorAlarms = new Double(); -checkMotorAlarms = 1.0; -configurationParameters.GeneralParameters.Add(checkMotorAlarms); - -/*5*/ -Double WinderBackToBaseTime = new Double(); -WinderBackToBaseTime = 820.0; -configurationParameters.GeneralParameters.Add(WinderBackToBaseTime); - -/*6*/ -Double DispenserInitialPressureSpeed = new Double(); -DispenserInitialPressureSpeed = 1050.0; -configurationParameters.GeneralParameters.Add(DispenserInitialPressureSpeed); - -/*7*/ -Double SetDiagnosticMode = new Double(); -SetDiagnosticMode = 3.0; -configurationParameters.GeneralParameters.Add(SetDiagnosticMode); - -/*8*/ -Double SetAutoFill = new Double(); -SetAutoFill = 3.0; -configurationParameters.GeneralParameters.Add(SetAutoFill); - -double PowerOffDisableCleaning = new Double(); -PowerOffDisableCleaning = 0.0; -configurationParameters.GeneralParameters.Add(PowerOffDisableCleaning); - -double SublimationBlowTime = new Double(); -SublimationBlowTime = 30.0; -configurationParameters.GeneralParameters.Add(SublimationBlowTime); - -double AllowedRangeForHeadBlowerDeviation = new Double(); -AllowedRangeForHeadBlowerDeviation = 7; -configurationParameters.GeneralParameters.Add(AllowedRangeForHeadBlowerDeviation); - -double AllowedRangeForWasteBlowerDeviation = new Double(); -AllowedRangeForWasteBlowerDeviation = 20; -configurationParameters.GeneralParameters.Add(AllowedRangeForWasteBlowerDeviation); - -double Voltage_Hysteresis = new Double(); -Voltage_Hysteresis = 4; -configurationParameters.GeneralParameters.Add(Voltage_Hysteresis); - -File.WriteAllBytes("C:/temp/EmbParam.cfg",configurationParameters.ToBytes()); - -byte[] fileBytes = File.ReadAllBytes("C:/temp/EmbParam.cfg"); - - -var config = ConfigurationParameters.Parser.ParseFrom(fileBytes); - -stubManager.Write( config); -Thread.Sleep(1000); - - -stubManager.Write("\n\n Deleting old file"); - -DeleteRequest deleteRequest = new DeleteRequest(); -deleteRequest.Path = "SYSINFO//EmbParam.cfg"; -deleteRequest.Attribute = Tango.PMR.IO.FileAttribute.Unspecified; -DeleteResponse response5 = stubManager.Run<DeleteResponse>(deleteRequest); - - -Thread.Sleep(1000); -stubManager.Write("\n\n Loading new file file"); - -FileUploadRequest fileUploadRequest = new FileUploadRequest(); -fileUploadRequest.Path = "SYSINFO//EmbParam.cfg"; -fileUploadRequest.Length = (int)fileBytes.Length; -FileUploadResponse response2 = stubManager.Run<FileUploadResponse>(fileUploadRequest); -Thread.Sleep(1000); -long chunk_size = response2.MaxChunkLength; - -FileStream fs = new FileStream("C:/temp/EmbParam.cfg",FileMode.Open); - -while (fs.Position < fs.Length) -{ - stubManager.Write("Position "+ fs.Position+ " Length "+ fs.Length +"\n\n"); - FileChunkUploadRequest fileChunkUploadRequest = new FileChunkUploadRequest(); - fileChunkUploadRequest.UploadID = response2.UploadID; - byte[] chunk = new byte[Math.Min(chunk_size,fs.Length - fs.Position)]; - fs.Read(chunk,0,chunk.Length); - fileChunkUploadRequest.Buffer = ByteString.CopyFrom(chunk); - var response3 = stubManager.Run<FileChunkUploadResponse>(fileChunkUploadRequest); - Thread.Sleep(2000); - -} - -// activating the new file -ProgressRequest progressRequest = new ProgressRequest(); -progressRequest.Amount = 0xCD; -progressRequest.Delay = 0xCD; -var response1 = stubManager.Run<ProgressResponse>(progressRequest); - - -/* -13:46:42.38: Executing script 'embeddedparametersbuild.cs'... -{ "BreakSensorLimit": 10, "DiagnosticCollectionLimit": 1, "OverHeatCountLimit": 3, "UnderHeatCountLimit": 3, "CloseValveTimeout": 255, "OpenValveTimeout": 255, "InitialDispenserPressure": 1.5, "InitialDispenserTimeout": 60000, "InitialDispenserTimeLag": 100, "DispenserBuildPressureSpeed": 800, "DispenserBuildPressureLimit": 0.9, "DispenserBuildPressureTimeout": 80000, "DispenserBuildPressureLag": 50, "ACHeatersLowerOperationLimit": 995, "ACHeatersUpperOperationLimit": 1005, "DCHeatersLowerOperationLimit": 978, "DCHeatersUpperOperationLimit": 1005, "DispenserPresegmentWFCF": 80, "StartHeatingOnInitSequence": true, "GeneralParameters": [ 1, 1, 1, 1, 800, 1000 ], "CurrentAlarmLowLimit": 0.8, "CurrentAlarmHighLimit": 1.07, "IDSSegmentRefillTimeout": 5000, "IDSPreSegmentBuildupTime": 5000, "IDSCleaningSpeed": 50, "IDSCleaningStopBeforeSegmentTime": 3000, "IDSCleaningStartSprayPreSegmentTime": 1000, "IDSLeftCleaningMotorSpeed": 30, "IDSRightCleaningMotorSpeed": 23, "SwitchToIdleTimeinSeconds": 3600, "IdleDrierTemperature": 80, "IdleHeadTemperature": 80, "PowerOffTemperatureLimit": 50, "IDSPreSegmentWFCFTimeBeforeSegment": 1500 } */ - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/load parameters from machine.cs b/Software/Stubs Collection/stubs/Scripts/load parameters from machine.cs deleted file mode 100644 index 62ceff195..000000000 --- a/Software/Stubs Collection/stubs/Scripts/load parameters from machine.cs +++ /dev/null @@ -1,59 +0,0 @@ -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.Stubs; -using Tango.Stubs; -using Google.Protobuf; -using Tango.PMR.EmbeddedParameters; -using System.IO; -using Tango.PMR.IO; - - -public void OnExecute(StubManager stubManager) -{ - - -ConfigurationParameters configurationParameters = new ConfigurationParameters(); - - Thread.Sleep(1000); - -stubManager.Write("\n\n Loading file from machine"); - -FileDownloadRequest fileDownloadRequest = new FileDownloadRequest(); -fileDownloadRequest.FileName = "SYSINFO//EmbParam.cfg"; -FileDownloadResponse response2 = stubManager.Run<FileDownloadResponse>(fileDownloadRequest); - Thread.Sleep(1000); -long chunk_size = response2.MaxChunkLength; -string Download_Id = response2.DownloadID; -//FileStream fs = new FileStream("C:/temp/EmbParam.cfg",FileMode.Open); - -stubManager.Write("Position "+ response2.DownloadID+ " Length "+ response2.MaxChunkLength +"\n\n"); -FileChunkDownloadRequest fileChunkDownloadRequest = new FileChunkDownloadRequest(); -fileChunkDownloadRequest.DownloadID = response2.DownloadID; -var response3 = stubManager.Run<FileChunkDownloadResponse>(fileChunkDownloadRequest); -Thread.Sleep(2000); -//byte[] chunk = new byte[500];//Math.Min(chunk_size,fs.Length - fs.Position) -//chunk.Copy(response3.Buffer); -//fs.Write(fs,chunk,chunk.Length); - //fileChunkDownloadRequest.Buffer = ByteString.CopyFrom(chunk); -//fs.Close(fs); - -//byte[] fileBytes = File.ReadAllBytes(fs); - - -var config = ConfigurationParameters.Parser.ParseFrom(response3.Buffer); - - stubManager.Write( config); - -/* -13:46:42.38: Executing script 'embeddedparametersbuild.cs'... -{ "BreakSensorLimit": 10, "DiagnosticCollectionLimit": 1, "OverHeatCountLimit": 3, "UnderHeatCountLimit": 3, "CloseValveTimeout": 255, "OpenValveTimeout": 255, "InitialDispenserPressure": 1.5, "InitialDispenserTimeout": 60000, "InitialDispenserTimeLag": 100, "DispenserBuildPressureSpeed": 800, "DispenserBuildPressureLimit": 0.9, "DispenserBuildPressureTimeout": 80000, "DispenserBuildPressureLag": 50, "ACHeatersLowerOperationLimit": 995, "ACHeatersUpperOperationLimit": 1005, "DCHeatersLowerOperationLimit": 978, "DCHeatersUpperOperationLimit": 1005, "DispenserPresegmentWFCF": 80, "StartHeatingOnInitSequence": true, "GeneralParameters": [ 1, 1, 1, 1, 800, 1000 ], "CurrentAlarmLowLimit": 0.8, "CurrentAlarmHighLimit": 1.07, "IDSSegmentRefillTimeout": 5000, "IDSPreSegmentBuildupTime": 5000, "IDSCleaningSpeed": 50, "IDSCleaningStopBeforeSegmentTime": 3000, "IDSCleaningStartSprayPreSegmentTime": 1000, "IDSLeftCleaningMotorSpeed": 30, "IDSRightCleaningMotorSpeed": 23, "SwitchToIdleTimeinSeconds": 3600, "IdleDrierTemperature": 80, "IdleHeadTemperature": 80, "PowerOffTemperatureLimit": 50, "IDSPreSegmentWFCFTimeBeforeSegment": 1500 } */ - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/magnet_new_head.cs b/Software/Stubs Collection/stubs/Scripts/magnet_new_head.cs deleted file mode 100644 index bf48de49e..000000000 --- a/Software/Stubs Collection/stubs/Scripts/magnet_new_head.cs +++ /dev/null @@ -1,23 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - for (int i = 0; i < 1000; i++) - { - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,0x42F701); // turn magnet on //slave add 0x42, F for write, set bit 7 - Thread.Sleep(100); - - - - } -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/motormov.cs b/Software/Stubs Collection/stubs/Scripts/motormov.cs deleted file mode 100644 index 94862a76a..000000000 --- a/Software/Stubs Collection/stubs/Scripts/motormov.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System; -using System.Text; -using System.IO; -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - - -StubMotorMovRequest stubMotorMovRequest = new StubMotorMovRequest(); -stubMotorMovRequest.MotorID = 21; -stubMotorMovRequest.Direction = false; -stubMotorMovRequest.Position = 1; -} - diff --git a/Software/Stubs Collection/stubs/Scripts/new dispenser card GPIO.cs b/Software/Stubs Collection/stubs/Scripts/new dispenser card GPIO.cs deleted file mode 100644 index 43d0dd76a..000000000 --- a/Software/Stubs Collection/stubs/Scripts/new dispenser card GPIO.cs +++ /dev/null @@ -1,90 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - // Request ---- - // UInt32 : DispenserId - // Boolean : Start --- true for ByPass - // Boolean : SetDirection --- true for TestRelay - // UInt32 : SetMicrostepDivision -- 1 for TestByPassTestRelay - // Int32 : SetSpeed - - // Response ---- - // UInt32 : DispenserId - // UInt32 : DispenserPosition --- MSB for Disp_UP, LSB for Disp_Down - // UInt32 : InkWorningLevel ---- MSB for Realy_On, LSB for Over_Press - // String : Status - // UInt32 : StatusWord - - stubManager.Write("read inputs "); - stubManager.WriteLine(""); - var response = stubManager.Run<StubDispenserResponse>("StubDispenserRequest" ,3, false, false, 0, 0);//read inputs - stubManager.Write("MSB for Disp_UP, LSB for Disp_Down "); - stubManager.WriteHex((response.DispenserPosition),4); - stubManager.WriteLine(""); - stubManager.Write("MSB for Realy_On, LSB for Over_Press "); - stubManager.WriteHex((response.InkWorningLevel),4); - stubManager.WriteLine(""); - stubManager.WriteLine("----"); - stubManager.WriteLine(""); - - stubManager.Write("TestRelay + read inputs "); - stubManager.WriteLine(""); - response = stubManager.Run<StubDispenserResponse>("StubDispenserRequest" ,3, false, true, 0, 0);//TestRelay + read inputs - stubManager.Write("MSB for Disp_UP, LSB for Disp_Down "); - stubManager.WriteHex((response.DispenserPosition),4); - stubManager.WriteLine(""); - stubManager.Write("MSB for Realy_On, LSB for Over_Press "); - stubManager.WriteHex((response.InkWorningLevel),4); - stubManager.WriteLine(""); - stubManager.WriteLine("----"); - stubManager.WriteLine(""); - - stubManager.Write("ByPass + TestRelay + read inputs "); - stubManager.WriteLine(""); - response = stubManager.Run<StubDispenserResponse>("StubDispenserRequest" ,3, true, true, 0, 0);//ByPass + TestRelay + read inputs - stubManager.Write("MSB for Disp_UP, LSB for Disp_Down "); - stubManager.WriteHex((response.DispenserPosition),4); - stubManager.WriteLine(""); - stubManager.Write("MSB for Realy_On, LSB for Over_Press "); - stubManager.WriteHex((response.InkWorningLevel),4); - stubManager.WriteLine(""); - stubManager.WriteLine("----"); - stubManager.WriteLine(""); - - stubManager.Write("Remove ByPass (TestRelay + read inputs) "); - stubManager.WriteLine(""); - response = stubManager.Run<StubDispenserResponse>("StubDispenserRequest" ,3, false, true, 0, 0);//TestRelay + read inputs - stubManager.Write("MSB for Disp_UP, LSB for Disp_Down "); - stubManager.WriteHex((response.DispenserPosition),4); - stubManager.WriteLine(""); - stubManager.Write("MSB for Realy_On, LSB for Over_Press "); - stubManager.WriteHex((response.InkWorningLevel),4); - stubManager.WriteLine(""); - stubManager.WriteLine("----"); - stubManager.WriteLine(""); - - - stubManager.Write("Rempve TestRelay and read inputs "); - stubManager.WriteLine(""); - response = stubManager.Run<StubDispenserResponse>("StubDispenserRequest" ,3, false, false, 0, 0);//read input - stubManager.Write("MSB for Disp_UP, LSB for Disp_Down "); - stubManager.WriteHex((response.DispenserPosition),4); - stubManager.WriteLine(""); - stubManager.Write("MSB for Realy_On, LSB for Over_Press "); - stubManager.WriteHex((response.InkWorningLevel),4); - stubManager.WriteLine(""); - stubManager.WriteLine("----"); - stubManager.WriteLine(""); - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/process parameters.cs b/Software/Stubs Collection/stubs/Scripts/process parameters.cs deleted file mode 100644 index d2b36b111..000000000 --- a/Software/Stubs Collection/stubs/Scripts/process parameters.cs +++ /dev/null @@ -1,57 +0,0 @@ -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.Stubs; - -public void OnExecute(StubManager stubManager) -{ - -UploadProcessParametersRequest uploadProcessParametersRequest = new UploadProcessParametersRequest(); - -ProcessParameters processParameters = new ProcessParameters(); -processParameters.DyeingSpeed = 0; -processParameters.MinInkUptake = 0; -processParameters.MaxInkUptake = 0; -processParameters.FeederTension = 0; -processParameters.PullerTension = 0; -processParameters.WinderTension = 0; -processParameters.MixerTemp = 0; -processParameters.HeadZone1Temp = 0; -processParameters.HeadZone2Temp = 0; -processParameters.HeadZone3Temp = 0; -processParameters.HeadZone4Temp = 0; -processParameters.HeadZone5Temp = 0; -processParameters.HeadZone6Temp = 0; -processParameters.DryerAirFlow = 0; -processParameters.DryerZone1Temp = 100; -processParameters.DryerZone2Temp = 0; -processParameters.DryerZone3Temp = 0; -processParameters.DryerBufferLength = 0; -processParameters.HeadAirFlow = 0; -processParameters.TableIndex = 0; -processParameters.HeadZone7Temp = 0; -processParameters.HeadZone8Temp = 0; -processParameters.HeadZone9Temp = 0; -processParameters.HeadZone10Temp = 0; -processParameters.HeadZone11Temp = 0; -processParameters.HeadZone12Temp = 0; -processParameters.RBlowerFlow = 0; -processParameters.RBlowerTemp = 0; -processParameters.LBlowerFlow = 0; -processParameters.LBlowerTemp = 0; -processParameters.PressureBuildUp = 0; - -uploadProcessParametersRequest.ProcessParameters = processParameters; - - - - var response = stubManager.Run<UploadProcessParametersResponse>(uploadProcessParametersRequest); - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/progress_test.pproj b/Software/Stubs Collection/stubs/Scripts/progress_test.pproj deleted file mode 100644 index 29d02caa2..000000000 --- a/Software/Stubs Collection/stubs/Scripts/progress_test.pproj +++ /dev/null @@ -1 +0,0 @@ -{"$id":"1","Name":"untitled","Description":null,"Scripts":{"$id":"2","$values":[{"$id":"3","Name":"Program.csx","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Entities;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Program\r\n{\r\n public void OnExecute(IProcedureContext context)\r\n {\r\n context.AddResult(ResultType.Passed, \"My Value Name\", \"Test for this value has passed.\");\r\n\t\t\r\nfor (int i=0;i<10;i++)\r\n{\r\n Thread.Sleep(10000);\r\n context.UpdateProgress(\"11111\",true,i,10);\r\n\t}\t\r\n }\r\n}","IsEntryPoint":true},{"$id":"4","Name":"Service.csx","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Entities;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}","IsEntryPoint":false}]},"Inputs":{"$id":"5","$values":[]},"Variables":{"$id":"6","$values":[]},"ReferenceAssemblies":{"$id":"7","$values":[{"$id":"8","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"9","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"10","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"11","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"12","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"13","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"14","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"15","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"16","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"17","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"18","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"Resources":{"$id":"19","$values":[]},"Dialogs":{"$id":"20","$values":[]},"ID":"b99ea8ff-f5ff-44d5-8b33-4b534a14647b","ApartmentState":"STA"}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/read and store main card data.cs b/Software/Stubs Collection/stubs/Scripts/read and store main card data.cs deleted file mode 100644 index aec6bef3d..000000000 --- a/Software/Stubs Collection/stubs/Scripts/read and store main card data.cs +++ /dev/null @@ -1,83 +0,0 @@ -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.Stubs; -using Tango.PMR.EmbeddedParameters; -using Tango.Stubs; -using System.IO; -using Tango.PMR.IO; -using Google.Protobuf; - -string[] Main_Card_EEpromAddress = { -"DATA_SIZE", -"DANCER_0", -"DANCER_1", -"DANCER_2", -"DRYER_CENTER", -"DRYER_CYCLES", -"MIDTANK_1_A", -"MIDTANK_1_B", -"MIDTANK_2_A", -"MIDTANK_2_B", -"MIDTANK_3_A", -"MIDTANK_3_B", -"MIDTANK_4_A", -"MIDTANK_4_B", -"MIDTANK_5_A", -"MIDTANK_5_B", -"MIDTANK_6_A", -"MIDTANK_6_B", -"MIDTANK_7_A", -"MIDTANK_7_B", -"MIDTANK_8_A", -"MIDTANK_8_B", -"WINDER_CALIBRATION", -"EMBEDDED_VERSION", -"EEPROM_ALARM_SUPPORT", -"EEPROM_ORIFICE1_ZERO_VALUE", -"EEPROM_ORIFICE3_ZERO_VALUE", -"EEPROM_WASTE_TANK_ZERO_VALUE", -"EEPROM_PULLER_TENSION_POSITION", -"EEPROM_WINDER_TENSION_POSITION", -"EEPROM_INIT_FAILURE_COUNTER", -"DANCER_3", -"DANCER_4", -"EEPROM_PRESSURE_SENSOR_V0_0", -"EEPROM_PRESSURE_SENSOR_V0_1", -"EEPROM_DRIER_LOADING_ARM_ANGLE"}; - - -private const string JSON_FILE_PATH = "C:/temp/maineeprom.json"; -private const string CSV_FILE_PATH = "C:/temp/maineeprom.csv"; -public void OnExecute(StubManager stubManager) -{ - StubReadEmbeddedVersionRequest stubReadEmbeddedVersionRequest = new StubReadEmbeddedVersionRequest(); - var response2 = stubManager.Run<StubReadEmbeddedVersionResponse>(stubReadEmbeddedVersionRequest); - - if ((response2.VerMajor>=1)&&(response2.VerMinor>=5)&&(response2.VerPatch>=5)&&(response2.VerBuild>=2)) - { - MainCardStoredDataRequest mainCardStoredDataRequest = new MainCardStoredDataRequest(); - var response3 = stubManager.Run<MainCardStoredDataResponse>(mainCardStoredDataRequest); - stubManager.AppendToFile(JSON_FILE_PATH, "MainCardStoredData: "+ response3); - } - else - { - stubManager.AppendToFile(CSV_FILE_PATH, "Address,Name,Data"); - for (int i = 1; i < 36; i++) - { - StubMainCardEEpromReadRequest stubMainCardEEpromReadRequest = new StubMainCardEEpromReadRequest(); - stubMainCardEEpromReadRequest.Address = i; - stubMainCardEEpromReadRequest.Data = 0; - - var response = stubManager.Run<StubMainCardEEpromReadResponse>(stubMainCardEEpromReadRequest); - stubManager.AppendToFile(CSV_FILE_PATH, response.Address + "," + Main_Card_EEpromAddress[i] +"," + response.Data); - } - } - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/read write main eeprom fixed.cs b/Software/Stubs Collection/stubs/Scripts/read write main eeprom fixed.cs deleted file mode 100644 index 0f3ca238e..000000000 --- a/Software/Stubs Collection/stubs/Scripts/read write main eeprom fixed.cs +++ /dev/null @@ -1,45 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - - int WinderAddress =29; - int pullerAddress = 28; - StubMainCardEEpromReadRequest stubMainCardEEpromReadRequest = new StubMainCardEEpromReadRequest(); - StubMainCardEEpromWriteRequest stubMainCardEEpromWriteRequest = new StubMainCardEEpromWriteRequest(); - - stubMainCardEEpromReadRequest.Address = WinderAddress; - stubMainCardEEpromReadRequest.Data = 0; - - //var response = stubManager.Run<StubMainCardEEpromReadResponse>(stubMainCardEEpromReadRequest); - - stubMainCardEEpromWriteRequest.Address = WinderAddress; - stubMainCardEEpromWriteRequest.Data = 0; - - var response1 = stubManager.Run<StubMainCardEEpromWriteResponse>(stubMainCardEEpromWriteRequest); - - var response = stubManager.Run<StubMainCardEEpromReadResponse>(stubMainCardEEpromReadRequest); - - stubMainCardEEpromReadRequest.Address = pullerAddress; - stubMainCardEEpromReadRequest.Data = 0; - -// var response = stubManager.Run<StubMainCardEEpromReadResponse>(stubMainCardEEpromReadRequest); - - stubMainCardEEpromWriteRequest.Address = pullerAddress; - stubMainCardEEpromWriteRequest.Data = 0; - - response1 = stubManager.Run<StubMainCardEEpromWriteResponse>(stubMainCardEEpromWriteRequest); - - response = stubManager.Run<StubMainCardEEpromReadResponse>(stubMainCardEEpromReadRequest); - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/read write main eeprom.cs b/Software/Stubs Collection/stubs/Scripts/read write main eeprom.cs deleted file mode 100644 index d418d5e0e..000000000 --- a/Software/Stubs Collection/stubs/Scripts/read write main eeprom.cs +++ /dev/null @@ -1,45 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - - int WinderAddress =29; - int pullerAddress = 28; - StubMainCardEEpromReadRequest stubMainCardEEpromReadRequest = new StubMainCardEEpromReadRequest(); - StubMainCardEEpromWriteRequest stubMainCardEEpromWriteRequest = new StubMainCardEEpromWriteRequest(); - - stubMainCardEEpromReadRequest.Address = WinderAddress; - stubMainCardEEpromReadRequest.Data = 0; - -// var response = stubManager.Run<StubMainCardEEpromReadResponse>(stubMainCardEEpromReadRequest); - - stubMainCardEEpromWriteRequest.Address = WinderAddress; - stubMainCardEEpromWriteRequest.Data = 0; - - var response1 = stubManager.Run<StubMainCardEEpromWriteResponse>(stubMainCardEEpromWriteRequest); - - var response = stubManager.Run<StubMainCardEEpromReadResponse>(stubMainCardEEpromReadRequest); - - stubMainCardEEpromReadRequest.Address = pullerAddress; - stubMainCardEEpromReadRequest.Data = 0; - -// var response = stubManager.Run<StubMainCardEEpromReadResponse>(stubMainCardEEpromReadRequest); - - stubMainCardEEpromWriteRequest.Address = pullerAddress; - stubMainCardEEpromWriteRequest.Data = 0; - - var response1 = stubManager.Run<StubMainCardEEpromWriteResponse>(stubMainCardEEpromWriteRequest); - - var response = stubManager.Run<StubMainCardEEpromReadResponse>(stubMainCardEEpromReadRequest); - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/read_cpu_eeprom.cs b/Software/Stubs Collection/stubs/Scripts/read_cpu_eeprom.cs deleted file mode 100644 index e5960c3f3..000000000 --- a/Software/Stubs Collection/stubs/Scripts/read_cpu_eeprom.cs +++ /dev/null @@ -1,29 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - var response = stubManager.Run<StubMainCardEEpromReadResponse>("StubMainCardEEpromReadRequest" ,30, 0); - stubManager.Write("\ninit counter: \t"+ response.Data ); - response = stubManager.Run<StubMainCardEEpromReadResponse>("StubMainCardEEpromReadRequest" ,40, 0); - stubManager.Write("\nnumber of resets: \t"+ response.Data ); - int j = response.Data; - - for (Int32 i=0;i<j;i++) - { - response = stubManager.Run<StubMainCardEEpromReadResponse>("StubMainCardEEpromReadRequest" ,41+i, 3); - - stubManager.Write("\nAddress \t"+ i + "\tdata = " ); - stubManager.WriteHex(response.Data,4); - - } -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/single temperature.cs b/Software/Stubs Collection/stubs/Scripts/single temperature.cs deleted file mode 100644 index a65e7ccca..000000000 --- a/Software/Stubs Collection/stubs/Scripts/single temperature.cs +++ /dev/null @@ -1,23 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - - -ProgressRequest progressRequest = new ProgressRequest(); -progressRequest.Amount = 0xCC; -progressRequest.Delay = 1; - - var response = stubManager.Run<ProgressResponse>(progressRequest); - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/temp.cs b/Software/Stubs Collection/stubs/Scripts/temp.cs deleted file mode 100644 index 23508b71b..000000000 --- a/Software/Stubs Collection/stubs/Scripts/temp.cs +++ /dev/null @@ -1,492 +0,0 @@ -using System; -using System.Text; -using System.IO; -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -string path=""; - Form form1 = new Form(); - Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x14000000); //set kval ran to 0x14,0.65A - -// Set the caption bar text of the form. - form1.TopMost = true; - form1.Text = "RTFU Test"; - form1.FormBorderStyle = FormBorderStyle.FixedDialog; - form1.MaximizeBox = false; - form1.MinimizeBox = false; - form1.StartPosition = FormStartPosition.CenterScreen; - form1.AutoSize = true; - form1.AutoSizeMode = AutoSizeMode.GrowAndShrink; -// Create buttons to Run. - Button button1 = new Button () - { - Width = 100, - Height = 100, - }; - button1.Text = "Run"; - button1.Location = new Point (40, 100); - form1.Controls.Add(button1); -//-----RTFU Serial Number ----------- - - Label Label1 = new Label () - { - Width = 150, - Height = 20, - Text =" RTFU S/N" - }; - Label1.Location = new Point (30, 10); - form1.Controls.Add(Label1); - TextBox TextBox1 = new TextBox () - { - Width = 100, - Height = 10, - Text ="" - }; - TextBox1.Location = new Point (40, 40); - form1.Controls.Add(TextBox1); - //----------LOCATION---------- - - Label Label3 = new Label () - { - Width = 150, - Height = 20, - Text ="LOCATION" - }; -Label3.Location = new Point (350, 10); - form1.Controls.Add(Label3); - - - -TextBox TextBox3 = new TextBox () - { - Width = 100, - Height = 10, - Text ="" - }; -TextBox3.Location = new Point (360, 40); - form1.Controls.Add(TextBox3); - - - - - Label Label5 = new Label () - { - Width = 120, - Height =100, - Text = "" - }; - Label5.Location = new Point (300, 100); - Label5.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; - - Label5.Text=""; - Label5.Font = new Font("Arial", 24,FontStyle.Bold); - form1.Controls.Add(Label5); - - - - -//-------------------------------------------------------------------------------- - - stubManager.Write("Counter is 2 \n"); - - button1.Click += (_,__) => - - { - - Label5.Text="Pros"; - - if (!Directory.Exists(path1)) - { - path=path2; - if (!Directory.Exists(path2)) - Directory.CreateDirectory(path2); - } - else - path=path1; - - File_Name1=path + TextBox1.Text +"_RTFU_" + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".log" ; - - - stubManager.Write(File_Name1 +"\n"); - stubManager.WriteToFile(File_Name1,DateTime.Now +" " ); - stubManager.Write(DateTime.Now +"\n" ); - - stubManager.AppendToFile(File_Name1,"RTFU Test Report" ); - stubManager.Write("RTFU Test Report\n" ); - - stubManager.AppendToFile(File_Name1,"RTFU S/N: \t" + TextBox1.Text ); - stubManager.Write("RTFU S/N:" + TextBox1.Text +"\n" ); - - - stubManager.AppendToFile(File_Name1,"Location:\t" + TextBox3.Text ); - stubManager.Write("Location:" + TextBox3.Text +"\n" ); - - -//------------------------------- start test ----------- - Test_RLOADING_RTFU(); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading high z - Thread.Sleep(100); - Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x14000000); //set kval ran to 0x14,0.65A - - Test_RDRIVING_RTFU(); - Test_DANCER_RTFU(); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RDANCER_Motor, 3); //hold Rloading high z - - Status=write_to_file(); - stubManager.Write(Status +"\n"); - - Label5.Text=Status; - TextBox1.Text=""; - }; - - form1.ShowDialog(); - - return ; - } - //------------------------------------ -int Test_RLOADING_RTFU() -{ - int temp=1; - int counter; - - Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x2c000000); //set kval ran to 0x2c- 1.3A - Thread.Sleep(100); - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RLOADING_Motor, true,200); //move Rloading down - Thread.Sleep(3000); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading high z - Thread.Sleep(1000); -//------------------------------------------ check F1_LS_RLOADMOTOR_up------------------------------------------------ - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //read LS - if ((response.Value & F1_LS_RLOADMOTOR_UP) !=F1_LS_RLOADMOTOR_UP ) //if LS_RLOADMOTOR_UP is up then error - { - DialogResult result = MessageBox.Show("Did RLOADIN MOTOR Move?", "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.Yes) - { - Units_status[0,1]="Fail"; - stubManager.Write("LS_RLOADMOTOR_UP\tFail\n"); - return 0; - } - else - { - Units_status[2,1]="Fail"; - stubManager.Write("RLOADMOTOR\tFail\n"); - return 0; - } - } - -//----------------------------------------- mov RLOADING up ------------------------------------------------- - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RLOADING_Motor,false,200); //move Rloading up - counter =0; - while ( counter < 150) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if LS_RLOADMOTOR_UP is up then move down - if ((response.Value & F1_LS_RLOADMOTOR_UP) != F1_LS_RLOADMOTOR_UP ) - counter=250; - - Thread.Sleep(100); - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading high z - - if (counter == 150) - { - Units_status[0,1]="Fail"; - stubManager.Write("LS_RLOADMOTOR_UP\tFail\n"); - return 0; - } - DialogResult result1 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo); - if(result1 == DialogResult.No) - { - Units_status[0,1]="Fail"; - stubManager.Write("LS_RLOADMOTOR_UP Not calibrate\n"); - return 0; - } - Units_status[0,1]="Pass"; - Units_status[2,1]="Pass"; - -//------------------------------------------ check F1_LS_RLOADMOTOR_DN------------------------------------------------ - - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //read LS - - if ((response.Value & F1_LS_RLOADMOTOR_DN) !=F1_LS_RLOADMOTOR_DN ) //if LS_RLOADMOTOR_DN is up then error - { - Units_status[1,1]="Fail"; - stubManager.Write("LS_RLOADMOTOR_DN\tFail\n"); - return 0; - } -//------------------------------------------ mov RLOADING dn ------------------------------------------------ - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RLOADING_Motor, true,200); //move Rloading down - counter =0; - while ( counter < 150) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if LS_RLOADMOTOR_UP is up then move down - if ((response.Value & F1_LS_RLOADMOTOR_DN) != F1_LS_RLOADMOTOR_DN ) - counter=250; - - Thread.Sleep(100); - } - - if (counter == 150) - { - Units_status[1,1]="Fail"; - stubManager.Write("LS_RLOADMOTOR_DN\tFail\n"); - return 0; - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading high z - - DialogResult result2 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo); - if(result2 == DialogResult.No) - { - Units_status[1,1]="Fail"; - stubManager.Write("LS_RLOADMOTOR_DN Not calibrate\n"); - return 0; - } - Units_status[1,1]="Pass"; - stubManager.Write("RLOADMOTOR\tPass\n"); - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RLOADING_Motor, true,200); //move Rloading down - Thread.Sleep(2000); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading high z - - return 1 ; - -} - -//---------------------------------- - -Int32 ReadEncoder() -{ - Int32 temp; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F1_RDANCER_ROTENC_DATA_p_TX, 0x0000); //triggers a TX transmission - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_RDANCER_ROTENC_DATA_p_RX_lsb); - var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_RDANCER_ROTENC_DATA_p_RX_msb); - - temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff)); - - - return temp; -} -//-------------------------------------------------------------------------------- -int Test_DANCER_RTFU() -{ - int counter; - Int32 temp; - Int32 temp1; - -//------------------------------------------ check F1_LS_RDANCER_DOWN ------------------------------------------------ - - MessageBox.Show("Make sure RDANCER Doun"); - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //read LS - if ((response.Value & F1_LS_RDANCER_DOWN) !=F1_LS_RDANCER_DOWN ) //if F1_LS_RDANCER_DOWN is up then error - { - Units_status[4,1]="Fail"; - stubManager.Write("LS_RDANCER_DOWN\tFail\n"); - return 0; - } -//----------------------------------------- mov RDANCER_Motor up and check F1_LS_RDANCER_DOWN ------------------------------------------------- - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RDANCER_Motor,true,10); //move Rloading up - counter =0; - while ( counter < 150) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if LS_RLOADMOTOR_UP is up then move down - if ((response.Value & F1_LS_RDANCER_DOWN) != F1_LS_RDANCER_DOWN ) - counter=250; - - Thread.Sleep(100); - } - if (counter == 150) - { - Units_status[4,1]="Fail"; - stubManager.Write("LS_RDANCER_DOWN\tFail\n"); - return 0; - } - Units_status[4,1]="Pass"; - stubManager.Write("LS_RDANCER_DOWN\tPass\n"); - -//----------------------------------------- check F1_LS_RDANCER_UP ------------------------------------------------- - - if ((response.Value & F1_LS_RDANCER_UP) !=F1_LS_RDANCER_UP ) //if F1_LS_RDANCER_UP is up then error - { - Units_status[5,1]="Fail"; - stubManager.Write("LS_RDANCER_UP\tFail\n"); - return 0; - } - counter =0; - while ( counter < 150) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if F1_LS_RDANCER_UP is up then move down - if ((response.Value & F1_LS_RDANCER_UP) != F1_LS_RDANCER_UP ) - counter=250; - - Thread.Sleep(100); - } - if (counter == 150) - { - Units_status[5,1]="Fail"; - stubManager.Write("LS_RDANCER_UP\tFail\n"); - return 0; - } - Units_status[5,1]="Pass"; - stubManager.Write("LS_RDANCER_UP\tPass\n"); - -//----------------------------------------- check F1_LS_RLOADRAM_DOWN ------------------------------------------------- - - if ((response.Value & F1_LS_RLOADRAM_DOWN) !=F1_LS_RLOADRAM_DOWN ) //if F1_LS_RLOADRAM_DOWN is up then error - { - Units_status[6,1]="Fail"; - stubManager.Write("LS_RLOADRAM_DOWN\tFail\n"); - return 0; - } - counter =0; - while ( counter < 150) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if F1_LS_RLOADRAM_DOWN is up then move down - if ((response.Value & F1_LS_RLOADRAM_DOWN) != F1_LS_RLOADRAM_DOWN ) - counter=250; - - Thread.Sleep(100); - } - if (counter == 150) - { - Units_status[6,1]="Fail"; - stubManager.Write("LS_RLOADRAM_DOWN\tFail\n"); - return 0; - } - Units_status[6,1]="Pass"; - stubManager.Write("LS_RLOADRAM_DOWN\tPass\n"); - -//----------------------------------------- mov RDANCER_Motor down and check rdancer encoder ------------------------------------------------- - temp= ReadEncoder(); - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RDANCER_Motor,false,10); //move Rloading down - counter =0; - while ( counter < 150) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if LS_RLOADMOTOR_UP is up then move down - if ((response.Value & F1_LS_RDANCER_DOWN) != F1_LS_RDANCER_DOWN ) - counter=250; - - Thread.Sleep(100); - } - if (counter == 150) - { - Units_status[4,1]="Fail"; - stubManager.Write("LS_RDANCER_DOWN\tFail\n"); - return 0; - } - Units_status[7,1]="Pass"; - stubManager.Write("RDANCER_Motor\tPass\n"); - - temp1= ReadEncoder(); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RDANCER_Motor, 3); //hold Rloading high z - - stubManager.Write("temp="+temp + "\temp1="+temp1 +"\n"); - - DialogResult result = MessageBox.Show("SSI Dancer led is Green(not blinking)?", "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.No) - { - Units_status[8,1]="Fail"; - stubManager.Write("RDANCER_SSI\tFail\n"); - return 0; - } - - if (temp>temp1) - temp1=temp1+0x4000; - - temp1=temp1-temp; - if ((temp1> 15000) || (temp1 <1000)) - { - Units_status[8,1]="Fail"; - stubManager.Write("RDANCER_SSI\tFail\n"); - return 0; - } - Units_status[8,1]="Pass"; - stubManager.Write("RDANCER_SSI\tPass\n"); - - return 1; -} - - -//------------------------------------------------------------- -int Test_RDRIVING_RTFU() -{ - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RDRIVING_Motor, true,200); //move Rdriving clockwise - stubManager.Write("RDRIVING_Motor Motor rotate \n "); - - DialogResult result = MessageBox.Show("Are RDRIVING Motor rotate?", "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.No) - { - Units_status[3,1]="Fail"; - stubManager.Write("RDRIVING Motor not rotate\n"); - } - else - { - Units_status[3,1]="Pass"; - stubManager.Write("RDRIVING Motor rotate\n"); - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RDRIVING_Motor,3); //stop motor - - return 0; -} - - - -//-------------------------------------------------------------------------------- -int Motor_SetParam(Int32 HighAdr, Int32 LowAdr, Int32 ParaAddr, uint ParaData1) -{ - - Int32 Temp = 0; - Temp = (ParaAddr << 8 ) + ( (Int32) ParaData1 >> 24); - - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,HighAdr, (Temp & 0xffff)); - Temp = ((Int32)ParaData1 >> 8) & 0xffff; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,LowAdr, (Temp)); - - return 1; -} - //------------------------------------ -string write_to_file() -{ - stubManager.Write("write_to_file\n"); - -string Stemp="Pass"; - for (int i=0;i<UNIT_UNDER_TEST;i++) - { - stubManager.AppendToFile(File_Name1,Units_status[i,0]+"\t" + Units_status[i,1] ); - stubManager.Write(Units_status[i,0]+"\t" + Units_status[i,1]+"\n" ); - - if ((Units_status[i,1]=="Fail")||(Units_status[i,1]=="Not Test")) - Stemp="Fail"; - } - if (Stemp=="Fail") - { - stubManager.AppendToFile(File_Name1,"-------------RTFU Fail ------------ "); - stubManager.Write("-------------RTFU Fail ------------ "); - } - else - { - stubManager.AppendToFile(File_Name1,"-------------RTFU Pass ------------ )"); - stubManager.Write("-------------RTFU Pass ------------ "); - } - - return Stemp; - -} - diff --git a/Software/Stubs Collection/stubs/Scripts/test halt.cs b/Software/Stubs Collection/stubs/Scripts/test halt.cs deleted file mode 100644 index 289eb612a..000000000 --- a/Software/Stubs Collection/stubs/Scripts/test halt.cs +++ /dev/null @@ -1,24 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - -//CF - initialize FFS -//DF - reset -ProgressRequest progressRequest = new ProgressRequest(); -progressRequest.Amount = 0xAD9; -progressRequest.Delay = 0xAD9; - - var response = stubManager.Run<ProgressResponse>(progressRequest); - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/test.cs b/Software/Stubs Collection/stubs/Scripts/test.cs deleted file mode 100644 index a0aebf743..000000000 --- a/Software/Stubs Collection/stubs/Scripts/test.cs +++ /dev/null @@ -1,76 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -//---------------------- - -//---------------------- -const Int32 I2C_ID = 3; //MCU_I2C2 -const Int32 TCA9548A_address = 0xe2; //or 0xE0 or 0xE4 -const Int32 I2C_Slave_Add = 0xc0; // /MPC9600 address -//const Int32 I2C_Slave_Add = 0x46; //must be 0x40, 0x44 or 0x46 -//---------------------- - - -int disable_all_channel1() - { - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = 0xe0; - -// UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0x10);//enable all 8 i2c channel - - stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - Thread.Sleep(10); - - return 1; - } -int disable_all_channel2() - { - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = 0xe2; - -// UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0x00);//enable all 8 i2c channel - - stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - Thread.Sleep(10); - - return 1; - } - -int disable_all_channel3() - { - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = 0xe4; - -// UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0x00);//enable all 8 i2c channel - - stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - Thread.Sleep(10); - - return 1; - } - - - -public void OnExecute(StubManager stubManager) -{ - disable_all_channel1(); - disable_all_channel2(); - disable_all_channel3(); - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/waste level.cs b/Software/Stubs Collection/stubs/Scripts/waste level.cs deleted file mode 100644 index a72f2a512..000000000 --- a/Software/Stubs Collection/stubs/Scripts/waste level.cs +++ /dev/null @@ -1,71 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -//private const string FILE_PATH = "D:\\Waste.txt"; - -int i = 0; -bool valve_openclose = false; -//string temp; - -public void OnExecute(StubManager stubManager) -{ - - string File_Name2 = "D:\\Waste.txt" ; - - Thread.Sleep(1000); - - stubManager.WriteToFile(File_Name2,DateTime.Now +" " ); - - //Open Valve - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EB, 0x0201); - - Thread.Sleep(500); - - //Close Valve - var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EB, 0x0200); - - Thread.Sleep(2000); - - stubManager.AppendToFile(File_Name2," " ); - stubManager.AppendToFile(File_Name2," waste [mili-volts] " ); - stubManager.AppendToFile(File_Name2," " ); - - for(i=0;i<5;i++) - { - - if(valve_openclose == true) - { - //Open Valve - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EB, 0x0201); - - Thread.Sleep(500); - - //Close Valve - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EB, 0x0200); - - Thread.Sleep(2000); - } - - //get waste level in mV - stubManager.Write("waste [mili volts]: "); - - var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EC, 0x01); - - stubManager.WriteLine(response.Progress); - - stubManager.AppendToFile(File_Name2,"" + (i+1) + ". " + response.Progress/*.ToString("F4")*/); - - Thread.Sleep(2000); - } - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/waste_level2.cs b/Software/Stubs Collection/stubs/Scripts/waste_level2.cs deleted file mode 100644 index b70eb5023..000000000 --- a/Software/Stubs Collection/stubs/Scripts/waste_level2.cs +++ /dev/null @@ -1,85 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -//mark the line in the embedded software: waste_seq_step1();// include 1Sec delay <- to open !!!! - -int i = 0,j=0,k=0; -bool valve_openclose = true; -double[] temp = {0,0,0,0,0,0,0,0}; -double sum = 0,avg = 0; - -public void OnExecute(StubManager stubManager) -{ - - string File_Name2 = "D:\\Waste.txt" ; - - Thread.Sleep(1000); - - stubManager.WriteToFile(File_Name2,DateTime.Now +" " ); - - //Open Valve - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EB, 0x0201); - - Thread.Sleep(500); - - //Close Valve - var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EB, 0x0200); - - Thread.Sleep(2000); - - stubManager.AppendToFile(File_Name2," " ); - stubManager.AppendToFile(File_Name2," waste [mili-volts] " ); - stubManager.AppendToFile(File_Name2," " ); - - for(i=0;i<33;i++) - { - for(j=0;j<8;j++) - { - if(valve_openclose == true) - { - //Open Valve - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EB, 0x0201); - - Thread.Sleep(500); - - //Close Valve - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EB, 0x0200); - - Thread.Sleep(2000); - } - - //get waste level in mV - stubManager.Write("waste [mili volts]: "); - - var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EC, 0x01); - - temp[j] = response.Progress; - - stubManager.WriteLine(response.Progress); - - //stubManager.AppendToFile(File_Name2,"" + (i+1) + ". " + response.Progress/*.ToString("F4")*/); - - Thread.Sleep(1000); - } - sum = 0; - for(k=0;k<8;k++) - sum = sum + temp[k]; - avg = sum/8; - stubManager.AppendToFile(File_Name2,"" + (i+1) + ". " + avg); - - //Thread.Sleep(2000); - - - } - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/wd_enable.cs b/Software/Stubs Collection/stubs/Scripts/wd_enable.cs deleted file mode 100644 index 3919b7256..000000000 --- a/Software/Stubs Collection/stubs/Scripts/wd_enable.cs +++ /dev/null @@ -1,25 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - for (int i = 0; i < 100; i++) - { - -//var response = stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000160, 0x4001); //wd fpga1 -var response = stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000540, 0x4001); //wd fpga2 -//var response = stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000940, 0x4001); //wd fpga3 - Thread.Sleep(100); - - - } -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/whs eeprom temporary 2.cs b/Software/Stubs Collection/stubs/Scripts/whs eeprom temporary 2.cs deleted file mode 100644 index b5c7af2b1..000000000 --- a/Software/Stubs Collection/stubs/Scripts/whs eeprom temporary 2.cs +++ /dev/null @@ -1,31 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - - -StubWhsEEpromRequest stubWhsEEpromRequest = new StubWhsEEpromRequest(); -stubWhsEEpromRequest.BurnRequest = false; // false - read, true - write - -StubWhsEEpromData stubWhsEEpromData = new StubWhsEEpromData(); -stubWhsEEpromData.Header = 1; -stubWhsEEpromData.TableLength = 2; -stubWhsEEpromData.Tableversion = 3; -stubWhsEEpromData.Orifice1Flow = 1067 * 8.7433; //mv * 8.7433 convert from mv to ml (1067 * 8.7433 = 9,329.1011) -stubWhsEEpromData.CheckSum = 5; - -stubWhsEEpromRequest.WhsEEprom = stubWhsEEpromData; - -var response = stubManager.Run<StubWhsEEpromResponse>(stubWhsEEpromRequest); - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/whs eeprom temporary.cs b/Software/Stubs Collection/stubs/Scripts/whs eeprom temporary.cs deleted file mode 100644 index 65dcd499e..000000000 --- a/Software/Stubs Collection/stubs/Scripts/whs eeprom temporary.cs +++ /dev/null @@ -1,42 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - - -StubWhsEEpromRequest stubWhsEEpromRequest = new StubWhsEEpromRequest(); -stubWhsEEpromRequest.BurnRequest = true; - -StubWhsEEpromData stubWhsEEpromData = new StubWhsEEpromData(); -stubWhsEEpromData.Header = 0; -stubWhsEEpromData.TableLength = 0; -stubWhsEEpromData.Tableversion = 0; -stubWhsEEpromData.Orifice1Flow = 10.5; -stubWhsEEpromData.CheckSum = 0; - -//stubWhsEEpromRequest.WhsEEprom = whsEEprom; - - for (int i = 0; i < 10; i++) - { - var response = stubManager.Run<CalculateResponse>("calculate", 1, i); - - if (response.Sum == 10) - { - stubManager.WriteLine("OK!"); - } - else - { - stubManager.WriteLine(response.Sum); - } - } -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/whs fans stop.cs b/Software/Stubs Collection/stubs/Scripts/whs fans stop.cs deleted file mode 100644 index f9e3cbd22..000000000 --- a/Software/Stubs Collection/stubs/Scripts/whs fans stop.cs +++ /dev/null @@ -1,28 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - - -ProgressRequest progressRequest = new ProgressRequest(); -progressRequest.Amount = 0xfAc0; -progressRequest.Delay = 0; - -int i; - -for (i = 0; i<6;i++) - { - progressRequest.Amount = 0xfAc0+i; - var response = stubManager.Run<ProgressResponse>(progressRequest); - } -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Set CleaningSequence.cs b/Software/Stubs Collection/stubs/Set CleaningSequence.cs deleted file mode 100644 index a73134e7b..000000000 --- a/Software/Stubs Collection/stubs/Set CleaningSequence.cs +++ /dev/null @@ -1,23 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - - -ProgressRequest progressRequest = new ProgressRequest(); -progressRequest.Amount = 0xAD7; -progressRequest.Delay = 0; //disable - -var response = stubManager.Run<ProgressResponse>(progressRequest); - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Set loading arm center.cs b/Software/Stubs Collection/stubs/Set loading arm center.cs deleted file mode 100644 index bb502309e..000000000 --- a/Software/Stubs Collection/stubs/Set loading arm center.cs +++ /dev/null @@ -1,22 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - - -ProgressRequest progressRequest = new ProgressRequest(); -progressRequest.Amount = 0xB1; - -var response = stubManager.Run<ProgressResponse>(progressRequest); - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/SetWindingRotations.cs b/Software/Stubs Collection/stubs/SetWindingRotations.cs deleted file mode 100644 index e89bc04e5..000000000 --- a/Software/Stubs Collection/stubs/SetWindingRotations.cs +++ /dev/null @@ -1,27 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - -// use this stub to set the number of thread rotation on each screw passage (bigger the number - slower the screw) -ProgressRequest progressRequest = new ProgressRequest(); -//DO NOT CHANGE THIS LINE!!!!!!!!!!!!!! -progressRequest.Amount = 0xF1; //DO NOT CHANGE THIS LINE!!!!!!!!!!!!!! -//DO NOT CHANGE THIS LINE!!!!!!!!!!!!!! - -//set the number of rotations *1000 -progressRequest.Delay = 6123; - - var response = stubManager.Run<ProgressResponse>(progressRequest); - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/SetupDebugDisributors.cs b/Software/Stubs Collection/stubs/SetupDebugDisributors.cs deleted file mode 100644 index 0a31c7878..000000000 --- a/Software/Stubs Collection/stubs/SetupDebugDisributors.cs +++ /dev/null @@ -1,79 +0,0 @@ -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.Debugging; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - -SetupDebugDisributorsRequest setupDebugDisributorsRequest = new SetupDebugDisributorsRequest(); - -Boolean ControlFilter = new Boolean(); - ControlFilter = true; -setupDebugDisributorsRequest.DistributorActive.Add(ControlFilter); -Boolean HeatersFilter = new Boolean(); - HeatersFilter = true; -setupDebugDisributorsRequest.DistributorActive.Add(HeatersFilter); -Boolean JobFilter = new Boolean(); - JobFilter = true; -setupDebugDisributorsRequest.DistributorActive.Add(JobFilter); -Boolean WasteFilter = new Boolean(); - WasteFilter = true; -setupDebugDisributorsRequest.DistributorActive.Add(WasteFilter); -Boolean AlarmFilter = new Boolean(); - AlarmFilter = true; -setupDebugDisributorsRequest.DistributorActive.Add(AlarmFilter); -Boolean DiagnosticsFilter = new Boolean(); - DiagnosticsFilter = true; -setupDebugDisributorsRequest.DistributorActive.Add(DiagnosticsFilter); -Boolean IDSFilter = new Boolean(); - IDSFilter = true; -setupDebugDisributorsRequest.DistributorActive.Add(IDSFilter); -Boolean ThreadFilter = new Boolean(); - ThreadFilter = true; -setupDebugDisributorsRequest.DistributorActive.Add(ThreadFilter); -Boolean GeneralFilter = new Boolean(); - GeneralFilter = true; -setupDebugDisributorsRequest.DistributorActive.Add(GeneralFilter); -Boolean CommFilter = new Boolean(); - CommFilter = true; -setupDebugDisributorsRequest.DistributorActive.Add(CommFilter); -Boolean FPGAFilter = new Boolean(); - FPGAFilter = true; -setupDebugDisributorsRequest.DistributorActive.Add(FPGAFilter); -Boolean LoadFilter = new Boolean(); - LoadFilter = true; -setupDebugDisributorsRequest.DistributorActive.Add(LoadFilter); -Boolean InitFilter = new Boolean(); - InitFilter = true; -setupDebugDisributorsRequest.DistributorActive.Add(InitFilter); -Boolean MaintFilter = new Boolean(); - MaintFilter = true; -setupDebugDisributorsRequest.DistributorActive.Add(MaintFilter); -/* - DEBUG_DISTRIBUTOR__ControlFilter = 0, - DEBUG_DISTRIBUTOR__HeatersFilter = 1, - DEBUG_DISTRIBUTOR__JobFilter = 2, - DEBUG_DISTRIBUTOR__WasteFilter = 3, - DEBUG_DISTRIBUTOR__AlarmFilter = 4, - DEBUG_DISTRIBUTOR__DiagnosticsFilter = 5, - DEBUG_DISTRIBUTOR__IDSFilter = 6, - DEBUG_DISTRIBUTOR__ThreadFilter = 7, - DEBUG_DISTRIBUTOR__GeneralFilter = 8, - DEBUG_DISTRIBUTOR__CommFilter = 9, - DEBUG_DISTRIBUTOR__FPGAFilter = 10, - DEBUG_DISTRIBUTOR__LoadFilter = 11, - DEBUG_DISTRIBUTOR__InitFilter = 12, - DEBUG_DISTRIBUTOR__MaintFilter = 13 - - */ - SetupDebugDisributorsResponse response2 = stubManager.Run<SetupDebugDisributorsResponse>(setupDebugDisributorsRequest); - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Test_Bred_bord_Head_pressure_sensor_ARC.cs b/Software/Stubs Collection/stubs/Test_Bred_bord_Head_pressure_sensor_ARC.cs deleted file mode 100644 index 894d806e3..000000000 --- a/Software/Stubs Collection/stubs/Test_Bred_bord_Head_pressure_sensor_ARC.cs +++ /dev/null @@ -1,83 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -const UInt32 HEAD_PT100_ZONE_5_0X84_0 = 14; -const UInt32 HEAD_PT100_ZONE_7_0X86_0 = 15; -const UInt32 HEAD_PT100_ZONE_8_0X86_1 = 23; - -double pressure = 0.0; - - -public void OnExecute(StubManager stubManager) -{ - //suplly 24V to the bred board - - var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xb10, 0x01); - Thread.Sleep(5); // milliSec - - //loop - for(int i=0;i<3;i++) - { - - stubManager.WriteLine(i); -/* - // print config reghisters 0- 3 of 0x84 - - var response0 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xC04f, 0x8400 + 0x00); - var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xC04f, 0x8400 + 0x01); - var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xC04f, 0x8400 + 0x02); - var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xC04f, 0x8400 + 0x03); - - stubManager.WriteLineHex(response0.Progress,2); - stubManager.WriteLineHex(response1.Progress,2); - stubManager.WriteLineHex(response2.Progress,2); - stubManager.WriteLineHex(response3.Progress,2); - - stubManager.WriteLine(""); - - // print config reghisters 0- 3 of 0x86 - - var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xC04f, 0x8600 + 0x00); - var response5 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xC04f, 0x8600 + 0x01); - var response6 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xC04f, 0x8600 + 0x02); - var response7 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xC04f, 0x8600 + 0x03); - - stubManager.WriteLineHex(response4.Progress,2); - stubManager.WriteLineHex(response5.Progress,2); - stubManager.WriteLineHex(response6.Progress,2); - stubManager.WriteLineHex(response7.Progress,2); -*/ - stubManager.WriteLine(""); - - //Print pressure in bits - stubManager.WriteLine("Print pressure in bits:"); - var response8 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xC04f, HEAD_PT100_ZONE_5_0X84_0); - var response9 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xC04f, HEAD_PT100_ZONE_7_0X86_0); - - stubManager.WriteLineHex(response8.Progress,2); - stubManager.WriteLineHex(response9.Progress,2); - - stubManager.WriteLine(""); - stubManager.WriteLine("calculate pressure [V]:"); - // calculate pressure - pressure = response8.Progress * 3.3; - pressure = pressure / 8388608.0; - stubManager.WriteLine(pressure); - - pressure = response9.Progress * 3.3; - pressure = pressure / 8388608.0; - stubManager.WriteLine(pressure); - - // delay 10mSec - Thread.Sleep(1000); //150 milliSec - } -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/ThreadLoading.cs b/Software/Stubs Collection/stubs/ThreadLoading.cs new file mode 100644 index 000000000..375237184 --- /dev/null +++ b/Software/Stubs Collection/stubs/ThreadLoading.cs @@ -0,0 +1,119 @@ +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.Hardware; +using Tango.PMR.Printing; +using Tango.PMR.Stubs; +using Tango.Stubs.UI; + +include "D:\stubs\addedfiles\ACHeatersDefinition.cs" +include "D:\stubs\addedfiles\DCHeatersDefinition.cs" +include "D:\stubs\addedfiles\DeskSystemThreadMotorsDefinition.cs" +//include "D:\stubs\addedfiles\ThreadMotorsDefinition2.cs" + +public void OnExecute(StubManager stubManager) +{ + Thread.Sleep(10); + + +UploadHardwareConfigurationRequest uploadHardwareConfigurationRequest = new UploadHardwareConfigurationRequest(); + +HardwareConfiguration hardwareConfiguration = new HardwareConfiguration(); + +hardwareConfiguration.Motors.Add(FeederMotor); +hardwareConfiguration.Motors.Add(WinderMotor); +hardwareConfiguration.Motors.Add(DryerMotor); +hardwareConfiguration.Motors.Add(PoolerMotor); +hardwareConfiguration.Motors.Add(ScrewMotor); +hardwareConfiguration.Motors.Add(DryerLoadarm); + + +//hardwareConfiguration.Dispensers.Add(hardwareDispenser); + +hardwareConfiguration.PidControls.Add(FeederPidControl); +hardwareConfiguration.PidControls.Add(PoolerPidControl); +hardwareConfiguration.PidControls.Add(WinderPidControl); + +hardwareConfiguration.Dancers.Add(FeederDancer); +hardwareConfiguration.Dancers.Add(PoolerDancer); +hardwareConfiguration.Dancers.Add(WinderDancer); + +hardwareConfiguration.Winders.Add(Winder); + + + +stubManager.WriteLine("data.data length = " + hardwareConfiguration.CalculateSize()); + + +uploadHardwareConfigurationRequest.HardwareConfiguration = hardwareConfiguration; +var response = stubManager.Run<UploadHardwareConfigurationResponse>(uploadHardwareConfigurationRequest); + /*Thread.Sleep(5000);*/ + +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(); +processParameters.DyeingSpeed = 20; + +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 = 600; +jobSpool.BottomBackingRate = 70; +jobSpool.RotationsPerPassage = 7; + +jobTicket.Spool = jobSpool; + +JobSegment jobSegment = new JobSegment(); +jobSegment.Name = "Segment1"; +jobSegment.Length = 400.0; + +JobBrushStop jobBrushStop = new JobBrushStop(); +jobBrushStop.Index = 0; +jobBrushStop.OffsetPercent = 0; +jobBrushStop.OffsetMeters = 0; + +JobDispenser jobDispenser = new JobDispenser(); +jobDispenser.Index = 6; +jobDispenser.Volume = 10; +jobDispenser.DispenserStepDivision = Tango.PMR.Printing.DispenserStepDivision.Auto; +jobDispenser.NanolitterPerSecond = 0; +jobDispenser.NanoliterPerCentimeter = 10; +jobDispenser.PulsePerSecond = 500; +jobDispenser.DispenserLiquidType = Tango.PMR.Printing.DispenserLiquidType.Cyan; +jobDispenser.LiquidMaxNanoliterPerCentimeter = 40; +jobDispenser.NanoliterPerPulse = 0; +jobBrushStop.Dispensers.Add(jobDispenser); +jobSegment.BrushStops.Add(jobBrushStop); +jobTicket.Segments.Add(jobSegment); + +jobRequest.JobTicket = jobTicket; + + +int i=0; +stubManager.RunContinuous<JobResponse>(jobRequest,(response1) => + { + stubManager.WriteLine (String.Format("Data, {0}, {1} meters, {2}",++i,response1.Status.Progress*jobSegment.Length,response1.Status.Message)); + + }); + + +}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/WD test.cs b/Software/Stubs Collection/stubs/WD test.cs deleted file mode 100644 index f740ad54a..000000000 --- a/Software/Stubs Collection/stubs/WD test.cs +++ /dev/null @@ -1,49 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -/* -stubManager.Run<StubGPIOWriteBitResponse>("StubGPIOWriteBitRequest" ,"N", 6, false); -stubManager.Run<StubGPIOWriteBitResponse>("StubGPIOWriteBitRequest" ,"N", 6, true); - -stubManager.Run<StubGPIOWriteBitResponse>("StubGPIOWriteBitRequest" ,"H", 4, false); -stubManager.Run<StubGPIOWriteBitResponse>("StubGPIOWriteBitRequest" ,"H", 4, true); - -stubManager.Run<StubGPIOWriteBitResponse>("StubGPIOWriteBitRequest" ,"F", 6, false); -stubManager.Run<StubGPIOWriteBitResponse>("StubGPIOWriteBitRequest" ,"F", 6, true); -*/ - - for (int i = 0; i < 1; i++) - { - - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000000 + 0x160); - var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000400 + 0x140); - var response2 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000800 + 0x140); - stubManager.WriteLineHex(response.Value,4); - stubManager.WriteLineHex(response1.Value,4); - stubManager.WriteLineHex(response2.Value,4); - stubManager.WriteLine(""); - - var response3 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000000 + 0x0B2); - var response4 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000000 + 0x0C2); - var response5 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000400 + 0x0B2); - var response6 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000800 + 0x0B2); - stubManager.WriteLineHex(response3.Value,4); - stubManager.WriteLineHex(response4.Value,4); - stubManager.WriteLineHex(response5.Value,4); - stubManager.WriteLineHex(response6.Value,4); - - Thread.Sleep(1000); //Sleep for 1000 milli. - } -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/WHS_EEPROM.cs b/Software/Stubs Collection/stubs/WHS_EEPROM.cs deleted file mode 100644 index b5c7af2b1..000000000 --- a/Software/Stubs Collection/stubs/WHS_EEPROM.cs +++ /dev/null @@ -1,31 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - - -StubWhsEEpromRequest stubWhsEEpromRequest = new StubWhsEEpromRequest(); -stubWhsEEpromRequest.BurnRequest = false; // false - read, true - write - -StubWhsEEpromData stubWhsEEpromData = new StubWhsEEpromData(); -stubWhsEEpromData.Header = 1; -stubWhsEEpromData.TableLength = 2; -stubWhsEEpromData.Tableversion = 3; -stubWhsEEpromData.Orifice1Flow = 1067 * 8.7433; //mv * 8.7433 convert from mv to ml (1067 * 8.7433 = 9,329.1011) -stubWhsEEpromData.CheckSum = 5; - -stubWhsEEpromRequest.WhsEEprom = stubWhsEEpromData; - -var response = stubManager.Run<StubWhsEEpromResponse>(stubWhsEEpromRequest); - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/alarm.cfg b/Software/Stubs Collection/stubs/alarm.cfg deleted file mode 100644 index 89f70357d..000000000 --- a/Software/Stubs Collection/stubs/alarm.cfg +++ /dev/null @@ -1,292 +0,0 @@ - -èPÐ -d 08@ÿHPÒ -d 08@ÿHPÓ -d 08@ÿHPÔ -d 08@ÿHPÕ -d 08@ÿHPÖ -d 08@ÿHP× -èPØ -è(è8@ÿHPÙ -è8@ÿHPÚ -è (è8@ÿHPÛ -è 8@ÿHPÜ - -è8PÝ -èPÞ -èPß -èPà -èPá -èPâ -èPã -èPä -
è8@ÿP¸ -
è8@ÿP¹ -
è8@ÿPº -è (€ 8@ÿHP» -è (€ 8@ÿHP¼ -è (€ 8@ÿHP½ -è (€ 8@ÿHP¾ -è (€ 8@ÿHP¿ -è (€ 8@ÿHPÀ -è (€ 8@ÿHPÁ -è (€8@ÿHPÂ -è (€8@ÿHPÃ -è (€8@ÿHPÄ -è (€8@ÿHPÅ -è (€8@ÿHPÆ -è (€8@ÿHPÇ -è (€8@ÿHPÈ -è (€@8@ÿHPÉ -è (€@8@ÿHPÊ -è (€@8@ÿHPË -è (€@8@ÿHPÍ -è (€@8@ÿHPÎ -è (€@8@ÿHPÏ -è (€8@ÿHPÐ -è (€8@ÿHPÑ -è (€8@ÿHPÒ -è (€@8@ÿHPÓ -è (€8@ÿHPÔ -è (€8@ÿHPÕ -è (€8@ÿHPÖ -è (d08@ÿHP× -è (d08@ÿHPØ -è (d08@ÿHPÙ -è (d08@ÿHPÚ -è (d08@ÿHPÛ -è (€ 8@ÿHPÜ -è (€ 8@ÿHPÝ -è (€ 8@ÿHPÞ -è (€8@ÿHPß -è (€8@ÿHPà -è (€8@ÿHPá -è (€@8@ÿHPâ -è (€@8@ÿHPã -è (€@8@ÿHPä -è (€8@ÿHPå -è (€8@ÿHPæ -è (€8@ÿHPç - -è8Pè - -è8Pé -è (€ 8@ÿHP -è (€8@ÿHP¡ -è (€@8@ÿHP¢ -è (€8@ÿHP£ -
è8@ÿP¤ -d(Ž08@ÿP¥ -è( 8@ÿP§ -è( 8@ÿP¨ -
è8@ÿPª -è (08@ÿHP« -è (È08@ÿHP¬ -è 8@ÿHP -è 8@ÿHP® -è (è8@ÿHP¯ -è08@ÿHP° -è (€ 8@ÿHP± -è (€8@ÿHP² -è (€@8@ÿHP³ -è (€8@ÿHP´ -d (Ž08@ÿPˆ' -d (Ž08@ÿP‰' -d (Ž08@ÿPŠ' -d (Ž08@ÿP‹' -d (Ž08@ÿPŒ' -d (Ž08@ÿP' -è ( 8@ÿPŽ' -è ( 8@ÿP' -è ( 8@ÿP' -è ( 8@ÿP‘' -è ( 8@ÿP’' -è ( 8@ÿP“' -è ( 8@ÿP”' -è ( 8@ÿP•' -è ( 8@ÿP–' -è ( 8@ÿP—' -è ( 8@ÿP˜' -è ( 8@ÿP™' -è(¸08@ÿHPš' -è (»08@ÿHP›' -è (»08@ÿHPœ' -è (¸08@ÿHP' -è (ô08@ÿHPž' -è8@ÿHPŸ' -è 8@ÿHP ' -è 8@ÿHP¡' -è 8@ÿHP¢' -è 8@ÿHP£' -è (€ 8@ÿHP§' -è (€8@ÿHP¨' -è (€@8@ÿHP©' -è (€8@ÿHPª' -è (€ 8@ÿHP«' -è (€8@ÿHP¬' -è (€@8@ÿHP' -è (€8@ÿHP®' -è(€ 8@ÿHP¯' -è(€8@ÿHP°' -è(€@8@ÿHP±' -è(€8@ÿHP²' -è (Ž08@ÿHP³' -è (Ž08@ÿHP´' -è (Ž08@ÿHPµ' -è (Ž08@ÿHP¶' -è - (Ž08@ÿHP·' -è (Ž08@ÿHP¸' -è ( 8@ÿHP¹' -è ( 8@ÿHPº' -è ( 8@ÿHP»' -è ( 8@ÿHP¼' -è - ( 8@ÿHP½' -è ( 8@ÿHP¾' -è ( 8@ÿHP¿' -è ( 8@ÿHPÀ' -è ( 8@ÿHPÁ' -è ( 8@ÿHPÂ' -è - ( 8@ÿHPÃ' -è ( 8@ÿHPÄ' -è (¸08@ÿHPÅ' -è (¸08@ÿHPÆ' -è (¸08@ÿHPÇ' -è (¸08@ÿHPÈ' -è (¸08@ÿHPÉ' -è - -(¸08@ÿHPÊ' -è (¸08@ÿHPË' -è 8@ÿHPÌ' -è 8@ÿHPÍ' -è 8@ÿHPÎ' -è 8@ÿHPÏ' -è 8@ÿHPÐ' -è - -8@ÿHPÑ' -è 8@ÿHPÒ' -d (Ž08@ÿPð. -è ( 8@ÿPñ. -è ( 8@ÿPò. -è (»08@ÿHPô. -è8@ÿHPõ. -
è8@ÿPØ6 -
è8@ÿPÙ6 -
è8@ÿPÚ6 -
è8@ÿPÛ6 -
è8@ÿPÜ6 -
è8@ÿPÝ6 -
è8@ÿPÞ6 -
è8@ÿPß6 -d08@ÿPè6 -d 08@ÿPé6 -d 08@ÿPê6 -d 08@ÿPë6 -d 08@ÿPì6 -d 08@ÿPí6 -d 08@ÿPî6 -d 08@ÿPï6 -è (€ 8@ÿHPø6 -è (€ 8@ÿHPù6 -è (€ 8@ÿHPú6 -è (€ 8@ÿHPû6 -è - -(€ 8@ÿHPü6 -è (€ 8@ÿHPý6 -è (€ 8@ÿHPþ6 -è
(€ 8@ÿHPÿ6 -è (€8@ÿHP€7 -è (€8@ÿHP7 -è (€8@ÿHP‚7 -è (€8@ÿHPƒ7 -è - -(€8@ÿHP„7 -è (€8@ÿHP…7 -è (€8@ÿHP†7 -è
(€8@ÿHP‡7 -è (€@8@ÿHPˆ7 -è (€@8@ÿHP‰7 -è (€@8@ÿHPŠ7 -è (€@8@ÿHP‹7 -è - -(€@8@ÿHPŒ7 -è (€@8@ÿHP7 -è (€@8@ÿHPŽ7 -è
(€@8@ÿHP7 -è (€8@ÿHP7 -è (€8@ÿHP‘7 -è (€8@ÿHP’7 -è (€8@ÿHP“7 -è - -(€8@ÿHP”7 -è (€8@ÿHP•7 -è (€8@ÿHP–7 -è
(€8@ÿHP—7 -è(08@ÿHP˜7 -è(08@ÿHP™7 -è(08@ÿHPš7 -è(08@ÿHP›7 -è(08@ÿHPœ7 -è(08@ÿHP7 -è(08@ÿHPž7 -è(08@ÿHPŸ7 -è(8@ÿHP 7 -è(8@ÿHP¡7 -è(8@ÿHP¢7 -è(8@ÿHP£7 -è(8@ÿHP¤7 -è(8@ÿHP¥7 -è(8@ÿHP¦7 -è(8@ÿHP§7 -è(08@ÿHP¨7 -è (08@ÿHP©7 -è (08@ÿHPª7 -è (08@ÿHP«7 -è (08@ÿHP¬7 -è (08@ÿHP7 -è (08@ÿHP®7 -è (08@ÿHP¯7 - è(¬8@ÿHPÀ> - è (¬8@ÿHPÁ> - è (¬8@ÿHPÂ> - è (¬8@ÿHPÃ> - è (¬8@ÿHPÄ> - è (¬8@ÿHPÅ> - è (¬8@ÿHPÆ> - è (¬8@ÿHPÇ> - è(d8@ÿHPÈ> - è (d8@ÿHPÉ> - è (d8@ÿHPÊ> - è (d8@ÿHPË> - è (d8@ÿHPÌ> - è (d8@ÿHPÍ> - è (d8@ÿHPÎ> - è (d8@ÿHPÏ> - è(¤
08@ÿHPÐ> - è (¤
08@ÿHPÑ> - è (¤
08@ÿHPÒ> - è (¤
08@ÿHPÓ> - è (¤
08@ÿHPÔ> - è (¤
08@ÿHPÕ> - è (¤
08@ÿHPÖ> - è (¤
08@ÿHP×> -
è8@ÿPØ> -è 8@ÿPÙ> -è 8@ÿPÚ> -è 8@ÿPÛ> -è 8@ÿPÜ> -è 8@ÿPÝ> -è 8@ÿPÞ> -è 8@ÿPß> -
è8@ÿP¨F -
è8@ÿP«F -
è8@ÿPF -
è8@ÿP°F
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/arm test.cs b/Software/Stubs Collection/stubs/arm test.cs deleted file mode 100644 index ca1ff1771..000000000 --- a/Software/Stubs Collection/stubs/arm test.cs +++ /dev/null @@ -1,43 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -int i; -ProgressRequest progressRequest = new ProgressRequest(); - - for (i = 1;i<= 12; i++) - { - progressRequest.Amount = 0xB11; - progressRequest.Delay = 7680+0; - var response = stubManager.Run<ProgressResponse>(progressRequest); - Thread.Sleep(12000); - progressRequest.Amount = 0xB12; - response = stubManager.Run<ProgressResponse>(progressRequest); - Thread.Sleep(1000); - stubManager.Write("Arm Test \t"+ i + " direction 0 progress "+ response.Progress +"\n"); - - } - - for (i = 1;i<= 10; i++) - { - progressRequest.Amount = 0xB11; - progressRequest.Delay = 7680+1; - var response = stubManager.Run<ProgressResponse>(progressRequest); - Thread.Sleep(12000); - progressRequest.Amount = 0xB12; - response = stubManager.Run<ProgressResponse>(progressRequest); - stubManager.Write("Arm Test \t"+ i + " direction 1 progress "+ response.Progress +"\n"); - - Thread.Sleep(1000); - } -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/change sublimation time.cs b/Software/Stubs Collection/stubs/change sublimation time.cs deleted file mode 100644 index 3292a3b7e..000000000 --- a/Software/Stubs Collection/stubs/change sublimation time.cs +++ /dev/null @@ -1,23 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - -int SublimationDuration = 30; -ProgressRequest progressRequest = new ProgressRequest(); -progressRequest.Amount = 0xB26; -progressRequest.Delay = SublimationDuration; - - var response = stubManager.Run<ProgressResponse>(progressRequest); - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/cleaning sequence disable.cs b/Software/Stubs Collection/stubs/cleaning sequence disable.cs deleted file mode 100644 index 49bf4d968..000000000 --- a/Software/Stubs Collection/stubs/cleaning sequence disable.cs +++ /dev/null @@ -1,24 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - -//"Set WFCF Value -ProgressRequest progressRequest = new ProgressRequest(); -progressRequest.Amount = 0xAD7; -progressRequest.Delay = 0; - -var response = stubManager.Run<ProgressResponse>(progressRequest); - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/dye sequence stubs.cs b/Software/Stubs Collection/stubs/dye sequence stubs.cs deleted file mode 100644 index 8aaf3a823..000000000 --- a/Software/Stubs Collection/stubs/dye sequence stubs.cs +++ /dev/null @@ -1,40 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - -//"Set WFCF Value - int WCFvalue = 40; -ProgressRequest progressRequest = new ProgressRequest(); -progressRequest.Amount = 0xE3; -progressRequest.Delay = WCFvalue; - -var response = stubManager.Run<ProgressResponse>(progressRequest); - -//Set WFCF build to waste Time Value -int WCFBuildTime = 20000; - -progressRequest.Amount = 0xE4; -progressRequest.Delay = WCFBuildTime; - -response = stubManager.Run<ProgressResponse>(progressRequest); - -// Set special dispensers true (close valve) or false (open valve) -int ClosedValve = 1; //closed - -progressRequest.Amount = 0xE5; -progressRequest.Delay = ClosedValve; - -response = stubManager.Run<ProgressResponse>(progressRequest); - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/embParamDownload.cs b/Software/Stubs Collection/stubs/embParamDownload.cs deleted file mode 100644 index afdc14c92..000000000 --- a/Software/Stubs Collection/stubs/embParamDownload.cs +++ /dev/null @@ -1,74 +0,0 @@ -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.Stubs; -using Tango.Stubs; -using Google.Protobuf; -using Tango.PMR.EmbeddedParameters; -using System.IO; -using Tango.PMR.IO; - - -public void OnExecute(StubManager stubManager) -{ - - -ConfigurationParameters configurationParameters = new ConfigurationParameters(); - -File.WriteAllBytes("C:/temp/EmbParam.cfg",configurationParameters.ToBytes()); - -byte[] fileBytes = File.ReadAllBytes("C:/temp/EmbParam.cfg"); - - -var config = ConfigurationParameters.Parser.ParseFrom(fileBytes); - - stubManager.Write( config); - Thread.Sleep(1000); - -//1. read -stubManager.Write("\n\n Deleting old file"); - -stubManager.Write("\n\n Loading new file file"); - - -FileDownloadRequest fileDownloadRequest = new FileDownloadRequest(); -fileDownloadRequest.FileName = "SYSINFO//EmbParam.cfg";; - -FileDownloadResponse response = stubManager.Run<FileDownloadResponse>(fileDownloadRequest); - - -FileChunkDownloadRequest fileChunkDownloadRequest = new FileChunkDownloadRequest(); -fileChunkDownloadRequest.DownloadID = response. -fileChunkDownloadRequest.FileName = null; -fileChunkDownloadRequest.Position = 0; - -Thread.Sleep(1000); -long chunk_size = response2.MaxChunkLength; - -FileStream fs = new FileStream("C:/temp/EmbParam.cfg",FileMode.Open); - -while (fs.Position < fs.Length) -{ - stubManager.Write("Position "+ fs.Position+ " Length "+ fs.Length +"\n\n"); - FileChunkUploadRequest fileChunkUploadRequest = new FileChunkUploadRequest(); - fileChunkUploadRequest.UploadID = response2.UploadID; - byte[] chunk = new byte[Math.Min(chunk_size,fs.Length - fs.Position)]; - fs.Read(chunk,0,chunk.Length); - fileChunkUploadRequest.Buffer = ByteString.CopyFrom(chunk); - var response3 = stubManager.Run<FileChunkUploadResponse>(fileChunkUploadRequest); - Thread.Sleep(2000); - -} - -/* -13:46:42.38: Executing script 'embeddedparametersbuild.cs'... -{ "BreakSensorLimit": 10, "DiagnosticCollectionLimit": 1, "OverHeatCountLimit": 3, "UnderHeatCountLimit": 3, "CloseValveTimeout": 255, "OpenValveTimeout": 255, "InitialDispenserPressure": 1.5, "InitialDispenserTimeout": 60000, "InitialDispenserTimeLag": 100, "DispenserBuildPressureSpeed": 800, "DispenserBuildPressureLimit": 0.9, "DispenserBuildPressureTimeout": 80000, "DispenserBuildPressureLag": 50, "ACHeatersLowerOperationLimit": 995, "ACHeatersUpperOperationLimit": 1005, "DCHeatersLowerOperationLimit": 978, "DCHeatersUpperOperationLimit": 1005, "DispenserPresegmentWFCF": 80, "StartHeatingOnInitSequence": true, "GeneralParameters": [ 1, 1, 1, 1, 800, 1000 ], "CurrentAlarmLowLimit": 0.8, "CurrentAlarmHighLimit": 1.07, "IDSSegmentRefillTimeout": 5000, "IDSPreSegmentBuildupTime": 5000, "IDSCleaningSpeed": 50, "IDSCleaningStopBeforeSegmentTime": 3000, "IDSCleaningStartSprayPreSegmentTime": 1000, "IDSLeftCleaningMotorSpeed": 30, "IDSRightCleaningMotorSpeed": 23, "SwitchToIdleTimeinSeconds": 3600, "IdleDrierTemperature": 80, "IdleHeadTemperature": 80, "PowerOffTemperatureLimit": 50, "IDSPreSegmentWFCFTimeBeforeSegment": 1500 } */ - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/embeddedparametersbuild.cs b/Software/Stubs Collection/stubs/embeddedparametersbuild.cs index 5092e6b6f..a08ca327a 100644 --- a/Software/Stubs Collection/stubs/Scripts/embeddedparametersbuild.cs +++ b/Software/Stubs Collection/stubs/embeddedparametersbuild.cs @@ -17,33 +17,33 @@ using Tango.PMR.IO; public void OnExecute(StubManager stubManager) { -// parameters version for PRODUCTION 1.4.6.44 + ConfigurationParameters configurationParameters = new ConfigurationParameters(); configurationParameters.BreakSensorLimit = 10; //how many samples to collect in diagnostics before sending -configurationParameters.DiagnosticCollectionLimit = 3; +configurationParameters.DiagnosticCollectionLimit = 1; //how many consecutive readout before declaring DC over/underheat alarm configurationParameters.OverHeatCountLimit = 3; configurationParameters.UnderHeatCountLimit = 3; // time of motor activity before opening the valve or after closing the valve, in milliseconds -configurationParameters.CloseValveTimeout = 20; -configurationParameters.OpenValveTimeout = 20; +configurationParameters.CloseValveTimeout = 10; +configurationParameters.OpenValveTimeout = 10; //backlash after filling - target pressure, timoeout, time staps (speed will be added in general parameters) -configurationParameters.InitialDispenserPressure = 3.85; //used for initial pre-run maximal pressure -configurationParameters.InitialDispenserTimeout = 120000; ////used for initial pre-run target number of steps +configurationParameters.InitialDispenserPressure = 0.25; +configurationParameters.InitialDispenserTimeout = 60000; //20 seconds configurationParameters.InitialDispenserTimeLag = 100; //job prepare - build pressure in dispensers - target pressure, timoeout, time staps, speed configurationParameters.DispenserBuildPressureSpeed = 950; //no more than 1000 -configurationParameters.DispenserBuildPressureLimit = 0.85; -configurationParameters.DispenserBuildPressureTimeout = 420000; // 7 minutes - long prepare for 5 cycles build -configurationParameters.DispenserBuildPressureLag = 100; +configurationParameters.DispenserBuildPressureLimit = 1.2; +configurationParameters.DispenserBuildPressureTimeout = 80000; +configurationParameters.DispenserBuildPressureLag = 50; //temperature band 1000 = 100% - thresholds for job start around target temprature - AC configurationParameters.ACHeatersLowerOperationLimit = 995; @@ -59,50 +59,40 @@ configurationParameters.MidTankPressureCorrection = 0.0; //waste factor for intersegment pressure building configurationParameters.DispenserPresegmentWFCF = 40; //how much time to start the WFCF process (pressure buildup) before segment start -configurationParameters.IDSPreSegmentWFCFTimeBeforeSegment = 12000; +configurationParameters.IDSPreSegmentWFCFTimeBeforeSegment = 30000; //flag: start heaters according to saved process parameters upon init? configurationParameters.StartHeatingOnInitSequence = true; // current test for the heaters - alarm thresholds -configurationParameters.CurrentAlarmLowLimit = 0.78; +configurationParameters.CurrentAlarmLowLimit = 0.80; configurationParameters.CurrentAlarmHighLimit = 1.07; -//currently not in use configurationParameters.IDSSegmentRefillTimeout = 5000; configurationParameters.IDSPreSegmentBuildupTime = 5000; //cleaning!!!!!!!!!! configurationParameters.IDSCleaningSpeed = 800; -configurationParameters.IDSCleaningStopBeforeSegmentTime = 10000; //end of presegemnt -configurationParameters.IDSCleaningStartSprayPreSegmentTime =2000; //beginning of presegment - -int Tup = 10,Tdelay1 = 98,Tdelay2 = 198; //350nsec up, 1 second delay, 2 seconds before up again -// Tup = LeftRockerSpeed/100; -// Tdelay1 = LeftRockerSpeed%100; -// Tdelay2 = RightRockerSpeed; -int LeftRockerSpeed = Tup*100+Tdelay1; -int RightRockerSpeed = Tdelay2; - -configurationParameters.IDSLeftCleaningMotorSpeed = LeftRockerSpeed; -configurationParameters.IDSRightCleaningMotorSpeed = RightRockerSpeed; +configurationParameters.IDSCleaningStopBeforeSegmentTime = 3000; +configurationParameters.IDSCleaningStartSprayPreSegmentTime = 1000; +configurationParameters.IDSLeftCleaningMotorSpeed = 30; +configurationParameters.IDSRightCleaningMotorSpeed = 23; configurationParameters.SwitchToIdleTimeinSeconds = 3600; configurationParameters.IdleDrierTemperature = 80; configurationParameters.IdleHeadTemperature = 80; configurationParameters.IdleMixerTemperature = 0; -configurationParameters.PowerOffTemperatureLimit = 100; +configurationParameters.PowerOffTemperatureLimit = 50; //general parameters, ORDER MUST BE PRESERVED!!!! //check the dispensers hard limit alarms /*1*/ Double checkHardLimitAlarms = new Double(); - checkHardLimitAlarms = 1.0; configurationParameters.GeneralParameters.Add(checkHardLimitAlarms); /*2*/ Double checkCurrentAlarms = new Double(); -checkCurrentAlarms = 0.0; +checkCurrentAlarms = 1.0; configurationParameters.GeneralParameters.Add(checkCurrentAlarms); //check the tamper alarms @@ -118,22 +108,22 @@ configurationParameters.GeneralParameters.Add(checkMotorAlarms); /*5*/ Double WinderBackToBaseTime = new Double(); -WinderBackToBaseTime = 820.0; +WinderBackToBaseTime = 800.0; configurationParameters.GeneralParameters.Add(WinderBackToBaseTime); /*6*/ Double DispenserInitialPressureSpeed = new Double(); -DispenserInitialPressureSpeed = 1050.0; +DispenserInitialPressureSpeed = 800.0; configurationParameters.GeneralParameters.Add(DispenserInitialPressureSpeed); /*7*/ Double SetDiagnosticMode = new Double(); -SetDiagnosticMode = 3.0; +SetDiagnosticMode = 1.0; configurationParameters.GeneralParameters.Add(SetDiagnosticMode); /*8*/ Double SetAutoFill = new Double(); -SetAutoFill = 3.0; +SetAutoFill = 0.0; configurationParameters.GeneralParameters.Add(SetAutoFill); File.WriteAllBytes("C:/temp/EmbParam.cfg",configurationParameters.ToBytes()); @@ -143,49 +133,7 @@ byte[] fileBytes = File.ReadAllBytes("C:/temp/EmbParam.cfg"); var config = ConfigurationParameters.Parser.ParseFrom(fileBytes); -stubManager.Write( config); -Thread.Sleep(1000); - - -stubManager.Write("\n\n Deleting old file"); - -DeleteRequest deleteRequest = new DeleteRequest(); -deleteRequest.Path = "SYSINFO//EmbParam.cfg"; -deleteRequest.Attribute = Tango.PMR.IO.FileAttribute.Unspecified; -DeleteResponse response5 = stubManager.Run<DeleteResponse>(deleteRequest); - - -Thread.Sleep(1000); -stubManager.Write("\n\n Loading new file file"); - -FileUploadRequest fileUploadRequest = new FileUploadRequest(); -fileUploadRequest.Path = "SYSINFO//EmbParam.cfg"; -fileUploadRequest.Length = (int)fileBytes.Length; -FileUploadResponse response2 = stubManager.Run<FileUploadResponse>(fileUploadRequest); -Thread.Sleep(1000); -long chunk_size = response2.MaxChunkLength; - -FileStream fs = new FileStream("C:/temp/EmbParam.cfg",FileMode.Open); - -while (fs.Position < fs.Length) -{ - stubManager.Write("Position "+ fs.Position+ " Length "+ fs.Length +"\n\n"); - FileChunkUploadRequest fileChunkUploadRequest = new FileChunkUploadRequest(); - fileChunkUploadRequest.UploadID = response2.UploadID; - byte[] chunk = new byte[Math.Min(chunk_size,fs.Length - fs.Position)]; - fs.Read(chunk,0,chunk.Length); - fileChunkUploadRequest.Buffer = ByteString.CopyFrom(chunk); - var response3 = stubManager.Run<FileChunkUploadResponse>(fileChunkUploadRequest); - Thread.Sleep(2000); - -} - -// activating the new file -ProgressRequest progressRequest = new ProgressRequest(); -progressRequest.Amount = 0xCD; -progressRequest.Delay = 0xCD; -var response1 = stubManager.Run<ProgressResponse>(progressRequest); - + stubManager.Write( config); /* 13:46:42.38: Executing script 'embeddedparametersbuild.cs'... diff --git a/Software/Stubs Collection/stubs/embeddedparametersbuild_w_cleaning.cs b/Software/Stubs Collection/stubs/embeddedparametersbuild_w_cleaning.cs deleted file mode 100644 index 57501cc0f..000000000 --- a/Software/Stubs Collection/stubs/embeddedparametersbuild_w_cleaning.cs +++ /dev/null @@ -1,233 +0,0 @@ -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.Stubs; -using Tango.Stubs; -using Google.Protobuf; -using Tango.PMR.EmbeddedParameters; -using System.IO; -using Tango.PMR.IO; - - -public void OnExecute(StubManager stubManager) -{ -// parameters version for TESTING 1.5.3.3 -string description = ""; -ConfigurationParameters configurationParameters = new ConfigurationParameters(); - -description += "Version 1.5.3.4"; -configurationParameters.BreakSensorLimit = 10; - -//how many samples to collect in diagnostics before sending -configurationParameters.DiagnosticCollectionLimit = 1; - -//how many consecutive readout before declaring DC over/underheat alarm -configurationParameters.OverHeatCountLimit = 3; -configurationParameters.UnderHeatCountLimit = 3; - -// time of motor activity before opening the valve or after closing the valve, in milliseconds -configurationParameters.CloseValveTimeout = 20; -configurationParameters.OpenValveTimeout = 20; - -//backlash after filling - target pressure, timoeout, time staps (speed will be added in general parameters) -configurationParameters.InitialDispenserPressure = 3.85; //used for initial pre-run maximal pressure -configurationParameters.InitialDispenserTimeout = 120000; ////used for initial pre-run target number of steps -configurationParameters.InitialDispenserTimeLag = 100; -description = description+" "+configurationParameters.InitialDispenserPressure+"-"+configurationParameters.InitialDispenserTimeout/1000; - -//job prepare - build pressure in dispensers - target pressure, timoeout, time staps, speed -configurationParameters.DispenserBuildPressureSpeed = 950; //no more than 1000 -configurationParameters.DispenserBuildPressureLimit = 0.85; -configurationParameters.DispenserBuildPressureTimeout = 420000; // 7 minutes - long prepare for 5 cycles build -configurationParameters.DispenserBuildPressureLag = 100; -description = description+" T "+configurationParameters.DispenserBuildPressureTimeout/1000; - -//temperature band 1000 = 100% - thresholds for job start around target temprature - AC -configurationParameters.ACHeatersLowerOperationLimit = 995; -configurationParameters.ACHeatersUpperOperationLimit = 1005; - -//temperature band 1000 = 100% - thresholds for job start around target temprature - DC -configurationParameters.DCHeatersLowerOperationLimit = 978; -configurationParameters.DCHeatersUpperOperationLimit = 1005; - -// mid tank reading offset to add to the readout (OBSOLETE!) -configurationParameters.MidTankPressureCorrection = 0.0; - -//waste factor for intersegment pressure building -configurationParameters.DispenserPresegmentWFCF = 40; -description = description+" WF"+configurationParameters.DispenserPresegmentWFCF; -//how much time to start the WFCF process (pressure buildup) before segment start -configurationParameters.IDSPreSegmentWFCFTimeBeforeSegment = 12000; - -//flag: start heaters according to saved process parameters upon init? -configurationParameters.StartHeatingOnInitSequence = true; - -// current test for the heaters - alarm thresholds -configurationParameters.CurrentAlarmLowLimit = 0.78; -configurationParameters.CurrentAlarmHighLimit = 1.07; - -//currently not in use -configurationParameters.IDSSegmentRefillTimeout = 5000; -configurationParameters.IDSPreSegmentBuildupTime = 5000; -//cleaning!!!!!!!!!! -configurationParameters.IDSCleaningSpeed = 800; -configurationParameters.IDSCleaningStopBeforeSegmentTime = 10000; //end of presegemnt -configurationParameters.IDSCleaningStartSprayPreSegmentTime =2000; //beginning of presegment -description = description+" Cl"+configurationParameters.IDSCleaningStopBeforeSegmentTime/1000+"-"+configurationParameters.IDSCleaningStartSprayPreSegmentTime/1000; - -int Tup = 10,Tdelay1 = 98,Tdelay2 = 198; //350nsec up, 1 second delay, 2 seconds before up again -// Tup = LeftRockerSpeed/100; -// Tdelay1 = LeftRockerSpeed%100; -// Tdelay2 = RightRockerSpeed; -int LeftRockerSpeed = Tup*100+Tdelay1; -int RightRockerSpeed = Tdelay2; - -configurationParameters.IDSLeftCleaningMotorSpeed = LeftRockerSpeed; -configurationParameters.IDSRightCleaningMotorSpeed = RightRockerSpeed; -description = description+"-"+Tup+"."+Tdelay1+"."+Tdelay2; - -configurationParameters.SwitchToIdleTimeinSeconds = 3600; -configurationParameters.IdleDrierTemperature = 80; -configurationParameters.IdleHeadTemperature = 80; -configurationParameters.IdleMixerTemperature = 0; -configurationParameters.PowerOffTemperatureLimit = 60; - - -//general parameters, ORDER MUST BE PRESERVED!!!! -//check the dispensers hard limit alarms -/*1*/ -Double checkHardLimitAlarms = new Double(); - -checkHardLimitAlarms = 1.0; -configurationParameters.GeneralParameters.Add(checkHardLimitAlarms); - -/*2*/ -Double checkCurrentAlarms = new Double(); -checkCurrentAlarms = 1.0; -configurationParameters.GeneralParameters.Add(checkCurrentAlarms); -//check the tamper alarms - -/*3*/ -Double checkTamperAlarms = new Double(); -checkTamperAlarms = 0.0; -configurationParameters.GeneralParameters.Add(checkTamperAlarms); - -/*4*/ -Double checkMotorAlarms = new Double(); -checkMotorAlarms = 1.0; -configurationParameters.GeneralParameters.Add(checkMotorAlarms); - -/*5*/ -Double WinderBackToBaseTime = new Double(); -WinderBackToBaseTime = 820.0; -configurationParameters.GeneralParameters.Add(WinderBackToBaseTime); - -/*6*/ -Double DispenserInitialPressureSpeed = new Double(); -DispenserInitialPressureSpeed = 1050.0; -configurationParameters.GeneralParameters.Add(DispenserInitialPressureSpeed); - -/*7*/ -Double SetDiagnosticMode = new Double(); -SetDiagnosticMode = 3.0; -configurationParameters.GeneralParameters.Add(SetDiagnosticMode); - -/*8*/ -Double SetAutoFill = new Double(); -SetAutoFill = 3.0; -configurationParameters.GeneralParameters.Add(SetAutoFill); -description = description+"-AF"+SetAutoFill+"DI"+SetDiagnosticMode; - -/*9*/ -double PowerOffDisableCleaning = new Double(); -PowerOffDisableCleaning = 0.0; -configurationParameters.GeneralParameters.Add(PowerOffDisableCleaning); - -/*10*/ -double SublimationBlowTime = new Double(); -SublimationBlowTime = 30.0; -configurationParameters.GeneralParameters.Add(SublimationBlowTime); - -/*11*/ -double AllowedRangeForHeadBlowerDeviation = new Double(); -AllowedRangeForHeadBlowerDeviation = 7; -configurationParameters.GeneralParameters.Add(AllowedRangeForHeadBlowerDeviation); - -/*12*/ -double AllowedRangeForWasteBlowerDeviation = new Double(); -AllowedRangeForWasteBlowerDeviation = 20; -configurationParameters.GeneralParameters.Add(AllowedRangeForWasteBlowerDeviation); - -/*13*/ -double Voltage_Hysteresis = new Double(); -Voltage_Hysteresis = 4; -configurationParameters.GeneralParameters.Add(Voltage_Hysteresis); - -/*14*/ -double Head_Blower_Calculation_C = new Double(); -Head_Blower_Calculation_C = 0.242; -configurationParameters.GeneralParameters.Add(Head_Blower_Calculation_C); - -/*15*/ -double Head_Blower_Calculation_B = new Double(); -Head_Blower_Calculation_B = -0.134; -configurationParameters.GeneralParameters.Add(Head_Blower_Calculation_B); -description = description+"-C"+Head_Blower_Calculation_C+"-B"+Head_Blower_Calculation_B; - -configurationParameters.Description = description; -//stubManager.Write("\n\n"+description); -stubManager.Write("\n\n"+configurationParameters.Description+"\n\n"); - - -File.WriteAllBytes("C:/temp/EmbParam.cfg",configurationParameters.ToBytes()); - - -byte[] fileBytes = configurationParameters.ToBytes(); - - -var config = ConfigurationParameters.Parser.ParseFrom(fileBytes); - -stubManager.Write( config); -Thread.Sleep(1000); - - -stubManager.Write("\n\n Deleting old file"); - -DeleteRequest deleteRequest = new DeleteRequest(); -deleteRequest.Path = "SYSINFO//EmbParam.cfg"; -deleteRequest.Attribute = Tango.PMR.IO.FileAttribute.Unspecified; -DeleteResponse response5 = stubManager.Run<DeleteResponse>(deleteRequest); - - -Thread.Sleep(1000); -stubManager.Write("\n\n Loading new file file"); - -FileUploadRequest fileUploadRequest = new FileUploadRequest(); -fileUploadRequest.Path = "SYSINFO//EmbParam.cfg"; -fileUploadRequest.Length = (int)fileBytes.Length; -FileUploadResponse response2 = stubManager.Run<FileUploadResponse>(fileUploadRequest); -Thread.Sleep(1000); -long chunk_size = response2.MaxChunkLength; - -stubManager.Write("Chunk size "+ chunk_size + " file size "+ fileBytes.Length +"\n\n"); -FileChunkUploadRequest fileChunkUploadRequest = new FileChunkUploadRequest(); -fileChunkUploadRequest.UploadID = response2.UploadID; -fileChunkUploadRequest.Buffer = ByteString.CopyFrom(fileBytes); -var response3 = stubManager.Run<FileChunkUploadResponse>(fileChunkUploadRequest); - -// activating the new file -ProgressRequest progressRequest = new ProgressRequest(); -progressRequest.Amount = 0xCD; -progressRequest.Delay = 0xCD; -var response1 = stubManager.Run<ProgressResponse>(progressRequest); - - - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/head_card_fan_test.cs b/Software/Stubs Collection/stubs/head_card_fan_test.cs deleted file mode 100644 index 95c3825e0..000000000 --- a/Software/Stubs Collection/stubs/head_card_fan_test.cs +++ /dev/null @@ -1,26 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -// Request ---- -// Int32 : Amount -// Int32 : Delay - -// Response ---- -// Double : Progress -var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfac0, 0x00);//Fan Click Head Card , Fan 1 Setting - 0xFF Full PWM 0x80 = 50% FF = 100% 0 - STOP -stubManager.WriteLineHex(response.Progress,2);//100% = 0xDC0, 50% = 0x1790, 0% = 0xFFF0 - -var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfac1, 0x00);//Fan Click Head Card , Fan 1 Setting - 0xFF Full PWM 0x80 = 50% FF = 100% 0 - STOP -stubManager.WriteLineHex(response1.Progress,2);//100% = 0xDC0, 50% = 0x1790, 0% = 0xFFF0 -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/load parameters from machine.cs b/Software/Stubs Collection/stubs/load parameters from machine.cs deleted file mode 100644 index a43354785..000000000 --- a/Software/Stubs Collection/stubs/load parameters from machine.cs +++ /dev/null @@ -1,46 +0,0 @@ -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.Stubs; -using Tango.Stubs; -using Google.Protobuf; -using Tango.PMR.EmbeddedParameters; -using System.IO; -using Tango.PMR.IO; - - -public void OnExecute(StubManager stubManager) -{ - - -ConfigurationParameters configurationParameters = new ConfigurationParameters(); - - Thread.Sleep(1000); - -stubManager.Write("\n\n Loading file from machine"); - -FileDownloadRequest fileDownloadRequest = new FileDownloadRequest(); -fileDownloadRequest.FileName = "SYSINFO//EmbParam.cfg"; -FileDownloadResponse response2 = stubManager.Run<FileDownloadResponse>(fileDownloadRequest); - Thread.Sleep(1000); -long chunk_size = response2.MaxChunkLength; -string Download_Id = response2.DownloadID; -//FileStream fs = new FileStream("C:/temp/EmbParam.cfg",FileMode.Open); - -stubManager.Write("Position "+ response2.DownloadID+ " Length "+ response2.MaxChunkLength +"\n\n"); -FileChunkDownloadRequest fileChunkDownloadRequest = new FileChunkDownloadRequest(); -fileChunkDownloadRequest.DownloadID = response2.DownloadID; -var response3 = stubManager.Run<FileChunkDownloadResponse>(fileChunkDownloadRequest); - -var config = ConfigurationParameters.Parser.ParseFrom(response3.Buffer); -stubManager.Write( config); - - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/logs handles.cs b/Software/Stubs Collection/stubs/logs handles.cs deleted file mode 100644 index 939af6bf1..000000000 --- a/Software/Stubs Collection/stubs/logs handles.cs +++ /dev/null @@ -1,38 +0,0 @@ -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.Debugging; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -/* -0 ControlFilter; -1 HeatersFilter; -2 JobFilter ; -3 WasteFilter ; -4 AlarmFilter ; -5 DiagnosticsFilter; -6 IDSFilter; -7 ThreadFilter; -8 GeneralFilter; -9 CommFilter; -10 FPGAFilter; -11 LoadFilter; -12 InitFilter; -13 MaintFilter; -*/ - -SetupDebugDisributorsRequest setupDebugDisributorsRequest = new SetupDebugDisributorsRequest(); -setupDebugDisributorsRequest.DebugDistributor = Tango.PMR.Debugging.DebugDistributorType.WasteFilter; -setupDebugDisributorsRequest.DistributorActive = true; - - var response = stubManager.Run<SetupDebugDisributorsResponse>(setupDebugDisributorsRequest); - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/logs severity.cs b/Software/Stubs Collection/stubs/logs severity.cs deleted file mode 100644 index cf3b4f1bc..000000000 --- a/Software/Stubs Collection/stubs/logs severity.cs +++ /dev/null @@ -1,27 +0,0 @@ -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.Debugging; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -/* -Tango.PMR.Debugging.DebugLogCategory.Info: -Tango.PMR.Debugging.DebugLogCategory.Warning: -Tango.PMR.Debugging.DebugLogCategory.Error: -Tango.PMR.Debugging.DebugLogCategory.Critical: -Tango.PMR.Debugging.DebugLogCategory.Debug: -*/ -SetDebugLogCategoryRequest setDebugLogCategoryRequest = new SetDebugLogCategoryRequest(); -setDebugLogCategoryRequest.MinimumCategory = Tango.PMR.Debugging.DebugLogCategory.Info; - - var response = stubManager.Run<SetDebugLogCategoryResponse>(setDebugLogCategoryRequest); - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/midtank calibration/Midtankcalibration.cs b/Software/Stubs Collection/stubs/midtank calibration/Midtankcalibration.cs deleted file mode 100644 index 9a82365e1..000000000 --- a/Software/Stubs Collection/stubs/midtank calibration/Midtankcalibration.cs +++ /dev/null @@ -1,69 +0,0 @@ -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.EmbeddedParameters; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - -MidTankDataSetupRequest midTankDataSetupRequest = new MidTankDataSetupRequest(); - -MidTankData midTankData = new MidTankData(); -midTankData.MidTankId = 0; -midTankData.InitialOffsetA =2.54414609375 ; -midTankData.SlopeB = 0.915453384418902 ; - -MidTankData midTankData1 = new MidTankData(); -midTankData1.MidTankId = 1; -midTankData1.InitialOffsetA = 2.53565 ; -midTankData1.SlopeB = 0.912075327649828; - -MidTankData midTankData2 = new MidTankData(); -midTankData2.MidTankId = 2; -midTankData2.InitialOffsetA = 2.96895078125 ; -midTankData2.SlopeB = 0.92228512609367; - -MidTankData midTankData3 = new MidTankData(); -midTankData3.MidTankId = 3; -midTankData3.InitialOffsetA = 2.9264703125 ; -midTankData3.SlopeB = 0.939819063852105; - -MidTankData midTankData4 = new MidTankData(); -midTankData4.MidTankId = 4; -midTankData4.InitialOffsetA = 2.614946875 ; -midTankData4.SlopeB = 0.92573937750226; - -MidTankData midTankData5 = new MidTankData(); -midTankData5.MidTankId = 5; -midTankData5.InitialOffsetA = 2.1561578125; -midTankData5.SlopeB = 0; - -MidTankData midTankData6 = new MidTankData(); -midTankData6.MidTankId = 6; -midTankData6.InitialOffsetA = 2.8924859375; -midTankData6.SlopeB = 0.932726089785296; - -MidTankData midTankData7 = new MidTankData(); -midTankData7.MidTankId = 7; -midTankData7.InitialOffsetA = 2.92080625; -midTankData7.SlopeB = 0.919540229; - -midTankDataSetupRequest.MidTankInfo.Add(midTankData); -midTankDataSetupRequest.MidTankInfo.Add(midTankData1); -midTankDataSetupRequest.MidTankInfo.Add(midTankData2); -midTankDataSetupRequest.MidTankInfo.Add(midTankData3); -midTankDataSetupRequest.MidTankInfo.Add(midTankData4); -midTankDataSetupRequest.MidTankInfo.Add(midTankData5); -midTankDataSetupRequest.MidTankInfo.Add(midTankData6); -midTankDataSetupRequest.MidTankInfo.Add(midTankData7); - -var response = stubManager.Run<MidTankDataSetupResponse>(midTankDataSetupRequest); - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/midtank calibration/read_midtank_calibration.cs b/Software/Stubs Collection/stubs/midtank calibration/read_midtank_calibration.cs deleted file mode 100644 index 469772888..000000000 --- a/Software/Stubs Collection/stubs/midtank calibration/read_midtank_calibration.cs +++ /dev/null @@ -1,37 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - int i; - - for(i=0;i<8;i++) - { - - var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xA, i); - stubManager.Write("\n Initial_Offset_A [#"); - stubManager.Write(i); - stubManager.Write("] = "); - stubManager.WriteLine(response.Progress); - } - - for(i=0;i<8;i++) - { - var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xB, i); - stubManager.Write("\n Slope_B [#"); - stubManager.Write(i); - stubManager.Write("] = "); - stubManager.WriteLine(response1.Progress); - } - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/moveloadarmback.cs b/Software/Stubs Collection/stubs/moveloadarmback.cs deleted file mode 100644 index b7f5e0fa6..000000000 --- a/Software/Stubs Collection/stubs/moveloadarmback.cs +++ /dev/null @@ -1,29 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -// Request ---- -// UInt32 : MotorID -// Boolean : Direction -// UInt32 : Position - -// Response ---- -// UInt32 : MotorID -// UInt32 : Position -// UInt32 : StatusReg -// Boolean : Direction -// UInt32 : MotStatus -// Boolean : STEPLOSSA -// Boolean : STEPLOSSB -var response = stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,5, true, 15); -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/powestep01_change_mode.cs b/Software/Stubs Collection/stubs/powestep01_change_mode.cs deleted file mode 100644 index 75939ea87..000000000 --- a/Software/Stubs Collection/stubs/powestep01_change_mode.cs +++ /dev/null @@ -1,25 +0,0 @@ -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.Stubs; -using Tango.Stubs; - - -Int32 i = 6; // to run only for specific motor - -public void OnExecute(StubManager stubManager) -{ - for (i = 6; i < 14; i++) - { - //stubManager.Run<ProgressResponse>("ProgressRequest" ,0x01, 0x010000 + (i<<8) + 0x00); //change motor driver 25 to voltage mode; - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x01, 0x010000 + (i<<8) + 0x08); //change motor driver 06 to current mode; - Thread.Sleep(10); //Sleep for 10 milli. - - } -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/read WHS V0.cs b/Software/Stubs Collection/stubs/read WHS V0.cs deleted file mode 100644 index fb67ba2cc..000000000 --- a/Software/Stubs Collection/stubs/read WHS V0.cs +++ /dev/null @@ -1,33 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - - ProgressRequest progressRequest = new ProgressRequest(); - progressRequest.Amount = 0xD11; //turn off blower and PID - progressRequest.Delay = 0; - - var response = stubManager.Run<ProgressResponse>(progressRequest); - - Thread.Sleep(3000); - - progressRequest.Amount = 0xD12; //run V0 recalculation - response = stubManager.Run<ProgressResponse>(progressRequest); - - - Thread.Sleep(20000); - - progressRequest.Amount = 0xD11; //turn on blower and PID - progressRequest.Delay = 1; - response = stubManager.Run<ProgressResponse>(progressRequest); -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/read and store main card data.cs b/Software/Stubs Collection/stubs/read and store main card data.cs deleted file mode 100644 index cf0cb7278..000000000 --- a/Software/Stubs Collection/stubs/read and store main card data.cs +++ /dev/null @@ -1,84 +0,0 @@ -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.Stubs; -using Tango.PMR.EmbeddedParameters; -using Tango.Stubs; -using System.IO; -using Tango.PMR.IO; -using Google.Protobuf; - -string[] Main_Card_EEpromAddress = { -"DATA_SIZE", -"DANCER_0", -"DANCER_1", -"DANCER_2", -"DRYER_CENTER", -"DRYER_CYCLES", -"MIDTANK_1_A", -"MIDTANK_1_B", -"MIDTANK_2_A", -"MIDTANK_2_B", -"MIDTANK_3_A", -"MIDTANK_3_B", -"MIDTANK_4_A", -"MIDTANK_4_B", -"MIDTANK_5_A", -"MIDTANK_5_B", -"MIDTANK_6_A", -"MIDTANK_6_B", -"MIDTANK_7_A", -"MIDTANK_7_B", -"MIDTANK_8_A", -"MIDTANK_8_B", -"WINDER_CALIBRATION", -"EMBEDDED_VERSION", -"EEPROM_ALARM_SUPPORT", -"EEPROM_ORIFICE1_ZERO_VALUE", -"EEPROM_ORIFICE3_ZERO_VALUE", -"EEPROM_WASTE_TANK_ZERO_VALUE", -"EEPROM_PULLER_TENSION_POSITION", -"EEPROM_WINDER_TENSION_POSITION", -"EEPROM_INIT_FAILURE_COUNTER", -"DANCER_3", -"DANCER_4", -"EEPROM_PRESSURE_SENSOR_V0_0", -"EEPROM_PRESSURE_SENSOR_V0_1", -"EEPROM_DRIER_LOADING_ARM_ANGLE"}; - - -public void OnExecute(StubManager stubManager) -{ - string FileName; - StubReadEmbeddedVersionRequest stubReadEmbeddedVersionRequest = new StubReadEmbeddedVersionRequest(); - var response2 = stubManager.Run<StubReadEmbeddedVersionResponse>(stubReadEmbeddedVersionRequest); - - if ((response2.VerMajor>=1)&&(response2.VerMinor>=5)&&(response2.VerPatch>=2)&&(response2.VerBuild>=2)) - { - MainCardStoredDataRequest mainCardStoredDataRequest = new MainCardStoredDataRequest(); - var response3 = stubManager.Run<MainCardStoredDataResponse>(mainCardStoredDataRequest); - FileName = "C:/temp/mainEEProm"/*+stubManager.ConnectedMachine.SerialNumber*/+".json"; - stubManager.AppendToFile(FileName, "MainCardStoredData: "+ response3); - } - else - { - FileName = "C:/temp/mainEEProm"/*+stubManager.ConnectedMachine.SerialNumber*/+".csv"; - stubManager.AppendToFile(FileName, "Address,Name,Data"); - for (int i = 1; i < 36; i++) - { - StubMainCardEEpromReadRequest stubMainCardEEpromReadRequest = new StubMainCardEEpromReadRequest(); - stubMainCardEEpromReadRequest.Address = i; - stubMainCardEEpromReadRequest.Data = 0; - - var response = stubManager.Run<StubMainCardEEpromReadResponse>(stubMainCardEEpromReadRequest); - stubManager.AppendToFile(FileName, "\r\n"+response.Address + "," + Main_Card_EEpromAddress[i] +"," + response.Data); - } - } - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/read eeprom advanced.cs b/Software/Stubs Collection/stubs/read eeprom advanced.cs deleted file mode 100644 index cf0cb7278..000000000 --- a/Software/Stubs Collection/stubs/read eeprom advanced.cs +++ /dev/null @@ -1,84 +0,0 @@ -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.Stubs; -using Tango.PMR.EmbeddedParameters; -using Tango.Stubs; -using System.IO; -using Tango.PMR.IO; -using Google.Protobuf; - -string[] Main_Card_EEpromAddress = { -"DATA_SIZE", -"DANCER_0", -"DANCER_1", -"DANCER_2", -"DRYER_CENTER", -"DRYER_CYCLES", -"MIDTANK_1_A", -"MIDTANK_1_B", -"MIDTANK_2_A", -"MIDTANK_2_B", -"MIDTANK_3_A", -"MIDTANK_3_B", -"MIDTANK_4_A", -"MIDTANK_4_B", -"MIDTANK_5_A", -"MIDTANK_5_B", -"MIDTANK_6_A", -"MIDTANK_6_B", -"MIDTANK_7_A", -"MIDTANK_7_B", -"MIDTANK_8_A", -"MIDTANK_8_B", -"WINDER_CALIBRATION", -"EMBEDDED_VERSION", -"EEPROM_ALARM_SUPPORT", -"EEPROM_ORIFICE1_ZERO_VALUE", -"EEPROM_ORIFICE3_ZERO_VALUE", -"EEPROM_WASTE_TANK_ZERO_VALUE", -"EEPROM_PULLER_TENSION_POSITION", -"EEPROM_WINDER_TENSION_POSITION", -"EEPROM_INIT_FAILURE_COUNTER", -"DANCER_3", -"DANCER_4", -"EEPROM_PRESSURE_SENSOR_V0_0", -"EEPROM_PRESSURE_SENSOR_V0_1", -"EEPROM_DRIER_LOADING_ARM_ANGLE"}; - - -public void OnExecute(StubManager stubManager) -{ - string FileName; - StubReadEmbeddedVersionRequest stubReadEmbeddedVersionRequest = new StubReadEmbeddedVersionRequest(); - var response2 = stubManager.Run<StubReadEmbeddedVersionResponse>(stubReadEmbeddedVersionRequest); - - if ((response2.VerMajor>=1)&&(response2.VerMinor>=5)&&(response2.VerPatch>=2)&&(response2.VerBuild>=2)) - { - MainCardStoredDataRequest mainCardStoredDataRequest = new MainCardStoredDataRequest(); - var response3 = stubManager.Run<MainCardStoredDataResponse>(mainCardStoredDataRequest); - FileName = "C:/temp/mainEEProm"/*+stubManager.ConnectedMachine.SerialNumber*/+".json"; - stubManager.AppendToFile(FileName, "MainCardStoredData: "+ response3); - } - else - { - FileName = "C:/temp/mainEEProm"/*+stubManager.ConnectedMachine.SerialNumber*/+".csv"; - stubManager.AppendToFile(FileName, "Address,Name,Data"); - for (int i = 1; i < 36; i++) - { - StubMainCardEEpromReadRequest stubMainCardEEpromReadRequest = new StubMainCardEEpromReadRequest(); - stubMainCardEEpromReadRequest.Address = i; - stubMainCardEEpromReadRequest.Data = 0; - - var response = stubManager.Run<StubMainCardEEpromReadResponse>(stubMainCardEEpromReadRequest); - stubManager.AppendToFile(FileName, "\r\n"+response.Address + "," + Main_Card_EEpromAddress[i] +"," + response.Data); - } - } - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/read embedded version.cs b/Software/Stubs Collection/stubs/read embedded version.cs index 8990fc2cd..27424c029 100644 --- a/Software/Stubs Collection/stubs/read embedded version.cs +++ b/Software/Stubs Collection/stubs/read embedded version.cs @@ -8,7 +8,7 @@ using System.Threading; using System.Threading.Tasks; using System.Collections.Generic; using Tango.PMR.Stubs; -using Tango.Stubs; +using Tango.Stubs.UI; public void OnExecute(StubManager stubManager) { diff --git a/Software/Stubs Collection/stubs/read main card eeprom.cs b/Software/Stubs Collection/stubs/read main card eeprom.cs deleted file mode 100644 index 3ba77a86b..000000000 --- a/Software/Stubs Collection/stubs/read main card eeprom.cs +++ /dev/null @@ -1,25 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - - - for (int i = 0; i < 30; i++) - { - StubMainCardEEpromReadRequest stubMainCardEEpromReadRequest = new StubMainCardEEpromReadRequest(); - stubMainCardEEpromReadRequest.Address = i; - stubMainCardEEpromReadRequest.Data = 0; - - var response = stubManager.Run<StubMainCardEEpromReadResponse>(stubMainCardEEpromReadRequest); - } -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/reload main card EEPROM.cs b/Software/Stubs Collection/stubs/reload main card EEPROM.cs deleted file mode 100644 index 3ddaf6c40..000000000 --- a/Software/Stubs Collection/stubs/reload main card EEPROM.cs +++ /dev/null @@ -1,101 +0,0 @@ -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.Stubs; -using Tango.PMR.EmbeddedParameters; -using Tango.Stubs; -using System.IO; -using Tango.PMR.IO; -using Google.Protobuf; - -string[] Main_Card_EEpromAddress = { -"DATA_SIZE", -"DANCER_0", -"DANCER_1", -"DANCER_2", -"DRYER_CENTER", -"DRYER_CYCLES", -"MIDTANK_1_A", -"MIDTANK_1_B", -"MIDTANK_2_A", -"MIDTANK_2_B", -"MIDTANK_3_A", -"MIDTANK_3_B", -"MIDTANK_4_A", -"MIDTANK_4_B", -"MIDTANK_5_A", -"MIDTANK_5_B", -"MIDTANK_6_A", -"MIDTANK_6_B", -"MIDTANK_7_A", -"MIDTANK_7_B", -"MIDTANK_8_A", -"MIDTANK_8_B", -"WINDER_CALIBRATION", -"EMBEDDED_VERSION", -"EEPROM_ALARM_SUPPORT", -"EEPROM_ORIFICE1_ZERO_VALUE", -"EEPROM_ORIFICE3_ZERO_VALUE", -"EEPROM_WASTE_TANK_ZERO_VALUE", -"EEPROM_PULLER_TENSION_POSITION", -"EEPROM_WINDER_TENSION_POSITION", -"EEPROM_INIT_FAILURE_COUNTER", -"DANCER_3", -"DANCER_4", -"EEPROM_PRESSURE_SENSOR_V0_0", -"EEPROM_PRESSURE_SENSOR_V0_1", -"EEPROM_DRIER_LOADING_ARM_ANGLE"}; - - -public void OnExecute(StubManager stubManager) -{ - string filename = "c:\\temp\\mainEEProm10104.csv";//stubManager.ShowResponseWindow("Please Enter FileName"); - string line; - string[] Table1 = new string [4] ; - int i; - - // Read the file and display it line by line. - - stubManager.Write("\r\nfile name " + filename); - System.IO.StreamReader file = new System.IO.StreamReader(filename); - - line = file.ReadLine(); - stubManager.Write("\r\n line " + line); - line = file.ReadLine(); - stubManager.Write("\r\n line " + line); - int j=0; - while(line != null) - { - j++; - //stubManager.Write("\r\n line " + line + " null? " + (line==null)); - string[] words = line.Split(','); - i=0; - foreach (var word in words) - { - Table1[i]=word; - i=i+1; - } - //stubManager.Write("\r\nfile read\t"+ (i) + " " + Table1[1] + " "+ Table1[2] + " "+ Table1[3] + " "); - int Address = Convert.ToInt32(Table1[0]); - int Data = Convert.ToInt32(Table1[2]); - string name = Table1[1]; - //stubManager.Write("\r\nfile read\t"+ (i) + " " + j + " "+ Table1[2] + " "+ Data + " "); - if (Address>0) - { - StubMainCardEEpromWriteRequest stubMainCardEEpromWriteRequest = new StubMainCardEEpromWriteRequest(); - stubMainCardEEpromWriteRequest.Address = j; - stubMainCardEEpromWriteRequest.Data = Data; - - var response = stubManager.Run<StubMainCardEEpromWriteResponse>(stubMainCardEEpromWriteRequest); - stubManager.Write("\r\nMain_Card_Data write \t"+ j + " " +Table1[1] + " address \t "+ j+" data: \t" + Data); - } - line = file.ReadLine(); - } - stubManager.Write("\r\n last line " + line + "null? " + (line==null)); -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/set test VAC.cs b/Software/Stubs Collection/stubs/set test VAC.cs deleted file mode 100644 index b3f0ff27f..000000000 --- a/Software/Stubs Collection/stubs/set test VAC.cs +++ /dev/null @@ -1,23 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - - -ProgressRequest progressRequest = new ProgressRequest(); -progressRequest.Amount = 0xB6; -progressRequest.Delay = 160; - - var response = stubManager.Run<ProgressResponse>(progressRequest); - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/stop whs blower control.cs b/Software/Stubs Collection/stubs/stop whs blower control.cs deleted file mode 100644 index b2bfbe23e..000000000 --- a/Software/Stubs Collection/stubs/stop whs blower control.cs +++ /dev/null @@ -1,23 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - - -ProgressRequest progressRequest = new ProgressRequest(); -progressRequest.Amount = 0x3e8; -progressRequest.Delay = 100; - - var response = stubManager.Run<ProgressResponse>(progressRequest); - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/technician view files/ARC head techboard.tpf b/Software/Stubs Collection/stubs/technician view files/ARC head techboard.tpf deleted file mode 100644 index 902c1d414..000000000 --- a/Software/Stubs Collection/stubs/technician view files/ARC head techboard.tpf +++ /dev/null @@ -1,2722 +0,0 @@ -<?xml version="1.0"?> -<MachineTechViewProject xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> - <Items /> - <Tabs> - <MachineTechViewProjectTab> - <Name>Temperatures</Name> - <Items> - <TechItem xsi:type="DigitalOutItem"> - <ID>e4892498-fa1a-413c-9dd8-633efaade51c</ID> - <Left>461</Left> - <Top>703.30530973452176</Top> - <Width>160</Width> - <Height>102.34070796460173</Height> - <Angle>0</Angle> - <ItemGuid>6b9cba1d-4acf-4992-97ad-e422bca6ada2</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>a15665e3-af39-42d8-8c06-97d770632e10</ID> - <Left>1015</Left> - <Top>597.31415929203365</Top> - <Width>207</Width> - <Height>184.4159292035398</Height> - <Angle>0</Angle> - <ItemGuid>6D6CFA18-5922-4AFE-84B3-2721CE128681</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>DryerAirHeater</HeaterType> - <SetPoint>180</SetPoint> - <CurrentValue>180.04999999999998</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>180</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>0ac64716-d30c-489b-939e-a26d06445866</ID> - <Left>909</Left> - <Top>676.91592920354287</Top> - <Width>130</Width> - <Height>100.31415929203541</Height> - <Angle>0</Angle> - <ItemGuid>A5DFC2DB-3B36-4377-96A0-D492CE785C00</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>DryerMainHeater</HeaterType> - <SetPoint>36</SetPoint> - <CurrentValue>195.07</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>36</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>181796d8-64f6-420a-8f37-9af9df67d6a9</ID> - <Left>776</Left> - <Top>676.15044247787159</Top> - <Width>127</Width> - <Height>101.3274336283186</Height> - <Angle>0</Angle> - <ItemGuid>86808B48-B7F9-43AD-840E-2A6A5987C305</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>DryerSecondaryHeater</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>196.38</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>fd2bb3a3-a411-470d-bde7-0beaf84da059</ID> - <Left>848</Left> - <Top>115.38495575221202</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>8E764A14-0F84-4FEC-928B-32A2509CAD57</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone3</HeaterType> - <SetPoint>85</SetPoint> - <CurrentValue>85.02</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>85</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>7e8dd386-cca6-4d07-8a3e-af5403756002</ID> - <Left>1024</Left> - <Top>116.35840707964502</Top> - <Width>200</Width> - <Height>194.90707964601751</Height> - <Angle>0</Angle> - <ItemGuid>B4EE8CC0-EE2B-4ABE-BF09-9226860E756B</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone2</HeaterType> - <SetPoint>80</SetPoint> - <CurrentValue>80.52</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>80</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>32a91e5f-27c8-490d-b187-8e39b6626a13</ID> - <Left>1221</Left> - <Top>116.60619469026824</Top> - <Width>170</Width> - <Height>192.69026548672593</Height> - <Angle>0</Angle> - <ItemGuid>27E7BB74-81C3-4EF2-80AE-962F111C441F</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone1</HeaterType> - <SetPoint>80</SetPoint> - <CurrentValue>80.19</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>80</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>c844235a-8a29-4c2e-a964-e8f546d2ced7</ID> - <Left>1212</Left> - <Top>599.55752212389427</Top> - <Width>173</Width> - <Height>183.40265486725662</Height> - <Angle>0</Angle> - <ItemGuid>42A62A48-F1D5-4BB6-AFEA-6A7DF6DCF626</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>MixerHeater</HeaterType> - <SetPoint>80</SetPoint> - <CurrentValue>79.08</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>80</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>e6b3eb18-482b-450e-b8a8-d2ac6bba4fd4</ID> - <Left>1033</Left> - <Top>341.74778761061987</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>D6771DF4-771E-4D62-B6BA-BDE361C0A0F3</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone5</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>1.22</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>f9936dba-cef8-41e3-a715-eb629dca1870</ID> - <Left>327</Left> - <Top>682.06637168140855</Top> - <Width>131</Width> - <Height>109.43362831858394</Height> - <Angle>0</Angle> - <ItemGuid>1778C1A7-AFB5-42F9-9E00-E80D30D9FC0A</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>5f2610dc-3b9d-4302-b8f5-77a5e1c73b8c</ID> - <Left>1027.9999999999973</Left> - <Top>291.07079646017547</Top> - <Width>44</Width> - <Height>42.557522123893705</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text /> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>eadb5257-47a2-4336-a72a-f2d157fe70cb</ID> - <Left>907.99999999999909</Left> - <Top>295.35840707964616</Top> - <Width>44</Width> - <Height>42.557522123893705</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text /> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>6c59af66-169a-46e0-89ae-a81e3e619043</ID> - <Left>785.00000000000159</Left> - <Top>288.5000000000004</Top> - <Width>44</Width> - <Height>42.557522123893705</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text /> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>3b32b9a8-f300-443f-950e-c49f81678bac</ID> - <Left>624.99999999999966</Left> - <Top>285.86725663716874</Top> - <Width>44</Width> - <Height>42.557522123893705</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text /> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>f6d44793-ed44-46ed-8854-eacbc11af10c</ID> - <Left>624</Left> - <Top>697.74778761062794</Top> - <Width>155</Width> - <Height>96.261061946902714</Height> - <Angle>0</Angle> - <ItemGuid>df38139e-0026-46bc-b72f-df5f9eec80f7</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="MonitorRecorderItem"> - <ID>43793f93-da64-4409-b583-bca498f641e6</ID> - <Left>345.00000000002086</Left> - <Top>136.75221238937925</Top> - <Width>203</Width> - <Height>107.40707964601774</Height> - <Angle>0</Angle> - <ColorNumber>-1</ColorNumber> - <SelectedMonitorsGuids> - <string>D023F15D-3555-48E9-A9E9-5DF99F60D791</string> - <string>94F3E5A1-413E-4EA0-BDE1-F0625BFF7910</string> - <string>AFB7B6F7-8FFB-4A7F-B814-04F0C163CAA1</string> - <string>C8AB34C4-F921-4329-817A-7698DDAD01C6</string> - <string>48E8DD1B-46EC-4576-B513-7E734503B6DA</string> - <string>A8DB1D27-6B25-4FB4-A3F5-46A29BA51955</string> - <string>D7585119-4A42-4370-8F1E-F3E62553E588</string> - <string>098F7CAB-030C-46B0-B2B8-A85AF2253032</string> - </SelectedMonitorsGuids> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>be9db1fd-d408-4f1c-a15a-d6ffe58fafb6</ID> - <Left>1225</Left> - <Top>341.14159292034878</Top> - <Width>175</Width> - <Height>193.42920353982305</Height> - <Angle>0</Angle> - <ItemGuid>188285E5-1493-4BED-8269-91743770A631</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone7</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>1.17</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>f129ea0d-9abb-437f-928e-1cd1f569db2a</ID> - <Left>1190.0000000000025</Left> - <Top>294.69026548672929</Top> - <Width>39</Width> - <Height>38.504424778760836</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text /> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>217c677a-3e11-4a7c-959b-616dae1259dd</ID> - <Left>1369</Left> - <Top>295.87168141592934</Top> - <Width>44</Width> - <Height>42.557522123893705</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text /> - </TechItem> - <TechItem xsi:type="ProcessParametersItem"> - <ID>21aa11c9-3d35-4902-901a-b9ed45117e09</ID> - <Left>653</Left> - <Top>860.82743362831877</Top> - <Width>382</Width> - <Height>223.93362831858394</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <ProcessParameters> - <ID>0</ID> - <Guid>811430c0-2afc-4e9b-8077-a74e1fd2f825</Guid> - <LastUpdated>2020-01-14T11:41:02.8729031Z</LastUpdated> - <Name>Process parameters 3</Name> - <DyeingSpeed>0</DyeingSpeed> - <MinInkUptake>0</MinInkUptake> - <MaxInkUptake>0</MaxInkUptake> - <FeederTension>0</FeederTension> - <PullerTension>0</PullerTension> - <WinderTension>0</WinderTension> - <MixerTemp>0</MixerTemp> - <HeadZone1Temp>0</HeadZone1Temp> - <HeadZone2Temp>100</HeadZone2Temp> - <HeadZone3Temp>0</HeadZone3Temp> - <HeadZone4Temp>0</HeadZone4Temp> - <HeadZone5Temp>0</HeadZone5Temp> - <HeadZone6Temp>0</HeadZone6Temp> - <DryerAirFlow>0</DryerAirFlow> - <DryerZone1Temp>0</DryerZone1Temp> - <DryerZone2Temp>0</DryerZone2Temp> - <DryerZone3Temp>0</DryerZone3Temp> - <DryerBufferLength>0</DryerBufferLength> - <HeadAirFlow>0</HeadAirFlow> - <TableIndex>0</TableIndex> - <HeadZone7Temp>0</HeadZone7Temp> - <HeadZone8Temp>0</HeadZone8Temp> - <HeadZone9Temp>0</HeadZone9Temp> - <HeadZone10Temp>0</HeadZone10Temp> - <HeadZone11Temp>0</HeadZone11Temp> - <HeadZone12Temp>0</HeadZone12Temp> - <RBlowerFlow>0</RBlowerFlow> - <RBlowerTemp>0</RBlowerTemp> - <LBlowerFlow>0</LBlowerFlow> - <LBlowerTemp>0</LBlowerTemp> - <PressureBuildUp>0</PressureBuildUp> - </ProcessParameters> - <ParametersIndices> - <ParameterIndex> - <Name>Name</Name> - <Index>0</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dyeing Speed</Name> - <Index>1</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Min Ink Uptake</Name> - <Index>2</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Max Ink Uptake</Name> - <Index>3</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Feeder Tension</Name> - <Index>4</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Puller Tension</Name> - <Index>5</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Winder Tension</Name> - <Index>6</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Mixer Temp</Name> - <Index>7</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 1 Temp</Name> - <Index>8</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 2 Temp</Name> - <Index>9</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 3 Temp</Name> - <Index>10</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 4 Temp</Name> - <Index>11</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 5 Temp</Name> - <Index>12</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 6 Temp</Name> - <Index>13</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Air Flow</Name> - <Index>14</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Zone 1 Temp</Name> - <Index>15</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Zone 2 Temp</Name> - <Index>16</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Zone 3 Temp</Name> - <Index>17</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Buffer Length</Name> - <Index>18</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Air Flow</Name> - <Index>19</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Process Parameters Tables Group Guid</Name> - <Index>20</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Table Index</Name> - <Index>21</Index> - </ParameterIndex> - </ParametersIndices> - </TechItem> - <TechItem xsi:type="DancerItem"> - <ID>d3f502ea-76dd-48c3-b401-7f5fb7925a72</ID> - <Left>283</Left> - <Top>565.19469026548632</Top> - <Width>93</Width> - <Height>82.774336283185448</Height> - <Angle>0</Angle> - <ItemGuid>3EEE3B24-55DD-49F2-9339-F83F883BB908</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>e502555c-95b0-4688-b5e3-8becb30fc62c</ID> - <Left>1382.875</Left> - <Top>116.79102777534303</Top> - <Width>212</Width> - <Height>190.06194690265767</Height> - <Angle>0</Angle> - <ItemGuid>F8C1BA7F-F6DF-414D-BAF5-D4CB292F91F6</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeadCoverHeater1</HeaterType> - <SetPoint>250</SetPoint> - <CurrentValue>250</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>250</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>0f7a35fc-e363-45b2-948d-ba66f91e4f0d</ID> - <Left>1401.8333333333333</Left> - <Top>342.54486112328044</Top> - <Width>187</Width> - <Height>189.87168141593145</Height> - <Angle>0</Angle> - <ItemGuid>F39B952A-6194-4055-A5CB-A3421BFE0F9B</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeadCoverHeater2</HeaterType> - <SetPoint>250</SetPoint> - <CurrentValue>250.04999999999998</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>250</SetPoint> - </TechItem> - <TechItem xsi:type="ProcessParametersItem"> - <ID>379cc480-084f-4349-bb87-2c18b3c839e4</ID> - <Left>17</Left> - <Top>26.340707964601791</Top> - <Width>255</Width> - <Height>317.65929203539906</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <ProcessParameters> - <ID>0</ID> - <Guid>77e783e1-c5bb-4eac-8768-c9a28fc69c97</Guid> - <LastUpdated>2020-03-04T15:02:12.3146789Z</LastUpdated> - <Name>Process parameters 4</Name> - <DyeingSpeed>50</DyeingSpeed> - <MinInkUptake>0</MinInkUptake> - <MaxInkUptake>0</MaxInkUptake> - <FeederTension>9</FeederTension> - <PullerTension>0</PullerTension> - <WinderTension>0</WinderTension> - <MixerTemp>80</MixerTemp> - <HeadZone1Temp>80</HeadZone1Temp> - <HeadZone2Temp>80</HeadZone2Temp> - <HeadZone3Temp>90</HeadZone3Temp> - <HeadZone4Temp>100</HeadZone4Temp> - <HeadZone5Temp>110</HeadZone5Temp> - <HeadZone6Temp>120</HeadZone6Temp> - <DryerAirFlow>6</DryerAirFlow> - <DryerZone1Temp>180</DryerZone1Temp> - <DryerZone2Temp>0</DryerZone2Temp> - <DryerZone3Temp>0</DryerZone3Temp> - <DryerBufferLength>30</DryerBufferLength> - <HeadAirFlow>6</HeadAirFlow> - <TableIndex>0</TableIndex> - <HeadZone7Temp>135</HeadZone7Temp> - <HeadZone8Temp>135</HeadZone8Temp> - <HeadZone9Temp>135</HeadZone9Temp> - <HeadZone10Temp>135</HeadZone10Temp> - <HeadZone11Temp>140</HeadZone11Temp> - <HeadZone12Temp>140</HeadZone12Temp> - <RBlowerFlow>120</RBlowerFlow> - <RBlowerTemp>169</RBlowerTemp> - <LBlowerFlow>110</LBlowerFlow> - <LBlowerTemp>169</LBlowerTemp> - <PressureBuildUp>0</PressureBuildUp> - </ProcessParameters> - <ParametersIndices> - <ParameterIndex> - <Name>Process Parameters Tables Group Guid</Name> - <Index>0</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Name</Name> - <Index>1</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Table Index</Name> - <Index>2</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dyeing Speed</Name> - <Index>3</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Min Ink Uptake</Name> - <Index>4</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Max Ink Uptake</Name> - <Index>5</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Feeder Tension</Name> - <Index>6</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Puller Tension</Name> - <Index>7</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Winder Tension</Name> - <Index>8</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Mixer Temp</Name> - <Index>9</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 1 Temp</Name> - <Index>10</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 2 Temp</Name> - <Index>11</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 3 Temp</Name> - <Index>12</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 4 Temp</Name> - <Index>13</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 5 Temp</Name> - <Index>14</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 6 Temp</Name> - <Index>15</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 7 Temp</Name> - <Index>16</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 8 Temp</Name> - <Index>17</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 9 Temp</Name> - <Index>18</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 10 Temp</Name> - <Index>19</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 11 Temp</Name> - <Index>20</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 12 Temp</Name> - <Index>21</Index> - </ParameterIndex> - <ParameterIndex> - <Name>R Blower Flow</Name> - <Index>22</Index> - </ParameterIndex> - <ParameterIndex> - <Name>R Blower Temp</Name> - <Index>23</Index> - </ParameterIndex> - <ParameterIndex> - <Name>L Blower Flow</Name> - <Index>24</Index> - </ParameterIndex> - <ParameterIndex> - <Name>L Blower Temp</Name> - <Index>25</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Zone 1 Temp</Name> - <Index>26</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Zone 2 Temp</Name> - <Index>27</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Zone 3 Temp</Name> - <Index>28</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Air Flow</Name> - <Index>29</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Air Flow</Name> - <Index>30</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Buffer Length</Name> - <Index>31</Index> - </ParameterIndex> - </ParametersIndices> - </TechItem> - <TechItem xsi:type="ProcessParametersItem"> - <ID>9b9fde94-ce8c-4401-8961-9d1d44ae2bcf</ID> - <Left>24</Left> - <Top>364.40265486725747</Top> - <Width>250</Width> - <Height>310.15486725663669</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <ProcessParameters> - <ID>0</ID> - <Guid>e7434743-ec18-4ae3-91a9-e25db760963d</Guid> - <LastUpdated>2020-03-04T15:03:44.3914568Z</LastUpdated> - <Name>Process parameters 5</Name> - <DyeingSpeed>0</DyeingSpeed> - <MinInkUptake>0</MinInkUptake> - <MaxInkUptake>0</MaxInkUptake> - <FeederTension>0</FeederTension> - <PullerTension>0</PullerTension> - <WinderTension>0</WinderTension> - <MixerTemp>0</MixerTemp> - <HeadZone1Temp>0</HeadZone1Temp> - <HeadZone2Temp>0</HeadZone2Temp> - <HeadZone3Temp>0</HeadZone3Temp> - <HeadZone4Temp>0</HeadZone4Temp> - <HeadZone5Temp>0</HeadZone5Temp> - <HeadZone6Temp>0</HeadZone6Temp> - <DryerAirFlow>5</DryerAirFlow> - <DryerZone1Temp>180</DryerZone1Temp> - <DryerZone2Temp>0</DryerZone2Temp> - <DryerZone3Temp>0</DryerZone3Temp> - <DryerBufferLength>0</DryerBufferLength> - <HeadAirFlow>5</HeadAirFlow> - <TableIndex>0</TableIndex> - <HeadZone7Temp>0</HeadZone7Temp> - <HeadZone8Temp>0</HeadZone8Temp> - <HeadZone9Temp>0</HeadZone9Temp> - <HeadZone10Temp>0</HeadZone10Temp> - <HeadZone11Temp>0</HeadZone11Temp> - <HeadZone12Temp>0</HeadZone12Temp> - <RBlowerFlow>120</RBlowerFlow> - <RBlowerTemp>0</RBlowerTemp> - <LBlowerFlow>120</LBlowerFlow> - <LBlowerTemp>0</LBlowerTemp> - <PressureBuildUp>0</PressureBuildUp> - </ProcessParameters> - <ParametersIndices> - <ParameterIndex> - <Name>Process Parameters Tables Group Guid</Name> - <Index>0</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Name</Name> - <Index>1</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Table Index</Name> - <Index>2</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dyeing Speed</Name> - <Index>3</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Min Ink Uptake</Name> - <Index>4</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Max Ink Uptake</Name> - <Index>5</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Feeder Tension</Name> - <Index>6</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Puller Tension</Name> - <Index>7</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Winder Tension</Name> - <Index>8</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Mixer Temp</Name> - <Index>9</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 1 Temp</Name> - <Index>10</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 2 Temp</Name> - <Index>11</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 3 Temp</Name> - <Index>12</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 4 Temp</Name> - <Index>13</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 5 Temp</Name> - <Index>14</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 6 Temp</Name> - <Index>15</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 7 Temp</Name> - <Index>16</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 8 Temp</Name> - <Index>17</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 9 Temp</Name> - <Index>18</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 10 Temp</Name> - <Index>19</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 11 Temp</Name> - <Index>20</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 12 Temp</Name> - <Index>21</Index> - </ParameterIndex> - <ParameterIndex> - <Name>R Blower Flow</Name> - <Index>22</Index> - </ParameterIndex> - <ParameterIndex> - <Name>R Blower Temp</Name> - <Index>23</Index> - </ParameterIndex> - <ParameterIndex> - <Name>L Blower Flow</Name> - <Index>24</Index> - </ParameterIndex> - <ParameterIndex> - <Name>L Blower Temp</Name> - <Index>25</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Zone 1 Temp</Name> - <Index>26</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Zone 2 Temp</Name> - <Index>27</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Zone 3 Temp</Name> - <Index>28</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Air Flow</Name> - <Index>29</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Air Flow</Name> - <Index>30</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Buffer Length</Name> - <Index>31</Index> - </ParameterIndex> - </ParametersIndices> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>82576c3f-1790-4074-97a3-65a12bd812c1</ID> - <Left>448</Left> - <Top>562.51327433628489</Top> - <Width>131</Width> - <Height>109.43362831858394</Height> - <Angle>0</Angle> - <ItemGuid>94F3E5A1-413E-4EA0-BDE1-F0625BFF7910</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>8a68cdf4-136b-4db4-bc4e-b3157790be6a</ID> - <Left>596</Left> - <Top>565.796460176992</Top> - <Width>131</Width> - <Height>109.43362831858394</Height> - <Angle>0</Angle> - <ItemGuid>FE0D0A56-5795-4C5A-8E09-939FBB35C441</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>a842a172-2661-4190-961d-af98e9eb63e5</ID> - <Left>554</Left> - <Top>9.1150442477876368</Top> - <Width>167</Width> - <Height>69.9159292035398</Height> - <Angle>0</Angle> - <ItemGuid>D59EFB38-79D9-446C-BCB5-92D8FDA900E4</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>8979f624-9190-4eaf-9157-0a74be19c198</ID> - <Left>750</Left> - <Top>8.1017699115044479</Top> - <Width>161</Width> - <Height>62.823008849557539</Height> - <Angle>0</Angle> - <ItemGuid>9F98B9D3-F989-4D03-90E8-721671835E0B</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>c2e5796d-c2cb-495c-becb-a52993a5729f</ID> - <Left>346</Left> - <Top>6.07522123893807</Top> - <Width>181</Width> - <Height>68.902654867256615</Height> - <Angle>0</Angle> - <ItemGuid>1778C1A7-AFB5-42F9-9E00-E80D30D9FC02</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>65283da8-5813-4769-a803-43c97cacab10</ID> - <Left>953</Left> - <Top>19.769911504424272</Top> - <Width>161</Width> - <Height>62.823008849557539</Height> - <Angle>0</Angle> - <ItemGuid>055D0A38-09BD-490D-9852-12B06A4B22F2</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="BlowerItem"> - <ID>c667e35c-8a9d-4f6f-bd45-37bf90f05e2a</ID> - <Left>77</Left> - <Top>710.30088495575228</Top> - <Width>227</Width> - <Height>69.915929203539918</Height> - <Angle>0</Angle> - <ItemGuid>B6FE07F8-2435-495D-ABFE-358C76812413</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>b5524d9f-9c3a-4ef1-b9da-410335621cbb</ID> - <Left>780</Left> - <Top>346.53539823008856</Top> - <Width>188</Width> - <Height>74.982300884955748</Height> - <Angle>0</Angle> - <ItemGuid>0E3AB840-8B2C-4930-9208-E1EBB1F0134B</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>7ae4982d-57a1-4aef-a12e-bfd9507bee5f</ID> - <Left>798</Left> - <Top>446.84955752212392</Top> - <Width>194</Width> - <Height>81.061946902654824</Height> - <Angle>0</Angle> - <ItemGuid>A7064ADF-D57C-4F3C-ADBB-EE7606E2BD12</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>872b0d70-353a-4358-b47a-fa6a816cb3d7</ID> - <Left>585</Left> - <Top>344.50884955752218</Top> - <Width>172</Width> - <Height>86.128318584070826</Height> - <Angle>0</Angle> - <ItemGuid>A405F987-73B5-4B3C-93D5-C9F968BD1FF5</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>104fcafe-6135-4784-88ee-8cd3ca8732a2</ID> - <Left>596</Left> - <Top>450.90265486725667</Top> - <Width>172</Width> - <Height>72.955752212389314</Height> - <Angle>0</Angle> - <ItemGuid>20768F26-8D03-4660-8355-B29C595DFCB2</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="BlowerItem"> - <ID>1ef4079e-925c-41b6-a5b0-5710a7258526</ID> - <Left>318</Left> - <Top>344.50884955752218</Top> - <Width>227</Width> - <Height>69.915929203539918</Height> - <Angle>0</Angle> - <ItemGuid>998B5E61-3119-443D-ABAA-EFBC283B1021</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="BlowerItem"> - <ID>d0bc8dfb-339b-477f-93cd-53d23f50930e</ID> - <Left>331</Left> - <Top>457.99557522123888</Top> - <Width>227</Width> - <Height>69.915929203539918</Height> - <Angle>0</Angle> - <ItemGuid>080EB945-8E52-4876-9704-F9908FD26967</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - </Items> - </MachineTechViewProjectTab> - <MachineTechViewProjectTab> - <Name>Thread</Name> - <Items> - <TechItem xsi:type="MonitorItem"> - <ID>50bae43f-8b1a-4279-9238-b976a0c72af3</ID> - <Left>1530</Left> - <Top>193.19911504424795</Top> - <Width>169</Width> - <Height>181.37610619469029</Height> - <Angle>0</Angle> - <ItemGuid>A8DB1D27-6B25-4FB4-A3F5-46A29BA51955</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>68eef943-2151-4df5-be61-044c3865606e</ID> - <Left>1172</Left> - <Top>145.78318584070678</Top> - <Width>175</Width> - <Height>167.827433628319</Height> - <Angle>0</Angle> - <ItemGuid>96B89605-F999-43FE-A1CD-2645BFB33A36</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>6be024c6-3d1b-4267-9b77-44473aba56b7</ID> - <Left>988</Left> - <Top>143.32300884955998</Top> - <Width>190</Width> - <Height>167.09734513274049</Height> - <Angle>0</Angle> - <ItemGuid>FC60060A-3736-4910-B41A-FF6DABDF0E9E</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>7c720f3b-00e1-49dd-92f9-fdd1e9686623</ID> - <Left>817</Left> - <Top>142.42035398230098</Top> - <Width>169</Width> - <Height>168.31858407079625</Height> - <Angle>0</Angle> - <ItemGuid>4CE6A82E-D841-4D33-BBB2-11F0743A441C</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>3ebd6759-521b-4ed1-a353-ee1ad7801f28</ID> - <Left>922</Left> - <Top>516.43362831858417</Top> - <Width>439</Width> - <Height>304.995575221239</Height> - <Angle>0</Angle> - <ItemGuid>D126DB23-784B-4F0C-8F88-D89A65A7549F</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>1</DecimalPlaces> - <Duration>1460</Duration> - <Min>0</Min> - <Max>16384</Max> - <UseAutoRange>true</UseAutoRange> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>984b4126-3dda-4624-a79f-0646eb0e1358</ID> - <Left>465</Left> - <Top>515.420353982301</Top> - <Width>439</Width> - <Height>304.995575221239</Height> - <Angle>0</Angle> - <ItemGuid>10102BC3-0EAE-47FF-A8E5-8640780CAA3D</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>1</DecimalPlaces> - <Duration>1516</Duration> - <Min>0</Min> - <Max>16384</Max> - <UseAutoRange>true</UseAutoRange> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>8ebc3ab7-a02d-4b12-93b3-2563443831d7</ID> - <Left>15</Left> - <Top>518.46017699115032</Top> - <Width>439</Width> - <Height>304.995575221239</Height> - <Angle>0</Angle> - <ItemGuid>C0BCCD5C-346B-4C4A-A080-39D28E9E1A0C</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>1</DecimalPlaces> - <Duration>1398</Duration> - <Min>0</Min> - <Max>16384</Max> - <UseAutoRange>true</UseAutoRange> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>acafb268-5e97-4277-8dc8-173250a9e3f8</ID> - <Left>12</Left> - <Top>13.849557522123973</Top> - <Width>439</Width> - <Height>304.995575221239</Height> - <Angle>0</Angle> - <ItemGuid>9FBC5460-BA59-486B-8D85-BD7D8A959F98</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>1</DecimalPlaces> - <Duration>1273</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>be4cb8d9-b516-4604-a6a5-1638cbc50251</ID> - <Left>860</Left> - <Top>-24.18584070796669</Top> - <Width>345</Width> - <Height>169.21681415929209</Height> - <Angle>0</Angle> - <ItemGuid>4CE6A82E-D841-4D33-BBB2-11F0743A441C</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>1</DecimalPlaces> - <Duration>514</Duration> - <Min>0</Min> - <Max>100000</Max> - <UseAutoRange>true</UseAutoRange> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>75b99507-4eba-4b11-b52e-26732d4c5479</ID> - <Left>19</Left> - <Top>324.14159292035305</Top> - <Width>429</Width> - <Height>193.26548672566258</Height> - <Angle>0</Angle> - <ItemGuid>F1DF490B-0577-4FA7-ACA1-0EEF4F934E8F</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>4</DecimalPlaces> - <Duration>1398</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>a30e48de-be76-4230-92d0-d27d6f37b940</ID> - <Left>474</Left> - <Top>320.03097345132551</Top> - <Width>429</Width> - <Height>193.26548672566258</Height> - <Angle>0</Angle> - <ItemGuid>5F12B974-2C9E-4DDD-9B20-733251A5D7E6</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>4</DecimalPlaces> - <Duration>1398</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>5ac4b368-093a-4192-98d4-e9d24f229b13</ID> - <Left>928</Left> - <Top>321.64601769912122</Top> - <Width>429</Width> - <Height>193.26548672566258</Height> - <Angle>0</Angle> - <ItemGuid>84CF23C9-D20D-4C08-BE1D-80201FC43C06</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>4</DecimalPlaces> - <Duration>1398</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - </TechItem> - <TechItem xsi:type="MonitorRecorderItem"> - <ID>9c34dc69-cfaa-48b4-9d02-8f0d9bba79dd</ID> - <Left>1303</Left> - <Top>34.380530973454768</Top> - <Width>176</Width> - <Height>83.05309734512457</Height> - <Angle>0</Angle> - <ColorNumber>-1</ColorNumber> - <SelectedMonitorsGuids> - <string>89B7B89D-8050-4188-B568-35B1910CFB6F</string> - <string>96B89605-F999-43FE-A1CD-2645BFB33A36</string> - <string>84CF23C9-D20D-4C08-BE1D-80201FC43C06</string> - <string>FC60060A-3736-4910-B41A-FF6DABDF0E9E</string> - <string>5F12B974-2C9E-4DDD-9B20-733251A5D7E6</string> - <string>9ADF7823-B293-4275-9999-F62474D246AA</string> - <string>4CE6A82E-D841-4D33-BBB2-11F0743A441C</string> - <string>F1DF490B-0577-4FA7-ACA1-0EEF4F934E8F</string> - </SelectedMonitorsGuids> - </TechItem> - <TechItem xsi:type="ThreadMotionItem"> - <ID>51e66b20-f2a9-4f32-9e4e-ba06a0adccfc</ID> - <Left>453</Left> - <Top>19.247787610619469</Top> - <Width>346</Width> - <Height>195.56194690265488</Height> - <Angle>0</Angle> - <ColorNumber>-1</ColorNumber> - <Speed>40</Speed> - </TechItem> - </Items> - </MachineTechViewProjectTab> - <MachineTechViewProjectTab> - <Name>Dispensers</Name> - <Items> - <TechItem xsi:type="DispenserItem"> - <ID>dce78f33-c966-4848-8c6e-a4a01dbc7577</ID> - <Left>1322.1428571428571</Left> - <Top>214.15929203538531</Top> - <Width>159</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>2CC8E461-E91F-4D4C-A402-922477F06C87</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>20</Speed> - <DisplayName>Dispenser 1</DisplayName> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>2d03fc19-0502-43e1-a3ff-4012a612112b</ID> - <Left>1149</Left> - <Top>218.48230088495342</Top> - <Width>159</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>C8D8FE90-0375-44A2-A6D1-E997789E065C</ItemGuid> - <ColorNumber>-16724737</ColorNumber> - <Speed>20</Speed> - <DisplayName>Dispenser 2</DisplayName> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>81958374-3fa3-48b3-a554-5653fe1934b1</ID> - <Left>959</Left> - <Top>210.32743362830422</Top> - <Width>156</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>08ED9044-CAD6-4492-94B2-C07206E0164B</ItemGuid> - <ColorNumber>-65325</ColorNumber> - <Speed>20</Speed> - <DisplayName>Dispenser 3</DisplayName> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>8fead411-7198-4428-a364-e32f3035ed94</ID> - <Left>775</Left> - <Top>206.42920353980952</Top> - <Width>159</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>179F34BB-3252-4D3A-965C-E6EB43D6FE7C</ItemGuid> - <ColorNumber>-524544</ColorNumber> - <Speed>20</Speed> - <DisplayName>Dispenser 4</DisplayName> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>31bfa89f-e64d-4a3b-8585-c4a1b2e5a139</ID> - <Left>585</Left> - <Top>208.47345132741418</Top> - <Width>159</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>716B35CF-46E0-47D5-AF85-5233D212568F</ItemGuid> - <ColorNumber>-2108246</ColorNumber> - <Speed>1000</Speed> - <DisplayName>Dispenser 5</DisplayName> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>c2bff5f3-6dc9-4b07-87ba-9e3a5814804e</ID> - <Left>372</Left> - <Top>216.75221238937439</Top> - <Width>159</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>99528449-4D76-4874-AB95-522951560E01</ItemGuid> - <ColorNumber>-263685</ColorNumber> - <Speed>20</Speed> - <DisplayName>Dispenser 6</DisplayName> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>071281a5-3569-4a62-8b68-7bea850a3c07</ID> - <Left>217</Left> - <Top>211.63716814158107</Top> - <Width>159</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>E8ED07E2-7C36-459C-B9E5-6A23A1E24F03</ItemGuid> - <ColorNumber>-723724</ColorNumber> - <Speed>20</Speed> - <DisplayName>Dispenser 7</DisplayName> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>7b703b9a-a626-4ae5-8e31-fa1cfe5718f4</ID> - <Left>45</Left> - <Top>216.04867256635521</Top> - <Width>159</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>8A957565-4165-49F7-854D-D21F95FFBE1B</ItemGuid> - <ColorNumber>-724238</ColorNumber> - <Speed>13</Speed> - <DisplayName>Dispenser 8</DisplayName> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>caca40a2-310c-452e-adcf-c28ee38f6bdc</ID> - <Left>1305</Left> - <Top>31.606194690259713</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid> - <ColorNumber>-15856114</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>af52d36f-27a2-4a31-8ceb-9c43fedbed22</ID> - <Left>1127</Left> - <Top>32.535398230081626</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> - <ColorNumber>-15293470</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>d40eada8-d22a-4521-bd2a-d998ed93106f</ID> - <Left>955</Left> - <Top>32.61946902653176</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid> - <ColorNumber>-1570857</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>b2d6364d-8b5c-43d2-8838-927c85b017b1</ID> - <Left>774</Left> - <Top>31.960176991142362</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid> - <ColorNumber>-1379575</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>3980e685-73b3-4af1-9593-9235be147322</ID> - <Left>596</Left> - <Top>32.889380530964274</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid> - <ColorNumber>-7763381</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>51465293-58d5-40a4-8302-81856f8b4f47</ID> - <Left>424</Left> - <Top>32.973451327414409</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>AF3FD56C-95BF-4DE1-8EDC-8426B0DB2A26</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>c2a8c5b2-891b-4f9f-862c-c1c294366c78</ID> - <Left>252</Left> - <Top>31.703539823006281</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>60DA9EA3-C8A6-4D41-8AD8-3EB1BAA79CC9</ItemGuid> - <ColorNumber>-8391822</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>9618e441-8973-4e16-a90b-06ce5798bd29</ID> - <Left>80</Left> - <Top>31.787610619456416</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>EF66F95A-E166-4FA2-B1AF-D6F55621817A</ItemGuid> - <ColorNumber>-2186185</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>bce8c8e8-a317-4991-9aa7-cd99a45d1509</ID> - <Left>28.22352941176473</Left> - <Top>682.03174474303751</Top> - <Width>247</Width> - <Height>122.24778761061873</Height> - <Angle>0</Angle> - <ItemGuid>66cc8510-db9c-4e13-9151-01e705ec04de</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>72a23702-31bb-4ab8-aee5-2a02bcb1270b</ID> - <Left>235.16470588235291</Left> - <Top>699.99460095802579</Top> - <Width>200</Width> - <Height>94.15929203539747</Height> - <Angle>0</Angle> - <ItemGuid>36ba0ba4-e41d-45ff-8f68-1699e00c7107</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="ControllerItem"> - <ID>2dd6ff17-e515-4d8f-814f-a9683f404a8e</ID> - <Left>140</Left> - <Top>867.73893805310092</Top> - <Width>160</Width> - <Height>85.49115044247776</Height> - <Angle>0</Angle> - <ItemGuid>78482AA4-3DF6-421F-944C-64328D3C3EF2</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <OptimalRangeMinimum>0</OptimalRangeMinimum> - <OptimalRangeMaximum>70</OptimalRangeMaximum> - <UpdateInterval>10</UpdateInterval> - <IsSetToDefault>true</IsSetToDefault> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>06843009-1da0-4811-8e77-50576d0edcb1</ID> - <Left>507</Left> - <Top>792.77433628318749</Top> - <Width>219</Width> - <Height>125.75221238938025</Height> - <Angle>0</Angle> - <ItemGuid>0c5dc1e9-da17-4ff8-86aa-6b39fd796ba9</ItemGuid> - <ColorNumber>-16777216</ColorNumber> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>935dddd0-0c6f-4766-8173-f9118006a12b</ID> - <Left>1303</Left> - <Top>475.87168141593065</Top> - <Width>160</Width> - <Height>124.6504424778754</Height> - <Angle>0</Angle> - <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid> - <ColorNumber>-15856114</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MultiGraphItem"> - <ID>97e39a59-dba8-4e42-a124-b37de9453baf</ID> - <Left>370</Left> - <Top>781.46902654866153</Top> - <Width>710</Width> - <Height>401.24778761063465</Height> - <Angle>0</Angle> - <ItemGuid>D023F15D-3555-48E9-A9E9-5DF99F60D791</ItemGuid> - <ColorNumber>0</ColorNumber> - <DecimalPlaces>2</DecimalPlaces> - <Duration>1956</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>46bdfce3-1c69-45dd-bbe9-582d1ac1e6f2</ID> - <Left>1128</Left> - <Top>482.80530973451141</Top> - <Width>140</Width> - <Height>117.32300884955743</Height> - <Angle>0</Angle> - <ItemGuid>0FE216B2-A097-4F2C-B465-08593F2532B3</ItemGuid> - <ColorNumber>-15293470</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>429154a5-9a16-4423-85ca-ee4bae9aec3c</ID> - <Left>968</Left> - <Top>481.35398230088504</Top> - <Width>140</Width> - <Height>117.32300884955743</Height> - <Angle>0</Angle> - <ItemGuid>3271FD82-46D3-4789-B612-564967826C75</ItemGuid> - <ColorNumber>-1570857</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>0f6ab8e8-99a7-4468-bde8-690a63467688</ID> - <Left>766</Left> - <Top>476.07964601769811</Top> - <Width>140</Width> - <Height>117.32300884955743</Height> - <Angle>0</Angle> - <ItemGuid>FBB806E7-42FA-4BAA-BDA1-3B8B07913AAD</ItemGuid> - <ColorNumber>-1379575</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>bc0ac903-9c1f-4580-8b9e-670a76350473</ID> - <Left>586</Left> - <Top>474.38938053097161</Top> - <Width>140</Width> - <Height>117.32300884955743</Height> - <Angle>0</Angle> - <ItemGuid>436A22BB-AF79-4CB2-8A7D-DD4D9E54A81E</ItemGuid> - <ColorNumber>-7763381</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>f9c960b2-b93e-46d5-b892-30337c0b55af</ID> - <Left>391</Left> - <Top>474.87168141592781</Top> - <Width>140</Width> - <Height>117.32300884955743</Height> - <Angle>0</Angle> - <ItemGuid>89EA6CC8-5363-4BEC-A370-D906611087A7</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>5ac157ab-2d53-4307-bf0b-b069854701ac</ID> - <Left>226</Left> - <Top>471.66814159292005</Top> - <Width>140</Width> - <Height>117.32300884955743</Height> - <Angle>0</Angle> - <ItemGuid>D5EBE52B-E2DF-4C97-80B1-F111F6B15854</ItemGuid> - <ColorNumber>-8391822</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>65a19d7e-c524-48a0-bd70-28b99b113dd1</ID> - <Left>69</Left> - <Top>473.97787610619389</Top> - <Width>140</Width> - <Height>117.32300884955743</Height> - <Angle>0</Angle> - <ItemGuid>FE521D1B-A0EA-4FEA-AE64-33998A6CE138</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>5bf7a681-ee47-477e-8b47-ba7a2eb6e115</ID> - <Left>1130</Left> - <Top>624.9557522123913</Top> - <Width>144</Width> - <Height>80.495575221237516</Height> - <Angle>0</Angle> - <ItemGuid>3174ADCF-5793-4B5A-A3C6-B96E146A903D</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>29b17a4b-fd4e-49cc-a3cd-418730176bf7</ID> - <Left>969</Left> - <Top>625.95575221239</Top> - <Width>144</Width> - <Height>80.495575221237516</Height> - <Angle>0</Angle> - <ItemGuid>AD50C358-5BAF-4A2F-8593-51A22C85B3D1</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>21a5429f-c3a2-4e3b-ae77-c5538f30130d</ID> - <Left>775</Left> - <Top>623.66814159292062</Top> - <Width>144</Width> - <Height>82.535398230087083</Height> - <Angle>0</Angle> - <ItemGuid>E2F0FC31-CE7E-416B-ACEA-8EB6CA9B850B</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>96a46b0c-37b1-4457-93fb-b3dc301c5743</ID> - <Left>588</Left> - <Top>625.06637168141322</Top> - <Width>144</Width> - <Height>80.495575221237516</Height> - <Angle>0</Angle> - <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C09F</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>d4ad8603-9929-415f-9990-1869fcff36e4</ID> - <Left>1310</Left> - <Top>628.69469026548632</Top> - <Width>144</Width> - <Height>80.495575221237516</Height> - <Angle>0</Angle> - <ItemGuid>84682E90-6926-42AA-BF8C-2CCCF5C26C97</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="ValveItem"> - <ID>25249d78-ee37-42a8-b5aa-96f60e97c3ea</ID> - <Left>20.870588235294122</Left> - <Top>784.26605504587133</Top> - <Width>327</Width> - <Height>108.53097345133028</Height> - <Angle>0</Angle> - <ItemGuid>8B1FCBC3-FEEA-4F87-B56F-CE5D28B7ACA4</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>fc1d62f7-d13b-4a7b-8f9f-c687c987c7a9</ID> - <Left>1065</Left> - <Top>788.41592920352355</Top> - <Width>370</Width> - <Height>362.10619469026585</Height> - <Angle>0</Angle> - <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>3</DecimalPlaces> - <Duration>1426</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>cc99a514-1498-4b93-a4eb-4e0a2a2e9de6</ID> - <Left>628</Left> - <Top>765.4469026548752</Top> - <Width>394</Width> - <Height>372.88495575221242</Height> - <Angle>0</Angle> - <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>1</DecimalPlaces> - <Duration>1282</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - </TechItem> - <TechItem xsi:type="ValveItem"> - <ID>cdddd48e-422d-48f4-8397-5032c3705fdb</ID> - <Left>1069</Left> - <Top>698.04867256637226</Top> - <Width>382</Width> - <Height>136.79203539823016</Height> - <Angle>0</Angle> - <ItemGuid>7F9C5DE0-9E24-494D-841F-976DB440DBFD</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>ee6d4c5a-ca5b-4557-8012-dacf700cdc08</ID> - <Left>231</Left> - <Top>624.06637168142413</Top> - <Width>144</Width> - <Height>80.495575221237516</Height> - <Angle>0</Angle> - <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C010</ItemGuid> - <ColorNumber>-8391822</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>20576bb2-202f-4170-9af5-f3c18b410112</ID> - <Left>77</Left> - <Top>624.46460176991513</Top> - <Width>144</Width> - <Height>80.495575221237516</Height> - <Angle>0</Angle> - <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C011</ItemGuid> - <ColorNumber>-2186185</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - </Items> - </MachineTechViewProjectTab> - <MachineTechViewProjectTab> - <Name>Thread insertion</Name> - <Items> - <TechItem xsi:type="MotorItem"> - <ID>443a977c-8e89-4a56-82e4-684bac7945c9</ID> - <Left>25</Left> - <Top>22.761061946902203</Top> - <Width>247</Width> - <Height>172.25663716814159</Height> - <Angle>0</Angle> - <ItemGuid>08d15ca1-d7d1-460f-8f37-42c37c287cd1</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>500</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>a821b716-cb7d-4951-84ee-e56955431099</ID> - <Left>355</Left> - <Top>20.592920353981697</Top> - <Width>260</Width> - <Height>153.00442477876106</Height> - <Angle>0</Angle> - <ItemGuid>b90a4e78-ebbf-44db-829b-949517d6400b</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>500</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>e36e321b-d48d-4199-a1ee-75ac18e9de1e</ID> - <Left>694</Left> - <Top>19.367256637167998</Top> - <Width>217</Width> - <Height>155.26106194690203</Height> - <Angle>0</Angle> - <ItemGuid>b7c1aea4-32c1-41cb-bca3-4aa665529b49</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>500</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>8790db03-4dfd-4d49-aec0-706babb55af9</ID> - <Left>364</Left> - <Top>222.16814159291846</Top> - <Width>240</Width> - <Height>172.30973451327589</Height> - <Angle>0</Angle> - <ItemGuid>2d3eaca5-4dfd-40d9-9d1f-aa4ae794eddc</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>500</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>69ebcb28-13d9-41b3-a9ef-b2be51584141</ID> - <Left>29</Left> - <Top>241.34955752210982</Top> - <Width>263</Width> - <Height>174.296460176989</Height> - <Angle>0</Angle> - <ItemGuid>c6099065-a735-4cc5-b575-c31a45bb9262</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>400</Speed> - </TechItem> - <TechItem xsi:type="ThreadMotionItem"> - <ID>4d562029-3fdf-40a4-a5a7-9a322253c912</ID> - <Left>1168</Left> - <Top>47.305309734517039</Top> - <Width>304</Width> - <Height>167.26548672566202</Height> - <Angle>0</Angle> - <ColorNumber>-1</ColorNumber> - <Speed>50</Speed> - </TechItem> - <TechItem xsi:type="BreakSensorItem"> - <ID>92607e12-2dd6-41c9-8f89-f051f386b734</ID> - <Left>1258</Left> - <Top>277.55752212389069</Top> - <Width>240</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>DCE08A06-6711-43AE-AB7C-EADD5AB70EE0</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>7b5b6896-f626-4e59-a5cf-2600e603c0f6</ID> - <Left>695</Left> - <Top>223.44247787610908</Top> - <Width>228</Width> - <Height>175.0353982300901</Height> - <Angle>0</Angle> - <ItemGuid>7b6d0a93-5a91-4e1f-af47-353afd8b5ea6</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>83.833754740833143</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>2052a2d3-843c-4a1c-87fd-acd0832fd1b9</ID> - <Left>29</Left> - <Top>572.89380530973028</Top> - <Width>221</Width> - <Height>176.93805309734751</Height> - <Angle>0</Angle> - <ItemGuid>7c03f12f-ab2a-4421-8575-aefd6dec0001</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>1000</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>339b7d00-d688-41cf-926a-8171d5e62740</ID> - <Left>599</Left> - <Top>578.80973451326713</Top> - <Width>240</Width> - <Height>157.80088495575205</Height> - <Angle>0</Angle> - <ItemGuid>f3b5076e-cba3-4ad2-b3cc-0c4e907bd9ef</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>5</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>7644a8f9-00a2-4e37-8f48-0667b1541114</ID> - <Left>1037</Left> - <Top>247.03097345133062</Top> - <Width>240</Width> - <Height>172.30973451327589</Height> - <Angle>0</Angle> - <ItemGuid>92237d83-9f85-48db-aa6f-2fc5c9e0d8cd</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>500</Speed> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>c706d31b-48b0-44cc-a9c4-11d3acdcf667</ID> - <Left>548</Left> - <Top>418.71652683599893</Top> - <Width>269</Width> - <Height>127.67256637168134</Height> - <Angle>0</Angle> - <ItemGuid>2a454081-bd5e-41de-ae5d-97aefe1d76de</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>7ccff69d-50f9-4e9b-a997-72a67917df5e</ID> - <Left>900</Left> - <Top>580.00442477876311</Top> - <Width>227</Width> - <Height>145.08849557522183</Height> - <Angle>0</Angle> - <ItemGuid>9c02effb-7deb-40a1-90c3-df1fb48e6431</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>30</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>a88a74cb-418b-4ed0-89ec-c42ff560528e</ID> - <Left>1182</Left> - <Top>572.30088495575171</Top> - <Width>227</Width> - <Height>145.08849557522183</Height> - <Angle>0</Angle> - <ItemGuid>a359e9d0-adcc-40a5-b3d9-b9cb26eca092</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>30</Speed> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>bba24461-e18d-497a-b85d-808668d0c750</ID> - <Left>892</Left> - <Top>457.57079646017365</Top> - <Width>170</Width> - <Height>87.999999999997613</Height> - <Angle>0</Angle> - <ItemGuid>6f48e18c-d472-425a-ba7e-633630605e11</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>9ccdbff6-031d-4364-8732-daade6b88551</ID> - <Left>1062</Left> - <Top>452.95575221238948</Top> - <Width>170</Width> - <Height>87.999999999997613</Height> - <Angle>0</Angle> - <ItemGuid>8a65badb-3d7d-4b7b-8dcd-783e443b0689</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>22bb90e5-f05c-4a47-925e-516a252de2ac</ID> - <Left>324</Left> - <Top>546.82743362833332</Top> - <Width>213</Width> - <Height>211.8141592920241</Height> - <Angle>0</Angle> - <ItemGuid>c9482395-35e6-4340-8dab-83d5dfe907a7</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>5</Speed> - </TechItem> - </Items> - </MachineTechViewProjectTab> - <MachineTechViewProjectTab> - <Name>Head graphs</Name> - <Items> - <TechItem xsi:type="SingleGraphItem"> - <ID>ffe980da-dbbe-4bac-9595-46f587e9df00</ID> - <Left>683</Left> - <Top>6.8230088495575387</Top> - <Width>585</Width> - <Height>254.03097345132755</Height> - <Angle>0</Angle> - <ItemGuid>A8DB1D27-6B25-4FB4-A3F5-46A29BA51955</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>2</DecimalPlaces> - <Duration>2962</Duration> - <Min>0</Min> - <Max>300</Max> - <UseAutoRange>true</UseAutoRange> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>81b78212-14d8-4a66-bf3a-eeea9900e0d6</ID> - <Left>536</Left> - <Top>184.21238938053108</Top> - <Width>128</Width> - <Height>91.469026548670342</Height> - <Angle>0</Angle> - <ItemGuid>7FCA67CB-785B-49F7-B9F2-191E3ACC6CB7</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>3941a557-05e6-4c1b-bb98-4f2a59892431</ID> - <Left>533</Left> - <Top>22.663716814159159</Top> - <Width>141</Width> - <Height>109.433628318584</Height> - <Angle>0</Angle> - <ItemGuid>F8C1BA7F-F6DF-414D-BAF5-D4CB292F91F6</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeadCoverHeater1</HeaterType> - <SetPoint>250</SetPoint> - <CurrentValue>249.95</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>250</SetPoint> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>85b25b0b-cd3d-4a8a-88f5-f832623d7ec2</ID> - <Left>5.75</Left> - <Top>316.7892753877166</Top> - <Width>516</Width> - <Height>326.98672566371658</Height> - <Angle>0</Angle> - <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E448DD</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>2</DecimalPlaces> - <Duration>2962</Duration> - <Min>0</Min> - <Max>300</Max> - <UseAutoRange>true</UseAutoRange> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>85e9ecc2-3bce-4055-89a9-1712752898a9</ID> - <Left>375.66666666666663</Left> - <Top>902.19714360816624</Top> - <Width>128</Width> - <Height>91.469026548670342</Height> - <Angle>0</Angle> - <ItemGuid>500698E0-5623-4A47-9537-FCAAF5D0B725</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>8d9b0d4b-ac5e-4c17-b7eb-4d59825064c7</ID> - <Left>523.04166666666652</Left> - <Top>895.90015771488663</Top> - <Width>103</Width> - <Height>121.59292035398221</Height> - <Angle>0</Angle> - <ItemGuid>F39B952A-6194-4055-A5CB-A3421BFE0F9B</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeadCoverHeater2</HeaterType> - <SetPoint>250</SetPoint> - <CurrentValue>249.98999999999998</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>250</SetPoint> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>63ccee8d-ce38-4c69-b8d1-141f320d11f9</ID> - <Left>5</Left> - <Top>5.0619469026551087</Top> - <Width>518</Width> - <Height>295.5752212389379</Height> - <Angle>0</Angle> - <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E448CC</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>2</DecimalPlaces> - <Duration>2962</Duration> - <Min>0</Min> - <Max>300</Max> - <UseAutoRange>true</UseAutoRange> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>b339a7c0-7555-4e54-9834-6193ed7c2b7a</ID> - <Left>536</Left> - <Top>334.00442477876118</Top> - <Width>137</Width> - <Height>105.3805309734513</Height> - <Angle>0</Angle> - <ItemGuid>F39B952A-6194-4055-A5CB-A3421BFE0F9B</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeadCoverHeater2</HeaterType> - <SetPoint>250</SetPoint> - <CurrentValue>249.98999999999998</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>250</SetPoint> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>40d16753-8448-4af9-8fbd-98c1ed301de5</ID> - <Left>684</Left> - <Top>264.46017699115009</Top> - <Width>584</Width> - <Height>252.004424778761</Height> - <Angle>0</Angle> - <ItemGuid>D7585119-4A42-4370-8F1E-F3E62553E588</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>2</DecimalPlaces> - <Duration>2962</Duration> - <Min>0</Min> - <Max>300</Max> - <UseAutoRange>true</UseAutoRange> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>b3826c8e-1d82-4f4f-ad9f-d88f257dffb2</ID> - <Left>1279</Left> - <Top>61.871681415929345</Top> - <Width>128</Width> - <Height>99.57522123893591</Height> - <Angle>0</Angle> - <ItemGuid>d59b64f7-a8cf-4a2b-935a-943ae35fb78c</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>d3631074-68c4-4377-b0c5-9213a6b1b2c0</ID> - <Left>1415</Left> - <Top>526.52654867256626</Top> - <Width>103</Width> - <Height>113.4867256637167</Height> - <Angle>0</Angle> - <ItemGuid>8E764A14-0F84-4FEC-928B-32A2509CAD57</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone3</HeaterType> - <SetPoint>85</SetPoint> - <CurrentValue>84.94</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>85</SetPoint> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>233f0076-7595-4ecb-8496-41eeb7b457ea</ID> - <Left>1283</Left> - <Top>538.11061946902646</Top> - <Width>128</Width> - <Height>91.469026548670342</Height> - <Angle>0</Angle> - <ItemGuid>9de55ec4-201f-4f62-9003-f63ebea06f8f</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>f815ebb5-61af-45ff-8109-5f5e717a5c4d</ID> - <Left>1411</Left> - <Top>25.969026548672616</Top> - <Width>107</Width> - <Height>165.16371681415916</Height> - <Angle>0</Angle> - <ItemGuid>27E7BB74-81C3-4EF2-80AE-962F111C441F</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone1</HeaterType> - <SetPoint>80</SetPoint> - <CurrentValue>80.02</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>80</SetPoint> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>72d7192b-dd27-4064-9f5f-90062388a81c</ID> - <Left>1284</Left> - <Top>298.97787610619486</Top> - <Width>128</Width> - <Height>91.469026548670342</Height> - <Angle>0</Angle> - <ItemGuid>df38139e-0026-46bc-b72f-df5f9eec80f7</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>915f8dfc-5407-43ca-a0c7-d774867dfb5f</ID> - <Left>1415</Left> - <Top>286.38053097345141</Top> - <Width>103</Width> - <Height>113.4867256637167</Height> - <Angle>0</Angle> - <ItemGuid>B4EE8CC0-EE2B-4ABE-BF09-9226860E756B</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone2</HeaterType> - <SetPoint>80</SetPoint> - <CurrentValue>79</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>80</SetPoint> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>4f3b4ecd-759a-4ba5-80f3-74cc485d7085</ID> - <Left>684</Left> - <Top>518.79203539822981</Top> - <Width>586</Width> - <Height>276.32300884955743</Height> - <Angle>0</Angle> - <ItemGuid>098F7CAB-030C-46B0-B2B8-A85AF2253032</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>2</DecimalPlaces> - <Duration>2962</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>b53a74f3-8e91-40ce-b980-c5b237baeee9</ID> - <Left>536</Left> - <Top>482.38053097345153</Top> - <Width>143</Width> - <Height>92.482300884953418</Height> - <Angle>0</Angle> - <ItemGuid>500698E0-5623-4A47-9537-FCAAF5D0B725</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>f786b4da-3291-4ccb-a280-196fd8697ac1</ID> - <Left>5.7499999999999858</Left> - <Top>866.06435643564362</Top> - <Width>350</Width> - <Height>152.70353982300856</Height> - <Angle>0</Angle> - <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E448DD</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>2</DecimalPlaces> - <Duration>2962</Duration> - <Min>0</Min> - <Max>300</Max> - <UseAutoRange>true</UseAutoRange> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>05eab3d7-3af6-4d3f-b3b3-468eeb77a503</ID> - <Left>644.29166666666674</Left> - <Top>874.00000000000011</Top> - <Width>350</Width> - <Height>152.70353982300856</Height> - <Angle>0</Angle> - <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E448CC</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>2</DecimalPlaces> - <Duration>2962</Duration> - <Min>0</Min> - <Max>300</Max> - <UseAutoRange>true</UseAutoRange> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>c1f48bf1-9cb3-475a-b152-e8b9a211b694</ID> - <Left>1010.1666666666667</Left> - <Top>895.60597564181194</Top> - <Width>128</Width> - <Height>91.469026548670342</Height> - <Angle>0</Angle> - <ItemGuid>7FCA67CB-785B-49F7-B9F2-191E3ACC6CB7</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>c5fbeda2-230d-40e4-9d52-5b3236e0c561</ID> - <Left>1161.708333333333</Left> - <Top>885.907999649522</Top> - <Width>103</Width> - <Height>121.59292035398221</Height> - <Angle>0</Angle> - <ItemGuid>F8C1BA7F-F6DF-414D-BAF5-D4CB292F91F6</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeadCoverHeater1</HeaterType> - <SetPoint>250</SetPoint> - <CurrentValue>249.95</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>250</SetPoint> - </TechItem> - </Items> - </MachineTechViewProjectTab> - <MachineTechViewProjectTab> - <Name>waste</Name> - <Items> - <TechItem xsi:type="DigitalOutItem"> - <ID>bb9bf273-0a3d-4202-98ce-37a5f206ed75</ID> - <Left>118</Left> - <Top>74.380530973451243</Top> - <Width>339</Width> - <Height>184.4159292035398</Height> - <Angle>0</Angle> - <ItemGuid>7e1f53ec-8176-4efa-ac3d-c8f2436e60d1</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>59678a51-f995-4952-b250-e449f1fcbeac</ID> - <Left>468</Left> - <Top>80.336283185839477</Top> - <Width>280</Width> - <Height>166.17699115044252</Height> - <Angle>0</Angle> - <ItemGuid>78db28d0-0407-4942-bb62-c44da81c4f9e</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="DigitalInItem"> - <ID>8f9ff579-0e9d-4f48-8ed0-6fa563f2aba7</ID> - <Left>873</Left> - <Top>63.831858407079665</Top> - <Width>174</Width> - <Height>133.75221238938059</Height> - <Angle>0</Angle> - <ItemGuid>06bd7c0b-5aef-445a-86c0-853becf8594b</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="DigitalInItem"> - <ID>70d1bd1e-acdb-436a-b205-6eeb9d137120</ID> - <Left>1070</Left> - <Top>70.106194690265909</Top> - <Width>221</Width> - <Height>123.61946902654864</Height> - <Angle>0</Angle> - <ItemGuid>4048bf02-27dc-4049-9284-fe913a7e0ebe</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="DigitalInItem"> - <ID>dcc7ce16-5b89-4ff8-acd5-7fb0b9ebb6d1</ID> - <Left>877</Left> - <Top>248.24778761061947</Top> - <Width>186</Width> - <Height>126.65929203539827</Height> - <Angle>0</Angle> - <ItemGuid>00ea1771-efee-4f3e-a0d2-8b2a4214e9fd</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>2b99bbf7-94da-4bb2-acc9-91b35e543c5d</ID> - <Left>897</Left> - <Top>358.69469026548683</Top> - <Width>147</Width> - <Height>69.9159292035398</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>Waste lower presence</Text> - </TechItem> - <TechItem xsi:type="DigitalInItem"> - <ID>c150533c-abe4-4edf-b6ad-fa475b133142</ID> - <Left>1112</Left> - <Top>253.66814159291806</Top> - <Width>186</Width> - <Height>126.65929203539827</Height> - <Angle>0</Angle> - <ItemGuid>d2f266e3-779b-4dfe-b513-26ce61c529a4</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>d96f2a6d-0ccb-401e-8931-09086ca81fae</ID> - <Left>1143</Left> - <Top>366.78318584070507</Top> - <Width>147</Width> - <Height>69.9159292035398</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>Waste middle presence</Text> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>bb9847ba-9671-4613-bf23-a0c637ebc79d</ID> - <Left>151</Left> - <Top>271.55309734513281</Top> - <Width>200</Width> - <Height>63.836283185840671</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>pump</Text> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>d13a2df4-3f54-4c31-8f9a-ee7810fb6af5</ID> - <Left>504</Left> - <Top>283.71238938053096</Top> - <Width>192</Width> - <Height>67.88938053097354</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>valve</Text> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>fbe2670f-6d9b-4361-9332-1ceb1692c91a</ID> - <Left>76</Left> - <Top>313.99115044248094</Top> - <Width>356</Width> - <Height>208.10619469026472</Height> - <Angle>0</Angle> - <ItemGuid>78db28d0-0407-4942-bb62-c44da81c4f9e</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>6cbf28b4-4e53-4aae-9c6e-a506f8538f51</ID> - <Left>414</Left> - <Top>342.61504424777644</Top> - <Width>187</Width> - <Height>142.7477876106214</Height> - <Angle>0</Angle> - <ItemGuid>31000237-0c0e-40f0-a400-1d8055fa230e</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>e45af3fe-dda1-49a8-ba8e-183c98de3952</ID> - <Left>642</Left> - <Top>437.73008849557533</Top> - <Width>181</Width> - <Height>95.247787610619469</Height> - <Angle>0</Angle> - <ItemGuid>1778C1A7-AFB5-42F9-9E00-E80D30D9FC0A</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>c29a04b8-eeec-4a16-91b4-d1c63dddb868</ID> - <Left>853</Left> - <Top>443.80973451327435</Top> - <Width>467</Width> - <Height>286.75663716814171</Height> - <Angle>0</Angle> - <ItemGuid>1778C1A7-AFB5-42F9-9E00-E80D30D9FC0A</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>1</DecimalPlaces> - <Duration>10</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>f93bb87b-d029-42af-99bd-57db41ed1329</ID> - <Left>55</Left> - <Top>576.54867256637181</Top> - <Width>190</Width> - <Height>106.53982300885139</Height> - <Angle>0</Angle> - <ItemGuid>FE0D0A56-5795-4C5A-8E09-939FBB35C441</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>5dff5069-ad45-4ed2-a2d2-e58121c4de56</ID> - <Left>263</Left> - <Top>529.49557522123735</Top> - <Width>467</Width> - <Height>286.75663716814171</Height> - <Angle>0</Angle> - <ItemGuid>FE0D0A56-5795-4C5A-8E09-939FBB35C441</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>1</DecimalPlaces> - <Duration>10</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - </TechItem> - </Items> - </MachineTechViewProjectTab> - <MachineTechViewProjectTab> - <Name>disp</Name> - <Items> - <TechItem xsi:type="SingleGraphItem"> - <ID>f9531a72-3742-47a7-86bb-b589f8b3eb55</ID> - <Left>123</Left> - <Top>128.33628318584061</Top> - <Width>390</Width> - <Height>249.67699115047321</Height> - <Angle>0</Angle> - <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>3</DecimalPlaces> - <Duration>3600</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>aae29286-81b3-476a-9f58-c0fd246cae96</ID> - <Left>880</Left> - <Top>158.81415929204155</Top> - <Width>442</Width> - <Height>241.88495575221771</Height> - <Angle>0</Angle> - <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>3</DecimalPlaces> - <Duration>3600</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>7d94c7c4-1288-4f9d-b0e6-a06794829642</ID> - <Left>1055</Left> - <Top>14.181415929203524</Top> - <Width>161</Width> - <Height>111.46017699115049</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>Y</Text> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>c95f9ad1-b607-4606-8217-400bea76f3d6</ID> - <Left>384</Left> - <Top>23.991150442480944</Top> - <Width>161</Width> - <Height>111.46017699115049</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>C</Text> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>8f141fa5-fb24-4557-adcf-a6aa55a28fb4</ID> - <Left>121</Left> - <Top>-8.8495575221214722</Top> - <Width>169</Width> - <Height>132.73893805309734</Height> - <Angle>0</Angle> - <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>3</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>7eab018a-ef43-4bca-a6cf-857d69767bba</ID> - <Left>839</Left> - <Top>-4.7079646017762684</Top> - <Width>169</Width> - <Height>132.73893805309734</Height> - <Angle>0</Angle> - <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>3</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorRecorderItem"> - <ID>2a9e89d4-5d60-4a83-9527-cb77fdf35c14</ID> - <Left>1276</Left> - <Top>22.287610619469035</Top> - <Width>187</Width> - <Height>102.34070796460179</Height> - <Angle>0</Angle> - <ColorNumber>-1</ColorNumber> - <SelectedMonitorsGuids> - <string>D023F15D-3555-48E9-A9E9-5DF99F60D791</string> - <string>94F3E5A1-413E-4EA0-BDE1-F0625BFF7910</string> - <string>AFB7B6F7-8FFB-4A7F-B814-04F0C163CAA1</string> - <string>FE0D0A56-5795-4C5A-8E09-939FBB35C441</string> - <string>A8DB1D27-6B25-4FB4-A3F5-46A29BA51955</string> - <string>D7585119-4A42-4370-8F1E-F3E62553E588</string> - <string>098F7CAB-030C-46B0-B2B8-A85AF2253032</string> - <string>1778C1A7-AFB5-42F9-9E00-E80D30D9FC02</string> - </SelectedMonitorsGuids> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>6d2e7962-b3ae-4682-b20e-9654f48dcffe</ID> - <Left>587</Left> - <Top>5.0619469026548813</Top> - <Width>155</Width> - <Height>131.72566371681415</Height> - <Angle>0</Angle> - <ItemGuid>2CC8E461-E91F-4D4C-A402-922477F06C87</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>500</Speed> - <DisplayName>Dispenser 1</DisplayName> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>5ee2718f-f068-427b-a31e-d586c7d7682c</ID> - <Left>131</Left> - <Top>552.94690265486338</Top> - <Width>390</Width> - <Height>249.67699115047321</Height> - <Angle>0</Angle> - <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>3</DecimalPlaces> - <Duration>3600</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>1c254a92-c075-453f-9667-cdcc91cf8e6a</ID> - <Left>399</Left> - <Top>455.67256637168265</Top> - <Width>161</Width> - <Height>111.46017699115049</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>K</Text> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>d1087b1a-c36b-4242-96f5-07c2bb602cc4</ID> - <Left>145</Left> - <Top>409.52212389380446</Top> - <Width>169</Width> - <Height>132.73893805309734</Height> - <Angle>0</Angle> - <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>3</DecimalPoints> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>53fe93a2-88a5-4d4d-9cd5-eb4d8a8fefae</ID> - <Left>604</Left> - <Top>561.16371681414739</Top> - <Width>390</Width> - <Height>249.67699115047321</Height> - <Angle>0</Angle> - <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>3</DecimalPlaces> - <Duration>3600</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>0bef6e9d-6da0-4f06-9e1a-c00142bde4c1</ID> - <Left>832</Left> - <Top>440.91150442477635</Top> - <Width>161</Width> - <Height>111.46017699115049</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>M</Text> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>762c5a97-a3bc-45b4-aa9f-0b50afa9cb9b</ID> - <Left>633</Left> - <Top>434.0132743362783</Top> - <Width>169</Width> - <Height>132.73893805309734</Height> - <Angle>0</Angle> - <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>3</DecimalPoints> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>be584f80-3250-494c-87fc-250d6deae051</ID> - <Left>1045</Left> - <Top>559.4070796459921</Top> - <Width>390</Width> - <Height>249.67699115047321</Height> - <Angle>0</Angle> - <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>3</DecimalPlaces> - <Duration>3600</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>39f6a02c-c4d9-47d0-b92d-bdea0ed5d3ce</ID> - <Left>1056</Left> - <Top>435.43805309733875</Top> - <Width>169</Width> - <Height>132.73893805309734</Height> - <Angle>0</Angle> - <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>3</DecimalPoints> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>5b924929-9b16-4598-94cc-b2f4bca26798</ID> - <Left>1304</Left> - <Top>448.0884955752224</Top> - <Width>161</Width> - <Height>111.46017699115049</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>TI</Text> - </TechItem> - <TechItem xsi:type="ValveItem"> - <ID>89ae1fa5-1ad1-469e-ae76-0a29c35805cd</ID> - <Left>588</Left> - <Top>317.1504424778762</Top> - <Width>283</Width> - <Height>74.982300884955748</Height> - <Angle>0</Angle> - <ItemGuid>E144A221-4859-4DC3-9A7E-4A2969FB0826</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="ValveItem"> - <ID>c218cf34-74c2-41bb-8c3b-3030abce451a</ID> - <Left>1363</Left> - <Top>384.02654867256643</Top> - <Width>156</Width> - <Height>94.234513274336337</Height> - <Angle>0</Angle> - <ItemGuid>E144A221-4859-4DC3-9A7E-4A2969FB0826</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="ValveItem"> - <ID>75af30c6-d7f8-4745-bfb5-d6dc5d50479a</ID> - <Left>767</Left> - <Top>362.74778761061958</Top> - <Width>283</Width> - <Height>74.982300884955748</Height> - <Angle>0</Angle> - <ItemGuid>E144A221-4859-4DC3-9A7E-4A2969FB0826</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>df1fd958-fd8a-4b00-98e1-679455494d60</ID> - <Left>309</Left> - <Top>13.168141592920392</Top> - <Width>112</Width> - <Height>107.40707964601768</Height> - <Angle>0</Angle> - <ItemGuid>3174ADCF-5793-4B5A-A3C6-B96E146A903D</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>f07225b3-1522-4cb6-9ba8-5b9697f05467</ID> - <Left>1180</Left> - <Top>60.7920353982301</Top> - <Width>102</Width> - <Height>88.1548672566372</Height> - <Angle>0</Angle> - <ItemGuid>E2F0FC31-CE7E-416B-ACEA-8EB6CA9B850B</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>45b87322-e1f5-42eb-88c6-71c2eeb2899a</ID> - <Left>1258</Left> - <Top>463.06194690265494</Top> - <Width>88</Width> - <Height>75.995575221239</Height> - <Angle>0</Angle> - <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C09F</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>0c1c25e8-3ce3-4994-bbb9-bd6b2367a413</ID> - <Left>810</Left> - <Top>462.04867256637175</Top> - <Width>77</Width> - <Height>80.048672566371636</Height> - <Angle>0</Angle> - <ItemGuid>AD50C358-5BAF-4A2F-8593-51A22C85B3D1</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>fa2f697e-b229-418a-bae6-78b92bf0458b</ID> - <Left>336</Left> - <Top>428.61061946902663</Top> - <Width>95</Width> - <Height>96.261061946902657</Height> - <Angle>0</Angle> - <ItemGuid>84682E90-6926-42AA-BF8C-2CCCF5C26C97</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - </Items> - </MachineTechViewProjectTab> - <MachineTechViewProjectTab> - <Name>Priming</Name> - <Items> - <TechItem xsi:type="MonitorItem"> - <ID>ea45a516-9dac-4c9a-9261-0c44e22aa065</ID> - <Left>808</Left> - <Top>155.02654867256638</Top> - <Width>219</Width> - <Height>200.62831858407088</Height> - <Angle>0</Angle> - <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>3e2cb7dc-a5f3-4ba6-a520-2bae8ff0e4a8</ID> - <Left>832</Left> - <Top>451.91592920353986</Top> - <Width>332</Width> - <Height>326.27433628318596</Height> - <Angle>0</Angle> - <ItemGuid>C8D8FE90-0375-44A2-A6D1-E997789E065C</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>1200</Speed> - <DisplayName>Dispenser 2</DisplayName> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>6f8dfd8d-ed50-4923-b908-e0b5bc5d6ae5</ID> - <Left>154</Left> - <Top>131.72123893805315</Top> - <Width>474</Width> - <Height>410.37610619469024</Height> - <Angle>0</Angle> - <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>1</DecimalPlaces> - <Duration>1942</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - </TechItem> - <TechItem xsi:type="ValveItem"> - <ID>604e031b-89c3-4c9d-90ef-7b861a77e5e0</ID> - <Left>243</Left> - <Top>595.80088495575228</Top> - <Width>497</Width> - <Height>189.48230088495575</Height> - <Angle>0</Angle> - <ItemGuid>8B1FCBC3-FEEA-4F87-B56F-CE5D28B7ACA4</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>c414ae0e-323a-48c1-9165-2c05cc4234c6</ID> - <Left>1291</Left> - <Top>584.65486725663732</Top> - <Width>200</Width> - <Height>171.24336283185835</Height> - <Angle>0</Angle> - <ItemGuid>0bd10306-2944-4cda-bc59-0264da2883d2</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - </Items> - </MachineTechViewProjectTab> - </Tabs> - <SelectedTabIndex>0</SelectedTabIndex> -</MachineTechViewProject>
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/technician view files/FSE Draft 1.tpf b/Software/Stubs Collection/stubs/technician view files/FSE Draft 1.tpf deleted file mode 100644 index fa2679a29..000000000 --- a/Software/Stubs Collection/stubs/technician view files/FSE Draft 1.tpf +++ /dev/null @@ -1,1401 +0,0 @@ -<?xml version="1.0"?> -<MachineTechViewProject xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> - <Items /> - <Tabs> - <MachineTechViewProjectTab> - <Name>Temperatures</Name> - <Items> - <TechItem xsi:type="HeaterItem"> - <ID>a15665e3-af39-42d8-8c06-97d770632e10</ID> - <Left>660.29166666666652</Left> - <Top>9.9377026198189924</Top> - <Width>207</Width> - <Height>184.4159292035398</Height> - <Angle>0</Angle> - <ItemGuid>6D6CFA18-5922-4AFE-84B3-2721CE128681</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>DryerAirHeater</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>69.85</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>0ac64716-d30c-489b-939e-a26d06445866</ID> - <Left>460.29166666666669</Left> - <Top>19.687461666518857</Top> - <Width>192.50000000000023</Width> - <Height>171.73495137124343</Height> - <Angle>0</Angle> - <ItemGuid>A5DFC2DB-3B36-4377-96A0-D492CE785C00</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>DryerMainHeater</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>92.97</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>181796d8-64f6-420a-8f37-9af9df67d6a9</ID> - <Left>302.41666666666669</Left> - <Top>15.607640410059048</Top> - <Width>161.37500000000006</Width> - <Height>176.14921580653623</Height> - <Angle>0</Angle> - <ItemGuid>86808B48-B7F9-43AD-840E-2A6A5987C305</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>DryerSecondaryHeater</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>92.94</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>fd2bb3a3-a411-470d-bde7-0beaf84da059</ID> - <Left>604.9583333333336</Left> - <Top>254.26723911329191</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>8E764A14-0F84-4FEC-928B-32A2509CAD57</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone3</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>39.55</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>7e8dd386-cca6-4d07-8a3e-af5403756002</ID> - <Left>779.958333333334</Left> - <Top>259.33361079470779</Top> - <Width>200</Width> - <Height>187.45575221238937</Height> - <Angle>0</Angle> - <ItemGuid>B4EE8CC0-EE2B-4ABE-BF09-9226860E756B</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone2</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>37.29</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>32a91e5f-27c8-490d-b187-8e39b6626a13</ID> - <Left>986.00000000000057</Left> - <Top>258.07955839831766</Top> - <Width>157</Width> - <Height>194.54867256637175</Height> - <Angle>0</Angle> - <ItemGuid>27E7BB74-81C3-4EF2-80AE-962F111C441F</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone1</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>34.27</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>c844235a-8a29-4c2e-a964-e8f546d2ced7</ID> - <Left>872.291666666667</Left> - <Top>4.8713309384033892</Top> - <Width>173</Width> - <Height>183.40265486725662</Height> - <Angle>0</Angle> - <ItemGuid>42A62A48-F1D5-4BB6-AFEA-6A7DF6DCF626</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>MixerHeater</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>54.669999999999995</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>45b121b5-cf7c-41f7-8089-6d4d6b1ed2c8</ID> - <Left>424.9583333333336</Left> - <Top>251.60352229913406</Top> - <Width>169</Width> - <Height>197.27876106194645</Height> - <Angle>0</Angle> - <ItemGuid>94574D69-46E1-4144-A8B5-D4BF0DA96D18</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone4</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>40.71</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>e6b3eb18-482b-450e-b8a8-d2ac6bba4fd4</ID> - <Left>220.95833333333351</Left> - <Top>256.66546920178428</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>D6771DF4-771E-4D62-B6BA-BDE361C0A0F3</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone5</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>43.389999999999993</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>efff2e67-e3a3-4667-9208-4704707d7cda</ID> - <Left>30.083333333333513</Left> - <Top>256.74861999474194</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>D2B6CAA0-055E-4871-8D91-A5370F1ACB22</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone6</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>46.809999999999995</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>be9db1fd-d408-4f1c-a15a-d6ffe58fafb6</ID> - <Left>965.95833333333428</Left> - <Top>514.749539998249</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>188285E5-1493-4BED-8269-91743770A631</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone7</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>50.449999999999996</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>381f67cf-b7c6-4f6d-b089-37130798a5d8</ID> - <Left>780.958333333334</Left> - <Top>513.73626566196572</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>461FA2D7-1918-4958-AAA7-37A1A329FA12</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone8</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>48.22</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>3c923a93-4d15-4bbc-b1b3-be1876a77cfc</ID> - <Left>597.9583333333336</Left> - <Top>514.749539998249</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>63E2AFE0-0746-4AAB-AA74-C26EC1F282AE</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone9</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>47.269999999999996</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>26e078e6-df8c-4fbf-b10e-4b3f7c7e9500</ID> - <Left>32.958333333333485</Left> - <Top>513.736265661966</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>2D578A37-D808-40D0-ACE4-4A868EDD6BDC</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone12</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>39.64</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>7a8c3948-bb3d-4eb1-9276-315d34038f91</ID> - <Left>223.9583333333334</Left> - <Top>514.74953999824925</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>D41BBB23-6EB5-4743-89DB-9191000B475F</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone11</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>45.449999999999996</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>f7d4c8ac-28cb-4779-83ef-3ede5e5a612c</ID> - <Left>411.9583333333336</Left> - <Top>515.76281433453232</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>B4D0A1C8-711C-49A9-82A3-B5B9F35FC131</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone10</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>48.459999999999994</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>e502555c-95b0-4688-b5e3-8becb30fc62c</ID> - <Left>590.65211589505361</Left> - <Top>741.78705872367811</Top> - <Width>200</Width> - <Height>187.45575221238937</Height> - <Angle>0</Angle> - <ItemGuid>F8C1BA7F-F6DF-414D-BAF5-D4CB292F91F6</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeadCoverHeater1</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>283.75</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>0f7a35fc-e363-45b2-948d-ba66f91e4f0d</ID> - <Left>40.197317631796878</Left> - <Top>749.47260403204439</Top> - <Width>200</Width> - <Height>187.45575221238937</Height> - <Angle>0</Angle> - <ItemGuid>F39B952A-6194-4055-A5CB-A3421BFE0F9B</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeadCoverHeater2</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>283.75</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>748a5cd1-815b-4ffb-92fb-0c01cf381102</ID> - <Left>1494.0091846051309</Left> - <Top>431.98134057113157</Top> - <Width>167.70833333333334</Width> - <Height>104.29702970297035</Height> - <Angle>0</Angle> - <ItemGuid>1778C1A7-AFB5-42F9-9E00-E80D30D9FC0A</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>d462f0fc-2c71-4ba9-b3bd-1e8c64f36707</ID> - <Left>1128.2727185092199</Left> - <Top>850.9809690133618</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>8E764A14-0F84-4FEC-928B-32A2509CAD57</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>DryerAirHeater</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>0</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>false</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>8e2c2474-5764-493f-ac2c-33a8a4a0ffdc</ID> - <Left>1315.9696925879443</Left> - <Top>853.53491694908257</Top> - <Width>200</Width> - <Height>187.45575221238937</Height> - <Angle>0</Angle> - <ItemGuid>B4EE8CC0-EE2B-4ABE-BF09-9226860E756B</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>DryerAirHeater</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>0</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>false</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>71a948e8-676f-4b97-916b-edce26c01370</ID> - <Left>1520.8570888838171</Left> - <Top>845.99980518845655</Top> - <Width>157</Width> - <Height>194.54867256637175</Height> - <Angle>0</Angle> - <ItemGuid>27E7BB74-81C3-4EF2-80AE-962F111C441F</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>DryerAirHeater</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>0</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>false</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>d5bc68e3-a665-4951-a377-f9e0df4112be</ID> - <Left>1109.7519712733683</Left> - <Top>50.901960902201267</Top> - <Width>449.5089477623826</Width> - <Height>55.327112636891911</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>Common</Text> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>4a8362d4-e873-46a1-afbb-f56036c0f2cb</ID> - <Left>1045.9458963394222</Left> - <Top>460.86118629158989</Top> - <Width>449.5089477623826</Width> - <Height>55.327112636891911</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>Flat Head</Text> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>7e7868fd-3c47-4d5f-8c6f-fa4b18ae05b3</ID> - <Left>1260.3013710587918</Left> - <Top>791.39094759212651</Top> - <Width>232.78141937694795</Width> - <Height>45.135276098517238</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>Arc</Text> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>1de56a7a-e25e-4508-a87e-de0230e91dc3</ID> - <Left>1516.0481568975797</Left> - <Top>366.24959926534439</Top> - <Width>117.72853393776677</Width> - <Height>48.047229395195586</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>Ambient</Text> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>51ce86b2-0063-48c6-89f6-182a189ffaaa</ID> - <Left>70.075574021778309</Left> - <Top>976.2041030585757</Top> - <Width>140.47154617574461</Width> - <Height>104.83031868042667</Height> - <Angle>0</Angle> - <ItemGuid>20768F26-8D03-4660-8355-B29C595DFCB2</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>9001f8a5-c4c2-4be8-820f-2174b580c53b</ID> - <Left>252.40090220375726</Left> - <Top>947.54574115036348</Top> - <Width>148.7597052289122</Width> - <Height>121.44535613863422</Height> - <Angle>0</Angle> - <ItemGuid>20768F26-8D03-4660-8355-B29C595DFCB2</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="BlowerItem"> - <ID>9f31d14c-d7ec-45c1-b87c-3f4923a6af58</ID> - <Left>260.2054564281259</Left> - <Top>787.10370299452848</Top> - <Width>142.5965330388309</Width> - <Height>127.53048371566092</Height> - <Angle>0</Angle> - <ItemGuid>080EB945-8E52-4876-9704-F9908FD26967</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="BlowerItem"> - <ID>5c687318-7840-4196-af07-2455e10d1bcf</ID> - <Left>816.2919957682775</Left> - <Top>836.89502513753882</Top> - <Width>153.84978866867277</Width> - <Height>58.239065933570373</Height> - <Angle>0</Angle> - <ItemGuid>998B5E61-3119-443D-ABAA-EFBC283B1021</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>95a693e0-816b-4edc-a2ae-98ac393c6f48</ID> - <Left>819.83243778511473</Left> - <Top>957.65691621970711</Top> - <Width>128.43112793210935</Width> - <Height>104.83031868042667</Height> - <Angle>0</Angle> - <ItemGuid>20768F26-8D03-4660-8355-B29C595DFCB2</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>8d26a1fe-4293-413d-9f4e-b3a562bf25db</ID> - <Left>628.1918504863404</Left> - <Top>971.65955281411607</Top> - <Width>128.43112793210935</Width> - <Height>104.83031868042667</Height> - <Angle>0</Angle> - <ItemGuid>20768F26-8D03-4660-8355-B29C595DFCB2</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>e1273b48-af58-4acd-9e8a-11bc59516b16</ID> - <Left>612.48035467271029</Left> - <Top>949.40114439880108</Top> - <Width>163.52519712936567</Width> - <Height>30.060733624349837</Height> - <Angle>0</Angle> - <ColorNumber>-12968193</ColorNumber> - <Text>air flow 1</Text> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>31a7f747-9569-473c-a345-696d1acb8044</ID> - <Left>61.998970290683857</Left> - <Top>953.87279414695115</Top> - <Width>160.0623860169863</Width> - <Height>26.292098005808043</Height> - <Angle>0</Angle> - <ColorNumber>-12968193</ColorNumber> - <Text>air flow 2</Text> - </TechItem> - </Items> - </MachineTechViewProjectTab> - <MachineTechViewProjectTab> - <Name>Dispensers</Name> - <Items> - <TechItem xsi:type="DispenserItem"> - <ID>dce78f33-c966-4848-8c6e-a4a01dbc7577</ID> - <Left>1322.1428571428571</Left> - <Top>214.15929203538531</Top> - <Width>159</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>2CC8E461-E91F-4D4C-A402-922477F06C87</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>800</Speed> - <DisplayName>Dispenser 1</DisplayName> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>2d03fc19-0502-43e1-a3ff-4012a612112b</ID> - <Left>1149</Left> - <Top>218.48230088495342</Top> - <Width>159</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>C8D8FE90-0375-44A2-A6D1-E997789E065C</ItemGuid> - <ColorNumber>-16724737</ColorNumber> - <Speed>1200</Speed> - <DisplayName>Dispenser 2</DisplayName> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>81958374-3fa3-48b3-a554-5653fe1934b1</ID> - <Left>959</Left> - <Top>210.32743362830422</Top> - <Width>156</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>08ED9044-CAD6-4492-94B2-C07206E0164B</ItemGuid> - <ColorNumber>-65325</ColorNumber> - <Speed>1200</Speed> - <DisplayName>Dispenser 3</DisplayName> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>8fead411-7198-4428-a364-e32f3035ed94</ID> - <Left>775</Left> - <Top>206.42920353980952</Top> - <Width>159</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>179F34BB-3252-4D3A-965C-E6EB43D6FE7C</ItemGuid> - <ColorNumber>-524544</ColorNumber> - <Speed>1200</Speed> - <DisplayName>Dispenser 4</DisplayName> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>31bfa89f-e64d-4a3b-8585-c4a1b2e5a139</ID> - <Left>585</Left> - <Top>208.47345132741418</Top> - <Width>159</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>716B35CF-46E0-47D5-AF85-5233D212568F</ItemGuid> - <ColorNumber>-2108246</ColorNumber> - <Speed>1200</Speed> - <DisplayName>Dispenser 5</DisplayName> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>c2bff5f3-6dc9-4b07-87ba-9e3a5814804e</ID> - <Left>372</Left> - <Top>216.75221238937439</Top> - <Width>159</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>99528449-4D76-4874-AB95-522951560E01</ItemGuid> - <ColorNumber>-263685</ColorNumber> - <Speed>1200</Speed> - <DisplayName>Dispenser 6</DisplayName> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>071281a5-3569-4a62-8b68-7bea850a3c07</ID> - <Left>217</Left> - <Top>211.63716814158107</Top> - <Width>159</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>E8ED07E2-7C36-459C-B9E5-6A23A1E24F03</ItemGuid> - <ColorNumber>-723724</ColorNumber> - <Speed>1200</Speed> - <DisplayName>Dispenser 7</DisplayName> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>7b703b9a-a626-4ae5-8e31-fa1cfe5718f4</ID> - <Left>45</Left> - <Top>216.04867256635521</Top> - <Width>159</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>8A957565-4165-49F7-854D-D21F95FFBE1B</ItemGuid> - <ColorNumber>-724238</ColorNumber> - <Speed>1200</Speed> - <DisplayName>Dispenser 8</DisplayName> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>caca40a2-310c-452e-adcf-c28ee38f6bdc</ID> - <Left>1305</Left> - <Top>31.606194690259713</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid> - <ColorNumber>-15856114</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>af52d36f-27a2-4a31-8ceb-9c43fedbed22</ID> - <Left>1127</Left> - <Top>32.535398230081626</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> - <ColorNumber>-15293470</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>d40eada8-d22a-4521-bd2a-d998ed93106f</ID> - <Left>955</Left> - <Top>32.61946902653176</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid> - <ColorNumber>-1570857</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>b2d6364d-8b5c-43d2-8838-927c85b017b1</ID> - <Left>774</Left> - <Top>31.960176991142362</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid> - <ColorNumber>-1379575</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>3980e685-73b3-4af1-9593-9235be147322</ID> - <Left>596</Left> - <Top>32.889380530964274</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid> - <ColorNumber>-7763381</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>51465293-58d5-40a4-8302-81856f8b4f47</ID> - <Left>424</Left> - <Top>32.973451327414409</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>AF3FD56C-95BF-4DE1-8EDC-8426B0DB2A26</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>c2a8c5b2-891b-4f9f-862c-c1c294366c78</ID> - <Left>252</Left> - <Top>31.703539823006281</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>60DA9EA3-C8A6-4D41-8AD8-3EB1BAA79CC9</ItemGuid> - <ColorNumber>-8391822</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>9618e441-8973-4e16-a90b-06ce5798bd29</ID> - <Left>80</Left> - <Top>31.787610619456416</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>EF66F95A-E166-4FA2-B1AF-D6F55621817A</ItemGuid> - <ColorNumber>-2186185</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>5bf7a681-ee47-477e-8b47-ba7a2eb6e115</ID> - <Left>1113.3333333333337</Left> - <Top>463.97555419258936</Top> - <Width>144</Width> - <Height>80.495575221237516</Height> - <Angle>0</Angle> - <ItemGuid>3174ADCF-5793-4B5A-A3C6-B96E146A903D</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>29b17a4b-fd4e-49cc-a3cd-418730176bf7</ID> - <Left>952.33333333333326</Left> - <Top>464.97555419258811</Top> - <Width>144</Width> - <Height>80.495575221237516</Height> - <Angle>0</Angle> - <ItemGuid>AD50C358-5BAF-4A2F-8593-51A22C85B3D1</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>21a5429f-c3a2-4e3b-ae77-c5538f30130d</ID> - <Left>758.33333333333326</Left> - <Top>462.68794357311867</Top> - <Width>144</Width> - <Height>82.535398230087083</Height> - <Angle>0</Angle> - <ItemGuid>E2F0FC31-CE7E-416B-ACEA-8EB6CA9B850B</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>96a46b0c-37b1-4457-93fb-b3dc301c5743</ID> - <Left>571.33333333333326</Left> - <Top>464.08617366161127</Top> - <Width>144</Width> - <Height>80.495575221237516</Height> - <Angle>0</Angle> - <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C09F</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>d4ad8603-9929-415f-9990-1869fcff36e4</ID> - <Left>1293.3333333333337</Left> - <Top>467.71449224568437</Top> - <Width>144</Width> - <Height>80.495575221237516</Height> - <Angle>0</Angle> - <ItemGuid>84682E90-6926-42AA-BF8C-2CCCF5C26C97</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="ValveItem"> - <ID>25249d78-ee37-42a8-b5aa-96f60e97c3ea</ID> - <Left>607.32892156862749</Left> - <Top>598.34526296666354</Top> - <Width>327</Width> - <Height>108.53097345133028</Height> - <Angle>0</Angle> - <ItemGuid>8B1FCBC3-FEEA-4F87-B56F-CE5D28B7ACA4</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="ValveItem"> - <ID>cdddd48e-422d-48f4-8397-5032c3705fdb</ID> - <Left>1071.0833333333335</Left> - <Top>577.88035573468915</Top> - <Width>382</Width> - <Height>136.79203539823016</Height> - <Angle>0</Angle> - <ItemGuid>04C58CA0-9719-4BB0-8D3B-D4C71129D8E4</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>ee6d4c5a-ca5b-4557-8012-dacf700cdc08</ID> - <Left>214.33333333333326</Left> - <Top>463.08617366162218</Top> - <Width>144</Width> - <Height>80.495575221237516</Height> - <Angle>0</Angle> - <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C010</ItemGuid> - <ColorNumber>-8391822</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>20576bb2-202f-4170-9af5-f3c18b410112</ID> - <Left>60.333333333333258</Left> - <Top>463.48440375011319</Top> - <Width>144</Width> - <Height>80.495575221237516</Height> - <Angle>0</Angle> - <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C011</ItemGuid> - <ColorNumber>-2186185</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>3b484b31-da50-4861-abce-70a06193fe6f</ID> - <Left>395.33333333333331</Left> - <Top>465.89108910891088</Top> - <Width>144</Width> - <Height>80.495575221237516</Height> - <Angle>0</Angle> - <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C092</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - </Items> - </MachineTechViewProjectTab> - <MachineTechViewProjectTab> - <Name>Waste</Name> - <Items> - <TechItem xsi:type="MonitorItem"> - <ID>73486478-cffe-43f9-a949-0a6b0e522e9e</ID> - <Left>25.541666666666686</Left> - <Top>24.896039603960332</Top> - <Width>179.16666666666666</Width> - <Height>143.97524752475249</Height> - <Angle>0</Angle> - <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>880c81c4-a02d-4c6e-a861-11a1ca0699d2</ID> - <Left>789.08333333333326</Left> - <Top>24.896039603960446</Top> - <Width>179.16666666666666</Width> - <Height>143.97524752475249</Height> - <Angle>0</Angle> - <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>47231575-fde1-4ab7-9032-86d48a7fef7b</ID> - <Left>596.37500000000011</Left> - <Top>23.762376237623698</Top> - <Width>179.16666666666666</Width> - <Height>143.97524752475249</Height> - <Angle>0</Angle> - <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>ba429140-e9ef-4257-8666-c1ad03b81e1c</ID> - <Left>217.20833333333343</Left> - <Top>22.628712871287121</Top> - <Width>179.16666666666666</Width> - <Height>143.97524752475249</Height> - <Angle>0</Angle> - <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>ece2bc5a-5a2b-4ff9-a409-4f130e8155ff</ID> - <Left>984.91666666666674</Left> - <Top>26.029702970296967</Top> - <Width>179.16666666666666</Width> - <Height>143.97524752475249</Height> - <Angle>0</Angle> - <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>4dacd4d7-046e-4478-b7d1-f96539c21d89</ID> - <Left>1183.8750000000002</Left> - <Top>22.628712871287121</Top> - <Width>179.16666666666666</Width> - <Height>143.97524752475249</Height> - <Angle>0</Angle> - <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>b5c670f3-59c6-40a7-872c-00a128ef5bbe</ID> - <Left>1371.3749999999998</Left> - <Top>23.762376237623698</Top> - <Width>179.16666666666666</Width> - <Height>143.97524752475249</Height> - <Angle>0</Angle> - <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>f58afef3-9825-4139-8975-fa91c3f3e10d</ID> - <Left>405.74999999999994</Left> - <Top>26.029702970297024</Top> - <Width>179.16666666666666</Width> - <Height>143.97524752475249</Height> - <Angle>0</Angle> - <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>ba8f119b-4c4c-45ed-8bd3-4bdfe2f6dd78</ID> - <Left>1395.3333333333335</Left> - <Top>593.99504950495043</Top> - <Width>179.16666666666666</Width> - <Height>143.97524752475249</Height> - <Angle>0</Angle> - <ItemGuid>79AD6611-82A2-4B4C-AB5E-A11A33E1243D</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>4a6a278a-633d-4917-acf4-83e9f3818a75</ID> - <Left>29.708333333333115</Left> - <Top>249.36138613861391</Top> - <Width>179.16666666666666</Width> - <Height>143.97524752475249</Height> - <Angle>0</Angle> - <ItemGuid>055D0A38-09BD-490D-9852-12B06A4B22F2</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>71d506d0-4dcc-4b66-8e26-f5b0fd807b5f</ID> - <Left>714.08333333333348</Left> - <Top>245.96039603960367</Top> - <Width>179.16666666666666</Width> - <Height>143.97524752475249</Height> - <Angle>0</Angle> - <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>14c6bcd8-c314-444f-939b-340f989c8c8a</ID> - <Left>924.5</Left> - <Top>241.42574257425736</Top> - <Width>179.16666666666666</Width> - <Height>143.97524752475249</Height> - <Angle>0</Angle> - <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>93c19fe3-5f8e-4260-a908-a6eb2cd83d82</ID> - <Left>730.75000000000011</Left> - <Top>430.7475247524751</Top> - <Width>381.25</Width> - <Height>91.826732673267259</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>WHS Temperatures</Text> - </TechItem> - <TechItem xsi:type="DigitalInItem"> - <ID>77de4fd1-a2e1-46c2-8997-f8a22b4eb906</ID> - <Left>1406.7916666666663</Left> - <Top>226.68811881188123</Top> - <Width>146.87500000000046</Width> - <Height>99.762376237623585</Height> - <Angle>0</Angle> - <ItemGuid>d7bef231-9cb6-4394-b871-d9b52be73304</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="DigitalInItem"> - <ID>8cd5e67b-34c0-428b-8b74-41d27d2c22cf</ID> - <Left>1405.7499999999998</Left> - <Top>419.41089108910887</Top> - <Width>144.79166666666674</Width> - <Height>95.227722772277275</Height> - <Angle>0</Angle> - <ItemGuid>d7bef231-9cb6-4394-b871-d9b52be73304</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="DigitalInItem"> - <ID>4988f409-07c8-4cd5-b173-02bd88e67999</ID> - <Left>1402.6250000000009</Left> - <Top>332.11881188118815</Top> - <Width>143.75</Width> - <Height>86.158415841584088</Height> - <Angle>0</Angle> - <ItemGuid>d7bef231-9cb6-4394-b871-d9b52be73304</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>a0f6a227-e63f-44b1-b375-e287dffaadd6</ID> - <Left>1290.125</Left> - <Top>531.64356435643606</Top> - <Width>239.58333333333349</Width> - <Height>36.277227722772295</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>Cartridge</Text> - </TechItem> - <TechItem xsi:type="DigitalInItem"> - <ID>716466da-4b1e-4ef6-82a6-a257f0ece033</ID> - <Left>1259.9166666666661</Left> - <Top>241.42574257425764</Top> - <Width>125</Width> - <Height>100.89603960396016</Height> - <Angle>0</Angle> - <ItemGuid>d7bef231-9cb6-4394-b871-d9b52be73304</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="DigitalInItem"> - <ID>b181b88a-f448-45c0-ad49-5570b2540b4b</ID> - <Left>1259.9166666666665</Left> - <Top>427.34653465346491</Top> - <Width>129.16666666666652</Width> - <Height>91.826732673267315</Height> - <Angle>0</Angle> - <ItemGuid>d7bef231-9cb6-4394-b871-d9b52be73304</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="DigitalInItem"> - <ID>5905f078-74e3-455d-ad6a-1e1a52da21c3</ID> - <Left>1247.4166666666667</Left> - <Top>332.11881188118809</Top> - <Width>148.95833333333326</Width> - <Height>89.559405940594047</Height> - <Angle>0</Angle> - <ItemGuid>d7bef231-9cb6-4394-b871-d9b52be73304</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>48eeab5d-b535-4206-886f-d176da3e950f</ID> - <Left>221.37500000000006</Left> - <Top>464.75742574257436</Top> - <Width>172.91666666666677</Width> - <Height>109.96534653465358</Height> - <Angle>0</Angle> - <ItemGuid>FE0D0A56-5795-4C5A-8E09-939FBB35C441</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>a866ff20-1f1c-4aa0-891f-4ac5e37db38a</ID> - <Left>233.87499999999989</Left> - <Top>599.66336633663366</Top> - <Width>143.74999999999992</Width> - <Height>88.425742574257583</Height> - <Angle>0</Angle> - <ItemGuid>94F3E5A1-413E-4EA0-BDE1-F0625BFF7910</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>cbb20fba-d713-4521-8410-148b1156cae5</ID> - <Left>25.541666666666771</Left> - <Top>455.68811881188083</Top> - <Width>172.91666666666669</Width> - <Height>126.97029702970292</Height> - <Angle>0</Angle> - <ItemGuid>1778C1A7-AFB5-42F9-9E00-E80D30D9FC0A</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="BlowerItem"> - <ID>f707fe47-9f48-4be2-b0cd-29022c9ec79a</ID> - <Left>39.083333333333357</Left> - <Top>621.20297029702988</Top> - <Width>160.41666666666671</Width> - <Height>72.554455445544363</Height> - <Angle>0</Angle> - <ItemGuid>0B1752D6-7D4B-4957-BCDE-15465EA8EB55</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>87f906c6-e8b9-4d8c-bdef-3ef38c69aa33</ID> - <Left>407.8333333333328</Left> - <Top>250.49504950495043</Top> - <Width>152.08333333333385</Width> - <Height>140.57425742574253</Height> - <Angle>0</Angle> - <ItemGuid>27CEDD42-FDDD-45DF-A9D0-FDBF277FFB0F</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>08ffbe8d-0392-495e-9af0-aa386ee2fad9</ID> - <Left>225.54166666666697</Left> - <Top>249.36138613861385</Top> - <Width>170.83333333333317</Width> - <Height>145.10891089108895</Height> - <Angle>0</Angle> - <ItemGuid>FA21BC1D-04FA-4626-82A4-F77D2A4120C4</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>5c3b1479-5875-4e3f-9ed9-00529b403f4f</ID> - <Left>1239.083333333333</Left> - <Top>685.82178217821775</Top> - <Width>173.95833333333354</Width> - <Height>113.36633663366342</Height> - <Angle>0</Angle> - <ItemGuid>7e1f53ec-8176-4efa-ac3d-c8f2436e60d1</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>43e7bf4f-e7ee-4f86-bfe7-dfbe538e4586</ID> - <Left>1238.0416666666667</Left> - <Top>567.9207920792079</Top> - <Width>153.12500000000006</Width> - <Height>114.5</Height> - <Angle>0</Angle> - <ItemGuid>78db28d0-0407-4942-bb62-c44da81c4f9e</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - </Items> - </MachineTechViewProjectTab> - <MachineTechViewProjectTab> - <Name>Thread insertion</Name> - <Items> - <TechItem xsi:type="MotorItem"> - <ID>443a977c-8e89-4a56-82e4-684bac7945c9</ID> - <Left>21.874999999999972</Left> - <Top>32.9640322439318</Top> - <Width>247</Width> - <Height>172.25663716814159</Height> - <Angle>0</Angle> - <ItemGuid>08d15ca1-d7d1-460f-8f37-42c37c287cd1</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>500</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>a821b716-cb7d-4951-84ee-e56955431099</ID> - <Left>340.41666666666674</Left> - <Top>230.32064312625903</Top> - <Width>271.45833333333326</Width> - <Height>166.60838517480056</Height> - <Angle>0</Angle> - <ItemGuid>b90a4e78-ebbf-44db-829b-949517d6400b</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>350</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>e36e321b-d48d-4199-a1ee-75ac18e9de1e</ID> - <Left>988.91666666666652</Left> - <Top>244.36432138789076</Top> - <Width>217</Width> - <Height>155.26106194690203</Height> - <Angle>0</Angle> - <ItemGuid>c6099065-a735-4cc5-b575-c31a45bb9262</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>350</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>8790db03-4dfd-4d49-aec0-706babb55af9</ID> - <Left>346</Left> - <Top>438.23254183824758</Top> - <Width>240</Width> - <Height>172.30973451327589</Height> - <Angle>0</Angle> - <ItemGuid>2d3eaca5-4dfd-40d9-9d1f-aa4ae794eddc</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>500</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>69ebcb28-13d9-41b3-a9ef-b2be51584141</ID> - <Left>17.25</Left> - <Top>239.82725838954167</Top> - <Width>255</Width> - <Height>170.15044247787392</Height> - <Angle>0</Angle> - <ItemGuid>b71ad55d-d296-4371-a6d2-9d3c637c0380</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>1000</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>7b5b6896-f626-4e59-a5cf-2600e603c0f6</ID> - <Left>1280.291666666667</Left> - <Top>435.1617453780857</Top> - <Width>237</Width> - <Height>179.22123893805463</Height> - <Angle>0</Angle> - <ItemGuid>7b6d0a93-5a91-4e1f-af47-353afd8b5ea6</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>20</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>2052a2d3-843c-4a1c-87fd-acd0832fd1b9</ID> - <Left>688.125</Left> - <Top>27.933978796104839</Top> - <Width>220</Width> - <Height>168.473451327436</Height> - <Angle>0</Angle> - <ItemGuid>c9482395-35e6-4340-8dab-83d5dfe907a7</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>1000</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>339b7d00-d688-41cf-926a-8171d5e62740</ID> - <Left>683.20833333333337</Left> - <Top>436.40050819241503</Top> - <Width>240</Width> - <Height>159.84070796460173</Height> - <Angle>0</Angle> - <ItemGuid>f3b5076e-cba3-4ad2-b3cc-0c4e907bd9ef</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>200</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>7644a8f9-00a2-4e37-8f48-0667b1541114</ID> - <Left>1285.5416666666665</Left> - <Top>39.867782353458267</Top> - <Width>233</Width> - <Height>159.57079646017985</Height> - <Angle>0</Angle> - <ItemGuid>92237d83-9f85-48db-aa6f-2fc5c9e0d8cd</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>500</Speed> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>c706d31b-48b0-44cc-a9c4-11d3acdcf667</ID> - <Left>1018.3333333333334</Left> - <Top>603.18879530178208</Top> - <Width>169</Width> - <Height>83.45969508455255</Height> - <Angle>0</Angle> - <ItemGuid>2a454081-bd5e-41de-ae5d-97aefe1d76de</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>7ccff69d-50f9-4e9b-a997-72a67917df5e</ID> - <Left>683.25</Left> - <Top>239.17940068343398</Top> - <Width>239.95833333333337</Width> - <Height>154.99115044247867</Height> - <Angle>0</Angle> - <ItemGuid>7c03f12f-ab2a-4421-8575-aefd6dec0001</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>10</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>a88a74cb-418b-4ed0-89ec-c42ff560528e</ID> - <Left>1281.333333333333</Left> - <Top>233.20743888547975</Top> - <Width>234.29166666666652</Width> - <Height>157.55879260492486</Height> - <Angle>0</Angle> - <ItemGuid>b7c1aea4-32c1-41cb-bca3-4aa665529b49</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>500</Speed> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>37267035-ae9d-4c72-a04f-215f754d0900</ID> - <Left>700.70833333333326</Left> - <Top>639.25891527204931</Top> - <Width>205.625</Width> - <Height>105.8987996144798</Height> - <Angle>0</Angle> - <ItemGuid>6b9cba1d-4acf-4992-97ad-e422bca6ada2</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>ca4a5397-68a1-4a2f-b614-80132cd513ee</ID> - <Left>1003.0416666666667</Left> - <Top>53.154034872515865</Top> - <Width>240</Width> - <Height>116.10176991150968</Height> - <Angle>0</Angle> - <ItemGuid>6f48e18c-d472-425a-ba7e-633630605e11</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>6313cc40-15b2-41b0-ba61-cd0849421176</ID> - <Left>20.333333333333371</Left> - <Top>440.95049504950487</Top> - <Width>255</Width> - <Height>170.15044247787392</Height> - <Angle>0</Angle> - <ItemGuid>54695c85-b4a5-4e9d-95b1-b9e55844cde2</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>500</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>122528e8-77bc-40fa-afbc-534c2fb3b0cc</ID> - <Left>348.45833333333331</Left> - <Top>30.56435643564356</Top> - <Width>255</Width> - <Height>170.15044247787392</Height> - <Angle>0</Angle> - <ItemGuid>bda5aa4d-13aa-4259-92e5-b969276cb2b1</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>1000</Speed> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>99884eb7-051d-4e72-97dd-1c52fcd25fff</ID> - <Left>979.70833333333326</Left> - <Top>180.20792079207939</Top> - <Width>196.87499999999977</Width> - <Height>36.277227722772068</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>Right Actuator</Text> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>a4b1a4ee-38ed-48a0-82eb-76b96f06a3ac</ID> - <Left>1000.9583333333335</Left> - <Top>444.351485148515</Top> - <Width>240</Width> - <Height>116.10176991150968</Height> - <Angle>0</Angle> - <ItemGuid>698f79a5-0bb1-4f19-a679-0294031ec43d</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>fae05523-674c-4b14-a860-b6cc8e351d76</ID> - <Left>992.208333333333</Left> - <Top>553.26675720669289</Top> - <Width>221.87499999999955</Width> - <Height>56.683168316831029</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>Left Actuator</Text> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>a1fb6ece-dcdb-4d85-b06c-a8df718b6eef</ID> - <Left>1023.4583333333336</Left> - <Top>694.891089108911</Top> - <Width>162.50000000000023</Width> - <Height>49.881188118811338</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>Magnet</Text> - </TechItem> - </Items> - </MachineTechViewProjectTab> - </Tabs> - <SelectedTabIndex>0</SelectedTabIndex> -</MachineTechViewProject>
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/technician view files/FSE Draft 2.tpf b/Software/Stubs Collection/stubs/technician view files/FSE Draft 2.tpf deleted file mode 100644 index fa2679a29..000000000 --- a/Software/Stubs Collection/stubs/technician view files/FSE Draft 2.tpf +++ /dev/null @@ -1,1401 +0,0 @@ -<?xml version="1.0"?> -<MachineTechViewProject xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> - <Items /> - <Tabs> - <MachineTechViewProjectTab> - <Name>Temperatures</Name> - <Items> - <TechItem xsi:type="HeaterItem"> - <ID>a15665e3-af39-42d8-8c06-97d770632e10</ID> - <Left>660.29166666666652</Left> - <Top>9.9377026198189924</Top> - <Width>207</Width> - <Height>184.4159292035398</Height> - <Angle>0</Angle> - <ItemGuid>6D6CFA18-5922-4AFE-84B3-2721CE128681</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>DryerAirHeater</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>69.85</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>0ac64716-d30c-489b-939e-a26d06445866</ID> - <Left>460.29166666666669</Left> - <Top>19.687461666518857</Top> - <Width>192.50000000000023</Width> - <Height>171.73495137124343</Height> - <Angle>0</Angle> - <ItemGuid>A5DFC2DB-3B36-4377-96A0-D492CE785C00</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>DryerMainHeater</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>92.97</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>181796d8-64f6-420a-8f37-9af9df67d6a9</ID> - <Left>302.41666666666669</Left> - <Top>15.607640410059048</Top> - <Width>161.37500000000006</Width> - <Height>176.14921580653623</Height> - <Angle>0</Angle> - <ItemGuid>86808B48-B7F9-43AD-840E-2A6A5987C305</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>DryerSecondaryHeater</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>92.94</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>fd2bb3a3-a411-470d-bde7-0beaf84da059</ID> - <Left>604.9583333333336</Left> - <Top>254.26723911329191</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>8E764A14-0F84-4FEC-928B-32A2509CAD57</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone3</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>39.55</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>7e8dd386-cca6-4d07-8a3e-af5403756002</ID> - <Left>779.958333333334</Left> - <Top>259.33361079470779</Top> - <Width>200</Width> - <Height>187.45575221238937</Height> - <Angle>0</Angle> - <ItemGuid>B4EE8CC0-EE2B-4ABE-BF09-9226860E756B</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone2</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>37.29</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>32a91e5f-27c8-490d-b187-8e39b6626a13</ID> - <Left>986.00000000000057</Left> - <Top>258.07955839831766</Top> - <Width>157</Width> - <Height>194.54867256637175</Height> - <Angle>0</Angle> - <ItemGuid>27E7BB74-81C3-4EF2-80AE-962F111C441F</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone1</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>34.27</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>c844235a-8a29-4c2e-a964-e8f546d2ced7</ID> - <Left>872.291666666667</Left> - <Top>4.8713309384033892</Top> - <Width>173</Width> - <Height>183.40265486725662</Height> - <Angle>0</Angle> - <ItemGuid>42A62A48-F1D5-4BB6-AFEA-6A7DF6DCF626</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>MixerHeater</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>54.669999999999995</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>45b121b5-cf7c-41f7-8089-6d4d6b1ed2c8</ID> - <Left>424.9583333333336</Left> - <Top>251.60352229913406</Top> - <Width>169</Width> - <Height>197.27876106194645</Height> - <Angle>0</Angle> - <ItemGuid>94574D69-46E1-4144-A8B5-D4BF0DA96D18</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone4</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>40.71</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>e6b3eb18-482b-450e-b8a8-d2ac6bba4fd4</ID> - <Left>220.95833333333351</Left> - <Top>256.66546920178428</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>D6771DF4-771E-4D62-B6BA-BDE361C0A0F3</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone5</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>43.389999999999993</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>efff2e67-e3a3-4667-9208-4704707d7cda</ID> - <Left>30.083333333333513</Left> - <Top>256.74861999474194</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>D2B6CAA0-055E-4871-8D91-A5370F1ACB22</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone6</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>46.809999999999995</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>be9db1fd-d408-4f1c-a15a-d6ffe58fafb6</ID> - <Left>965.95833333333428</Left> - <Top>514.749539998249</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>188285E5-1493-4BED-8269-91743770A631</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone7</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>50.449999999999996</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>381f67cf-b7c6-4f6d-b089-37130798a5d8</ID> - <Left>780.958333333334</Left> - <Top>513.73626566196572</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>461FA2D7-1918-4958-AAA7-37A1A329FA12</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone8</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>48.22</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>3c923a93-4d15-4bbc-b1b3-be1876a77cfc</ID> - <Left>597.9583333333336</Left> - <Top>514.749539998249</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>63E2AFE0-0746-4AAB-AA74-C26EC1F282AE</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone9</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>47.269999999999996</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>26e078e6-df8c-4fbf-b10e-4b3f7c7e9500</ID> - <Left>32.958333333333485</Left> - <Top>513.736265661966</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>2D578A37-D808-40D0-ACE4-4A868EDD6BDC</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone12</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>39.64</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>7a8c3948-bb3d-4eb1-9276-315d34038f91</ID> - <Left>223.9583333333334</Left> - <Top>514.74953999824925</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>D41BBB23-6EB5-4743-89DB-9191000B475F</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone11</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>45.449999999999996</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>f7d4c8ac-28cb-4779-83ef-3ede5e5a612c</ID> - <Left>411.9583333333336</Left> - <Top>515.76281433453232</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>B4D0A1C8-711C-49A9-82A3-B5B9F35FC131</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone10</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>48.459999999999994</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>e502555c-95b0-4688-b5e3-8becb30fc62c</ID> - <Left>590.65211589505361</Left> - <Top>741.78705872367811</Top> - <Width>200</Width> - <Height>187.45575221238937</Height> - <Angle>0</Angle> - <ItemGuid>F8C1BA7F-F6DF-414D-BAF5-D4CB292F91F6</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeadCoverHeater1</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>283.75</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>0f7a35fc-e363-45b2-948d-ba66f91e4f0d</ID> - <Left>40.197317631796878</Left> - <Top>749.47260403204439</Top> - <Width>200</Width> - <Height>187.45575221238937</Height> - <Angle>0</Angle> - <ItemGuid>F39B952A-6194-4055-A5CB-A3421BFE0F9B</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeadCoverHeater2</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>283.75</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>748a5cd1-815b-4ffb-92fb-0c01cf381102</ID> - <Left>1494.0091846051309</Left> - <Top>431.98134057113157</Top> - <Width>167.70833333333334</Width> - <Height>104.29702970297035</Height> - <Angle>0</Angle> - <ItemGuid>1778C1A7-AFB5-42F9-9E00-E80D30D9FC0A</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>d462f0fc-2c71-4ba9-b3bd-1e8c64f36707</ID> - <Left>1128.2727185092199</Left> - <Top>850.9809690133618</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>8E764A14-0F84-4FEC-928B-32A2509CAD57</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>DryerAirHeater</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>0</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>false</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>8e2c2474-5764-493f-ac2c-33a8a4a0ffdc</ID> - <Left>1315.9696925879443</Left> - <Top>853.53491694908257</Top> - <Width>200</Width> - <Height>187.45575221238937</Height> - <Angle>0</Angle> - <ItemGuid>B4EE8CC0-EE2B-4ABE-BF09-9226860E756B</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>DryerAirHeater</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>0</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>false</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>71a948e8-676f-4b97-916b-edce26c01370</ID> - <Left>1520.8570888838171</Left> - <Top>845.99980518845655</Top> - <Width>157</Width> - <Height>194.54867256637175</Height> - <Angle>0</Angle> - <ItemGuid>27E7BB74-81C3-4EF2-80AE-962F111C441F</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>DryerAirHeater</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>0</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>false</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>d5bc68e3-a665-4951-a377-f9e0df4112be</ID> - <Left>1109.7519712733683</Left> - <Top>50.901960902201267</Top> - <Width>449.5089477623826</Width> - <Height>55.327112636891911</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>Common</Text> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>4a8362d4-e873-46a1-afbb-f56036c0f2cb</ID> - <Left>1045.9458963394222</Left> - <Top>460.86118629158989</Top> - <Width>449.5089477623826</Width> - <Height>55.327112636891911</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>Flat Head</Text> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>7e7868fd-3c47-4d5f-8c6f-fa4b18ae05b3</ID> - <Left>1260.3013710587918</Left> - <Top>791.39094759212651</Top> - <Width>232.78141937694795</Width> - <Height>45.135276098517238</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>Arc</Text> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>1de56a7a-e25e-4508-a87e-de0230e91dc3</ID> - <Left>1516.0481568975797</Left> - <Top>366.24959926534439</Top> - <Width>117.72853393776677</Width> - <Height>48.047229395195586</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>Ambient</Text> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>51ce86b2-0063-48c6-89f6-182a189ffaaa</ID> - <Left>70.075574021778309</Left> - <Top>976.2041030585757</Top> - <Width>140.47154617574461</Width> - <Height>104.83031868042667</Height> - <Angle>0</Angle> - <ItemGuid>20768F26-8D03-4660-8355-B29C595DFCB2</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>9001f8a5-c4c2-4be8-820f-2174b580c53b</ID> - <Left>252.40090220375726</Left> - <Top>947.54574115036348</Top> - <Width>148.7597052289122</Width> - <Height>121.44535613863422</Height> - <Angle>0</Angle> - <ItemGuid>20768F26-8D03-4660-8355-B29C595DFCB2</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="BlowerItem"> - <ID>9f31d14c-d7ec-45c1-b87c-3f4923a6af58</ID> - <Left>260.2054564281259</Left> - <Top>787.10370299452848</Top> - <Width>142.5965330388309</Width> - <Height>127.53048371566092</Height> - <Angle>0</Angle> - <ItemGuid>080EB945-8E52-4876-9704-F9908FD26967</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="BlowerItem"> - <ID>5c687318-7840-4196-af07-2455e10d1bcf</ID> - <Left>816.2919957682775</Left> - <Top>836.89502513753882</Top> - <Width>153.84978866867277</Width> - <Height>58.239065933570373</Height> - <Angle>0</Angle> - <ItemGuid>998B5E61-3119-443D-ABAA-EFBC283B1021</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>95a693e0-816b-4edc-a2ae-98ac393c6f48</ID> - <Left>819.83243778511473</Left> - <Top>957.65691621970711</Top> - <Width>128.43112793210935</Width> - <Height>104.83031868042667</Height> - <Angle>0</Angle> - <ItemGuid>20768F26-8D03-4660-8355-B29C595DFCB2</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>8d26a1fe-4293-413d-9f4e-b3a562bf25db</ID> - <Left>628.1918504863404</Left> - <Top>971.65955281411607</Top> - <Width>128.43112793210935</Width> - <Height>104.83031868042667</Height> - <Angle>0</Angle> - <ItemGuid>20768F26-8D03-4660-8355-B29C595DFCB2</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>e1273b48-af58-4acd-9e8a-11bc59516b16</ID> - <Left>612.48035467271029</Left> - <Top>949.40114439880108</Top> - <Width>163.52519712936567</Width> - <Height>30.060733624349837</Height> - <Angle>0</Angle> - <ColorNumber>-12968193</ColorNumber> - <Text>air flow 1</Text> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>31a7f747-9569-473c-a345-696d1acb8044</ID> - <Left>61.998970290683857</Left> - <Top>953.87279414695115</Top> - <Width>160.0623860169863</Width> - <Height>26.292098005808043</Height> - <Angle>0</Angle> - <ColorNumber>-12968193</ColorNumber> - <Text>air flow 2</Text> - </TechItem> - </Items> - </MachineTechViewProjectTab> - <MachineTechViewProjectTab> - <Name>Dispensers</Name> - <Items> - <TechItem xsi:type="DispenserItem"> - <ID>dce78f33-c966-4848-8c6e-a4a01dbc7577</ID> - <Left>1322.1428571428571</Left> - <Top>214.15929203538531</Top> - <Width>159</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>2CC8E461-E91F-4D4C-A402-922477F06C87</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>800</Speed> - <DisplayName>Dispenser 1</DisplayName> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>2d03fc19-0502-43e1-a3ff-4012a612112b</ID> - <Left>1149</Left> - <Top>218.48230088495342</Top> - <Width>159</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>C8D8FE90-0375-44A2-A6D1-E997789E065C</ItemGuid> - <ColorNumber>-16724737</ColorNumber> - <Speed>1200</Speed> - <DisplayName>Dispenser 2</DisplayName> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>81958374-3fa3-48b3-a554-5653fe1934b1</ID> - <Left>959</Left> - <Top>210.32743362830422</Top> - <Width>156</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>08ED9044-CAD6-4492-94B2-C07206E0164B</ItemGuid> - <ColorNumber>-65325</ColorNumber> - <Speed>1200</Speed> - <DisplayName>Dispenser 3</DisplayName> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>8fead411-7198-4428-a364-e32f3035ed94</ID> - <Left>775</Left> - <Top>206.42920353980952</Top> - <Width>159</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>179F34BB-3252-4D3A-965C-E6EB43D6FE7C</ItemGuid> - <ColorNumber>-524544</ColorNumber> - <Speed>1200</Speed> - <DisplayName>Dispenser 4</DisplayName> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>31bfa89f-e64d-4a3b-8585-c4a1b2e5a139</ID> - <Left>585</Left> - <Top>208.47345132741418</Top> - <Width>159</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>716B35CF-46E0-47D5-AF85-5233D212568F</ItemGuid> - <ColorNumber>-2108246</ColorNumber> - <Speed>1200</Speed> - <DisplayName>Dispenser 5</DisplayName> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>c2bff5f3-6dc9-4b07-87ba-9e3a5814804e</ID> - <Left>372</Left> - <Top>216.75221238937439</Top> - <Width>159</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>99528449-4D76-4874-AB95-522951560E01</ItemGuid> - <ColorNumber>-263685</ColorNumber> - <Speed>1200</Speed> - <DisplayName>Dispenser 6</DisplayName> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>071281a5-3569-4a62-8b68-7bea850a3c07</ID> - <Left>217</Left> - <Top>211.63716814158107</Top> - <Width>159</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>E8ED07E2-7C36-459C-B9E5-6A23A1E24F03</ItemGuid> - <ColorNumber>-723724</ColorNumber> - <Speed>1200</Speed> - <DisplayName>Dispenser 7</DisplayName> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>7b703b9a-a626-4ae5-8e31-fa1cfe5718f4</ID> - <Left>45</Left> - <Top>216.04867256635521</Top> - <Width>159</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>8A957565-4165-49F7-854D-D21F95FFBE1B</ItemGuid> - <ColorNumber>-724238</ColorNumber> - <Speed>1200</Speed> - <DisplayName>Dispenser 8</DisplayName> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>caca40a2-310c-452e-adcf-c28ee38f6bdc</ID> - <Left>1305</Left> - <Top>31.606194690259713</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid> - <ColorNumber>-15856114</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>af52d36f-27a2-4a31-8ceb-9c43fedbed22</ID> - <Left>1127</Left> - <Top>32.535398230081626</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> - <ColorNumber>-15293470</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>d40eada8-d22a-4521-bd2a-d998ed93106f</ID> - <Left>955</Left> - <Top>32.61946902653176</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid> - <ColorNumber>-1570857</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>b2d6364d-8b5c-43d2-8838-927c85b017b1</ID> - <Left>774</Left> - <Top>31.960176991142362</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid> - <ColorNumber>-1379575</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>3980e685-73b3-4af1-9593-9235be147322</ID> - <Left>596</Left> - <Top>32.889380530964274</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid> - <ColorNumber>-7763381</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>51465293-58d5-40a4-8302-81856f8b4f47</ID> - <Left>424</Left> - <Top>32.973451327414409</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>AF3FD56C-95BF-4DE1-8EDC-8426B0DB2A26</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>c2a8c5b2-891b-4f9f-862c-c1c294366c78</ID> - <Left>252</Left> - <Top>31.703539823006281</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>60DA9EA3-C8A6-4D41-8AD8-3EB1BAA79CC9</ItemGuid> - <ColorNumber>-8391822</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>9618e441-8973-4e16-a90b-06ce5798bd29</ID> - <Left>80</Left> - <Top>31.787610619456416</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>EF66F95A-E166-4FA2-B1AF-D6F55621817A</ItemGuid> - <ColorNumber>-2186185</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>5bf7a681-ee47-477e-8b47-ba7a2eb6e115</ID> - <Left>1113.3333333333337</Left> - <Top>463.97555419258936</Top> - <Width>144</Width> - <Height>80.495575221237516</Height> - <Angle>0</Angle> - <ItemGuid>3174ADCF-5793-4B5A-A3C6-B96E146A903D</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>29b17a4b-fd4e-49cc-a3cd-418730176bf7</ID> - <Left>952.33333333333326</Left> - <Top>464.97555419258811</Top> - <Width>144</Width> - <Height>80.495575221237516</Height> - <Angle>0</Angle> - <ItemGuid>AD50C358-5BAF-4A2F-8593-51A22C85B3D1</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>21a5429f-c3a2-4e3b-ae77-c5538f30130d</ID> - <Left>758.33333333333326</Left> - <Top>462.68794357311867</Top> - <Width>144</Width> - <Height>82.535398230087083</Height> - <Angle>0</Angle> - <ItemGuid>E2F0FC31-CE7E-416B-ACEA-8EB6CA9B850B</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>96a46b0c-37b1-4457-93fb-b3dc301c5743</ID> - <Left>571.33333333333326</Left> - <Top>464.08617366161127</Top> - <Width>144</Width> - <Height>80.495575221237516</Height> - <Angle>0</Angle> - <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C09F</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>d4ad8603-9929-415f-9990-1869fcff36e4</ID> - <Left>1293.3333333333337</Left> - <Top>467.71449224568437</Top> - <Width>144</Width> - <Height>80.495575221237516</Height> - <Angle>0</Angle> - <ItemGuid>84682E90-6926-42AA-BF8C-2CCCF5C26C97</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="ValveItem"> - <ID>25249d78-ee37-42a8-b5aa-96f60e97c3ea</ID> - <Left>607.32892156862749</Left> - <Top>598.34526296666354</Top> - <Width>327</Width> - <Height>108.53097345133028</Height> - <Angle>0</Angle> - <ItemGuid>8B1FCBC3-FEEA-4F87-B56F-CE5D28B7ACA4</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="ValveItem"> - <ID>cdddd48e-422d-48f4-8397-5032c3705fdb</ID> - <Left>1071.0833333333335</Left> - <Top>577.88035573468915</Top> - <Width>382</Width> - <Height>136.79203539823016</Height> - <Angle>0</Angle> - <ItemGuid>04C58CA0-9719-4BB0-8D3B-D4C71129D8E4</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>ee6d4c5a-ca5b-4557-8012-dacf700cdc08</ID> - <Left>214.33333333333326</Left> - <Top>463.08617366162218</Top> - <Width>144</Width> - <Height>80.495575221237516</Height> - <Angle>0</Angle> - <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C010</ItemGuid> - <ColorNumber>-8391822</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>20576bb2-202f-4170-9af5-f3c18b410112</ID> - <Left>60.333333333333258</Left> - <Top>463.48440375011319</Top> - <Width>144</Width> - <Height>80.495575221237516</Height> - <Angle>0</Angle> - <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C011</ItemGuid> - <ColorNumber>-2186185</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>3b484b31-da50-4861-abce-70a06193fe6f</ID> - <Left>395.33333333333331</Left> - <Top>465.89108910891088</Top> - <Width>144</Width> - <Height>80.495575221237516</Height> - <Angle>0</Angle> - <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C092</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - </Items> - </MachineTechViewProjectTab> - <MachineTechViewProjectTab> - <Name>Waste</Name> - <Items> - <TechItem xsi:type="MonitorItem"> - <ID>73486478-cffe-43f9-a949-0a6b0e522e9e</ID> - <Left>25.541666666666686</Left> - <Top>24.896039603960332</Top> - <Width>179.16666666666666</Width> - <Height>143.97524752475249</Height> - <Angle>0</Angle> - <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>880c81c4-a02d-4c6e-a861-11a1ca0699d2</ID> - <Left>789.08333333333326</Left> - <Top>24.896039603960446</Top> - <Width>179.16666666666666</Width> - <Height>143.97524752475249</Height> - <Angle>0</Angle> - <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>47231575-fde1-4ab7-9032-86d48a7fef7b</ID> - <Left>596.37500000000011</Left> - <Top>23.762376237623698</Top> - <Width>179.16666666666666</Width> - <Height>143.97524752475249</Height> - <Angle>0</Angle> - <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>ba429140-e9ef-4257-8666-c1ad03b81e1c</ID> - <Left>217.20833333333343</Left> - <Top>22.628712871287121</Top> - <Width>179.16666666666666</Width> - <Height>143.97524752475249</Height> - <Angle>0</Angle> - <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>ece2bc5a-5a2b-4ff9-a409-4f130e8155ff</ID> - <Left>984.91666666666674</Left> - <Top>26.029702970296967</Top> - <Width>179.16666666666666</Width> - <Height>143.97524752475249</Height> - <Angle>0</Angle> - <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>4dacd4d7-046e-4478-b7d1-f96539c21d89</ID> - <Left>1183.8750000000002</Left> - <Top>22.628712871287121</Top> - <Width>179.16666666666666</Width> - <Height>143.97524752475249</Height> - <Angle>0</Angle> - <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>b5c670f3-59c6-40a7-872c-00a128ef5bbe</ID> - <Left>1371.3749999999998</Left> - <Top>23.762376237623698</Top> - <Width>179.16666666666666</Width> - <Height>143.97524752475249</Height> - <Angle>0</Angle> - <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>f58afef3-9825-4139-8975-fa91c3f3e10d</ID> - <Left>405.74999999999994</Left> - <Top>26.029702970297024</Top> - <Width>179.16666666666666</Width> - <Height>143.97524752475249</Height> - <Angle>0</Angle> - <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>ba8f119b-4c4c-45ed-8bd3-4bdfe2f6dd78</ID> - <Left>1395.3333333333335</Left> - <Top>593.99504950495043</Top> - <Width>179.16666666666666</Width> - <Height>143.97524752475249</Height> - <Angle>0</Angle> - <ItemGuid>79AD6611-82A2-4B4C-AB5E-A11A33E1243D</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>4a6a278a-633d-4917-acf4-83e9f3818a75</ID> - <Left>29.708333333333115</Left> - <Top>249.36138613861391</Top> - <Width>179.16666666666666</Width> - <Height>143.97524752475249</Height> - <Angle>0</Angle> - <ItemGuid>055D0A38-09BD-490D-9852-12B06A4B22F2</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>71d506d0-4dcc-4b66-8e26-f5b0fd807b5f</ID> - <Left>714.08333333333348</Left> - <Top>245.96039603960367</Top> - <Width>179.16666666666666</Width> - <Height>143.97524752475249</Height> - <Angle>0</Angle> - <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>14c6bcd8-c314-444f-939b-340f989c8c8a</ID> - <Left>924.5</Left> - <Top>241.42574257425736</Top> - <Width>179.16666666666666</Width> - <Height>143.97524752475249</Height> - <Angle>0</Angle> - <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>93c19fe3-5f8e-4260-a908-a6eb2cd83d82</ID> - <Left>730.75000000000011</Left> - <Top>430.7475247524751</Top> - <Width>381.25</Width> - <Height>91.826732673267259</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>WHS Temperatures</Text> - </TechItem> - <TechItem xsi:type="DigitalInItem"> - <ID>77de4fd1-a2e1-46c2-8997-f8a22b4eb906</ID> - <Left>1406.7916666666663</Left> - <Top>226.68811881188123</Top> - <Width>146.87500000000046</Width> - <Height>99.762376237623585</Height> - <Angle>0</Angle> - <ItemGuid>d7bef231-9cb6-4394-b871-d9b52be73304</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="DigitalInItem"> - <ID>8cd5e67b-34c0-428b-8b74-41d27d2c22cf</ID> - <Left>1405.7499999999998</Left> - <Top>419.41089108910887</Top> - <Width>144.79166666666674</Width> - <Height>95.227722772277275</Height> - <Angle>0</Angle> - <ItemGuid>d7bef231-9cb6-4394-b871-d9b52be73304</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="DigitalInItem"> - <ID>4988f409-07c8-4cd5-b173-02bd88e67999</ID> - <Left>1402.6250000000009</Left> - <Top>332.11881188118815</Top> - <Width>143.75</Width> - <Height>86.158415841584088</Height> - <Angle>0</Angle> - <ItemGuid>d7bef231-9cb6-4394-b871-d9b52be73304</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>a0f6a227-e63f-44b1-b375-e287dffaadd6</ID> - <Left>1290.125</Left> - <Top>531.64356435643606</Top> - <Width>239.58333333333349</Width> - <Height>36.277227722772295</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>Cartridge</Text> - </TechItem> - <TechItem xsi:type="DigitalInItem"> - <ID>716466da-4b1e-4ef6-82a6-a257f0ece033</ID> - <Left>1259.9166666666661</Left> - <Top>241.42574257425764</Top> - <Width>125</Width> - <Height>100.89603960396016</Height> - <Angle>0</Angle> - <ItemGuid>d7bef231-9cb6-4394-b871-d9b52be73304</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="DigitalInItem"> - <ID>b181b88a-f448-45c0-ad49-5570b2540b4b</ID> - <Left>1259.9166666666665</Left> - <Top>427.34653465346491</Top> - <Width>129.16666666666652</Width> - <Height>91.826732673267315</Height> - <Angle>0</Angle> - <ItemGuid>d7bef231-9cb6-4394-b871-d9b52be73304</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="DigitalInItem"> - <ID>5905f078-74e3-455d-ad6a-1e1a52da21c3</ID> - <Left>1247.4166666666667</Left> - <Top>332.11881188118809</Top> - <Width>148.95833333333326</Width> - <Height>89.559405940594047</Height> - <Angle>0</Angle> - <ItemGuid>d7bef231-9cb6-4394-b871-d9b52be73304</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>48eeab5d-b535-4206-886f-d176da3e950f</ID> - <Left>221.37500000000006</Left> - <Top>464.75742574257436</Top> - <Width>172.91666666666677</Width> - <Height>109.96534653465358</Height> - <Angle>0</Angle> - <ItemGuid>FE0D0A56-5795-4C5A-8E09-939FBB35C441</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>a866ff20-1f1c-4aa0-891f-4ac5e37db38a</ID> - <Left>233.87499999999989</Left> - <Top>599.66336633663366</Top> - <Width>143.74999999999992</Width> - <Height>88.425742574257583</Height> - <Angle>0</Angle> - <ItemGuid>94F3E5A1-413E-4EA0-BDE1-F0625BFF7910</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>cbb20fba-d713-4521-8410-148b1156cae5</ID> - <Left>25.541666666666771</Left> - <Top>455.68811881188083</Top> - <Width>172.91666666666669</Width> - <Height>126.97029702970292</Height> - <Angle>0</Angle> - <ItemGuid>1778C1A7-AFB5-42F9-9E00-E80D30D9FC0A</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="BlowerItem"> - <ID>f707fe47-9f48-4be2-b0cd-29022c9ec79a</ID> - <Left>39.083333333333357</Left> - <Top>621.20297029702988</Top> - <Width>160.41666666666671</Width> - <Height>72.554455445544363</Height> - <Angle>0</Angle> - <ItemGuid>0B1752D6-7D4B-4957-BCDE-15465EA8EB55</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>87f906c6-e8b9-4d8c-bdef-3ef38c69aa33</ID> - <Left>407.8333333333328</Left> - <Top>250.49504950495043</Top> - <Width>152.08333333333385</Width> - <Height>140.57425742574253</Height> - <Angle>0</Angle> - <ItemGuid>27CEDD42-FDDD-45DF-A9D0-FDBF277FFB0F</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>08ffbe8d-0392-495e-9af0-aa386ee2fad9</ID> - <Left>225.54166666666697</Left> - <Top>249.36138613861385</Top> - <Width>170.83333333333317</Width> - <Height>145.10891089108895</Height> - <Angle>0</Angle> - <ItemGuid>FA21BC1D-04FA-4626-82A4-F77D2A4120C4</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>5c3b1479-5875-4e3f-9ed9-00529b403f4f</ID> - <Left>1239.083333333333</Left> - <Top>685.82178217821775</Top> - <Width>173.95833333333354</Width> - <Height>113.36633663366342</Height> - <Angle>0</Angle> - <ItemGuid>7e1f53ec-8176-4efa-ac3d-c8f2436e60d1</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>43e7bf4f-e7ee-4f86-bfe7-dfbe538e4586</ID> - <Left>1238.0416666666667</Left> - <Top>567.9207920792079</Top> - <Width>153.12500000000006</Width> - <Height>114.5</Height> - <Angle>0</Angle> - <ItemGuid>78db28d0-0407-4942-bb62-c44da81c4f9e</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - </Items> - </MachineTechViewProjectTab> - <MachineTechViewProjectTab> - <Name>Thread insertion</Name> - <Items> - <TechItem xsi:type="MotorItem"> - <ID>443a977c-8e89-4a56-82e4-684bac7945c9</ID> - <Left>21.874999999999972</Left> - <Top>32.9640322439318</Top> - <Width>247</Width> - <Height>172.25663716814159</Height> - <Angle>0</Angle> - <ItemGuid>08d15ca1-d7d1-460f-8f37-42c37c287cd1</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>500</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>a821b716-cb7d-4951-84ee-e56955431099</ID> - <Left>340.41666666666674</Left> - <Top>230.32064312625903</Top> - <Width>271.45833333333326</Width> - <Height>166.60838517480056</Height> - <Angle>0</Angle> - <ItemGuid>b90a4e78-ebbf-44db-829b-949517d6400b</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>350</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>e36e321b-d48d-4199-a1ee-75ac18e9de1e</ID> - <Left>988.91666666666652</Left> - <Top>244.36432138789076</Top> - <Width>217</Width> - <Height>155.26106194690203</Height> - <Angle>0</Angle> - <ItemGuid>c6099065-a735-4cc5-b575-c31a45bb9262</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>350</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>8790db03-4dfd-4d49-aec0-706babb55af9</ID> - <Left>346</Left> - <Top>438.23254183824758</Top> - <Width>240</Width> - <Height>172.30973451327589</Height> - <Angle>0</Angle> - <ItemGuid>2d3eaca5-4dfd-40d9-9d1f-aa4ae794eddc</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>500</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>69ebcb28-13d9-41b3-a9ef-b2be51584141</ID> - <Left>17.25</Left> - <Top>239.82725838954167</Top> - <Width>255</Width> - <Height>170.15044247787392</Height> - <Angle>0</Angle> - <ItemGuid>b71ad55d-d296-4371-a6d2-9d3c637c0380</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>1000</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>7b5b6896-f626-4e59-a5cf-2600e603c0f6</ID> - <Left>1280.291666666667</Left> - <Top>435.1617453780857</Top> - <Width>237</Width> - <Height>179.22123893805463</Height> - <Angle>0</Angle> - <ItemGuid>7b6d0a93-5a91-4e1f-af47-353afd8b5ea6</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>20</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>2052a2d3-843c-4a1c-87fd-acd0832fd1b9</ID> - <Left>688.125</Left> - <Top>27.933978796104839</Top> - <Width>220</Width> - <Height>168.473451327436</Height> - <Angle>0</Angle> - <ItemGuid>c9482395-35e6-4340-8dab-83d5dfe907a7</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>1000</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>339b7d00-d688-41cf-926a-8171d5e62740</ID> - <Left>683.20833333333337</Left> - <Top>436.40050819241503</Top> - <Width>240</Width> - <Height>159.84070796460173</Height> - <Angle>0</Angle> - <ItemGuid>f3b5076e-cba3-4ad2-b3cc-0c4e907bd9ef</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>200</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>7644a8f9-00a2-4e37-8f48-0667b1541114</ID> - <Left>1285.5416666666665</Left> - <Top>39.867782353458267</Top> - <Width>233</Width> - <Height>159.57079646017985</Height> - <Angle>0</Angle> - <ItemGuid>92237d83-9f85-48db-aa6f-2fc5c9e0d8cd</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>500</Speed> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>c706d31b-48b0-44cc-a9c4-11d3acdcf667</ID> - <Left>1018.3333333333334</Left> - <Top>603.18879530178208</Top> - <Width>169</Width> - <Height>83.45969508455255</Height> - <Angle>0</Angle> - <ItemGuid>2a454081-bd5e-41de-ae5d-97aefe1d76de</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>7ccff69d-50f9-4e9b-a997-72a67917df5e</ID> - <Left>683.25</Left> - <Top>239.17940068343398</Top> - <Width>239.95833333333337</Width> - <Height>154.99115044247867</Height> - <Angle>0</Angle> - <ItemGuid>7c03f12f-ab2a-4421-8575-aefd6dec0001</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>10</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>a88a74cb-418b-4ed0-89ec-c42ff560528e</ID> - <Left>1281.333333333333</Left> - <Top>233.20743888547975</Top> - <Width>234.29166666666652</Width> - <Height>157.55879260492486</Height> - <Angle>0</Angle> - <ItemGuid>b7c1aea4-32c1-41cb-bca3-4aa665529b49</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>500</Speed> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>37267035-ae9d-4c72-a04f-215f754d0900</ID> - <Left>700.70833333333326</Left> - <Top>639.25891527204931</Top> - <Width>205.625</Width> - <Height>105.8987996144798</Height> - <Angle>0</Angle> - <ItemGuid>6b9cba1d-4acf-4992-97ad-e422bca6ada2</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>ca4a5397-68a1-4a2f-b614-80132cd513ee</ID> - <Left>1003.0416666666667</Left> - <Top>53.154034872515865</Top> - <Width>240</Width> - <Height>116.10176991150968</Height> - <Angle>0</Angle> - <ItemGuid>6f48e18c-d472-425a-ba7e-633630605e11</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>6313cc40-15b2-41b0-ba61-cd0849421176</ID> - <Left>20.333333333333371</Left> - <Top>440.95049504950487</Top> - <Width>255</Width> - <Height>170.15044247787392</Height> - <Angle>0</Angle> - <ItemGuid>54695c85-b4a5-4e9d-95b1-b9e55844cde2</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>500</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>122528e8-77bc-40fa-afbc-534c2fb3b0cc</ID> - <Left>348.45833333333331</Left> - <Top>30.56435643564356</Top> - <Width>255</Width> - <Height>170.15044247787392</Height> - <Angle>0</Angle> - <ItemGuid>bda5aa4d-13aa-4259-92e5-b969276cb2b1</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>1000</Speed> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>99884eb7-051d-4e72-97dd-1c52fcd25fff</ID> - <Left>979.70833333333326</Left> - <Top>180.20792079207939</Top> - <Width>196.87499999999977</Width> - <Height>36.277227722772068</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>Right Actuator</Text> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>a4b1a4ee-38ed-48a0-82eb-76b96f06a3ac</ID> - <Left>1000.9583333333335</Left> - <Top>444.351485148515</Top> - <Width>240</Width> - <Height>116.10176991150968</Height> - <Angle>0</Angle> - <ItemGuid>698f79a5-0bb1-4f19-a679-0294031ec43d</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>fae05523-674c-4b14-a860-b6cc8e351d76</ID> - <Left>992.208333333333</Left> - <Top>553.26675720669289</Top> - <Width>221.87499999999955</Width> - <Height>56.683168316831029</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>Left Actuator</Text> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>a1fb6ece-dcdb-4d85-b06c-a8df718b6eef</ID> - <Left>1023.4583333333336</Left> - <Top>694.891089108911</Top> - <Width>162.50000000000023</Width> - <Height>49.881188118811338</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>Magnet</Text> - </TechItem> - </Items> - </MachineTechViewProjectTab> - </Tabs> - <SelectedTabIndex>0</SelectedTabIndex> -</MachineTechViewProject>
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/technician view files/alpha.tpf b/Software/Stubs Collection/stubs/technician view files/alpha.tpf deleted file mode 100644 index 66d243885..000000000 --- a/Software/Stubs Collection/stubs/technician view files/alpha.tpf +++ /dev/null @@ -1,2149 +0,0 @@ -<?xml version="1.0"?> -<MachineTechViewProject xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> - <Items /> - <Tabs> - <MachineTechViewProjectTab> - <Name>Temperatures</Name> - <Items> - <TechItem xsi:type="MonitorItem"> - <ID>50bae43f-8b1a-4279-9238-b976a0c72af3</ID> - <Left>1530</Left> - <Top>193.19911504424795</Top> - <Width>169</Width> - <Height>181.37610619469029</Height> - <Angle>0</Angle> - <ItemGuid>A8DB1D27-6B25-4FB4-A3F5-46A29BA51955</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>88d1ed8f-752b-4eb0-9dad-b47aee34d5db</ID> - <Left>677</Left> - <Top>64.513274336283189</Top> - <Width>575</Width> - <Height>201.64159292035407</Height> - <Angle>0</Angle> - <ItemGuid>48E8DD1B-46EC-4576-B513-7E734503B6DA</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>701</Duration> - <Min>0</Min> - <Max>300</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>1</DecimalPlaces> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>e4892498-fa1a-413c-9dd8-633efaade51c</ID> - <Left>561</Left> - <Top>638.02654867256649</Top> - <Width>203</Width> - <Height>160.09734513274339</Height> - <Angle>0</Angle> - <ItemGuid>6b9cba1d-4acf-4992-97ad-e422bca6ada2</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>1a243586-f54c-4208-bc29-458c45acd578</ID> - <Left>776</Left> - <Top>641.06637168141606</Top> - <Width>215</Width> - <Height>159.08407079646031</Height> - <Angle>0</Angle> - <ItemGuid>b05b8324-022b-4d61-ae4a-33c97cd1f51b</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>c399ec1f-152e-4517-b6a3-c17bb445fc79</ID> - <Left>57</Left> - <Top>853.73451327433634</Top> - <Width>251</Width> - <Height>184.41592920353969</Height> - <Angle>0</Angle> - <ItemGuid>6f851979-d69c-4243-9383-1517a8bdc656</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>500</Speed> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>211ad3c8-3c39-47a1-88c0-089fb13678a0</ID> - <Left>361</Left> - <Top>858.80088495575251</Top> - <Width>245</Width> - <Height>204.68141592920335</Height> - <Angle>0</Angle> - <ItemGuid>C8D8FE90-0375-44A2-A6D1-E997789E065C</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>1700</Speed> - <DisplayName>Dispenser 2</DisplayName> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>07ad9c30-c4cf-461a-904e-f6661d464c26</ID> - <Left>665</Left> - <Top>870.96017699115055</Top> - <Width>216</Width> - <Height>147.93805309734523</Height> - <Angle>0</Angle> - <ItemGuid>3bed8c31-bcd6-479b-8a5d-92ce8a5e4d41</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>500</Speed> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>de829cd4-0493-48d3-ac3a-4b9db77f2f42</ID> - <Left>969</Left> - <Top>866.90707964601779</Top> - <Width>190</Width> - <Height>145.91150442477886</Height> - <Angle>0</Angle> - <ItemGuid>08ED9044-CAD6-4492-94B2-C07206E0164B</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>1700</Speed> - <DisplayName>Dispenser 3</DisplayName> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>a15665e3-af39-42d8-8c06-97d770632e10</ID> - <Left>1289</Left> - <Top>72.951327433628364</Top> - <Width>207</Width> - <Height>184.4159292035398</Height> - <Angle>0</Angle> - <ItemGuid>6D6CFA18-5922-4AFE-84B3-2721CE128681</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>DryerAirHeater</HeaterType> - <SetPoint>190</SetPoint> - <CurrentValue>104.97999999999999</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>true</IsRampingUp> - <IsInSetPoint>false</IsInSetPoint> - </HeaterState> - <SetPoint>190</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>0ac64716-d30c-489b-939e-a26d06445866</ID> - <Left>450</Left> - <Top>54.65044247787489</Top> - <Width>212</Width> - <Height>177.32300884955754</Height> - <Angle>0</Angle> - <ItemGuid>A5DFC2DB-3B36-4377-96A0-D492CE785C00</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>DryerMainHeater</HeaterType> - <SetPoint>100</SetPoint> - <CurrentValue>167.04999999999998</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>100</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>181796d8-64f6-420a-8f37-9af9df67d6a9</ID> - <Left>245</Left> - <Top>50.159292035398948</Top> - <Width>199</Width> - <Height>180.36283185840711</Height> - <Angle>0</Angle> - <ItemGuid>86808B48-B7F9-43AD-840E-2A6A5987C305</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>DryerSecondaryHeater</HeaterType> - <SetPoint>100</SetPoint> - <CurrentValue>171.27999999999997</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>100</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>fd2bb3a3-a411-470d-bde7-0beaf84da059</ID> - <Left>667</Left> - <Top>320.19026548672576</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>8E764A14-0F84-4FEC-928B-32A2509CAD57</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone3</HeaterType> - <SetPoint>135</SetPoint> - <CurrentValue>126.22999999999999</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>true</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>135</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>7e8dd386-cca6-4d07-8a3e-af5403756002</ID> - <Left>894</Left> - <Top>321.20353982300895</Top> - <Width>200</Width> - <Height>187.45575221238937</Height> - <Angle>0</Angle> - <ItemGuid>B4EE8CC0-EE2B-4ABE-BF09-9226860E756B</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone2</HeaterType> - <SetPoint>120</SetPoint> - <CurrentValue>107.83</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>true</IsRampingUp> - <IsInSetPoint>false</IsInSetPoint> - </HeaterState> - <SetPoint>120</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>32a91e5f-27c8-490d-b187-8e39b6626a13</ID> - <Left>1128</Left> - <Top>326.26991150442478</Top> - <Width>157</Width> - <Height>194.54867256637175</Height> - <Angle>0</Angle> - <ItemGuid>27E7BB74-81C3-4EF2-80AE-962F111C441F</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone1</HeaterType> - <SetPoint>80</SetPoint> - <CurrentValue>79.42</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>80</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>c844235a-8a29-4c2e-a964-e8f546d2ced7</ID> - <Left>1281</Left> - <Top>587.69469026548677</Top> - <Width>173</Width> - <Height>183.40265486725662</Height> - <Angle>0</Angle> - <ItemGuid>42A62A48-F1D5-4BB6-AFEA-6A7DF6DCF626</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>MixerHeater</HeaterType> - <SetPoint>80</SetPoint> - <CurrentValue>78.4</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>80</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>45b121b5-cf7c-41f7-8089-6d4d6b1ed2c8</ID> - <Left>469</Left> - <Top>324.61946902655012</Top> - <Width>178</Width> - <Height>207.41150442477846</Height> - <Angle>0</Angle> - <ItemGuid>94574D69-46E1-4144-A8B5-D4BF0DA96D18</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone4</HeaterType> - <SetPoint>135</SetPoint> - <CurrentValue>132.57</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>135</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>e6b3eb18-482b-450e-b8a8-d2ac6bba4fd4</ID> - <Left>257</Left> - <Top>328.66814159291738</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>D6771DF4-771E-4D62-B6BA-BDE361C0A0F3</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone5</HeaterType> - <SetPoint>140</SetPoint> - <CurrentValue>138.66</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>140</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>efff2e67-e3a3-4667-9208-4704707d7cda</ID> - <Left>65</Left> - <Top>331.91150442477812</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>D2B6CAA0-055E-4871-8D91-A5370F1ACB22</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone6</HeaterType> - <SetPoint>145</SetPoint> - <CurrentValue>112.38</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>true</IsRampingUp> - <IsInSetPoint>false</IsInSetPoint> - </HeaterState> - <SetPoint>145</SetPoint> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>f9936dba-cef8-41e3-a715-eb629dca1870</ID> - <Left>1311</Left> - <Top>346.53539823008856</Top> - <Width>199</Width> - <Height>114.5</Height> - <Angle>0</Angle> - <ItemGuid>1778C1A7-AFB5-42F9-9E00-E80D30D9FC0A</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>217c677a-3e11-4a7c-959b-616dae1259dd</ID> - <Left>1167</Left> - <Top>280.67256637168151</Top> - <Width>44</Width> - <Height>42.557522123893705</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>A</Text> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>f129ea0d-9abb-437f-928e-1cd1f569db2a</ID> - <Left>980.0000000000025</Left> - <Top>272.39823008849913</Top> - <Width>44</Width> - <Height>42.557522123893705</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>C</Text> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>5f2610dc-3b9d-4302-b8f5-77a5e1c73b8c</ID> - <Left>739.99999999999727</Left> - <Top>269.79203539822839</Top> - <Width>44</Width> - <Height>42.557522123893705</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>D</Text> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>eadb5257-47a2-4336-a72a-f2d157fe70cb</ID> - <Left>552.99999999999909</Left> - <Top>277.11946902654887</Top> - <Width>44</Width> - <Height>42.557522123893705</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>F</Text> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>6c59af66-169a-46e0-89ae-a81e3e619043</ID> - <Left>334.00000000000153</Left> - <Top>280.39380530973477</Top> - <Width>44</Width> - <Height>42.557522123893705</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>I</Text> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>3b32b9a8-f300-443f-950e-c49f81678bac</ID> - <Left>133.99999999999966</Left> - <Top>283.84070796460247</Top> - <Width>44</Width> - <Height>42.557522123893705</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>L</Text> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>f6d44793-ed44-46ed-8854-eacbc11af10c</ID> - <Left>909</Left> - <Top>544.12389380530976</Top> - <Width>219</Width> - <Height>97.2743362831859</Height> - <Angle>0</Angle> - <ItemGuid>df38139e-0026-46bc-b72f-df5f9eec80f7</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>dd8f8a58-c09f-43dc-af6f-13fe83471be4</ID> - <Left>1005</Left> - <Top>624.17256637168157</Top> - <Width>237</Width> - <Height>170.23008849557505</Height> - <Angle>0</Angle> - <ItemGuid>cac03991-b332-4dfa-b491-c0e381b74fb9</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="MonitorRecorderItem"> - <ID>43793f93-da64-4409-b583-bca498f641e6</ID> - <Left>18</Left> - <Top>25.3274336283186</Top> - <Width>203</Width> - <Height>107.40707964601774</Height> - <Angle>0</Angle> - <ColorNumber>-1</ColorNumber> - <SelectedMonitorsGuids /> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>5827ad17-c283-41f2-b527-9c869786eed7</ID> - <Left>14</Left> - <Top>131.72123893805315</Top> - <Width>164</Width> - <Height>90.181415929203524</Height> - <Angle>0</Angle> - <ItemGuid>D59EFB38-79D9-446C-BCB5-92D8FDA900E4</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>d857cded-6617-4b22-aeb6-dc21be26a48f</ID> - <Left>20</Left> - <Top>247.23451327433628</Top> - <Width>169</Width> - <Height>62.823008849557596</Height> - <Angle>0</Angle> - <ItemGuid>9F98B9D3-F989-4D03-90E8-721671835E0B</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="BlowerItem"> - <ID>b284df29-a008-4c51-949f-42ee8bfbfe5f</ID> - <Left>27</Left> - <Top>692.06194690265488</Top> - <Width>227</Width> - <Height>103.35398230088504</Height> - <Angle>0</Angle> - <ItemGuid>0B1752D6-7D4B-4957-BCDE-15465EA8EB55</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>967f9229-fe28-4700-bc67-292027037a5f</ID> - <Left>66</Left> - <Top>561.54424778760892</Top> - <Width>332</Width> - <Height>98.358407079648259</Height> - <Angle>0</Angle> - <ItemGuid>F1DF490B-0577-4FA7-ACA1-0EEF4F934100</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>66f93adf-70f5-48b0-ae42-4cd6f0a7a821</ID> - <Left>49</Left> - <Top>665.87610619468933</Top> - <Width>391</Width> - <Height>45.429203539825039</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>Ambiet temp * 1000 + electric cabinet temp</Text> - </TechItem> - </Items> - </MachineTechViewProjectTab> - <MachineTechViewProjectTab> - <Name>Thread</Name> - <Items> - <TechItem xsi:type="MonitorItem"> - <ID>50bae43f-8b1a-4279-9238-b976a0c72af3</ID> - <Left>1530</Left> - <Top>193.19911504424795</Top> - <Width>169</Width> - <Height>181.37610619469029</Height> - <Angle>0</Angle> - <ItemGuid>A8DB1D27-6B25-4FB4-A3F5-46A29BA51955</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>68eef943-2151-4df5-be61-044c3865606e</ID> - <Left>1172</Left> - <Top>145.78318584070678</Top> - <Width>175</Width> - <Height>167.827433628319</Height> - <Angle>0</Angle> - <ItemGuid>96B89605-F999-43FE-A1CD-2645BFB33A36</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>6be024c6-3d1b-4267-9b77-44473aba56b7</ID> - <Left>988</Left> - <Top>143.32300884955998</Top> - <Width>190</Width> - <Height>167.09734513274049</Height> - <Angle>0</Angle> - <ItemGuid>FC60060A-3736-4910-B41A-FF6DABDF0E9E</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>7c720f3b-00e1-49dd-92f9-fdd1e9686623</ID> - <Left>817</Left> - <Top>142.42035398230098</Top> - <Width>169</Width> - <Height>168.31858407079625</Height> - <Angle>0</Angle> - <ItemGuid>4CE6A82E-D841-4D33-BBB2-11F0743A441C</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>3ebd6759-521b-4ed1-a353-ee1ad7801f28</ID> - <Left>922</Left> - <Top>516.43362831858417</Top> - <Width>439</Width> - <Height>304.995575221239</Height> - <Angle>0</Angle> - <ItemGuid>D126DB23-784B-4F0C-8F88-D89A65A7549F</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>1460</Duration> - <Min>0</Min> - <Max>16384</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>1</DecimalPlaces> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>984b4126-3dda-4624-a79f-0646eb0e1358</ID> - <Left>465</Left> - <Top>515.420353982301</Top> - <Width>439</Width> - <Height>304.995575221239</Height> - <Angle>0</Angle> - <ItemGuid>10102BC3-0EAE-47FF-A8E5-8640780CAA3D</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>1516</Duration> - <Min>0</Min> - <Max>16384</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>1</DecimalPlaces> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>8ebc3ab7-a02d-4b12-93b3-2563443831d7</ID> - <Left>15</Left> - <Top>518.46017699115032</Top> - <Width>439</Width> - <Height>304.995575221239</Height> - <Angle>0</Angle> - <ItemGuid>C0BCCD5C-346B-4C4A-A080-39D28E9E1A0C</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>1398</Duration> - <Min>0</Min> - <Max>16384</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>1</DecimalPlaces> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>acafb268-5e97-4277-8dc8-173250a9e3f8</ID> - <Left>12</Left> - <Top>13.849557522123973</Top> - <Width>439</Width> - <Height>304.995575221239</Height> - <Angle>0</Angle> - <ItemGuid>9FBC5460-BA59-486B-8D85-BD7D8A959F98</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>1273</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>1</DecimalPlaces> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>3ccb1485-b0e9-4d36-a931-a1b3865edeaa</ID> - <Left>460</Left> - <Top>38.28761061946841</Top> - <Width>267</Width> - <Height>221.90707964601768</Height> - <Angle>0</Angle> - <ItemGuid>08d15ca1-d7d1-460f-8f37-42c37c287cd1</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>952.3546144121359</Speed> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>be4cb8d9-b516-4604-a6a5-1638cbc50251</ID> - <Left>860</Left> - <Top>-24.18584070796669</Top> - <Width>345</Width> - <Height>169.21681415929209</Height> - <Angle>0</Angle> - <ItemGuid>4CE6A82E-D841-4D33-BBB2-11F0743A441C</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>514</Duration> - <Min>0</Min> - <Max>100000</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>1</DecimalPlaces> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>75b99507-4eba-4b11-b52e-26732d4c5479</ID> - <Left>19</Left> - <Top>324.14159292035305</Top> - <Width>429</Width> - <Height>193.26548672566258</Height> - <Angle>0</Angle> - <ItemGuid>F1DF490B-0577-4FA7-ACA1-0EEF4F934E8F</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>1398</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>4</DecimalPlaces> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>a30e48de-be76-4230-92d0-d27d6f37b940</ID> - <Left>474</Left> - <Top>320.03097345132551</Top> - <Width>429</Width> - <Height>193.26548672566258</Height> - <Angle>0</Angle> - <ItemGuid>5F12B974-2C9E-4DDD-9B20-733251A5D7E6</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>1398</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>4</DecimalPlaces> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>5ac4b368-093a-4192-98d4-e9d24f229b13</ID> - <Left>928</Left> - <Top>321.64601769912122</Top> - <Width>429</Width> - <Height>193.26548672566258</Height> - <Angle>0</Angle> - <ItemGuid>84CF23C9-D20D-4C08-BE1D-80201FC43C06</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>1398</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>4</DecimalPlaces> - </TechItem> - <TechItem xsi:type="MonitorRecorderItem"> - <ID>9c34dc69-cfaa-48b4-9d02-8f0d9bba79dd</ID> - <Left>1303</Left> - <Top>34.380530973454768</Top> - <Width>176</Width> - <Height>83.05309734512457</Height> - <Angle>0</Angle> - <ColorNumber>-1</ColorNumber> - <SelectedMonitorsGuids> - <string>89B7B89D-8050-4188-B568-35B1910CFB6F</string> - <string>96B89605-F999-43FE-A1CD-2645BFB33A36</string> - <string>84CF23C9-D20D-4C08-BE1D-80201FC43C06</string> - <string>FC60060A-3736-4910-B41A-FF6DABDF0E9E</string> - <string>5F12B974-2C9E-4DDD-9B20-733251A5D7E6</string> - <string>9ADF7823-B293-4275-9999-F62474D246AA</string> - <string>4CE6A82E-D841-4D33-BBB2-11F0743A441C</string> - <string>F1DF490B-0577-4FA7-ACA1-0EEF4F934E8F</string> - </SelectedMonitorsGuids> - </TechItem> - </Items> - </MachineTechViewProjectTab> - <MachineTechViewProjectTab> - <Name>Dispensers</Name> - <Items> - <TechItem xsi:type="DispenserItem"> - <ID>dce78f33-c966-4848-8c6e-a4a01dbc7577</ID> - <Left>1322.1428571428571</Left> - <Top>214.15929203538531</Top> - <Width>159</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>2CC8E461-E91F-4D4C-A402-922477F06C87</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>1200</Speed> - <DisplayName>Dispenser 1</DisplayName> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>2d03fc19-0502-43e1-a3ff-4012a612112b</ID> - <Left>1149</Left> - <Top>218.48230088495342</Top> - <Width>159</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>C8D8FE90-0375-44A2-A6D1-E997789E065C</ItemGuid> - <ColorNumber>-16724737</ColorNumber> - <Speed>1200</Speed> - <DisplayName>Dispenser 2</DisplayName> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>81958374-3fa3-48b3-a554-5653fe1934b1</ID> - <Left>959</Left> - <Top>210.32743362830422</Top> - <Width>156</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>08ED9044-CAD6-4492-94B2-C07206E0164B</ItemGuid> - <ColorNumber>-65325</ColorNumber> - <Speed>1200</Speed> - <DisplayName>Dispenser 3</DisplayName> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>8fead411-7198-4428-a364-e32f3035ed94</ID> - <Left>775</Left> - <Top>206.42920353980952</Top> - <Width>159</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>179F34BB-3252-4D3A-965C-E6EB43D6FE7C</ItemGuid> - <ColorNumber>-524544</ColorNumber> - <Speed>1200</Speed> - <DisplayName>Dispenser 4</DisplayName> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>31bfa89f-e64d-4a3b-8585-c4a1b2e5a139</ID> - <Left>585</Left> - <Top>208.47345132741418</Top> - <Width>159</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>716B35CF-46E0-47D5-AF85-5233D212568F</ItemGuid> - <ColorNumber>-2108246</ColorNumber> - <Speed>1200</Speed> - <DisplayName>Dispenser 5</DisplayName> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>c2bff5f3-6dc9-4b07-87ba-9e3a5814804e</ID> - <Left>372</Left> - <Top>216.75221238937439</Top> - <Width>159</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>99528449-4D76-4874-AB95-522951560E01</ItemGuid> - <ColorNumber>-263685</ColorNumber> - <Speed>1200</Speed> - <DisplayName>Dispenser 6</DisplayName> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>071281a5-3569-4a62-8b68-7bea850a3c07</ID> - <Left>217</Left> - <Top>211.63716814158107</Top> - <Width>159</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>E8ED07E2-7C36-459C-B9E5-6A23A1E24F03</ItemGuid> - <ColorNumber>-723724</ColorNumber> - <Speed>1200</Speed> - <DisplayName>Dispenser 7</DisplayName> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>7b703b9a-a626-4ae5-8e31-fa1cfe5718f4</ID> - <Left>45</Left> - <Top>216.04867256635521</Top> - <Width>159</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>8A957565-4165-49F7-854D-D21F95FFBE1B</ItemGuid> - <ColorNumber>-724238</ColorNumber> - <Speed>1200</Speed> - <DisplayName>Dispenser 8</DisplayName> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>caca40a2-310c-452e-adcf-c28ee38f6bdc</ID> - <Left>1305</Left> - <Top>31.606194690259713</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid> - <ColorNumber>-15856114</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>af52d36f-27a2-4a31-8ceb-9c43fedbed22</ID> - <Left>1127</Left> - <Top>32.535398230081626</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> - <ColorNumber>-15293470</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>d40eada8-d22a-4521-bd2a-d998ed93106f</ID> - <Left>955</Left> - <Top>32.61946902653176</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid> - <ColorNumber>-1570857</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>b2d6364d-8b5c-43d2-8838-927c85b017b1</ID> - <Left>774</Left> - <Top>31.960176991142362</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid> - <ColorNumber>-1379575</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>3980e685-73b3-4af1-9593-9235be147322</ID> - <Left>596</Left> - <Top>32.889380530964274</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid> - <ColorNumber>-7763381</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>51465293-58d5-40a4-8302-81856f8b4f47</ID> - <Left>424</Left> - <Top>32.973451327414409</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>AF3FD56C-95BF-4DE1-8EDC-8426B0DB2A26</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>c2a8c5b2-891b-4f9f-862c-c1c294366c78</ID> - <Left>252</Left> - <Top>31.703539823006281</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>60DA9EA3-C8A6-4D41-8AD8-3EB1BAA79CC9</ItemGuid> - <ColorNumber>-8391822</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>9618e441-8973-4e16-a90b-06ce5798bd29</ID> - <Left>80</Left> - <Top>31.787610619456416</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>EF66F95A-E166-4FA2-B1AF-D6F55621817A</ItemGuid> - <ColorNumber>-2186185</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>bce8c8e8-a317-4991-9aa7-cd99a45d1509</ID> - <Left>28.22352941176473</Left> - <Top>682.03174474303751</Top> - <Width>247</Width> - <Height>122.24778761061873</Height> - <Angle>0</Angle> - <ItemGuid>66cc8510-db9c-4e13-9151-01e705ec04de</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>72a23702-31bb-4ab8-aee5-2a02bcb1270b</ID> - <Left>235.16470588235291</Left> - <Top>699.99460095802579</Top> - <Width>200</Width> - <Height>94.15929203539747</Height> - <Angle>0</Angle> - <ItemGuid>36ba0ba4-e41d-45ff-8f68-1699e00c7107</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="ControllerItem"> - <ID>2dd6ff17-e515-4d8f-814f-a9683f404a8e</ID> - <Left>140</Left> - <Top>867.73893805310092</Top> - <Width>160</Width> - <Height>85.49115044247776</Height> - <Angle>0</Angle> - <ItemGuid>78482AA4-3DF6-421F-944C-64328D3C3EF2</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <OptimalRangeMinimum>0</OptimalRangeMinimum> - <OptimalRangeMaximum>70</OptimalRangeMaximum> - <IsSetToDefault>true</IsSetToDefault> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>06843009-1da0-4811-8e77-50576d0edcb1</ID> - <Left>507</Left> - <Top>792.77433628318749</Top> - <Width>219</Width> - <Height>125.75221238938025</Height> - <Angle>0</Angle> - <ItemGuid>0c5dc1e9-da17-4ff8-86aa-6b39fd796ba9</ItemGuid> - <ColorNumber>-16777216</ColorNumber> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>935dddd0-0c6f-4766-8173-f9118006a12b</ID> - <Left>1303</Left> - <Top>475.87168141593065</Top> - <Width>160</Width> - <Height>124.6504424778754</Height> - <Angle>0</Angle> - <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid> - <ColorNumber>-15856114</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MultiGraphItem"> - <ID>97e39a59-dba8-4e42-a124-b37de9453baf</ID> - <Left>370</Left> - <Top>781.46902654866153</Top> - <Width>710</Width> - <Height>401.24778761063465</Height> - <Angle>0</Angle> - <ItemGuid>D023F15D-3555-48E9-A9E9-5DF99F60D791</ItemGuid> - <ColorNumber>0</ColorNumber> - <Duration>1956</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>2</DecimalPlaces> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>46bdfce3-1c69-45dd-bbe9-582d1ac1e6f2</ID> - <Left>1128</Left> - <Top>482.80530973451141</Top> - <Width>140</Width> - <Height>117.32300884955743</Height> - <Angle>0</Angle> - <ItemGuid>0FE216B2-A097-4F2C-B465-08593F2532B3</ItemGuid> - <ColorNumber>-15293470</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>429154a5-9a16-4423-85ca-ee4bae9aec3c</ID> - <Left>968</Left> - <Top>481.35398230088504</Top> - <Width>140</Width> - <Height>117.32300884955743</Height> - <Angle>0</Angle> - <ItemGuid>3271FD82-46D3-4789-B612-564967826C75</ItemGuid> - <ColorNumber>-1570857</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>0f6ab8e8-99a7-4468-bde8-690a63467688</ID> - <Left>766</Left> - <Top>476.07964601769811</Top> - <Width>140</Width> - <Height>117.32300884955743</Height> - <Angle>0</Angle> - <ItemGuid>FBB806E7-42FA-4BAA-BDA1-3B8B07913AAD</ItemGuid> - <ColorNumber>-1379575</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>bc0ac903-9c1f-4580-8b9e-670a76350473</ID> - <Left>586</Left> - <Top>474.38938053097161</Top> - <Width>140</Width> - <Height>117.32300884955743</Height> - <Angle>0</Angle> - <ItemGuid>436A22BB-AF79-4CB2-8A7D-DD4D9E54A81E</ItemGuid> - <ColorNumber>-7763381</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>f9c960b2-b93e-46d5-b892-30337c0b55af</ID> - <Left>391</Left> - <Top>474.87168141592781</Top> - <Width>140</Width> - <Height>117.32300884955743</Height> - <Angle>0</Angle> - <ItemGuid>89EA6CC8-5363-4BEC-A370-D906611087A7</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>5ac157ab-2d53-4307-bf0b-b069854701ac</ID> - <Left>226</Left> - <Top>471.66814159292005</Top> - <Width>140</Width> - <Height>117.32300884955743</Height> - <Angle>0</Angle> - <ItemGuid>D5EBE52B-E2DF-4C97-80B1-F111F6B15854</ItemGuid> - <ColorNumber>-8391822</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>65a19d7e-c524-48a0-bd70-28b99b113dd1</ID> - <Left>69</Left> - <Top>473.97787610619389</Top> - <Width>140</Width> - <Height>117.32300884955743</Height> - <Angle>0</Angle> - <ItemGuid>FE521D1B-A0EA-4FEA-AE64-33998A6CE138</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>5bf7a681-ee47-477e-8b47-ba7a2eb6e115</ID> - <Left>1130</Left> - <Top>624.9557522123913</Top> - <Width>144</Width> - <Height>80.495575221237516</Height> - <Angle>0</Angle> - <ItemGuid>3174ADCF-5793-4B5A-A3C6-B96E146A903D</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>29b17a4b-fd4e-49cc-a3cd-418730176bf7</ID> - <Left>969</Left> - <Top>625.95575221239</Top> - <Width>144</Width> - <Height>80.495575221237516</Height> - <Angle>0</Angle> - <ItemGuid>AD50C358-5BAF-4A2F-8593-51A22C85B3D1</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>21a5429f-c3a2-4e3b-ae77-c5538f30130d</ID> - <Left>775</Left> - <Top>623.66814159292062</Top> - <Width>144</Width> - <Height>82.535398230087083</Height> - <Angle>0</Angle> - <ItemGuid>E2F0FC31-CE7E-416B-ACEA-8EB6CA9B850B</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>96a46b0c-37b1-4457-93fb-b3dc301c5743</ID> - <Left>588</Left> - <Top>625.06637168141322</Top> - <Width>144</Width> - <Height>80.495575221237516</Height> - <Angle>0</Angle> - <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C09F</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>d4ad8603-9929-415f-9990-1869fcff36e4</ID> - <Left>1310</Left> - <Top>628.69469026548632</Top> - <Width>144</Width> - <Height>80.495575221237516</Height> - <Angle>0</Angle> - <ItemGuid>84682E90-6926-42AA-BF8C-2CCCF5C26C97</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="ValveItem"> - <ID>25249d78-ee37-42a8-b5aa-96f60e97c3ea</ID> - <Left>20.870588235294122</Left> - <Top>784.26605504587133</Top> - <Width>327</Width> - <Height>108.53097345133028</Height> - <Angle>0</Angle> - <ItemGuid>8B1FCBC3-FEEA-4F87-B56F-CE5D28B7ACA4</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>fc1d62f7-d13b-4a7b-8f9f-c687c987c7a9</ID> - <Left>1065</Left> - <Top>788.41592920352355</Top> - <Width>370</Width> - <Height>362.10619469026585</Height> - <Angle>0</Angle> - <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>1426</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>3</DecimalPlaces> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>cc99a514-1498-4b93-a4eb-4e0a2a2e9de6</ID> - <Left>628</Left> - <Top>765.4469026548752</Top> - <Width>394</Width> - <Height>372.88495575221242</Height> - <Angle>0</Angle> - <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>1282</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>1</DecimalPlaces> - </TechItem> - <TechItem xsi:type="ValveItem"> - <ID>cdddd48e-422d-48f4-8397-5032c3705fdb</ID> - <Left>1069</Left> - <Top>698.04867256637226</Top> - <Width>382</Width> - <Height>136.79203539823016</Height> - <Angle>0</Angle> - <ItemGuid>16C0F85C-0479-42F4-A67E-3E0CD3B23C2D</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>ee6d4c5a-ca5b-4557-8012-dacf700cdc08</ID> - <Left>231</Left> - <Top>624.06637168142413</Top> - <Width>144</Width> - <Height>80.495575221237516</Height> - <Angle>0</Angle> - <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C010</ItemGuid> - <ColorNumber>-8391822</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>20576bb2-202f-4170-9af5-f3c18b410112</ID> - <Left>77</Left> - <Top>624.46460176991513</Top> - <Width>144</Width> - <Height>80.495575221237516</Height> - <Angle>0</Angle> - <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C011</ItemGuid> - <ColorNumber>-2186185</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - </Items> - </MachineTechViewProjectTab> - <MachineTechViewProjectTab> - <Name>Thread insertion</Name> - <Items> - <TechItem xsi:type="MotorItem"> - <ID>443a977c-8e89-4a56-82e4-684bac7945c9</ID> - <Left>25</Left> - <Top>22.761061946902203</Top> - <Width>247</Width> - <Height>172.25663716814159</Height> - <Angle>0</Angle> - <ItemGuid>08d15ca1-d7d1-460f-8f37-42c37c287cd1</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>500</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>a821b716-cb7d-4951-84ee-e56955431099</ID> - <Left>355</Left> - <Top>20.592920353981697</Top> - <Width>260</Width> - <Height>153.00442477876106</Height> - <Angle>0</Angle> - <ItemGuid>b90a4e78-ebbf-44db-829b-949517d6400b</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>50</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>e36e321b-d48d-4199-a1ee-75ac18e9de1e</ID> - <Left>694</Left> - <Top>19.367256637167998</Top> - <Width>217</Width> - <Height>155.26106194690203</Height> - <Angle>0</Angle> - <ItemGuid>b7c1aea4-32c1-41cb-bca3-4aa665529b49</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>50</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>8790db03-4dfd-4d49-aec0-706babb55af9</ID> - <Left>364</Left> - <Top>222.16814159291846</Top> - <Width>240</Width> - <Height>172.30973451327589</Height> - <Angle>0</Angle> - <ItemGuid>2d3eaca5-4dfd-40d9-9d1f-aa4ae794eddc</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>500</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>69ebcb28-13d9-41b3-a9ef-b2be51584141</ID> - <Left>29</Left> - <Top>241.34955752210982</Top> - <Width>263</Width> - <Height>174.296460176989</Height> - <Angle>0</Angle> - <ItemGuid>c6099065-a735-4cc5-b575-c31a45bb9262</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>400</Speed> - </TechItem> - <TechItem xsi:type="ThreadMotionItem"> - <ID>4d562029-3fdf-40a4-a5a7-9a322253c912</ID> - <Left>1168</Left> - <Top>47.305309734517039</Top> - <Width>304</Width> - <Height>167.26548672566202</Height> - <Angle>0</Angle> - <ColorNumber>-1</ColorNumber> - <Speed>40</Speed> - </TechItem> - <TechItem xsi:type="BreakSensorItem"> - <ID>92607e12-2dd6-41c9-8f89-f051f386b734</ID> - <Left>1258</Left> - <Top>277.55752212389069</Top> - <Width>240</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>DCE08A06-6711-43AE-AB7C-EADD5AB70EE0</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>7b5b6896-f626-4e59-a5cf-2600e603c0f6</ID> - <Left>695</Left> - <Top>223.44247787610908</Top> - <Width>228</Width> - <Height>175.0353982300901</Height> - <Angle>0</Angle> - <ItemGuid>7b6d0a93-5a91-4e1f-af47-353afd8b5ea6</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>83.833754740833143</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>2052a2d3-843c-4a1c-87fd-acd0832fd1b9</ID> - <Left>81</Left> - <Top>542.88495575220634</Top> - <Width>220</Width> - <Height>168.473451327436</Height> - <Angle>0</Angle> - <ItemGuid>7c03f12f-ab2a-4421-8575-aefd6dec0001</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>1000</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>339b7d00-d688-41cf-926a-8171d5e62740</ID> - <Left>376</Left> - <Top>553.11061946903</Top> - <Width>240</Width> - <Height>159.84070796460173</Height> - <Angle>0</Angle> - <ItemGuid>f3b5076e-cba3-4ad2-b3cc-0c4e907bd9ef</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>98</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>7644a8f9-00a2-4e37-8f48-0667b1541114</ID> - <Left>1014</Left> - <Top>290.60619469026437</Top> - <Width>240</Width> - <Height>172.30973451327589</Height> - <Angle>0</Angle> - <ItemGuid>92237d83-9f85-48db-aa6f-2fc5c9e0d8cd</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>500</Speed> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>c706d31b-48b0-44cc-a9c4-11d3acdcf667</ID> - <Left>548</Left> - <Top>418.71652683599893</Top> - <Width>269</Width> - <Height>127.67256637168134</Height> - <Angle>0</Angle> - <ItemGuid>2a454081-bd5e-41de-ae5d-97aefe1d76de</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>7ccff69d-50f9-4e9b-a997-72a67917df5e</ID> - <Left>803</Left> - <Top>569.80530973451619</Top> - <Width>227</Width> - <Height>145.08849557522183</Height> - <Angle>0</Angle> - <ItemGuid>9c02effb-7deb-40a1-90c3-df1fb48e6431</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>30</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>a88a74cb-418b-4ed0-89ec-c42ff560528e</ID> - <Left>1107</Left> - <Top>573.87168141592883</Top> - <Width>227</Width> - <Height>145.08849557522183</Height> - <Angle>0</Angle> - <ItemGuid>a359e9d0-adcc-40a5-b3d9-b9cb26eca092</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>30</Speed> - </TechItem> - </Items> - </MachineTechViewProjectTab> - <MachineTechViewProjectTab> - <Name>Head graphs</Name> - <Items> - <TechItem xsi:type="SingleGraphItem"> - <ID>ffe980da-dbbe-4bac-9595-46f587e9df00</ID> - <Left>1</Left> - <Top>57.486725663716754</Top> - <Width>430</Width> - <Height>187.15486725663709</Height> - <Angle>0</Angle> - <ItemGuid>D7585119-4A42-4370-8F1E-F3E62553E588</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>2962</Duration> - <Min>0</Min> - <Max>300</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>2</DecimalPlaces> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>c4e19f7c-e6e9-4f45-987e-f124456b2529</ID> - <Left>784</Left> - <Top>57.265486725668495</Top> - <Width>412</Width> - <Height>195.38938053097343</Height> - <Angle>0</Angle> - <ItemGuid>A8DB1D27-6B25-4FB4-A3F5-46A29BA51955</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>2817</Duration> - <Min>0</Min> - <Max>300</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>3</DecimalPlaces> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>b8b24455-1c20-417d-bd78-5fe4c7e3d023</ID> - <Left>0</Left> - <Top>240.77433628319324</Top> - <Width>430</Width> - <Height>224.47345132743214</Height> - <Angle>0</Angle> - <ItemGuid>6C0C1AB0-3EE9-40D7-8424-A79436FBC804</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>2982</Duration> - <Min>0</Min> - <Max>300</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>2</DecimalPlaces> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>2129a0cd-454f-4834-8197-3b048bf4b978</ID> - <Left>779</Left> - <Top>253.09292035398954</Top> - <Width>414</Width> - <Height>208.6194690265487</Height> - <Angle>0</Angle> - <ItemGuid>098F7CAB-030C-46B0-B2B8-A85AF2253032</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>2949</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>2</DecimalPlaces> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>892fabb7-01fa-4b39-a19e-a557fafae0ac</ID> - <Left>3</Left> - <Top>465.50884955753315</Top> - <Width>423</Width> - <Height>226.97345132743362</Height> - <Angle>0</Angle> - <ItemGuid>DACEBF90-E2B4-4CC9-A973-B8B429AA0089</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>2628</Duration> - <Min>0</Min> - <Max>300</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>2</DecimalPlaces> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>4859974c-7224-42d5-97ca-0e2e549372f5</ID> - <Left>788</Left> - <Top>469.56194690266409</Top> - <Width>409</Width> - <Height>220.55752212389314</Height> - <Angle>0</Angle> - <ItemGuid>246C2551-5EFD-48E9-94F6-6313C5E5018F</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>3153</Duration> - <Min>0</Min> - <Max>300</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>2</DecimalPlaces> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>81b78212-14d8-4a66-bf3a-eeea9900e0d6</ID> - <Left>423</Left> - <Top>69.712389380530908</Top> - <Width>179</Width> - <Height>131.99999999999773</Height> - <Angle>0</Angle> - <ItemGuid>df38139e-0026-46bc-b72f-df5f9eec80f7</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>34c56855-114d-4c94-b8b7-16881430d626</ID> - <Left>1198</Left> - <Top>60.787610619475856</Top> - <Width>144</Width> - <Height>147.96017699114969</Height> - <Angle>0</Angle> - <ItemGuid>d59b64f7-a8cf-4a2b-935a-943ae35fb78c</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>0d35c220-41f5-49e8-99ba-72d5134e4c81</ID> - <Left>1200</Left> - <Top>269.79646017698923</Top> - <Width>148</Width> - <Height>154.90265486725662</Height> - <Angle>0</Angle> - <ItemGuid>9de55ec4-201f-4f62-9003-f63ebea06f8f</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>e72a263a-41c2-408c-ac98-7345c787a3b0</ID> - <Left>1204</Left> - <Top>471.31858407080483</Top> - <Width>148</Width> - <Height>160.278761061948</Height> - <Angle>0</Angle> - <ItemGuid>d28bfa3c-edce-4f19-a296-3da251fcc0e2</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>62fd293e-9461-4c91-a5b3-26ef7893f780</ID> - <Left>420</Left> - <Top>250.1769911504424</Top> - <Width>189</Width> - <Height>145.75221238937741</Height> - <Angle>0</Angle> - <ItemGuid>81a3ae80-f4ea-4857-bc4e-2055d3b5fbc7</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>10c62974-d2f9-4849-b88f-f223e04bacc6</ID> - <Left>435</Left> - <Top>474.43362831858008</Top> - <Width>178</Width> - <Height>153.6504424778766</Height> - <Angle>0</Angle> - <ItemGuid>16D0DEF7-A2E0-4163-9F4B-FBEC2573BCC7</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>37657a24-40d2-4c10-be0b-0587406d77bf</ID> - <Left>10</Left> - <Top>691.58849557522046</Top> - <Width>415</Width> - <Height>203.57522123893648</Height> - <Angle>0</Angle> - <ItemGuid>AFB7B6F7-8FFB-4A7F-B814-04F0C163CAA1</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>3153</Duration> - <Min>0</Min> - <Max>300</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>2</DecimalPlaces> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>9330a6be-17f1-4ecb-978d-719adf9fec1f</ID> - <Left>781</Left> - <Top>692.69911504425033</Top> - <Width>409</Width> - <Height>220.55752212389314</Height> - <Angle>0</Angle> - <ItemGuid>9A3877B2-9F98-4A5C-9A93-DECA2836FA8A</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>3153</Duration> - <Min>0</Min> - <Max>300</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>2</DecimalPlaces> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>3228b2ba-83f3-4eb2-a6d2-7200301758a4</ID> - <Left>1191</Left> - <Top>723.03539823007986</Top> - <Width>186</Width> - <Height>110.3451327433603</Height> - <Angle>0</Angle> - <ItemGuid>105ac1be-e6db-4a57-9f4a-bb9c780afd33</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>6fd0eeb3-6a2a-435f-a877-0c17c26c6692</ID> - <Left>411</Left> - <Top>727.73008849557368</Top> - <Width>204</Width> - <Height>114.92035398229848</Height> - <Angle>0</Angle> - <ItemGuid>9d403aad-157a-4128-874c-704da4ed9ac1</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>f9b4095c-4e87-41f2-955c-3b572ebee370</ID> - <Left>611</Left> - <Top>269.90265486725662</Top> - <Width>142</Width> - <Height>151.99115044247787</Height> - <Angle>0</Angle> - <ItemGuid>94574D69-46E1-4144-A8B5-D4BF0DA96D18</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone4</HeaterType> - <SetPoint>150</SetPoint> - <CurrentValue>150</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>150</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>4fa7a50d-5155-4785-95a0-508cd40fad4d</ID> - <Left>1360</Left> - <Top>77.818584070796476</Top> - <Width>140</Width> - <Height>168.77876106194691</Height> - <Angle>0</Angle> - <ItemGuid>27E7BB74-81C3-4EF2-80AE-962F111C441F</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone1</HeaterType> - <SetPoint>80</SetPoint> - <CurrentValue>80.02</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>80</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>9da56601-7b5b-4f0f-afbf-2b31970b104f</ID> - <Left>1352</Left> - <Top>292.19469026548552</Top> - <Width>166</Width> - <Height>148.95132743362956</Height> - <Angle>0</Angle> - <ItemGuid>8E764A14-0F84-4FEC-928B-32A2509CAD57</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone3</HeaterType> - <SetPoint>150</SetPoint> - <CurrentValue>149.94</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>150</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>b700e59d-f923-4f13-9dcc-942050548c22</ID> - <Left>1359</Left> - <Top>501.84513274336314</Top> - <Width>160</Width> - <Height>139.92920353982277</Height> - <Angle>0</Angle> - <ItemGuid>D6771DF4-771E-4D62-B6BA-BDE361C0A0F3</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone5</HeaterType> - <SetPoint>150</SetPoint> - <CurrentValue>150</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>150</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>97bf8fa2-b07f-4f0e-87ac-820ea52d236e</ID> - <Left>1358</Left> - <Top>716.707964601771</Top> - <Width>160</Width> - <Height>128.73451327433531</Height> - <Angle>0</Angle> - <ItemGuid>42A62A48-F1D5-4BB6-AFEA-6A7DF6DCF626</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>MixerHeater</HeaterType> - <SetPoint>80</SetPoint> - <CurrentValue>80</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>80</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>3941a557-05e6-4c1b-bb98-4f2a59892431</ID> - <Left>606</Left> - <Top>66.234513274336223</Top> - <Width>155</Width> - <Height>157.05752212389382</Height> - <Angle>0</Angle> - <ItemGuid>B4EE8CC0-EE2B-4ABE-BF09-9226860E756B</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone2</HeaterType> - <SetPoint>120</SetPoint> - <CurrentValue>119.97</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>120</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>3020fbc5-305e-4adf-9f1e-d7a48168e2e7</ID> - <Left>628</Left> - <Top>488.76991150442484</Top> - <Width>133</Width> - <Height>155.03097345132744</Height> - <Angle>0</Angle> - <ItemGuid>D2B6CAA0-055E-4871-8D91-A5370F1ACB22</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone6</HeaterType> - <SetPoint>160</SetPoint> - <CurrentValue>159.97</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>160</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>a4049a51-7417-4eab-8bc1-837574307e93</ID> - <Left>599</Left> - <Top>716.27876106194685</Top> - <Width>161</Width> - <Height>143.34955752212409</Height> - <Angle>0</Angle> - <ItemGuid>6D6CFA18-5922-4AFE-84B3-2721CE128681</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>DryerAirHeater</HeaterType> - <SetPoint>190</SetPoint> - <CurrentValue>190.13</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>190</SetPoint> - </TechItem> - </Items> - </MachineTechViewProjectTab> - <MachineTechViewProjectTab> - <Name>waste</Name> - <Items> - <TechItem xsi:type="DigitalOutItem"> - <ID>bb9bf273-0a3d-4202-98ce-37a5f206ed75</ID> - <Left>119</Left> - <Top>68.898230088495609</Top> - <Width>339</Width> - <Height>184.4159292035398</Height> - <Angle>0</Angle> - <ItemGuid>7e1f53ec-8176-4efa-ac3d-c8f2436e60d1</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>59678a51-f995-4952-b250-e449f1fcbeac</ID> - <Left>468</Left> - <Top>80.336283185839477</Top> - <Width>280</Width> - <Height>166.17699115044252</Height> - <Angle>0</Angle> - <ItemGuid>78db28d0-0407-4942-bb62-c44da81c4f9e</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="DigitalInItem"> - <ID>8f9ff579-0e9d-4f48-8ed0-6fa563f2aba7</ID> - <Left>873</Left> - <Top>63.831858407079665</Top> - <Width>174</Width> - <Height>133.75221238938059</Height> - <Angle>0</Angle> - <ItemGuid>06bd7c0b-5aef-445a-86c0-853becf8594b</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="DigitalInItem"> - <ID>70d1bd1e-acdb-436a-b205-6eeb9d137120</ID> - <Left>1070</Left> - <Top>70.106194690265909</Top> - <Width>221</Width> - <Height>123.61946902654864</Height> - <Angle>0</Angle> - <ItemGuid>4048bf02-27dc-4049-9284-fe913a7e0ebe</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="DigitalInItem"> - <ID>dcc7ce16-5b89-4ff8-acd5-7fb0b9ebb6d1</ID> - <Left>877</Left> - <Top>248.24778761061947</Top> - <Width>186</Width> - <Height>126.65929203539827</Height> - <Angle>0</Angle> - <ItemGuid>00ea1771-efee-4f3e-a0d2-8b2a4214e9fd</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>2b99bbf7-94da-4bb2-acc9-91b35e543c5d</ID> - <Left>897</Left> - <Top>358.69469026548683</Top> - <Width>147</Width> - <Height>69.9159292035398</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>Waste lower presence</Text> - </TechItem> - <TechItem xsi:type="DigitalInItem"> - <ID>c150533c-abe4-4edf-b6ad-fa475b133142</ID> - <Left>1112</Left> - <Top>253.66814159291806</Top> - <Width>186</Width> - <Height>126.65929203539827</Height> - <Angle>0</Angle> - <ItemGuid>d2f266e3-779b-4dfe-b513-26ce61c529a4</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>d96f2a6d-0ccb-401e-8931-09086ca81fae</ID> - <Left>1143</Left> - <Top>366.78318584070507</Top> - <Width>147</Width> - <Height>69.9159292035398</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>Waste middle presence</Text> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>bb9847ba-9671-4613-bf23-a0c637ebc79d</ID> - <Left>151</Left> - <Top>271.55309734513281</Top> - <Width>200</Width> - <Height>63.836283185840671</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>pump</Text> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>d13a2df4-3f54-4c31-8f9a-ee7810fb6af5</ID> - <Left>504</Left> - <Top>283.71238938053096</Top> - <Width>192</Width> - <Height>67.88938053097354</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>valve</Text> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>fbe2670f-6d9b-4361-9332-1ceb1692c91a</ID> - <Left>108</Left> - <Top>484.61946902655154</Top> - <Width>356</Width> - <Height>208.10619469026472</Height> - <Angle>0</Angle> - <ItemGuid>78db28d0-0407-4942-bb62-c44da81c4f9e</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - </Items> - </MachineTechViewProjectTab> - <MachineTechViewProjectTab> - <Name>disp</Name> - <Items> - <TechItem xsi:type="SingleGraphItem"> - <ID>f9531a72-3742-47a7-86bb-b589f8b3eb55</ID> - <Left>123</Left> - <Top>128.33628318584061</Top> - <Width>390</Width> - <Height>249.67699115047321</Height> - <Angle>0</Angle> - <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>3600</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>3</DecimalPlaces> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>aae29286-81b3-476a-9f58-c0fd246cae96</ID> - <Left>880</Left> - <Top>158.81415929204155</Top> - <Width>442</Width> - <Height>241.88495575221771</Height> - <Angle>0</Angle> - <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>3600</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>3</DecimalPlaces> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>7d94c7c4-1288-4f9d-b0e6-a06794829642</ID> - <Left>1055</Left> - <Top>14.181415929203524</Top> - <Width>161</Width> - <Height>111.46017699115049</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>Y</Text> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>c95f9ad1-b607-4606-8217-400bea76f3d6</ID> - <Left>384</Left> - <Top>23.991150442480944</Top> - <Width>161</Width> - <Height>111.46017699115049</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>C</Text> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>8f141fa5-fb24-4557-adcf-a6aa55a28fb4</ID> - <Left>121</Left> - <Top>-8.8495575221214722</Top> - <Width>169</Width> - <Height>132.73893805309734</Height> - <Angle>0</Angle> - <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>3</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>7eab018a-ef43-4bca-a6cf-857d69767bba</ID> - <Left>839</Left> - <Top>-4.7079646017762684</Top> - <Width>169</Width> - <Height>132.73893805309734</Height> - <Angle>0</Angle> - <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>3</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorRecorderItem"> - <ID>2a9e89d4-5d60-4a83-9527-cb77fdf35c14</ID> - <Left>1276</Left> - <Top>22.287610619469035</Top> - <Width>187</Width> - <Height>102.34070796460179</Height> - <Angle>0</Angle> - <ColorNumber>-1</ColorNumber> - <SelectedMonitorsGuids> - <string>1F0F907A-EC16-4386-AFC8-B2B156F2A822</string> - <string>A499E5E0-A812-4032-8F96-B38C6762C4BD</string> - <string>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</string> - <string>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</string> - <string>19645882-6587-4A50-BD85-AF06617DC654</string> - <string>96B89605-F999-43FE-A1CD-2645BFB33A36</string> - <string>84CF23C9-D20D-4C08-BE1D-80201FC43C06</string> - <string>C0BCCD5C-346B-4C4A-A080-39D28E9E1A0C</string> - <string>10102BC3-0EAE-47FF-A8E5-8640780CAA3D</string> - <string>FC60060A-3736-4910-B41A-FF6DABDF0E9E</string> - <string>5F12B974-2C9E-4DDD-9B20-733251A5D7E6</string> - <string>D126DB23-784B-4F0C-8F88-D89A65A7549F</string> - </SelectedMonitorsGuids> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>6d2e7962-b3ae-4682-b20e-9654f48dcffe</ID> - <Left>587</Left> - <Top>5.0619469026548813</Top> - <Width>155</Width> - <Height>131.72566371681415</Height> - <Angle>0</Angle> - <ItemGuid>2CC8E461-E91F-4D4C-A402-922477F06C87</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>500</Speed> - <DisplayName>Dispenser 1</DisplayName> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>5ee2718f-f068-427b-a31e-d586c7d7682c</ID> - <Left>131</Left> - <Top>552.94690265486338</Top> - <Width>390</Width> - <Height>249.67699115047321</Height> - <Angle>0</Angle> - <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>3600</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>3</DecimalPlaces> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>1c254a92-c075-453f-9667-cdcc91cf8e6a</ID> - <Left>399</Left> - <Top>455.67256637168265</Top> - <Width>161</Width> - <Height>111.46017699115049</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>K</Text> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>d1087b1a-c36b-4242-96f5-07c2bb602cc4</ID> - <Left>145</Left> - <Top>409.52212389380446</Top> - <Width>169</Width> - <Height>132.73893805309734</Height> - <Angle>0</Angle> - <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>3</DecimalPoints> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>53fe93a2-88a5-4d4d-9cd5-eb4d8a8fefae</ID> - <Left>604</Left> - <Top>561.16371681414739</Top> - <Width>390</Width> - <Height>249.67699115047321</Height> - <Angle>0</Angle> - <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>3600</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>3</DecimalPlaces> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>0bef6e9d-6da0-4f06-9e1a-c00142bde4c1</ID> - <Left>832</Left> - <Top>440.91150442477635</Top> - <Width>161</Width> - <Height>111.46017699115049</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>M</Text> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>762c5a97-a3bc-45b4-aa9f-0b50afa9cb9b</ID> - <Left>633</Left> - <Top>434.0132743362783</Top> - <Width>169</Width> - <Height>132.73893805309734</Height> - <Angle>0</Angle> - <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>3</DecimalPoints> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>be584f80-3250-494c-87fc-250d6deae051</ID> - <Left>1045</Left> - <Top>559.4070796459921</Top> - <Width>390</Width> - <Height>249.67699115047321</Height> - <Angle>0</Angle> - <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>3600</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>3</DecimalPlaces> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>39f6a02c-c4d9-47d0-b92d-bdea0ed5d3ce</ID> - <Left>1056</Left> - <Top>435.43805309733875</Top> - <Width>169</Width> - <Height>132.73893805309734</Height> - <Angle>0</Angle> - <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>3</DecimalPoints> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>5b924929-9b16-4598-94cc-b2f4bca26798</ID> - <Left>1304</Left> - <Top>448.0884955752224</Top> - <Width>161</Width> - <Height>111.46017699115049</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>TI</Text> - </TechItem> - <TechItem xsi:type="ValveItem"> - <ID>89ae1fa5-1ad1-469e-ae76-0a29c35805cd</ID> - <Left>588</Left> - <Top>317.1504424778762</Top> - <Width>283</Width> - <Height>74.982300884955748</Height> - <Angle>0</Angle> - <ItemGuid>E144A221-4859-4DC3-9A7E-4A2969FB0826</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="ValveItem"> - <ID>c218cf34-74c2-41bb-8c3b-3030abce451a</ID> - <Left>1363</Left> - <Top>384.02654867256643</Top> - <Width>156</Width> - <Height>94.234513274336337</Height> - <Angle>0</Angle> - <ItemGuid>E144A221-4859-4DC3-9A7E-4A2969FB0826</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="ValveItem"> - <ID>75af30c6-d7f8-4745-bfb5-d6dc5d50479a</ID> - <Left>767</Left> - <Top>362.74778761061958</Top> - <Width>283</Width> - <Height>74.982300884955748</Height> - <Angle>0</Angle> - <ItemGuid>E144A221-4859-4DC3-9A7E-4A2969FB0826</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>df1fd958-fd8a-4b00-98e1-679455494d60</ID> - <Left>309</Left> - <Top>13.168141592920392</Top> - <Width>112</Width> - <Height>107.40707964601768</Height> - <Angle>0</Angle> - <ItemGuid>3174ADCF-5793-4B5A-A3C6-B96E146A903D</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>f07225b3-1522-4cb6-9ba8-5b9697f05467</ID> - <Left>1180</Left> - <Top>60.7920353982301</Top> - <Width>102</Width> - <Height>88.1548672566372</Height> - <Angle>0</Angle> - <ItemGuid>E2F0FC31-CE7E-416B-ACEA-8EB6CA9B850B</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>45b87322-e1f5-42eb-88c6-71c2eeb2899a</ID> - <Left>1258</Left> - <Top>463.06194690265494</Top> - <Width>88</Width> - <Height>75.995575221239</Height> - <Angle>0</Angle> - <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C09F</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>0c1c25e8-3ce3-4994-bbb9-bd6b2367a413</ID> - <Left>810</Left> - <Top>462.04867256637175</Top> - <Width>77</Width> - <Height>80.048672566371636</Height> - <Angle>0</Angle> - <ItemGuid>AD50C358-5BAF-4A2F-8593-51A22C85B3D1</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>fa2f697e-b229-418a-bae6-78b92bf0458b</ID> - <Left>336</Left> - <Top>428.61061946902663</Top> - <Width>95</Width> - <Height>96.261061946902657</Height> - <Angle>0</Angle> - <ItemGuid>84682E90-6926-42AA-BF8C-2CCCF5C26C97</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - </Items> - </MachineTechViewProjectTab> - <MachineTechViewProjectTab> - <Name>Priming</Name> - <Items> - <TechItem xsi:type="MonitorItem"> - <ID>ea45a516-9dac-4c9a-9261-0c44e22aa065</ID> - <Left>808</Left> - <Top>155.02654867256638</Top> - <Width>219</Width> - <Height>200.62831858407088</Height> - <Angle>0</Angle> - <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>3e2cb7dc-a5f3-4ba6-a520-2bae8ff0e4a8</ID> - <Left>832</Left> - <Top>451.91592920353986</Top> - <Width>332</Width> - <Height>326.27433628318596</Height> - <Angle>0</Angle> - <ItemGuid>C8D8FE90-0375-44A2-A6D1-E997789E065C</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>1200</Speed> - <DisplayName>Dispenser 2</DisplayName> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>6f8dfd8d-ed50-4923-b908-e0b5bc5d6ae5</ID> - <Left>154</Left> - <Top>131.72123893805315</Top> - <Width>474</Width> - <Height>410.37610619469024</Height> - <Angle>0</Angle> - <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>1942</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>1</DecimalPlaces> - </TechItem> - <TechItem xsi:type="ValveItem"> - <ID>604e031b-89c3-4c9d-90ef-7b861a77e5e0</ID> - <Left>243</Left> - <Top>595.80088495575228</Top> - <Width>497</Width> - <Height>189.48230088495575</Height> - <Angle>0</Angle> - <ItemGuid>8B1FCBC3-FEEA-4F87-B56F-CE5D28B7ACA4</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>c414ae0e-323a-48c1-9165-2c05cc4234c6</ID> - <Left>1291</Left> - <Top>584.65486725663732</Top> - <Width>200</Width> - <Height>171.24336283185835</Height> - <Angle>0</Angle> - <ItemGuid>0bd10306-2944-4cda-bc59-0264da2883d2</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - </Items> - </MachineTechViewProjectTab> - </Tabs> - <SelectedTabIndex>0</SelectedTabIndex> -</MachineTechViewProject>
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/technician view files/new head.tpf b/Software/Stubs Collection/stubs/technician view files/new head.tpf deleted file mode 100644 index 2ae59d2ed..000000000 --- a/Software/Stubs Collection/stubs/technician view files/new head.tpf +++ /dev/null @@ -1,3096 +0,0 @@ -<?xml version="1.0"?> -<MachineTechViewProject xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> - <Items /> - <Tabs> - <MachineTechViewProjectTab> - <Name>Temperatures</Name> - <Items> - <TechItem xsi:type="DigitalOutItem"> - <ID>e4892498-fa1a-413c-9dd8-633efaade51c</ID> - <Left>415</Left> - <Top>692.74336283185824</Top> - <Width>160</Width> - <Height>102.34070796460173</Height> - <Angle>0</Angle> - <ItemGuid>6b9cba1d-4acf-4992-97ad-e422bca6ada2</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>a15665e3-af39-42d8-8c06-97d770632e10</ID> - <Left>928</Left> - <Top>593.77433628318579</Top> - <Width>207</Width> - <Height>184.4159292035398</Height> - <Angle>0</Angle> - <ItemGuid>6D6CFA18-5922-4AFE-84B3-2721CE128681</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>DryerAirHeater</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>176.1</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>0ac64716-d30c-489b-939e-a26d06445866</ID> - <Left>828</Left> - <Top>682.88053097345</Top> - <Width>130</Width> - <Height>100.31415929203541</Height> - <Angle>0</Angle> - <ItemGuid>A5DFC2DB-3B36-4377-96A0-D492CE785C00</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>DryerMainHeater</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>208.58999999999998</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>181796d8-64f6-420a-8f37-9af9df67d6a9</ID> - <Left>717</Left> - <Top>684.46902654867324</Top> - <Width>127</Width> - <Height>101.3274336283186</Height> - <Angle>0</Angle> - <ItemGuid>86808B48-B7F9-43AD-840E-2A6A5987C305</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>DryerSecondaryHeater</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>209.10999999999999</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>fd2bb3a3-a411-470d-bde7-0beaf84da059</ID> - <Left>931</Left> - <Top>83.08407079646031</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>8E764A14-0F84-4FEC-928B-32A2509CAD57</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone3</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>96.71</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>7e8dd386-cca6-4d07-8a3e-af5403756002</ID> - <Left>1106</Left> - <Top>88.1504424778762</Top> - <Width>200</Width> - <Height>187.45575221238937</Height> - <Angle>0</Angle> - <ItemGuid>B4EE8CC0-EE2B-4ABE-BF09-9226860E756B</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone2</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>88.699999999999989</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>32a91e5f-27c8-490d-b187-8e39b6626a13</ID> - <Left>1311</Left> - <Top>89.163716814159329</Top> - <Width>157</Width> - <Height>194.54867256637175</Height> - <Angle>0</Angle> - <ItemGuid>27E7BB74-81C3-4EF2-80AE-962F111C441F</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone1</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>76.08</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>c844235a-8a29-4c2e-a964-e8f546d2ced7</ID> - <Left>1140</Left> - <Top>588.70796460177</Top> - <Width>173</Width> - <Height>183.40265486725662</Height> - <Angle>0</Angle> - <ItemGuid>42A62A48-F1D5-4BB6-AFEA-6A7DF6DCF626</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>MixerHeater</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>78.37</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>45b121b5-cf7c-41f7-8089-6d4d6b1ed2c8</ID> - <Left>751</Left> - <Top>80.420353982302458</Top> - <Width>169</Width> - <Height>197.27876106194645</Height> - <Angle>0</Angle> - <ItemGuid>94574D69-46E1-4144-A8B5-D4BF0DA96D18</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone4</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>40.71</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>e6b3eb18-482b-450e-b8a8-d2ac6bba4fd4</ID> - <Left>547</Left> - <Top>85.482300884952679</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>D6771DF4-771E-4D62-B6BA-BDE361C0A0F3</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone5</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>0</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>efff2e67-e3a3-4667-9208-4704707d7cda</ID> - <Left>353</Left> - <Top>86.69911504424698</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>D2B6CAA0-055E-4871-8D91-A5370F1ACB22</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone6</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>46.809999999999995</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>f9936dba-cef8-41e3-a715-eb629dca1870</ID> - <Left>265</Left> - <Top>683.95575221238948</Top> - <Width>131</Width> - <Height>109.43362831858394</Height> - <Angle>0</Angle> - <ItemGuid>1778C1A7-AFB5-42F9-9E00-E80D30D9FC0A</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>5f2610dc-3b9d-4302-b8f5-77a5e1c73b8c</ID> - <Left>1027.9999999999973</Left> - <Top>291.07079646017547</Top> - <Width>44</Width> - <Height>42.557522123893705</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>D</Text> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>eadb5257-47a2-4336-a72a-f2d157fe70cb</ID> - <Left>907.99999999999909</Left> - <Top>295.35840707964616</Top> - <Width>44</Width> - <Height>42.557522123893705</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>F</Text> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>6c59af66-169a-46e0-89ae-a81e3e619043</ID> - <Left>785.00000000000159</Left> - <Top>288.5000000000004</Top> - <Width>44</Width> - <Height>42.557522123893705</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>I</Text> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>3b32b9a8-f300-443f-950e-c49f81678bac</ID> - <Left>624.99999999999966</Left> - <Top>285.86725663716874</Top> - <Width>44</Width> - <Height>42.557522123893705</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>L</Text> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>f6d44793-ed44-46ed-8854-eacbc11af10c</ID> - <Left>569</Left> - <Top>688.00884955752213</Top> - <Width>155</Width> - <Height>96.261061946902714</Height> - <Angle>0</Angle> - <ItemGuid>df38139e-0026-46bc-b72f-df5f9eec80f7</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="MonitorRecorderItem"> - <ID>43793f93-da64-4409-b583-bca498f641e6</ID> - <Left>1308</Left> - <Top>656.59734513274338</Top> - <Width>203</Width> - <Height>107.40707964601774</Height> - <Angle>0</Angle> - <ColorNumber>-1</ColorNumber> - <SelectedMonitorsGuids /> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>be9db1fd-d408-4f1c-a15a-d6ffe58fafb6</ID> - <Left>1292</Left> - <Top>343.56637168141606</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>188285E5-1493-4BED-8269-91743770A631</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone7</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>6.59</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>f129ea0d-9abb-437f-928e-1cd1f569db2a</ID> - <Left>1190.0000000000025</Left> - <Top>294.69026548672929</Top> - <Width>39</Width> - <Height>38.504424778760836</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>C</Text> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>217c677a-3e11-4a7c-959b-616dae1259dd</ID> - <Left>1369</Left> - <Top>295.87168141592934</Top> - <Width>44</Width> - <Height>42.557522123893705</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>A</Text> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>381f67cf-b7c6-4f6d-b089-37130798a5d8</ID> - <Left>1107</Left> - <Top>342.55309734513293</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>461FA2D7-1918-4958-AAA7-37A1A329FA12</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone8</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>48.22</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>3c923a93-4d15-4bbc-b1b3-be1876a77cfc</ID> - <Left>924</Left> - <Top>343.56637168141606</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>63E2AFE0-0746-4AAB-AA74-C26EC1F282AE</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone9</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>47.269999999999996</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>26e078e6-df8c-4fbf-b10e-4b3f7c7e9500</ID> - <Left>359</Left> - <Top>342.55309734513304</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>2D578A37-D808-40D0-ACE4-4A868EDD6BDC</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone12</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>39.64</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>7a8c3948-bb3d-4eb1-9276-315d34038f91</ID> - <Left>550</Left> - <Top>343.56637168141611</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>D41BBB23-6EB5-4743-89DB-9191000B475F</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone11</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>45.449999999999996</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>f7d4c8ac-28cb-4779-83ef-3ede5e5a612c</ID> - <Left>738</Left> - <Top>344.57964601769908</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>B4D0A1C8-711C-49A9-82A3-B5B9F35FC131</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone10</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>48.459999999999994</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="ProcessParametersItem"> - <ID>120a9bea-5b5a-4ba4-92f5-40135f49a344</ID> - <Left>6</Left> - <Top>535.07522123893818</Top> - <Width>338</Width> - <Height>137.80530973451323</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <ProcessParameters> - <ID>0</ID> - <Guid>674d92c5-e6f8-4a62-bc62-b8e2fe0882a0</Guid> - <LastUpdated>2020-01-14T07:44:15.1425366Z</LastUpdated> - <Name>Process parameters 2</Name> - <DyeingSpeed>0</DyeingSpeed> - <MinInkUptake>0</MinInkUptake> - <MaxInkUptake>0</MaxInkUptake> - <FeederTension>0</FeederTension> - <PullerTension>0</PullerTension> - <WinderTension>0</WinderTension> - <MixerTemp>0</MixerTemp> - <HeadZone1Temp>0</HeadZone1Temp> - <HeadZone2Temp>0</HeadZone2Temp> - <HeadZone3Temp>0</HeadZone3Temp> - <HeadZone4Temp>0</HeadZone4Temp> - <HeadZone5Temp>0</HeadZone5Temp> - <HeadZone6Temp>0</HeadZone6Temp> - <DryerAirFlow>7</DryerAirFlow> - <DryerZone1Temp>0</DryerZone1Temp> - <DryerZone2Temp>0</DryerZone2Temp> - <DryerZone3Temp>0</DryerZone3Temp> - <DryerBufferLength>0</DryerBufferLength> - <HeadAirFlow>7</HeadAirFlow> - <TableIndex>0</TableIndex> - <HeadZone7Temp>0</HeadZone7Temp> - <HeadZone8Temp>0</HeadZone8Temp> - <HeadZone9Temp>0</HeadZone9Temp> - <HeadZone10Temp>0</HeadZone10Temp> - <HeadZone11Temp>0</HeadZone11Temp> - <HeadZone12Temp>0</HeadZone12Temp> - <RBlowerFlow>0</RBlowerFlow> - <RBlowerTemp>0</RBlowerTemp> - <LBlowerFlow>0</LBlowerFlow> - <LBlowerTemp>0</LBlowerTemp> - <PressureBuildUp>0</PressureBuildUp> - </ProcessParameters> - <ParametersIndices> - <ParameterIndex> - <Name>Name</Name> - <Index>0</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dyeing Speed</Name> - <Index>1</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Min Ink Uptake</Name> - <Index>2</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Max Ink Uptake</Name> - <Index>3</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Feeder Tension</Name> - <Index>4</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Puller Tension</Name> - <Index>5</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Winder Tension</Name> - <Index>6</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Mixer Temp</Name> - <Index>7</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 1 Temp</Name> - <Index>8</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 2 Temp</Name> - <Index>9</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 3 Temp</Name> - <Index>10</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 4 Temp</Name> - <Index>11</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 5 Temp</Name> - <Index>12</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 6 Temp</Name> - <Index>13</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Air Flow</Name> - <Index>14</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Zone 1 Temp</Name> - <Index>15</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Zone 2 Temp</Name> - <Index>16</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Zone 3 Temp</Name> - <Index>17</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Buffer Length</Name> - <Index>18</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Air Flow</Name> - <Index>19</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Process Parameters Tables Group Guid</Name> - <Index>20</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Table Index</Name> - <Index>21</Index> - </ParameterIndex> - </ParametersIndices> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>e502555c-95b0-4688-b5e3-8becb30fc62c</ID> - <Left>1458.875</Left> - <Top>91.7821782178217</Top> - <Width>200</Width> - <Height>187.45575221238937</Height> - <Angle>0</Angle> - <ItemGuid>F8C1BA7F-F6DF-414D-BAF5-D4CB292F91F6</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeadCoverHeater1</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>174.69</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>0f7a35fc-e363-45b2-948d-ba66f91e4f0d</ID> - <Left>1457.8333333333333</Left> - <Top>344.58910891089096</Top> - <Width>200</Width> - <Height>187.45575221238937</Height> - <Angle>0</Angle> - <ItemGuid>F39B952A-6194-4055-A5CB-A3421BFE0F9B</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeadCoverHeater2</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>174.95999999999998</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>0214c2bd-98e2-4435-b55f-ec165b0782dd</ID> - <Left>532</Left> - <Top>587.69469026548677</Top> - <Width>163</Width> - <Height>77.008849557522126</Height> - <Angle>0</Angle> - <ItemGuid>FE0D0A56-5795-4C5A-8E09-939FBB35C441</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>387e9a45-e608-47b8-9f3c-5572d0544e41</ID> - <Left>708</Left> - <Top>584.65486725663732</Top> - <Width>168</Width> - <Height>84.101769911504334</Height> - <Angle>0</Angle> - <ItemGuid>94F3E5A1-413E-4EA0-BDE1-F0625BFF7910</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="BlowerItem"> - <ID>18f62f2f-dbc0-4a3e-8af6-efdffc9562a5</ID> - <Left>12</Left> - <Top>699.86283185840716</Top> - <Width>234</Width> - <Height>96.2610619469026</Height> - <Angle>0</Angle> - <ItemGuid>B6FE07F8-2435-495D-ABFE-358C76812413</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>cb7b89a1-cdb4-408e-acc8-40e8dcb8d6ac</ID> - <Left>7</Left> - <Top>5.995575221238937</Top> - <Width>142</Width> - <Height>84.101769911504391</Height> - <Angle>0</Angle> - <ItemGuid>9F98B9D3-F989-4D03-90E8-721671835E0B</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>6be6ca7d-3ca6-4206-9c67-415174b71ace</ID> - <Left>168</Left> - <Top>7.3893805309738809</Top> - <Width>146</Width> - <Height>83.088495575221259</Height> - <Angle>0</Angle> - <ItemGuid>D59EFB38-79D9-446C-BCB5-92D8FDA900E4</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>2dca972d-3c41-4b07-a047-b63a23470a7e</ID> - <Left>347</Left> - <Top>574.92035398230325</Top> - <Width>160</Width> - <Height>102.34070796460173</Height> - <Angle>0</Angle> - <ItemGuid>75f69efe-1c7e-4015-a6eb-2686d4f67a67</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="ProcessParametersItem"> - <ID>d2e09fbf-2ac8-4c32-a4f5-45e50e305098</ID> - <Left>1016</Left> - <Top>821.96460176991263</Top> - <Width>361</Width> - <Height>233.95575221238948</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <ProcessParameters> - <ID>0</ID> - <Guid>9b265a7c-cc48-4c5a-abed-dfa8c8e3099f</Guid> - <LastUpdated>2020-02-09T13:11:03.3185652Z</LastUpdated> - <Name>Process parameters 2</Name> - <DyeingSpeed>0</DyeingSpeed> - <MinInkUptake>0</MinInkUptake> - <MaxInkUptake>0</MaxInkUptake> - <FeederTension>0</FeederTension> - <PullerTension>0</PullerTension> - <WinderTension>0</WinderTension> - <MixerTemp>0</MixerTemp> - <HeadZone1Temp>0</HeadZone1Temp> - <HeadZone2Temp>0</HeadZone2Temp> - <HeadZone3Temp>0</HeadZone3Temp> - <HeadZone4Temp>0</HeadZone4Temp> - <HeadZone5Temp>0</HeadZone5Temp> - <HeadZone6Temp>0</HeadZone6Temp> - <DryerAirFlow>0</DryerAirFlow> - <DryerZone1Temp>100</DryerZone1Temp> - <DryerZone2Temp>0</DryerZone2Temp> - <DryerZone3Temp>0</DryerZone3Temp> - <DryerBufferLength>0</DryerBufferLength> - <HeadAirFlow>0</HeadAirFlow> - <TableIndex>0</TableIndex> - <HeadZone7Temp>0</HeadZone7Temp> - <HeadZone8Temp>0</HeadZone8Temp> - <HeadZone9Temp>0</HeadZone9Temp> - <HeadZone10Temp>0</HeadZone10Temp> - <HeadZone11Temp>0</HeadZone11Temp> - <HeadZone12Temp>0</HeadZone12Temp> - <RBlowerFlow>0</RBlowerFlow> - <RBlowerTemp>0</RBlowerTemp> - <LBlowerFlow>0</LBlowerFlow> - <LBlowerTemp>0</LBlowerTemp> - <PressureBuildUp>0</PressureBuildUp> - </ProcessParameters> - <ParametersIndices> - <ParameterIndex> - <Name>Name</Name> - <Index>0</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dyeing Speed</Name> - <Index>1</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Min Ink Uptake</Name> - <Index>2</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Max Ink Uptake</Name> - <Index>3</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Feeder Tension</Name> - <Index>4</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Puller Tension</Name> - <Index>5</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Winder Tension</Name> - <Index>6</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Mixer Temp</Name> - <Index>7</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 1 Temp</Name> - <Index>8</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 2 Temp</Name> - <Index>9</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 3 Temp</Name> - <Index>10</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 4 Temp</Name> - <Index>11</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 5 Temp</Name> - <Index>12</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 6 Temp</Name> - <Index>13</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Air Flow</Name> - <Index>14</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Zone 1 Temp</Name> - <Index>15</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Zone 2 Temp</Name> - <Index>16</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Zone 3 Temp</Name> - <Index>17</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Buffer Length</Name> - <Index>18</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Air Flow</Name> - <Index>19</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Process Parameters Tables Group Guid</Name> - <Index>20</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Table Index</Name> - <Index>21</Index> - </ParameterIndex> - </ParametersIndices> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>11f4748e-ed30-48d6-a08a-afeaa0277e2e</ID> - <Left>330</Left> - <Top>12.154867256637203</Top> - <Width>205</Width> - <Height>90.181415929203524</Height> - <Angle>0</Angle> - <ItemGuid>1778C1A7-AFB5-42F9-9E00-E80D30D9FC02</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>dcf78507-ea09-4529-b635-ec1eeed31141</ID> - <Left>145</Left> - <Top>842.58849557522137</Top> - <Width>357</Width> - <Height>215.82743362831855</Height> - <Angle>0</Angle> - <ItemGuid>FE0D0A56-5795-4C5A-8E09-939FBB35C441</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>1275</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>2</DecimalPlaces> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>85762a06-25d4-457a-9974-7eab916d65c5</ID> - <Left>540</Left> - <Top>4.0486725663717493</Top> - <Width>205</Width> - <Height>90.181415929203524</Height> - <Angle>0</Angle> - <ItemGuid>055D0A38-09BD-490D-9852-12B06A4B22F2</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="ProcessParametersItem"> - <ID>36f69103-89b6-4076-b8f3-bf4a0806ba05</ID> - <Left>18.250000000000007</Left> - <Top>132.59405940594058</Top> - <Width>317.70833333333337</Width> - <Height>392.24752475247521</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <ProcessParameters> - <ID>0</ID> - <Guid>0025b28d-1475-4af2-b50e-ecc344c3e43a</Guid> - <LastUpdated>2020-07-05T08:17:42.9870702Z</LastUpdated> - <Name>Process parameters 4</Name> - <DyeingSpeed>50</DyeingSpeed> - <MinInkUptake>0</MinInkUptake> - <MaxInkUptake>0</MaxInkUptake> - <FeederTension>0</FeederTension> - <PullerTension>0</PullerTension> - <WinderTension>0</WinderTension> - <MixerTemp>80</MixerTemp> - <HeadZone1Temp>80</HeadZone1Temp> - <HeadZone2Temp>90</HeadZone2Temp> - <HeadZone3Temp>100</HeadZone3Temp> - <HeadZone4Temp>0</HeadZone4Temp> - <HeadZone5Temp>0</HeadZone5Temp> - <HeadZone6Temp>0</HeadZone6Temp> - <DryerAirFlow>0</DryerAirFlow> - <DryerZone1Temp>180</DryerZone1Temp> - <DryerZone2Temp>0</DryerZone2Temp> - <DryerZone3Temp>0</DryerZone3Temp> - <DryerBufferLength>0</DryerBufferLength> - <HeadAirFlow>3</HeadAirFlow> - <TableIndex>0</TableIndex> - <HeadZone7Temp>0</HeadZone7Temp> - <HeadZone8Temp>0</HeadZone8Temp> - <HeadZone9Temp>0</HeadZone9Temp> - <HeadZone10Temp>0</HeadZone10Temp> - <HeadZone11Temp>0</HeadZone11Temp> - <HeadZone12Temp>0</HeadZone12Temp> - <RBlowerFlow>180</RBlowerFlow> - <RBlowerTemp>180</RBlowerTemp> - <LBlowerFlow>180</LBlowerFlow> - <LBlowerTemp>180</LBlowerTemp> - <PressureBuildUp>0</PressureBuildUp> - </ProcessParameters> - <ParametersIndices> - <ParameterIndex> - <Name>Process Parameters Tables Group Guid</Name> - <Index>0</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Name</Name> - <Index>1</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Table Index</Name> - <Index>2</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dyeing Speed</Name> - <Index>3</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Min Ink Uptake</Name> - <Index>4</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Max Ink Uptake</Name> - <Index>5</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Feeder Tension</Name> - <Index>6</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Puller Tension</Name> - <Index>7</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Winder Tension</Name> - <Index>8</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Mixer Temp</Name> - <Index>9</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 1 Temp</Name> - <Index>10</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 2 Temp</Name> - <Index>11</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 3 Temp</Name> - <Index>12</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 4 Temp</Name> - <Index>13</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 5 Temp</Name> - <Index>14</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 6 Temp</Name> - <Index>15</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 7 Temp</Name> - <Index>16</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 8 Temp</Name> - <Index>17</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 9 Temp</Name> - <Index>18</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 10 Temp</Name> - <Index>19</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 11 Temp</Name> - <Index>20</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 12 Temp</Name> - <Index>21</Index> - </ParameterIndex> - <ParameterIndex> - <Name>R Blower Flow</Name> - <Index>22</Index> - </ParameterIndex> - <ParameterIndex> - <Name>R Blower Temp</Name> - <Index>23</Index> - </ParameterIndex> - <ParameterIndex> - <Name>L Blower Flow</Name> - <Index>24</Index> - </ParameterIndex> - <ParameterIndex> - <Name>L Blower Temp</Name> - <Index>25</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Zone 1 Temp</Name> - <Index>26</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Zone 2 Temp</Name> - <Index>27</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Zone 3 Temp</Name> - <Index>28</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Air Flow</Name> - <Index>29</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Air Flow</Name> - <Index>30</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Buffer Length</Name> - <Index>31</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Pressure Build Up</Name> - <Index>32</Index> - </ParameterIndex> - </ParametersIndices> - </TechItem> - </Items> - </MachineTechViewProjectTab> - <MachineTechViewProjectTab> - <Name>Thread</Name> - <Items> - <TechItem xsi:type="MonitorItem"> - <ID>50bae43f-8b1a-4279-9238-b976a0c72af3</ID> - <Left>1530</Left> - <Top>193.19911504424795</Top> - <Width>169</Width> - <Height>181.37610619469029</Height> - <Angle>0</Angle> - <ItemGuid>A8DB1D27-6B25-4FB4-A3F5-46A29BA51955</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>68eef943-2151-4df5-be61-044c3865606e</ID> - <Left>1172</Left> - <Top>145.78318584070678</Top> - <Width>175</Width> - <Height>167.827433628319</Height> - <Angle>0</Angle> - <ItemGuid>96B89605-F999-43FE-A1CD-2645BFB33A36</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>6be024c6-3d1b-4267-9b77-44473aba56b7</ID> - <Left>988</Left> - <Top>143.32300884955998</Top> - <Width>190</Width> - <Height>167.09734513274049</Height> - <Angle>0</Angle> - <ItemGuid>FC60060A-3736-4910-B41A-FF6DABDF0E9E</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>7c720f3b-00e1-49dd-92f9-fdd1e9686623</ID> - <Left>817</Left> - <Top>142.42035398230098</Top> - <Width>169</Width> - <Height>168.31858407079625</Height> - <Angle>0</Angle> - <ItemGuid>4CE6A82E-D841-4D33-BBB2-11F0743A441C</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>3ebd6759-521b-4ed1-a353-ee1ad7801f28</ID> - <Left>922</Left> - <Top>516.43362831858417</Top> - <Width>439</Width> - <Height>304.995575221239</Height> - <Angle>0</Angle> - <ItemGuid>D126DB23-784B-4F0C-8F88-D89A65A7549F</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>1460</Duration> - <Min>0</Min> - <Max>16384</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>1</DecimalPlaces> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>984b4126-3dda-4624-a79f-0646eb0e1358</ID> - <Left>465</Left> - <Top>515.420353982301</Top> - <Width>439</Width> - <Height>304.995575221239</Height> - <Angle>0</Angle> - <ItemGuid>10102BC3-0EAE-47FF-A8E5-8640780CAA3D</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>1516</Duration> - <Min>0</Min> - <Max>16384</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>1</DecimalPlaces> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>8ebc3ab7-a02d-4b12-93b3-2563443831d7</ID> - <Left>15</Left> - <Top>518.46017699115032</Top> - <Width>439</Width> - <Height>304.995575221239</Height> - <Angle>0</Angle> - <ItemGuid>C0BCCD5C-346B-4C4A-A080-39D28E9E1A0C</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>1398</Duration> - <Min>0</Min> - <Max>16384</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>1</DecimalPlaces> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>acafb268-5e97-4277-8dc8-173250a9e3f8</ID> - <Left>12</Left> - <Top>13.849557522123973</Top> - <Width>439</Width> - <Height>304.995575221239</Height> - <Angle>0</Angle> - <ItemGuid>9FBC5460-BA59-486B-8D85-BD7D8A959F98</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>1273</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>1</DecimalPlaces> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>be4cb8d9-b516-4604-a6a5-1638cbc50251</ID> - <Left>860</Left> - <Top>-24.18584070796669</Top> - <Width>345</Width> - <Height>169.21681415929209</Height> - <Angle>0</Angle> - <ItemGuid>4CE6A82E-D841-4D33-BBB2-11F0743A441C</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>514</Duration> - <Min>0</Min> - <Max>100000</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>1</DecimalPlaces> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>75b99507-4eba-4b11-b52e-26732d4c5479</ID> - <Left>19</Left> - <Top>324.14159292035305</Top> - <Width>429</Width> - <Height>193.26548672566258</Height> - <Angle>0</Angle> - <ItemGuid>F1DF490B-0577-4FA7-ACA1-0EEF4F934E8F</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>1398</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>4</DecimalPlaces> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>a30e48de-be76-4230-92d0-d27d6f37b940</ID> - <Left>474</Left> - <Top>320.03097345132551</Top> - <Width>429</Width> - <Height>193.26548672566258</Height> - <Angle>0</Angle> - <ItemGuid>5F12B974-2C9E-4DDD-9B20-733251A5D7E6</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>1398</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>4</DecimalPlaces> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>5ac4b368-093a-4192-98d4-e9d24f229b13</ID> - <Left>928</Left> - <Top>321.64601769912122</Top> - <Width>429</Width> - <Height>193.26548672566258</Height> - <Angle>0</Angle> - <ItemGuid>84CF23C9-D20D-4C08-BE1D-80201FC43C06</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>1398</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>4</DecimalPlaces> - </TechItem> - <TechItem xsi:type="MonitorRecorderItem"> - <ID>9c34dc69-cfaa-48b4-9d02-8f0d9bba79dd</ID> - <Left>1303</Left> - <Top>34.380530973454768</Top> - <Width>176</Width> - <Height>83.05309734512457</Height> - <Angle>0</Angle> - <ColorNumber>-1</ColorNumber> - <SelectedMonitorsGuids> - <string>89B7B89D-8050-4188-B568-35B1910CFB6F</string> - <string>96B89605-F999-43FE-A1CD-2645BFB33A36</string> - <string>84CF23C9-D20D-4C08-BE1D-80201FC43C06</string> - <string>FC60060A-3736-4910-B41A-FF6DABDF0E9E</string> - <string>5F12B974-2C9E-4DDD-9B20-733251A5D7E6</string> - <string>9ADF7823-B293-4275-9999-F62474D246AA</string> - <string>4CE6A82E-D841-4D33-BBB2-11F0743A441C</string> - <string>F1DF490B-0577-4FA7-ACA1-0EEF4F934E8F</string> - </SelectedMonitorsGuids> - </TechItem> - <TechItem xsi:type="ThreadMotionItem"> - <ID>be5b2c37-4481-4293-b957-bf65d8516fee</ID> - <Left>464</Left> - <Top>21.274336283185846</Top> - <Width>315</Width> - <Height>177.3230088495576</Height> - <Angle>0</Angle> - <ColorNumber>-1</ColorNumber> - <Speed>20</Speed> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>aace77b8-02ca-4c88-abc1-590fc2592b99</ID> - <Left>1355</Left> - <Top>146.70796460176933</Top> - <Width>175</Width> - <Height>167.827433628319</Height> - <Angle>0</Angle> - <ItemGuid>89B7B89D-8050-4188-B568-35B1910CFB6F</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - </Items> - </MachineTechViewProjectTab> - <MachineTechViewProjectTab> - <Name>Dispensers</Name> - <Items> - <TechItem xsi:type="DispenserItem"> - <ID>dce78f33-c966-4848-8c6e-a4a01dbc7577</ID> - <Left>1322.1428571428571</Left> - <Top>214.15929203538531</Top> - <Width>159</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>2CC8E461-E91F-4D4C-A402-922477F06C87</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>800</Speed> - <DisplayName>Dispenser 1</DisplayName> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>2d03fc19-0502-43e1-a3ff-4012a612112b</ID> - <Left>1149</Left> - <Top>218.48230088495342</Top> - <Width>159</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>C8D8FE90-0375-44A2-A6D1-E997789E065C</ItemGuid> - <ColorNumber>-16724737</ColorNumber> - <Speed>1200</Speed> - <DisplayName>Dispenser 2</DisplayName> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>81958374-3fa3-48b3-a554-5653fe1934b1</ID> - <Left>959</Left> - <Top>210.32743362830422</Top> - <Width>156</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>08ED9044-CAD6-4492-94B2-C07206E0164B</ItemGuid> - <ColorNumber>-65325</ColorNumber> - <Speed>1200</Speed> - <DisplayName>Dispenser 3</DisplayName> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>8fead411-7198-4428-a364-e32f3035ed94</ID> - <Left>775</Left> - <Top>206.42920353980952</Top> - <Width>159</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>179F34BB-3252-4D3A-965C-E6EB43D6FE7C</ItemGuid> - <ColorNumber>-524544</ColorNumber> - <Speed>1200</Speed> - <DisplayName>Dispenser 4</DisplayName> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>31bfa89f-e64d-4a3b-8585-c4a1b2e5a139</ID> - <Left>585</Left> - <Top>208.47345132741418</Top> - <Width>159</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>716B35CF-46E0-47D5-AF85-5233D212568F</ItemGuid> - <ColorNumber>-2108246</ColorNumber> - <Speed>1200</Speed> - <DisplayName>Dispenser 5</DisplayName> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>c2bff5f3-6dc9-4b07-87ba-9e3a5814804e</ID> - <Left>372</Left> - <Top>216.75221238937439</Top> - <Width>159</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>99528449-4D76-4874-AB95-522951560E01</ItemGuid> - <ColorNumber>-263685</ColorNumber> - <Speed>1200</Speed> - <DisplayName>Dispenser 6</DisplayName> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>071281a5-3569-4a62-8b68-7bea850a3c07</ID> - <Left>217</Left> - <Top>211.63716814158107</Top> - <Width>159</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>E8ED07E2-7C36-459C-B9E5-6A23A1E24F03</ItemGuid> - <ColorNumber>-723724</ColorNumber> - <Speed>1200</Speed> - <DisplayName>Dispenser 7</DisplayName> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>7b703b9a-a626-4ae5-8e31-fa1cfe5718f4</ID> - <Left>45</Left> - <Top>216.04867256635521</Top> - <Width>159</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>8A957565-4165-49F7-854D-D21F95FFBE1B</ItemGuid> - <ColorNumber>-724238</ColorNumber> - <Speed>1200</Speed> - <DisplayName>Dispenser 8</DisplayName> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>caca40a2-310c-452e-adcf-c28ee38f6bdc</ID> - <Left>1305</Left> - <Top>31.606194690259713</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid> - <ColorNumber>-15856114</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>af52d36f-27a2-4a31-8ceb-9c43fedbed22</ID> - <Left>1127</Left> - <Top>32.535398230081626</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> - <ColorNumber>-15293470</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>d40eada8-d22a-4521-bd2a-d998ed93106f</ID> - <Left>955</Left> - <Top>32.61946902653176</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid> - <ColorNumber>-1570857</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>b2d6364d-8b5c-43d2-8838-927c85b017b1</ID> - <Left>774</Left> - <Top>31.960176991142362</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid> - <ColorNumber>-1379575</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>3980e685-73b3-4af1-9593-9235be147322</ID> - <Left>596</Left> - <Top>32.889380530964274</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid> - <ColorNumber>-7763381</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>51465293-58d5-40a4-8302-81856f8b4f47</ID> - <Left>424</Left> - <Top>32.973451327414409</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>AF3FD56C-95BF-4DE1-8EDC-8426B0DB2A26</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>c2a8c5b2-891b-4f9f-862c-c1c294366c78</ID> - <Left>252</Left> - <Top>31.703539823006281</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>60DA9EA3-C8A6-4D41-8AD8-3EB1BAA79CC9</ItemGuid> - <ColorNumber>-8391822</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>9618e441-8973-4e16-a90b-06ce5798bd29</ID> - <Left>80</Left> - <Top>31.787610619456416</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>EF66F95A-E166-4FA2-B1AF-D6F55621817A</ItemGuid> - <ColorNumber>-2186185</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>bce8c8e8-a317-4991-9aa7-cd99a45d1509</ID> - <Left>28.22352941176473</Left> - <Top>682.03174474303751</Top> - <Width>247</Width> - <Height>122.24778761061873</Height> - <Angle>0</Angle> - <ItemGuid>66cc8510-db9c-4e13-9151-01e705ec04de</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>72a23702-31bb-4ab8-aee5-2a02bcb1270b</ID> - <Left>235.16470588235291</Left> - <Top>699.99460095802579</Top> - <Width>200</Width> - <Height>94.15929203539747</Height> - <Angle>0</Angle> - <ItemGuid>36ba0ba4-e41d-45ff-8f68-1699e00c7107</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="ControllerItem"> - <ID>2dd6ff17-e515-4d8f-814f-a9683f404a8e</ID> - <Left>140</Left> - <Top>867.73893805310092</Top> - <Width>160</Width> - <Height>85.49115044247776</Height> - <Angle>0</Angle> - <ItemGuid>78482AA4-3DF6-421F-944C-64328D3C3EF2</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <OptimalRangeMinimum>0</OptimalRangeMinimum> - <OptimalRangeMaximum>70</OptimalRangeMaximum> - <IsSetToDefault>true</IsSetToDefault> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>06843009-1da0-4811-8e77-50576d0edcb1</ID> - <Left>507</Left> - <Top>792.77433628318749</Top> - <Width>219</Width> - <Height>125.75221238938025</Height> - <Angle>0</Angle> - <ItemGuid>0c5dc1e9-da17-4ff8-86aa-6b39fd796ba9</ItemGuid> - <ColorNumber>-16777216</ColorNumber> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>935dddd0-0c6f-4766-8173-f9118006a12b</ID> - <Left>1303</Left> - <Top>475.87168141593065</Top> - <Width>160</Width> - <Height>124.6504424778754</Height> - <Angle>0</Angle> - <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid> - <ColorNumber>-15856114</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MultiGraphItem"> - <ID>97e39a59-dba8-4e42-a124-b37de9453baf</ID> - <Left>370</Left> - <Top>781.46902654866153</Top> - <Width>710</Width> - <Height>401.24778761063465</Height> - <Angle>0</Angle> - <ItemGuid>D023F15D-3555-48E9-A9E9-5DF99F60D791</ItemGuid> - <ColorNumber>0</ColorNumber> - <Duration>1956</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>2</DecimalPlaces> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>46bdfce3-1c69-45dd-bbe9-582d1ac1e6f2</ID> - <Left>1128</Left> - <Top>482.80530973451141</Top> - <Width>140</Width> - <Height>117.32300884955743</Height> - <Angle>0</Angle> - <ItemGuid>0FE216B2-A097-4F2C-B465-08593F2532B3</ItemGuid> - <ColorNumber>-15293470</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>429154a5-9a16-4423-85ca-ee4bae9aec3c</ID> - <Left>968</Left> - <Top>481.35398230088504</Top> - <Width>140</Width> - <Height>117.32300884955743</Height> - <Angle>0</Angle> - <ItemGuid>3271FD82-46D3-4789-B612-564967826C75</ItemGuid> - <ColorNumber>-1570857</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>0f6ab8e8-99a7-4468-bde8-690a63467688</ID> - <Left>766</Left> - <Top>476.07964601769811</Top> - <Width>140</Width> - <Height>117.32300884955743</Height> - <Angle>0</Angle> - <ItemGuid>FBB806E7-42FA-4BAA-BDA1-3B8B07913AAD</ItemGuid> - <ColorNumber>-1379575</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>bc0ac903-9c1f-4580-8b9e-670a76350473</ID> - <Left>586</Left> - <Top>474.38938053097161</Top> - <Width>140</Width> - <Height>117.32300884955743</Height> - <Angle>0</Angle> - <ItemGuid>436A22BB-AF79-4CB2-8A7D-DD4D9E54A81E</ItemGuid> - <ColorNumber>-7763381</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>f9c960b2-b93e-46d5-b892-30337c0b55af</ID> - <Left>391</Left> - <Top>474.87168141592781</Top> - <Width>140</Width> - <Height>117.32300884955743</Height> - <Angle>0</Angle> - <ItemGuid>89EA6CC8-5363-4BEC-A370-D906611087A7</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>5ac157ab-2d53-4307-bf0b-b069854701ac</ID> - <Left>226</Left> - <Top>471.66814159292005</Top> - <Width>140</Width> - <Height>117.32300884955743</Height> - <Angle>0</Angle> - <ItemGuid>D5EBE52B-E2DF-4C97-80B1-F111F6B15854</ItemGuid> - <ColorNumber>-8391822</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>65a19d7e-c524-48a0-bd70-28b99b113dd1</ID> - <Left>69</Left> - <Top>473.97787610619389</Top> - <Width>140</Width> - <Height>117.32300884955743</Height> - <Angle>0</Angle> - <ItemGuid>FE521D1B-A0EA-4FEA-AE64-33998A6CE138</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>5bf7a681-ee47-477e-8b47-ba7a2eb6e115</ID> - <Left>1130</Left> - <Top>624.9557522123913</Top> - <Width>144</Width> - <Height>80.495575221237516</Height> - <Angle>0</Angle> - <ItemGuid>3174ADCF-5793-4B5A-A3C6-B96E146A903D</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>29b17a4b-fd4e-49cc-a3cd-418730176bf7</ID> - <Left>969</Left> - <Top>625.95575221239</Top> - <Width>144</Width> - <Height>80.495575221237516</Height> - <Angle>0</Angle> - <ItemGuid>AD50C358-5BAF-4A2F-8593-51A22C85B3D1</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>21a5429f-c3a2-4e3b-ae77-c5538f30130d</ID> - <Left>775</Left> - <Top>623.66814159292062</Top> - <Width>144</Width> - <Height>82.535398230087083</Height> - <Angle>0</Angle> - <ItemGuid>E2F0FC31-CE7E-416B-ACEA-8EB6CA9B850B</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>96a46b0c-37b1-4457-93fb-b3dc301c5743</ID> - <Left>588</Left> - <Top>625.06637168141322</Top> - <Width>144</Width> - <Height>80.495575221237516</Height> - <Angle>0</Angle> - <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C09F</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>d4ad8603-9929-415f-9990-1869fcff36e4</ID> - <Left>1310</Left> - <Top>628.69469026548632</Top> - <Width>144</Width> - <Height>80.495575221237516</Height> - <Angle>0</Angle> - <ItemGuid>84682E90-6926-42AA-BF8C-2CCCF5C26C97</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="ValveItem"> - <ID>25249d78-ee37-42a8-b5aa-96f60e97c3ea</ID> - <Left>20.870588235294122</Left> - <Top>784.26605504587133</Top> - <Width>327</Width> - <Height>108.53097345133028</Height> - <Angle>0</Angle> - <ItemGuid>8B1FCBC3-FEEA-4F87-B56F-CE5D28B7ACA4</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>fc1d62f7-d13b-4a7b-8f9f-c687c987c7a9</ID> - <Left>1065</Left> - <Top>788.41592920352355</Top> - <Width>370</Width> - <Height>362.10619469026585</Height> - <Angle>0</Angle> - <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>1426</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>3</DecimalPlaces> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>cc99a514-1498-4b93-a4eb-4e0a2a2e9de6</ID> - <Left>628</Left> - <Top>765.4469026548752</Top> - <Width>394</Width> - <Height>372.88495575221242</Height> - <Angle>0</Angle> - <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>1282</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>1</DecimalPlaces> - </TechItem> - <TechItem xsi:type="ValveItem"> - <ID>cdddd48e-422d-48f4-8397-5032c3705fdb</ID> - <Left>1069</Left> - <Top>698.04867256637226</Top> - <Width>382</Width> - <Height>136.79203539823016</Height> - <Angle>0</Angle> - <ItemGuid>04C58CA0-9719-4BB0-8D3B-D4C71129D8E4</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>ee6d4c5a-ca5b-4557-8012-dacf700cdc08</ID> - <Left>231</Left> - <Top>624.06637168142413</Top> - <Width>144</Width> - <Height>80.495575221237516</Height> - <Angle>0</Angle> - <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C010</ItemGuid> - <ColorNumber>-8391822</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>20576bb2-202f-4170-9af5-f3c18b410112</ID> - <Left>77</Left> - <Top>624.46460176991513</Top> - <Width>144</Width> - <Height>80.495575221237516</Height> - <Angle>0</Angle> - <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C011</ItemGuid> - <ColorNumber>-2186185</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - </Items> - </MachineTechViewProjectTab> - <MachineTechViewProjectTab> - <Name>Thread insertion</Name> - <Items> - <TechItem xsi:type="MotorItem"> - <ID>443a977c-8e89-4a56-82e4-684bac7945c9</ID> - <Left>25</Left> - <Top>22.761061946902203</Top> - <Width>247</Width> - <Height>172.25663716814159</Height> - <Angle>0</Angle> - <ItemGuid>08d15ca1-d7d1-460f-8f37-42c37c287cd1</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>500</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>a821b716-cb7d-4951-84ee-e56955431099</ID> - <Left>355</Left> - <Top>20.592920353981697</Top> - <Width>260</Width> - <Height>153.00442477876106</Height> - <Angle>0</Angle> - <ItemGuid>b90a4e78-ebbf-44db-829b-949517d6400b</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>350</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>e36e321b-d48d-4199-a1ee-75ac18e9de1e</ID> - <Left>694</Left> - <Top>19.367256637167998</Top> - <Width>217</Width> - <Height>155.26106194690203</Height> - <Angle>0</Angle> - <ItemGuid>b7c1aea4-32c1-41cb-bca3-4aa665529b49</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>350</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>8790db03-4dfd-4d49-aec0-706babb55af9</ID> - <Left>396</Left> - <Top>244.37610619468319</Top> - <Width>240</Width> - <Height>172.30973451327589</Height> - <Angle>0</Angle> - <ItemGuid>2d3eaca5-4dfd-40d9-9d1f-aa4ae794eddc</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>500</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>69ebcb28-13d9-41b3-a9ef-b2be51584141</ID> - <Left>36</Left> - <Top>245.4955752212249</Top> - <Width>255</Width> - <Height>170.15044247787392</Height> - <Angle>0</Angle> - <ItemGuid>c6099065-a735-4cc5-b575-c31a45bb9262</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>400</Speed> - </TechItem> - <TechItem xsi:type="ThreadMotionItem"> - <ID>4d562029-3fdf-40a4-a5a7-9a322253c912</ID> - <Left>1168</Left> - <Top>47.305309734517039</Top> - <Width>304</Width> - <Height>167.26548672566202</Height> - <Angle>0</Angle> - <ColorNumber>-1</ColorNumber> - <Speed>40</Speed> - </TechItem> - <TechItem xsi:type="BreakSensorItem"> - <ID>92607e12-2dd6-41c9-8f89-f051f386b734</ID> - <Left>1316</Left> - <Top>380.876106194693</Top> - <Width>240</Width> - <Height>144.699115044238</Height> - <Angle>0</Angle> - <ItemGuid>DCE08A06-6711-43AE-AB7C-EADD5AB70EE0</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>7b5b6896-f626-4e59-a5cf-2600e603c0f6</ID> - <Left>723</Left> - <Top>241.30530973452125</Top> - <Width>237</Width> - <Height>179.22123893805463</Height> - <Angle>0</Angle> - <ItemGuid>7b6d0a93-5a91-4e1f-af47-353afd8b5ea6</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>20</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>2052a2d3-843c-4a1c-87fd-acd0832fd1b9</ID> - <Left>85</Left> - <Top>589.09734513273827</Top> - <Width>220</Width> - <Height>168.473451327436</Height> - <Angle>0</Angle> - <ItemGuid>c9482395-35e6-4340-8dab-83d5dfe907a7</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>2200</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>339b7d00-d688-41cf-926a-8171d5e62740</ID> - <Left>403</Left> - <Top>591.712389380534</Top> - <Width>240</Width> - <Height>159.84070796460173</Height> - <Angle>0</Angle> - <ItemGuid>f3b5076e-cba3-4ad2-b3cc-0c4e907bd9ef</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>400</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>7644a8f9-00a2-4e37-8f48-0667b1541114</ID> - <Left>1047</Left> - <Top>251.86283185840875</Top> - <Width>233</Width> - <Height>159.57079646017985</Height> - <Angle>0</Angle> - <ItemGuid>bda5aa4d-13aa-4259-92e5-b969276cb2b1</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>500</Speed> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>c706d31b-48b0-44cc-a9c4-11d3acdcf667</ID> - <Left>535</Left> - <Top>441.07493391564333</Top> - <Width>269</Width> - <Height>127.67256637168134</Height> - <Angle>0</Angle> - <ItemGuid>2a454081-bd5e-41de-ae5d-97aefe1d76de</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>7ccff69d-50f9-4e9b-a997-72a67917df5e</ID> - <Left>727</Left> - <Top>590.61504424779025</Top> - <Width>241</Width> - <Height>154.99115044247867</Height> - <Angle>0</Angle> - <ItemGuid>7c03f12f-ab2a-4421-8575-aefd6dec0001</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>500</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>a88a74cb-418b-4ed0-89ec-c42ff560528e</ID> - <Left>1073</Left> - <Top>593.7123893805292</Top> - <Width>227</Width> - <Height>145.08849557522183</Height> - <Angle>0</Angle> - <ItemGuid>4d097acc-df45-46af-bb7e-3d177ab27a9b</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>2</Speed> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>37267035-ae9d-4c72-a04f-215f754d0900</ID> - <Left>283</Left> - <Top>451.07079646016848</Top> - <Width>240</Width> - <Height>116.10176991150968</Height> - <Angle>0</Angle> - <ItemGuid>8a65badb-3d7d-4b7b-8dcd-783e443b0689</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>ca4a5397-68a1-4a2f-b614-80132cd513ee</ID> - <Left>52</Left> - <Top>452.20353982301083</Top> - <Width>240</Width> - <Height>116.10176991150968</Height> - <Angle>0</Angle> - <ItemGuid>6f48e18c-d472-425a-ba7e-633630605e11</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - </Items> - </MachineTechViewProjectTab> - <MachineTechViewProjectTab> - <Name>Head graphs</Name> - <Items> - <TechItem xsi:type="SingleGraphItem"> - <ID>ffe980da-dbbe-4bac-9595-46f587e9df00</ID> - <Left>3</Left> - <Top>5.8097345132742362</Top> - <Width>363</Width> - <Height>157.76991150442467</Height> - <Angle>0</Angle> - <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E448FB</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>2962</Duration> - <Min>0</Min> - <Max>300</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>2</DecimalPlaces> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>81b78212-14d8-4a66-bf3a-eeea9900e0d6</ID> - <Left>371</Left> - <Top>21.075221238938013</Top> - <Width>128</Width> - <Height>91.469026548670342</Height> - <Angle>0</Angle> - <ItemGuid>AA1CF164-76FE-49C6-AA73-0EBA29816E92</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>3941a557-05e6-4c1b-bb98-4f2a59892431</ID> - <Left>517</Left> - <Top>11.517699115044195</Top> - <Width>103</Width> - <Height>113.4867256637167</Height> - <Angle>0</Angle> - <ItemGuid>188285E5-1493-4BED-8269-91743770A631</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone7</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>77.96</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>7e0942e7-a87a-402a-b580-5091ed6b29ee</ID> - <Left>8</Left> - <Top>276.6194690265491</Top> - <Width>357</Width> - <Height>143.58407079645986</Height> - <Angle>0</Angle> - <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E44809</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>2962</Duration> - <Min>0</Min> - <Max>300</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>2</DecimalPlaces> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>064bd571-4250-4ea3-8ed5-96f1ddc8fe6b</ID> - <Left>374</Left> - <Top>280.73893805309746</Top> - <Width>128</Width> - <Height>91.469026548670342</Height> - <Angle>0</Angle> - <ItemGuid>8FEB7F10-E1FB-465A-A987-6E8659C2186A</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>4845ec5b-067b-43c2-aaf1-314dcb358a7c</ID> - <Left>519</Left> - <Top>283.3407079646019</Top> - <Width>103</Width> - <Height>121.59292035398221</Height> - <Angle>0</Angle> - <ItemGuid>63E2AFE0-0746-4AAB-AA74-C26EC1F282AE</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone9</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>78.1</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>85b25b0b-cd3d-4a8a-88f5-f832623d7ec2</ID> - <Left>8.75</Left> - <Top>704.87334618417651</Top> - <Width>350</Width> - <Height>152.70353982300856</Height> - <Angle>0</Angle> - <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E44812</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>2962</Duration> - <Min>0</Min> - <Max>300</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>2</DecimalPlaces> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>85e9ecc2-3bce-4055-89a9-1712752898a9</ID> - <Left>375.66666666666663</Left> - <Top>902.19714360816624</Top> - <Width>128</Width> - <Height>91.469026548670342</Height> - <Angle>0</Angle> - <ItemGuid>500698E0-5623-4A47-9537-FCAAF5D0B725</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>8d9b0d4b-ac5e-4c17-b7eb-4d59825064c7</ID> - <Left>523.04166666666652</Left> - <Top>895.90015771488663</Top> - <Width>103</Width> - <Height>121.59292035398221</Height> - <Angle>0</Angle> - <ItemGuid>F39B952A-6194-4055-A5CB-A3421BFE0F9B</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeadCoverHeater2</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>283.75</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>63ccee8d-ce38-4c69-b8d1-141f320d11f9</ID> - <Left>6</Left> - <Top>563.37610619469046</Top> - <Width>358</Width> - <Height>141.55752212389359</Height> - <Angle>0</Angle> - <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E44811</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>2962</Duration> - <Min>0</Min> - <Max>300</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>2</DecimalPlaces> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>5ed86083-bdd6-4648-b7ca-f17fa97f034a</ID> - <Left>379</Left> - <Top>573.57522123893818</Top> - <Width>128</Width> - <Height>91.469026548670342</Height> - <Angle>0</Angle> - <ItemGuid>C113AA1D-25F5-4095-A1F3-18BEDFC0EEEE</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>8269194e-5348-4367-8ae9-e6c0647febaf</ID> - <Left>523</Left> - <Top>571.1106194690268</Top> - <Width>103</Width> - <Height>116.52654867256626</Height> - <Angle>0</Angle> - <ItemGuid>D41BBB23-6EB5-4743-89DB-9191000B475F</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone11</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>74.32</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>182492d7-b240-4162-b8ec-39996eec3cc7</ID> - <Left>9</Left> - <Top>418.47787610619497</Top> - <Width>353</Width> - <Height>145.61061946902635</Height> - <Angle>0</Angle> - <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E44810</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>2962</Duration> - <Min>0</Min> - <Max>300</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>2</DecimalPlaces> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>e8130372-e0ee-4c1c-a43d-4ab15ff57bd8</ID> - <Left>378</Left> - <Top>430.703539823009</Top> - <Width>128</Width> - <Height>91.469026548670342</Height> - <Angle>0</Angle> - <ItemGuid>DCCCCF68-5895-40BE-9E90-1FA35E44D2E4</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>af0d953f-45de-4c0d-9eeb-d7a5c17681e4</ID> - <Left>519</Left> - <Top>428.23893805309746</Top> - <Width>103</Width> - <Height>121.59292035398221</Height> - <Angle>0</Angle> - <ItemGuid>B4D0A1C8-711C-49A9-82A3-B5B9F35FC131</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone10</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>74.7</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>00dda04e-1853-422f-ac47-29bdbab642d7</ID> - <Left>7</Left> - <Top>142.86725663716828</Top> - <Width>357</Width> - <Height>152.70353982300867</Height> - <Angle>0</Angle> - <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E44808</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>2962</Duration> - <Min>0</Min> - <Max>300</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>2</DecimalPlaces> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>e7935033-56c6-42a4-a2b3-f5eedb0a11e7</ID> - <Left>382</Left> - <Top>151.03982300884968</Top> - <Width>128</Width> - <Height>91.469026548670342</Height> - <Angle>0</Angle> - <ItemGuid>E772ECA1-24EB-446A-AB28-F5E3D853B9F6</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>b339a7c0-7555-4e54-9834-6193ed7c2b7a</ID> - <Left>519</Left> - <Top>147.561946902655</Top> - <Width>104</Width> - <Height>109.43362831858406</Height> - <Angle>0</Angle> - <ItemGuid>461FA2D7-1918-4958-AAA7-37A1A329FA12</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone8</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>79.4</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>40d16753-8448-4af9-8fbd-98c1ed301de5</ID> - <Left>623</Left> - <Top>117.5353982300885</Top> - <Width>363</Width> - <Height>157.76991150442467</Height> - <Angle>0</Angle> - <ItemGuid>D7585119-4A42-4370-8F1E-F3E62553E588</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>2962</Duration> - <Min>0</Min> - <Max>300</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>2</DecimalPlaces> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>b3826c8e-1d82-4f4f-ad9f-d88f257dffb2</ID> - <Left>1005</Left> - <Top>12.221238938053205</Top> - <Width>128</Width> - <Height>91.469026548670342</Height> - <Angle>0</Angle> - <ItemGuid>d59b64f7-a8cf-4a2b-935a-943ae35fb78c</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>d3631074-68c4-4377-b0c5-9213a6b1b2c0</ID> - <Left>1148</Left> - <Top>293.47345132743362</Top> - <Width>103</Width> - <Height>113.4867256637167</Height> - <Angle>0</Angle> - <ItemGuid>8E764A14-0F84-4FEC-928B-32A2509CAD57</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone3</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>70.97</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>99af8946-4971-4913-9382-705c4e05b7ce</ID> - <Left>621</Left> - <Top>275.60619469026591</Top> - <Width>363</Width> - <Height>157.76991150442467</Height> - <Angle>0</Angle> - <ItemGuid>098F7CAB-030C-46B0-B2B8-A85AF2253032</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>2962</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>2</DecimalPlaces> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>233f0076-7595-4ecb-8496-41eeb7b457ea</ID> - <Left>993</Left> - <Top>279.72566371681404</Top> - <Width>128</Width> - <Height>91.469026548670342</Height> - <Angle>0</Angle> - <ItemGuid>9de55ec4-201f-4f62-9003-f63ebea06f8f</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>f815ebb5-61af-45ff-8109-5f5e717a5c4d</ID> - <Left>1146</Left> - <Top>14.823008849557596</Top> - <Width>103</Width> - <Height>113.4867256637167</Height> - <Angle>0</Angle> - <ItemGuid>27E7BB74-81C3-4EF2-80AE-962F111C441F</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone1</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>57.9</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>7b7d9bea-29df-4f94-8ab6-2a6d7105bccf</ID> - <Left>627</Left> - <Top>6.07522123893807</Top> - <Width>363</Width> - <Height>157.76991150442467</Height> - <Angle>0</Angle> - <ItemGuid>A8DB1D27-6B25-4FB4-A3F5-46A29BA51955</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>2962</Duration> - <Min>0</Min> - <Max>300</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>2</DecimalPlaces> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>72d7192b-dd27-4064-9f5f-90062388a81c</ID> - <Left>1003</Left> - <Top>151.03982300884974</Top> - <Width>128</Width> - <Height>91.469026548670342</Height> - <Angle>0</Angle> - <ItemGuid>df38139e-0026-46bc-b72f-df5f9eec80f7</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>915f8dfc-5407-43ca-a0c7-d774867dfb5f</ID> - <Left>1145</Left> - <Top>153.64159292035396</Top> - <Width>103</Width> - <Height>113.4867256637167</Height> - <Angle>0</Angle> - <ItemGuid>B4EE8CC0-EE2B-4ABE-BF09-9226860E756B</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone2</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>67.04</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>64fba32f-3c03-42b3-b1ed-e2bdbe454bd6</ID> - <Left>630</Left> - <Top>535.00442477876129</Top> - <Width>363</Width> - <Height>157.76991150442467</Height> - <Angle>0</Angle> - <ItemGuid>246C2551-5EFD-48E9-94F6-6313C5E5018F</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>2962</Duration> - <Min>0</Min> - <Max>300</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>2</DecimalPlaces> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>5f451443-fab2-4bf6-8f21-5e038ca2c726</ID> - <Left>1008</Left> - <Top>707.327433628319</Top> - <Width>128</Width> - <Height>91.469026548670342</Height> - <Angle>0</Angle> - <ItemGuid>16D0DEF7-A2E0-4163-9F4B-FBEC2573BCC7</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>e5c1becb-1402-45fa-b252-60a03d4401cc</ID> - <Left>1150</Left> - <Top>716.00884955752235</Top> - <Width>103</Width> - <Height>113.4867256637167</Height> - <Angle>0</Angle> - <ItemGuid>D2B6CAA0-055E-4871-8D91-A5370F1ACB22</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone6</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>73.69</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>4f3b4ecd-759a-4ba5-80f3-74cc485d7085</ID> - <Left>629</Left> - <Top>387.066371681416</Top> - <Width>363</Width> - <Height>157.76991150442467</Height> - <Angle>0</Angle> - <ItemGuid>6C0C1AB0-3EE9-40D7-8424-A79436FBC804</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>2962</Duration> - <Min>0</Min> - <Max>300</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>2</DecimalPlaces> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>665593d6-e689-459e-94f9-2cdcce6150ac</ID> - <Left>1004</Left> - <Top>562.42920353982311</Top> - <Width>128</Width> - <Height>91.469026548670342</Height> - <Angle>0</Angle> - <ItemGuid>d28bfa3c-edce-4f19-a296-3da251fcc0e2</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>42b4b029-e8bc-4156-b6c1-bb64aae83f9e</ID> - <Left>1149</Left> - <Top>571.1106194690268</Top> - <Width>103</Width> - <Height>113.4867256637167</Height> - <Angle>0</Angle> - <ItemGuid>D6771DF4-771E-4D62-B6BA-BDE361C0A0F3</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone5</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>72.69</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>60dff2b2-7ddc-47a9-90b1-3f45968c1790</ID> - <Left>630</Left> - <Top>692.06194690265511</Top> - <Width>363</Width> - <Height>157.76991150442467</Height> - <Angle>0</Angle> - <ItemGuid>DACEBF90-E2B4-4CC9-A973-B8B429AA0089</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>2962</Duration> - <Min>0</Min> - <Max>300</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>2</DecimalPlaces> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>b53a74f3-8e91-40ce-b980-c5b237baeee9</ID> - <Left>1002</Left> - <Top>413.47787610619491</Top> - <Width>128</Width> - <Height>91.469026548670342</Height> - <Angle>0</Angle> - <ItemGuid>81a3ae80-f4ea-4857-bc4e-2055d3b5fbc7</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>8c438e59-d87c-46d2-8050-acc8a0c455d7</ID> - <Left>1148</Left> - <Top>434.31858407079636</Top> - <Width>103</Width> - <Height>113.4867256637167</Height> - <Angle>0</Angle> - <ItemGuid>94574D69-46E1-4144-A8B5-D4BF0DA96D18</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone4</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>73.54</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>f786b4da-3291-4ccb-a280-196fd8697ac1</ID> - <Left>5.7499999999999858</Left> - <Top>866.06435643564362</Top> - <Width>350</Width> - <Height>152.70353982300856</Height> - <Angle>0</Angle> - <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E448DD</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>2962</Duration> - <Min>0</Min> - <Max>300</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>2</DecimalPlaces> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>584c7f29-49cc-4845-a7ab-09239bd3a986</ID> - <Left>377.875</Left> - <Top>735.75944098834611</Top> - <Width>128</Width> - <Height>91.469026548670342</Height> - <Angle>0</Angle> - <ItemGuid>96A8AF31-B489-4FA2-BF99-C66D7DEC94C8</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>5c6da8d4-bd2e-44cc-8d99-a6b8bca7df3f</ID> - <Left>524.20833333333337</Left> - <Top>721.52681153071046</Top> - <Width>103</Width> - <Height>121.59292035398221</Height> - <Angle>0</Angle> - <ItemGuid>2D578A37-D808-40D0-ACE4-4A868EDD6BDC</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone12</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>72.72</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>05eab3d7-3af6-4d3f-b3b3-468eeb77a503</ID> - <Left>644.29166666666674</Left> - <Top>874.00000000000011</Top> - <Width>350</Width> - <Height>152.70353982300856</Height> - <Angle>0</Angle> - <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E448CC</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>2962</Duration> - <Min>0</Min> - <Max>300</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>2</DecimalPlaces> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>c1f48bf1-9cb3-475a-b152-e8b9a211b694</ID> - <Left>1010.1666666666667</Left> - <Top>895.60597564181194</Top> - <Width>128</Width> - <Height>91.469026548670342</Height> - <Angle>0</Angle> - <ItemGuid>7FCA67CB-785B-49F7-B9F2-191E3ACC6CB7</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>c5fbeda2-230d-40e4-9d52-5b3236e0c561</ID> - <Left>1161.708333333333</Left> - <Top>885.907999649522</Top> - <Width>103</Width> - <Height>121.59292035398221</Height> - <Angle>0</Angle> - <ItemGuid>F8C1BA7F-F6DF-414D-BAF5-D4CB292F91F6</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeadCoverHeater1</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>283.75</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - </Items> - </MachineTechViewProjectTab> - <MachineTechViewProjectTab> - <Name>waste</Name> - <Items> - <TechItem xsi:type="DigitalOutItem"> - <ID>bb9bf273-0a3d-4202-98ce-37a5f206ed75</ID> - <Left>119</Left> - <Top>68.898230088495609</Top> - <Width>339</Width> - <Height>184.4159292035398</Height> - <Angle>0</Angle> - <ItemGuid>7e1f53ec-8176-4efa-ac3d-c8f2436e60d1</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>59678a51-f995-4952-b250-e449f1fcbeac</ID> - <Left>468</Left> - <Top>80.336283185839477</Top> - <Width>280</Width> - <Height>166.17699115044252</Height> - <Angle>0</Angle> - <ItemGuid>78db28d0-0407-4942-bb62-c44da81c4f9e</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="DigitalInItem"> - <ID>8f9ff579-0e9d-4f48-8ed0-6fa563f2aba7</ID> - <Left>873</Left> - <Top>63.831858407079665</Top> - <Width>174</Width> - <Height>133.75221238938059</Height> - <Angle>0</Angle> - <ItemGuid>06bd7c0b-5aef-445a-86c0-853becf8594b</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="DigitalInItem"> - <ID>70d1bd1e-acdb-436a-b205-6eeb9d137120</ID> - <Left>1070</Left> - <Top>70.106194690265909</Top> - <Width>221</Width> - <Height>123.61946902654864</Height> - <Angle>0</Angle> - <ItemGuid>4048bf02-27dc-4049-9284-fe913a7e0ebe</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="DigitalInItem"> - <ID>dcc7ce16-5b89-4ff8-acd5-7fb0b9ebb6d1</ID> - <Left>877</Left> - <Top>248.24778761061947</Top> - <Width>186</Width> - <Height>126.65929203539827</Height> - <Angle>0</Angle> - <ItemGuid>00ea1771-efee-4f3e-a0d2-8b2a4214e9fd</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>2b99bbf7-94da-4bb2-acc9-91b35e543c5d</ID> - <Left>897</Left> - <Top>358.69469026548683</Top> - <Width>147</Width> - <Height>69.9159292035398</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>Waste lower presence</Text> - </TechItem> - <TechItem xsi:type="DigitalInItem"> - <ID>c150533c-abe4-4edf-b6ad-fa475b133142</ID> - <Left>1112</Left> - <Top>253.66814159291806</Top> - <Width>186</Width> - <Height>126.65929203539827</Height> - <Angle>0</Angle> - <ItemGuid>d2f266e3-779b-4dfe-b513-26ce61c529a4</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>d96f2a6d-0ccb-401e-8931-09086ca81fae</ID> - <Left>1143</Left> - <Top>366.78318584070507</Top> - <Width>147</Width> - <Height>69.9159292035398</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>Waste middle presence</Text> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>bb9847ba-9671-4613-bf23-a0c637ebc79d</ID> - <Left>151</Left> - <Top>271.55309734513281</Top> - <Width>200</Width> - <Height>63.836283185840671</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>pump</Text> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>d13a2df4-3f54-4c31-8f9a-ee7810fb6af5</ID> - <Left>504</Left> - <Top>283.71238938053096</Top> - <Width>192</Width> - <Height>67.88938053097354</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>valve</Text> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>a79322a7-fbb8-469b-a4d9-a0ffb3c17a5d</ID> - <Left>639</Left> - <Top>358.69469026548683</Top> - <Width>134</Width> - <Height>99.300884955752167</Height> - <Angle>0</Angle> - <ItemGuid>94F3E5A1-413E-4EA0-BDE1-F0625BFF7910</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>979459b4-b609-487f-b6d7-55f435659658</ID> - <Left>1027</Left> - <Top>391.93362831858775</Top> - <Width>118</Width> - <Height>93.221238938053034</Height> - <Angle>0</Angle> - <ItemGuid>FE0D0A56-5795-4C5A-8E09-939FBB35C441</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>8b11bfca-091d-4461-8713-ba2fd9c8484e</ID> - <Left>432</Left> - <Top>511.69911504424789</Top> - <Width>461</Width> - <Height>250.27876106194691</Height> - <Angle>0</Angle> - <ItemGuid>94F3E5A1-413E-4EA0-BDE1-F0625BFF7910</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>419</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>2</DecimalPlaces> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>8aa4b451-71d6-429c-94e4-2581e3c62a7a</ID> - <Left>956</Left> - <Top>513.80973451327361</Top> - <Width>461</Width> - <Height>250.27876106194691</Height> - <Angle>0</Angle> - <ItemGuid>FE0D0A56-5795-4C5A-8E09-939FBB35C441</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>419</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>2</DecimalPlaces> - </TechItem> - <TechItem xsi:type="BlowerItem"> - <ID>1f85047c-0b3e-49c6-a80a-c2585de00a81</ID> - <Left>288</Left> - <Top>366.80088495575222</Top> - <Width>217</Width> - <Height>97.2743362831859</Height> - <Angle>0</Angle> - <ItemGuid>B6FE07F8-2435-495D-ABFE-358C76812413</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>c296a84d-7af4-4a26-9a35-0b82d378edce</ID> - <Left>41</Left> - <Top>351.6017699115045</Top> - <Width>209</Width> - <Height>120.57964601769913</Height> - <Angle>0</Angle> - <ItemGuid>1778C1A7-AFB5-42F9-9E00-E80D30D9FC0A</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="ControllerItem"> - <ID>ab6714cc-04d8-471f-a263-db28c30e229d</ID> - <Left>59</Left> - <Top>550.2035398230089</Top> - <Width>294</Width> - <Height>171.24336283185835</Height> - <Angle>0</Angle> - <ItemGuid>78482AA4-3DF6-421F-944C-64328D3C3EF2</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <OptimalRangeMinimum>0</OptimalRangeMinimum> - <OptimalRangeMaximum>7000</OptimalRangeMaximum> - <IsSetToDefault>true</IsSetToDefault> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>cde1d5a8-7238-44b8-8d4e-30a2dba70c12</ID> - <Left>1294</Left> - <Top>166.17256637168146</Top> - <Width>217</Width> - <Height>132.73893805309734</Height> - <Angle>0</Angle> - <ItemGuid>2a454081-bd5e-41de-ae5d-97aefe1d76de</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - </Items> - </MachineTechViewProjectTab> - <MachineTechViewProjectTab> - <Name>disp</Name> - <Items> - <TechItem xsi:type="SingleGraphItem"> - <ID>f9531a72-3742-47a7-86bb-b589f8b3eb55</ID> - <Left>123</Left> - <Top>128.33628318584061</Top> - <Width>390</Width> - <Height>249.67699115047321</Height> - <Angle>0</Angle> - <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>3600</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>3</DecimalPlaces> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>aae29286-81b3-476a-9f58-c0fd246cae96</ID> - <Left>880</Left> - <Top>158.81415929204155</Top> - <Width>442</Width> - <Height>241.88495575221771</Height> - <Angle>0</Angle> - <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>3600</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>3</DecimalPlaces> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>7d94c7c4-1288-4f9d-b0e6-a06794829642</ID> - <Left>1055</Left> - <Top>14.181415929203524</Top> - <Width>161</Width> - <Height>111.46017699115049</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>Y</Text> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>c95f9ad1-b607-4606-8217-400bea76f3d6</ID> - <Left>384</Left> - <Top>23.991150442480944</Top> - <Width>161</Width> - <Height>111.46017699115049</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>C</Text> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>8f141fa5-fb24-4557-adcf-a6aa55a28fb4</ID> - <Left>121</Left> - <Top>-8.8495575221214722</Top> - <Width>169</Width> - <Height>132.73893805309734</Height> - <Angle>0</Angle> - <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>3</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>7eab018a-ef43-4bca-a6cf-857d69767bba</ID> - <Left>839</Left> - <Top>-4.7079646017762684</Top> - <Width>169</Width> - <Height>132.73893805309734</Height> - <Angle>0</Angle> - <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>3</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorRecorderItem"> - <ID>2a9e89d4-5d60-4a83-9527-cb77fdf35c14</ID> - <Left>1276</Left> - <Top>22.287610619469035</Top> - <Width>187</Width> - <Height>102.34070796460179</Height> - <Angle>0</Angle> - <ColorNumber>-1</ColorNumber> - <SelectedMonitorsGuids> - <string>1F0F907A-EC16-4386-AFC8-B2B156F2A822</string> - <string>A499E5E0-A812-4032-8F96-B38C6762C4BD</string> - <string>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</string> - <string>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</string> - <string>19645882-6587-4A50-BD85-AF06617DC654</string> - <string>96B89605-F999-43FE-A1CD-2645BFB33A36</string> - <string>84CF23C9-D20D-4C08-BE1D-80201FC43C06</string> - <string>C0BCCD5C-346B-4C4A-A080-39D28E9E1A0C</string> - <string>10102BC3-0EAE-47FF-A8E5-8640780CAA3D</string> - <string>FC60060A-3736-4910-B41A-FF6DABDF0E9E</string> - <string>5F12B974-2C9E-4DDD-9B20-733251A5D7E6</string> - <string>D126DB23-784B-4F0C-8F88-D89A65A7549F</string> - </SelectedMonitorsGuids> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>6d2e7962-b3ae-4682-b20e-9654f48dcffe</ID> - <Left>587</Left> - <Top>5.0619469026548813</Top> - <Width>155</Width> - <Height>131.72566371681415</Height> - <Angle>0</Angle> - <ItemGuid>2CC8E461-E91F-4D4C-A402-922477F06C87</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>500</Speed> - <DisplayName>Dispenser 1</DisplayName> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>5ee2718f-f068-427b-a31e-d586c7d7682c</ID> - <Left>131</Left> - <Top>552.94690265486338</Top> - <Width>390</Width> - <Height>249.67699115047321</Height> - <Angle>0</Angle> - <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>3600</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>3</DecimalPlaces> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>1c254a92-c075-453f-9667-cdcc91cf8e6a</ID> - <Left>399</Left> - <Top>455.67256637168265</Top> - <Width>161</Width> - <Height>111.46017699115049</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>K</Text> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>d1087b1a-c36b-4242-96f5-07c2bb602cc4</ID> - <Left>145</Left> - <Top>409.52212389380446</Top> - <Width>169</Width> - <Height>132.73893805309734</Height> - <Angle>0</Angle> - <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>3</DecimalPoints> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>53fe93a2-88a5-4d4d-9cd5-eb4d8a8fefae</ID> - <Left>604</Left> - <Top>561.16371681414739</Top> - <Width>390</Width> - <Height>249.67699115047321</Height> - <Angle>0</Angle> - <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>3600</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>3</DecimalPlaces> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>0bef6e9d-6da0-4f06-9e1a-c00142bde4c1</ID> - <Left>832</Left> - <Top>440.91150442477635</Top> - <Width>161</Width> - <Height>111.46017699115049</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>M</Text> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>762c5a97-a3bc-45b4-aa9f-0b50afa9cb9b</ID> - <Left>633</Left> - <Top>434.0132743362783</Top> - <Width>169</Width> - <Height>132.73893805309734</Height> - <Angle>0</Angle> - <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>3</DecimalPoints> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>be584f80-3250-494c-87fc-250d6deae051</ID> - <Left>1045</Left> - <Top>559.4070796459921</Top> - <Width>390</Width> - <Height>249.67699115047321</Height> - <Angle>0</Angle> - <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>3600</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>3</DecimalPlaces> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>39f6a02c-c4d9-47d0-b92d-bdea0ed5d3ce</ID> - <Left>1056</Left> - <Top>435.43805309733875</Top> - <Width>169</Width> - <Height>132.73893805309734</Height> - <Angle>0</Angle> - <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>3</DecimalPoints> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>5b924929-9b16-4598-94cc-b2f4bca26798</ID> - <Left>1304</Left> - <Top>448.0884955752224</Top> - <Width>161</Width> - <Height>111.46017699115049</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>TI</Text> - </TechItem> - <TechItem xsi:type="ValveItem"> - <ID>89ae1fa5-1ad1-469e-ae76-0a29c35805cd</ID> - <Left>588</Left> - <Top>317.1504424778762</Top> - <Width>283</Width> - <Height>74.982300884955748</Height> - <Angle>0</Angle> - <ItemGuid>E144A221-4859-4DC3-9A7E-4A2969FB0826</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="ValveItem"> - <ID>c218cf34-74c2-41bb-8c3b-3030abce451a</ID> - <Left>1363</Left> - <Top>384.02654867256643</Top> - <Width>156</Width> - <Height>94.234513274336337</Height> - <Angle>0</Angle> - <ItemGuid>E144A221-4859-4DC3-9A7E-4A2969FB0826</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="ValveItem"> - <ID>75af30c6-d7f8-4745-bfb5-d6dc5d50479a</ID> - <Left>767</Left> - <Top>362.74778761061958</Top> - <Width>283</Width> - <Height>74.982300884955748</Height> - <Angle>0</Angle> - <ItemGuid>E144A221-4859-4DC3-9A7E-4A2969FB0826</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>df1fd958-fd8a-4b00-98e1-679455494d60</ID> - <Left>309</Left> - <Top>13.168141592920392</Top> - <Width>112</Width> - <Height>107.40707964601768</Height> - <Angle>0</Angle> - <ItemGuid>3174ADCF-5793-4B5A-A3C6-B96E146A903D</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>f07225b3-1522-4cb6-9ba8-5b9697f05467</ID> - <Left>1180</Left> - <Top>60.7920353982301</Top> - <Width>102</Width> - <Height>88.1548672566372</Height> - <Angle>0</Angle> - <ItemGuid>E2F0FC31-CE7E-416B-ACEA-8EB6CA9B850B</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>45b87322-e1f5-42eb-88c6-71c2eeb2899a</ID> - <Left>1258</Left> - <Top>463.06194690265494</Top> - <Width>88</Width> - <Height>75.995575221239</Height> - <Angle>0</Angle> - <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C09F</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>0c1c25e8-3ce3-4994-bbb9-bd6b2367a413</ID> - <Left>810</Left> - <Top>462.04867256637175</Top> - <Width>77</Width> - <Height>80.048672566371636</Height> - <Angle>0</Angle> - <ItemGuid>AD50C358-5BAF-4A2F-8593-51A22C85B3D1</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>fa2f697e-b229-418a-bae6-78b92bf0458b</ID> - <Left>336</Left> - <Top>428.61061946902663</Top> - <Width>95</Width> - <Height>96.261061946902657</Height> - <Angle>0</Angle> - <ItemGuid>84682E90-6926-42AA-BF8C-2CCCF5C26C97</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - </Items> - </MachineTechViewProjectTab> - <MachineTechViewProjectTab> - <Name>Priming</Name> - <Items> - <TechItem xsi:type="MonitorItem"> - <ID>ea45a516-9dac-4c9a-9261-0c44e22aa065</ID> - <Left>808</Left> - <Top>155.02654867256638</Top> - <Width>219</Width> - <Height>200.62831858407088</Height> - <Angle>0</Angle> - <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>3e2cb7dc-a5f3-4ba6-a520-2bae8ff0e4a8</ID> - <Left>832</Left> - <Top>451.91592920353986</Top> - <Width>332</Width> - <Height>326.27433628318596</Height> - <Angle>0</Angle> - <ItemGuid>C8D8FE90-0375-44A2-A6D1-E997789E065C</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>1200</Speed> - <DisplayName>Dispenser 2</DisplayName> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>6f8dfd8d-ed50-4923-b908-e0b5bc5d6ae5</ID> - <Left>154</Left> - <Top>131.72123893805315</Top> - <Width>474</Width> - <Height>410.37610619469024</Height> - <Angle>0</Angle> - <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>1942</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>1</DecimalPlaces> - </TechItem> - <TechItem xsi:type="ValveItem"> - <ID>604e031b-89c3-4c9d-90ef-7b861a77e5e0</ID> - <Left>243</Left> - <Top>595.80088495575228</Top> - <Width>497</Width> - <Height>189.48230088495575</Height> - <Angle>0</Angle> - <ItemGuid>8B1FCBC3-FEEA-4F87-B56F-CE5D28B7ACA4</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>c414ae0e-323a-48c1-9165-2c05cc4234c6</ID> - <Left>1291</Left> - <Top>584.65486725663732</Top> - <Width>200</Width> - <Height>171.24336283185835</Height> - <Angle>0</Angle> - <ItemGuid>0bd10306-2944-4cda-bc59-0264da2883d2</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - </Items> - </MachineTechViewProjectTab> - </Tabs> - <SelectedTabIndex>0</SelectedTabIndex> -</MachineTechViewProject>
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/technician view files/teach board 2.tpf b/Software/Stubs Collection/stubs/technician view files/teach board 2.tpf deleted file mode 100644 index f3580a1b0..000000000 --- a/Software/Stubs Collection/stubs/technician view files/teach board 2.tpf +++ /dev/null @@ -1,3144 +0,0 @@ -<?xml version="1.0"?> -<MachineTechViewProject xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> - <Items /> - <Tabs> - <MachineTechViewProjectTab> - <Name>Temperatures</Name> - <Items> - <TechItem xsi:type="DigitalOutItem"> - <ID>e4892498-fa1a-413c-9dd8-633efaade51c</ID> - <Left>415</Left> - <Top>692.74336283185824</Top> - <Width>160</Width> - <Height>102.34070796460173</Height> - <Angle>0</Angle> - <ItemGuid>6b9cba1d-4acf-4992-97ad-e422bca6ada2</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>a15665e3-af39-42d8-8c06-97d770632e10</ID> - <Left>928</Left> - <Top>593.77433628318579</Top> - <Width>207</Width> - <Height>184.4159292035398</Height> - <Angle>0</Angle> - <ItemGuid>6D6CFA18-5922-4AFE-84B3-2721CE128681</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>DryerAirHeater</HeaterType> - <SetPoint>180</SetPoint> - <CurrentValue>120.07</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>true</IsRampingUp> - <IsInSetPoint>false</IsInSetPoint> - </HeaterState> - <SetPoint>180</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>0ac64716-d30c-489b-939e-a26d06445866</ID> - <Left>828</Left> - <Top>682.88053097345</Top> - <Width>130</Width> - <Height>100.31415929203541</Height> - <Angle>0</Angle> - <ItemGuid>A5DFC2DB-3B36-4377-96A0-D492CE785C00</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>DryerMainHeater</HeaterType> - <SetPoint>100</SetPoint> - <CurrentValue>139.38</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>100</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>181796d8-64f6-420a-8f37-9af9df67d6a9</ID> - <Left>717</Left> - <Top>684.46902654867324</Top> - <Width>127</Width> - <Height>101.3274336283186</Height> - <Angle>0</Angle> - <ItemGuid>86808B48-B7F9-43AD-840E-2A6A5987C305</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>DryerSecondaryHeater</HeaterType> - <SetPoint>100</SetPoint> - <CurrentValue>145.96</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>100</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>fd2bb3a3-a411-470d-bde7-0beaf84da059</ID> - <Left>924</Left> - <Top>112.5486725663713</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>8E764A14-0F84-4FEC-928B-32A2509CAD57</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone3</HeaterType> - <SetPoint>120</SetPoint> - <CurrentValue>119.94</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>120</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>7e8dd386-cca6-4d07-8a3e-af5403756002</ID> - <Left>1103</Left> - <Top>115.97787610619525</Top> - <Width>200</Width> - <Height>187.45575221238937</Height> - <Angle>0</Angle> - <ItemGuid>B4EE8CC0-EE2B-4ABE-BF09-9226860E756B</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone2</HeaterType> - <SetPoint>100</SetPoint> - <CurrentValue>100.11</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>100</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>32a91e5f-27c8-490d-b187-8e39b6626a13</ID> - <Left>1302</Left> - <Top>109.1592920353977</Top> - <Width>157</Width> - <Height>194.54867256637175</Height> - <Angle>0</Angle> - <ItemGuid>27E7BB74-81C3-4EF2-80AE-962F111C441F</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone1</HeaterType> - <SetPoint>80</SetPoint> - <CurrentValue>80.13</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>80</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>c844235a-8a29-4c2e-a964-e8f546d2ced7</ID> - <Left>1140</Left> - <Top>588.70796460177</Top> - <Width>173</Width> - <Height>183.40265486725662</Height> - <Angle>0</Angle> - <ItemGuid>42A62A48-F1D5-4BB6-AFEA-6A7DF6DCF626</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>MixerHeater</HeaterType> - <SetPoint>80</SetPoint> - <CurrentValue>79.66</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>80</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>45b121b5-cf7c-41f7-8089-6d4d6b1ed2c8</ID> - <Left>743</Left> - <Top>113.36725663717004</Top> - <Width>169</Width> - <Height>197.27876106194645</Height> - <Angle>0</Angle> - <ItemGuid>94574D69-46E1-4144-A8B5-D4BF0DA96D18</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone4</HeaterType> - <SetPoint>120</SetPoint> - <CurrentValue>120.07</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>120</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>e6b3eb18-482b-450e-b8a8-d2ac6bba4fd4</ID> - <Left>542</Left> - <Top>109.74336283185721</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>D6771DF4-771E-4D62-B6BA-BDE361C0A0F3</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone5</HeaterType> - <SetPoint>135</SetPoint> - <CurrentValue>135.02</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>135</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>efff2e67-e3a3-4667-9208-4704707d7cda</ID> - <Left>353</Left> - <Top>108.93805309734404</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>D2B6CAA0-055E-4871-8D91-A5370F1ACB22</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone6</HeaterType> - <SetPoint>135</SetPoint> - <CurrentValue>135.11</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>135</SetPoint> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>f9936dba-cef8-41e3-a715-eb629dca1870</ID> - <Left>265</Left> - <Top>683.95575221238948</Top> - <Width>131</Width> - <Height>109.43362831858394</Height> - <Angle>0</Angle> - <ItemGuid>1778C1A7-AFB5-42F9-9E00-E80D30D9FC0A</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>5f2610dc-3b9d-4302-b8f5-77a5e1c73b8c</ID> - <Left>1027.9999999999973</Left> - <Top>291.07079646017547</Top> - <Width>44</Width> - <Height>42.557522123893705</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>D</Text> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>eadb5257-47a2-4336-a72a-f2d157fe70cb</ID> - <Left>907.99999999999909</Left> - <Top>295.35840707964616</Top> - <Width>44</Width> - <Height>42.557522123893705</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>F</Text> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>6c59af66-169a-46e0-89ae-a81e3e619043</ID> - <Left>785.00000000000159</Left> - <Top>288.5000000000004</Top> - <Width>44</Width> - <Height>42.557522123893705</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>I</Text> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>3b32b9a8-f300-443f-950e-c49f81678bac</ID> - <Left>624.99999999999966</Left> - <Top>285.86725663716874</Top> - <Width>44</Width> - <Height>42.557522123893705</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>L</Text> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>f6d44793-ed44-46ed-8854-eacbc11af10c</ID> - <Left>569</Left> - <Top>688.00884955752213</Top> - <Width>155</Width> - <Height>96.261061946902714</Height> - <Angle>0</Angle> - <ItemGuid>df38139e-0026-46bc-b72f-df5f9eec80f7</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="MonitorRecorderItem"> - <ID>43793f93-da64-4409-b583-bca498f641e6</ID> - <Left>1308</Left> - <Top>656.59734513274338</Top> - <Width>203</Width> - <Height>107.40707964601774</Height> - <Angle>0</Angle> - <ColorNumber>-1</ColorNumber> - <SelectedMonitorsGuids /> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>be9db1fd-d408-4f1c-a15a-d6ffe58fafb6</ID> - <Left>1292</Left> - <Top>343.56637168141606</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>188285E5-1493-4BED-8269-91743770A631</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone7</HeaterType> - <SetPoint>135</SetPoint> - <CurrentValue>135.13</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>135</SetPoint> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>f129ea0d-9abb-437f-928e-1cd1f569db2a</ID> - <Left>1190.0000000000025</Left> - <Top>294.69026548672929</Top> - <Width>39</Width> - <Height>38.504424778760836</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>C</Text> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>217c677a-3e11-4a7c-959b-616dae1259dd</ID> - <Left>1369</Left> - <Top>295.87168141592934</Top> - <Width>44</Width> - <Height>42.557522123893705</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>A</Text> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>381f67cf-b7c6-4f6d-b089-37130798a5d8</ID> - <Left>1107</Left> - <Top>342.55309734513293</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>461FA2D7-1918-4958-AAA7-37A1A329FA12</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone8</HeaterType> - <SetPoint>140</SetPoint> - <CurrentValue>139.92</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>140</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>3c923a93-4d15-4bbc-b1b3-be1876a77cfc</ID> - <Left>924</Left> - <Top>343.56637168141606</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>63E2AFE0-0746-4AAB-AA74-C26EC1F282AE</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone9</HeaterType> - <SetPoint>140</SetPoint> - <CurrentValue>140</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>140</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>26e078e6-df8c-4fbf-b10e-4b3f7c7e9500</ID> - <Left>359</Left> - <Top>342.55309734513304</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>2D578A37-D808-40D0-ACE4-4A868EDD6BDC</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone12</HeaterType> - <SetPoint>145</SetPoint> - <CurrentValue>145.06</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>145</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>7a8c3948-bb3d-4eb1-9276-315d34038f91</ID> - <Left>550</Left> - <Top>343.56637168141611</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>D41BBB23-6EB5-4743-89DB-9191000B475F</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone11</HeaterType> - <SetPoint>140</SetPoint> - <CurrentValue>140.2</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>140</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>f7d4c8ac-28cb-4779-83ef-3ede5e5a612c</ID> - <Left>738</Left> - <Top>344.57964601769908</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>B4D0A1C8-711C-49A9-82A3-B5B9F35FC131</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone10</HeaterType> - <SetPoint>140</SetPoint> - <CurrentValue>140.04</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>140</SetPoint> - </TechItem> - <TechItem xsi:type="ProcessParametersItem"> - <ID>120a9bea-5b5a-4ba4-92f5-40135f49a344</ID> - <Left>6</Left> - <Top>535.07522123893818</Top> - <Width>338</Width> - <Height>137.80530973451323</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <ProcessParameters> - <ID>0</ID> - <Guid>674d92c5-e6f8-4a62-bc62-b8e2fe0882a0</Guid> - <LastUpdated>2020-01-14T07:44:15.1425366Z</LastUpdated> - <Name>Process parameters 2</Name> - <DyeingSpeed>0</DyeingSpeed> - <MinInkUptake>0</MinInkUptake> - <MaxInkUptake>0</MaxInkUptake> - <FeederTension>0</FeederTension> - <PullerTension>0</PullerTension> - <WinderTension>0</WinderTension> - <MixerTemp>0</MixerTemp> - <HeadZone1Temp>0</HeadZone1Temp> - <HeadZone2Temp>0</HeadZone2Temp> - <HeadZone3Temp>0</HeadZone3Temp> - <HeadZone4Temp>0</HeadZone4Temp> - <HeadZone5Temp>0</HeadZone5Temp> - <HeadZone6Temp>0</HeadZone6Temp> - <DryerAirFlow>7</DryerAirFlow> - <DryerZone1Temp>0</DryerZone1Temp> - <DryerZone2Temp>0</DryerZone2Temp> - <DryerZone3Temp>0</DryerZone3Temp> - <DryerBufferLength>0</DryerBufferLength> - <HeadAirFlow>7</HeadAirFlow> - <TableIndex>0</TableIndex> - <HeadZone7Temp>0</HeadZone7Temp> - <HeadZone8Temp>0</HeadZone8Temp> - <HeadZone9Temp>0</HeadZone9Temp> - <HeadZone10Temp>0</HeadZone10Temp> - <HeadZone11Temp>0</HeadZone11Temp> - <HeadZone12Temp>0</HeadZone12Temp> - <RBlowerFlow>0</RBlowerFlow> - <RBlowerTemp>0</RBlowerTemp> - <LBlowerFlow>0</LBlowerFlow> - <LBlowerTemp>0</LBlowerTemp> - <PressureBuildUp>0</PressureBuildUp> - </ProcessParameters> - <ParametersIndices> - <ParameterIndex> - <Name>Name</Name> - <Index>0</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dyeing Speed</Name> - <Index>1</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Min Ink Uptake</Name> - <Index>2</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Max Ink Uptake</Name> - <Index>3</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Feeder Tension</Name> - <Index>4</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Puller Tension</Name> - <Index>5</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Winder Tension</Name> - <Index>6</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Mixer Temp</Name> - <Index>7</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 1 Temp</Name> - <Index>8</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 2 Temp</Name> - <Index>9</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 3 Temp</Name> - <Index>10</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 4 Temp</Name> - <Index>11</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 5 Temp</Name> - <Index>12</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 6 Temp</Name> - <Index>13</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Air Flow</Name> - <Index>14</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Zone 1 Temp</Name> - <Index>15</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Zone 2 Temp</Name> - <Index>16</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Zone 3 Temp</Name> - <Index>17</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Buffer Length</Name> - <Index>18</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Air Flow</Name> - <Index>19</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Process Parameters Tables Group Guid</Name> - <Index>20</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Table Index</Name> - <Index>21</Index> - </ParameterIndex> - </ParametersIndices> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>e502555c-95b0-4688-b5e3-8becb30fc62c</ID> - <Left>1463.875</Left> - <Top>114.15828441251023</Top> - <Width>200</Width> - <Height>187.45575221238937</Height> - <Angle>0</Angle> - <ItemGuid>F8C1BA7F-F6DF-414D-BAF5-D4CB292F91F6</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeadCoverHeater1</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>283.75</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>0f7a35fc-e363-45b2-948d-ba66f91e4f0d</ID> - <Left>1457.8333333333333</Left> - <Top>344.58910891089096</Top> - <Width>200</Width> - <Height>187.45575221238937</Height> - <Angle>0</Angle> - <ItemGuid>F39B952A-6194-4055-A5CB-A3421BFE0F9B</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeadCoverHeater2</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>283.75</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>0214c2bd-98e2-4435-b55f-ec165b0782dd</ID> - <Left>532</Left> - <Top>587.69469026548677</Top> - <Width>163</Width> - <Height>77.008849557522126</Height> - <Angle>0</Angle> - <ItemGuid>FE0D0A56-5795-4C5A-8E09-939FBB35C441</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>387e9a45-e608-47b8-9f3c-5572d0544e41</ID> - <Left>708</Left> - <Top>584.65486725663732</Top> - <Width>168</Width> - <Height>84.101769911504334</Height> - <Angle>0</Angle> - <ItemGuid>94F3E5A1-413E-4EA0-BDE1-F0625BFF7910</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="BlowerItem"> - <ID>18f62f2f-dbc0-4a3e-8af6-efdffc9562a5</ID> - <Left>12</Left> - <Top>699.86283185840716</Top> - <Width>234</Width> - <Height>96.2610619469026</Height> - <Angle>0</Angle> - <ItemGuid>B6FE07F8-2435-495D-ABFE-358C76812413</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>cb7b89a1-cdb4-408e-acc8-40e8dcb8d6ac</ID> - <Left>146</Left> - <Top>4.8628318584048884</Top> - <Width>172</Width> - <Height>77.336283185840216</Height> - <Angle>0</Angle> - <ItemGuid>9F98B9D3-F989-4D03-90E8-721671835E0B</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>6be6ca7d-3ca6-4206-9c67-415174b71ace</ID> - <Left>340</Left> - <Top>7.4336283185855336</Top> - <Width>180</Width> - <Height>72.305309734513685</Height> - <Angle>0</Angle> - <ItemGuid>D59EFB38-79D9-446C-BCB5-92D8FDA900E4</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>2dca972d-3c41-4b07-a047-b63a23470a7e</ID> - <Left>347</Left> - <Top>574.92035398230325</Top> - <Width>160</Width> - <Height>102.34070796460173</Height> - <Angle>0</Angle> - <ItemGuid>75f69efe-1c7e-4015-a6eb-2686d4f67a67</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="ProcessParametersItem"> - <ID>38e5d1ac-40a5-4c5f-822c-51813cb15b7b</ID> - <Left>31</Left> - <Top>144.3584070796461</Top> - <Width>310</Width> - <Height>315.12831858407088</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <ProcessParameters> - <ID>0</ID> - <Guid>ce709f03-59be-410d-a928-e942c0c46ce3</Guid> - <LastUpdated>2020-02-09T12:45:24.1272815Z</LastUpdated> - <Name>Process parameters 6</Name> - <DyeingSpeed>50</DyeingSpeed> - <MinInkUptake>0</MinInkUptake> - <MaxInkUptake>0</MaxInkUptake> - <FeederTension>0</FeederTension> - <PullerTension>5000</PullerTension> - <WinderTension>5000</WinderTension> - <MixerTemp>80</MixerTemp> - <HeadZone1Temp>80</HeadZone1Temp> - <HeadZone2Temp>90</HeadZone2Temp> - <HeadZone3Temp>110</HeadZone3Temp> - <HeadZone4Temp>120</HeadZone4Temp> - <HeadZone5Temp>130</HeadZone5Temp> - <HeadZone6Temp>135</HeadZone6Temp> - <DryerAirFlow>7</DryerAirFlow> - <DryerZone1Temp>190</DryerZone1Temp> - <DryerZone2Temp>0</DryerZone2Temp> - <DryerZone3Temp>0</DryerZone3Temp> - <DryerBufferLength>0</DryerBufferLength> - <HeadAirFlow>7</HeadAirFlow> - <TableIndex>0</TableIndex> - <HeadZone7Temp>135</HeadZone7Temp> - <HeadZone8Temp>135</HeadZone8Temp> - <HeadZone9Temp>135</HeadZone9Temp> - <HeadZone10Temp>135</HeadZone10Temp> - <HeadZone11Temp>140</HeadZone11Temp> - <HeadZone12Temp>140</HeadZone12Temp> - <RBlowerFlow>0</RBlowerFlow> - <RBlowerTemp>0</RBlowerTemp> - <LBlowerFlow>0</LBlowerFlow> - <LBlowerTemp>0</LBlowerTemp> - <PressureBuildUp>0</PressureBuildUp> - </ProcessParameters> - <ParametersIndices> - <ParameterIndex> - <Name>Process Parameters Tables Group Guid</Name> - <Index>0</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Name</Name> - <Index>1</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Table Index</Name> - <Index>2</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dyeing Speed</Name> - <Index>3</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Min Ink Uptake</Name> - <Index>4</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Max Ink Uptake</Name> - <Index>5</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Feeder Tension</Name> - <Index>6</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Puller Tension</Name> - <Index>7</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Winder Tension</Name> - <Index>8</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Mixer Temp</Name> - <Index>9</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 1 Temp</Name> - <Index>10</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 2 Temp</Name> - <Index>11</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 3 Temp</Name> - <Index>12</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 4 Temp</Name> - <Index>13</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 5 Temp</Name> - <Index>14</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 6 Temp</Name> - <Index>15</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 7 Temp</Name> - <Index>16</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 8 Temp</Name> - <Index>17</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 9 Temp</Name> - <Index>18</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 10 Temp</Name> - <Index>19</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 11 Temp</Name> - <Index>20</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 12 Temp</Name> - <Index>21</Index> - </ParameterIndex> - <ParameterIndex> - <Name>St Sp Zone 1 Temp</Name> - <Index>22</Index> - </ParameterIndex> - <ParameterIndex> - <Name>St Sp Zone 2 Temp</Name> - <Index>23</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Zone 1 Temp</Name> - <Index>24</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Zone 2 Temp</Name> - <Index>25</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Zone 3 Temp</Name> - <Index>26</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Air Flow</Name> - <Index>27</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Air Flow</Name> - <Index>28</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Buffer Length</Name> - <Index>29</Index> - </ParameterIndex> - </ParametersIndices> - </TechItem> - <TechItem xsi:type="ProcessParametersItem"> - <ID>d2e09fbf-2ac8-4c32-a4f5-45e50e305098</ID> - <Left>1016</Left> - <Top>821.96460176991263</Top> - <Width>361</Width> - <Height>233.95575221238948</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <ProcessParameters> - <ID>0</ID> - <Guid>9b265a7c-cc48-4c5a-abed-dfa8c8e3099f</Guid> - <LastUpdated>2020-02-09T13:11:03.3185652Z</LastUpdated> - <Name>Process parameters 2</Name> - <DyeingSpeed>0</DyeingSpeed> - <MinInkUptake>0</MinInkUptake> - <MaxInkUptake>0</MaxInkUptake> - <FeederTension>0</FeederTension> - <PullerTension>0</PullerTension> - <WinderTension>0</WinderTension> - <MixerTemp>0</MixerTemp> - <HeadZone1Temp>0</HeadZone1Temp> - <HeadZone2Temp>0</HeadZone2Temp> - <HeadZone3Temp>0</HeadZone3Temp> - <HeadZone4Temp>0</HeadZone4Temp> - <HeadZone5Temp>0</HeadZone5Temp> - <HeadZone6Temp>0</HeadZone6Temp> - <DryerAirFlow>0</DryerAirFlow> - <DryerZone1Temp>100</DryerZone1Temp> - <DryerZone2Temp>0</DryerZone2Temp> - <DryerZone3Temp>0</DryerZone3Temp> - <DryerBufferLength>0</DryerBufferLength> - <HeadAirFlow>0</HeadAirFlow> - <TableIndex>0</TableIndex> - <HeadZone7Temp>0</HeadZone7Temp> - <HeadZone8Temp>0</HeadZone8Temp> - <HeadZone9Temp>0</HeadZone9Temp> - <HeadZone10Temp>0</HeadZone10Temp> - <HeadZone11Temp>0</HeadZone11Temp> - <HeadZone12Temp>0</HeadZone12Temp> - <RBlowerFlow>0</RBlowerFlow> - <RBlowerTemp>0</RBlowerTemp> - <LBlowerFlow>0</LBlowerFlow> - <LBlowerTemp>0</LBlowerTemp> - <PressureBuildUp>0</PressureBuildUp> - </ProcessParameters> - <ParametersIndices> - <ParameterIndex> - <Name>Name</Name> - <Index>0</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dyeing Speed</Name> - <Index>1</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Min Ink Uptake</Name> - <Index>2</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Max Ink Uptake</Name> - <Index>3</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Feeder Tension</Name> - <Index>4</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Puller Tension</Name> - <Index>5</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Winder Tension</Name> - <Index>6</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Mixer Temp</Name> - <Index>7</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 1 Temp</Name> - <Index>8</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 2 Temp</Name> - <Index>9</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 3 Temp</Name> - <Index>10</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 4 Temp</Name> - <Index>11</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 5 Temp</Name> - <Index>12</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 6 Temp</Name> - <Index>13</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Air Flow</Name> - <Index>14</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Zone 1 Temp</Name> - <Index>15</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Zone 2 Temp</Name> - <Index>16</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Zone 3 Temp</Name> - <Index>17</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Buffer Length</Name> - <Index>18</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Air Flow</Name> - <Index>19</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Process Parameters Tables Group Guid</Name> - <Index>20</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Table Index</Name> - <Index>21</Index> - </ParameterIndex> - </ParametersIndices> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>11f4748e-ed30-48d6-a08a-afeaa0277e2e</ID> - <Left>548</Left> - <Top>7.0132743362775614</Top> - <Width>185</Width> - <Height>69.3451327433653</Height> - <Angle>0</Angle> - <ItemGuid>1778C1A7-AFB5-42F9-9E00-E80D30D9FC02</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>dcf78507-ea09-4529-b635-ec1eeed31141</ID> - <Left>145</Left> - <Top>842.58849557522137</Top> - <Width>357</Width> - <Height>215.82743362831855</Height> - <Angle>0</Angle> - <ItemGuid>FE0D0A56-5795-4C5A-8E09-939FBB35C441</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>2</DecimalPlaces> - <Duration>1275</Duration> - <UseAutoRange>true</UseAutoRange> - <Min>0</Min> - <Max>100</Max> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>85d4727d-4be2-4854-8584-5fcb0a1bb19f</ID> - <Left>759</Left> - <Top>8.9778761061942873</Top> - <Width>164</Width> - <Height>70.929203539822993</Height> - <Angle>0</Angle> - <ItemGuid>055D0A38-09BD-490D-9852-12B06A4B22F2</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>09b1e471-50a5-41e4-9dea-d16518fb3b59</ID> - <Left>1330</Left> - <Top>581.61504424778764</Top> - <Width>178</Width> - <Height>70.929203539822993</Height> - <Angle>0</Angle> - <ItemGuid>79AD6611-82A2-4B4C-AB5E-A11A33E1243D</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>3</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>fa6e2e6b-d807-415a-a04a-ca5877cf1838</ID> - <Left>948</Left> - <Top>9.3185840707968737</Top> - <Width>182</Width> - <Height>72.783185840710189</Height> - <Angle>0</Angle> - <ItemGuid>F1DF490B-0577-4FA7-ACA1-0EEF4F934100</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>13640918-ad09-4aa8-8d5b-f3da45179831</ID> - <Left>1157</Left> - <Top>5.8185840707953389</Top> - <Width>173</Width> - <Height>81.265486725664175</Height> - <Angle>0</Angle> - <ItemGuid>79AD6611-82A2-4B4C-AB5E-A11A33E1243D</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - </Items> - </MachineTechViewProjectTab> - <MachineTechViewProjectTab> - <Name>Thread</Name> - <Items> - <TechItem xsi:type="MonitorItem"> - <ID>50bae43f-8b1a-4279-9238-b976a0c72af3</ID> - <Left>1530</Left> - <Top>193.19911504424795</Top> - <Width>169</Width> - <Height>181.37610619469029</Height> - <Angle>0</Angle> - <ItemGuid>A8DB1D27-6B25-4FB4-A3F5-46A29BA51955</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>68eef943-2151-4df5-be61-044c3865606e</ID> - <Left>1172</Left> - <Top>145.78318584070678</Top> - <Width>175</Width> - <Height>167.827433628319</Height> - <Angle>0</Angle> - <ItemGuid>96B89605-F999-43FE-A1CD-2645BFB33A36</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>6be024c6-3d1b-4267-9b77-44473aba56b7</ID> - <Left>988</Left> - <Top>143.32300884955998</Top> - <Width>190</Width> - <Height>167.09734513274049</Height> - <Angle>0</Angle> - <ItemGuid>FC60060A-3736-4910-B41A-FF6DABDF0E9E</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>7c720f3b-00e1-49dd-92f9-fdd1e9686623</ID> - <Left>817</Left> - <Top>142.42035398230098</Top> - <Width>169</Width> - <Height>168.31858407079625</Height> - <Angle>0</Angle> - <ItemGuid>4CE6A82E-D841-4D33-BBB2-11F0743A441C</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>3ebd6759-521b-4ed1-a353-ee1ad7801f28</ID> - <Left>922</Left> - <Top>516.43362831858417</Top> - <Width>439</Width> - <Height>304.995575221239</Height> - <Angle>0</Angle> - <ItemGuid>D126DB23-784B-4F0C-8F88-D89A65A7549F</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>1</DecimalPlaces> - <Duration>1460</Duration> - <UseAutoRange>true</UseAutoRange> - <Min>0</Min> - <Max>16384</Max> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>984b4126-3dda-4624-a79f-0646eb0e1358</ID> - <Left>465</Left> - <Top>515.420353982301</Top> - <Width>439</Width> - <Height>304.995575221239</Height> - <Angle>0</Angle> - <ItemGuid>10102BC3-0EAE-47FF-A8E5-8640780CAA3D</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>1</DecimalPlaces> - <Duration>1516</Duration> - <UseAutoRange>true</UseAutoRange> - <Min>0</Min> - <Max>16384</Max> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>8ebc3ab7-a02d-4b12-93b3-2563443831d7</ID> - <Left>15</Left> - <Top>518.46017699115032</Top> - <Width>439</Width> - <Height>304.995575221239</Height> - <Angle>0</Angle> - <ItemGuid>C0BCCD5C-346B-4C4A-A080-39D28E9E1A0C</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>1</DecimalPlaces> - <Duration>1398</Duration> - <UseAutoRange>true</UseAutoRange> - <Min>0</Min> - <Max>16384</Max> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>acafb268-5e97-4277-8dc8-173250a9e3f8</ID> - <Left>12</Left> - <Top>13.849557522123973</Top> - <Width>439</Width> - <Height>304.995575221239</Height> - <Angle>0</Angle> - <ItemGuid>9FBC5460-BA59-486B-8D85-BD7D8A959F98</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>1</DecimalPlaces> - <Duration>1273</Duration> - <UseAutoRange>true</UseAutoRange> - <Min>0</Min> - <Max>100</Max> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>be4cb8d9-b516-4604-a6a5-1638cbc50251</ID> - <Left>860</Left> - <Top>-24.18584070796669</Top> - <Width>345</Width> - <Height>169.21681415929209</Height> - <Angle>0</Angle> - <ItemGuid>4CE6A82E-D841-4D33-BBB2-11F0743A441C</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>1</DecimalPlaces> - <Duration>514</Duration> - <UseAutoRange>true</UseAutoRange> - <Min>0</Min> - <Max>100000</Max> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>75b99507-4eba-4b11-b52e-26732d4c5479</ID> - <Left>19</Left> - <Top>324.14159292035305</Top> - <Width>429</Width> - <Height>193.26548672566258</Height> - <Angle>0</Angle> - <ItemGuid>F1DF490B-0577-4FA7-ACA1-0EEF4F934E8F</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>4</DecimalPlaces> - <Duration>1398</Duration> - <UseAutoRange>true</UseAutoRange> - <Min>0</Min> - <Max>100</Max> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>a30e48de-be76-4230-92d0-d27d6f37b940</ID> - <Left>478</Left> - <Top>328.89823008849282</Top> - <Width>429</Width> - <Height>193.26548672566258</Height> - <Angle>0</Angle> - <ItemGuid>5F12B974-2C9E-4DDD-9B20-733251A5D7E6</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>4</DecimalPlaces> - <Duration>1398</Duration> - <UseAutoRange>true</UseAutoRange> - <Min>0</Min> - <Max>100</Max> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>5ac4b368-093a-4192-98d4-e9d24f229b13</ID> - <Left>928</Left> - <Top>321.64601769912122</Top> - <Width>429</Width> - <Height>193.26548672566258</Height> - <Angle>0</Angle> - <ItemGuid>84CF23C9-D20D-4C08-BE1D-80201FC43C06</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>4</DecimalPlaces> - <Duration>1398</Duration> - <UseAutoRange>true</UseAutoRange> - <Min>0</Min> - <Max>100</Max> - </TechItem> - <TechItem xsi:type="MonitorRecorderItem"> - <ID>9c34dc69-cfaa-48b4-9d02-8f0d9bba79dd</ID> - <Left>1303</Left> - <Top>34.380530973454768</Top> - <Width>176</Width> - <Height>83.05309734512457</Height> - <Angle>0</Angle> - <ColorNumber>-1</ColorNumber> - <SelectedMonitorsGuids> - <string>89B7B89D-8050-4188-B568-35B1910CFB6F</string> - <string>96B89605-F999-43FE-A1CD-2645BFB33A36</string> - <string>84CF23C9-D20D-4C08-BE1D-80201FC43C06</string> - <string>FC60060A-3736-4910-B41A-FF6DABDF0E9E</string> - <string>5F12B974-2C9E-4DDD-9B20-733251A5D7E6</string> - <string>9ADF7823-B293-4275-9999-F62474D246AA</string> - <string>4CE6A82E-D841-4D33-BBB2-11F0743A441C</string> - <string>F1DF490B-0577-4FA7-ACA1-0EEF4F934E8F</string> - </SelectedMonitorsGuids> - </TechItem> - <TechItem xsi:type="ThreadMotionItem"> - <ID>be5b2c37-4481-4293-b957-bf65d8516fee</ID> - <Left>464</Left> - <Top>21.274336283185846</Top> - <Width>315</Width> - <Height>177.3230088495576</Height> - <Angle>0</Angle> - <ColorNumber>-1</ColorNumber> - <Speed>20</Speed> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>aace77b8-02ca-4c88-abc1-590fc2592b99</ID> - <Left>1355</Left> - <Top>146.70796460176933</Top> - <Width>175</Width> - <Height>167.827433628319</Height> - <Angle>0</Angle> - <ItemGuid>89B7B89D-8050-4188-B568-35B1910CFB6F</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - </Items> - </MachineTechViewProjectTab> - <MachineTechViewProjectTab> - <Name>Dispensers</Name> - <Items> - <TechItem xsi:type="DispenserItem"> - <ID>dce78f33-c966-4848-8c6e-a4a01dbc7577</ID> - <Left>1322.1428571428571</Left> - <Top>214.15929203538531</Top> - <Width>159</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>2CC8E461-E91F-4D4C-A402-922477F06C87</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>800</Speed> - <DisplayName>Dispenser 1</DisplayName> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>2d03fc19-0502-43e1-a3ff-4012a612112b</ID> - <Left>1149</Left> - <Top>218.48230088495342</Top> - <Width>159</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>2CC8E461-E91F-4D4C-A402-922477F06C87</ItemGuid> - <ColorNumber>-16724737</ColorNumber> - <Speed>1200</Speed> - <DisplayName>Dispenser 2</DisplayName> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>81958374-3fa3-48b3-a554-5653fe1934b1</ID> - <Left>959</Left> - <Top>210.32743362830422</Top> - <Width>156</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>08ED9044-CAD6-4492-94B2-C07206E0164B</ItemGuid> - <ColorNumber>-65325</ColorNumber> - <Speed>1200</Speed> - <DisplayName>Dispenser 3</DisplayName> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>8fead411-7198-4428-a364-e32f3035ed94</ID> - <Left>775</Left> - <Top>206.42920353980952</Top> - <Width>159</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>179F34BB-3252-4D3A-965C-E6EB43D6FE7C</ItemGuid> - <ColorNumber>-524544</ColorNumber> - <Speed>1200</Speed> - <DisplayName>Dispenser 4</DisplayName> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>31bfa89f-e64d-4a3b-8585-c4a1b2e5a139</ID> - <Left>585</Left> - <Top>208.47345132741418</Top> - <Width>159</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>716B35CF-46E0-47D5-AF85-5233D212568F</ItemGuid> - <ColorNumber>-2108246</ColorNumber> - <Speed>1200</Speed> - <DisplayName>Dispenser 5</DisplayName> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>c2bff5f3-6dc9-4b07-87ba-9e3a5814804e</ID> - <Left>372</Left> - <Top>216.75221238937439</Top> - <Width>159</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>99528449-4D76-4874-AB95-522951560E01</ItemGuid> - <ColorNumber>-263685</ColorNumber> - <Speed>1200</Speed> - <DisplayName>Dispenser 6</DisplayName> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>071281a5-3569-4a62-8b68-7bea850a3c07</ID> - <Left>217</Left> - <Top>211.63716814158107</Top> - <Width>159</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>E8ED07E2-7C36-459C-B9E5-6A23A1E24F03</ItemGuid> - <ColorNumber>-723724</ColorNumber> - <Speed>1200</Speed> - <DisplayName>Dispenser 7</DisplayName> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>7b703b9a-a626-4ae5-8e31-fa1cfe5718f4</ID> - <Left>45</Left> - <Top>216.04867256635521</Top> - <Width>159</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>8A957565-4165-49F7-854D-D21F95FFBE1B</ItemGuid> - <ColorNumber>-724238</ColorNumber> - <Speed>1200</Speed> - <DisplayName>Dispenser 8</DisplayName> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>caca40a2-310c-452e-adcf-c28ee38f6bdc</ID> - <Left>1305</Left> - <Top>31.606194690259713</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid> - <ColorNumber>-15856114</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>af52d36f-27a2-4a31-8ceb-9c43fedbed22</ID> - <Left>1127</Left> - <Top>32.535398230081626</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> - <ColorNumber>-15293470</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>d40eada8-d22a-4521-bd2a-d998ed93106f</ID> - <Left>955</Left> - <Top>32.61946902653176</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid> - <ColorNumber>-1570857</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>b2d6364d-8b5c-43d2-8838-927c85b017b1</ID> - <Left>774</Left> - <Top>31.960176991142362</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid> - <ColorNumber>-1379575</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>3980e685-73b3-4af1-9593-9235be147322</ID> - <Left>596</Left> - <Top>32.889380530964274</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid> - <ColorNumber>-7763381</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>51465293-58d5-40a4-8302-81856f8b4f47</ID> - <Left>424</Left> - <Top>32.973451327414409</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>AF3FD56C-95BF-4DE1-8EDC-8426B0DB2A26</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>c2a8c5b2-891b-4f9f-862c-c1c294366c78</ID> - <Left>252</Left> - <Top>31.703539823006281</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>60DA9EA3-C8A6-4D41-8AD8-3EB1BAA79CC9</ItemGuid> - <ColorNumber>-8391822</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>9618e441-8973-4e16-a90b-06ce5798bd29</ID> - <Left>80</Left> - <Top>31.787610619456416</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>EF66F95A-E166-4FA2-B1AF-D6F55621817A</ItemGuid> - <ColorNumber>-2186185</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>bce8c8e8-a317-4991-9aa7-cd99a45d1509</ID> - <Left>28.22352941176473</Left> - <Top>682.03174474303751</Top> - <Width>247</Width> - <Height>122.24778761061873</Height> - <Angle>0</Angle> - <ItemGuid>66cc8510-db9c-4e13-9151-01e705ec04de</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>72a23702-31bb-4ab8-aee5-2a02bcb1270b</ID> - <Left>235.16470588235291</Left> - <Top>699.99460095802579</Top> - <Width>200</Width> - <Height>94.15929203539747</Height> - <Angle>0</Angle> - <ItemGuid>36ba0ba4-e41d-45ff-8f68-1699e00c7107</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="ControllerItem"> - <ID>2dd6ff17-e515-4d8f-814f-a9683f404a8e</ID> - <Left>140</Left> - <Top>867.73893805310092</Top> - <Width>160</Width> - <Height>85.49115044247776</Height> - <Angle>0</Angle> - <ItemGuid>78482AA4-3DF6-421F-944C-64328D3C3EF2</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <OptimalRangeMinimum>0</OptimalRangeMinimum> - <OptimalRangeMaximum>70</OptimalRangeMaximum> - <IsSetToDefault>true</IsSetToDefault> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>06843009-1da0-4811-8e77-50576d0edcb1</ID> - <Left>507</Left> - <Top>792.77433628318749</Top> - <Width>219</Width> - <Height>125.75221238938025</Height> - <Angle>0</Angle> - <ItemGuid>0c5dc1e9-da17-4ff8-86aa-6b39fd796ba9</ItemGuid> - <ColorNumber>-16777216</ColorNumber> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>935dddd0-0c6f-4766-8173-f9118006a12b</ID> - <Left>1325</Left> - <Top>482.17699115044343</Top> - <Width>135</Width> - <Height>112.47787610619827</Height> - <Angle>0</Angle> - <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid> - <ColorNumber>-15856114</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MultiGraphItem"> - <ID>97e39a59-dba8-4e42-a124-b37de9453baf</ID> - <Left>370</Left> - <Top>781.46902654866153</Top> - <Width>710</Width> - <Height>401.24778761063465</Height> - <Angle>0</Angle> - <ItemGuid>D023F15D-3555-48E9-A9E9-5DF99F60D791</ItemGuid> - <ColorNumber>0</ColorNumber> - <Duration>1956</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>2</DecimalPlaces> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>46bdfce3-1c69-45dd-bbe9-582d1ac1e6f2</ID> - <Left>1149</Left> - <Top>481.79203539822822</Top> - <Width>140</Width> - <Height>117.32300884955743</Height> - <Angle>0</Angle> - <ItemGuid>0FE216B2-A097-4F2C-B465-08593F2532B3</ItemGuid> - <ColorNumber>-15293470</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>429154a5-9a16-4423-85ca-ee4bae9aec3c</ID> - <Left>968</Left> - <Top>481.35398230088504</Top> - <Width>140</Width> - <Height>117.32300884955743</Height> - <Angle>0</Angle> - <ItemGuid>3271FD82-46D3-4789-B612-564967826C75</ItemGuid> - <ColorNumber>-1570857</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>0f6ab8e8-99a7-4468-bde8-690a63467688</ID> - <Left>766</Left> - <Top>476.07964601769811</Top> - <Width>140</Width> - <Height>117.32300884955743</Height> - <Angle>0</Angle> - <ItemGuid>FBB806E7-42FA-4BAA-BDA1-3B8B07913AAD</ItemGuid> - <ColorNumber>-1379575</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>bc0ac903-9c1f-4580-8b9e-670a76350473</ID> - <Left>586</Left> - <Top>474.38938053097161</Top> - <Width>140</Width> - <Height>117.32300884955743</Height> - <Angle>0</Angle> - <ItemGuid>436A22BB-AF79-4CB2-8A7D-DD4D9E54A81E</ItemGuid> - <ColorNumber>-7763381</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>f9c960b2-b93e-46d5-b892-30337c0b55af</ID> - <Left>391</Left> - <Top>474.87168141592781</Top> - <Width>140</Width> - <Height>117.32300884955743</Height> - <Angle>0</Angle> - <ItemGuid>89EA6CC8-5363-4BEC-A370-D906611087A7</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>5ac157ab-2d53-4307-bf0b-b069854701ac</ID> - <Left>226</Left> - <Top>471.66814159292005</Top> - <Width>140</Width> - <Height>117.32300884955743</Height> - <Angle>0</Angle> - <ItemGuid>D5EBE52B-E2DF-4C97-80B1-F111F6B15854</ItemGuid> - <ColorNumber>-8391822</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>65a19d7e-c524-48a0-bd70-28b99b113dd1</ID> - <Left>69</Left> - <Top>473.97787610619389</Top> - <Width>140</Width> - <Height>117.32300884955743</Height> - <Angle>0</Angle> - <ItemGuid>FE521D1B-A0EA-4FEA-AE64-33998A6CE138</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>5bf7a681-ee47-477e-8b47-ba7a2eb6e115</ID> - <Left>1130</Left> - <Top>624.9557522123913</Top> - <Width>144</Width> - <Height>80.495575221237516</Height> - <Angle>0</Angle> - <ItemGuid>3174ADCF-5793-4B5A-A3C6-B96E146A903D</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>29b17a4b-fd4e-49cc-a3cd-418730176bf7</ID> - <Left>969</Left> - <Top>625.95575221239</Top> - <Width>144</Width> - <Height>80.495575221237516</Height> - <Angle>0</Angle> - <ItemGuid>AD50C358-5BAF-4A2F-8593-51A22C85B3D1</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>21a5429f-c3a2-4e3b-ae77-c5538f30130d</ID> - <Left>775</Left> - <Top>623.66814159292062</Top> - <Width>144</Width> - <Height>82.535398230087083</Height> - <Angle>0</Angle> - <ItemGuid>E2F0FC31-CE7E-416B-ACEA-8EB6CA9B850B</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>96a46b0c-37b1-4457-93fb-b3dc301c5743</ID> - <Left>588</Left> - <Top>625.06637168141322</Top> - <Width>144</Width> - <Height>80.495575221237516</Height> - <Angle>0</Angle> - <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C09F</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>d4ad8603-9929-415f-9990-1869fcff36e4</ID> - <Left>1310</Left> - <Top>628.69469026548632</Top> - <Width>144</Width> - <Height>80.495575221237516</Height> - <Angle>0</Angle> - <ItemGuid>84682E90-6926-42AA-BF8C-2CCCF5C26C97</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="ValveItem"> - <ID>25249d78-ee37-42a8-b5aa-96f60e97c3ea</ID> - <Left>20.870588235294122</Left> - <Top>784.26605504587133</Top> - <Width>327</Width> - <Height>108.53097345133028</Height> - <Angle>0</Angle> - <ItemGuid>E8E103A6-85F3-465C-98BD-998FBA26AEC6</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>fc1d62f7-d13b-4a7b-8f9f-c687c987c7a9</ID> - <Left>1065</Left> - <Top>788.41592920352355</Top> - <Width>370</Width> - <Height>362.10619469026585</Height> - <Angle>0</Angle> - <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>3</DecimalPlaces> - <Duration>1426</Duration> - <UseAutoRange>true</UseAutoRange> - <Min>0</Min> - <Max>100</Max> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>cc99a514-1498-4b93-a4eb-4e0a2a2e9de6</ID> - <Left>628</Left> - <Top>765.4469026548752</Top> - <Width>394</Width> - <Height>372.88495575221242</Height> - <Angle>0</Angle> - <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>1</DecimalPlaces> - <Duration>1282</Duration> - <UseAutoRange>true</UseAutoRange> - <Min>0</Min> - <Max>100</Max> - </TechItem> - <TechItem xsi:type="ValveItem"> - <ID>cdddd48e-422d-48f4-8397-5032c3705fdb</ID> - <Left>1069</Left> - <Top>698.04867256637226</Top> - <Width>382</Width> - <Height>136.79203539823016</Height> - <Angle>0</Angle> - <ItemGuid>04C58CA0-9719-4BB0-8D3B-D4C71129D8E4</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>ee6d4c5a-ca5b-4557-8012-dacf700cdc08</ID> - <Left>231</Left> - <Top>624.06637168142413</Top> - <Width>144</Width> - <Height>80.495575221237516</Height> - <Angle>0</Angle> - <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C010</ItemGuid> - <ColorNumber>-8391822</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>20576bb2-202f-4170-9af5-f3c18b410112</ID> - <Left>77</Left> - <Top>624.46460176991513</Top> - <Width>144</Width> - <Height>80.495575221237516</Height> - <Angle>0</Angle> - <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C011</ItemGuid> - <ColorNumber>-2186185</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - </Items> - </MachineTechViewProjectTab> - <MachineTechViewProjectTab> - <Name>Thread insertion</Name> - <Items> - <TechItem xsi:type="MotorItem"> - <ID>443a977c-8e89-4a56-82e4-684bac7945c9</ID> - <Left>25</Left> - <Top>22.761061946902203</Top> - <Width>247</Width> - <Height>172.25663716814159</Height> - <Angle>0</Angle> - <ItemGuid>08d15ca1-d7d1-460f-8f37-42c37c287cd1</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>500</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>a821b716-cb7d-4951-84ee-e56955431099</ID> - <Left>355</Left> - <Top>20.592920353981697</Top> - <Width>260</Width> - <Height>153.00442477876106</Height> - <Angle>0</Angle> - <ItemGuid>b90a4e78-ebbf-44db-829b-949517d6400b</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>350</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>e36e321b-d48d-4199-a1ee-75ac18e9de1e</ID> - <Left>694</Left> - <Top>19.367256637167998</Top> - <Width>217</Width> - <Height>155.26106194690203</Height> - <Angle>0</Angle> - <ItemGuid>92237d83-9f85-48db-aa6f-2fc5c9e0d8cd</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>350</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>8790db03-4dfd-4d49-aec0-706babb55af9</ID> - <Left>364</Left> - <Top>222.16814159291846</Top> - <Width>240</Width> - <Height>172.30973451327589</Height> - <Angle>0</Angle> - <ItemGuid>2d3eaca5-4dfd-40d9-9d1f-aa4ae794eddc</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>500</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>69ebcb28-13d9-41b3-a9ef-b2be51584141</ID> - <Left>29</Left> - <Top>241.34955752210982</Top> - <Width>263</Width> - <Height>174.296460176989</Height> - <Angle>0</Angle> - <ItemGuid>c6099065-a735-4cc5-b575-c31a45bb9262</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>400</Speed> - </TechItem> - <TechItem xsi:type="ThreadMotionItem"> - <ID>4d562029-3fdf-40a4-a5a7-9a322253c912</ID> - <Left>1168</Left> - <Top>47.305309734517039</Top> - <Width>304</Width> - <Height>167.26548672566202</Height> - <Angle>0</Angle> - <ColorNumber>-1</ColorNumber> - <Speed>40</Speed> - </TechItem> - <TechItem xsi:type="BreakSensorItem"> - <ID>92607e12-2dd6-41c9-8f89-f051f386b734</ID> - <Left>1258</Left> - <Top>277.55752212389069</Top> - <Width>240</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>DCE08A06-6711-43AE-AB7C-EADD5AB70EE0</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>7b5b6896-f626-4e59-a5cf-2600e603c0f6</ID> - <Left>695</Left> - <Top>223.44247787610908</Top> - <Width>228</Width> - <Height>175.0353982300901</Height> - <Angle>0</Angle> - <ItemGuid>54695c85-b4a5-4e9d-95b1-b9e55844cde2</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>500</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>2052a2d3-843c-4a1c-87fd-acd0832fd1b9</ID> - <Left>81</Left> - <Top>542.88495575220634</Top> - <Width>220</Width> - <Height>168.473451327436</Height> - <Angle>0</Angle> - <ItemGuid>7c03f12f-ab2a-4421-8575-aefd6dec0001</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>1000</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>339b7d00-d688-41cf-926a-8171d5e62740</ID> - <Left>376</Left> - <Top>553.11061946903</Top> - <Width>240</Width> - <Height>159.84070796460173</Height> - <Angle>0</Angle> - <ItemGuid>f3b5076e-cba3-4ad2-b3cc-0c4e907bd9ef</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>20</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>7644a8f9-00a2-4e37-8f48-0667b1541114</ID> - <Left>1014</Left> - <Top>290.60619469026437</Top> - <Width>240</Width> - <Height>172.30973451327589</Height> - <Angle>0</Angle> - <ItemGuid>bda5aa4d-13aa-4259-92e5-b969276cb2b1</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>500</Speed> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>c706d31b-48b0-44cc-a9c4-11d3acdcf667</ID> - <Left>548</Left> - <Top>418.71652683599893</Top> - <Width>269</Width> - <Height>127.67256637168134</Height> - <Angle>0</Angle> - <ItemGuid>2a454081-bd5e-41de-ae5d-97aefe1d76de</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>7ccff69d-50f9-4e9b-a997-72a67917df5e</ID> - <Left>758</Left> - <Top>616.02212389380963</Top> - <Width>227</Width> - <Height>145.08849557522183</Height> - <Angle>0</Angle> - <ItemGuid>b71ad55d-d296-4371-a6d2-9d3c637c0380</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>300</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>a88a74cb-418b-4ed0-89ec-c42ff560528e</ID> - <Left>1107</Left> - <Top>573.87168141592883</Top> - <Width>227</Width> - <Height>145.08849557522183</Height> - <Angle>0</Angle> - <ItemGuid>4d097acc-df45-46af-bb7e-3d177ab27a9b</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>20</Speed> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>37267035-ae9d-4c72-a04f-215f754d0900</ID> - <Left>264</Left> - <Top>417.77433628317885</Top> - <Width>240</Width> - <Height>116.10176991150968</Height> - <Angle>0</Angle> - <ItemGuid>8a65badb-3d7d-4b7b-8dcd-783e443b0689</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>c74a22d7-136b-4ec5-8f84-ab54842453e8</ID> - <Left>849</Left> - <Top>425.59734513274515</Top> - <Width>240</Width> - <Height>116.10176991150968</Height> - <Angle>0</Angle> - <ItemGuid>6f48e18c-d472-425a-ba7e-633630605e11</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>4562bd70-4bd7-4f9b-b5fe-899b344295bf</ID> - <Left>996</Left> - <Top>62.097345132743214</Top> - <Width>155</Width> - <Height>101.4690265486671</Height> - <Angle>0</Angle> - <ItemGuid>b7c1aea4-32c1-41cb-bca3-4aa665529b49</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>300</Speed> - </TechItem> - </Items> - </MachineTechViewProjectTab> - <MachineTechViewProjectTab> - <Name>Head graphs</Name> - <Items> - <TechItem xsi:type="SingleGraphItem"> - <ID>ffe980da-dbbe-4bac-9595-46f587e9df00</ID> - <Left>3</Left> - <Top>5.8097345132742362</Top> - <Width>363</Width> - <Height>157.76991150442467</Height> - <Angle>0</Angle> - <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E448FB</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>2</DecimalPlaces> - <Duration>2962</Duration> - <UseAutoRange>true</UseAutoRange> - <Min>0</Min> - <Max>300</Max> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>81b78212-14d8-4a66-bf3a-eeea9900e0d6</ID> - <Left>371</Left> - <Top>21.075221238938013</Top> - <Width>128</Width> - <Height>91.469026548670342</Height> - <Angle>0</Angle> - <ItemGuid>AA1CF164-76FE-49C6-AA73-0EBA29816E92</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>3941a557-05e6-4c1b-bb98-4f2a59892431</ID> - <Left>517</Left> - <Top>11.517699115044195</Top> - <Width>103</Width> - <Height>113.4867256637167</Height> - <Angle>0</Angle> - <ItemGuid>188285E5-1493-4BED-8269-91743770A631</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone7</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>81.63</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>7e0942e7-a87a-402a-b580-5091ed6b29ee</ID> - <Left>8</Left> - <Top>276.6194690265491</Top> - <Width>357</Width> - <Height>143.58407079645986</Height> - <Angle>0</Angle> - <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E44809</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>2</DecimalPlaces> - <Duration>2962</Duration> - <UseAutoRange>true</UseAutoRange> - <Min>0</Min> - <Max>300</Max> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>064bd571-4250-4ea3-8ed5-96f1ddc8fe6b</ID> - <Left>374</Left> - <Top>280.73893805309746</Top> - <Width>128</Width> - <Height>91.469026548670342</Height> - <Angle>0</Angle> - <ItemGuid>8FEB7F10-E1FB-465A-A987-6E8659C2186A</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>4845ec5b-067b-43c2-aaf1-314dcb358a7c</ID> - <Left>519</Left> - <Top>283.3407079646019</Top> - <Width>103</Width> - <Height>121.59292035398221</Height> - <Angle>0</Angle> - <ItemGuid>63E2AFE0-0746-4AAB-AA74-C26EC1F282AE</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone9</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>81.35</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>85b25b0b-cd3d-4a8a-88f5-f832623d7ec2</ID> - <Left>8.75</Left> - <Top>704.87334618417651</Top> - <Width>350</Width> - <Height>152.70353982300856</Height> - <Angle>0</Angle> - <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E44812</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>2</DecimalPlaces> - <Duration>2962</Duration> - <UseAutoRange>true</UseAutoRange> - <Min>0</Min> - <Max>300</Max> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>85e9ecc2-3bce-4055-89a9-1712752898a9</ID> - <Left>375.66666666666663</Left> - <Top>902.19714360816624</Top> - <Width>128</Width> - <Height>91.469026548670342</Height> - <Angle>0</Angle> - <ItemGuid>500698E0-5623-4A47-9537-FCAAF5D0B725</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>8d9b0d4b-ac5e-4c17-b7eb-4d59825064c7</ID> - <Left>523.04166666666652</Left> - <Top>895.90015771488663</Top> - <Width>103</Width> - <Height>121.59292035398221</Height> - <Angle>0</Angle> - <ItemGuid>F39B952A-6194-4055-A5CB-A3421BFE0F9B</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeadCoverHeater2</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>283.75</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>63ccee8d-ce38-4c69-b8d1-141f320d11f9</ID> - <Left>6</Left> - <Top>563.37610619469046</Top> - <Width>358</Width> - <Height>141.55752212389359</Height> - <Angle>0</Angle> - <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E44811</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>2</DecimalPlaces> - <Duration>2962</Duration> - <UseAutoRange>true</UseAutoRange> - <Min>0</Min> - <Max>300</Max> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>5ed86083-bdd6-4648-b7ca-f17fa97f034a</ID> - <Left>379</Left> - <Top>573.57522123893818</Top> - <Width>128</Width> - <Height>91.469026548670342</Height> - <Angle>0</Angle> - <ItemGuid>C113AA1D-25F5-4095-A1F3-18BEDFC0EEEE</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>8269194e-5348-4367-8ae9-e6c0647febaf</ID> - <Left>523</Left> - <Top>571.1106194690268</Top> - <Width>103</Width> - <Height>116.52654867256626</Height> - <Angle>0</Angle> - <ItemGuid>D41BBB23-6EB5-4743-89DB-9191000B475F</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone11</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>83.05</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>182492d7-b240-4162-b8ec-39996eec3cc7</ID> - <Left>9</Left> - <Top>418.47787610619497</Top> - <Width>353</Width> - <Height>145.61061946902635</Height> - <Angle>0</Angle> - <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E44810</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>2</DecimalPlaces> - <Duration>2962</Duration> - <UseAutoRange>true</UseAutoRange> - <Min>0</Min> - <Max>300</Max> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>e8130372-e0ee-4c1c-a43d-4ab15ff57bd8</ID> - <Left>378</Left> - <Top>430.703539823009</Top> - <Width>128</Width> - <Height>91.469026548670342</Height> - <Angle>0</Angle> - <ItemGuid>DCCCCF68-5895-40BE-9E90-1FA35E44D2E4</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>af0d953f-45de-4c0d-9eeb-d7a5c17681e4</ID> - <Left>519</Left> - <Top>428.23893805309746</Top> - <Width>103</Width> - <Height>121.59292035398221</Height> - <Angle>0</Angle> - <ItemGuid>B4D0A1C8-711C-49A9-82A3-B5B9F35FC131</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone10</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>82.029999999999987</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>00dda04e-1853-422f-ac47-29bdbab642d7</ID> - <Left>7</Left> - <Top>142.86725663716828</Top> - <Width>357</Width> - <Height>152.70353982300867</Height> - <Angle>0</Angle> - <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E44808</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>2</DecimalPlaces> - <Duration>2962</Duration> - <UseAutoRange>true</UseAutoRange> - <Min>0</Min> - <Max>300</Max> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>e7935033-56c6-42a4-a2b3-f5eedb0a11e7</ID> - <Left>382</Left> - <Top>151.03982300884968</Top> - <Width>128</Width> - <Height>91.469026548670342</Height> - <Angle>0</Angle> - <ItemGuid>E772ECA1-24EB-446A-AB28-F5E3D853B9F6</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>b339a7c0-7555-4e54-9834-6193ed7c2b7a</ID> - <Left>519</Left> - <Top>147.561946902655</Top> - <Width>104</Width> - <Height>109.43362831858406</Height> - <Angle>0</Angle> - <ItemGuid>461FA2D7-1918-4958-AAA7-37A1A329FA12</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone8</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>79.66</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>40d16753-8448-4af9-8fbd-98c1ed301de5</ID> - <Left>623</Left> - <Top>117.5353982300885</Top> - <Width>363</Width> - <Height>157.76991150442467</Height> - <Angle>0</Angle> - <ItemGuid>D7585119-4A42-4370-8F1E-F3E62553E588</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>2</DecimalPlaces> - <Duration>2962</Duration> - <UseAutoRange>true</UseAutoRange> - <Min>0</Min> - <Max>300</Max> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>b3826c8e-1d82-4f4f-ad9f-d88f257dffb2</ID> - <Left>1005</Left> - <Top>12.221238938053205</Top> - <Width>128</Width> - <Height>91.469026548670342</Height> - <Angle>0</Angle> - <ItemGuid>d59b64f7-a8cf-4a2b-935a-943ae35fb78c</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>d3631074-68c4-4377-b0c5-9213a6b1b2c0</ID> - <Left>1148</Left> - <Top>293.47345132743362</Top> - <Width>103</Width> - <Height>113.4867256637167</Height> - <Angle>0</Angle> - <ItemGuid>8E764A14-0F84-4FEC-928B-32A2509CAD57</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone3</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>82.94</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>99af8946-4971-4913-9382-705c4e05b7ce</ID> - <Left>621</Left> - <Top>275.60619469026591</Top> - <Width>363</Width> - <Height>157.76991150442467</Height> - <Angle>0</Angle> - <ItemGuid>098F7CAB-030C-46B0-B2B8-A85AF2253032</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>2</DecimalPlaces> - <Duration>2962</Duration> - <UseAutoRange>true</UseAutoRange> - <Min>0</Min> - <Max>100</Max> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>233f0076-7595-4ecb-8496-41eeb7b457ea</ID> - <Left>993</Left> - <Top>279.72566371681404</Top> - <Width>128</Width> - <Height>91.469026548670342</Height> - <Angle>0</Angle> - <ItemGuid>9de55ec4-201f-4f62-9003-f63ebea06f8f</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>f815ebb5-61af-45ff-8109-5f5e717a5c4d</ID> - <Left>1146</Left> - <Top>14.823008849557596</Top> - <Width>103</Width> - <Height>113.4867256637167</Height> - <Angle>0</Angle> - <ItemGuid>27E7BB74-81C3-4EF2-80AE-962F111C441F</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone1</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>65.62</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>7b7d9bea-29df-4f94-8ab6-2a6d7105bccf</ID> - <Left>627</Left> - <Top>6.07522123893807</Top> - <Width>363</Width> - <Height>157.76991150442467</Height> - <Angle>0</Angle> - <ItemGuid>A8DB1D27-6B25-4FB4-A3F5-46A29BA51955</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>2</DecimalPlaces> - <Duration>2962</Duration> - <UseAutoRange>true</UseAutoRange> - <Min>0</Min> - <Max>300</Max> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>72d7192b-dd27-4064-9f5f-90062388a81c</ID> - <Left>1003</Left> - <Top>151.03982300884974</Top> - <Width>128</Width> - <Height>91.469026548670342</Height> - <Angle>0</Angle> - <ItemGuid>df38139e-0026-46bc-b72f-df5f9eec80f7</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>915f8dfc-5407-43ca-a0c7-d774867dfb5f</ID> - <Left>1145</Left> - <Top>153.64159292035396</Top> - <Width>103</Width> - <Height>113.4867256637167</Height> - <Angle>0</Angle> - <ItemGuid>B4EE8CC0-EE2B-4ABE-BF09-9226860E756B</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone2</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>75.59</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>64fba32f-3c03-42b3-b1ed-e2bdbe454bd6</ID> - <Left>630</Left> - <Top>535.00442477876129</Top> - <Width>363</Width> - <Height>157.76991150442467</Height> - <Angle>0</Angle> - <ItemGuid>246C2551-5EFD-48E9-94F6-6313C5E5018F</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>2</DecimalPlaces> - <Duration>2962</Duration> - <UseAutoRange>true</UseAutoRange> - <Min>0</Min> - <Max>300</Max> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>5f451443-fab2-4bf6-8f21-5e038ca2c726</ID> - <Left>1008</Left> - <Top>707.327433628319</Top> - <Width>128</Width> - <Height>91.469026548670342</Height> - <Angle>0</Angle> - <ItemGuid>16D0DEF7-A2E0-4163-9F4B-FBEC2573BCC7</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>e5c1becb-1402-45fa-b252-60a03d4401cc</ID> - <Left>1150</Left> - <Top>716.00884955752235</Top> - <Width>103</Width> - <Height>113.4867256637167</Height> - <Angle>0</Angle> - <ItemGuid>D2B6CAA0-055E-4871-8D91-A5370F1ACB22</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone6</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>79.04</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>4f3b4ecd-759a-4ba5-80f3-74cc485d7085</ID> - <Left>629</Left> - <Top>387.066371681416</Top> - <Width>363</Width> - <Height>157.76991150442467</Height> - <Angle>0</Angle> - <ItemGuid>6C0C1AB0-3EE9-40D7-8424-A79436FBC804</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>2</DecimalPlaces> - <Duration>2962</Duration> - <UseAutoRange>true</UseAutoRange> - <Min>0</Min> - <Max>300</Max> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>665593d6-e689-459e-94f9-2cdcce6150ac</ID> - <Left>1004</Left> - <Top>562.42920353982311</Top> - <Width>128</Width> - <Height>91.469026548670342</Height> - <Angle>0</Angle> - <ItemGuid>d28bfa3c-edce-4f19-a296-3da251fcc0e2</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>42b4b029-e8bc-4156-b6c1-bb64aae83f9e</ID> - <Left>1149</Left> - <Top>571.1106194690268</Top> - <Width>103</Width> - <Height>113.4867256637167</Height> - <Angle>0</Angle> - <ItemGuid>D6771DF4-771E-4D62-B6BA-BDE361C0A0F3</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone5</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>79.13</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>60dff2b2-7ddc-47a9-90b1-3f45968c1790</ID> - <Left>630</Left> - <Top>692.06194690265511</Top> - <Width>363</Width> - <Height>157.76991150442467</Height> - <Angle>0</Angle> - <ItemGuid>DACEBF90-E2B4-4CC9-A973-B8B429AA0089</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>2</DecimalPlaces> - <Duration>2962</Duration> - <UseAutoRange>true</UseAutoRange> - <Min>0</Min> - <Max>300</Max> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>b53a74f3-8e91-40ce-b980-c5b237baeee9</ID> - <Left>1002</Left> - <Top>413.47787610619491</Top> - <Width>128</Width> - <Height>91.469026548670342</Height> - <Angle>0</Angle> - <ItemGuid>81a3ae80-f4ea-4857-bc4e-2055d3b5fbc7</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>8c438e59-d87c-46d2-8050-acc8a0c455d7</ID> - <Left>1148</Left> - <Top>434.31858407079636</Top> - <Width>103</Width> - <Height>113.4867256637167</Height> - <Angle>0</Angle> - <ItemGuid>94574D69-46E1-4144-A8B5-D4BF0DA96D18</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone4</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>84.699999999999989</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>f786b4da-3291-4ccb-a280-196fd8697ac1</ID> - <Left>5.7499999999999858</Left> - <Top>866.06435643564362</Top> - <Width>350</Width> - <Height>152.70353982300856</Height> - <Angle>0</Angle> - <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E448DD</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>2</DecimalPlaces> - <Duration>2962</Duration> - <UseAutoRange>true</UseAutoRange> - <Min>0</Min> - <Max>300</Max> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>584c7f29-49cc-4845-a7ab-09239bd3a986</ID> - <Left>377.875</Left> - <Top>735.75944098834611</Top> - <Width>128</Width> - <Height>91.469026548670342</Height> - <Angle>0</Angle> - <ItemGuid>96A8AF31-B489-4FA2-BF99-C66D7DEC94C8</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>5c6da8d4-bd2e-44cc-8d99-a6b8bca7df3f</ID> - <Left>524.20833333333337</Left> - <Top>721.52681153071046</Top> - <Width>103</Width> - <Height>121.59292035398221</Height> - <Angle>0</Angle> - <ItemGuid>2D578A37-D808-40D0-ACE4-4A868EDD6BDC</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone12</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>81.06</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>05eab3d7-3af6-4d3f-b3b3-468eeb77a503</ID> - <Left>644.29166666666674</Left> - <Top>874.00000000000011</Top> - <Width>350</Width> - <Height>152.70353982300856</Height> - <Angle>0</Angle> - <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E448CC</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>2</DecimalPlaces> - <Duration>2962</Duration> - <UseAutoRange>true</UseAutoRange> - <Min>0</Min> - <Max>300</Max> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>c1f48bf1-9cb3-475a-b152-e8b9a211b694</ID> - <Left>1010.1666666666667</Left> - <Top>895.60597564181194</Top> - <Width>128</Width> - <Height>91.469026548670342</Height> - <Angle>0</Angle> - <ItemGuid>7FCA67CB-785B-49F7-B9F2-191E3ACC6CB7</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>c5fbeda2-230d-40e4-9d52-5b3236e0c561</ID> - <Left>1161.708333333333</Left> - <Top>885.907999649522</Top> - <Width>103</Width> - <Height>121.59292035398221</Height> - <Angle>0</Angle> - <ItemGuid>F8C1BA7F-F6DF-414D-BAF5-D4CB292F91F6</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeadCoverHeater1</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>283.75</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - </Items> - </MachineTechViewProjectTab> - <MachineTechViewProjectTab> - <Name>waste</Name> - <Items> - <TechItem xsi:type="DigitalOutItem"> - <ID>bb9bf273-0a3d-4202-98ce-37a5f206ed75</ID> - <Left>119</Left> - <Top>68.898230088495609</Top> - <Width>339</Width> - <Height>184.4159292035398</Height> - <Angle>0</Angle> - <ItemGuid>7e1f53ec-8176-4efa-ac3d-c8f2436e60d1</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>59678a51-f995-4952-b250-e449f1fcbeac</ID> - <Left>468</Left> - <Top>80.336283185839477</Top> - <Width>280</Width> - <Height>166.17699115044252</Height> - <Angle>0</Angle> - <ItemGuid>78db28d0-0407-4942-bb62-c44da81c4f9e</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="DigitalInItem"> - <ID>8f9ff579-0e9d-4f48-8ed0-6fa563f2aba7</ID> - <Left>873</Left> - <Top>63.831858407079665</Top> - <Width>174</Width> - <Height>133.75221238938059</Height> - <Angle>0</Angle> - <ItemGuid>06bd7c0b-5aef-445a-86c0-853becf8594b</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="DigitalInItem"> - <ID>70d1bd1e-acdb-436a-b205-6eeb9d137120</ID> - <Left>1070</Left> - <Top>70.106194690265909</Top> - <Width>221</Width> - <Height>123.61946902654864</Height> - <Angle>0</Angle> - <ItemGuid>4048bf02-27dc-4049-9284-fe913a7e0ebe</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="DigitalInItem"> - <ID>dcc7ce16-5b89-4ff8-acd5-7fb0b9ebb6d1</ID> - <Left>877</Left> - <Top>248.24778761061947</Top> - <Width>186</Width> - <Height>126.65929203539827</Height> - <Angle>0</Angle> - <ItemGuid>00ea1771-efee-4f3e-a0d2-8b2a4214e9fd</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>2b99bbf7-94da-4bb2-acc9-91b35e543c5d</ID> - <Left>897</Left> - <Top>358.69469026548683</Top> - <Width>147</Width> - <Height>69.9159292035398</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>Waste lower presence</Text> - </TechItem> - <TechItem xsi:type="DigitalInItem"> - <ID>c150533c-abe4-4edf-b6ad-fa475b133142</ID> - <Left>1112</Left> - <Top>253.66814159291806</Top> - <Width>186</Width> - <Height>126.65929203539827</Height> - <Angle>0</Angle> - <ItemGuid>d2f266e3-779b-4dfe-b513-26ce61c529a4</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>d96f2a6d-0ccb-401e-8931-09086ca81fae</ID> - <Left>1143</Left> - <Top>366.78318584070507</Top> - <Width>147</Width> - <Height>69.9159292035398</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>Waste middle presence</Text> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>bb9847ba-9671-4613-bf23-a0c637ebc79d</ID> - <Left>151</Left> - <Top>271.55309734513281</Top> - <Width>200</Width> - <Height>63.836283185840671</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>pump</Text> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>d13a2df4-3f54-4c31-8f9a-ee7810fb6af5</ID> - <Left>504</Left> - <Top>283.71238938053096</Top> - <Width>192</Width> - <Height>67.88938053097354</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>valve</Text> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>a79322a7-fbb8-469b-a4d9-a0ffb3c17a5d</ID> - <Left>858</Left> - <Top>394.15929203539821</Top> - <Width>134</Width> - <Height>99.300884955752167</Height> - <Angle>0</Angle> - <ItemGuid>94F3E5A1-413E-4EA0-BDE1-F0625BFF7910</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>979459b4-b609-487f-b6d7-55f435659658</ID> - <Left>1027</Left> - <Top>391.93362831858775</Top> - <Width>118</Width> - <Height>93.221238938053034</Height> - <Angle>0</Angle> - <ItemGuid>FE0D0A56-5795-4C5A-8E09-939FBB35C441</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>8b11bfca-091d-4461-8713-ba2fd9c8484e</ID> - <Left>432</Left> - <Top>511.69911504424789</Top> - <Width>461</Width> - <Height>250.27876106194691</Height> - <Angle>0</Angle> - <ItemGuid>94F3E5A1-413E-4EA0-BDE1-F0625BFF7910</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>2</DecimalPlaces> - <Duration>419</Duration> - <UseAutoRange>true</UseAutoRange> - <Min>0</Min> - <Max>100</Max> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>8aa4b451-71d6-429c-94e4-2581e3c62a7a</ID> - <Left>956</Left> - <Top>513.80973451327361</Top> - <Width>461</Width> - <Height>250.27876106194691</Height> - <Angle>0</Angle> - <ItemGuid>FE0D0A56-5795-4C5A-8E09-939FBB35C441</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>2</DecimalPlaces> - <Duration>419</Duration> - <UseAutoRange>true</UseAutoRange> - <Min>0</Min> - <Max>100</Max> - </TechItem> - <TechItem xsi:type="BlowerItem"> - <ID>1f85047c-0b3e-49c6-a80a-c2585de00a81</ID> - <Left>1217</Left> - <Top>395.17256637168151</Top> - <Width>217</Width> - <Height>97.2743362831859</Height> - <Angle>0</Angle> - <ItemGuid>B6FE07F8-2435-495D-ABFE-358C76812413</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>c296a84d-7af4-4a26-9a35-0b82d378edce</ID> - <Left>575</Left> - <Top>354.64159292035436</Top> - <Width>209</Width> - <Height>123.61946902654859</Height> - <Angle>0</Angle> - <ItemGuid>1778C1A7-AFB5-42F9-9E00-E80D30D9FC0A</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>cde1d5a8-7238-44b8-8d4e-30a2dba70c12</ID> - <Left>1294</Left> - <Top>166.17256637168146</Top> - <Width>217</Width> - <Height>132.73893805309734</Height> - <Angle>0</Angle> - <ItemGuid>2a454081-bd5e-41de-ae5d-97aefe1d76de</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>51ca3d43-e098-4ed7-a94d-ac0e46744aa8</ID> - <Left>-39</Left> - <Top>510.96460176990968</Top> - <Width>461</Width> - <Height>250.27876106194691</Height> - <Angle>0</Angle> - <ItemGuid>1778C1A7-AFB5-42F9-9E00-E80D30D9FC0A</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>2</DecimalPlaces> - <Duration>419</Duration> - <UseAutoRange>true</UseAutoRange> - <Min>0</Min> - <Max>100</Max> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>034716b2-eb98-4a27-a32e-2a1217f0a6b1</ID> - <Left>150.24235516816566</Left> - <Top>341.47687867152945</Top> - <Width>310</Width> - <Height>140.56766191129225</Height> - <Angle>0</Angle> - <ItemGuid>79AD6611-82A2-4B4C-AB5E-A11A33E1243D</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - </Items> - </MachineTechViewProjectTab> - <MachineTechViewProjectTab> - <Name>disp</Name> - <Items> - <TechItem xsi:type="SingleGraphItem"> - <ID>f9531a72-3742-47a7-86bb-b589f8b3eb55</ID> - <Left>123</Left> - <Top>128.33628318584061</Top> - <Width>390</Width> - <Height>249.67699115047321</Height> - <Angle>0</Angle> - <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>3</DecimalPlaces> - <Duration>3600</Duration> - <UseAutoRange>true</UseAutoRange> - <Min>0</Min> - <Max>100</Max> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>aae29286-81b3-476a-9f58-c0fd246cae96</ID> - <Left>880</Left> - <Top>158.81415929204155</Top> - <Width>442</Width> - <Height>241.88495575221771</Height> - <Angle>0</Angle> - <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>3</DecimalPlaces> - <Duration>3600</Duration> - <UseAutoRange>true</UseAutoRange> - <Min>0</Min> - <Max>100</Max> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>7d94c7c4-1288-4f9d-b0e6-a06794829642</ID> - <Left>1055</Left> - <Top>14.181415929203524</Top> - <Width>161</Width> - <Height>111.46017699115049</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>Y</Text> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>c95f9ad1-b607-4606-8217-400bea76f3d6</ID> - <Left>384</Left> - <Top>23.991150442480944</Top> - <Width>161</Width> - <Height>111.46017699115049</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>C</Text> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>8f141fa5-fb24-4557-adcf-a6aa55a28fb4</ID> - <Left>121</Left> - <Top>-8.8495575221214722</Top> - <Width>169</Width> - <Height>132.73893805309734</Height> - <Angle>0</Angle> - <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>3</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>7eab018a-ef43-4bca-a6cf-857d69767bba</ID> - <Left>839</Left> - <Top>-4.7079646017762684</Top> - <Width>169</Width> - <Height>132.73893805309734</Height> - <Angle>0</Angle> - <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>3</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorRecorderItem"> - <ID>2a9e89d4-5d60-4a83-9527-cb77fdf35c14</ID> - <Left>1276</Left> - <Top>22.287610619469035</Top> - <Width>187</Width> - <Height>102.34070796460179</Height> - <Angle>0</Angle> - <ColorNumber>-1</ColorNumber> - <SelectedMonitorsGuids> - <string>1F0F907A-EC16-4386-AFC8-B2B156F2A822</string> - <string>A499E5E0-A812-4032-8F96-B38C6762C4BD</string> - <string>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</string> - <string>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</string> - <string>19645882-6587-4A50-BD85-AF06617DC654</string> - <string>96B89605-F999-43FE-A1CD-2645BFB33A36</string> - <string>84CF23C9-D20D-4C08-BE1D-80201FC43C06</string> - <string>C0BCCD5C-346B-4C4A-A080-39D28E9E1A0C</string> - <string>10102BC3-0EAE-47FF-A8E5-8640780CAA3D</string> - <string>FC60060A-3736-4910-B41A-FF6DABDF0E9E</string> - <string>5F12B974-2C9E-4DDD-9B20-733251A5D7E6</string> - <string>D126DB23-784B-4F0C-8F88-D89A65A7549F</string> - </SelectedMonitorsGuids> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>6d2e7962-b3ae-4682-b20e-9654f48dcffe</ID> - <Left>587</Left> - <Top>5.0619469026548813</Top> - <Width>155</Width> - <Height>131.72566371681415</Height> - <Angle>0</Angle> - <ItemGuid>2CC8E461-E91F-4D4C-A402-922477F06C87</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>500</Speed> - <DisplayName>Dispenser 1</DisplayName> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>5ee2718f-f068-427b-a31e-d586c7d7682c</ID> - <Left>131</Left> - <Top>552.94690265486338</Top> - <Width>390</Width> - <Height>249.67699115047321</Height> - <Angle>0</Angle> - <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>3</DecimalPlaces> - <Duration>3600</Duration> - <UseAutoRange>true</UseAutoRange> - <Min>0</Min> - <Max>100</Max> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>1c254a92-c075-453f-9667-cdcc91cf8e6a</ID> - <Left>399</Left> - <Top>455.67256637168265</Top> - <Width>161</Width> - <Height>111.46017699115049</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>K</Text> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>d1087b1a-c36b-4242-96f5-07c2bb602cc4</ID> - <Left>145</Left> - <Top>409.52212389380446</Top> - <Width>169</Width> - <Height>132.73893805309734</Height> - <Angle>0</Angle> - <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>3</DecimalPoints> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>53fe93a2-88a5-4d4d-9cd5-eb4d8a8fefae</ID> - <Left>604</Left> - <Top>561.16371681414739</Top> - <Width>390</Width> - <Height>249.67699115047321</Height> - <Angle>0</Angle> - <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>3</DecimalPlaces> - <Duration>3600</Duration> - <UseAutoRange>true</UseAutoRange> - <Min>0</Min> - <Max>100</Max> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>0bef6e9d-6da0-4f06-9e1a-c00142bde4c1</ID> - <Left>832</Left> - <Top>440.91150442477635</Top> - <Width>161</Width> - <Height>111.46017699115049</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>M</Text> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>762c5a97-a3bc-45b4-aa9f-0b50afa9cb9b</ID> - <Left>633</Left> - <Top>434.0132743362783</Top> - <Width>169</Width> - <Height>132.73893805309734</Height> - <Angle>0</Angle> - <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>3</DecimalPoints> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>be584f80-3250-494c-87fc-250d6deae051</ID> - <Left>1045</Left> - <Top>559.4070796459921</Top> - <Width>390</Width> - <Height>249.67699115047321</Height> - <Angle>0</Angle> - <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>3</DecimalPlaces> - <Duration>3600</Duration> - <UseAutoRange>true</UseAutoRange> - <Min>0</Min> - <Max>100</Max> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>39f6a02c-c4d9-47d0-b92d-bdea0ed5d3ce</ID> - <Left>1056</Left> - <Top>435.43805309733875</Top> - <Width>169</Width> - <Height>132.73893805309734</Height> - <Angle>0</Angle> - <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>3</DecimalPoints> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>5b924929-9b16-4598-94cc-b2f4bca26798</ID> - <Left>1304</Left> - <Top>448.0884955752224</Top> - <Width>161</Width> - <Height>111.46017699115049</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>TI</Text> - </TechItem> - <TechItem xsi:type="ValveItem"> - <ID>89ae1fa5-1ad1-469e-ae76-0a29c35805cd</ID> - <Left>588</Left> - <Top>317.1504424778762</Top> - <Width>283</Width> - <Height>74.982300884955748</Height> - <Angle>0</Angle> - <ItemGuid>E144A221-4859-4DC3-9A7E-4A2969FB0826</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="ValveItem"> - <ID>c218cf34-74c2-41bb-8c3b-3030abce451a</ID> - <Left>1363</Left> - <Top>384.02654867256643</Top> - <Width>156</Width> - <Height>94.234513274336337</Height> - <Angle>0</Angle> - <ItemGuid>E144A221-4859-4DC3-9A7E-4A2969FB0826</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="ValveItem"> - <ID>75af30c6-d7f8-4745-bfb5-d6dc5d50479a</ID> - <Left>767</Left> - <Top>362.74778761061958</Top> - <Width>283</Width> - <Height>74.982300884955748</Height> - <Angle>0</Angle> - <ItemGuid>E144A221-4859-4DC3-9A7E-4A2969FB0826</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>df1fd958-fd8a-4b00-98e1-679455494d60</ID> - <Left>309</Left> - <Top>13.168141592920392</Top> - <Width>112</Width> - <Height>107.40707964601768</Height> - <Angle>0</Angle> - <ItemGuid>3174ADCF-5793-4B5A-A3C6-B96E146A903D</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>f07225b3-1522-4cb6-9ba8-5b9697f05467</ID> - <Left>1180</Left> - <Top>60.7920353982301</Top> - <Width>102</Width> - <Height>88.1548672566372</Height> - <Angle>0</Angle> - <ItemGuid>E2F0FC31-CE7E-416B-ACEA-8EB6CA9B850B</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>45b87322-e1f5-42eb-88c6-71c2eeb2899a</ID> - <Left>1258</Left> - <Top>463.06194690265494</Top> - <Width>88</Width> - <Height>75.995575221239</Height> - <Angle>0</Angle> - <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C09F</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>0c1c25e8-3ce3-4994-bbb9-bd6b2367a413</ID> - <Left>810</Left> - <Top>462.04867256637175</Top> - <Width>77</Width> - <Height>80.048672566371636</Height> - <Angle>0</Angle> - <ItemGuid>AD50C358-5BAF-4A2F-8593-51A22C85B3D1</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>fa2f697e-b229-418a-bae6-78b92bf0458b</ID> - <Left>336</Left> - <Top>428.61061946902663</Top> - <Width>95</Width> - <Height>96.261061946902657</Height> - <Angle>0</Angle> - <ItemGuid>84682E90-6926-42AA-BF8C-2CCCF5C26C97</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - </Items> - </MachineTechViewProjectTab> - <MachineTechViewProjectTab> - <Name>Priming</Name> - <Items> - <TechItem xsi:type="MonitorItem"> - <ID>ea45a516-9dac-4c9a-9261-0c44e22aa065</ID> - <Left>808</Left> - <Top>155.02654867256638</Top> - <Width>219</Width> - <Height>200.62831858407088</Height> - <Angle>0</Angle> - <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>3e2cb7dc-a5f3-4ba6-a520-2bae8ff0e4a8</ID> - <Left>832</Left> - <Top>451.91592920353986</Top> - <Width>332</Width> - <Height>326.27433628318596</Height> - <Angle>0</Angle> - <ItemGuid>C8D8FE90-0375-44A2-A6D1-E997789E065C</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>1200</Speed> - <DisplayName>Dispenser 2</DisplayName> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>6f8dfd8d-ed50-4923-b908-e0b5bc5d6ae5</ID> - <Left>154</Left> - <Top>131.72123893805315</Top> - <Width>474</Width> - <Height>410.37610619469024</Height> - <Angle>0</Angle> - <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <DecimalPlaces>1</DecimalPlaces> - <Duration>1942</Duration> - <UseAutoRange>true</UseAutoRange> - <Min>0</Min> - <Max>100</Max> - </TechItem> - <TechItem xsi:type="ValveItem"> - <ID>604e031b-89c3-4c9d-90ef-7b861a77e5e0</ID> - <Left>243</Left> - <Top>595.80088495575228</Top> - <Width>497</Width> - <Height>189.48230088495575</Height> - <Angle>0</Angle> - <ItemGuid>8B1FCBC3-FEEA-4F87-B56F-CE5D28B7ACA4</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>c414ae0e-323a-48c1-9165-2c05cc4234c6</ID> - <Left>1291</Left> - <Top>584.65486725663732</Top> - <Width>200</Width> - <Height>171.24336283185835</Height> - <Angle>0</Angle> - <ItemGuid>0bd10306-2944-4cda-bc59-0264da2883d2</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - </Items> - </MachineTechViewProjectTab> - </Tabs> - <SelectedTabIndex>0</SelectedTabIndex> -</MachineTechViewProject>
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/technician view files/tech board 1.tpf b/Software/Stubs Collection/stubs/technician view files/tech board 1.tpf deleted file mode 100644 index a6bfa792c..000000000 --- a/Software/Stubs Collection/stubs/technician view files/tech board 1.tpf +++ /dev/null @@ -1,2974 +0,0 @@ -<?xml version="1.0"?> -<MachineTechViewProject xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> - <Items /> - <Tabs> - <MachineTechViewProjectTab> - <Name>Temperatures</Name> - <Items> - <TechItem xsi:type="DigitalOutItem"> - <ID>e4892498-fa1a-413c-9dd8-633efaade51c</ID> - <Left>415</Left> - <Top>692.74336283185824</Top> - <Width>160</Width> - <Height>102.34070796460173</Height> - <Angle>0</Angle> - <ItemGuid>6b9cba1d-4acf-4992-97ad-e422bca6ada2</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>a15665e3-af39-42d8-8c06-97d770632e10</ID> - <Left>928</Left> - <Top>593.77433628318579</Top> - <Width>207</Width> - <Height>184.4159292035398</Height> - <Angle>0</Angle> - <ItemGuid>6D6CFA18-5922-4AFE-84B3-2721CE128681</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>DryerAirHeater</HeaterType> - <SetPoint>180</SetPoint> - <CurrentValue>179.94</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>180</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>0ac64716-d30c-489b-939e-a26d06445866</ID> - <Left>828</Left> - <Top>682.88053097345</Top> - <Width>130</Width> - <Height>100.31415929203541</Height> - <Angle>0</Angle> - <ItemGuid>A5DFC2DB-3B36-4377-96A0-D492CE785C00</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>DryerMainHeater</HeaterType> - <SetPoint>41</SetPoint> - <CurrentValue>187.35</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>41</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>181796d8-64f6-420a-8f37-9af9df67d6a9</ID> - <Left>717</Left> - <Top>684.46902654867324</Top> - <Width>127</Width> - <Height>101.3274336283186</Height> - <Angle>0</Angle> - <ItemGuid>86808B48-B7F9-43AD-840E-2A6A5987C305</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>DryerSecondaryHeater</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>190.80999999999997</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>fd2bb3a3-a411-470d-bde7-0beaf84da059</ID> - <Left>931</Left> - <Top>83.08407079646031</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>8E764A14-0F84-4FEC-928B-32A2509CAD57</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone3</HeaterType> - <SetPoint>120</SetPoint> - <CurrentValue>120.41999999999999</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>120</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>7e8dd386-cca6-4d07-8a3e-af5403756002</ID> - <Left>1106</Left> - <Top>88.1504424778762</Top> - <Width>200</Width> - <Height>187.45575221238937</Height> - <Angle>0</Angle> - <ItemGuid>B4EE8CC0-EE2B-4ABE-BF09-9226860E756B</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone2</HeaterType> - <SetPoint>100</SetPoint> - <CurrentValue>100.41999999999999</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>100</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>32a91e5f-27c8-490d-b187-8e39b6626a13</ID> - <Left>1311</Left> - <Top>89.163716814159329</Top> - <Width>157</Width> - <Height>194.54867256637175</Height> - <Angle>0</Angle> - <ItemGuid>27E7BB74-81C3-4EF2-80AE-962F111C441F</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone1</HeaterType> - <SetPoint>80</SetPoint> - <CurrentValue>80.16</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>80</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>c844235a-8a29-4c2e-a964-e8f546d2ced7</ID> - <Left>1140</Left> - <Top>588.70796460177</Top> - <Width>173</Width> - <Height>183.40265486725662</Height> - <Angle>0</Angle> - <ItemGuid>42A62A48-F1D5-4BB6-AFEA-6A7DF6DCF626</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>MixerHeater</HeaterType> - <SetPoint>80</SetPoint> - <CurrentValue>79.95</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>80</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>45b121b5-cf7c-41f7-8089-6d4d6b1ed2c8</ID> - <Left>751</Left> - <Top>80.420353982302458</Top> - <Width>169</Width> - <Height>197.27876106194645</Height> - <Angle>0</Angle> - <ItemGuid>94574D69-46E1-4144-A8B5-D4BF0DA96D18</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone4</HeaterType> - <SetPoint>120</SetPoint> - <CurrentValue>120.27999999999999</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>120</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>e6b3eb18-482b-450e-b8a8-d2ac6bba4fd4</ID> - <Left>547</Left> - <Top>85.482300884952679</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>D6771DF4-771E-4D62-B6BA-BDE361C0A0F3</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone5</HeaterType> - <SetPoint>135</SetPoint> - <CurrentValue>135.21</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>135</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>efff2e67-e3a3-4667-9208-4704707d7cda</ID> - <Left>353</Left> - <Top>86.69911504424698</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>D2B6CAA0-055E-4871-8D91-A5370F1ACB22</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone6</HeaterType> - <SetPoint>135</SetPoint> - <CurrentValue>135.33</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>135</SetPoint> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>f9936dba-cef8-41e3-a715-eb629dca1870</ID> - <Left>265</Left> - <Top>683.95575221238948</Top> - <Width>131</Width> - <Height>109.43362831858394</Height> - <Angle>0</Angle> - <ItemGuid>1778C1A7-AFB5-42F9-9E00-E80D30D9FC0A</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>5f2610dc-3b9d-4302-b8f5-77a5e1c73b8c</ID> - <Left>1027.9999999999973</Left> - <Top>291.07079646017547</Top> - <Width>44</Width> - <Height>42.557522123893705</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>D</Text> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>eadb5257-47a2-4336-a72a-f2d157fe70cb</ID> - <Left>907.99999999999909</Left> - <Top>295.35840707964616</Top> - <Width>44</Width> - <Height>42.557522123893705</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>F</Text> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>6c59af66-169a-46e0-89ae-a81e3e619043</ID> - <Left>785.00000000000159</Left> - <Top>288.5000000000004</Top> - <Width>44</Width> - <Height>42.557522123893705</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>I</Text> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>3b32b9a8-f300-443f-950e-c49f81678bac</ID> - <Left>624.99999999999966</Left> - <Top>285.86725663716874</Top> - <Width>44</Width> - <Height>42.557522123893705</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>L</Text> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>f6d44793-ed44-46ed-8854-eacbc11af10c</ID> - <Left>569</Left> - <Top>688.00884955752213</Top> - <Width>155</Width> - <Height>96.261061946902714</Height> - <Angle>0</Angle> - <ItemGuid>df38139e-0026-46bc-b72f-df5f9eec80f7</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="MonitorRecorderItem"> - <ID>43793f93-da64-4409-b583-bca498f641e6</ID> - <Left>1308</Left> - <Top>656.59734513274338</Top> - <Width>203</Width> - <Height>107.40707964601774</Height> - <Angle>0</Angle> - <ColorNumber>-1</ColorNumber> - <SelectedMonitorsGuids> - <string>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</string> - <string>AD50C358-5BAF-4A2F-8593-51A22C85B3D1</string> - <string>9FBC5460-BA59-486B-8D85-BD7D8A959F98</string> - <string>F1DF490B-0577-4FA7-ACA1-0EEF4F934E8F</string> - <string>C0BCCD5C-346B-4C4A-A080-39D28E9E1A0C</string> - </SelectedMonitorsGuids> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>be9db1fd-d408-4f1c-a15a-d6ffe58fafb6</ID> - <Left>1292</Left> - <Top>343.56637168141606</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>188285E5-1493-4BED-8269-91743770A631</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone7</HeaterType> - <SetPoint>140</SetPoint> - <CurrentValue>140.37</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>140</SetPoint> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>f129ea0d-9abb-437f-928e-1cd1f569db2a</ID> - <Left>1190.0000000000025</Left> - <Top>294.69026548672929</Top> - <Width>39</Width> - <Height>38.504424778760836</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>C</Text> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>217c677a-3e11-4a7c-959b-616dae1259dd</ID> - <Left>1369</Left> - <Top>295.87168141592934</Top> - <Width>44</Width> - <Height>42.557522123893705</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>A</Text> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>381f67cf-b7c6-4f6d-b089-37130798a5d8</ID> - <Left>1107</Left> - <Top>342.55309734513293</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>461FA2D7-1918-4958-AAA7-37A1A329FA12</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone8</HeaterType> - <SetPoint>140</SetPoint> - <CurrentValue>140.28</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>140</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>3c923a93-4d15-4bbc-b1b3-be1876a77cfc</ID> - <Left>924</Left> - <Top>343.56637168141606</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>63E2AFE0-0746-4AAB-AA74-C26EC1F282AE</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone9</HeaterType> - <SetPoint>140</SetPoint> - <CurrentValue>140.16</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>140</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>26e078e6-df8c-4fbf-b10e-4b3f7c7e9500</ID> - <Left>359</Left> - <Top>342.55309734513304</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>2D578A37-D808-40D0-ACE4-4A868EDD6BDC</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone12</HeaterType> - <SetPoint>145</SetPoint> - <CurrentValue>145.11</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>145</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>7a8c3948-bb3d-4eb1-9276-315d34038f91</ID> - <Left>550</Left> - <Top>343.56637168141611</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>D41BBB23-6EB5-4743-89DB-9191000B475F</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone11</HeaterType> - <SetPoint>140</SetPoint> - <CurrentValue>140.21</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>140</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>f7d4c8ac-28cb-4779-83ef-3ede5e5a612c</ID> - <Left>738</Left> - <Top>344.57964601769908</Top> - <Width>186</Width> - <Height>195.56194690265494</Height> - <Angle>0</Angle> - <ItemGuid>B4D0A1C8-711C-49A9-82A3-B5B9F35FC131</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone10</HeaterType> - <SetPoint>140</SetPoint> - <CurrentValue>140.27</CurrentValue> - <IsActive>true</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>140</SetPoint> - </TechItem> - <TechItem xsi:type="ProcessParametersItem"> - <ID>21aa11c9-3d35-4902-901a-b9ed45117e09</ID> - <Left>653</Left> - <Top>860.82743362831877</Top> - <Width>382</Width> - <Height>223.93362831858394</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <ProcessParameters> - <ID>0</ID> - <Guid>811430c0-2afc-4e9b-8077-a74e1fd2f825</Guid> - <LastUpdated>2020-01-14T11:41:02.8729031Z</LastUpdated> - <Name>Process parameters 3</Name> - <DyeingSpeed>0</DyeingSpeed> - <MinInkUptake>0</MinInkUptake> - <MaxInkUptake>0</MaxInkUptake> - <FeederTension>0</FeederTension> - <PullerTension>0</PullerTension> - <WinderTension>0</WinderTension> - <MixerTemp>0</MixerTemp> - <HeadZone1Temp>0</HeadZone1Temp> - <HeadZone2Temp>100</HeadZone2Temp> - <HeadZone3Temp>0</HeadZone3Temp> - <HeadZone4Temp>0</HeadZone4Temp> - <HeadZone5Temp>0</HeadZone5Temp> - <HeadZone6Temp>0</HeadZone6Temp> - <DryerAirFlow>0</DryerAirFlow> - <DryerZone1Temp>0</DryerZone1Temp> - <DryerZone2Temp>0</DryerZone2Temp> - <DryerZone3Temp>0</DryerZone3Temp> - <DryerBufferLength>0</DryerBufferLength> - <HeadAirFlow>0</HeadAirFlow> - <TableIndex>0</TableIndex> - <HeadZone7Temp>0</HeadZone7Temp> - <HeadZone8Temp>0</HeadZone8Temp> - <HeadZone9Temp>0</HeadZone9Temp> - <HeadZone10Temp>0</HeadZone10Temp> - <HeadZone11Temp>0</HeadZone11Temp> - <HeadZone12Temp>0</HeadZone12Temp> - <RBlowerFlow>0</RBlowerFlow> - <RBlowerTemp>0</RBlowerTemp> - <LBlowerFlow>0</LBlowerFlow> - <LBlowerTemp>0</LBlowerTemp> - <PressureBuildUp>0</PressureBuildUp> - </ProcessParameters> - <ParametersIndices> - <ParameterIndex> - <Name>Name</Name> - <Index>0</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dyeing Speed</Name> - <Index>1</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Min Ink Uptake</Name> - <Index>2</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Max Ink Uptake</Name> - <Index>3</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Feeder Tension</Name> - <Index>4</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Puller Tension</Name> - <Index>5</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Winder Tension</Name> - <Index>6</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Mixer Temp</Name> - <Index>7</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 1 Temp</Name> - <Index>8</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 2 Temp</Name> - <Index>9</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 3 Temp</Name> - <Index>10</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 4 Temp</Name> - <Index>11</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 5 Temp</Name> - <Index>12</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 6 Temp</Name> - <Index>13</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Air Flow</Name> - <Index>14</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Zone 1 Temp</Name> - <Index>15</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Zone 2 Temp</Name> - <Index>16</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Zone 3 Temp</Name> - <Index>17</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Buffer Length</Name> - <Index>18</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Air Flow</Name> - <Index>19</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Process Parameters Tables Group Guid</Name> - <Index>20</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Table Index</Name> - <Index>21</Index> - </ParameterIndex> - </ParametersIndices> - </TechItem> - <TechItem xsi:type="DancerItem"> - <ID>d3f502ea-76dd-48c3-b401-7f5fb7925a72</ID> - <Left>337</Left> - <Top>586.991150442477</Top> - <Width>93</Width> - <Height>82.774336283185448</Height> - <Angle>0</Angle> - <ItemGuid>3EEE3B24-55DD-49F2-9339-F83F883BB908</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>e502555c-95b0-4688-b5e3-8becb30fc62c</ID> - <Left>1458.875</Left> - <Top>91.7821782178217</Top> - <Width>200</Width> - <Height>187.45575221238937</Height> - <Angle>0</Angle> - <ItemGuid>F8C1BA7F-F6DF-414D-BAF5-D4CB292F91F6</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeadCoverHeater1</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>283.75</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>0f7a35fc-e363-45b2-948d-ba66f91e4f0d</ID> - <Left>1457.8333333333333</Left> - <Top>344.58910891089096</Top> - <Width>200</Width> - <Height>187.45575221238937</Height> - <Angle>0</Angle> - <ItemGuid>F39B952A-6194-4055-A5CB-A3421BFE0F9B</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeadCoverHeater2</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>283.75</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="ProcessParametersItem"> - <ID>379cc480-084f-4349-bb87-2c18b3c839e4</ID> - <Left>17</Left> - <Top>26.340707964601791</Top> - <Width>312</Width> - <Height>465.09292035398232</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <ProcessParameters> - <ID>0</ID> - <Guid>77e783e1-c5bb-4eac-8768-c9a28fc69c97</Guid> - <LastUpdated>2020-03-04T15:02:12.3146789Z</LastUpdated> - <Name>Process parameters 4</Name> - <DyeingSpeed>50</DyeingSpeed> - <MinInkUptake>0</MinInkUptake> - <MaxInkUptake>0</MaxInkUptake> - <FeederTension>9</FeederTension> - <PullerTension>0</PullerTension> - <WinderTension>0</WinderTension> - <MixerTemp>80</MixerTemp> - <HeadZone1Temp>80</HeadZone1Temp> - <HeadZone2Temp>80</HeadZone2Temp> - <HeadZone3Temp>90</HeadZone3Temp> - <HeadZone4Temp>100</HeadZone4Temp> - <HeadZone5Temp>110</HeadZone5Temp> - <HeadZone6Temp>120</HeadZone6Temp> - <DryerAirFlow>7</DryerAirFlow> - <DryerZone1Temp>180</DryerZone1Temp> - <DryerZone2Temp>0</DryerZone2Temp> - <DryerZone3Temp>0</DryerZone3Temp> - <DryerBufferLength>30</DryerBufferLength> - <HeadAirFlow>7</HeadAirFlow> - <TableIndex>0</TableIndex> - <HeadZone7Temp>135</HeadZone7Temp> - <HeadZone8Temp>135</HeadZone8Temp> - <HeadZone9Temp>135</HeadZone9Temp> - <HeadZone10Temp>135</HeadZone10Temp> - <HeadZone11Temp>140</HeadZone11Temp> - <HeadZone12Temp>140</HeadZone12Temp> - <RBlowerFlow>0</RBlowerFlow> - <RBlowerTemp>0</RBlowerTemp> - <LBlowerFlow>0</LBlowerFlow> - <LBlowerTemp>0</LBlowerTemp> - <PressureBuildUp>0</PressureBuildUp> - </ProcessParameters> - <ParametersIndices> - <ParameterIndex> - <Name>Process Parameters Tables Group Guid</Name> - <Index>0</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Name</Name> - <Index>1</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Table Index</Name> - <Index>2</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dyeing Speed</Name> - <Index>3</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Min Ink Uptake</Name> - <Index>4</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Max Ink Uptake</Name> - <Index>5</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Feeder Tension</Name> - <Index>6</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Puller Tension</Name> - <Index>7</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Winder Tension</Name> - <Index>8</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Mixer Temp</Name> - <Index>9</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 1 Temp</Name> - <Index>10</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 2 Temp</Name> - <Index>11</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 3 Temp</Name> - <Index>12</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 4 Temp</Name> - <Index>13</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 5 Temp</Name> - <Index>14</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 6 Temp</Name> - <Index>15</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 7 Temp</Name> - <Index>16</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 8 Temp</Name> - <Index>17</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 9 Temp</Name> - <Index>18</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 10 Temp</Name> - <Index>19</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 11 Temp</Name> - <Index>20</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 12 Temp</Name> - <Index>21</Index> - </ParameterIndex> - <ParameterIndex> - <Name>R Blower Flow</Name> - <Index>22</Index> - </ParameterIndex> - <ParameterIndex> - <Name>R Blower Temp</Name> - <Index>23</Index> - </ParameterIndex> - <ParameterIndex> - <Name>L Blower Flow</Name> - <Index>24</Index> - </ParameterIndex> - <ParameterIndex> - <Name>L Blower Temp</Name> - <Index>25</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Zone 1 Temp</Name> - <Index>26</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Zone 2 Temp</Name> - <Index>27</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Zone 3 Temp</Name> - <Index>28</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Air Flow</Name> - <Index>29</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Air Flow</Name> - <Index>30</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Buffer Length</Name> - <Index>31</Index> - </ParameterIndex> - </ParametersIndices> - </TechItem> - <TechItem xsi:type="ProcessParametersItem"> - <ID>9b9fde94-ce8c-4401-8961-9d1d44ae2bcf</ID> - <Left>10</Left> - <Top>504.60619469026557</Top> - <Width>315</Width> - <Height>159.08407079646025</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <ProcessParameters> - <ID>0</ID> - <Guid>e7434743-ec18-4ae3-91a9-e25db760963d</Guid> - <LastUpdated>2020-03-04T15:03:44.3914568Z</LastUpdated> - <Name>Process parameters 5</Name> - <DyeingSpeed>0</DyeingSpeed> - <MinInkUptake>0</MinInkUptake> - <MaxInkUptake>0</MaxInkUptake> - <FeederTension>0</FeederTension> - <PullerTension>0</PullerTension> - <WinderTension>0</WinderTension> - <MixerTemp>0</MixerTemp> - <HeadZone1Temp>0</HeadZone1Temp> - <HeadZone2Temp>0</HeadZone2Temp> - <HeadZone3Temp>0</HeadZone3Temp> - <HeadZone4Temp>0</HeadZone4Temp> - <HeadZone5Temp>0</HeadZone5Temp> - <HeadZone6Temp>0</HeadZone6Temp> - <DryerAirFlow>4</DryerAirFlow> - <DryerZone1Temp>0</DryerZone1Temp> - <DryerZone2Temp>0</DryerZone2Temp> - <DryerZone3Temp>0</DryerZone3Temp> - <DryerBufferLength>0</DryerBufferLength> - <HeadAirFlow>4</HeadAirFlow> - <TableIndex>0</TableIndex> - <HeadZone7Temp>0</HeadZone7Temp> - <HeadZone8Temp>0</HeadZone8Temp> - <HeadZone9Temp>0</HeadZone9Temp> - <HeadZone10Temp>0</HeadZone10Temp> - <HeadZone11Temp>0</HeadZone11Temp> - <HeadZone12Temp>0</HeadZone12Temp> - <RBlowerFlow>0</RBlowerFlow> - <RBlowerTemp>0</RBlowerTemp> - <LBlowerFlow>0</LBlowerFlow> - <LBlowerTemp>0</LBlowerTemp> - <PressureBuildUp>0</PressureBuildUp> - </ProcessParameters> - <ParametersIndices> - <ParameterIndex> - <Name>Process Parameters Tables Group Guid</Name> - <Index>0</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Name</Name> - <Index>1</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Table Index</Name> - <Index>2</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dyeing Speed</Name> - <Index>3</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Min Ink Uptake</Name> - <Index>4</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Max Ink Uptake</Name> - <Index>5</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Feeder Tension</Name> - <Index>6</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Puller Tension</Name> - <Index>7</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Winder Tension</Name> - <Index>8</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Mixer Temp</Name> - <Index>9</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 1 Temp</Name> - <Index>10</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 2 Temp</Name> - <Index>11</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 3 Temp</Name> - <Index>12</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 4 Temp</Name> - <Index>13</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 5 Temp</Name> - <Index>14</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 6 Temp</Name> - <Index>15</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 7 Temp</Name> - <Index>16</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 8 Temp</Name> - <Index>17</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 9 Temp</Name> - <Index>18</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 10 Temp</Name> - <Index>19</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 11 Temp</Name> - <Index>20</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Zone 12 Temp</Name> - <Index>21</Index> - </ParameterIndex> - <ParameterIndex> - <Name>R Blower Flow</Name> - <Index>22</Index> - </ParameterIndex> - <ParameterIndex> - <Name>R Blower Temp</Name> - <Index>23</Index> - </ParameterIndex> - <ParameterIndex> - <Name>L Blower Flow</Name> - <Index>24</Index> - </ParameterIndex> - <ParameterIndex> - <Name>L Blower Temp</Name> - <Index>25</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Zone 1 Temp</Name> - <Index>26</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Zone 2 Temp</Name> - <Index>27</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Zone 3 Temp</Name> - <Index>28</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Air Flow</Name> - <Index>29</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Head Air Flow</Name> - <Index>30</Index> - </ParameterIndex> - <ParameterIndex> - <Name>Dryer Buffer Length</Name> - <Index>31</Index> - </ParameterIndex> - </ParametersIndices> - </TechItem> - <TechItem xsi:type="BlowerItem"> - <ID>a9ac7e80-c612-4b2b-b35a-669d6d8697aa</ID> - <Left>-1</Left> - <Top>686.995575221239</Top> - <Width>252</Width> - <Height>103.35398230088481</Height> - <Angle>0</Angle> - <ItemGuid>B6FE07F8-2435-495D-ABFE-358C76812413</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>82576c3f-1790-4074-97a3-65a12bd812c1</ID> - <Left>435</Left> - <Top>573.99557522124167</Top> - <Width>131</Width> - <Height>109.43362831858394</Height> - <Angle>0</Angle> - <ItemGuid>94F3E5A1-413E-4EA0-BDE1-F0625BFF7910</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>8a68cdf4-136b-4db4-bc4e-b3157790be6a</ID> - <Left>580</Left> - <Top>572.7168141592922</Top> - <Width>131</Width> - <Height>109.43362831858394</Height> - <Angle>0</Angle> - <ItemGuid>FE0D0A56-5795-4C5A-8E09-939FBB35C441</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - </Items> - </MachineTechViewProjectTab> - <MachineTechViewProjectTab> - <Name>Thread</Name> - <Items> - <TechItem xsi:type="MonitorItem"> - <ID>50bae43f-8b1a-4279-9238-b976a0c72af3</ID> - <Left>1530</Left> - <Top>193.19911504424795</Top> - <Width>169</Width> - <Height>181.37610619469029</Height> - <Angle>0</Angle> - <ItemGuid>A8DB1D27-6B25-4FB4-A3F5-46A29BA51955</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>68eef943-2151-4df5-be61-044c3865606e</ID> - <Left>1172</Left> - <Top>145.78318584070678</Top> - <Width>175</Width> - <Height>167.827433628319</Height> - <Angle>0</Angle> - <ItemGuid>96B89605-F999-43FE-A1CD-2645BFB33A36</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>6be024c6-3d1b-4267-9b77-44473aba56b7</ID> - <Left>988</Left> - <Top>143.32300884955998</Top> - <Width>190</Width> - <Height>167.09734513274049</Height> - <Angle>0</Angle> - <ItemGuid>FC60060A-3736-4910-B41A-FF6DABDF0E9E</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>7c720f3b-00e1-49dd-92f9-fdd1e9686623</ID> - <Left>817</Left> - <Top>142.42035398230098</Top> - <Width>169</Width> - <Height>168.31858407079625</Height> - <Angle>0</Angle> - <ItemGuid>4CE6A82E-D841-4D33-BBB2-11F0743A441C</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>3ebd6759-521b-4ed1-a353-ee1ad7801f28</ID> - <Left>922</Left> - <Top>516.43362831858417</Top> - <Width>439</Width> - <Height>304.995575221239</Height> - <Angle>0</Angle> - <ItemGuid>D126DB23-784B-4F0C-8F88-D89A65A7549F</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>1460</Duration> - <Min>0</Min> - <Max>16384</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>1</DecimalPlaces> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>984b4126-3dda-4624-a79f-0646eb0e1358</ID> - <Left>465</Left> - <Top>515.420353982301</Top> - <Width>439</Width> - <Height>304.995575221239</Height> - <Angle>0</Angle> - <ItemGuid>10102BC3-0EAE-47FF-A8E5-8640780CAA3D</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>1516</Duration> - <Min>0</Min> - <Max>16384</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>1</DecimalPlaces> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>8ebc3ab7-a02d-4b12-93b3-2563443831d7</ID> - <Left>15</Left> - <Top>518.46017699115032</Top> - <Width>439</Width> - <Height>304.995575221239</Height> - <Angle>0</Angle> - <ItemGuid>C0BCCD5C-346B-4C4A-A080-39D28E9E1A0C</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>1398</Duration> - <Min>0</Min> - <Max>16384</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>1</DecimalPlaces> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>acafb268-5e97-4277-8dc8-173250a9e3f8</ID> - <Left>12</Left> - <Top>13.849557522123973</Top> - <Width>439</Width> - <Height>304.995575221239</Height> - <Angle>0</Angle> - <ItemGuid>9FBC5460-BA59-486B-8D85-BD7D8A959F98</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>1273</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>1</DecimalPlaces> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>3ccb1485-b0e9-4d36-a931-a1b3865edeaa</ID> - <Left>460</Left> - <Top>38.28761061946841</Top> - <Width>267</Width> - <Height>221.90707964601768</Height> - <Angle>0</Angle> - <ItemGuid>08d15ca1-d7d1-460f-8f37-42c37c287cd1</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>952.3546144121359</Speed> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>be4cb8d9-b516-4604-a6a5-1638cbc50251</ID> - <Left>860</Left> - <Top>-24.18584070796669</Top> - <Width>345</Width> - <Height>169.21681415929209</Height> - <Angle>0</Angle> - <ItemGuid>4CE6A82E-D841-4D33-BBB2-11F0743A441C</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>514</Duration> - <Min>0</Min> - <Max>100000</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>1</DecimalPlaces> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>75b99507-4eba-4b11-b52e-26732d4c5479</ID> - <Left>19</Left> - <Top>324.14159292035305</Top> - <Width>429</Width> - <Height>193.26548672566258</Height> - <Angle>0</Angle> - <ItemGuid>F1DF490B-0577-4FA7-ACA1-0EEF4F934E8F</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>1398</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>4</DecimalPlaces> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>a30e48de-be76-4230-92d0-d27d6f37b940</ID> - <Left>474</Left> - <Top>320.03097345132551</Top> - <Width>429</Width> - <Height>193.26548672566258</Height> - <Angle>0</Angle> - <ItemGuid>5F12B974-2C9E-4DDD-9B20-733251A5D7E6</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>1398</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>4</DecimalPlaces> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>5ac4b368-093a-4192-98d4-e9d24f229b13</ID> - <Left>928</Left> - <Top>321.64601769912122</Top> - <Width>429</Width> - <Height>193.26548672566258</Height> - <Angle>0</Angle> - <ItemGuid>84CF23C9-D20D-4C08-BE1D-80201FC43C06</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>1398</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>4</DecimalPlaces> - </TechItem> - <TechItem xsi:type="MonitorRecorderItem"> - <ID>9c34dc69-cfaa-48b4-9d02-8f0d9bba79dd</ID> - <Left>1303</Left> - <Top>34.380530973454768</Top> - <Width>176</Width> - <Height>83.05309734512457</Height> - <Angle>0</Angle> - <ColorNumber>-1</ColorNumber> - <SelectedMonitorsGuids> - <string>89B7B89D-8050-4188-B568-35B1910CFB6F</string> - <string>96B89605-F999-43FE-A1CD-2645BFB33A36</string> - <string>84CF23C9-D20D-4C08-BE1D-80201FC43C06</string> - <string>FC60060A-3736-4910-B41A-FF6DABDF0E9E</string> - <string>5F12B974-2C9E-4DDD-9B20-733251A5D7E6</string> - <string>9ADF7823-B293-4275-9999-F62474D246AA</string> - <string>4CE6A82E-D841-4D33-BBB2-11F0743A441C</string> - <string>F1DF490B-0577-4FA7-ACA1-0EEF4F934E8F</string> - </SelectedMonitorsGuids> - </TechItem> - </Items> - </MachineTechViewProjectTab> - <MachineTechViewProjectTab> - <Name>Dispensers</Name> - <Items> - <TechItem xsi:type="DispenserItem"> - <ID>dce78f33-c966-4848-8c6e-a4a01dbc7577</ID> - <Left>1322.1428571428571</Left> - <Top>214.15929203538531</Top> - <Width>159</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>2CC8E461-E91F-4D4C-A402-922477F06C87</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>1200</Speed> - <DisplayName>Dispenser 1</DisplayName> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>2d03fc19-0502-43e1-a3ff-4012a612112b</ID> - <Left>1149</Left> - <Top>218.48230088495342</Top> - <Width>159</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>C8D8FE90-0375-44A2-A6D1-E997789E065C</ItemGuid> - <ColorNumber>-16724737</ColorNumber> - <Speed>1200</Speed> - <DisplayName>Dispenser 2</DisplayName> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>81958374-3fa3-48b3-a554-5653fe1934b1</ID> - <Left>959</Left> - <Top>210.32743362830422</Top> - <Width>156</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>08ED9044-CAD6-4492-94B2-C07206E0164B</ItemGuid> - <ColorNumber>-65325</ColorNumber> - <Speed>1200</Speed> - <DisplayName>Dispenser 3</DisplayName> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>8fead411-7198-4428-a364-e32f3035ed94</ID> - <Left>775</Left> - <Top>206.42920353980952</Top> - <Width>159</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>179F34BB-3252-4D3A-965C-E6EB43D6FE7C</ItemGuid> - <ColorNumber>-524544</ColorNumber> - <Speed>1200</Speed> - <DisplayName>Dispenser 4</DisplayName> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>31bfa89f-e64d-4a3b-8585-c4a1b2e5a139</ID> - <Left>585</Left> - <Top>208.47345132741418</Top> - <Width>159</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>716B35CF-46E0-47D5-AF85-5233D212568F</ItemGuid> - <ColorNumber>-2108246</ColorNumber> - <Speed>1200</Speed> - <DisplayName>Dispenser 5</DisplayName> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>c2bff5f3-6dc9-4b07-87ba-9e3a5814804e</ID> - <Left>372</Left> - <Top>216.75221238937439</Top> - <Width>159</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>99528449-4D76-4874-AB95-522951560E01</ItemGuid> - <ColorNumber>-263685</ColorNumber> - <Speed>1200</Speed> - <DisplayName>Dispenser 6</DisplayName> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>071281a5-3569-4a62-8b68-7bea850a3c07</ID> - <Left>217</Left> - <Top>211.63716814158107</Top> - <Width>159</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>E8ED07E2-7C36-459C-B9E5-6A23A1E24F03</ItemGuid> - <ColorNumber>-723724</ColorNumber> - <Speed>1200</Speed> - <DisplayName>Dispenser 7</DisplayName> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>7b703b9a-a626-4ae5-8e31-fa1cfe5718f4</ID> - <Left>45</Left> - <Top>216.04867256635521</Top> - <Width>159</Width> - <Height>215.8274336283186</Height> - <Angle>0</Angle> - <ItemGuid>8A957565-4165-49F7-854D-D21F95FFBE1B</ItemGuid> - <ColorNumber>-724238</ColorNumber> - <Speed>1200</Speed> - <DisplayName>Dispenser 8</DisplayName> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>caca40a2-310c-452e-adcf-c28ee38f6bdc</ID> - <Left>1305</Left> - <Top>31.606194690259713</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid> - <ColorNumber>-15856114</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>af52d36f-27a2-4a31-8ceb-9c43fedbed22</ID> - <Left>1127</Left> - <Top>32.535398230081626</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> - <ColorNumber>-15293470</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>d40eada8-d22a-4521-bd2a-d998ed93106f</ID> - <Left>955</Left> - <Top>32.61946902653176</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid> - <ColorNumber>-1570857</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>b2d6364d-8b5c-43d2-8838-927c85b017b1</ID> - <Left>774</Left> - <Top>31.960176991142362</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid> - <ColorNumber>-1379575</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>3980e685-73b3-4af1-9593-9235be147322</ID> - <Left>596</Left> - <Top>32.889380530964274</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid> - <ColorNumber>-7763381</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>51465293-58d5-40a4-8302-81856f8b4f47</ID> - <Left>424</Left> - <Top>32.973451327414409</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>AF3FD56C-95BF-4DE1-8EDC-8426B0DB2A26</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>c2a8c5b2-891b-4f9f-862c-c1c294366c78</ID> - <Left>252</Left> - <Top>31.703539823006281</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>60DA9EA3-C8A6-4D41-8AD8-3EB1BAA79CC9</ItemGuid> - <ColorNumber>-8391822</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>9618e441-8973-4e16-a90b-06ce5798bd29</ID> - <Left>80</Left> - <Top>31.787610619456416</Top> - <Width>150</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>EF66F95A-E166-4FA2-B1AF-D6F55621817A</ItemGuid> - <ColorNumber>-2186185</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>bce8c8e8-a317-4991-9aa7-cd99a45d1509</ID> - <Left>28.22352941176473</Left> - <Top>682.03174474303751</Top> - <Width>247</Width> - <Height>122.24778761061873</Height> - <Angle>0</Angle> - <ItemGuid>66cc8510-db9c-4e13-9151-01e705ec04de</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>72a23702-31bb-4ab8-aee5-2a02bcb1270b</ID> - <Left>235.16470588235291</Left> - <Top>699.99460095802579</Top> - <Width>200</Width> - <Height>94.15929203539747</Height> - <Angle>0</Angle> - <ItemGuid>36ba0ba4-e41d-45ff-8f68-1699e00c7107</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="ControllerItem"> - <ID>2dd6ff17-e515-4d8f-814f-a9683f404a8e</ID> - <Left>140</Left> - <Top>867.73893805310092</Top> - <Width>160</Width> - <Height>85.49115044247776</Height> - <Angle>0</Angle> - <ItemGuid>78482AA4-3DF6-421F-944C-64328D3C3EF2</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <OptimalRangeMinimum>0</OptimalRangeMinimum> - <OptimalRangeMaximum>70</OptimalRangeMaximum> - <IsSetToDefault>true</IsSetToDefault> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>06843009-1da0-4811-8e77-50576d0edcb1</ID> - <Left>507</Left> - <Top>792.77433628318749</Top> - <Width>219</Width> - <Height>125.75221238938025</Height> - <Angle>0</Angle> - <ItemGuid>0c5dc1e9-da17-4ff8-86aa-6b39fd796ba9</ItemGuid> - <ColorNumber>-16777216</ColorNumber> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>935dddd0-0c6f-4766-8173-f9118006a12b</ID> - <Left>1303</Left> - <Top>475.87168141593065</Top> - <Width>160</Width> - <Height>124.6504424778754</Height> - <Angle>0</Angle> - <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid> - <ColorNumber>-15856114</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MultiGraphItem"> - <ID>97e39a59-dba8-4e42-a124-b37de9453baf</ID> - <Left>370</Left> - <Top>781.46902654866153</Top> - <Width>710</Width> - <Height>401.24778761063465</Height> - <Angle>0</Angle> - <ItemGuid>D023F15D-3555-48E9-A9E9-5DF99F60D791</ItemGuid> - <ColorNumber>0</ColorNumber> - <Duration>1956</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>2</DecimalPlaces> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>46bdfce3-1c69-45dd-bbe9-582d1ac1e6f2</ID> - <Left>1128</Left> - <Top>482.80530973451141</Top> - <Width>140</Width> - <Height>117.32300884955743</Height> - <Angle>0</Angle> - <ItemGuid>0FE216B2-A097-4F2C-B465-08593F2532B3</ItemGuid> - <ColorNumber>-15293470</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>429154a5-9a16-4423-85ca-ee4bae9aec3c</ID> - <Left>968</Left> - <Top>481.35398230088504</Top> - <Width>140</Width> - <Height>117.32300884955743</Height> - <Angle>0</Angle> - <ItemGuid>3271FD82-46D3-4789-B612-564967826C75</ItemGuid> - <ColorNumber>-1570857</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>0f6ab8e8-99a7-4468-bde8-690a63467688</ID> - <Left>766</Left> - <Top>476.07964601769811</Top> - <Width>140</Width> - <Height>117.32300884955743</Height> - <Angle>0</Angle> - <ItemGuid>FBB806E7-42FA-4BAA-BDA1-3B8B07913AAD</ItemGuid> - <ColorNumber>-1379575</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>bc0ac903-9c1f-4580-8b9e-670a76350473</ID> - <Left>586</Left> - <Top>474.38938053097161</Top> - <Width>140</Width> - <Height>117.32300884955743</Height> - <Angle>0</Angle> - <ItemGuid>436A22BB-AF79-4CB2-8A7D-DD4D9E54A81E</ItemGuid> - <ColorNumber>-7763381</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>f9c960b2-b93e-46d5-b892-30337c0b55af</ID> - <Left>391</Left> - <Top>474.87168141592781</Top> - <Width>140</Width> - <Height>117.32300884955743</Height> - <Angle>0</Angle> - <ItemGuid>89EA6CC8-5363-4BEC-A370-D906611087A7</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>5ac157ab-2d53-4307-bf0b-b069854701ac</ID> - <Left>226</Left> - <Top>471.66814159292005</Top> - <Width>140</Width> - <Height>117.32300884955743</Height> - <Angle>0</Angle> - <ItemGuid>D5EBE52B-E2DF-4C97-80B1-F111F6B15854</ItemGuid> - <ColorNumber>-8391822</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>65a19d7e-c524-48a0-bd70-28b99b113dd1</ID> - <Left>69</Left> - <Top>473.97787610619389</Top> - <Width>140</Width> - <Height>117.32300884955743</Height> - <Angle>0</Angle> - <ItemGuid>FE521D1B-A0EA-4FEA-AE64-33998A6CE138</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>5bf7a681-ee47-477e-8b47-ba7a2eb6e115</ID> - <Left>1130</Left> - <Top>624.9557522123913</Top> - <Width>144</Width> - <Height>80.495575221237516</Height> - <Angle>0</Angle> - <ItemGuid>3174ADCF-5793-4B5A-A3C6-B96E146A903D</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>29b17a4b-fd4e-49cc-a3cd-418730176bf7</ID> - <Left>969</Left> - <Top>625.95575221239</Top> - <Width>144</Width> - <Height>80.495575221237516</Height> - <Angle>0</Angle> - <ItemGuid>AD50C358-5BAF-4A2F-8593-51A22C85B3D1</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>21a5429f-c3a2-4e3b-ae77-c5538f30130d</ID> - <Left>775</Left> - <Top>623.66814159292062</Top> - <Width>144</Width> - <Height>82.535398230087083</Height> - <Angle>0</Angle> - <ItemGuid>E2F0FC31-CE7E-416B-ACEA-8EB6CA9B850B</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>96a46b0c-37b1-4457-93fb-b3dc301c5743</ID> - <Left>588</Left> - <Top>625.06637168141322</Top> - <Width>144</Width> - <Height>80.495575221237516</Height> - <Angle>0</Angle> - <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C09F</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>d4ad8603-9929-415f-9990-1869fcff36e4</ID> - <Left>1310</Left> - <Top>628.69469026548632</Top> - <Width>144</Width> - <Height>80.495575221237516</Height> - <Angle>0</Angle> - <ItemGuid>84682E90-6926-42AA-BF8C-2CCCF5C26C97</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="ValveItem"> - <ID>25249d78-ee37-42a8-b5aa-96f60e97c3ea</ID> - <Left>20.870588235294122</Left> - <Top>784.26605504587133</Top> - <Width>327</Width> - <Height>108.53097345133028</Height> - <Angle>0</Angle> - <ItemGuid>8B1FCBC3-FEEA-4F87-B56F-CE5D28B7ACA4</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>fc1d62f7-d13b-4a7b-8f9f-c687c987c7a9</ID> - <Left>1065</Left> - <Top>788.41592920352355</Top> - <Width>370</Width> - <Height>362.10619469026585</Height> - <Angle>0</Angle> - <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>1426</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>3</DecimalPlaces> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>cc99a514-1498-4b93-a4eb-4e0a2a2e9de6</ID> - <Left>628</Left> - <Top>765.4469026548752</Top> - <Width>394</Width> - <Height>372.88495575221242</Height> - <Angle>0</Angle> - <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>1282</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>1</DecimalPlaces> - </TechItem> - <TechItem xsi:type="ValveItem"> - <ID>cdddd48e-422d-48f4-8397-5032c3705fdb</ID> - <Left>1069</Left> - <Top>698.04867256637226</Top> - <Width>382</Width> - <Height>136.79203539823016</Height> - <Angle>0</Angle> - <ItemGuid>16C0F85C-0479-42F4-A67E-3E0CD3B23C2D</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>ee6d4c5a-ca5b-4557-8012-dacf700cdc08</ID> - <Left>231</Left> - <Top>624.06637168142413</Top> - <Width>144</Width> - <Height>80.495575221237516</Height> - <Angle>0</Angle> - <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C010</ItemGuid> - <ColorNumber>-8391822</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>20576bb2-202f-4170-9af5-f3c18b410112</ID> - <Left>77</Left> - <Top>624.46460176991513</Top> - <Width>144</Width> - <Height>80.495575221237516</Height> - <Angle>0</Angle> - <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C011</ItemGuid> - <ColorNumber>-2186185</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - </Items> - </MachineTechViewProjectTab> - <MachineTechViewProjectTab> - <Name>Thread insertion</Name> - <Items> - <TechItem xsi:type="MotorItem"> - <ID>443a977c-8e89-4a56-82e4-684bac7945c9</ID> - <Left>25</Left> - <Top>22.761061946902203</Top> - <Width>247</Width> - <Height>172.25663716814159</Height> - <Angle>0</Angle> - <ItemGuid>08d15ca1-d7d1-460f-8f37-42c37c287cd1</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>500</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>a821b716-cb7d-4951-84ee-e56955431099</ID> - <Left>355</Left> - <Top>20.592920353981697</Top> - <Width>260</Width> - <Height>153.00442477876106</Height> - <Angle>0</Angle> - <ItemGuid>b90a4e78-ebbf-44db-829b-949517d6400b</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>500</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>e36e321b-d48d-4199-a1ee-75ac18e9de1e</ID> - <Left>694</Left> - <Top>19.367256637167998</Top> - <Width>217</Width> - <Height>155.26106194690203</Height> - <Angle>0</Angle> - <ItemGuid>b7c1aea4-32c1-41cb-bca3-4aa665529b49</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>500</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>8790db03-4dfd-4d49-aec0-706babb55af9</ID> - <Left>364</Left> - <Top>222.16814159291846</Top> - <Width>240</Width> - <Height>172.30973451327589</Height> - <Angle>0</Angle> - <ItemGuid>2d3eaca5-4dfd-40d9-9d1f-aa4ae794eddc</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>500</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>69ebcb28-13d9-41b3-a9ef-b2be51584141</ID> - <Left>29</Left> - <Top>241.34955752210982</Top> - <Width>263</Width> - <Height>174.296460176989</Height> - <Angle>0</Angle> - <ItemGuid>c6099065-a735-4cc5-b575-c31a45bb9262</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>400</Speed> - </TechItem> - <TechItem xsi:type="ThreadMotionItem"> - <ID>4d562029-3fdf-40a4-a5a7-9a322253c912</ID> - <Left>1168</Left> - <Top>47.305309734517039</Top> - <Width>304</Width> - <Height>167.26548672566202</Height> - <Angle>0</Angle> - <ColorNumber>-1</ColorNumber> - <Speed>50</Speed> - </TechItem> - <TechItem xsi:type="BreakSensorItem"> - <ID>92607e12-2dd6-41c9-8f89-f051f386b734</ID> - <Left>1258</Left> - <Top>277.55752212389069</Top> - <Width>240</Width> - <Height>156.04424778761069</Height> - <Angle>0</Angle> - <ItemGuid>DCE08A06-6711-43AE-AB7C-EADD5AB70EE0</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>7b5b6896-f626-4e59-a5cf-2600e603c0f6</ID> - <Left>695</Left> - <Top>223.44247787610908</Top> - <Width>228</Width> - <Height>175.0353982300901</Height> - <Angle>0</Angle> - <ItemGuid>7b6d0a93-5a91-4e1f-af47-353afd8b5ea6</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>83.833754740833143</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>2052a2d3-843c-4a1c-87fd-acd0832fd1b9</ID> - <Left>81</Left> - <Top>542.88495575220634</Top> - <Width>220</Width> - <Height>168.473451327436</Height> - <Angle>0</Angle> - <ItemGuid>7c03f12f-ab2a-4421-8575-aefd6dec0001</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>1000</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>339b7d00-d688-41cf-926a-8171d5e62740</ID> - <Left>376</Left> - <Top>553.11061946903</Top> - <Width>240</Width> - <Height>159.84070796460173</Height> - <Angle>0</Angle> - <ItemGuid>f3b5076e-cba3-4ad2-b3cc-0c4e907bd9ef</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>5</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>7644a8f9-00a2-4e37-8f48-0667b1541114</ID> - <Left>1037</Left> - <Top>247.03097345133062</Top> - <Width>240</Width> - <Height>172.30973451327589</Height> - <Angle>0</Angle> - <ItemGuid>92237d83-9f85-48db-aa6f-2fc5c9e0d8cd</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>500</Speed> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>c706d31b-48b0-44cc-a9c4-11d3acdcf667</ID> - <Left>548</Left> - <Top>418.71652683599893</Top> - <Width>269</Width> - <Height>127.67256637168134</Height> - <Angle>0</Angle> - <ItemGuid>2a454081-bd5e-41de-ae5d-97aefe1d76de</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>7ccff69d-50f9-4e9b-a997-72a67917df5e</ID> - <Left>803</Left> - <Top>569.80530973451619</Top> - <Width>227</Width> - <Height>145.08849557522183</Height> - <Angle>0</Angle> - <ItemGuid>9c02effb-7deb-40a1-90c3-df1fb48e6431</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>30</Speed> - </TechItem> - <TechItem xsi:type="MotorItem"> - <ID>a88a74cb-418b-4ed0-89ec-c42ff560528e</ID> - <Left>1107</Left> - <Top>573.87168141592883</Top> - <Width>227</Width> - <Height>145.08849557522183</Height> - <Angle>0</Angle> - <ItemGuid>a359e9d0-adcc-40a5-b3d9-b9cb26eca092</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>30</Speed> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>bba24461-e18d-497a-b85d-808668d0c750</ID> - <Left>892</Left> - <Top>457.57079646017365</Top> - <Width>170</Width> - <Height>87.999999999997613</Height> - <Angle>0</Angle> - <ItemGuid>6f48e18c-d472-425a-ba7e-633630605e11</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>9ccdbff6-031d-4364-8732-daade6b88551</ID> - <Left>1062</Left> - <Top>452.95575221238948</Top> - <Width>170</Width> - <Height>87.999999999997613</Height> - <Angle>0</Angle> - <ItemGuid>8a65badb-3d7d-4b7b-8dcd-783e443b0689</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - </Items> - </MachineTechViewProjectTab> - <MachineTechViewProjectTab> - <Name>Head graphs</Name> - <Items> - <TechItem xsi:type="SingleGraphItem"> - <ID>ffe980da-dbbe-4bac-9595-46f587e9df00</ID> - <Left>3</Left> - <Top>5.8097345132742362</Top> - <Width>363</Width> - <Height>157.76991150442467</Height> - <Angle>0</Angle> - <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E448FB</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>2962</Duration> - <Min>0</Min> - <Max>300</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>2</DecimalPlaces> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>81b78212-14d8-4a66-bf3a-eeea9900e0d6</ID> - <Left>371</Left> - <Top>21.075221238938013</Top> - <Width>128</Width> - <Height>91.469026548670342</Height> - <Angle>0</Angle> - <ItemGuid>AA1CF164-76FE-49C6-AA73-0EBA29816E92</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>3941a557-05e6-4c1b-bb98-4f2a59892431</ID> - <Left>517</Left> - <Top>11.517699115044195</Top> - <Width>103</Width> - <Height>113.4867256637167</Height> - <Angle>0</Angle> - <ItemGuid>188285E5-1493-4BED-8269-91743770A631</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone7</HeaterType> - <SetPoint>100</SetPoint> - <CurrentValue>100.02</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>100</SetPoint> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>7e0942e7-a87a-402a-b580-5091ed6b29ee</ID> - <Left>8</Left> - <Top>276.6194690265491</Top> - <Width>357</Width> - <Height>143.58407079645986</Height> - <Angle>0</Angle> - <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E44809</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>2962</Duration> - <Min>0</Min> - <Max>300</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>2</DecimalPlaces> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>064bd571-4250-4ea3-8ed5-96f1ddc8fe6b</ID> - <Left>374</Left> - <Top>280.73893805309746</Top> - <Width>128</Width> - <Height>91.469026548670342</Height> - <Angle>0</Angle> - <ItemGuid>8FEB7F10-E1FB-465A-A987-6E8659C2186A</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>4845ec5b-067b-43c2-aaf1-314dcb358a7c</ID> - <Left>519</Left> - <Top>283.3407079646019</Top> - <Width>103</Width> - <Height>121.59292035398221</Height> - <Angle>0</Angle> - <ItemGuid>63E2AFE0-0746-4AAB-AA74-C26EC1F282AE</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone9</HeaterType> - <SetPoint>95</SetPoint> - <CurrentValue>95.05</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>95</SetPoint> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>85b25b0b-cd3d-4a8a-88f5-f832623d7ec2</ID> - <Left>8.75</Left> - <Top>704.87334618417651</Top> - <Width>350</Width> - <Height>152.70353982300856</Height> - <Angle>0</Angle> - <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E44812</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>2962</Duration> - <Min>0</Min> - <Max>300</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>2</DecimalPlaces> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>85e9ecc2-3bce-4055-89a9-1712752898a9</ID> - <Left>375.66666666666663</Left> - <Top>902.19714360816624</Top> - <Width>128</Width> - <Height>91.469026548670342</Height> - <Angle>0</Angle> - <ItemGuid>500698E0-5623-4A47-9537-FCAAF5D0B725</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>8d9b0d4b-ac5e-4c17-b7eb-4d59825064c7</ID> - <Left>523.04166666666652</Left> - <Top>895.90015771488663</Top> - <Width>103</Width> - <Height>121.59292035398221</Height> - <Angle>0</Angle> - <ItemGuid>F39B952A-6194-4055-A5CB-A3421BFE0F9B</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone12</HeaterType> - <SetPoint>99</SetPoint> - <CurrentValue>99</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>99</SetPoint> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>63ccee8d-ce38-4c69-b8d1-141f320d11f9</ID> - <Left>6</Left> - <Top>563.37610619469046</Top> - <Width>358</Width> - <Height>141.55752212389359</Height> - <Angle>0</Angle> - <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E44811</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>2962</Duration> - <Min>0</Min> - <Max>300</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>2</DecimalPlaces> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>5ed86083-bdd6-4648-b7ca-f17fa97f034a</ID> - <Left>379</Left> - <Top>573.57522123893818</Top> - <Width>128</Width> - <Height>91.469026548670342</Height> - <Angle>0</Angle> - <ItemGuid>C113AA1D-25F5-4095-A1F3-18BEDFC0EEEE</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>8269194e-5348-4367-8ae9-e6c0647febaf</ID> - <Left>523</Left> - <Top>571.1106194690268</Top> - <Width>103</Width> - <Height>116.52654867256626</Height> - <Angle>0</Angle> - <ItemGuid>D41BBB23-6EB5-4743-89DB-9191000B475F</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone11</HeaterType> - <SetPoint>100</SetPoint> - <CurrentValue>100.02</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>100</SetPoint> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>182492d7-b240-4162-b8ec-39996eec3cc7</ID> - <Left>9</Left> - <Top>418.47787610619497</Top> - <Width>353</Width> - <Height>145.61061946902635</Height> - <Angle>0</Angle> - <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E44810</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>2962</Duration> - <Min>0</Min> - <Max>300</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>2</DecimalPlaces> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>e8130372-e0ee-4c1c-a43d-4ab15ff57bd8</ID> - <Left>378</Left> - <Top>430.703539823009</Top> - <Width>128</Width> - <Height>91.469026548670342</Height> - <Angle>0</Angle> - <ItemGuid>DCCCCF68-5895-40BE-9E90-1FA35E44D2E4</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>af0d953f-45de-4c0d-9eeb-d7a5c17681e4</ID> - <Left>519</Left> - <Top>428.23893805309746</Top> - <Width>103</Width> - <Height>121.59292035398221</Height> - <Angle>0</Angle> - <ItemGuid>B4D0A1C8-711C-49A9-82A3-B5B9F35FC131</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone10</HeaterType> - <SetPoint>100</SetPoint> - <CurrentValue>100.02</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>100</SetPoint> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>00dda04e-1853-422f-ac47-29bdbab642d7</ID> - <Left>7</Left> - <Top>142.86725663716828</Top> - <Width>357</Width> - <Height>152.70353982300867</Height> - <Angle>0</Angle> - <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E44808</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>2962</Duration> - <Min>0</Min> - <Max>300</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>2</DecimalPlaces> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>e7935033-56c6-42a4-a2b3-f5eedb0a11e7</ID> - <Left>382</Left> - <Top>151.03982300884968</Top> - <Width>128</Width> - <Height>91.469026548670342</Height> - <Angle>0</Angle> - <ItemGuid>E772ECA1-24EB-446A-AB28-F5E3D853B9F6</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>b339a7c0-7555-4e54-9834-6193ed7c2b7a</ID> - <Left>519</Left> - <Top>147.561946902655</Top> - <Width>104</Width> - <Height>109.43362831858406</Height> - <Angle>0</Angle> - <ItemGuid>461FA2D7-1918-4958-AAA7-37A1A329FA12</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone8</HeaterType> - <SetPoint>100</SetPoint> - <CurrentValue>99.97</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>100</SetPoint> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>40d16753-8448-4af9-8fbd-98c1ed301de5</ID> - <Left>623</Left> - <Top>117.5353982300885</Top> - <Width>363</Width> - <Height>157.76991150442467</Height> - <Angle>0</Angle> - <ItemGuid>D7585119-4A42-4370-8F1E-F3E62553E588</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>2962</Duration> - <Min>0</Min> - <Max>300</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>2</DecimalPlaces> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>b3826c8e-1d82-4f4f-ad9f-d88f257dffb2</ID> - <Left>1005</Left> - <Top>12.221238938053205</Top> - <Width>128</Width> - <Height>91.469026548670342</Height> - <Angle>0</Angle> - <ItemGuid>d59b64f7-a8cf-4a2b-935a-943ae35fb78c</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>d3631074-68c4-4377-b0c5-9213a6b1b2c0</ID> - <Left>1148</Left> - <Top>293.47345132743362</Top> - <Width>103</Width> - <Height>113.4867256637167</Height> - <Angle>0</Angle> - <ItemGuid>8E764A14-0F84-4FEC-928B-32A2509CAD57</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone3</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>8.5</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>99af8946-4971-4913-9382-705c4e05b7ce</ID> - <Left>621</Left> - <Top>275.60619469026591</Top> - <Width>363</Width> - <Height>157.76991150442467</Height> - <Angle>0</Angle> - <ItemGuid>098F7CAB-030C-46B0-B2B8-A85AF2253032</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>2962</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>2</DecimalPlaces> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>233f0076-7595-4ecb-8496-41eeb7b457ea</ID> - <Left>993</Left> - <Top>279.72566371681404</Top> - <Width>128</Width> - <Height>91.469026548670342</Height> - <Angle>0</Angle> - <ItemGuid>9de55ec4-201f-4f62-9003-f63ebea06f8f</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>f815ebb5-61af-45ff-8109-5f5e717a5c4d</ID> - <Left>1146</Left> - <Top>14.823008849557596</Top> - <Width>103</Width> - <Height>113.4867256637167</Height> - <Angle>0</Angle> - <ItemGuid>27E7BB74-81C3-4EF2-80AE-962F111C441F</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone1</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>8.5</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>7b7d9bea-29df-4f94-8ab6-2a6d7105bccf</ID> - <Left>627</Left> - <Top>6.07522123893807</Top> - <Width>363</Width> - <Height>157.76991150442467</Height> - <Angle>0</Angle> - <ItemGuid>A8DB1D27-6B25-4FB4-A3F5-46A29BA51955</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>2962</Duration> - <Min>0</Min> - <Max>300</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>2</DecimalPlaces> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>72d7192b-dd27-4064-9f5f-90062388a81c</ID> - <Left>1003</Left> - <Top>151.03982300884974</Top> - <Width>128</Width> - <Height>91.469026548670342</Height> - <Angle>0</Angle> - <ItemGuid>df38139e-0026-46bc-b72f-df5f9eec80f7</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>915f8dfc-5407-43ca-a0c7-d774867dfb5f</ID> - <Left>1145</Left> - <Top>153.64159292035396</Top> - <Width>103</Width> - <Height>113.4867256637167</Height> - <Angle>0</Angle> - <ItemGuid>B4EE8CC0-EE2B-4ABE-BF09-9226860E756B</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone2</HeaterType> - <SetPoint>30</SetPoint> - <CurrentValue>225.29</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>true</IsRampingUp> - <IsInSetPoint>false</IsInSetPoint> - </HeaterState> - <SetPoint>30</SetPoint> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>64fba32f-3c03-42b3-b1ed-e2bdbe454bd6</ID> - <Left>630</Left> - <Top>535.00442477876129</Top> - <Width>363</Width> - <Height>157.76991150442467</Height> - <Angle>0</Angle> - <ItemGuid>246C2551-5EFD-48E9-94F6-6313C5E5018F</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>2962</Duration> - <Min>0</Min> - <Max>300</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>2</DecimalPlaces> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>5f451443-fab2-4bf6-8f21-5e038ca2c726</ID> - <Left>1008</Left> - <Top>707.327433628319</Top> - <Width>128</Width> - <Height>91.469026548670342</Height> - <Angle>0</Angle> - <ItemGuid>16D0DEF7-A2E0-4163-9F4B-FBEC2573BCC7</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>e5c1becb-1402-45fa-b252-60a03d4401cc</ID> - <Left>1150</Left> - <Top>716.00884955752235</Top> - <Width>103</Width> - <Height>113.4867256637167</Height> - <Angle>0</Angle> - <ItemGuid>D2B6CAA0-055E-4871-8D91-A5370F1ACB22</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone6</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>279.81</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>4f3b4ecd-759a-4ba5-80f3-74cc485d7085</ID> - <Left>629</Left> - <Top>387.066371681416</Top> - <Width>363</Width> - <Height>157.76991150442467</Height> - <Angle>0</Angle> - <ItemGuid>6C0C1AB0-3EE9-40D7-8424-A79436FBC804</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>2962</Duration> - <Min>0</Min> - <Max>300</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>2</DecimalPlaces> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>665593d6-e689-459e-94f9-2cdcce6150ac</ID> - <Left>1004</Left> - <Top>562.42920353982311</Top> - <Width>128</Width> - <Height>91.469026548670342</Height> - <Angle>0</Angle> - <ItemGuid>d28bfa3c-edce-4f19-a296-3da251fcc0e2</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>42b4b029-e8bc-4156-b6c1-bb64aae83f9e</ID> - <Left>1149</Left> - <Top>571.1106194690268</Top> - <Width>103</Width> - <Height>113.4867256637167</Height> - <Angle>0</Angle> - <ItemGuid>D6771DF4-771E-4D62-B6BA-BDE361C0A0F3</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone5</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>8.5</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>60dff2b2-7ddc-47a9-90b1-3f45968c1790</ID> - <Left>630</Left> - <Top>692.06194690265511</Top> - <Width>363</Width> - <Height>157.76991150442467</Height> - <Angle>0</Angle> - <ItemGuid>DACEBF90-E2B4-4CC9-A973-B8B429AA0089</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>2962</Duration> - <Min>0</Min> - <Max>300</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>2</DecimalPlaces> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>b53a74f3-8e91-40ce-b980-c5b237baeee9</ID> - <Left>1002</Left> - <Top>413.47787610619491</Top> - <Width>128</Width> - <Height>91.469026548670342</Height> - <Angle>0</Angle> - <ItemGuid>81a3ae80-f4ea-4857-bc4e-2055d3b5fbc7</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>8c438e59-d87c-46d2-8050-acc8a0c455d7</ID> - <Left>1148</Left> - <Top>434.31858407079636</Top> - <Width>103</Width> - <Height>113.4867256637167</Height> - <Angle>0</Angle> - <ItemGuid>94574D69-46E1-4144-A8B5-D4BF0DA96D18</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>HeaterZone4</HeaterType> - <SetPoint>30</SetPoint> - <CurrentValue>170.98999999999998</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>true</IsRampingUp> - <IsInSetPoint>false</IsInSetPoint> - </HeaterState> - <SetPoint>30</SetPoint> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>f786b4da-3291-4ccb-a280-196fd8697ac1</ID> - <Left>5.7499999999999858</Left> - <Top>866.06435643564362</Top> - <Width>350</Width> - <Height>152.70353982300856</Height> - <Angle>0</Angle> - <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E448DD</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>2962</Duration> - <Min>0</Min> - <Max>300</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>2</DecimalPlaces> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>584c7f29-49cc-4845-a7ab-09239bd3a986</ID> - <Left>377.875</Left> - <Top>735.75944098834611</Top> - <Width>128</Width> - <Height>91.469026548670342</Height> - <Angle>0</Angle> - <ItemGuid>96A8AF31-B489-4FA2-BF99-C66D7DEC94C8</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>5c6da8d4-bd2e-44cc-8d99-a6b8bca7df3f</ID> - <Left>524.20833333333337</Left> - <Top>721.52681153071046</Top> - <Width>103</Width> - <Height>121.59292035398221</Height> - <Angle>0</Angle> - <ItemGuid>2D578A37-D808-40D0-ACE4-4A868EDD6BDC</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>DryerAirHeater</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>0</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>false</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>05eab3d7-3af6-4d3f-b3b3-468eeb77a503</ID> - <Left>644.29166666666674</Left> - <Top>874.00000000000011</Top> - <Width>350</Width> - <Height>152.70353982300856</Height> - <Angle>0</Angle> - <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E448CC</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>2962</Duration> - <Min>0</Min> - <Max>300</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>2</DecimalPlaces> - </TechItem> - <TechItem xsi:type="PidItem"> - <ID>c1f48bf1-9cb3-475a-b152-e8b9a211b694</ID> - <Left>1010.1666666666667</Left> - <Top>895.60597564181194</Top> - <Width>128</Width> - <Height>91.469026548670342</Height> - <Angle>0</Angle> - <ItemGuid>7FCA67CB-785B-49F7-B9F2-191E3ACC6CB7</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="HeaterItem"> - <ID>c5fbeda2-230d-40e4-9d52-5b3236e0c561</ID> - <Left>1161.708333333333</Left> - <Top>885.907999649522</Top> - <Width>103</Width> - <Height>121.59292035398221</Height> - <Angle>0</Angle> - <ItemGuid>F8C1BA7F-F6DF-414D-BAF5-D4CB292F91F6</ItemGuid> - <ColorNumber>-1</ColorNumber> - <HeaterState> - <HeaterType>DryerAirHeater</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>0</CurrentValue> - <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>false</IsInSetPoint> - </HeaterState> - <SetPoint>0</SetPoint> - </TechItem> - </Items> - </MachineTechViewProjectTab> - <MachineTechViewProjectTab> - <Name>waste</Name> - <Items> - <TechItem xsi:type="DigitalOutItem"> - <ID>bb9bf273-0a3d-4202-98ce-37a5f206ed75</ID> - <Left>119</Left> - <Top>68.898230088495609</Top> - <Width>339</Width> - <Height>184.4159292035398</Height> - <Angle>0</Angle> - <ItemGuid>7e1f53ec-8176-4efa-ac3d-c8f2436e60d1</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>59678a51-f995-4952-b250-e449f1fcbeac</ID> - <Left>468</Left> - <Top>80.336283185839477</Top> - <Width>280</Width> - <Height>166.17699115044252</Height> - <Angle>0</Angle> - <ItemGuid>78db28d0-0407-4942-bb62-c44da81c4f9e</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="DigitalInItem"> - <ID>8f9ff579-0e9d-4f48-8ed0-6fa563f2aba7</ID> - <Left>873</Left> - <Top>63.831858407079665</Top> - <Width>174</Width> - <Height>133.75221238938059</Height> - <Angle>0</Angle> - <ItemGuid>06bd7c0b-5aef-445a-86c0-853becf8594b</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="DigitalInItem"> - <ID>70d1bd1e-acdb-436a-b205-6eeb9d137120</ID> - <Left>1070</Left> - <Top>70.106194690265909</Top> - <Width>221</Width> - <Height>123.61946902654864</Height> - <Angle>0</Angle> - <ItemGuid>4048bf02-27dc-4049-9284-fe913a7e0ebe</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="DigitalInItem"> - <ID>dcc7ce16-5b89-4ff8-acd5-7fb0b9ebb6d1</ID> - <Left>877</Left> - <Top>248.24778761061947</Top> - <Width>186</Width> - <Height>126.65929203539827</Height> - <Angle>0</Angle> - <ItemGuid>00ea1771-efee-4f3e-a0d2-8b2a4214e9fd</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>2b99bbf7-94da-4bb2-acc9-91b35e543c5d</ID> - <Left>897</Left> - <Top>358.69469026548683</Top> - <Width>147</Width> - <Height>69.9159292035398</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>Waste lower presence</Text> - </TechItem> - <TechItem xsi:type="DigitalInItem"> - <ID>c150533c-abe4-4edf-b6ad-fa475b133142</ID> - <Left>1112</Left> - <Top>253.66814159291806</Top> - <Width>186</Width> - <Height>126.65929203539827</Height> - <Angle>0</Angle> - <ItemGuid>d2f266e3-779b-4dfe-b513-26ce61c529a4</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>d96f2a6d-0ccb-401e-8931-09086ca81fae</ID> - <Left>1143</Left> - <Top>366.78318584070507</Top> - <Width>147</Width> - <Height>69.9159292035398</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>Waste middle presence</Text> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>bb9847ba-9671-4613-bf23-a0c637ebc79d</ID> - <Left>151</Left> - <Top>271.55309734513281</Top> - <Width>200</Width> - <Height>63.836283185840671</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>pump</Text> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>d13a2df4-3f54-4c31-8f9a-ee7810fb6af5</ID> - <Left>504</Left> - <Top>283.71238938053096</Top> - <Width>192</Width> - <Height>67.88938053097354</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>valve</Text> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>fbe2670f-6d9b-4361-9332-1ceb1692c91a</ID> - <Left>108</Left> - <Top>484.61946902655154</Top> - <Width>356</Width> - <Height>208.10619469026472</Height> - <Angle>0</Angle> - <ItemGuid>78db28d0-0407-4942-bb62-c44da81c4f9e</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - </Items> - </MachineTechViewProjectTab> - <MachineTechViewProjectTab> - <Name>disp</Name> - <Items> - <TechItem xsi:type="SingleGraphItem"> - <ID>f9531a72-3742-47a7-86bb-b589f8b3eb55</ID> - <Left>123</Left> - <Top>128.33628318584061</Top> - <Width>390</Width> - <Height>249.67699115047321</Height> - <Angle>0</Angle> - <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>3600</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>3</DecimalPlaces> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>aae29286-81b3-476a-9f58-c0fd246cae96</ID> - <Left>880</Left> - <Top>158.81415929204155</Top> - <Width>442</Width> - <Height>241.88495575221771</Height> - <Angle>0</Angle> - <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>3600</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>3</DecimalPlaces> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>7d94c7c4-1288-4f9d-b0e6-a06794829642</ID> - <Left>1055</Left> - <Top>14.181415929203524</Top> - <Width>161</Width> - <Height>111.46017699115049</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>Y</Text> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>c95f9ad1-b607-4606-8217-400bea76f3d6</ID> - <Left>384</Left> - <Top>23.991150442480944</Top> - <Width>161</Width> - <Height>111.46017699115049</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>C</Text> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>8f141fa5-fb24-4557-adcf-a6aa55a28fb4</ID> - <Left>121</Left> - <Top>-8.8495575221214722</Top> - <Width>169</Width> - <Height>132.73893805309734</Height> - <Angle>0</Angle> - <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>3</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>7eab018a-ef43-4bca-a6cf-857d69767bba</ID> - <Left>839</Left> - <Top>-4.7079646017762684</Top> - <Width>169</Width> - <Height>132.73893805309734</Height> - <Angle>0</Angle> - <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>3</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorRecorderItem"> - <ID>2a9e89d4-5d60-4a83-9527-cb77fdf35c14</ID> - <Left>1276</Left> - <Top>22.287610619469035</Top> - <Width>187</Width> - <Height>102.34070796460179</Height> - <Angle>0</Angle> - <ColorNumber>-1</ColorNumber> - <SelectedMonitorsGuids> - <string>1F0F907A-EC16-4386-AFC8-B2B156F2A822</string> - <string>A499E5E0-A812-4032-8F96-B38C6762C4BD</string> - <string>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</string> - <string>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</string> - <string>19645882-6587-4A50-BD85-AF06617DC654</string> - <string>96B89605-F999-43FE-A1CD-2645BFB33A36</string> - <string>84CF23C9-D20D-4C08-BE1D-80201FC43C06</string> - <string>C0BCCD5C-346B-4C4A-A080-39D28E9E1A0C</string> - <string>10102BC3-0EAE-47FF-A8E5-8640780CAA3D</string> - <string>FC60060A-3736-4910-B41A-FF6DABDF0E9E</string> - <string>5F12B974-2C9E-4DDD-9B20-733251A5D7E6</string> - <string>D126DB23-784B-4F0C-8F88-D89A65A7549F</string> - </SelectedMonitorsGuids> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>6d2e7962-b3ae-4682-b20e-9654f48dcffe</ID> - <Left>587</Left> - <Top>5.0619469026548813</Top> - <Width>155</Width> - <Height>131.72566371681415</Height> - <Angle>0</Angle> - <ItemGuid>2CC8E461-E91F-4D4C-A402-922477F06C87</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>500</Speed> - <DisplayName>Dispenser 1</DisplayName> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>5ee2718f-f068-427b-a31e-d586c7d7682c</ID> - <Left>131</Left> - <Top>552.94690265486338</Top> - <Width>390</Width> - <Height>249.67699115047321</Height> - <Angle>0</Angle> - <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>3600</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>3</DecimalPlaces> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>1c254a92-c075-453f-9667-cdcc91cf8e6a</ID> - <Left>399</Left> - <Top>455.67256637168265</Top> - <Width>161</Width> - <Height>111.46017699115049</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>K</Text> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>d1087b1a-c36b-4242-96f5-07c2bb602cc4</ID> - <Left>145</Left> - <Top>409.52212389380446</Top> - <Width>169</Width> - <Height>132.73893805309734</Height> - <Angle>0</Angle> - <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>3</DecimalPoints> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>53fe93a2-88a5-4d4d-9cd5-eb4d8a8fefae</ID> - <Left>604</Left> - <Top>561.16371681414739</Top> - <Width>390</Width> - <Height>249.67699115047321</Height> - <Angle>0</Angle> - <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>3600</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>3</DecimalPlaces> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>0bef6e9d-6da0-4f06-9e1a-c00142bde4c1</ID> - <Left>832</Left> - <Top>440.91150442477635</Top> - <Width>161</Width> - <Height>111.46017699115049</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>M</Text> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>762c5a97-a3bc-45b4-aa9f-0b50afa9cb9b</ID> - <Left>633</Left> - <Top>434.0132743362783</Top> - <Width>169</Width> - <Height>132.73893805309734</Height> - <Angle>0</Angle> - <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>3</DecimalPoints> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>be584f80-3250-494c-87fc-250d6deae051</ID> - <Left>1045</Left> - <Top>559.4070796459921</Top> - <Width>390</Width> - <Height>249.67699115047321</Height> - <Angle>0</Angle> - <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>3600</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>3</DecimalPlaces> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>39f6a02c-c4d9-47d0-b92d-bdea0ed5d3ce</ID> - <Left>1056</Left> - <Top>435.43805309733875</Top> - <Width>169</Width> - <Height>132.73893805309734</Height> - <Angle>0</Angle> - <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>3</DecimalPoints> - </TechItem> - <TechItem xsi:type="TextItem"> - <ID>5b924929-9b16-4598-94cc-b2f4bca26798</ID> - <Left>1304</Left> - <Top>448.0884955752224</Top> - <Width>161</Width> - <Height>111.46017699115049</Height> - <Angle>0</Angle> - <ColorNumber>-14774017</ColorNumber> - <Text>TI</Text> - </TechItem> - <TechItem xsi:type="ValveItem"> - <ID>89ae1fa5-1ad1-469e-ae76-0a29c35805cd</ID> - <Left>588</Left> - <Top>317.1504424778762</Top> - <Width>283</Width> - <Height>74.982300884955748</Height> - <Angle>0</Angle> - <ItemGuid>E144A221-4859-4DC3-9A7E-4A2969FB0826</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="ValveItem"> - <ID>c218cf34-74c2-41bb-8c3b-3030abce451a</ID> - <Left>1363</Left> - <Top>384.02654867256643</Top> - <Width>156</Width> - <Height>94.234513274336337</Height> - <Angle>0</Angle> - <ItemGuid>E144A221-4859-4DC3-9A7E-4A2969FB0826</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="ValveItem"> - <ID>75af30c6-d7f8-4745-bfb5-d6dc5d50479a</ID> - <Left>767</Left> - <Top>362.74778761061958</Top> - <Width>283</Width> - <Height>74.982300884955748</Height> - <Angle>0</Angle> - <ItemGuid>E144A221-4859-4DC3-9A7E-4A2969FB0826</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>df1fd958-fd8a-4b00-98e1-679455494d60</ID> - <Left>309</Left> - <Top>13.168141592920392</Top> - <Width>112</Width> - <Height>107.40707964601768</Height> - <Angle>0</Angle> - <ItemGuid>3174ADCF-5793-4B5A-A3C6-B96E146A903D</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>f07225b3-1522-4cb6-9ba8-5b9697f05467</ID> - <Left>1180</Left> - <Top>60.7920353982301</Top> - <Width>102</Width> - <Height>88.1548672566372</Height> - <Angle>0</Angle> - <ItemGuid>E2F0FC31-CE7E-416B-ACEA-8EB6CA9B850B</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>45b87322-e1f5-42eb-88c6-71c2eeb2899a</ID> - <Left>1258</Left> - <Top>463.06194690265494</Top> - <Width>88</Width> - <Height>75.995575221239</Height> - <Angle>0</Angle> - <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C09F</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>0c1c25e8-3ce3-4994-bbb9-bd6b2367a413</ID> - <Left>810</Left> - <Top>462.04867256637175</Top> - <Width>77</Width> - <Height>80.048672566371636</Height> - <Angle>0</Angle> - <ItemGuid>AD50C358-5BAF-4A2F-8593-51A22C85B3D1</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - <TechItem xsi:type="MonitorItem"> - <ID>fa2f697e-b229-418a-bae6-78b92bf0458b</ID> - <Left>336</Left> - <Top>428.61061946902663</Top> - <Width>95</Width> - <Height>96.261061946902657</Height> - <Angle>0</Angle> - <ItemGuid>84682E90-6926-42AA-BF8C-2CCCF5C26C97</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> - </TechItem> - </Items> - </MachineTechViewProjectTab> - <MachineTechViewProjectTab> - <Name>Priming</Name> - <Items> - <TechItem xsi:type="MonitorItem"> - <ID>ea45a516-9dac-4c9a-9261-0c44e22aa065</ID> - <Left>808</Left> - <Top>155.02654867256638</Top> - <Width>219</Width> - <Height>200.62831858407088</Height> - <Angle>0</Angle> - <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> - <ColorNumber>-1</ColorNumber> - <UpdateInterval>10</UpdateInterval> - <DecimalPoints>2</DecimalPoints> - </TechItem> - <TechItem xsi:type="DispenserItem"> - <ID>3e2cb7dc-a5f3-4ba6-a520-2bae8ff0e4a8</ID> - <Left>832</Left> - <Top>451.91592920353986</Top> - <Width>332</Width> - <Height>326.27433628318596</Height> - <Angle>0</Angle> - <ItemGuid>C8D8FE90-0375-44A2-A6D1-E997789E065C</ItemGuid> - <ColorNumber>-1</ColorNumber> - <Speed>1200</Speed> - <DisplayName>Dispenser 2</DisplayName> - </TechItem> - <TechItem xsi:type="SingleGraphItem"> - <ID>6f8dfd8d-ed50-4923-b908-e0b5bc5d6ae5</ID> - <Left>154</Left> - <Top>131.72123893805315</Top> - <Width>474</Width> - <Height>410.37610619469024</Height> - <Angle>0</Angle> - <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> - <ColorNumber>-14774017</ColorNumber> - <Duration>1942</Duration> - <Min>0</Min> - <Max>100</Max> - <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>1</DecimalPlaces> - </TechItem> - <TechItem xsi:type="ValveItem"> - <ID>604e031b-89c3-4c9d-90ef-7b861a77e5e0</ID> - <Left>243</Left> - <Top>595.80088495575228</Top> - <Width>497</Width> - <Height>189.48230088495575</Height> - <Angle>0</Angle> - <ItemGuid>8B1FCBC3-FEEA-4F87-B56F-CE5D28B7ACA4</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - <TechItem xsi:type="DigitalOutItem"> - <ID>c414ae0e-323a-48c1-9165-2c05cc4234c6</ID> - <Left>1291</Left> - <Top>584.65486725663732</Top> - <Width>200</Width> - <Height>171.24336283185835</Height> - <Angle>0</Angle> - <ItemGuid>0bd10306-2944-4cda-bc59-0264da2883d2</ItemGuid> - <ColorNumber>-1</ColorNumber> - </TechItem> - </Items> - </MachineTechViewProjectTab> - </Tabs> - <SelectedTabIndex>2</SelectedTabIndex> -</MachineTechViewProject>
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/test_reg_readback.cs b/Software/Stubs Collection/stubs/test_reg_readback.cs deleted file mode 100644 index d5ef91a3b..000000000 --- a/Software/Stubs Collection/stubs/test_reg_readback.cs +++ /dev/null @@ -1,20 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - -var response = stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000000 + 0x3F0, 0xAAAA); - -var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000000 + 0x3F0); -stubManager.WriteLineHex(response1.Value,4); -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/test_uart3_whs.cs b/Software/Stubs Collection/stubs/test_uart3_whs.cs deleted file mode 100644 index b36179d8c..000000000 --- a/Software/Stubs Collection/stubs/test_uart3_whs.cs +++ /dev/null @@ -1,24 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - - stubManager.Run<ProgressResponse>("ProgressRequest" ,0xb05, 0); //init - - Thread.Sleep(3000); - - for(int i=0;i<1;i++) - { - var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xb05, 1); // - Test_Reading_Shinko_Request_PV - } -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/update thread PID during run.cs b/Software/Stubs Collection/stubs/update thread PID during run.cs deleted file mode 100644 index b312440e5..000000000 --- a/Software/Stubs Collection/stubs/update thread PID during run.cs +++ /dev/null @@ -1,57 +0,0 @@ -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.Hardware; -using Tango.PMR.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - -StubHeatingTestRequest stubHeatingTestRequest = new StubHeatingTestRequest(); -/*FEEDER*/ -HardwarePidControl hardwarePidControl = new HardwarePidControl(); -hardwarePidControl.HardwarePidControlType = Tango.PMR.Hardware.HardwarePidControlType.MotorFeeder; -//hardwarePidControl.HardwarePidControlType = Tango.PMR.Hardware.HardwarePidControlType.MotorPooler; -//hardwarePidControl.HardwarePidControlType = Tango.PMR.Hardware.HardwarePidControlType.MotorWinder; -hardwarePidControl.IntegralTime = 0; -hardwarePidControl.DerivativeTime = 0; -hardwarePidControl.ProportionalGain = 0; -hardwarePidControl.Epsilon = 0; -// hardwarePidControl.ControlOutputType = 0; //Dt - can change to 20/25 -stubHeatingTestRequest.HardwarePidControl1 = hardwarePidControl; -var response = stubManager.Run<StubHeatingTestResponse>(stubHeatingTestRequest); - -/*Puller*/ -/* -//hardwarePidControl.HardwarePidControlType = Tango.PMR.Hardware.HardwarePidControlType.MotorFeeder; -hardwarePidControl.HardwarePidControlType = Tango.PMR.Hardware.HardwarePidControlType.MotorPooler; -//hardwarePidControl.HardwarePidControlType = Tango.PMR.Hardware.HardwarePidControlType.MotorWinder; -hardwarePidControl.IntegralTime = 0; -hardwarePidControl.DerivativeTime = 0; -hardwarePidControl.ProportionalGain = 0; -hardwarePidControl.Epsilon = 0; -// hardwarePidControl.ControlOutputType = 0; //Dt - can change to 20/25 -stubHeatingTestRequest.HardwarePidControl1 = hardwarePidControl; -response = stubManager.Run<StubHeatingTestResponse>(stubHeatingTestRequest); -*/ -/*WINDER*/ -/* -//hardwarePidControl.HardwarePidControlType = Tango.PMR.Hardware.HardwarePidControlType.MotorFeeder; -//hardwarePidControl.HardwarePidControlType = Tango.PMR.Hardware.HardwarePidControlType.MotorPooler; -hardwarePidControl.HardwarePidControlType = Tango.PMR.Hardware.HardwarePidControlType.MotorWinder; -hardwarePidControl.IntegralTime = 0; -hardwarePidControl.DerivativeTime = 0; -hardwarePidControl.ProportionalGain = 0; -hardwarePidControl.Epsilon = 0; -// hardwarePidControl.ControlOutputType = 0; //Dt - can change to 20/25 -stubHeatingTestRequest.HardwarePidControl1 = hardwarePidControl; -response = stubManager.Run<StubHeatingTestResponse>(stubHeatingTestRequest); -*/ -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/whs control loop disable.cs b/Software/Stubs Collection/stubs/whs control loop disable.cs deleted file mode 100644 index 01bd67d0a..000000000 --- a/Software/Stubs Collection/stubs/whs control loop disable.cs +++ /dev/null @@ -1,26 +0,0 @@ -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.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -//Loading Arm Calibration - this command writes the arm position to a non-volatile memory - -int ControlLoopEnable = 0x1000; -int ControlLoopDisable = 0x0000; - -ProgressRequest progressRequest = new ProgressRequest(); -progressRequest.Amount = 0x3e8; -progressRequest.Delay = ControlLoopDisable+2700; - - var response = stubManager.Run<ProgressResponse>(progressRequest); - -}
\ No newline at end of file |
