aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Stubs Collection
diff options
context:
space:
mode:
authorShlomo Hecht <shlomo@twine-s.com>2020-06-25 15:23:22 +0300
committerShlomo Hecht <shlomo@twine-s.com>2020-06-25 15:23:22 +0300
commitc2b8f6d3435a38b04faee69d7f30bad8263a98fb (patch)
tree39a9da191d01d5eb1b8471e635317ca7a4dfe281 /Software/Stubs Collection
parentda4230c2ac47a82447dec15ca9a1ed1f4a1ce7fb (diff)
downloadTango-c2b8f6d3435a38b04faee69d7f30bad8263a98fb.tar.gz
Tango-c2b8f6d3435a38b04faee69d7f30bad8263a98fb.zip
stubs update
Diffstat (limited to 'Software/Stubs Collection')
-rw-r--r--Software/Stubs Collection/stubs/DispenserEEpromRead.cs16
-rw-r--r--Software/Stubs Collection/stubs/LoadingArmandCenterCalibration.cs28
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Blowe_RMO_LOG.CSV5401
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test.cs204
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test1.cs217
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test2.cs227
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_LimitSwitch.cs9
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_SSR.cs54
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset.CSV658
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_motor_test.cs29
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/GPO_Blower_PWM.cs31
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test.csv1795
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test1.cs78
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test1.csv345
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test12.csv283
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test13.csv290
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test14.csv224
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test15.csv181
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test16.csv231
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test2.csv271
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test3.csv127
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test_dryer_heater.cs121
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_In_Test.cs34
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_test.cs32
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Right_Position.cs93
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Right_Position1.cs104
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Right_Position2.cs145
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Calibrate_Midtank_pressure_sensors.cs2
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/DO_NOT_WORK_New_Calibrate_Midtank_pressure_sensors.cs450
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/midtanksetparams1.cs151
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Motor_GMotor_Get_Param_Powerstep01_rev2.cs292
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/RTFU/RTFU_SSI1.cs93
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/WHS/WHS_waste_Tank_Calibration_Save_V0.cs90
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/WHS/fan1-4.cs28
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Blower.cs2
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Blower_Data.cs28
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Defines/Blowe_RMO_LOG.CSV47
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Dispenser_setup.cs1415
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Jig_Tester/Dryer_Jig.cs4
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Jig_Tester/JIG_TESTER.cs18
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Jig_Tester/JIG_TESTER1.cs34
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Jig_Tester/LTFU_Jig.cs19
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Jig_Tester/New_DyeHead_Jig.cs186
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Jig_Tester/New_Mixer_Jig.cs3
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Jig_Tester/Winder_Jig.cs3
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing_powerstep01.cs14
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing_powerstep01_rev10.cs266
-rw-r--r--Software/Stubs Collection/stubs/Scripts/SS Head Sensor board.cs22
-rw-r--r--Software/Stubs Collection/stubs/Scripts/WHS_Test_EEPROM.cs135
-rw-r--r--Software/Stubs Collection/stubs/Scripts/blower_Q.cs7
-rw-r--r--Software/Stubs Collection/stubs/Scripts/embeddedparametersbuild.cs178
-rw-r--r--Software/Stubs Collection/stubs/Scripts/motormov.cs23
-rw-r--r--Software/Stubs Collection/stubs/Scripts/read write main eeprom fixed.cs45
-rw-r--r--Software/Stubs Collection/stubs/Scripts/read write main eeprom.cs45
-rw-r--r--Software/Stubs Collection/stubs/Scripts/waste level.cs71
-rw-r--r--Software/Stubs Collection/stubs/Scripts/waste_level2.cs85
-rw-r--r--Software/Stubs Collection/stubs/Scripts/whs eeprom temporary 2.cs31
-rw-r--r--Software/Stubs Collection/stubs/Scripts/whs eeprom temporary.cs42
-rw-r--r--Software/Stubs Collection/stubs/Scripts/whs fans stop.cs28
-rw-r--r--Software/Stubs Collection/stubs/embeddedparametersbuild.cs11
-rw-r--r--Software/Stubs Collection/stubs/read main card eeprom.cs25
-rw-r--r--Software/Stubs Collection/stubs/stop whs blower control.cs23
-rw-r--r--Software/Stubs Collection/stubs/technician view files/teach board 2.tpf3099
-rw-r--r--Software/Stubs Collection/stubs/technician view files/tech board 1.tpf2974
-rw-r--r--Software/Stubs Collection/stubs/whs control loop disable.cs26
65 files changed, 21047 insertions, 196 deletions
diff --git a/Software/Stubs Collection/stubs/DispenserEEpromRead.cs b/Software/Stubs Collection/stubs/DispenserEEpromRead.cs
index 538223d81..650cb2c80 100644
--- a/Software/Stubs Collection/stubs/DispenserEEpromRead.cs
+++ b/Software/Stubs Collection/stubs/DispenserEEpromRead.cs
@@ -12,14 +12,16 @@ using Tango.Stubs;
public void OnExecute(StubManager stubManager)
{
+ uint i;
-DispenserEEpromRequest dispenserEEpromRequest = new DispenserEEpromRequest();
-dispenserEEpromRequest.DispenserId = 4;
-dispenserEEpromRequest.BurnRequest = false;
+ 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);
-
-
-
- var response = stubManager.Run<DispenserEEpromResponse>(dispenserEEpromRequest);
+ }
} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/LoadingArmandCenterCalibration.cs b/Software/Stubs Collection/stubs/LoadingArmandCenterCalibration.cs
new file mode 100644
index 000000000..b11f900ad
--- /dev/null
+++ b/Software/Stubs Collection/stubs/LoadingArmandCenterCalibration.cs
@@ -0,0 +1,28 @@
+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/Scripts/Assemblies/Dryer/Blowe_RMO_LOG.CSV b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Blowe_RMO_LOG.CSV
new file mode 100644
index 000000000..414b0f976
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Blowe_RMO_LOG.CSV
@@ -0,0 +1,5401 @@
+,RPM
+0,2688
+1,2688
+2,2675
+3,2688
+4,2688
+5,2688
+6,2688
+7,2688
+8,2688
+9,2688
+10,2688
+11,2688
+12,2700
+13,2688
+14,2675
+15,2688
+16,2688
+17,2688
+18,2688
+19,2688
+20,2688
+21,2688
+22,2688
+23,2675
+24,2688
+25,2688
+26,2688
+27,2688
+28,2688
+29,2688
+30,2688
+31,2688
+32,2688
+33,2688
+34,2688
+35,2688
+36,2688
+37,2688
+38,2688
+39,2675
+40,2688
+41,2688
+42,2688
+43,2675
+44,2688
+45,2688
+46,2688
+47,2688
+48,2688
+49,2688
+50,2688
+51,2688
+52,2688
+53,2688
+54,2688
+55,2688
+56,2675
+57,2675
+58,2688
+59,2688
+60,2688
+61,2688
+62,2688
+63,2688
+64,2688
+65,2675
+66,2688
+67,2688
+68,2688
+69,2688
+70,2675
+71,2688
+72,2688
+73,2688
+74,2688
+75,2688
+76,2688
+77,2688
+78,2688
+79,2688
+80,2688
+81,2688
+82,2688
+83,2688
+84,2688
+85,2688
+86,2688
+87,2688
+88,2688
+89,2688
+90,2688
+91,2688
+92,2688
+93,2688
+94,2675
+95,2688
+96,2688
+97,2688
+98,2688
+99,2688
+100,2688
+101,2688
+102,2688
+103,2688
+104,2688
+105,2688
+106,2688
+107,2688
+108,2688
+109,2688
+110,2688
+111,2688
+112,2688
+113,2688
+114,2675
+115,2688
+116,2688
+117,2688
+118,2675
+119,2688
+120,2688
+121,2675
+122,2688
+123,2688
+124,2688
+125,2688
+126,2688
+127,2688
+128,2688
+129,2688
+130,2688
+131,2675
+132,2688
+133,2688
+134,2688
+135,2688
+136,2688
+137,2688
+138,2688
+139,2688
+140,2688
+141,2688
+142,2688
+143,2688
+144,2688
+145,2688
+146,2688
+147,2688
+148,2688
+149,2688
+150,2675
+151,2688
+152,2688
+153,2675
+154,2688
+155,2688
+156,2688
+157,2688
+158,2688
+159,2675
+160,2688
+161,2688
+162,2688
+163,2688
+164,2675
+165,2688
+166,2688
+167,2688
+168,2688
+169,2688
+170,2688
+171,2688
+172,2688
+173,2688
+174,2688
+175,2675
+176,2688
+177,2688
+178,2688
+179,2688
+180,2688
+181,2675
+182,2688
+183,2688
+184,2688
+185,2688
+186,2688
+187,2675
+188,2675
+189,2688
+190,2688
+191,2688
+192,2688
+193,2675
+194,2688
+195,2688
+196,2688
+197,2688
+198,2675
+199,2688
+200,2688
+201,2700
+202,2688
+203,2688
+204,2688
+205,2688
+206,2675
+207,2688
+208,2675
+209,2688
+210,2675
+211,2688
+212,2688
+213,2675
+214,2688
+215,2688
+216,2688
+217,2688
+218,2675
+219,2688
+220,2688
+221,2688
+222,2688
+223,2688
+224,2688
+225,2688
+226,2675
+227,2688
+228,2688
+229,2675
+230,2688
+231,2675
+232,2688
+233,2688
+234,2688
+235,2688
+236,2688
+237,2688
+238,2688
+239,2688
+240,2688
+241,2688
+242,2688
+243,2688
+244,2688
+245,2688
+246,2688
+247,2688
+248,2688
+249,2688
+250,2675
+251,2688
+252,2688
+253,2688
+254,2688
+255,2688
+256,2675
+257,2688
+258,2688
+259,2688
+260,2688
+261,2688
+262,2688
+263,2688
+264,2688
+265,2688
+266,2688
+267,2688
+268,2688
+269,2688
+270,2688
+271,2688
+272,2688
+273,2688
+274,2688
+275,2688
+276,2688
+277,2688
+278,2688
+279,2688
+280,2688
+281,2688
+282,2688
+283,2688
+284,2675
+285,2675
+286,2688
+287,2688
+288,2688
+289,2688
+290,2688
+291,2688
+292,2688
+293,2688
+294,2688
+295,2688
+296,2675
+297,2688
+298,2688
+299,2688
+300,2688
+301,2688
+302,2688
+303,2688
+304,2688
+305,2688
+306,2688
+307,2688
+308,2688
+309,2688
+310,2675
+311,2688
+312,2688
+313,2688
+314,2675
+315,2688
+316,2688
+317,2688
+318,2688
+319,2688
+320,2688
+321,2688
+322,2688
+323,2688
+324,2688
+325,2688
+326,2688
+327,2688
+328,2688
+329,2688
+330,2688
+331,2688
+332,2688
+333,2688
+334,2700
+335,2688
+336,2688
+337,2688
+338,2688
+339,2688
+340,2700
+341,2688
+342,2688
+343,2688
+344,2688
+345,2700
+346,2688
+347,2675
+348,2688
+349,2688
+350,2675
+351,2688
+352,2688
+353,2688
+354,2688
+355,2688
+356,2688
+357,2688
+358,2688
+359,2688
+360,2688
+361,2688
+362,2688
+363,2688
+364,2688
+365,2688
+366,2688
+367,2688
+368,2688
+369,2688
+370,2688
+371,2675
+372,2700
+373,2688
+374,2688
+375,2675
+376,2688
+377,2688
+378,2688
+379,2688
+380,2688
+381,2688
+382,2688
+383,2688
+384,2688
+385,2688
+386,2688
+387,2688
+388,2688
+389,2675
+390,2688
+391,2688
+392,2675
+393,2688
+394,2688
+395,2688
+396,2700
+397,2688
+398,2688
+399,2688
+400,2688
+401,2688
+402,2688
+403,2688
+404,2688
+405,2688
+406,2688
+407,2688
+408,2688
+409,2688
+410,2688
+411,2688
+412,2688
+413,2688
+414,2688
+415,2688
+416,2688
+417,2688
+418,2688
+419,2688
+420,2688
+421,2688
+422,2688
+423,2688
+424,2688
+425,2688
+426,2688
+427,2688
+428,2688
+429,2675
+430,2700
+431,2675
+432,2688
+433,2688
+434,2688
+435,2688
+436,2688
+437,2688
+438,2688
+439,2688
+440,2688
+441,2688
+442,2675
+443,2688
+444,2688
+445,2688
+446,2688
+447,2688
+448,2675
+449,2675
+450,2675
+451,2688
+452,2688
+453,2688
+454,2688
+455,2688
+456,2688
+457,2688
+458,2688
+459,2688
+460,2688
+461,2688
+462,2688
+463,2688
+464,2688
+465,2688
+466,2688
+467,2688
+468,2688
+469,2688
+470,2688
+471,2688
+472,2688
+473,2688
+474,2688
+475,2688
+476,2688
+477,2675
+478,2688
+479,2688
+480,2688
+481,2688
+482,2688
+483,2688
+484,2688
+485,2688
+486,2688
+487,2688
+488,2688
+489,2688
+490,2688
+491,2688
+492,2688
+493,2688
+494,2688
+495,2688
+496,2688
+497,2688
+498,2688
+499,2688
+500,2675
+501,2688
+502,2675
+503,2688
+504,2688
+505,2688
+506,2688
+507,2688
+508,2688
+509,2688
+510,2688
+511,2688
+512,2688
+513,2688
+514,2688
+515,2688
+516,2700
+517,2688
+518,2688
+519,2688
+520,2688
+521,2688
+522,2688
+523,2688
+524,2675
+525,2688
+526,2688
+527,2675
+528,2688
+529,2675
+530,2688
+531,2688
+532,2688
+533,2688
+534,2688
+535,2688
+536,2688
+537,2688
+538,2688
+539,2688
+540,2688
+541,2688
+542,2688
+543,2688
+544,2688
+545,2688
+546,2688
+547,2688
+548,2688
+549,2688
+550,2688
+551,2688
+552,2688
+553,2688
+554,2688
+555,2688
+556,2688
+557,2675
+558,2688
+559,2688
+560,2700
+561,2688
+562,2688
+563,2688
+564,2688
+565,2688
+566,2688
+567,2688
+568,2675
+569,2688
+570,2688
+571,2688
+572,2688
+573,2688
+574,2688
+575,2688
+576,2688
+577,2688
+578,2688
+579,2688
+580,2688
+581,2688
+582,2675
+583,2675
+584,2688
+585,2675
+586,2688
+587,2688
+588,2688
+589,2688
+590,2688
+591,2688
+592,2688
+593,2688
+594,2688
+595,2688
+596,2688
+597,2688
+598,2688
+599,2688
+600,2688
+601,2675
+602,2688
+603,2688
+604,2688
+605,2688
+606,2688
+607,2688
+608,2688
+609,2688
+610,2688
+611,2688
+612,2688
+613,2688
+614,2688
+615,2688
+616,2688
+617,2688
+618,2688
+619,2688
+620,2688
+621,2688
+622,2688
+623,2688
+624,2675
+625,2688
+626,2688
+627,2688
+628,2688
+629,2675
+630,2688
+631,2675
+632,2688
+633,2688
+634,2688
+635,2675
+636,2675
+637,2688
+638,2688
+639,2688
+640,2688
+641,2688
+642,2688
+643,2688
+644,2688
+645,2688
+646,2688
+647,2675
+648,2688
+649,2688
+650,2688
+651,2688
+652,2688
+653,2675
+654,2688
+655,2688
+656,2688
+657,2688
+658,2688
+659,2688
+660,2688
+661,2688
+662,2688
+663,2688
+664,2688
+665,2675
+666,2688
+667,2675
+668,2688
+669,2688
+670,2688
+671,2688
+672,2688
+673,2688
+674,2688
+675,2688
+676,2675
+677,2688
+678,2688
+679,2688
+680,2675
+681,2675
+682,2688
+683,2688
+684,2688
+685,2688
+686,2688
+687,2688
+688,2688
+689,2688
+690,2688
+691,2688
+692,2688
+693,2688
+694,2688
+695,2688
+696,2688
+697,2688
+698,2688
+699,2688
+700,2688
+701,2688
+702,2688
+703,2688
+704,2688
+705,2688
+706,2688
+707,2675
+708,2688
+709,2688
+710,2688
+711,2688
+712,2688
+713,2675
+714,2688
+715,2688
+716,2688
+717,2675
+718,2688
+719,2688
+720,2688
+721,2688
+722,2688
+723,2688
+724,2688
+725,2688
+726,2688
+727,2688
+728,2675
+729,2688
+730,2688
+731,2688
+732,2675
+733,2675
+734,2675
+735,2688
+736,2688
+737,2675
+738,2688
+739,2688
+740,2688
+741,2688
+742,2688
+743,2688
+744,2688
+745,2688
+746,2688
+747,2688
+748,2688
+749,2688
+750,2688
+751,2688
+752,2688
+753,2688
+754,2688
+755,2688
+756,2688
+757,2688
+758,2688
+759,2688
+760,2688
+761,2688
+762,2688
+763,2688
+764,2688
+765,2675
+766,2688
+767,2688
+768,2688
+769,2688
+770,2688
+771,2688
+772,2688
+773,2688
+774,2688
+775,2675
+776,2688
+777,2688
+778,2688
+779,2688
+780,2700
+781,2688
+782,2688
+783,2688
+784,2688
+785,2688
+786,2688
+787,2688
+788,2688
+789,2675
+790,2688
+791,2688
+792,2688
+793,2688
+794,2688
+795,2688
+796,2675
+797,2688
+798,2688
+799,2688
+800,2675
+801,2688
+802,2688
+803,2688
+804,2688
+805,2675
+806,2688
+807,2688
+808,2688
+809,2688
+810,2688
+811,2688
+812,2688
+813,2688
+814,2688
+815,2688
+816,2688
+817,2688
+818,2688
+819,2688
+820,2688
+821,2688
+822,2688
+823,2688
+824,2675
+825,2688
+826,2688
+827,2688
+828,2688
+829,2688
+830,2688
+831,2675
+832,2688
+833,2688
+834,2688
+835,2688
+836,2688
+837,2688
+838,2688
+839,2688
+840,2688
+841,2688
+842,2688
+843,2688
+844,2675
+845,2688
+846,2675
+847,2688
+848,2688
+849,2675
+850,2688
+851,2688
+852,2688
+853,2688
+854,2688
+855,2688
+856,2688
+857,2688
+858,2688
+859,2688
+860,2688
+861,2688
+862,2688
+863,2688
+864,2688
+865,2688
+866,2688
+867,2688
+868,2688
+869,2675
+870,2688
+871,2688
+872,2688
+873,2688
+874,2688
+875,2688
+876,2688
+877,2688
+878,2688
+879,2688
+880,2688
+881,2688
+882,2700
+883,2688
+884,2675
+885,2688
+886,2675
+887,2688
+888,2688
+889,2688
+890,2688
+891,2688
+892,2688
+893,2688
+894,2688
+895,2688
+896,2688
+897,2688
+898,2688
+899,2675
+900,2688
+901,2688
+902,2675
+903,2688
+904,2688
+905,2688
+906,2675
+907,2688
+908,2688
+909,2688
+910,2688
+911,2688
+912,2688
+913,2688
+914,2688
+915,2675
+916,2688
+917,2675
+918,2688
+919,2688
+920,2688
+921,2688
+922,2675
+923,2688
+924,2688
+925,2688
+926,2688
+927,2688
+928,2688
+929,2688
+930,2688
+931,2688
+932,2675
+933,2688
+934,2688
+935,2688
+936,2688
+937,2688
+938,2688
+939,2688
+940,2688
+941,2688
+942,2688
+943,2688
+944,2675
+945,2688
+946,2688
+947,2688
+948,2688
+949,2688
+950,2688
+951,2688
+952,2688
+953,2688
+954,2688
+955,2688
+956,2688
+957,2688
+958,2688
+959,2688
+960,2688
+961,2688
+962,2688
+963,2688
+964,2688
+965,2688
+966,2688
+967,2688
+968,2688
+969,2675
+970,2688
+971,2688
+972,2688
+973,2688
+974,2688
+975,2688
+976,2688
+977,2688
+978,2688
+979,2688
+980,2675
+981,2688
+982,2688
+983,2688
+984,2688
+985,2688
+986,2688
+987,2688
+988,2688
+989,2688
+990,2688
+991,2688
+992,2688
+993,2688
+994,2688
+995,2688
+996,2688
+997,2688
+998,2688
+999,2688
+1000,2688
+1001,2688
+1002,2688
+1003,2688
+1004,2688
+1005,2688
+1006,2688
+1007,2688
+1008,2688
+1009,2688
+1010,2688
+1011,2688
+1012,2688
+1013,2688
+1014,2688
+1015,2675
+1016,2688
+1017,2688
+1018,2688
+1019,2675
+1020,2675
+1021,2688
+1022,2675
+1023,2675
+1024,2688
+1025,2688
+1026,2675
+1027,2688
+1028,2688
+1029,2688
+1030,2688
+1031,2688
+1032,2688
+1033,2688
+1034,2688
+1035,2688
+1036,2688
+1037,2688
+1038,2688
+1039,2688
+1040,2688
+1041,2688
+1042,2688
+1043,2688
+1044,2688
+1045,2688
+1046,2688
+1047,2688
+1048,2688
+1049,2688
+1050,2688
+1051,2688
+1052,2688
+1053,2688
+1054,2688
+1055,2675
+1056,2688
+1057,2688
+1058,2688
+1059,2675
+1060,2675
+1061,2688
+1062,2675
+1063,2688
+1064,2688
+1065,2688
+1066,2688
+1067,2688
+1068,2688
+1069,2688
+1070,2675
+1071,2688
+1072,2688
+1073,2688
+1074,2688
+1075,2688
+1076,2688
+1077,2688
+1078,2688
+1079,2688
+1080,2688
+1081,2688
+1082,2688
+1083,2688
+1084,2675
+1085,2688
+1086,2688
+1087,2688
+1088,2688
+1089,2688
+1090,2688
+1091,2688
+1092,2688
+1093,2688
+1094,2688
+1095,2688
+1096,2688
+1097,2688
+1098,2688
+1099,2688
+1100,2675
+1101,2688
+1102,2688
+1103,2688
+1104,2688
+1105,2675
+1106,2688
+1107,2688
+1108,2675
+1109,2688
+1110,2688
+1111,2688
+1112,2688
+1113,2688
+1114,2688
+1115,2675
+1116,2688
+1117,2688
+1118,2688
+1119,2688
+1120,2688
+1121,2688
+1122,2688
+1123,2688
+1124,2688
+1125,2688
+1126,2688
+1127,2688
+1128,2688
+1129,2688
+1130,2688
+1131,2688
+1132,2688
+1133,2688
+1134,2688
+1135,2675
+1136,2688
+1137,2688
+1138,2688
+1139,2688
+1140,2688
+1141,2688
+1142,2688
+1143,2688
+1144,2688
+1145,2688
+1146,2688
+1147,2688
+1148,2675
+1149,2688
+1150,2688
+1151,2688
+1152,2688
+1153,2688
+1154,2688
+1155,2688
+1156,2688
+1157,2688
+1158,2688
+1159,2688
+1160,2688
+1161,2688
+1162,2688
+1163,2688
+1164,2688
+1165,2688
+1166,2688
+1167,2675
+1168,2688
+1169,2688
+1170,2688
+1171,2688
+1172,2688
+1173,2688
+1174,2688
+1175,2688
+1176,2675
+1177,2688
+1178,2675
+1179,2675
+1180,2688
+1181,2688
+1182,2688
+1183,2688
+1184,2688
+1185,2688
+1186,2688
+1187,2675
+1188,2688
+1189,2688
+1190,2675
+1191,2688
+1192,2675
+1193,2688
+1194,2688
+1195,2688
+1196,2688
+1197,2688
+1198,2688
+1199,2688
+1200,2688
+1201,2688
+1202,2688
+1203,2688
+1204,2688
+1205,2688
+1206,2688
+1207,2675
+1208,2688
+1209,2688
+1210,2688
+1211,2688
+1212,2688
+1213,2688
+1214,2688
+1215,2688
+1216,2688
+1217,2688
+1218,2688
+1219,2688
+1220,2688
+1221,2688
+1222,2688
+1223,2700
+1224,2688
+1225,2688
+1226,2688
+1227,2675
+1228,2688
+1229,2688
+1230,2688
+1231,2688
+1232,2688
+1233,2688
+1234,2688
+1235,2688
+1236,2688
+1237,2688
+1238,2688
+1239,2688
+1240,2675
+1241,2688
+1242,2688
+1243,2688
+1244,2688
+1245,2675
+1246,2675
+1247,2688
+1248,2688
+1249,2688
+1250,2688
+1251,2688
+1252,2688
+1253,2688
+1254,2675
+1255,2688
+1256,2688
+1257,2700
+1258,2688
+1259,2688
+1260,2688
+1261,2688
+1262,2688
+1263,2688
+1264,2688
+1265,2688
+1266,2688
+1267,2688
+1268,2688
+1269,2688
+1270,2688
+1271,2688
+1272,2688
+1273,2688
+1274,2688
+1275,2675
+1276,2688
+1277,2688
+1278,2688
+1279,2688
+1280,2688
+1281,2688
+1282,2688
+1283,2688
+1284,2675
+1285,2688
+1286,2688
+1287,2675
+1288,2688
+1289,2688
+1290,2688
+1291,2688
+1292,2688
+1293,2688
+1294,2675
+1295,2688
+1296,2688
+1297,2688
+1298,2688
+1299,2688
+1300,2688
+1301,2688
+1302,2688
+1303,2688
+1304,2688
+1305,2688
+1306,2688
+1307,2688
+1308,2688
+1309,2688
+1310,2675
+1311,2688
+1312,2688
+1313,2700
+1314,2688
+1315,2675
+1316,2688
+1317,2688
+1318,2688
+1319,2688
+1320,2688
+1321,2688
+1322,2675
+1323,2688
+1324,2688
+1325,2688
+1326,2688
+1327,2688
+1328,2688
+1329,2688
+1330,2688
+1331,2688
+1332,2688
+1333,2688
+1334,2688
+1335,2688
+1336,2688
+1337,2688
+1338,2688
+1339,2688
+1340,2688
+1341,2688
+1342,2688
+1343,2688
+1344,2688
+1345,2688
+1346,2688
+1347,2688
+1348,2688
+1349,2688
+1350,2688
+1351,2688
+1352,2675
+1353,2688
+1354,2675
+1355,2688
+1356,2688
+1357,2688
+1358,2688
+1359,2688
+1360,2688
+1361,2688
+1362,2688
+1363,2688
+1364,2688
+1365,2688
+1366,2675
+1367,2675
+1368,2675
+1369,2688
+1370,2675
+1371,2688
+1372,2688
+1373,2688
+1374,2688
+1375,2688
+1376,2688
+1377,2688
+1378,2688
+1379,2688
+1380,2688
+1381,2688
+1382,2688
+1383,2688
+1384,2688
+1385,2688
+1386,2688
+1387,2688
+1388,2688
+1389,2688
+1390,2688
+1391,2688
+1392,2688
+1393,2688
+1394,2688
+1395,2688
+1396,2675
+1397,2688
+1398,2688
+1399,2688
+1400,2675
+1401,2688
+1402,2688
+1403,2688
+1404,2688
+1405,2688
+1406,2688
+1407,2688
+1408,2688
+1409,2688
+1410,2700
+1411,2688
+1412,2675
+1413,2688
+1414,2688
+1415,2688
+1416,2700
+1417,2688
+1418,2688
+1419,2688
+1420,2688
+1421,2688
+1422,2688
+1423,2688
+1424,2688
+1425,2688
+1426,2688
+1427,2688
+1428,2688
+1429,2688
+1430,2688
+1431,2688
+1432,2688
+1433,2675
+1434,2688
+1435,2688
+1436,2675
+1437,2688
+1438,2688
+1439,2688
+1440,2688
+1441,2688
+1442,2688
+1443,2688
+1444,2688
+1445,2688
+1446,2688
+1447,2688
+1448,2688
+1449,2688
+1450,2688
+1451,2688
+1452,2688
+1453,2688
+1454,2688
+1455,2688
+1456,2675
+1457,2688
+1458,2688
+1459,2688
+1460,2688
+1461,2688
+1462,2675
+1463,2688
+1464,2688
+1465,2688
+1466,2675
+1467,2688
+1468,2688
+1469,2688
+1470,2688
+1471,2688
+1472,2688
+1473,2688
+1474,2675
+1475,2688
+1476,2688
+1477,2675
+1478,2675
+1479,2688
+1480,2688
+1481,2688
+1482,2688
+1483,2688
+1484,2688
+1485,2688
+1486,2688
+1487,2688
+1488,2688
+1489,2688
+1490,2688
+1491,2688
+1492,2688
+1493,2688
+1494,2688
+1495,2688
+1496,2688
+1497,2688
+1498,2688
+1499,2688
+1500,2688
+1501,2688
+1502,2688
+1503,2688
+1504,2688
+1505,2688
+1506,2688
+1507,2688
+1508,2688
+1509,2688
+1510,2688
+1511,2675
+1512,2688
+1513,2688
+1514,2688
+1515,2688
+1516,2688
+1517,2688
+1518,2688
+1519,2688
+1520,2688
+1521,2688
+1522,2688
+1523,2688
+1524,2688
+1525,2688
+1526,2688
+1527,2688
+1528,2688
+1529,2688
+1530,2688
+1531,2688
+1532,2688
+1533,2688
+1534,2688
+1535,2675
+1536,2675
+1537,2688
+1538,2688
+1539,2688
+1540,2688
+1541,2688
+1542,2675
+1543,2688
+1544,2688
+1545,2688
+1546,2688
+1547,2688
+1548,2688
+1549,2688
+1550,2688
+1551,2688
+1552,2688
+1553,2688
+1554,2688
+1555,2688
+1556,2688
+1557,2688
+1558,2688
+1559,2688
+1560,2688
+1561,2688
+1562,2688
+1563,2675
+1564,2675
+1565,2688
+1566,2688
+1567,2688
+1568,2688
+1569,2688
+1570,2688
+1571,2688
+1572,2688
+1573,2688
+1574,2675
+1575,2688
+1576,2688
+1577,2675
+1578,2688
+1579,2688
+1580,2688
+1581,2688
+1582,2675
+1583,2688
+1584,2688
+1585,2688
+1586,2688
+1587,2688
+1588,2688
+1589,2688
+1590,2688
+1591,2688
+1592,2675
+1593,2688
+1594,2688
+1595,2688
+1596,2688
+1597,2688
+1598,2688
+1599,2688
+1600,2688
+1601,2688
+1602,2688
+1603,2688
+1604,2675
+1605,2688
+1606,2688
+1607,2688
+1608,2688
+1609,2688
+1610,2675
+1611,2688
+1612,2688
+1613,2688
+1614,2675
+1615,2688
+1616,2688
+1617,2688
+1618,2688
+1619,2688
+1620,2688
+1621,2688
+1622,2688
+1623,2688
+1624,2688
+1625,2688
+1626,2688
+1627,2688
+1628,2688
+1629,2688
+1630,2688
+1631,2688
+1632,2675
+1633,2688
+1634,2688
+1635,2675
+1636,2688
+1637,2688
+1638,2688
+1639,2688
+1640,2688
+1641,2688
+1642,2675
+1643,2688
+1644,2688
+1645,2688
+1646,2688
+1647,2688
+1648,2688
+1649,2688
+1650,2688
+1651,2688
+1652,2688
+1653,2688
+1654,2688
+1655,2688
+1656,2688
+1657,2688
+1658,2688
+1659,2688
+1660,2688
+1661,2688
+1662,2688
+1663,2688
+1664,2688
+1665,2688
+1666,2688
+1667,2688
+1668,2688
+1669,2688
+1670,2688
+1671,2688
+1672,2688
+1673,2688
+1674,2688
+1675,2688
+1676,2688
+1677,2688
+1678,2688
+1679,2688
+1680,2688
+1681,2688
+1682,2688
+1683,2688
+1684,2675
+1685,2688
+1686,2688
+1687,2688
+1688,2688
+1689,2688
+1690,2688
+1691,2688
+1692,2675
+1693,2688
+1694,2688
+1695,2688
+1696,2688
+1697,2688
+1698,2688
+1699,2688
+1700,2688
+1701,2675
+1702,2688
+1703,2688
+1704,2700
+1705,2688
+1706,2688
+1707,2688
+1708,2688
+1709,2688
+1710,2688
+1711,2688
+1712,2675
+1713,2688
+1714,2688
+1715,2688
+1716,2688
+1717,2688
+1718,2688
+1719,2688
+1720,2688
+1721,2688
+1722,2688
+1723,2688
+1724,2675
+1725,2688
+1726,2688
+1727,2688
+1728,2688
+1729,2688
+1730,2688
+1731,2688
+1732,2688
+1733,2688
+1734,2688
+1735,2688
+1736,2688
+1737,2688
+1738,2688
+1739,2688
+1740,2688
+1741,2688
+1742,2700
+1743,2688
+1744,2688
+1745,2688
+1746,2688
+1747,2688
+1748,2688
+1749,2688
+1750,2688
+1751,2688
+1752,2688
+1753,2688
+1754,2688
+1755,2688
+1756,2675
+1757,2688
+1758,2688
+1759,2688
+1760,2688
+1761,2675
+1762,2688
+1763,2688
+1764,2688
+1765,2675
+1766,2688
+1767,2688
+1768,2688
+1769,2688
+1770,2688
+1771,2688
+1772,2688
+1773,2688
+1774,2688
+1775,2688
+1776,2675
+1777,2688
+1778,2688
+1779,2688
+1780,2688
+1781,2688
+1782,2688
+1783,2688
+1784,2675
+1785,2688
+1786,2688
+1787,2688
+1788,2675
+1789,2688
+1790,2688
+1791,2688
+1792,2675
+1793,2675
+1794,2688
+1795,2688
+1796,2688
+1797,2688
+1798,2675
+1799,2688
+1800,2688
+1801,2688
+1802,2688
+1803,2688
+1804,2688
+1805,2688
+1806,2688
+1807,2688
+1808,2688
+1809,2688
+1810,2688
+1811,2688
+1812,2688
+1813,2688
+1814,2688
+1815,2688
+1816,2688
+1817,2688
+1818,2688
+1819,2675
+1820,2688
+1821,2688
+1822,2688
+1823,2688
+1824,2688
+1825,2688
+1826,2688
+1827,2688
+1828,2688
+1829,2688
+1830,2688
+1831,2688
+1832,2688
+1833,2688
+1834,2688
+1835,2688
+1836,2688
+1837,2688
+1838,2688
+1839,2688
+1840,2688
+1841,2688
+1842,2688
+1843,2688
+1844,2688
+1845,2688
+1846,2675
+1847,2688
+1848,2688
+1849,2688
+1850,2688
+1851,2688
+1852,2688
+1853,2688
+1854,2688
+1855,2688
+1856,2688
+1857,2688
+1858,2688
+1859,2688
+1860,2688
+1861,2688
+1862,2688
+1863,2688
+1864,2688
+1865,2688
+1866,2688
+1867,2688
+1868,2688
+1869,2688
+1870,2688
+1871,2688
+1872,2688
+1873,2688
+1874,2688
+1875,2688
+1876,2688
+1877,2700
+1878,2675
+1879,2688
+1880,2675
+1881,2688
+1882,2688
+1883,2688
+1884,2688
+1885,2688
+1886,2688
+1887,2688
+1888,2688
+1889,2700
+1890,2688
+1891,2688
+1892,2688
+1893,2675
+1894,2688
+1895,2688
+1896,2688
+1897,2688
+1898,2688
+1899,2688
+1900,2688
+1901,2688
+1902,2688
+1903,2688
+1904,2688
+1905,2688
+1906,2688
+1907,2688
+1908,2688
+1909,2688
+1910,2675
+1911,2688
+1912,2688
+1913,2675
+1914,2688
+1915,2688
+1916,2688
+1917,2688
+1918,2688
+1919,2688
+1920,2688
+1921,2688
+1922,2688
+1923,2688
+1924,2688
+1925,2688
+1926,2688
+1927,2688
+1928,2688
+1929,2675
+1930,2688
+1931,2688
+1932,2688
+1933,2675
+1934,2688
+1935,2688
+1936,2688
+1937,2688
+1938,2688
+1939,2688
+1940,2675
+1941,2688
+1942,2688
+1943,2688
+1944,2688
+1945,2688
+1946,2688
+1947,2688
+1948,2688
+1949,2688
+1950,2688
+1951,2688
+1952,2688
+1953,2688
+1954,2688
+1955,2688
+1956,2688
+1957,2688
+1958,2688
+1959,2688
+1960,2688
+1961,2688
+1962,2688
+1963,2688
+1964,2688
+1965,2675
+1966,2688
+1967,2688
+1968,2688
+1969,2688
+1970,2688
+1971,2688
+1972,2688
+1973,2675
+1974,2688
+1975,2688
+1976,2688
+1977,2675
+1978,2688
+1979,2688
+1980,2688
+1981,2688
+1982,2688
+1983,2688
+1984,2688
+1985,2675
+1986,2688
+1987,2688
+1988,2688
+1989,2688
+1990,2675
+1991,2688
+1992,2688
+1993,2688
+1994,2675
+1995,2675
+1996,2688
+1997,2688
+1998,2688
+1999,2675
+2000,2688
+2001,2688
+2002,2688
+2003,2688
+2004,2688
+2005,2688
+2006,2688
+2007,2688
+2008,2688
+2009,2688
+2010,2688
+2011,2688
+2012,2688
+2013,2688
+2014,2688
+2015,2688
+2016,2688
+2017,2688
+2018,2688
+2019,2688
+2020,2675
+2021,2675
+2022,2675
+2023,2688
+2024,2688
+2025,2688
+2026,2688
+2027,2688
+2028,2675
+2029,2688
+2030,2688
+2031,2688
+2032,2675
+2033,2688
+2034,2688
+2035,2688
+2036,2688
+2037,2688
+2038,2688
+2039,2675
+2040,2688
+2041,2688
+2042,2675
+2043,2688
+2044,2688
+2045,2688
+2046,2688
+2047,2700
+2048,2688
+2049,2675
+2050,2688
+2051,2688
+2052,2688
+2053,2688
+2054,2688
+2055,2675
+2056,2688
+2057,2688
+2058,2688
+2059,2688
+2060,2688
+2061,2688
+2062,2688
+2063,2688
+2064,2675
+2065,2675
+2066,2700
+2067,2688
+2068,2688
+2069,2688
+2070,2688
+2071,2688
+2072,2688
+2073,2688
+2074,2688
+2075,2688
+2076,2688
+2077,2688
+2078,2688
+2079,2688
+2080,2688
+2081,2688
+2082,2688
+2083,2688
+2084,2675
+2085,2688
+2086,2688
+2087,2688
+2088,2688
+2089,2688
+2090,2688
+2091,2688
+2092,2688
+2093,2688
+2094,2688
+2095,2688
+2096,2688
+2097,2688
+2098,2688
+2099,2688
+2100,2688
+2101,2688
+2102,2688
+2103,2688
+2104,2688
+2105,2688
+2106,2688
+2107,2688
+2108,2688
+2109,2688
+2110,2688
+2111,2688
+2112,2688
+2113,2688
+2114,2688
+2115,2688
+2116,2688
+2117,2688
+2118,2688
+2119,2688
+2120,2688
+2121,2688
+2122,2688
+2123,2688
+2124,2688
+2125,2688
+2126,2688
+2127,2688
+2128,2688
+2129,2688
+2130,2675
+2131,2688
+2132,2688
+2133,2688
+2134,2688
+2135,2688
+2136,2688
+2137,2688
+2138,2688
+2139,2688
+2140,2688
+2141,2688
+2142,2688
+2143,2688
+2144,2688
+2145,2688
+2146,2688
+2147,2688
+2148,2688
+2149,2688
+2150,2688
+2151,2688
+2152,2688
+2153,2688
+2154,2688
+2155,2688
+2156,2688
+2157,2688
+2158,2688
+2159,2688
+2160,2688
+2161,2688
+2162,2675
+2163,2688
+2164,2688
+2165,2688
+2166,2688
+2167,2688
+2168,2688
+2169,2688
+2170,2688
+2171,2688
+2172,2688
+2173,2675
+2174,2688
+2175,2688
+2176,2688
+2177,2688
+2178,2688
+2179,2688
+2180,2688
+2181,2675
+2182,2688
+2183,2688
+2184,2688
+2185,2688
+2186,2688
+2187,2688
+2188,2688
+2189,2688
+2190,2688
+2191,2688
+2192,2688
+2193,2688
+2194,2688
+2195,2675
+2196,2688
+2197,2688
+2198,2688
+2199,2688
+2200,2675
+2201,2688
+2202,2688
+2203,2688
+2204,2688
+2205,2688
+2206,2675
+2207,2688
+2208,2688
+2209,2675
+2210,2688
+2211,2688
+2212,2688
+2213,2688
+2214,2688
+2215,2688
+2216,2688
+2217,2688
+2218,2688
+2219,2688
+2220,2688
+2221,2688
+2222,2688
+2223,2688
+2224,2688
+2225,2675
+2226,2675
+2227,2688
+2228,2688
+2229,2688
+2230,2688
+2231,2688
+2232,2688
+2233,2688
+2234,2688
+2235,2688
+2236,2688
+2237,2688
+2238,2688
+2239,2688
+2240,2688
+2241,2688
+2242,2688
+2243,2688
+2244,2688
+2245,2688
+2246,2688
+2247,2688
+2248,2688
+2249,2688
+2250,2688
+2251,2688
+2252,2688
+2253,2688
+2254,2688
+2255,2688
+2256,2688
+2257,2675
+2258,2688
+2259,2688
+2260,2688
+2261,2688
+2262,2688
+2263,2688
+2264,2688
+2265,2688
+2266,2688
+2267,2688
+2268,2688
+2269,2688
+2270,2688
+2271,2675
+2272,2688
+2273,2688
+2274,2688
+2275,2675
+2276,2688
+2277,2688
+2278,2688
+2279,2688
+2280,2688
+2281,2688
+2282,2688
+2283,2688
+2284,2688
+2285,2688
+2286,2688
+2287,2675
+2288,2688
+2289,2688
+2290,2688
+2291,2688
+2292,2688
+2293,2688
+2294,2700
+2295,2688
+2296,2688
+2297,2688
+2298,2688
+2299,2688
+2300,2675
+2301,2688
+2302,2688
+2303,2688
+2304,2688
+2305,2688
+2306,2688
+2307,2688
+2308,2688
+2309,2688
+2310,2688
+2311,2688
+2312,2688
+2313,2688
+2314,2688
+2315,2675
+2316,2675
+2317,2688
+2318,2688
+2319,2688
+2320,2688
+2321,2688
+2322,2688
+2323,2688
+2324,2688
+2325,2688
+2326,2675
+2327,2688
+2328,2688
+2329,2688
+2330,2688
+2331,2688
+2332,2675
+2333,2675
+2334,2688
+2335,2688
+2336,2688
+2337,2688
+2338,2688
+2339,2688
+2340,2688
+2341,2688
+2342,2688
+2343,2688
+2344,2688
+2345,2688
+2346,2688
+2347,2688
+2348,2675
+2349,2688
+2350,2688
+2351,2675
+2352,2688
+2353,2688
+2354,2688
+2355,2688
+2356,2688
+2357,2688
+2358,2688
+2359,2675
+2360,2688
+2361,2688
+2362,2688
+2363,2688
+2364,2688
+2365,2675
+2366,2688
+2367,2688
+2368,2688
+2369,2688
+2370,2675
+2371,2675
+2372,2688
+2373,2688
+2374,2688
+2375,2688
+2376,2675
+2377,2688
+2378,2675
+2379,2688
+2380,2688
+2381,2688
+2382,2688
+2383,2675
+2384,2675
+2385,2688
+2386,2688
+2387,2688
+2388,2688
+2389,2688
+2390,2688
+2391,2688
+2392,2688
+2393,2688
+2394,2688
+2395,2688
+2396,2688
+2397,2688
+2398,2688
+2399,2688
+2400,2688
+2401,2688
+2402,2688
+2403,2688
+2404,2688
+2405,2688
+2406,2688
+2407,2688
+2408,2688
+2409,2675
+2410,2688
+2411,2688
+2412,2688
+2413,2688
+2414,2675
+2415,2688
+2416,2688
+2417,2688
+2418,2688
+2419,2688
+2420,2688
+2421,2688
+2422,2688
+2423,2688
+2424,2688
+2425,2688
+2426,2688
+2427,2688
+2428,2688
+2429,2688
+2430,2688
+2431,2688
+2432,2700
+2433,2688
+2434,2688
+2435,2688
+2436,2688
+2437,2688
+2438,2675
+2439,2688
+2440,2688
+2441,2688
+2442,2688
+2443,2688
+2444,2688
+2445,2688
+2446,2688
+2447,2688
+2448,2688
+2449,2688
+2450,2688
+2451,2688
+2452,2688
+2453,2688
+2454,2688
+2455,2688
+2456,2688
+2457,2688
+2458,2688
+2459,2675
+2460,2688
+2461,2688
+2462,2688
+2463,2675
+2464,2700
+2465,2688
+2466,2675
+2467,2688
+2468,2688
+2469,2688
+2470,2688
+2471,2688
+2472,2688
+2473,2688
+2474,2688
+2475,2688
+2476,2688
+2477,2688
+2478,2675
+2479,2688
+2480,2688
+2481,2688
+2482,2688
+2483,2688
+2484,2688
+2485,2688
+2486,2675
+2487,2688
+2488,2688
+2489,2688
+2490,2688
+2491,2688
+2492,2688
+2493,2688
+2494,2688
+2495,2688
+2496,2688
+2497,2688
+2498,2688
+2499,2675
+2500,2688
+2501,2688
+2502,2675
+2503,2675
+2504,2688
+2505,2688
+2506,2688
+2507,2688
+2508,2688
+2509,2688
+2510,2675
+2511,2688
+2512,2688
+2513,2688
+2514,2675
+2515,2688
+2516,2688
+2517,2688
+2518,2688
+2519,2688
+2520,2675
+2521,2688
+2522,2688
+2523,2688
+2524,2675
+2525,2688
+2526,2688
+2527,2688
+2528,2688
+2529,2688
+2530,2688
+2531,2688
+2532,2688
+2533,2688
+2534,2688
+2535,2688
+2536,2675
+2537,2688
+2538,2688
+2539,2688
+2540,2688
+2541,2688
+2542,2675
+2543,2688
+2544,2688
+2545,2688
+2546,2688
+2547,2675
+2548,2688
+2549,2675
+2550,2688
+2551,2688
+2552,2688
+2553,2688
+2554,2688
+2555,2688
+2556,2700
+2557,2688
+2558,2688
+2559,2688
+2560,2688
+2561,2688
+2562,2675
+2563,2688
+2564,2688
+2565,2688
+2566,2688
+2567,2688
+2568,2688
+2569,2688
+2570,2688
+2571,2688
+2572,2688
+2573,2688
+2574,2688
+2575,2688
+2576,2688
+2577,2688
+2578,2688
+2579,2688
+2580,2688
+2581,2688
+2582,2688
+2583,2688
+2584,2688
+2585,2688
+2586,2688
+2587,2688
+2588,2688
+2589,2688
+2590,2688
+2591,2688
+2592,2688
+2593,2688
+2594,2688
+2595,2688
+2596,2688
+2597,2688
+2598,2688
+2599,2688
+2600,2688
+2601,2688
+2602,2675
+2603,2675
+2604,2688
+2605,2688
+2606,2688
+2607,2688
+2608,2688
+2609,2700
+2610,2688
+2611,2688
+2612,2688
+2613,2675
+2614,2688
+2615,2688
+2616,2688
+2617,2688
+2618,2688
+2619,2688
+2620,2688
+2621,2688
+2622,2688
+2623,2688
+2624,2688
+2625,2688
+2626,2688
+2627,2688
+2628,2688
+2629,2688
+2630,2688
+2631,2688
+2632,2688
+2633,2688
+2634,2688
+2635,2688
+2636,2688
+2637,2688
+2638,2688
+2639,2688
+2640,2688
+2641,2688
+2642,2688
+2643,2688
+2644,2688
+2645,2688
+2646,2688
+2647,2675
+2648,2688
+2649,2688
+2650,2675
+2651,2688
+2652,2688
+2653,2688
+2654,2688
+2655,2688
+2656,2688
+2657,2688
+2658,2688
+2659,2688
+2660,2688
+2661,2688
+2662,2688
+2663,2675
+2664,2688
+2665,2688
+2666,2688
+2667,2675
+2668,2688
+2669,2688
+2670,2688
+2671,2688
+2672,2675
+2673,2688
+2674,2688
+2675,2675
+2676,2688
+2677,2688
+2678,2688
+2679,2688
+2680,2688
+2681,2688
+2682,2688
+2683,2688
+2684,2675
+2685,2688
+2686,2688
+2687,2688
+2688,2688
+2689,2688
+2690,2688
+2691,2688
+2692,2688
+2693,2688
+2694,2675
+2695,2688
+2696,2688
+2697,2688
+2698,2688
+2699,2688
+2700,2675
+2701,2688
+2702,2688
+2703,2675
+2704,2688
+2705,2688
+2706,2688
+2707,2675
+2708,2688
+2709,2688
+2710,2688
+2711,2688
+2712,2688
+2713,2688
+2714,2688
+2715,2675
+2716,2675
+2717,2688
+2718,2688
+2719,2688
+2720,2688
+2721,2688
+2722,2688
+2723,2688
+2724,2688
+2725,2688
+2726,2688
+2727,2688
+2728,2688
+2729,2675
+2730,2688
+2731,2675
+2732,2688
+2733,2688
+2734,2688
+2735,2688
+2736,2688
+2737,2688
+2738,2688
+2739,2688
+2740,2688
+2741,2688
+2742,2688
+2743,2688
+2744,2688
+2745,2688
+2746,2688
+2747,2688
+2748,2688
+2749,2688
+2750,2688
+2751,2688
+2752,2688
+2753,2688
+2754,2675
+2755,2688
+2756,2675
+2757,2688
+2758,2675
+2759,2688
+2760,2688
+2761,2688
+2762,2688
+2763,2688
+2764,2688
+2765,2675
+2766,2675
+2767,2688
+2768,2688
+2769,2688
+2770,2688
+2771,2688
+2772,2688
+2773,2688
+2774,2688
+2775,2688
+2776,2688
+2777,2688
+2778,2688
+2779,2688
+2780,2688
+2781,2688
+2782,2688
+2783,2675
+2784,2688
+2785,2688
+2786,2688
+2787,2688
+2788,2688
+2789,2688
+2790,2675
+2791,2688
+2792,2688
+2793,2688
+2794,2688
+2795,2688
+2796,2688
+2797,2688
+2798,2688
+2799,2688
+2800,2688
+2801,2688
+2802,2688
+2803,2688
+2804,2688
+2805,2688
+2806,2688
+2807,2688
+2808,2688
+2809,2688
+2810,2688
+2811,2675
+2812,2688
+2813,2688
+2814,2675
+2815,2688
+2816,2688
+2817,2675
+2818,2688
+2819,2688
+2820,2688
+2821,2688
+2822,2688
+2823,2688
+2824,2675
+2825,2688
+2826,2688
+2827,2688
+2828,2688
+2829,2688
+2830,2688
+2831,2688
+2832,2688
+2833,2688
+2834,2688
+2835,2688
+2836,2688
+2837,2675
+2838,2688
+2839,2675
+2840,2688
+2841,2688
+2842,2688
+2843,2688
+2844,2688
+2845,2688
+2846,2688
+2847,2688
+2848,2688
+2849,2688
+2850,2688
+2851,2688
+2852,2688
+2853,2688
+2854,2688
+2855,2688
+2856,2688
+2857,2688
+2858,2688
+2859,2675
+2860,2688
+2861,2688
+2862,2675
+2863,2688
+2864,2688
+2865,2675
+2866,2688
+2867,2688
+2868,2688
+2869,2688
+2870,2688
+2871,2688
+2872,2688
+2873,2688
+2874,2688
+2875,2688
+2876,2688
+2877,2675
+2878,2688
+2879,2688
+2880,2688
+2881,2688
+2882,2688
+2883,2688
+2884,2688
+2885,2688
+2886,2688
+2887,2688
+2888,2688
+2889,2688
+2890,2688
+2891,2688
+2892,2688
+2893,2688
+2894,2688
+2895,2688
+2896,2688
+2897,2688
+2898,2688
+2899,2688
+2900,2688
+2901,2688
+2902,2688
+2903,2688
+2904,2688
+2905,2688
+2906,2688
+2907,2688
+2908,2688
+2909,2688
+2910,2688
+2911,2688
+2912,2688
+2913,2688
+2914,2688
+2915,2688
+2916,2688
+2917,2675
+2918,2688
+2919,2688
+2920,2688
+2921,2688
+2922,2688
+2923,2675
+2924,2688
+2925,2688
+2926,2688
+2927,2688
+2928,2688
+2929,2688
+2930,2675
+2931,2688
+2932,2688
+2933,2688
+2934,2688
+2935,2700
+2936,2688
+2937,2688
+2938,2688
+2939,2688
+2940,2675
+2941,2688
+2942,2688
+2943,2688
+2944,2688
+2945,2675
+2946,2688
+2947,2688
+2948,2688
+2949,2688
+2950,2688
+2951,2688
+2952,2688
+2953,2688
+2954,2688
+2955,2688
+2956,2688
+2957,2688
+2958,2688
+2959,2688
+2960,2688
+2961,2688
+2962,2688
+2963,2688
+2964,2675
+2965,2688
+2966,2688
+2967,2675
+2968,2688
+2969,2688
+2970,2688
+2971,2688
+2972,2688
+2973,2688
+2974,2688
+2975,2688
+2976,2688
+2977,2688
+2978,2675
+2979,2688
+2980,2688
+2981,2688
+2982,2688
+2983,2688
+2984,2688
+2985,2688
+2986,2688
+2987,2688
+2988,2688
+2989,2688
+2990,2688
+2991,2688
+2992,2688
+2993,2688
+2994,2688
+2995,2688
+2996,2688
+2997,2688
+2998,2688
+2999,2688
+3000,2688
+3001,2688
+3002,2688
+3003,2688
+3004,2688
+3005,2688
+3006,2688
+3007,2688
+3008,2688
+3009,2688
+3010,2688
+3011,2688
+3012,2688
+3013,2688
+3014,2688
+3015,2688
+3016,2688
+3017,2688
+3018,2688
+3019,2675
+3020,2688
+3021,2688
+3022,2688
+3023,2700
+3024,2688
+3025,2688
+3026,2688
+3027,2688
+3028,2688
+3029,2688
+3030,2688
+3031,2688
+3032,2688
+3033,2688
+3034,2688
+3035,2688
+3036,2688
+3037,2688
+3038,2688
+3039,2688
+3040,2688
+3041,2688
+3042,2700
+3043,2688
+3044,2675
+3045,2688
+3046,2688
+3047,2688
+3048,2688
+3049,2688
+3050,2688
+3051,2688
+3052,2675
+3053,2688
+3054,2675
+3055,2688
+3056,2688
+3057,2688
+3058,2688
+3059,2675
+3060,2688
+3061,2688
+3062,2688
+3063,2675
+3064,2688
+3065,2688
+3066,2688
+3067,2675
+3068,2688
+3069,2688
+3070,2688
+3071,2688
+3072,2688
+3073,2675
+3074,2688
+3075,2688
+3076,2675
+3077,2688
+3078,2688
+3079,2688
+3080,2688
+3081,2688
+3082,2688
+3083,2688
+3084,2688
+3085,2688
+3086,2675
+3087,2688
+3088,2688
+3089,2688
+3090,2688
+3091,2688
+3092,2688
+3093,2688
+3094,2688
+3095,2688
+3096,2688
+3097,2688
+3098,2688
+3099,2675
+3100,2675
+3101,2688
+3102,2688
+3103,2688
+3104,2688
+3105,2688
+3106,2688
+3107,2688
+3108,2688
+3109,2688
+3110,2675
+3111,2688
+3112,2688
+3113,2688
+3114,2688
+3115,2688
+3116,2688
+3117,2675
+3118,2688
+3119,2688
+3120,2688
+3121,2688
+3122,2688
+3123,2688
+3124,2675
+3125,2688
+3126,2688
+3127,2688
+3128,2688
+3129,2688
+3130,2688
+3131,2688
+3132,2675
+3133,2700
+3134,2688
+3135,2688
+3136,2688
+3137,2675
+3138,2688
+3139,2675
+3140,2688
+3141,2688
+3142,2688
+3143,2675
+3144,2688
+3145,2688
+3146,2688
+3147,2688
+3148,2688
+3149,2688
+3150,2688
+3151,2688
+3152,2688
+3153,2688
+3154,2688
+3155,2688
+3156,2688
+3157,2688
+3158,2688
+3159,2688
+3160,2688
+3161,2688
+3162,2688
+3163,2688
+3164,2688
+3165,2688
+3166,2688
+3167,2688
+3168,2700
+3169,2688
+3170,2675
+3171,2688
+3172,2688
+3173,2688
+3174,2675
+3175,2688
+3176,2675
+3177,2688
+3178,2688
+3179,2688
+3180,2688
+3181,2688
+3182,2675
+3183,2688
+3184,2688
+3185,2688
+3186,2688
+3187,2688
+3188,2688
+3189,2688
+3190,2688
+3191,2688
+3192,2688
+3193,2675
+3194,2688
+3195,2688
+3196,2688
+3197,2675
+3198,2688
+3199,2688
+3200,2675
+3201,2688
+3202,2688
+3203,2688
+3204,2688
+3205,2688
+3206,2675
+3207,2688
+3208,2688
+3209,2688
+3210,2688
+3211,2688
+3212,2688
+3213,2688
+3214,2688
+3215,2688
+3216,2688
+3217,2688
+3218,2688
+3219,2688
+3220,2688
+3221,2688
+3222,2675
+3223,2688
+3224,2675
+3225,2688
+3226,2688
+3227,2688
+3228,2688
+3229,2688
+3230,2688
+3231,2688
+3232,2688
+3233,2688
+3234,2688
+3235,2688
+3236,2688
+3237,2688
+3238,2688
+3239,2688
+3240,2688
+3241,2688
+3242,2688
+3243,2688
+3244,2675
+3245,2688
+3246,2688
+3247,2688
+3248,2688
+3249,2688
+3250,2688
+3251,2688
+3252,2688
+3253,2688
+3254,2688
+3255,2688
+3256,2688
+3257,2688
+3258,2688
+3259,2688
+3260,2688
+3261,2688
+3262,2688
+3263,2688
+3264,2688
+3265,2688
+3266,2688
+3267,2688
+3268,2675
+3269,2688
+3270,2688
+3271,2688
+3272,2688
+3273,2688
+3274,2675
+3275,2688
+3276,2688
+3277,2688
+3278,2688
+3279,2688
+3280,2688
+3281,2688
+3282,2688
+3283,2688
+3284,2688
+3285,2688
+3286,2675
+3287,2688
+3288,2688
+3289,2688
+3290,2688
+3291,2688
+3292,2688
+3293,2688
+3294,2675
+3295,2688
+3296,2688
+3297,2688
+3298,2688
+3299,2688
+3300,2688
+3301,2688
+3302,2688
+3303,2688
+3304,2688
+3305,2688
+3306,2688
+3307,2688
+3308,2688
+3309,2688
+3310,2688
+3311,2675
+3312,2688
+3313,2675
+3314,2688
+3315,2675
+3316,2688
+3317,2688
+3318,2688
+3319,2688
+3320,2688
+3321,2688
+3322,2675
+3323,2675
+3324,2688
+3325,2688
+3326,2688
+3327,2688
+3328,2688
+3329,2688
+3330,2675
+3331,2688
+3332,2688
+3333,2688
+3334,2675
+3335,2688
+3336,2688
+3337,2688
+3338,2688
+3339,2688
+3340,2688
+3341,2688
+3342,2688
+3343,2688
+3344,2688
+3345,2688
+3346,2688
+3347,2688
+3348,2675
+3349,2688
+3350,2688
+3351,2688
+3352,2688
+3353,2688
+3354,2688
+3355,2675
+3356,2675
+3357,2675
+3358,2688
+3359,2688
+3360,2688
+3361,2688
+3362,2688
+3363,2688
+3364,2688
+3365,2688
+3366,2688
+3367,2688
+3368,2688
+3369,2675
+3370,2688
+3371,2688
+3372,2688
+3373,2688
+3374,2688
+3375,2688
+3376,2688
+3377,2688
+3378,2688
+3379,2688
+3380,2688
+3381,2688
+3382,2688
+3383,2675
+3384,2688
+3385,2688
+3386,2688
+3387,2688
+3388,2688
+3389,2688
+3390,2675
+3391,2688
+3392,2688
+3393,2688
+3394,2688
+3395,2688
+3396,2675
+3397,2688
+3398,2688
+3399,2675
+3400,2688
+3401,2688
+3402,2675
+3403,2688
+3404,2688
+3405,2688
+3406,2675
+3407,2688
+3408,2675
+3409,2688
+3410,2688
+3411,2675
+3412,2688
+3413,2688
+3414,2688
+3415,2688
+3416,2688
+3417,2688
+3418,2688
+3419,2675
+3420,2688
+3421,2688
+3422,2688
+3423,2675
+3424,2688
+3425,2688
+3426,2688
+3427,2700
+3428,2688
+3429,2675
+3430,2675
+3431,2688
+3432,2688
+3433,2688
+3434,2688
+3435,2688
+3436,2688
+3437,2688
+3438,2688
+3439,2688
+3440,2688
+3441,2688
+3442,2688
+3443,2675
+3444,2688
+3445,2675
+3446,2688
+3447,2688
+3448,2688
+3449,2688
+3450,2688
+3451,2675
+3452,2688
+3453,2688
+3454,2688
+3455,2688
+3456,2688
+3457,2675
+3458,2688
+3459,2688
+3460,2675
+3461,2675
+3462,2688
+3463,2688
+3464,2688
+3465,2688
+3466,2688
+3467,2688
+3468,2688
+3469,2688
+3470,2688
+3471,2688
+3472,2688
+3473,2688
+3474,2688
+3475,2688
+3476,2688
+3477,2688
+3478,2688
+3479,2688
+3480,2688
+3481,2675
+3482,2688
+3483,2675
+3484,2688
+3485,2688
+3486,2688
+3487,2688
+3488,2688
+3489,2675
+3490,2688
+3491,2675
+3492,2675
+3493,2688
+3494,2688
+3495,2688
+3496,2688
+3497,2688
+3498,2688
+3499,2675
+3500,2688
+3501,2688
+3502,2688
+3503,2688
+3504,2688
+3505,2688
+3506,2688
+3507,2688
+3508,2688
+3509,2688
+3510,2688
+3511,2675
+3512,2688
+3513,2688
+3514,2688
+3515,2688
+3516,2688
+3517,2688
+3518,2688
+3519,2688
+3520,2688
+3521,2675
+3522,2675
+3523,2688
+3524,2688
+3525,2688
+3526,2688
+3527,2675
+3528,2688
+3529,2688
+3530,2688
+3531,2688
+3532,2688
+3533,2688
+3534,2688
+3535,2688
+3536,2688
+3537,2688
+3538,2688
+3539,2675
+3540,2688
+3541,2675
+3542,2675
+3543,2688
+3544,2688
+3545,2688
+3546,2688
+3547,2688
+3548,2688
+3549,2688
+3550,2688
+3551,2688
+3552,2675
+3553,2688
+3554,2688
+3555,2675
+3556,2688
+3557,2675
+3558,2688
+3559,2688
+3560,2688
+3561,2688
+3562,2688
+3563,2688
+3564,2688
+3565,2688
+3566,2688
+3567,2688
+3568,2675
+3569,2688
+3570,2688
+3571,2688
+3572,2688
+3573,2675
+3574,2675
+3575,2688
+3576,2688
+3577,2688
+3578,2688
+3579,2688
+3580,2688
+3581,2688
+3582,2688
+3583,2688
+3584,2688
+3585,2688
+3586,2675
+3587,2688
+3588,2688
+3589,2688
+3590,2688
+3591,2688
+3592,2688
+3593,2688
+3594,2688
+3595,2688
+3596,2688
+3597,2688
+3598,2675
+3599,2688
+3600,2688
+3601,2675
+3602,2688
+3603,2675
+3604,2675
+3605,2675
+3606,2688
+3607,2675
+3608,2688
+3609,2688
+3610,2688
+3611,2688
+3612,2688
+3613,2688
+3614,2688
+3615,2688
+3616,2688
+3617,2675
+3618,2688
+3619,2688
+3620,2675
+3621,2688
+3622,2688
+3623,2688
+3624,2688
+3625,2688
+3626,2688
+3627,2688
+3628,2688
+3629,2688
+3630,2688
+3631,2688
+3632,2688
+3633,2688
+3634,2688
+3635,2688
+3636,2688
+3637,2688
+3638,2688
+3639,2675
+3640,2688
+3641,2688
+3642,2688
+3643,2688
+3644,2688
+3645,2688
+3646,2688
+3647,2688
+3648,2688
+3649,2688
+3650,2688
+3651,2688
+3652,2688
+3653,2688
+3654,2688
+3655,2688
+3656,2688
+3657,2675
+3658,2688
+3659,2688
+3660,2688
+3661,2688
+3662,2688
+3663,2688
+3664,2675
+3665,2688
+3666,2688
+3667,2688
+3668,2688
+3669,2688
+3670,2688
+3671,2688
+3672,2688
+3673,2688
+3674,2688
+3675,2688
+3676,2688
+3677,2688
+3678,2688
+3679,2688
+3680,2688
+3681,2688
+3682,2688
+3683,2688
+3684,2675
+3685,2688
+3686,2688
+3687,2688
+3688,2688
+3689,2688
+3690,2675
+3691,2688
+3692,2688
+3693,2688
+3694,2688
+3695,2688
+3696,2688
+3697,2688
+3698,2688
+3699,2688
+3700,2688
+3701,2688
+3702,2688
+3703,2675
+3704,2688
+3705,2688
+3706,2688
+3707,2688
+3708,2688
+3709,2675
+3710,2688
+3711,2688
+3712,2688
+3713,2688
+3714,2688
+3715,2688
+3716,2688
+3717,2688
+3718,2688
+3719,2700
+3720,2688
+3721,2675
+3722,2688
+3723,2675
+3724,2688
+3725,2688
+3726,2688
+3727,2675
+3728,2688
+3729,2688
+3730,2688
+3731,2675
+3732,2688
+3733,2688
+3734,2688
+3735,2688
+3736,2688
+3737,2675
+3738,2688
+3739,2688
+3740,2688
+3741,2688
+3742,2688
+3743,2688
+3744,2688
+3745,2688
+3746,2688
+3747,2688
+3748,2688
+3749,2675
+3750,2688
+3751,2688
+3752,2688
+3753,2688
+3754,2688
+3755,2688
+3756,2688
+3757,2675
+3758,2688
+3759,2688
+3760,2688
+3761,2688
+3762,2688
+3763,2688
+3764,2688
+3765,2688
+3766,2688
+3767,2675
+3768,2688
+3769,2688
+3770,2688
+3771,2688
+3772,2688
+3773,2688
+3774,2688
+3775,2688
+3776,2688
+3777,2688
+3778,2688
+3779,2688
+3780,2688
+3781,2688
+3782,2688
+3783,2688
+3784,2688
+3785,2688
+3786,2688
+3787,2688
+3788,2688
+3789,2688
+3790,2688
+3791,2688
+3792,2688
+3793,2688
+3794,2688
+3795,2688
+3796,2688
+3797,2688
+3798,2688
+3799,2688
+3800,2688
+3801,2688
+3802,2675
+3803,2688
+3804,2688
+3805,2688
+3806,2688
+3807,2688
+3808,2688
+3809,2688
+3810,2688
+3811,2688
+3812,2688
+3813,2688
+3814,2688
+3815,2688
+3816,2688
+3817,2688
+3818,2675
+3819,2688
+3820,2688
+3821,2688
+3822,2688
+3823,2688
+3824,2688
+3825,2675
+3826,2688
+3827,2688
+3828,2688
+3829,2688
+3830,2688
+3831,2688
+3832,2688
+3833,2688
+3834,2688
+3835,2688
+3836,2688
+3837,2688
+3838,2688
+3839,2688
+3840,2688
+3841,2675
+3842,2688
+3843,2675
+3844,2688
+3845,2675
+3846,2688
+3847,2688
+3848,2675
+3849,2675
+3850,2688
+3851,2688
+3852,2688
+3853,2688
+3854,2688
+3855,2688
+3856,2675
+3857,2688
+3858,2688
+3859,2688
+3860,2688
+3861,2688
+3862,2675
+3863,2688
+3864,2688
+3865,2688
+3866,2688
+3867,2675
+3868,2688
+3869,2688
+3870,2688
+3871,2688
+3872,2675
+3873,2688
+3874,2688
+3875,2675
+3876,2688
+3877,2688
+3878,2688
+3879,2688
+3880,2688
+3881,2688
+3882,2688
+3883,2688
+3884,2688
+3885,2688
+3886,2688
+3887,2688
+3888,2688
+3889,2688
+3890,2688
+3891,2688
+3892,2688
+3893,2688
+3894,2688
+3895,2688
+3896,2688
+3897,2688
+3898,2688
+3899,2688
+3900,2700
+3901,2688
+3902,2688
+3903,2688
+3904,2688
+3905,2688
+3906,2688
+3907,2675
+3908,2688
+3909,2675
+3910,2688
+3911,2688
+3912,2688
+3913,2688
+3914,2688
+3915,2688
+3916,2688
+3917,2688
+3918,2688
+3919,2675
+3920,2688
+3921,2688
+3922,2688
+3923,2688
+3924,2688
+3925,2688
+3926,2688
+3927,2688
+3928,2688
+3929,2688
+3930,2688
+3931,2688
+3932,2688
+3933,2688
+3934,2688
+3935,2688
+3936,2688
+3937,2675
+3938,2675
+3939,2688
+3940,2688
+3941,2688
+3942,2675
+3943,2688
+3944,2688
+3945,2688
+3946,2688
+3947,2688
+3948,2675
+3949,2675
+3950,2688
+3951,2688
+3952,2688
+3953,2688
+3954,2688
+3955,2688
+3956,2688
+3957,2688
+3958,2688
+3959,2688
+3960,2688
+3961,2675
+3962,2688
+3963,2688
+3964,2688
+3965,2688
+3966,2700
+3967,2688
+3968,2688
+3969,2688
+3970,2688
+3971,2688
+3972,2688
+3973,2688
+3974,2675
+3975,2675
+3976,2688
+3977,2688
+3978,2688
+3979,2688
+3980,2688
+3981,2688
+3982,2688
+3983,2688
+3984,2688
+3985,2675
+3986,2675
+3987,2688
+3988,2688
+3989,2688
+3990,2688
+3991,2688
+3992,2688
+3993,2688
+3994,2688
+3995,2688
+3996,2688
+3997,2688
+3998,2688
+3999,2688
+4000,2688
+4001,2688
+4002,2688
+4003,2688
+4004,2688
+4005,2675
+4006,2688
+4007,2688
+4008,2688
+4009,2688
+4010,2688
+4011,2688
+4012,2675
+4013,2688
+4014,2688
+4015,2688
+4016,2688
+4017,2688
+4018,2688
+4019,2688
+4020,2675
+4021,2675
+4022,2688
+4023,2688
+4024,2688
+4025,2688
+4026,2688
+4027,2688
+4028,2688
+4029,2688
+4030,2688
+4031,2688
+4032,2688
+4033,2688
+4034,2688
+4035,2688
+4036,2688
+4037,2688
+4038,2688
+4039,2688
+4040,2675
+4041,2688
+4042,2688
+4043,2675
+4044,2688
+4045,2688
+4046,2688
+4047,2688
+4048,2688
+4049,2688
+4050,2675
+4051,2688
+4052,2688
+4053,2688
+4054,2688
+4055,2688
+4056,2688
+4057,2688
+4058,2688
+4059,2688
+4060,2688
+4061,2688
+4062,2675
+4063,2700
+4064,2688
+4065,2688
+4066,2688
+4067,2688
+4068,2675
+4069,2688
+4070,2675
+4071,2688
+4072,2688
+4073,2688
+4074,2688
+4075,2688
+4076,2688
+4077,2688
+4078,2688
+4079,2688
+4080,2688
+4081,2688
+4082,2700
+4083,2688
+4084,2700
+4085,2688
+4086,2688
+4087,2688
+4088,2688
+4089,2675
+4090,2688
+4091,2688
+4092,2688
+4093,2688
+4094,2688
+4095,2688
+4096,2688
+4097,2688
+4098,2688
+4099,2688
+4100,2688
+4101,2688
+4102,2688
+4103,2688
+4104,2688
+4105,2688
+4106,2688
+4107,2700
+4108,2688
+4109,2688
+4110,2688
+4111,2688
+4112,2675
+4113,2675
+4114,2688
+4115,2688
+4116,2688
+4117,2688
+4118,2688
+4119,2688
+4120,2700
+4121,2688
+4122,2688
+4123,2688
+4124,2688
+4125,2688
+4126,2688
+4127,2688
+4128,2688
+4129,2675
+4130,2688
+4131,2688
+4132,2688
+4133,2688
+4134,2688
+4135,2688
+4136,2688
+4137,2675
+4138,2688
+4139,2675
+4140,2688
+4141,2688
+4142,2688
+4143,2688
+4144,2675
+4145,2688
+4146,2688
+4147,2675
+4148,2688
+4149,2688
+4150,2688
+4151,2688
+4152,2688
+4153,2700
+4154,2675
+4155,2688
+4156,2675
+4157,2675
+4158,2688
+4159,2688
+4160,2688
+4161,2675
+4162,2688
+4163,2688
+4164,2688
+4165,2688
+4166,2688
+4167,2688
+4168,2688
+4169,2675
+4170,2688
+4171,2688
+4172,2688
+4173,2688
+4174,2688
+4175,2688
+4176,2688
+4177,2675
+4178,2688
+4179,2688
+4180,2688
+4181,2688
+4182,2675
+4183,2688
+4184,2688
+4185,2688
+4186,2688
+4187,2688
+4188,2688
+4189,2688
+4190,2688
+4191,2688
+4192,2688
+4193,2688
+4194,2675
+4195,2688
+4196,2688
+4197,2688
+4198,2688
+4199,2688
+4200,2688
+4201,2688
+4202,2675
+4203,2688
+4204,2688
+4205,2688
+4206,2675
+4207,2688
+4208,2688
+4209,2688
+4210,2688
+4211,2688
+4212,2688
+4213,2688
+4214,2688
+4215,2675
+4216,2675
+4217,2688
+4218,2675
+4219,2688
+4220,2688
+4221,2688
+4222,2688
+4223,2688
+4224,2688
+4225,2688
+4226,2688
+4227,2688
+4228,2688
+4229,2688
+4230,2688
+4231,2675
+4232,2688
+4233,2688
+4234,2675
+4235,2675
+4236,2688
+4237,2688
+4238,2688
+4239,2688
+4240,2675
+4241,2688
+4242,2688
+4243,2675
+4244,2688
+4245,2688
+4246,2688
+4247,2688
+4248,2688
+4249,2688
+4250,2700
+4251,2675
+4252,2688
+4253,2688
+4254,2688
+4255,2688
+4256,2688
+4257,2688
+4258,2688
+4259,2688
+4260,2688
+4261,2688
+4262,2688
+4263,2688
+4264,2688
+4265,2675
+4266,2688
+4267,2688
+4268,2688
+4269,2688
+4270,2688
+4271,2675
+4272,2688
+4273,2700
+4274,2688
+4275,2675
+4276,2688
+4277,2688
+4278,2688
+4279,2688
+4280,2675
+4281,2688
+4282,2688
+4283,2688
+4284,2688
+4285,2675
+4286,2688
+4287,2688
+4288,2675
+4289,2688
+4290,2675
+4291,2688
+4292,2688
+4293,2688
+4294,2688
+4295,2688
+4296,2688
+4297,2688
+4298,2688
+4299,2688
+4300,2688
+4301,2688
+4302,2688
+4303,2688
+4304,2688
+4305,2688
+4306,2688
+4307,2675
+4308,2675
+4309,2688
+4310,2688
+4311,2688
+4312,2675
+4313,2675
+4314,2688
+4315,2688
+4316,2688
+4317,2688
+4318,2688
+4319,2675
+4320,2688
+4321,2688
+4322,2688
+4323,2688
+4324,2675
+4325,2688
+4326,2688
+4327,2688
+4328,2688
+4329,2688
+4330,2675
+4331,2688
+4332,2688
+4333,2688
+4334,2688
+4335,2688
+4336,2688
+4337,2700
+4338,2688
+4339,2688
+4340,2688
+4341,2688
+4342,2688
+4343,2700
+4344,2688
+4345,2675
+4346,2688
+4347,2688
+4348,2675
+4349,2675
+4350,2688
+4351,2688
+4352,2688
+4353,2688
+4354,2688
+4355,2688
+4356,2688
+4357,2688
+4358,2688
+4359,2688
+4360,2688
+4361,2688
+4362,2688
+4363,2688
+4364,2688
+4365,2688
+4366,2688
+4367,2688
+4368,2688
+4369,2688
+4370,2688
+4371,2688
+4372,2688
+4373,2675
+4374,2675
+4375,2688
+4376,2688
+4377,2675
+4378,2688
+4379,2688
+4380,2688
+4381,2688
+4382,2688
+4383,2688
+4384,2688
+4385,2688
+4386,2675
+4387,2688
+4388,2688
+4389,2688
+4390,2688
+4391,2688
+4392,2688
+4393,2688
+4394,2688
+4395,2688
+4396,2688
+4397,2688
+4398,2700
+4399,2688
+4400,2688
+4401,2688
+4402,2688
+4403,2688
+4404,2688
+4405,2688
+4406,2688
+4407,2688
+4408,2675
+4409,2688
+4410,2688
+4411,2688
+4412,2688
+4413,2688
+4414,2688
+4415,2675
+4416,2688
+4417,2688
+4418,2688
+4419,2688
+4420,2688
+4421,2688
+4422,2688
+4423,2688
+4424,2688
+4425,2688
+4426,2688
+4427,2688
+4428,2688
+4429,2688
+4430,2688
+4431,2688
+4432,2688
+4433,2688
+4434,2688
+4435,2688
+4436,2688
+4437,2688
+4438,2688
+4439,2688
+4440,2688
+4441,2688
+4442,2688
+4443,2675
+4444,2688
+4445,2675
+4446,2675
+4447,2688
+4448,2688
+4449,2688
+4450,2688
+4451,2675
+4452,2688
+4453,2688
+4454,2675
+4455,2688
+4456,2688
+4457,2688
+4458,2688
+4459,2688
+4460,2688
+4461,2688
+4462,2688
+4463,2688
+4464,2688
+4465,2688
+4466,2688
+4467,2688
+4468,2688
+4469,2688
+4470,2688
+4471,2688
+4472,2688
+4473,2688
+4474,2688
+4475,2688
+4476,2675
+4477,2688
+4478,2688
+4479,2688
+4480,2688
+4481,2688
+4482,2688
+4483,2688
+4484,2688
+4485,2688
+4486,2688
+4487,2688
+4488,2688
+4489,2688
+4490,2688
+4491,2688
+4492,2675
+4493,2688
+4494,2688
+4495,2688
+4496,2688
+4497,2688
+4498,2688
+4499,2688
+4500,2688
+4501,2688
+4502,2688
+4503,2688
+4504,2688
+4505,2688
+4506,2688
+4507,2688
+4508,2688
+4509,2688
+4510,2688
+4511,2688
+4512,2688
+4513,2688
+4514,2688
+4515,2675
+4516,2688
+4517,2675
+4518,2688
+4519,2688
+4520,2688
+4521,2688
+4522,2688
+4523,2688
+4524,2688
+4525,2688
+4526,2688
+4527,2688
+4528,2688
+4529,2688
+4530,2688
+4531,2688
+4532,2688
+4533,2688
+4534,2688
+4535,2688
+4536,2688
+4537,2675
+4538,2675
+4539,2688
+4540,2688
+4541,2688
+4542,2688
+4543,2688
+4544,2688
+4545,2688
+4546,2688
+4547,2688
+4548,2688
+4549,2688
+4550,2688
+4551,2688
+4552,2688
+4553,2688
+4554,2675
+4555,2688
+4556,2688
+4557,2688
+4558,2688
+4559,2688
+4560,2688
+4561,2688
+4562,2688
+4563,2688
+4564,2688
+4565,2675
+4566,2688
+4567,2688
+4568,2688
+4569,2688
+4570,2688
+4571,2688
+4572,2688
+4573,2688
+4574,2688
+4575,2688
+4576,2688
+4577,2688
+4578,2700
+4579,2688
+4580,2688
+4581,2688
+4582,2688
+4583,2688
+4584,2688
+4585,2688
+4586,2688
+4587,2688
+4588,2688
+4589,2675
+4590,2675
+4591,2675
+4592,2688
+4593,2688
+4594,2688
+4595,2688
+4596,2688
+4597,2688
+4598,2688
+4599,2688
+4600,2688
+4601,2688
+4602,2688
+4603,2688
+4604,2688
+4605,2688
+4606,2700
+4607,2688
+4608,2688
+4609,2688
+4610,2688
+4611,2688
+4612,2688
+4613,2688
+4614,2688
+4615,2675
+4616,2688
+4617,2688
+4618,2688
+4619,2688
+4620,2688
+4621,2688
+4622,2688
+4623,2688
+4624,2688
+4625,2688
+4626,2688
+4627,2688
+4628,2688
+4629,2688
+4630,2688
+4631,2688
+4632,2688
+4633,2688
+4634,2688
+4635,2688
+4636,2688
+4637,2688
+4638,2688
+4639,2688
+4640,2688
+4641,2688
+4642,2688
+4643,2688
+4644,2688
+4645,2688
+4646,2688
+4647,2688
+4648,2688
+4649,2688
+4650,2688
+4651,2688
+4652,2688
+4653,2688
+4654,2688
+4655,2688
+4656,2688
+4657,2688
+4658,2688
+4659,2688
+4660,2675
+4661,2688
+4662,2688
+4663,2688
+4664,2688
+4665,2688
+4666,2675
+4667,2688
+4668,2688
+4669,2688
+4670,2688
+4671,2688
+4672,2688
+4673,2688
+4674,2688
+4675,2688
+4676,2688
+4677,2688
+4678,2688
+4679,2688
+4680,2688
+4681,2688
+4682,2688
+4683,2688
+4684,2688
+4685,2688
+4686,2688
+4687,2675
+4688,2688
+4689,2688
+4690,2688
+4691,2688
+4692,2688
+4693,2688
+4694,2700
+4695,2675
+4696,2688
+4697,2688
+4698,2688
+4699,2675
+4700,2688
+4701,2675
+4702,2688
+4703,2688
+4704,2688
+4705,2688
+4706,2675
+4707,2688
+4708,2688
+4709,2688
+4710,2688
+4711,2688
+4712,2675
+4713,2688
+4714,2688
+4715,2688
+4716,2688
+4717,2688
+4718,2688
+4719,2688
+4720,2688
+4721,2688
+4722,2688
+4723,2688
+4724,2688
+4725,2675
+4726,2688
+4727,2688
+4728,2675
+4729,2688
+4730,2688
+4731,2688
+4732,2688
+4733,2688
+4734,2688
+4735,2688
+4736,2688
+4737,2688
+4738,2688
+4739,2688
+4740,2688
+4741,2688
+4742,2688
+4743,2688
+4744,2688
+4745,2688
+4746,2688
+4747,2688
+4748,2688
+4749,2688
+4750,2688
+4751,2688
+4752,2688
+4753,2688
+4754,2688
+4755,2688
+4756,2688
+4757,2688
+4758,2688
+4759,2688
+4760,2688
+4761,2688
+4762,2688
+4763,2688
+4764,2688
+4765,2688
+4766,2688
+4767,2688
+4768,2688
+4769,2688
+4770,2688
+4771,2675
+4772,2688
+4773,2688
+4774,2688
+4775,2688
+4776,2688
+4777,2688
+4778,2688
+4779,2688
+4780,2688
+4781,2688
+4782,2688
+4783,2675
+4784,2688
+4785,2688
+4786,2688
+4787,2675
+4788,2688
+4789,2688
+4790,2688
+4791,2688
+4792,2688
+4793,2688
+4794,2688
+4795,2688
+4796,2688
+4797,2688
+4798,2688
+4799,2688
+4800,2688
+4801,2688
+4802,2688
+4803,2700
+4804,2688
+4805,2688
+4806,2688
+4807,2688
+4808,2688
+4809,2688
+4810,2688
+4811,2688
+4812,2688
+4813,2688
+4814,2688
+4815,2688
+4816,2688
+4817,2675
+4818,2688
+4819,2688
+4820,2688
+4821,2675
+4822,2688
+4823,2688
+4824,2688
+4825,2688
+4826,2688
+4827,2675
+4828,2688
+4829,2688
+4830,2688
+4831,2688
+4832,2688
+4833,2675
+4834,2688
+4835,2688
+4836,2688
+4837,2688
+4838,2688
+4839,2688
+4840,2688
+4841,2688
+4842,2675
+4843,2688
+4844,2688
+4845,2688
+4846,2688
+4847,2688
+4848,2688
+4849,2675
+4850,2688
+4851,2675
+4852,2688
+4853,2688
+4854,2688
+4855,2688
+4856,2688
+4857,2688
+4858,2688
+4859,2688
+4860,2688
+4861,2688
+4862,2688
+4863,2688
+4864,2688
+4865,2688
+4866,2688
+4867,2675
+4868,2688
+4869,2688
+4870,2688
+4871,2675
+4872,2688
+4873,2675
+4874,2675
+4875,2688
+4876,2688
+4877,2688
+4878,2688
+4879,2688
+4880,2688
+4881,2688
+4882,2688
+4883,2688
+4884,2688
+4885,2688
+4886,2688
+4887,2688
+4888,2688
+4889,2688
+4890,2688
+4891,2688
+4892,2688
+4893,2688
+4894,2688
+4895,2688
+4896,2688
+4897,2688
+4898,2688
+4899,2688
+4900,2688
+4901,2688
+4902,2675
+4903,2688
+4904,2688
+4905,2688
+4906,2688
+4907,2688
+4908,2688
+4909,2688
+4910,2688
+4911,2688
+4912,2688
+4913,2688
+4914,2688
+4915,2688
+4916,2688
+4917,2688
+4918,2688
+4919,2688
+4920,2688
+4921,2688
+4922,2688
+4923,2688
+4924,2688
+4925,2688
+4926,2688
+4927,2688
+4928,2688
+4929,2688
+4930,2688
+4931,2688
+4932,2688
+4933,2688
+4934,2688
+4935,2675
+4936,2675
+4937,2688
+4938,2688
+4939,2688
+4940,2688
+4941,2688
+4942,2688
+4943,2688
+4944,2675
+4945,2675
+4946,2688
+4947,2675
+4948,2688
+4949,2675
+4950,2688
+4951,2688
+4952,2688
+4953,2688
+4954,2688
+4955,2688
+4956,2675
+4957,2688
+4958,2688
+4959,2688
+4960,2675
+4961,2688
+4962,2688
+4963,2688
+4964,2688
+4965,2688
+4966,2675
+4967,2688
+4968,2688
+4969,2675
+4970,2688
+4971,2688
+4972,2688
+4973,2688
+4974,2688
+4975,2688
+4976,2675
+4977,2688
+4978,2688
+4979,2688
+4980,2688
+4981,2688
+4982,2688
+4983,2688
+4984,2675
+4985,2688
+4986,2688
+4987,2688
+4988,2688
+4989,2675
+4990,2688
+4991,2675
+4992,2688
+4993,2688
+4994,2675
+4995,2688
+4996,2688
+4997,2688
+4998,2688
+4999,2688
+5000,2675
+5001,2688
+5002,2688
+5003,2688
+5004,2688
+5005,2675
+5006,2700
+5007,2688
+5008,2688
+5009,2688
+5010,2688
+5011,2688
+5012,2688
+5013,2688
+5014,2688
+5015,2675
+5016,2688
+5017,2688
+5018,2688
+5019,2688
+5020,2688
+5021,2675
+5022,2688
+5023,2688
+5024,2688
+5025,2688
+5026,2688
+5027,2675
+5028,2688
+5029,2688
+5030,2688
+5031,2688
+5032,2688
+5033,2688
+5034,2688
+5035,2688
+5036,2688
+5037,2688
+5038,2688
+5039,2688
+5040,2688
+5041,2688
+5042,2688
+5043,2688
+5044,2688
+5045,2688
+5046,2688
+5047,2688
+5048,2688
+5049,2688
+5050,2688
+5051,2688
+5052,2688
+5053,2688
+5054,2688
+5055,2688
+5056,2688
+5057,2688
+5058,2688
+5059,2688
+5060,2675
+5061,2688
+5062,2688
+5063,2688
+5064,2688
+5065,2688
+5066,2688
+5067,2688
+5068,2675
+5069,2675
+5070,2688
+5071,2688
+5072,2688
+5073,2688
+5074,2688
+5075,2688
+5076,2688
+5077,2688
+5078,2688
+5079,2675
+5080,2675
+5081,2688
+5082,2688
+5083,2688
+5084,2688
+5085,2688
+5086,2688
+5087,2688
+5088,2675
+5089,2688
+5090,2688
+5091,2688
+5092,2688
+5093,2688
+5094,2688
+5095,2688
+5096,2688
+5097,2675
+5098,2688
+5099,2688
+5100,2688
+5101,2688
+5102,2688
+5103,2688
+5104,2688
+5105,2688
+5106,2688
+5107,2688
+5108,2688
+5109,2675
+5110,2688
+5111,2688
+5112,2688
+5113,2688
+5114,2688
+5115,2688
+5116,2675
+5117,2688
+5118,2688
+5119,2688
+5120,2688
+5121,2688
+5122,2688
+5123,2688
+5124,2688
+5125,2688
+5126,2675
+5127,2700
+5128,2688
+5129,2688
+5130,2688
+5131,2688
+5132,2688
+5133,2688
+5134,2688
+5135,2688
+5136,2688
+5137,2688
+5138,2688
+5139,2688
+5140,2688
+5141,2688
+5142,2688
+5143,2688
+5144,2688
+5145,2688
+5146,2675
+5147,2688
+5148,2688
+5149,2688
+5150,2688
+5151,2688
+5152,2675
+5153,2688
+5154,2688
+5155,2688
+5156,2688
+5157,2688
+5158,2688
+5159,2675
+5160,2688
+5161,2688
+5162,2688
+5163,2688
+5164,2688
+5165,2675
+5166,2688
+5167,2675
+5168,2688
+5169,2675
+5170,2688
+5171,2688
+5172,2688
+5173,2688
+5174,2688
+5175,2675
+5176,2675
+5177,2675
+5178,2688
+5179,2675
+5180,2688
+5181,2688
+5182,2675
+5183,2688
+5184,2688
+5185,2688
+5186,2688
+5187,2688
+5188,2688
+5189,2688
+5190,2688
+5191,2688
+5192,2688
+5193,2688
+5194,2688
+5195,2675
+5196,2688
+5197,2688
+5198,2688
+5199,2688
+5200,2675
+5201,2675
+5202,2688
+5203,2688
+5204,2688
+5205,2688
+5206,2688
+5207,2688
+5208,2675
+5209,2688
+5210,2688
+5211,2688
+5212,2688
+5213,2688
+5214,2688
+5215,2688
+5216,2688
+5217,2688
+5218,2688
+5219,2688
+5220,2688
+5221,2675
+5222,2688
+5223,2688
+5224,2688
+5225,2688
+5226,2688
+5227,2688
+5228,2688
+5229,2688
+5230,2688
+5231,2675
+5232,2688
+5233,2688
+5234,2688
+5235,2688
+5236,2688
+5237,2688
+5238,2688
+5239,2688
+5240,2675
+5241,2688
+5242,2688
+5243,2688
+5244,2688
+5245,2688
+5246,2688
+5247,2688
+5248,2688
+5249,2688
+5250,2688
+5251,2688
+5252,2688
+5253,2688
+5254,2688
+5255,2688
+5256,2688
+5257,2688
+5258,2688
+5259,2688
+5260,2675
+5261,2688
+5262,2688
+5263,2688
+5264,2688
+5265,2688
+5266,2675
+5267,2688
+5268,2688
+5269,2688
+5270,2688
+5271,2688
+5272,2675
+5273,2688
+5274,2688
+5275,2688
+5276,2688
+5277,2688
+5278,2688
+5279,2688
+5280,2688
+5281,2688
+5282,2688
+5283,2688
+5284,2688
+5285,2688
+5286,2675
+5287,2675
+5288,2688
+5289,2688
+5290,2688
+5291,2688
+5292,2688
+5293,2688
+5294,2688
+5295,2688
+5296,2688
+5297,2688
+5298,2688
+5299,2688
+5300,2688
+5301,2688
+5302,2688
+5303,2688
+5304,2688
+5305,2675
+5306,2688
+5307,2688
+5308,2688
+5309,2688
+5310,2688
+5311,2688
+5312,2688
+5313,2688
+5314,2688
+5315,2688
+5316,2688
+5317,2688
+5318,2688
+5319,2688
+5320,2688
+5321,2688
+5322,2688
+5323,2688
+5324,2688
+5325,2688
+5326,2688
+5327,2688
+5328,2688
+5329,2688
+5330,2675
+5331,2688
+5332,2688
+5333,2688
+5334,2688
+5335,2688
+5336,2688
+5337,2688
+5338,2688
+5339,2688
+5340,2688
+5341,2688
+5342,2688
+5343,2688
+5344,2688
+5345,2688
+5346,2688
+5347,2688
+5348,2688
+5349,2688
+5350,2675
+5351,2688
+5352,2675
+5353,2688
+5354,2688
+5355,2688
+5356,2688
+5357,2675
+5358,2688
+5359,2688
+5360,2688
+5361,2688
+5362,2688
+5363,2675
+5364,2688
+5365,2688
+5366,2688
+5367,2675
+5368,2688
+5369,2688
+5370,2688
+5371,2688
+5372,2688
+5373,2688
+5374,2688
+5375,2688
+5376,2688
+5377,2688
+5378,2688
+5379,2688
+5380,2688
+5381,2688
+5382,2688
+5383,2675
+5384,2688
+5385,2688
+5386,2688
+5387,2688
+5388,2688
+5389,2688
+5390,2688
+5391,2688
+5392,2688
+5393,2688
+5394,2688
+5395,2688
+5396,2688
+5397,2688
+5398,2688
+5399,2675
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
new file mode 100644
index 000000000..c88a17313
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test.cs
@@ -0,0 +1,204 @@
+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
new file mode 100644
index 000000000..c4c3f13f4
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test1.cs
@@ -0,0 +1,217 @@
+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
new file mode 100644
index 000000000..7670a8708
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test2.cs
@@ -0,0 +1,227 @@
+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_LimitSwitch.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_LimitSwitch.cs
index 59374a636..d3cc0b43c 100644
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_LimitSwitch.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_LimitSwitch.cs
@@ -25,9 +25,10 @@ public void OnExecute(StubManager stubManager)
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;
while (Bit != 0x0) //wait until Dryer Lid open
{
Bit = GetBit(FPGA1, F1_LS_01_Direct,4);
@@ -49,12 +50,12 @@ stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,4, 2); //Hard st
Bit = GetBit(FPGA1, F1_LS_01_Direct,5);
Thread.Sleep(100);
}
- stubManager.Write("\n--------2-Lid Close--------");
+ stubManager.Write("\n--------2-Lid Close--------\nCycle \t"+i);
stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,4, 2); //Hard stop hiZ motor
-
+}
}
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 c5bcb93e5..b059a170f 100644
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_SSR.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_SSR.cs
@@ -18,26 +18,25 @@ include "Tango_Defines_SSR.cs"
public void OnExecute(StubManager stubManager)
{
- //Write GPO_DRYER_SSR1_CTRL SSR/SSR no. 1
+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);
SetBit (FPGA2, F2_CTRL, 10, 1);
stubManager.Write("\tTesting SSR no. 1\t");
- Thread.Sleep(10000);
-
- // Request ----
-// UInt32 : ADCDevice
-
-// Response ----
-// UInt32 : ADCDevice
-// Int32 : SamplingInBits
-// Int32 : VoltageSamplingMv
-// String : Status
-// UInt32 : StatusWord
+ Thread.Sleep(1000);
+
+
var response1 = stubManager.Run<StubIntADCReadResponse>("StubIntADCReadRequest" ,16);
- stubManager.WriteLine(response1.SamplingInBits);
- stubManager.WriteLine(response1.VoltageSamplingMv);
-
+
+ temp=Convert.ToUInt32 (response1.SamplingInBits);
+ temp=temp*800*3*100;
+ temp=temp/(4096*95*50);
+ stubManager.Write("Current = "+ temp + "A\n");
+ temp=temp*60;
+ stubManager.Write("Voltage = "+ temp + " Volt\n");
SetBit (FPGA2, F2_CTRL, 10, 0);
@@ -51,22 +50,23 @@ var response1 = stubManager.Run<StubIntADCReadResponse>("StubIntADCReadRequest"
stubManager.WriteHex(response.TemperatureCMultBy100,4);
SetBit (FPGA2, F2_CTRL, 9, 1);
stubManager.Write("\tTesting SSR no. 2\t");
- Thread.Sleep(10000);
+ 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");
+ temp=temp*120;
+ stubManager.Write("Voltage = "+ temp + " Volt\n");
+
+
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
- response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,8); //
- stubManager.WriteHex(response.TemperatureCMultBy100,4);
- SetBit (FPGA2, F2_CTRL, 8, 1);
- stubManager.Write("\tTesting SSR no. 3\t");
- Thread.Sleep(10000);
- SetBit (FPGA2, F2_CTRL, 8, 0);
- response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,8); //
- stubManager.WriteHex(response.TemperatureCMultBy100,4);
- stubManager.Write("\n");
-
} \ 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
new file mode 100644
index 000000000..daadff892
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset.CSV
@@ -0,0 +1,658 @@
+24/06/2020 9:51:30
+Heating to 190
+24/06/2020 9:51:30
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 98
+ 98
+ 98
+ 98
+ 99
+ 99
+ 99
+ 100
+ 100
+ 100
+ 101
+ 102
+ 103
+ 103
+ 104
+ 104
+ 105
+ 105
+ 106
+ 106
+ 107
+ 107
+ 108
+ 108
+ 109
+ 109
+ 110
+ 110
+ 111
+ 111
+ 112
+ 112
+ 112
+ 113
+ 113
+ 114
+ 114
+ 115
+ 115
+ 116
+ 116
+ 116
+ 117
+ 117
+ 118
+ 118
+ 119
+ 119
+ 119
+ 120
+ 120
+ 121
+ 121
+ 121
+ 122
+ 122
+ 123
+ 123
+ 123
+ 124
+ 124
+ 125
+ 125
+ 125
+ 126
+ 126
+ 126
+ 127
+ 127
+ 127
+ 128
+ 128
+ 129
+ 129
+ 129
+ 130
+ 130
+ 130
+ 131
+ 131
+ 131
+ 132
+ 132
+ 132
+ 133
+ 133
+ 133
+ 134
+ 134
+ 134
+ 135
+ 135
+ 135
+ 136
+ 136
+ 136
+ 136
+ 137
+ 137
+ 137
+ 138
+ 138
+ 138
+ 139
+ 139
+ 139
+ 140
+ 140
+ 140
+ 140
+ 141
+ 141
+ 141
+ 142
+ 142
+ 142
+ 143
+ 143
+ 143
+ 144
+ 144
+ 144
+ 144
+ 145
+ 145
+ 145
+ 145
+ 146
+ 146
+ 146
+ 147
+ 147
+ 147
+ 147
+ 148
+ 148
+ 148
+ 148
+ 149
+ 149
+ 149
+ 149
+ 150
+ 150
+ 150
+ 150
+ 151
+ 151
+ 151
+ 151
+ 152
+ 152
+ 152
+ 152
+ 153
+ 153
+ 153
+ 153
+ 153
+ 154
+ 154
+ 154
+ 154
+ 155
+ 155
+ 155
+ 155
+ 156
+ 156
+ 156
+ 156
+ 156
+ 157
+ 157
+ 157
+ 157
+ 158
+ 158
+ 158
+ 158
+ 158
+ 159
+ 159
+ 159
+ 159
+ 160
+ 160
+ 160
+ 160
+ 160
+ 161
+ 161
+ 161
+ 161
+ 161
+ 162
+ 162
+ 162
+ 162
+ 162
+ 163
+ 163
+ 163
+ 163
+ 163
+ 164
+ 164
+ 164
+ 164
+ 164
+ 165
+ 165
+ 165
+ 165
+ 165
+ 166
+ 166
+ 166
+ 166
+ 166
+ 167
+ 167
+ 167
+ 167
+ 168
+ 168
+ 168
+ 168
+ 168
+ 168
+ 169
+ 169
+ 169
+ 169
+ 169
+ 170
+ 170
+ 170
+ 170
+ 170
+ 171
+ 171
+ 171
+ 171
+ 171
+ 171
+ 172
+ 172
+ 172
+ 172
+ 172
+ 173
+ 173
+ 173
+ 173
+ 173
+ 173
+ 174
+ 174
+ 174
+ 174
+ 174
+ 174
+ 175
+ 175
+ 175
+ 175
+ 175
+ 175
+ 176
+ 176
+ 176
+ 176
+ 176
+ 177
+ 177
+ 177
+ 177
+ 177
+ 177
+ 177
+ 177
+ 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
+ 182
+ 182
+ 182
+ 182
+ 182
+ 182
+ 182
+ 183
+ 183
+ 183
+ 183
+ 183
+ 183
+ 183
+ 184
+ 184
+ 184
+ 184
+ 184
+ 184
+ 185
+ 185
+ 185
+ 185
+ 185
+ 185
+ 186
+ 186
+ 186
+ 186
+ 186
+ 186
+ 186
+ 187
+ 187
+ 187
+ 187
+ 187
+ 187
+ 187
+ 188
+ 188
+ 188
+ 188
+ 188
+ 188
+ 188
+ 188
+ 189
+24/06/2020 9:57:48
+cooling down
+24/06/2020 9:59:48
+ 190
+ 190
+ 190
+ 190
+ 190
+ 190
+ 190
+ 190
+ 190
+ 190
+ 190
+ 190
+ 190
+ 190
+ 189
+ 189
+ 189
+ 189
+ 189
+ 189
+ 189
+ 188
+ 188
+ 188
+ 188
+ 188
+ 187
+ 187
+ 187
+ 187
+ 186
+ 186
+ 186
+ 186
+ 185
+ 185
+ 185
+ 184
+ 184
+ 184
+ 183
+ 183
+ 183
+ 182
+ 182
+ 182
+ 182
+ 181
+ 181
+ 180
+ 180
+ 180
+ 179
+ 179
+ 179
+ 178
+ 178
+ 178
+ 177
+ 177
+ 177
+ 176
+ 176
+ 176
+ 176
+ 175
+ 175
+ 175
+ 174
+ 174
+ 174
+ 173
+ 173
+ 173
+ 173
+ 172
+ 172
+ 172
+ 171
+ 171
+ 171
+ 171
+ 170
+ 170
+ 170
+ 169
+ 169
+ 169
+ 169
+ 168
+ 168
+ 168
+ 168
+ 167
+ 167
+ 167
+ 166
+ 166
+ 166
+ 166
+ 165
+ 165
+ 165
+ 165
+ 164
+ 164
+ 164
+ 164
+ 163
+ 163
+ 163
+ 163
+ 163
+ 162
+ 162
+ 162
+ 162
+ 161
+ 161
+ 161
+ 161
+ 161
+ 160
+ 160
+ 160
+ 160
+ 159
+ 159
+ 159
+ 159
+ 159
+ 158
+ 158
+ 158
+ 158
+ 158
+ 158
+ 157
+ 157
+ 157
+ 157
+ 157
+ 156
+ 156
+ 156
+ 156
+ 156
+ 156
+ 155
+ 155
+ 155
+ 155
+ 155
+ 154
+ 154
+ 154
+ 154
+ 154
+ 154
+ 153
+ 153
+ 153
+ 153
+ 153
+ 153
+ 153
+ 152
+ 152
+ 152
+ 152
+ 152
+ 152
+ 152
+ 151
+ 151
+ 151
+ 151
+ 151
+ 151
+ 151
+ 150
+ 150
+ 150
+ 150
+ 150
+ 150
+ 150
+ 149
+ 149
+ 149
+ 149
+ 149
+ 149
+ 149
+ 148
+ 148
+ 148
+ 148
+ 148
+ 148
+ 148
+ 148
+ 148
+ 147
+ 147
+ 147
+ 147
+ 147
+ 147
+ 147
+ 147
+ 147
+ 146
+ 146
+ 146
+ 146
+ 146
+ 146
+ 146
+ 146
+ 146
+ 145
+ 145
+ 145
+ 145
+ 145
+ 145
+ 145
+ 145
+ 145
+ 144
+ 144
+ 144
+ 144
+ 144
+ 144
+ 144
+ 144
+ 144
+ 144
+ 143
+ 143
+ 143
+ 143
+ 143
+ 143
+ 143
+ 143
+ 143
+ 143
+ 142
+ 142
+ 142
+ 142
+ 142
+ 142
+ 142
+ 142
+ 142
+ 142
+ 142
+ 142
+ 141
+ 141
+ 141
+ 141
+ 141
+ 141
+ 141
+ 141
+ 141
+ 141
+ 140
+ 140
+ 140
+ 140
+ 140
+ 140
+ 140
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
new file mode 100644
index 000000000..bd92ea498
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_motor_test.cs
@@ -0,0 +1,29 @@
+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/GPO_Blower_PWM.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/GPO_Blower_PWM.cs
index 8ac0d41dc..de04260fa 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
@@ -14,14 +14,15 @@ 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
@@ -29,18 +30,30 @@ public void OnExecute(StubManager stubManager)
- const int LOW = 50;//0 - 100%
+ const int LOW = 70;//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(4000);
+ Thread.Sleep(1000);
RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg8, 0);
- stubManager.Write("\nFan5 Speed-");
- stubManager.WriteHex(RetVal.Value,4);
+ 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);
+ }
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/test.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test.csv
new file mode 100644
index 000000000..a31cc8341
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test.csv
@@ -0,0 +1,1795 @@
+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
new file mode 100644
index 000000000..9be6f1ec6
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test1.cs
@@ -0,0 +1,78 @@
+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
new file mode 100644
index 000000000..ed306d345
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test1.csv
@@ -0,0 +1,345 @@
+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
new file mode 100644
index 000000000..756c780f4
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test12.csv
@@ -0,0 +1,283 @@
+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
new file mode 100644
index 000000000..7344cf879
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test13.csv
@@ -0,0 +1,290 @@
+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
new file mode 100644
index 000000000..82a9b98c3
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test14.csv
@@ -0,0 +1,224 @@
+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
new file mode 100644
index 000000000..7099494c8
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test15.csv
@@ -0,0 +1,181 @@
+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
new file mode 100644
index 000000000..a5743e552
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test16.csv
@@ -0,0 +1,231 @@
+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
new file mode 100644
index 000000000..ba03e113f
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test2.csv
@@ -0,0 +1,271 @@
+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
new file mode 100644
index 000000000..91ae72e87
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test3.csv
@@ -0,0 +1,127 @@
+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
index d2b36b111..c9945fb1e 100644
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test_dryer_heater.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test_dryer_heater.cs
@@ -9,10 +9,83 @@ 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<5;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();
@@ -29,8 +102,8 @@ processParameters.HeadZone3Temp = 0;
processParameters.HeadZone4Temp = 0;
processParameters.HeadZone5Temp = 0;
processParameters.HeadZone6Temp = 0;
-processParameters.DryerAirFlow = 0;
-processParameters.DryerZone1Temp = 100;
+processParameters.DryerAirFlow = 5;
+processParameters.DryerZone1Temp = 190;
processParameters.DryerZone2Temp = 0;
processParameters.DryerZone3Temp = 0;
processParameters.DryerBufferLength = 0;
@@ -53,5 +126,49 @@ 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
new file mode 100644
index 000000000..92c50a57e
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_In_Test.cs
@@ -0,0 +1,34 @@
+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_test.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_test.cs
new file mode 100644
index 000000000..6d71a9ac3
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_test.cs
@@ -0,0 +1,32 @@
+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/LTFU/LTFU_Right_Position.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Right_Position.cs
new file mode 100644
index 000000000..6730fe86c
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Right_Position.cs
@@ -0,0 +1,93 @@
+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
+
+
+
+
+
+
+
+
+
+
+
+
+
+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,4);
+ stubManager.Write("\n");
+
+
+//----------------------------------------- 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=350;
+
+ Thread.Sleep(100);
+ }
+ stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,17, 3); //hold Ldancer high z
+
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,17, (x_GET_PARAM | x_ABS_POS)<<24, 0, 0);
+ response.RecivedData=response.RecivedData & 0x00ffffff;
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\n");
+
+
+
+
+} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Right_Position1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Right_Position1.cs
new file mode 100644
index 000000000..c578c8152
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Right_Position1.cs
@@ -0,0 +1,104 @@
+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
+
+
+
+
+
+
+
+
+
+
+
+
+
+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 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_Right_Position2.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Right_Position2.cs
new file mode 100644
index 000000000..ebd2cf414
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Right_Position2.cs
@@ -0,0 +1,145 @@
+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/MidTank/Calibrate_Midtank_pressure_sensors.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Calibrate_Midtank_pressure_sensors.cs
index 9af524c88..7c0243c49 100644
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Calibrate_Midtank_pressure_sensors.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Calibrate_Midtank_pressure_sensors.cs
@@ -12,7 +12,7 @@ using Tango.PMR.EmbeddedParameters;
using Tango.Stubs;
//----------------------
-const double MIN_SLOP=0.8;
+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;
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/DO_NOT_WORK_New_Calibrate_Midtank_pressure_sensors.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/DO_NOT_WORK_New_Calibrate_Midtank_pressure_sensors.cs
new file mode 100644
index 000000000..254a3143b
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/DO_NOT_WORK_New_Calibrate_Midtank_pressure_sensors.cs
@@ -0,0 +1,450 @@
+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 [,] 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)
+{
+ Int32 midtankno = 0;
+ double Slop;
+ double Zero_Point;
+
+
+ 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")+".LOG";
+ stubManager.Write(File_name);
+ stubManager.WriteToFile(File_name,"MidTank S/N:" + Machine_SN);
+
+// 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 response1 = stubManager.ShowResponseWindow("Enter Midtank number to calibrate (1-8):", "");
+ stubManager.WriteLine(response1);
+ midtankno = Int32.Parse(response1);
+ stubManager.WriteToFile(File_name,"MidTank Number:\t" + response1);
+
+
+
+
+ string box_msg = "Please Insert cartridge ";
+// string box_title = "Midatnk empty";
+// MessageBox.Show(box_msg, box_title);
+ MessageBox.Show(box_msg);
+
+ open_valve(midtankno,1,1) ; //open Air valve
+ open_valve(midtankno,0,1) ; //open Ink valve
+
+
+
+
+
+
+
+
+
+
+ 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);
+
+
+
+ }
+
+
+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;
+ }
+//strat mat
+
+//--------------------------------
+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;
+}
+
+
+
+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/midtanksetparams1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/midtanksetparams1.cs
new file mode 100644
index 000000000..d3aa81e83
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/midtanksetparams1.cs
@@ -0,0 +1,151 @@
+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/PowerStep01/Motor_GMotor_Get_Param_Powerstep01_rev2.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Motor_GMotor_Get_Param_Powerstep01_rev2.cs
new file mode 100644
index 000000000..505444080
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Motor_GMotor_Get_Param_Powerstep01_rev2.cs
@@ -0,0 +1,292 @@
+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/RTFU/RTFU_SSI1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/RTFU/RTFU_SSI1.cs
new file mode 100644
index 000000000..f448e0971
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/RTFU/RTFU_SSI1.cs
@@ -0,0 +1,93 @@
+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
new file mode 100644
index 000000000..c52424b2f
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/WHS/WHS_waste_Tank_Calibration_Save_V0.cs
@@ -0,0 +1,90 @@
+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
new file mode 100644
index 000000000..6e7617cc0
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/WHS/fan1-4.cs
@@ -0,0 +1,28 @@
+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=80;
+
+ // 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
+
+
+
+} \ 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
index d5c98e2cd..c365c4884 100644
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Blower.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Blower.cs
@@ -16,6 +16,6 @@ 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
+ // 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
new file mode 100644
index 000000000..740f0778d
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Blower_Data.cs
@@ -0,0 +1,28 @@
+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/Defines/Blowe_RMO_LOG.CSV b/Software/Stubs Collection/stubs/Scripts/Defines/Blowe_RMO_LOG.CSV
new file mode 100644
index 000000000..6473707c7
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Defines/Blowe_RMO_LOG.CSV
@@ -0,0 +1,47 @@
+,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
new file mode 100644
index 000000000..703d34ae9
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Dispenser_setup.cs
@@ -0,0 +1,1415 @@
+
+//--------------------------------------------------------------------------------
+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/Jig_Tester/Dryer_Jig.cs b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Dryer_Jig.cs
index 01a3fa828..5f5c970c1 100644
--- a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Dryer_Jig.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Dryer_Jig.cs
@@ -278,7 +278,7 @@ int Test_Load_Arm()
}
Units_status[5,1]="Pass";
- DialogResult result2 = MessageBox.Show("Did Arm Motor arrive to mecahnicl stopper ?", "Warning",MessageBoxButtons.YesNo);
+ 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";
@@ -317,7 +317,7 @@ int Test_Load_Arm()
}
stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3);
- DialogResult result3 = MessageBox.Show("Did Arm Motor make 30 rounds?", "Warning",MessageBoxButtons.YesNo);
+ 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";
diff --git a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/JIG_TESTER.cs b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/JIG_TESTER.cs
index 4f26d545f..7841b09eb 100644
--- a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/JIG_TESTER.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/JIG_TESTER.cs
@@ -36,7 +36,7 @@ const int Winder =0 ;
const int LTFU =1 ;
string path;
-string path1="C:\\Jig_Log\\";;
+string path1="C:\\Jig_Log\\";
bool BlinkOn = false;
bool timer_started = false;
@@ -482,7 +482,7 @@ public void OnExecute(StubManager stubManager)
try
{
disable_test();
- var longRunningTask = await NewDyeHead_test(setLabel1TextSafe, _cancellationTokenSource.Token, SN_TexstBox.Text ,Location_TexstBox.Text );
+//mf var longRunningTask = await NewDyeHead_test(setLabel1TextSafe, _cancellationTokenSource.Token, SN_TexstBox.Text ,Location_TexstBox.Text );
}
catch (OperationCanceledException)
{
@@ -490,13 +490,13 @@ public void OnExecute(StubManager stubManager)
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);//????????????????????
+ 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");
}
@@ -603,7 +603,7 @@ public void OnExecute(StubManager stubManager)
try
{
disable_test();
- var longRunningTask = await New_Mixer_test(setLabel1TextSafe, _cancellationTokenSource.Token, SN_TexstBox.Text ,Location_TexstBox.Text );
+ var longRunningTask = await New_Mixer_test(setLabel1TextSafe, _cancellationTokenSource.Token, SN_TexstBox.Text ,Location_TexstBox.Text );
}
catch (OperationCanceledException)
{
diff --git a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/JIG_TESTER1.cs b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/JIG_TESTER1.cs
index 7b7fd452d..c484fc39f 100644
--- a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/JIG_TESTER1.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/JIG_TESTER1.cs
@@ -361,6 +361,14 @@ PN_TexstBox.TextChanged += (_,__)=>
{
string temp;
+
+ if (SN_TexstBox.Text.Length!=15)
+ return;
+
+
+ if (PN_TexstBox.Text.Contains("-"))
+
+ {
temp=PN_TexstBox.Text.Substring(0, PN_TexstBox.Text.IndexOf("-"));
disable_test();
if (SN_TexstBox.Text.Length!=15)
@@ -391,7 +399,7 @@ PN_TexstBox.TextChanged += (_,__)=>
// case "AM00281": // Mixer
// Mixer_btm.Enabled= true;
// break;
-
+ }
}
@@ -400,12 +408,15 @@ PN_TexstBox.TextChanged += (_,__)=>
{
string temp;
- temp=PN_TexstBox.Text.Substring(0, PN_TexstBox.Text.IndexOf("-"));
- disable_test();
- if (SN_TexstBox.Text.Length!=15)
+ if (SN_TexstBox.Text.Length!=15)
return;
- switch (temp)
+ if (PN_TexstBox.Text.Contains("-"))
{
+
+ temp=PN_TexstBox.Text.Substring(0, PN_TexstBox.Text.IndexOf("-"));
+ disable_test();
+ switch (temp)
+ {
case "AM00315": //DyeHead
NewDyeHead_btm.Enabled= true;
break;
@@ -431,8 +442,8 @@ PN_TexstBox.TextChanged += (_,__)=>
// Mixer_btm.Enabled= true;
// break;
+ }
}
-
};
//-----------------------------------------
Winder_btm.Click += async(_,__) =>
@@ -596,13 +607,12 @@ PN_TexstBox.TextChanged += (_,__)=>
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);//????????????????????
+ 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");
}
diff --git a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/LTFU_Jig.cs b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/LTFU_Jig.cs
index 2d50bab45..3f9f2a346 100644
--- a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/LTFU_Jig.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/LTFU_Jig.cs
@@ -332,19 +332,20 @@ int Test_DANCER_LTFU()
return 9;
}
- else
- {
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> 4000) || (temp_left_before <200))
+ 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)
{
@@ -357,7 +358,7 @@ int Test_DANCER_LTFU()
if (temp_right_after>temp_right_before)
temp_right_before=temp_right_before+0x4000;
temp_right_before=temp_right_before-temp_right_after;
- if ((temp_right_before< 4000) && (temp_right_before >200))
+ if ((temp_right_before< 5000) && (temp_right_before >200))
{
Units_status[8,1]="Pass";
stubManager.Write("LDANCER_Right_SSI\tPass\n");
@@ -454,10 +455,10 @@ int Test_DANCER_LTFU()
stubManager.Write("temp_right_before="+temp_right_before + "\ttemp_right_after="+temp_right_after +"\n");
- if (temp_right_after>temp_right_before)
- temp_right_before=temp_right_before+0x4000;
- temp_right_before=temp_right_before-temp_right_after;
- if ((temp_right_before< 4000) && (temp_right_before >200))
+ 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");
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
index 4d58caa14..22cf14f3e 100644
--- a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/New_DyeHead_Jig.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/New_DyeHead_Jig.cs
@@ -86,7 +86,7 @@ string [,] Units_status_New_DyeHead = new string[New_DyeHead_UNDER_TEST,2] {
{"LS_OUT_UP","Not Test"}, //45
{"LS_OUT_DN","Not Test"}, //46
- {"LS_UPPER_DN","Not Test"}, //47
+ {"LS_MAGNET_DN","Not Test"}, //47
};
@@ -127,7 +127,7 @@ public Task<decimal> NewDyeHead_test( Action<string> settext, CancellationToken
settext("Test heaters &pt100");
Test_new_heaters_pt100 ();
settext("Test Head EEPROM");
- Test_Head_EEPROM(SN); //pass
+ Test_Head_EEPROM(SN); //pass
settext("Test Actuator In");
Test_Actuator_in(); //pass
settext("Test Actuator Out");
@@ -148,33 +148,37 @@ public Task<decimal> NewDyeHead_test( Action<string> settext, CancellationToken
{
Int32 temp;
int i=0;
-
- 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
+ stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf000); //mov ACTUATOR-IN Dn
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
+
+
+// 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);
@@ -204,35 +208,37 @@ public Task<decimal> NewDyeHead_test( Action<string> settext, CancellationToken
{
Int32 temp;
int i=0;
-
- 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
+ stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf100); //mov ACTUATOR-OUT down
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
+
+// 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);
@@ -272,19 +278,21 @@ public Task<decimal> NewDyeHead_test( Action<string> settext, CancellationToken
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[47,1]="Fail";
- stubManager.Write("LS_UPPER of Magnet is close\n");
- }
- DialogResult result = MessageBox.Show("Make shure, Magnet is open", "Warning",MessageBoxButtons.YesNo);
+ 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");
@@ -300,20 +308,11 @@ public Task<decimal> NewDyeHead_test( Action<string> settext, CancellationToken
}
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.YesNo);
if(result2 == DialogResult.No || i==200)
{
Units_status[37,1]="Fail";
- // Units_status[39,1]="Fail";
stubManager.Write("LS_REAR Not calibrate\n");
- return 0;
}
else
Units_status[37,1]="Pass";
@@ -329,24 +328,18 @@ public Task<decimal> NewDyeHead_test( Action<string> settext, CancellationToken
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.YesNo);
if(result3 == DialogResult.No || i==200)
{
Units_status[38,1]="Fail";
stubManager.Write("LS_FRONT Not calibrate\n");
-// return 0;
}
-// else
- Units_status[39,1]="Pass";
- Units_status[38,1]="Pass";
-
+ 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);
@@ -355,6 +348,15 @@ public Task<decimal> NewDyeHead_test( Action<string> settext, CancellationToken
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)
{
@@ -362,22 +364,10 @@ public Task<decimal> NewDyeHead_test( Action<string> settext, CancellationToken
stubManager.Write("LS_UPPER of 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";
Units_status[47,1]="Pass";
- Units_status[38,1]="Pass";
-
- stubManager.Write("Magnet is close\n");
+ stubManager.Write("LS_UPPER of Magnet is close\n");
return 0;
-}
-
-
+ }
//------------------------------------
public int Test_new_heaters_pt100()
{
@@ -391,7 +381,7 @@ public int Test_new_heaters_pt100()
for (Int32 i = 0; i < 12; i++) //12
{
- Int32 tdly=10000;
+ Int32 tdly=20000;
//---------------------- get tempurature of heaters----------------------------
temp= 12+i/2+(i%2)*8; //HZone_1=12
//HZone_2=20
@@ -469,7 +459,7 @@ public int Test_new_heaters_pt100()
ftemp1 = (float)response5.TemperatureCMultBy100;
ftemp1 = ftemp1 / 100;
- if (((ftemp1-ftemp)<5)|| ((ftemp1-ftemp)>35))
+ if (((ftemp1-ftemp)<10)|| ((ftemp1-ftemp)>45))
{
Units_status[i,1]="Fail";
}
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
index 14ac034fc..076f4ce68 100644
--- a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/New_Mixer_Jig.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/New_Mixer_Jig.cs
@@ -92,7 +92,7 @@ public int Test_New_Mixer_heater_pt100()
float ftemp=0;
float ftemp1=0;
float current=0;
- Int32 tdly=10000;
+ Int32 tdly=15000;
Double current_sense;
//---------------------- get tempurature of mixer----------------------------
@@ -101,6 +101,7 @@ public int Test_New_Mixer_heater_pt100()
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";
diff --git a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Winder_Jig.cs b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Winder_Jig.cs
index f1f3cd357..3ad16cb5e 100644
--- a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Winder_Jig.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Winder_Jig.cs
@@ -37,7 +37,8 @@ public Task<decimal> Winder_test( Action<string> settext, CancellationToken canc
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");
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
index 4188fe36b..b02a6072c 100644
--- 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
@@ -104,10 +104,10 @@ 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);
+//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);
@@ -187,11 +187,11 @@ 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 )
+ if( response.RecivedData > 0x15 && response.RecivedData < 0x1c )
stubManager.Write("\t\tDual_Driver");
- else if ( response.RecivedData > 0x0b)
+ else if ( response.RecivedData > 0x0b && response.RecivedData < 0x12 )
stubManager.Write("\t\tVolage_Driver");
- else if ( response.RecivedData > 8 )
+ else if ( response.RecivedData > 8 && response.RecivedData < 0x0a)
stubManager.Write("\t\tCurrent_Driver");
else
stubManager.Write("\t\tNo_Driver");
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
new file mode 100644
index 000000000..b02a6072c
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing_powerstep01_rev10.cs
@@ -0,0 +1,266 @@
+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/SS Head Sensor board.cs b/Software/Stubs Collection/stubs/Scripts/SS Head Sensor board.cs
new file mode 100644
index 000000000..102029cf2
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/SS Head Sensor board.cs
@@ -0,0 +1,22 @@
+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/WHS_Test_EEPROM.cs b/Software/Stubs Collection/stubs/Scripts/WHS_Test_EEPROM.cs
new file mode 100644
index 000000000..88de4de01
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/WHS_Test_EEPROM.cs
@@ -0,0 +1,135 @@
+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/blower_Q.cs b/Software/Stubs Collection/stubs/Scripts/blower_Q.cs
index cb4682531..f6b595873 100644
--- a/Software/Stubs Collection/stubs/Scripts/blower_Q.cs
+++ b/Software/Stubs Collection/stubs/Scripts/blower_Q.cs
@@ -18,10 +18,11 @@ public void OnExecute(StubManager stubManager)
// Response ----
// Double : Progress
+//stop loop
+/*var response1 =*/ stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan1*/0x3E8, /*Head_Q=*/2500); //
-
-//fan test
-/*var response1 =*/ stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan1*/0x3E7, /*Head_Q=*/9); //
+//enable loop
+/*var response1 =*/ stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan1*/0x3E7, /*Head_Q=*/5); //
//500=1F4
//250=FA
diff --git a/Software/Stubs Collection/stubs/Scripts/embeddedparametersbuild.cs b/Software/Stubs Collection/stubs/Scripts/embeddedparametersbuild.cs
new file mode 100644
index 000000000..6d52c774f
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/embeddedparametersbuild.cs
@@ -0,0 +1,178 @@
+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();
+
+configurationParameters.BreakSensorLimit = 10;
+
+//how many samples to collect in diagnostics before sending
+configurationParameters.DiagnosticCollectionLimit = 3;
+
+//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 = 22;
+configurationParameters.OpenValveTimeout = 22;
+
+//backlash after filling - target pressure, timoeout, time staps (speed will be added in general parameters)
+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 = 952; //no more than 1000
+configurationParameters.DispenserBuildPressureLimit = 0.8;
+configurationParameters.DispenserBuildPressureTimeout = 180000;
+configurationParameters.DispenserBuildPressureLag = 50;
+
+//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 = 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.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
+
+configurationParameters.IDSLeftCleaningMotorSpeed = 49;
+configurationParameters.IDSRightCleaningMotorSpeed = 49;
+
+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 SetAutoFillMode = new Double();
+SetAutoFillMode = 0.0;
+configurationParameters.GeneralParameters.Add(SetAutoFillMode);
+
+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);
+
+}
+
+/*
+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/motormov.cs b/Software/Stubs Collection/stubs/Scripts/motormov.cs
new file mode 100644
index 000000000..94862a76a
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/motormov.cs
@@ -0,0 +1,23 @@
+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/read write main eeprom fixed.cs b/Software/Stubs Collection/stubs/Scripts/read write main eeprom fixed.cs
new file mode 100644
index 000000000..0f3ca238e
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/read write main eeprom fixed.cs
@@ -0,0 +1,45 @@
+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
new file mode 100644
index 000000000..d418d5e0e
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/read write main eeprom.cs
@@ -0,0 +1,45 @@
+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/waste level.cs b/Software/Stubs Collection/stubs/Scripts/waste level.cs
new file mode 100644
index 000000000..a72f2a512
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/waste level.cs
@@ -0,0 +1,71 @@
+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
new file mode 100644
index 000000000..b70eb5023
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/waste_level2.cs
@@ -0,0 +1,85 @@
+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/whs eeprom temporary 2.cs b/Software/Stubs Collection/stubs/Scripts/whs eeprom temporary 2.cs
new file mode 100644
index 000000000..b5c7af2b1
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/whs eeprom temporary 2.cs
@@ -0,0 +1,31 @@
+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
new file mode 100644
index 000000000..65dcd499e
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/whs eeprom temporary.cs
@@ -0,0 +1,42 @@
+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
new file mode 100644
index 000000000..f9e3cbd22
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/whs fans stop.cs
@@ -0,0 +1,28 @@
+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/embeddedparametersbuild.cs b/Software/Stubs Collection/stubs/embeddedparametersbuild.cs
index 80509b697..6d2b6298e 100644
--- a/Software/Stubs Collection/stubs/embeddedparametersbuild.cs
+++ b/Software/Stubs Collection/stubs/embeddedparametersbuild.cs
@@ -76,8 +76,13 @@ configurationParameters.IDSCleaningSpeed = 800;
configurationParameters.IDSCleaningStopBeforeSegmentTime = 10000; //end of presegemnt
configurationParameters.IDSCleaningStartSprayPreSegmentTime =2000; //beginning of presegment
-configurationParameters.IDSLeftCleaningMotorSpeed = 48;
-configurationParameters.IDSRightCleaningMotorSpeed = 48;
+int Tup=3,Tdelay1=5,Tdelay2=20;
+/* Tup = LeftRockerSpeed/100;
+ Tdelay1 = LeftRockerSpeed%100;
+ Tdelay2 = RightRockerSpeed;
+*/
+configurationParameters.IDSLeftCleaningMotorSpeed = Tup*100+Tdelay1;
+configurationParameters.IDSRightCleaningMotorSpeed = Tdelay2;
configurationParameters.SwitchToIdleTimeinSeconds = 3600;
configurationParameters.IdleDrierTemperature = 80;
@@ -101,7 +106,7 @@ configurationParameters.GeneralParameters.Add(checkCurrentAlarms);
/*3*/
Double checkTamperAlarms = new Double();
-checkTamperAlarms = 1.0;
+checkTamperAlarms = 0.0;
configurationParameters.GeneralParameters.Add(checkTamperAlarms);
/*4*/
diff --git a/Software/Stubs Collection/stubs/read main card eeprom.cs b/Software/Stubs Collection/stubs/read main card eeprom.cs
new file mode 100644
index 000000000..3ba77a86b
--- /dev/null
+++ b/Software/Stubs Collection/stubs/read main card eeprom.cs
@@ -0,0 +1,25 @@
+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/stop whs blower control.cs b/Software/Stubs Collection/stubs/stop whs blower control.cs
new file mode 100644
index 000000000..b2bfbe23e
--- /dev/null
+++ b/Software/Stubs Collection/stubs/stop whs blower control.cs
@@ -0,0 +1,23 @@
+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/teach board 2.tpf b/Software/Stubs Collection/stubs/technician view files/teach board 2.tpf
new file mode 100644
index 000000000..ae2a5fcbc
--- /dev/null
+++ b/Software/Stubs Collection/stubs/technician view files/teach board 2.tpf
@@ -0,0 +1,3099 @@
+<?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>158.38</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>168.01</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>170.76</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>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>81.48</CurrentValue>
+ <IsActive>true</IsActive>
+ <IsRampingUp>true</IsRampingUp>
+ <IsInSetPoint>false</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>69.44</CurrentValue>
+ <IsActive>true</IsActive>
+ <IsRampingUp>true</IsRampingUp>
+ <IsInSetPoint>false</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>65.46</CurrentValue>
+ <IsActive>true</IsActive>
+ <IsRampingUp>true</IsRampingUp>
+ <IsInSetPoint>false</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>75.83</CurrentValue>
+ <IsActive>true</IsActive>
+ <IsRampingUp>true</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>90.85</CurrentValue>
+ <IsActive>true</IsActive>
+ <IsRampingUp>true</IsRampingUp>
+ <IsInSetPoint>false</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>94.97</CurrentValue>
+ <IsActive>true</IsActive>
+ <IsRampingUp>true</IsRampingUp>
+ <IsInSetPoint>false</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>140</SetPoint>
+ <CurrentValue>100.64999999999999</CurrentValue>
+ <IsActive>true</IsActive>
+ <IsRampingUp>true</IsRampingUp>
+ <IsInSetPoint>false</IsInSetPoint>
+ </HeaterState>
+ <SetPoint>140</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>140</SetPoint>
+ <CurrentValue>102.00999999999999</CurrentValue>
+ <IsActive>true</IsActive>
+ <IsRampingUp>true</IsRampingUp>
+ <IsInSetPoint>false</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>98.399999999999991</CurrentValue>
+ <IsActive>true</IsActive>
+ <IsRampingUp>true</IsRampingUp>
+ <IsInSetPoint>false</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>99.46</CurrentValue>
+ <IsActive>true</IsActive>
+ <IsRampingUp>true</IsRampingUp>
+ <IsInSetPoint>false</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>80.37</CurrentValue>
+ <IsActive>true</IsActive>
+ <IsRampingUp>true</IsRampingUp>
+ <IsInSetPoint>false</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>93.11999999999999</CurrentValue>
+ <IsActive>true</IsActive>
+ <IsRampingUp>true</IsRampingUp>
+ <IsInSetPoint>false</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>98.38</CurrentValue>
+ <IsActive>true</IsActive>
+ <IsRampingUp>true</IsRampingUp>
+ <IsInSetPoint>false</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>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="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>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>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>
+ <DecimalPlaces>2</DecimalPlaces>
+ <Duration>1275</Duration>
+ <Min>0</Min>
+ <Max>100</Max>
+ <UseAutoRange>true</UseAutoRange>
+ </TechItem>
+ <TechItem xsi:type="MonitorItem">
+ <ID>85d4727d-4be2-4854-8584-5fcb0a1bb19f</ID>
+ <Left>545</Left>
+ <Top>12.154867256637203</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>754</Left>
+ <Top>12.154867256637203</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>
+ </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>
+ <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>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>
+ <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>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>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>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>803</Left>
+ <Top>569.80530973451619</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>
+ </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>
+ <Min>0</Min>
+ <Max>300</Max>
+ <UseAutoRange>true</UseAutoRange>
+ </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>
+ <Min>0</Min>
+ <Max>300</Max>
+ <UseAutoRange>true</UseAutoRange>
+ </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>
+ <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>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>
+ <Min>0</Min>
+ <Max>300</Max>
+ <UseAutoRange>true</UseAutoRange>
+ </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>
+ <Min>0</Min>
+ <Max>300</Max>
+ <UseAutoRange>true</UseAutoRange>
+ </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>
+ <Min>0</Min>
+ <Max>300</Max>
+ <UseAutoRange>true</UseAutoRange>
+ </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>
+ <Min>0</Min>
+ <Max>300</Max>
+ <UseAutoRange>true</UseAutoRange>
+ </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>
+ <Min>0</Min>
+ <Max>100</Max>
+ <UseAutoRange>true</UseAutoRange>
+ </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>
+ <Min>0</Min>
+ <Max>300</Max>
+ <UseAutoRange>true</UseAutoRange>
+ </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>
+ <Min>0</Min>
+ <Max>300</Max>
+ <UseAutoRange>true</UseAutoRange>
+ </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>
+ <Min>0</Min>
+ <Max>300</Max>
+ <UseAutoRange>true</UseAutoRange>
+ </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>
+ <Min>0</Min>
+ <Max>300</Max>
+ <UseAutoRange>true</UseAutoRange>
+ </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>
+ <Min>0</Min>
+ <Max>300</Max>
+ <UseAutoRange>true</UseAutoRange>
+ </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>
+ <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>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>
+ <DecimalPlaces>2</DecimalPlaces>
+ <Duration>419</Duration>
+ <Min>0</Min>
+ <Max>100</Max>
+ <UseAutoRange>true</UseAutoRange>
+ </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>
+ <Min>0</Min>
+ <Max>100</Max>
+ <UseAutoRange>true</UseAutoRange>
+ </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="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>
+ <Min>0</Min>
+ <Max>100</Max>
+ <UseAutoRange>true</UseAutoRange>
+ </TechItem>
+ <TechItem xsi:type="MonitorItem">
+ <ID>034716b2-eb98-4a27-a32e-2a1217f0a6b1</ID>
+ <Left>1304.2423551681657</Left>
+ <Top>356.67599371577739</Top>
+ <Width>209</Width>
+ <Height>104.08978580509745</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>
+ <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>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>
+ <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>5</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
new file mode 100644
index 000000000..a6bfa792c
--- /dev/null
+++ b/Software/Stubs Collection/stubs/technician view files/tech board 1.tpf
@@ -0,0 +1,2974 @@
+<?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/whs control loop disable.cs b/Software/Stubs Collection/stubs/whs control loop disable.cs
new file mode 100644
index 000000000..01bd67d0a
--- /dev/null
+++ b/Software/Stubs Collection/stubs/whs control loop disable.cs
@@ -0,0 +1,26 @@
+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