aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Stubs Collection
diff options
context:
space:
mode:
authorShlomo Hecht <shlomo@twine-s.com>2020-01-27 09:18:58 +0200
committerShlomo Hecht <shlomo@twine-s.com>2020-01-27 09:18:58 +0200
commit1d4d327571d4c0c9f4e17411551bd4dae1e2aed0 (patch)
tree54cfe3cb1d789c05b7270b07904d0ead44aa236a /Software/Stubs Collection
parent31096fb03e434d52738b07acd881b87516c3c3d5 (diff)
downloadTango-1d4d327571d4c0c9f4e17411551bd4dae1e2aed0.tar.gz
Tango-1d4d327571d4c0c9f4e17411551bd4dae1e2aed0.zip
STUBS
Diffstat (limited to 'Software/Stubs Collection')
-rw-r--r--Software/Stubs Collection/stubs/Autohome_Control.cs30
-rw-r--r--Software/Stubs Collection/stubs/Create File System on the Drive - reset flash.cs17
-rw-r--r--Software/Stubs Collection/stubs/Dispenser ByPass - getout from loewer safety.cs46
-rw-r--r--Software/Stubs Collection/stubs/Dispenser ByPass - getout from upper safety.cs46
-rw-r--r--Software/Stubs Collection/stubs/EmbParam.cfgbin0 -> 249 bytes
-rw-r--r--Software/Stubs Collection/stubs/Head LS.cs31
-rw-r--r--Software/Stubs Collection/stubs/HeadCard_ADC.cs64
-rw-r--r--Software/Stubs Collection/stubs/Head_Card_I2C.cs66
-rw-r--r--Software/Stubs Collection/stubs/Head_Card_IO.cs160
-rw-r--r--Software/Stubs Collection/stubs/Head_EEPROM.cs135
-rw-r--r--Software/Stubs Collection/stubs/Head_card_PT100__Horizontal_Printing.cs59
-rw-r--r--Software/Stubs Collection/stubs/Head_card_PT100__Horizontal_Printing_new.cs87
-rw-r--r--Software/Stubs Collection/stubs/Head_card_PT100__Horizontal_Printing_new2.cs49
-rw-r--r--Software/Stubs Collection/stubs/Head_i2c_functions.cs27
-rw-r--r--Software/Stubs Collection/stubs/Heat I2C ACT test.cs33
-rw-r--r--Software/Stubs Collection/stubs/I2C_RW_Main_Card_EEPROM_Save_Main_SN.cs98
-rw-r--r--Software/Stubs Collection/stubs/I2C_RW_Main_EEPROM_AVI _support_string.cs109
-rw-r--r--Software/Stubs Collection/stubs/Motor_Get_Param_Horizontal_Printing2.cs22
-rw-r--r--Software/Stubs Collection/stubs/Progress_SetRapid.cs23
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Other/Read_Cartridge_Present.cs97
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Other/Tamper_sw.cs94
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Other/Tamper_switch.cs72
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Other/ssr9-chiller.cs38
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/fan.cs34
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_fan.cs90
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_valv1.cs47
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_valv1_disable.cs40
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing.cs215
-rw-r--r--Software/Stubs Collection/stubs/Scripts/NewSpeedSensor.cs45
-rw-r--r--Software/Stubs Collection/stubs/Scripts/new dispenser card GPIO.cs90
-rw-r--r--Software/Stubs Collection/stubs/Set loading arm center.cs22
-rw-r--r--Software/Stubs Collection/stubs/SetWindingRotations.cs27
-rw-r--r--Software/Stubs Collection/stubs/SetupDebugDisributors.cs79
-rw-r--r--Software/Stubs Collection/stubs/WD test.cs49
-rw-r--r--Software/Stubs Collection/stubs/alarm.cfg292
-rw-r--r--Software/Stubs Collection/stubs/embParamDownload.cs74
-rw-r--r--Software/Stubs Collection/stubs/embeddedparametersbuild.cs67
-rw-r--r--Software/Stubs Collection/stubs/embeddedparametersbuildand load.cs178
-rw-r--r--Software/Stubs Collection/stubs/head_card_fan_test.cs26
-rw-r--r--Software/Stubs Collection/stubs/moveloadarmback.cs29
-rw-r--r--Software/Stubs Collection/stubs/powestep01_change_mode.cs25
-rw-r--r--Software/Stubs Collection/stubs/technician view files/alpha.tpf2107
-rw-r--r--Software/Stubs Collection/stubs/technician view files/new head.tpf2815
-rw-r--r--Software/Stubs Collection/stubs/temp/EmbParam.cfgbin0 -> 252 bytes
-rw-r--r--Software/Stubs Collection/stubs/temp/embeddedparametersbuild.cs178
-rw-r--r--Software/Stubs Collection/stubs/test_reg_readback.cs20
46 files changed, 7934 insertions, 18 deletions
diff --git a/Software/Stubs Collection/stubs/Autohome_Control.cs b/Software/Stubs Collection/stubs/Autohome_Control.cs
new file mode 100644
index 000000000..597a70893
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Autohome_Control.cs
@@ -0,0 +1,30 @@
+using System;
+using System.Text;
+using System.Linq;
+using System.Drawing;
+using System.Diagnostics;
+using System.Windows.Forms;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+using Tango.PMR.Stubs;
+using Tango.Stubs;
+
+public void OnExecute(StubManager stubManager)
+{
+
+
+ProgressRequest progressRequest = new ProgressRequest();
+progressRequest.Amount = 0xAD;
+/*
+ AutoHoming_off = 0
+ AutoHoming_PowerOff = 1
+ AutoHoming_PowerOn_off = 2
+ AutoHoming_JobEnd_PowerOn_off = 3
+*/
+//USE 0 TO TURN OFF, 3 TO TURN ON
+progressRequest.Delay = 0;
+
+ var response = stubManager.Run<ProgressResponse>(progressRequest);
+
+} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Create File System on the Drive - reset flash.cs b/Software/Stubs Collection/stubs/Create File System on the Drive - reset flash.cs
new file mode 100644
index 000000000..d8b763ddd
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Create File System on the Drive - reset flash.cs
@@ -0,0 +1,17 @@
+using System;
+using System.Text;
+using System.Linq;
+using System.Drawing;
+using System.Diagnostics;
+using System.Windows.Forms;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+using Tango.PMR.Stubs;
+using Tango.Stubs;
+
+public void OnExecute(StubManager stubManager)
+{
+
+ var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xCF, 0xCF);//Create File System on the Drive
+} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Dispenser ByPass - getout from loewer safety.cs b/Software/Stubs Collection/stubs/Dispenser ByPass - getout from loewer safety.cs
new file mode 100644
index 000000000..34dce79fe
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Dispenser ByPass - getout from loewer safety.cs
@@ -0,0 +1,46 @@
+using System;
+using System.Text;
+using System.Linq;
+using System.Drawing;
+using System.Diagnostics;
+using System.Windows.Forms;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+using Tango.PMR.Stubs;
+using Tango.Stubs;
+
+public void OnExecute(StubManager stubManager)
+{
+ UInt32 Dispenser_ID = 3; //Software Dispensers 0..7, BP Dispensers 1..8 (4 for bp disp 5)
+
+ stubManager.Write("ByPass + TestRelay + read inputs ");
+ stubManager.WriteLine("");
+ var response = stubManager.Run<StubDispenserResponse>("StubDispenserRequest" ,Dispenser_ID, true, false, 0, 0);//ByPass + read inputs
+ stubManager.Write("MSB for Disp_UP, LSB for Disp_Down ");
+ stubManager.WriteHex((response.DispenserPosition),4);
+ stubManager.WriteLine("");
+ stubManager.Write("MSB for Realy_On, LSB for Over_Press ");
+ stubManager.WriteHex((response.InkWorningLevel),4);
+ stubManager.WriteLine("");
+ stubManager.WriteLine("----");
+ stubManager.WriteLine("");
+
+ stubManager.Run("StubMotorRunRequest" ,(Dispenser_ID + 6), true, 1200 );//Dispenser ID -> motor ID
+
+ Thread.Sleep(30000); //Sleep
+ stubManager.Run("StubMotorStopRequest" ,15, 3);
+
+ stubManager.Write("Remove ByPass ( + read inputs) ");
+ stubManager.WriteLine("");
+ response = stubManager.Run<StubDispenserResponse>("StubDispenserRequest" ,Dispenser_ID, false, false, 0, 0);// read inputs
+ stubManager.Write("MSB for Disp_UP, LSB for Disp_Down ");
+ stubManager.WriteHex((response.DispenserPosition),4);
+ stubManager.WriteLine("");
+ stubManager.Write("MSB for Realy_On, LSB for Over_Press ");
+ stubManager.WriteHex((response.InkWorningLevel),4);
+ stubManager.WriteLine("");
+ stubManager.WriteLine("----");
+ stubManager.WriteLine("");
+
+} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Dispenser ByPass - getout from upper safety.cs b/Software/Stubs Collection/stubs/Dispenser ByPass - getout from upper safety.cs
new file mode 100644
index 000000000..1887d433c
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Dispenser ByPass - getout from upper safety.cs
@@ -0,0 +1,46 @@
+using System;
+using System.Text;
+using System.Linq;
+using System.Drawing;
+using System.Diagnostics;
+using System.Windows.Forms;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+using Tango.PMR.Stubs;
+using Tango.Stubs;
+
+public void OnExecute(StubManager stubManager)
+{
+ UInt32 Dispenser_ID = 1; //Software Dispensers 0..7, BP Dispensers 1..8 (4 for bp disp 5)
+
+ stubManager.Write("ByPass + TestRelay + read inputs ");
+ stubManager.WriteLine("");
+ var response = stubManager.Run<StubDispenserResponse>("StubDispenserRequest" ,Dispenser_ID, true, false, 0, 0);//ByPass + read inputs
+ stubManager.Write("MSB for Disp_UP, LSB for Disp_Down ");
+ stubManager.WriteHex((response.DispenserPosition),4);
+ stubManager.WriteLine("");
+ stubManager.Write("MSB for Realy_On, LSB for Over_Press ");
+ stubManager.WriteHex((response.InkWorningLevel),4);
+ stubManager.WriteLine("");
+ stubManager.WriteLine("----");
+ stubManager.WriteLine("");
+
+ stubManager.Run("StubMotorRunRequest" ,(Dispenser_ID + 6), false, 1200 );//Dispenser ID -> motor ID
+
+ Thread.Sleep(30000); //Sleep
+ stubManager.Run("StubMotorStopRequest" ,15, 3);
+
+ stubManager.Write("Remove ByPass ( + read inputs) ");
+ stubManager.WriteLine("");
+ response = stubManager.Run<StubDispenserResponse>("StubDispenserRequest" ,Dispenser_ID, false, false, 0, 0);// read inputs
+ stubManager.Write("MSB for Disp_UP, LSB for Disp_Down ");
+ stubManager.WriteHex((response.DispenserPosition),4);
+ stubManager.WriteLine("");
+ stubManager.Write("MSB for Realy_On, LSB for Over_Press ");
+ stubManager.WriteHex((response.InkWorningLevel),4);
+ stubManager.WriteLine("");
+ stubManager.WriteLine("----");
+ stubManager.WriteLine("");
+
+} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/EmbParam.cfg b/Software/Stubs Collection/stubs/EmbParam.cfg
new file mode 100644
index 000000000..6482fc82b
--- /dev/null
+++ b/Software/Stubs Collection/stubs/EmbParam.cfg
Binary files differ
diff --git a/Software/Stubs Collection/stubs/Head LS.cs b/Software/Stubs Collection/stubs/Head LS.cs
new file mode 100644
index 000000000..b5c646649
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Head LS.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;
+
+/*HEAD CARD I/O
+
+Slave address 0x40 / 0x42 / 0x44 / 0x46
+
+-------------------------
+| Byte | WR | RD | CFG |
+-------------------------
+| Low | 02 | 00 | 06 |
+| High | 03 | 01 | 07 |
+-------------------------
+Example (42 Slave Address, 03 Write High Byte, D8 Set value (NA on read))
+stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD, 0x4203D8);
+*/
+public void OnExecute(StubManager stubManager)
+{
+ //Head LS
+ var response7 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD, 0x460100);
+ stubManager.WriteLineHex(response7.Progress,2);
+} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/HeadCard_ADC.cs b/Software/Stubs Collection/stubs/HeadCard_ADC.cs
new file mode 100644
index 000000000..e1e18089c
--- /dev/null
+++ b/Software/Stubs Collection/stubs/HeadCard_ADC.cs
@@ -0,0 +1,64 @@
+using System;
+using System.Text;
+using System.Linq;
+using System.Drawing;
+using System.Diagnostics;
+using System.Windows.Forms;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+using Tango.PMR.Stubs;
+using Tango.Stubs;
+
+
+//----------------------------------------- HEAD_ADC1_0x50
+//Maximum value: 1.3V, 1 LSB: 2500/4096 mA
+const UInt32 HEAD_CURRENT_ZONE_1 = 0;
+const UInt32 HEAD_CURRENT_ZONE_2 = 1;
+const UInt32 HEAD_CURRENT_ZONE_3 = 2;
+const UInt32 HEAD_CURRENT_ZONE_4 = 3;
+const UInt32 HEAD_CURRENT_ZONE_5 = 4;
+const UInt32 HEAD_CURRENT_ZONE_6 = 5;
+const UInt32 HEAD_CURRENT_ZONE_7 = 6;
+const UInt32 HEAD_CURRENT_ZONE_8 = 7;
+
+//----------------------------------------- HEAD_ADC2_0x54
+//Maximum value: 1.3V, 1 LSB: 2500/4096 mA
+const UInt32 HEAD_CURRENT_ZONE_9 = 8 ;
+const UInt32 HEAD_CURRENT_ZONE_10 = 9 ;
+const UInt32 HEAD_CURRENT_ZONE_11 = 10;
+const UInt32 HEAD_CURRENT_ZONE_12 = 11;
+
+//Maximum value: 2.1V, 1 LSB: 5000/4096 mA
+const UInt32 HEAD_CURRENT_HTIN_1 = 12;
+const UInt32 HEAD_CURRENT_HTIN_2 = 13;
+const UInt32 HEAD_CURRENT_HTIN_3 = 14;
+const UInt32 HEAD_CURRENT_HTIN_4 = 15;
+
+//----------------------------------------- HEAD_ADC3_0x56
+//Maximum value: 2.1V, 1 LSB: 5000/4096 mA
+const UInt32 HEAD_CURRENT_HTOT_1 = 16;
+const UInt32 HEAD_CURRENT_HTOT_2 = 17;
+const UInt32 HEAD_CURRENT_HTOT_3 = 18;
+const UInt32 HEAD_CURRENT_HTOT_4 = 19;
+
+//Maximum value: 1.7V, 1 LSB: 2500/4096 mA
+const UInt32 HEAD_CURRENT_MIXER = 20;
+
+//Maximum value: 2.34V, 1 LSB: 4.9 mA
+const UInt32 HEAD_CURRENT_HT_TOTAL = 21;
+
+//Maximum value: 0.5V, 1 LSB: 2500/4096 mA
+const UInt32 HEAD_CURRENT_VALUE = 22;
+
+//Maximum value: (2.05 -2.3) V, 1 LSB: 27500/4096 mV
+const UInt32 HEAD_CURRENT_24V = 23;
+
+
+public void OnExecute(StubManager stubManager)
+{
+
+ var response = stubManager.Run<StubMidTankPressureSensorResponse>("StubMidTankPressureSensorRequest" ,0x8000 + HEAD_CURRENT_24V); // 0x8000 + Head ADC ID
+ stubManager.WriteLine(response.Pressure);
+
+} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Head_Card_I2C.cs b/Software/Stubs Collection/stubs/Head_Card_I2C.cs
new file mode 100644
index 000000000..6f49eeb51
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Head_Card_I2C.cs
@@ -0,0 +1,66 @@
+using System;
+using System.Text;
+using System.Linq;
+using System.Drawing;
+using System.Diagnostics;
+using System.Windows.Forms;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+using Tango.PMR.Stubs;
+using Tango.Stubs;
+
+/*HEAD CARD I/O
+
+Slave address 0x40 / 0x42 / 0x44 / 0x46
+
+-------------------------
+| Byte | WR | RD | CFG |
+-------------------------
+| Low | 02 | 00 | 06 |
+| High | 03 | 01 | 07 |
+-------------------------
+
+Example (42 Slave Address, 03 Write High Byte, D8 Set value (NA on read))
+stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD, 0x4203D8);
+*/
+
+public void OnExecute(StubManager stubManager)
+{
+
+//ZN_Latch_RST off
+var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD, 0x4203D8);
+stubManager.WriteLineHex(response.Progress,2);
+
+//Turn ON mixer
+var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD, 0x420210);
+stubManager.WriteLineHex(response1.Progress,2);
+
+//Turn ON 12 (0..7)
+var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD, 0x4002FF);
+stubManager.WriteLineHex(response4.Progress,2);
+
+//Turn ON 12 (8..11)
+var response5 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD, 0x40030F);
+stubManager.WriteLineHex(response5.Progress,2);
+
+//ZN_Latch_RST ON
+var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD, 0x4203F8);
+stubManager.WriteLineHex(response2.Progress,2);
+
+Thread.Sleep(5000);
+
+//Turn OFF mixer
+var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD, 0x420200);
+stubManager.WriteLineHex(response3.Progress,2);
+
+//Turn OFF 12 (0..7)
+var response6 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD, 0x400200);
+stubManager.WriteLineHex(response6.Progress,2);
+
+//Turn OFF 12 (8..11)
+var response7 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD, 0x400300);
+stubManager.WriteLineHex(response7.Progress,2);
+
+
+} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Head_Card_IO.cs b/Software/Stubs Collection/stubs/Head_Card_IO.cs
new file mode 100644
index 000000000..161b622f2
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Head_Card_IO.cs
@@ -0,0 +1,160 @@
+using System;
+using System.Text;
+using System.Linq;
+using System.Drawing;
+using System.Diagnostics;
+using System.Windows.Forms;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+using Tango.PMR.Stubs;
+using Tango.Stubs;
+
+//----------------------
+const Int32 I2C_ID = 3; //MCU_I2C3
+const Int32 TCA9548A_address = 0xE2; // Main Mux
+Int32 I2C_Slave_Add ; // //eeprom address - 32kByte
+int Head_Mux_Channel_ID = 4; //Head MUX channel
+//----------------------
+
+uint[] write_Buf = new uint[5];
+
+
+int enable_channel(int Channel_ID)
+{
+ uint Const_temp = 0x01;
+
+ StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
+ stubI2CWriteBytesRequest.I2CId = I2C_ID;
+ stubI2CWriteBytesRequest.SlaveAddress = TCA9548A_address;
+
+ Const_temp = Const_temp << Channel_ID;
+ stubI2CWriteBytesRequest.BytesTWrite.Add(Const_temp);
+
+ var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
+
+ return 1;
+}
+
+
+int adc_write(uint I2C_Slave_Add, uint No_Bytes)
+{
+uint i = 0;
+ StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
+ stubI2CWriteBytesRequest.I2CId = I2C_ID;
+ stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
+
+ UInt32 uInt32 = new UInt32();
+
+ //--------------------------------------------------------------
+ for(i=0;i<No_Bytes;i++)
+ stubI2CWriteBytesRequest.BytesTWrite.Add(write_Buf[i]);//Data to write
+
+ var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
+
+ return 1;
+}
+
+int adc_set_for_read_ch(uint I2C_Slave_Add)
+{
+ StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
+ stubI2CWriteBytesRequest.I2CId = I2C_ID;
+ stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
+
+
+ UInt32 uInt32 = new UInt32();
+ stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
+ stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
+
+ var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
+
+ return 1;
+}
+
+int adc_read_ch(uint I2C_Slave_Add, uint No_Bytes)
+{
+ adc_set_for_read_ch(I2C_Slave_Add );
+
+ StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();
+ stubI2CReadBytesRequest.I2CId = I2C_ID;
+ stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add + 1;
+ stubI2CReadBytesRequest.NumberOfBytesToRead = No_Bytes; // Number of bytes to read
+
+ var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);
+ uint temph=0;
+
+ for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++)
+ {
+ temph=response1.ReadBytes[i];
+ stubManager.WriteLineHex(temph,2);
+ }
+
+ return 1;
+}
+
+
+public void OnExecute(StubManager stubManager)
+{
+
+ enable_channel(Head_Mux_Channel_ID);
+
+ //ZN_Latch_RST off
+ write_Buf[0] = 0x03;
+ write_Buf[1] = 0xD8;
+ adc_write(0x42, 2);
+ adc_read_ch(0x42, 2);
+
+
+ //Turn ON mixer
+ write_Buf[0] = 0x02;
+ write_Buf[1] = 0x10;
+ adc_write(0x42, 2);
+ adc_read_ch(0x42, 2);
+ stubManager.WriteLine("");
+
+ //Turn ON 12 (0..7)
+ write_Buf[0] = 0x02;
+ write_Buf[1] = 0xFF;
+ adc_write(0x40, 2);
+ adc_read_ch(0x40, 2);
+ stubManager.WriteLine("");
+
+ //Turn ON 12 (8..11)
+ write_Buf[0] = 0x03;
+ write_Buf[1] = 0x0F;
+ adc_write(0x40, 2);
+ adc_read_ch(0x40, 2);
+ stubManager.WriteLine("");
+
+ //ZN_Latch_RST ON
+ write_Buf[0] = 0x03;
+ write_Buf[1] = 0xF8;
+ adc_write(0x42, 2);
+ adc_read_ch(0x42, 2);
+
+ Thread.Sleep(5000);
+ stubManager.WriteLine("-------------");
+
+ //Turn OFF mixer
+ write_Buf[0] = 0x02;
+ write_Buf[1] = 0x00;
+ adc_write(0x42, 2);
+ adc_read_ch(0x42, 2);
+ stubManager.WriteLine("");
+
+ //Turn OFF 12 (0..7)
+ write_Buf[0] = 0x02;
+ write_Buf[1] = 0x00;
+ adc_write(0x40, 2);
+ adc_read_ch(0x40, 2);
+ stubManager.WriteLine("");
+
+ //Turn OFF 12 (8..11)
+ write_Buf[0] = 0x03;
+ write_Buf[1] = 0x00;
+ adc_write(0x40, 2);
+ adc_read_ch(0x40, 2);
+ stubManager.WriteLine("");
+
+
+} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Head_EEPROM.cs b/Software/Stubs Collection/stubs/Head_EEPROM.cs
new file mode 100644
index 000000000..1b3ab7213
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Head_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 = 4; //Head MUX channel
+//----------------------
+
+
+int enable_channel(int Channel_ID)
+{
+ uint Const_temp = 0x01;
+
+ StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
+ stubI2CWriteBytesRequest.I2CId = I2C_ID;
+ stubI2CWriteBytesRequest.SlaveAddress = TCA9548A_address;
+
+ Const_temp = Const_temp << Channel_ID;
+ stubI2CWriteBytesRequest.BytesTWrite.Add(Const_temp);
+
+ var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
+
+ return 1;
+}
+
+
+int adc_write(uint I2C_Slave_Add, uint Page)
+{
+ StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
+ stubI2CWriteBytesRequest.I2CId = I2C_ID;
+ stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
+
+ UInt32 uInt32 = new UInt32();
+ stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
+ stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write
+ //--------------------------------------------------------------
+
+ stubI2CWriteBytesRequest.BytesTWrite.Add(0x12 + Page);//Data 0 to write
+ stubI2CWriteBytesRequest.BytesTWrite.Add(0x34 + Page);//Data 1 to write
+ stubI2CWriteBytesRequest.BytesTWrite.Add(0x56 + Page);//Data 2 to write
+ stubI2CWriteBytesRequest.BytesTWrite.Add(0x78 + Page);//Data 3 to write
+ stubI2CWriteBytesRequest.BytesTWrite.Add(0x90 + Page);//Data 4 to write
+ stubI2CWriteBytesRequest.BytesTWrite.Add(0xAB + Page);//Data 5 to write
+ stubI2CWriteBytesRequest.BytesTWrite.Add(0xCD + Page);//Data 6 to write
+ stubI2CWriteBytesRequest.BytesTWrite.Add(0xEF + Page);//Data 7 to write
+ stubI2CWriteBytesRequest.BytesTWrite.Add(0x01 + Page);//Data 8 to write
+ stubI2CWriteBytesRequest.BytesTWrite.Add(0x02 + Page);//Data 9 to write
+
+ var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
+
+ return 1;
+}
+
+int adc_set_for_read_ch(uint I2C_Slave_Add, uint Page)
+{
+ StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
+ stubI2CWriteBytesRequest.I2CId = I2C_ID;
+ stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
+
+
+ UInt32 uInt32 = new UInt32();
+ stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
+ stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write
+
+ var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
+
+ return 1;
+}
+
+int adc_read_ch(uint I2C_Slave_Add)
+{
+ StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();
+ stubI2CReadBytesRequest.I2CId = I2C_ID;
+ stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add + 1;
+ stubI2CReadBytesRequest.NumberOfBytesToRead = 10; // Number of bytes to read
+
+ var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);
+ uint temph=0;
+
+ for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++)
+ {
+ temph=response1.ReadBytes[i];
+ stubManager.WriteHex(temph,2);
+ }
+
+ return 1;
+}
+
+
+public void OnExecute(StubManager stubManager)
+{
+
+ //enable_all_channel();
+ enable_channel(Head_Mux_Channel_ID); // Chanel 0-7 => Disp0enser 0-7
+
+ for (int i = 0; i<1; i++)
+ {
+
+ adc_write(I2C_Slave_Add,0x10);
+ Thread.Sleep(10); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet )
+
+ adc_write(I2C_Slave_Add,0x00);
+ Thread.Sleep(10); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet )
+
+ stubManager.Write("\nPage 0x10 #");
+ stubManager.Write(i);
+ stubManager.Write("\t- The Buffer is: ");
+ adc_set_for_read_ch(I2C_Slave_Add,0x10);
+ //Thread.Sleep(1); //Sleep for 10 milli.
+ adc_read_ch(I2C_Slave_Add);
+
+ Thread.Sleep(10);
+
+ stubManager.Write("\nPage 0x00 #");
+ stubManager.Write(i);
+ stubManager.Write("\t- The Buffer is: ");
+ adc_set_for_read_ch(I2C_Slave_Add, 0x00);
+ //Thread.Sleep(1); //Sleep for 10 milli.
+ adc_read_ch(I2C_Slave_Add);
+
+ Thread.Sleep(1000);
+
+ }
+} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Head_card_PT100__Horizontal_Printing.cs b/Software/Stubs Collection/stubs/Head_card_PT100__Horizontal_Printing.cs
new file mode 100644
index 000000000..6c6bbac05
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Head_card_PT100__Horizontal_Printing.cs
@@ -0,0 +1,59 @@
+using System;
+using System.Text;
+using System.Linq;
+using System.Drawing;
+using System.Diagnostics;
+using System.Windows.Forms;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+using Tango.PMR.Stubs;
+//using Tango.Stubs.UI;
+using Tango.Stubs;//
+using Tango.PMR.Printing;
+using Tango.PMR.Hardware;
+
+
+public void OnExecute(StubManager stubManager)
+{
+ /*
+ProcessParameters processParameters = new ProcessParameters();
+processParameters.DyeingSpeed = 30;
+processParameters.DryerBufferLength = 0;
+processParameters.MinInkUptake = 0;
+processParameters.DryerZone1Temp = 120;
+processParameters.DryerZone2Temp = 0;
+processParameters.DryerZone3Temp = 0;
+processParameters.HeadZone1Temp = 120;
+processParameters.HeadZone2Temp = 150;
+processParameters.HeadZone3Temp = 150;
+processParameters.HeadZone4Temp = 150;
+processParameters.HeadZone5Temp = 0;
+
+UploadProcessParametersRequest uploadProcessParametersRequest = new UploadProcessParametersRequest();
+
+uploadProcessParametersRequest.ProcessParameters = processParameters;
+var response1 = stubManager.Run<UploadProcessParametersResponse>(uploadProcessParametersRequest);
+*/
+
+ stubManager.Write("\n");
+ stubManager.Write("HZone_1 \tHZone_3 \tHZone_5 \tHZone_7 \tHZone_9 \tHZone_11\tHAir_1 \tMixer \tHZone_2 \tHZone_4 \tHZone_6 \tHZone_8 \tHZone_10 \tHZone_12 \n");
+ stubManager.Write("------- \t---------\t---------\t---------\t---------\t---------\t------- \t------- \t------- \t-----------\t-----------\t-----------\t-----------\t-----------\n");
+
+ for (int j = 0; j < 1000; j++)
+ {
+ for (int i = 12; i < 26; i++)//12
+ {
+
+ var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,0x100 + i); //Add 0x100 for internal temperature
+ float ftemp = (float)response.TemperatureCMultBy100;
+ ftemp = ftemp / 100;
+
+ stubManager.Write(ftemp.ToString("F2"));
+ stubManager.Write("°C\t");
+
+ }
+ stubManager.Write("\n");
+ Thread.Sleep(1000);
+ }
+} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Head_card_PT100__Horizontal_Printing_new.cs b/Software/Stubs Collection/stubs/Head_card_PT100__Horizontal_Printing_new.cs
new file mode 100644
index 000000000..4d877e3d0
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Head_card_PT100__Horizontal_Printing_new.cs
@@ -0,0 +1,87 @@
+using System;
+using System.Text;
+using System.Linq;
+using System.Drawing;
+using System.Diagnostics;
+using System.Windows.Forms;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+using Tango.PMR.Stubs;
+//using Tango.Stubs.UI;
+using Tango.Stubs;//
+using Tango.PMR.Printing;
+using Tango.PMR.Hardware;
+
+
+public void OnExecute(StubManager stubManager)
+{
+
+ Int32 command = 0;
+
+ /*
+ProcessParameters processParameters = new ProcessParameters();
+processParameters.DyeingSpeed = 30;
+processParameters.DryerBufferLength = 0;
+processParameters.MinInkUptake = 0;
+processParameters.DryerZone1Temp = 120;
+processParameters.DryerZone2Temp = 0;
+processParameters.DryerZone3Temp = 0;
+processParameters.HeadZone1Temp = 120;
+processParameters.HeadZone2Temp = 150;
+processParameters.HeadZone3Temp = 150;
+processParameters.HeadZone4Temp = 150;
+processParameters.HeadZone5Temp = 0;
+
+UploadProcessParametersRequest uploadProcessParametersRequest = new UploadProcessParametersRequest();
+
+uploadProcessParametersRequest.ProcessParameters = processParameters;
+var response1 = stubManager.Run<UploadProcessParametersResponse>(uploadProcessParametersRequest);
+*/
+
+ stubManager.Write("\n");
+ stubManager.Write("HZone_1 \tHZone_3 \tHZone_5 \tHZone_7 \tHZone_9 \tHZone_11\tHAir_1 \tMixer \tHZone_2 \tHZone_4 \tHZone_6 \tHZone_8 \tHZone_10 \tHZone_12 \n");
+ stubManager.Write("------- \t---------\t---------\t---------\t---------\t---------\t------- \t------- \t------- \t-----------\t-----------\t-----------\t-----------\t-----------\n");
+
+ for (int j = 0; j < 1; j++)
+ {
+ for (int i = 12; i < 26; i++)//12
+ {
+
+ //if(((i ==12) || (i ==26 ) ) && (j==0))
+
+
+
+ var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" , i);// not in use only for compilation
+ /*
+ //-----------------------------------------------------------------
+ if(((i == 12) || (i == 20)) && (j == 0) )
+ {
+
+ command = 0x8000 + i;
+ }
+ else
+ {
+
+ command = i;
+ }
+ var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" , command);
+ Thread.Sleep(50);
+ //----------------------------------------------------------------------------
+ */
+ //var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,/*0x100 +*/ i); //Add 0x100 for internal temperature
+
+ float ftemp = (float)response.TemperatureCMultBy100;
+ ftemp = ftemp / 100;
+
+ stubManager.Write(ftemp.ToString("F2"));
+ stubManager.Write("°C\t");
+
+/*
+stubManager.WriteHex(response.TemperatureCMultBy100,6);
+ stubManager.Write("\t");*/
+ }
+ stubManager.Write("\n");
+ Thread.Sleep(1000);
+ }
+} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Head_card_PT100__Horizontal_Printing_new2.cs b/Software/Stubs Collection/stubs/Head_card_PT100__Horizontal_Printing_new2.cs
new file mode 100644
index 000000000..400a0d421
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Head_card_PT100__Horizontal_Printing_new2.cs
@@ -0,0 +1,49 @@
+using System;
+using System.Text;
+using System.Linq;
+using System.Drawing;
+using System.Diagnostics;
+using System.Windows.Forms;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+using Tango.PMR.Stubs;
+
+using Tango.Stubs;
+using Tango.PMR.Printing;
+using Tango.PMR.Hardware;
+
+
+public void OnExecute(StubManager stubManager)
+{
+
+ stubManager.Write("\n");
+ stubManager.Write("HZone_1 \tHZone_3 \tHZone_5 \tHZone_7 \tHZone_9 \tHZone_11\tHAir_1 \tMixer \tHZone_2 \tHZone_4 \tHZone_6 \tHZone_8 \tHZone_10 \tHZone_12 \n");
+ stubManager.Write("------- \t---------\t---------\t---------\t---------\t---------\t------- \t------- \t------- \t-----------\t-----------\t-----------\t-----------\t-----------\n");
+
+ for (int j = 0; j < 1; j++)
+ {
+ for (int i = 12; i < 26; i++)
+ {
+
+ if(((i == 12) || (i == 20)) && (j == 0) )
+ {
+ stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" , 0x8000 + i);//read odd (12+) and even (20+)
+ }
+ var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" , i);//get from the buffer
+
+
+ float ftemp = (float)response.TemperatureCMultBy100;
+ ftemp = ftemp / 100;
+
+ stubManager.Write(ftemp.ToString("F2"));
+ stubManager.Write("°C\t");
+
+ /* to display the data in hex - need also to unmark the lines in the embedded code
+ stubManager.WriteHex(response.TemperatureCMultBy100,6);
+ stubManager.Write("\t");*/
+ }
+ stubManager.Write("\n");
+ Thread.Sleep(1000);
+ }
+} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Head_i2c_functions.cs b/Software/Stubs Collection/stubs/Head_i2c_functions.cs
new file mode 100644
index 000000000..f676ba592
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Head_i2c_functions.cs
@@ -0,0 +1,27 @@
+using System;
+using System.Text;
+using System.Linq;
+using System.Drawing;
+using System.Diagnostics;
+using System.Windows.Forms;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+using Tango.PMR.Stubs;
+using Tango.Stubs;
+
+public void OnExecute(StubManager stubManager)
+{
+ // Request ----
+ // Int32 : Amount
+ // Int32 : Delay
+
+ // Response ----
+ // Double : Progress
+ var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFEAD, 0xCA1401);//Turn on mixer (hrater ID on/off)
+
+ Thread.Sleep(5000);
+
+ var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFEAD, 0xCA1400);//Turn OFF mixer
+
+} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Heat I2C ACT test.cs b/Software/Stubs Collection/stubs/Heat I2C ACT test.cs
new file mode 100644
index 000000000..1ad3a8f74
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Heat I2C ACT test.cs
@@ -0,0 +1,33 @@
+using System;
+using System.Text;
+using System.Linq;
+using System.Drawing;
+using System.Diagnostics;
+using System.Windows.Forms;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+using Tango.PMR.Stubs;
+using Tango.Stubs;
+
+public void OnExecute(StubManager stubManager)
+{
+
+
+ var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFEAD, 0xCAF101);//Actuators: ID, power, Direction
+ Thread.Sleep(100);
+ var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFEAD, 0xCAF111);//Actuators: ID, power, Direction
+ Thread.Sleep(3000);
+ var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFEAD, 0xCAF100);//Actuators: ID, power, Direction
+ Thread.Sleep(100);
+ var response5 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFEAD, 0xCAF110);//Actuators: ID, power, Direction
+ Thread.Sleep(3000);
+ var response6 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFEAD, 0xCAF001);//Actuators: ID, power, Direction
+ Thread.Sleep(100);
+ var response7 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFEAD, 0xCAF011);//Actuators: ID, power, Direction
+ Thread.Sleep(3000);
+ var response8 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFEAD, 0xCAF000);//Actuators: ID, power, Direction
+ Thread.Sleep(100);
+ var response9 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFEAD, 0xCAF010);//Actuators: ID, power, Direction
+
+} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/I2C_RW_Main_Card_EEPROM_Save_Main_SN.cs b/Software/Stubs Collection/stubs/I2C_RW_Main_Card_EEPROM_Save_Main_SN.cs
new file mode 100644
index 000000000..6ec538758
--- /dev/null
+++ b/Software/Stubs Collection/stubs/I2C_RW_Main_Card_EEPROM_Save_Main_SN.cs
@@ -0,0 +1,98 @@
+using System;
+using System.Text;
+using System.Linq;
+using System.Drawing;
+using System.Diagnostics;
+using System.Windows.Forms;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+using Tango.PMR.Stubs;
+using Tango.Stubs;
+
+//----------------------
+const Int32 I2C_ID = 2; //MCU_I2C2
+
+const Int32 I2C_Slave_Add = 0xA0; //Slave (EEPROM) address
+
+string str = "UM181700004";//main card S/N
+
+uint length = 11;
+int i = 0;
+
+//----------------------
+
+int adc_write(uint I2C_Slave_Add)
+{
+ StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
+ stubI2CWriteBytesRequest.I2CId = I2C_ID;
+ stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
+
+ UInt32 uInt32 = new UInt32();
+ stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
+ stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
+ //--------------------------------------------------------------
+
+ for(i=0;i<length;i++)
+ stubI2CWriteBytesRequest.BytesTWrite.Add(str[i]);//Data 0 to write
+
+ var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
+
+ return 1;
+}
+
+int adc_set_for_read_ch(uint I2C_Slave_Add)
+{
+ StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
+ stubI2CWriteBytesRequest.I2CId = I2C_ID;
+ stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
+
+
+ UInt32 uInt32 = new UInt32();
+ stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
+ stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
+
+ var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
+
+ return 1;
+}
+
+int adc_read_ch(uint I2C_Slave_Add)
+{
+ StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();
+ stubI2CReadBytesRequest.I2CId = I2C_ID;
+ stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add + 1;
+ stubI2CReadBytesRequest.NumberOfBytesToRead = length; // Number of bytes to read
+
+ var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);
+ uint temph=0;
+
+ for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++)
+ {
+ temph=response1.ReadBytes[i];
+ stubManager.Write((char) temph);
+ }
+
+ return 1;
+}
+
+
+public void OnExecute(StubManager stubManager)
+{
+
+ for (int i = 0; i<1; i++)
+ {
+
+ adc_write(I2C_Slave_Add);
+ Thread.Sleep(5); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet )
+ stubManager.Write("\n");
+
+ stubManager.Write("The eeprom data: ");
+ adc_set_for_read_ch(I2C_Slave_Add);
+
+ adc_read_ch(I2C_Slave_Add);
+
+ Thread.Sleep(1000);
+
+ }
+} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/I2C_RW_Main_EEPROM_AVI _support_string.cs b/Software/Stubs Collection/stubs/I2C_RW_Main_EEPROM_AVI _support_string.cs
new file mode 100644
index 000000000..00064ec7f
--- /dev/null
+++ b/Software/Stubs Collection/stubs/I2C_RW_Main_EEPROM_AVI _support_string.cs
@@ -0,0 +1,109 @@
+using System;
+using System.Text;
+using System.Linq;
+using System.Drawing;
+using System.Diagnostics;
+using System.Windows.Forms;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+using Tango.PMR.Stubs;
+using Tango.Stubs;
+
+//----------------------
+const Int32 I2C_ID = 2; //MCU_I2C2
+
+const Int32 I2C_Slave_Add = 0xA0; // /Slave (EEPROM) address
+
+//----------------------
+
+int adc_write(uint I2C_Slave_Add)
+{
+ StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
+ stubI2CWriteBytesRequest.I2CId = I2C_ID;
+ stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
+
+ UInt32 uInt32 = new UInt32();
+ stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
+ stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
+ //--------------------------------------------------------------
+ stubI2CWriteBytesRequest.BytesTWrite.Add(0x12);//Data 0 to write
+ stubI2CWriteBytesRequest.BytesTWrite.Add('B');//Data 1 to write
+ stubI2CWriteBytesRequest.BytesTWrite.Add('C');//Data 2 to write
+ stubI2CWriteBytesRequest.BytesTWrite.Add('D');//Data 3 to write
+ stubI2CWriteBytesRequest.BytesTWrite.Add('E');//Data 4 to write
+ stubI2CWriteBytesRequest.BytesTWrite.Add('F');//Data 5 to write
+ stubI2CWriteBytesRequest.BytesTWrite.Add('G');//Data 6 to write
+ stubI2CWriteBytesRequest.BytesTWrite.Add('H');//Data 7 to write
+ stubI2CWriteBytesRequest.BytesTWrite.Add('I');//Data 8 to write
+ stubI2CWriteBytesRequest.BytesTWrite.Add('J');//Data 9 to write
+
+ var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
+
+ return 1;
+}
+
+int adc_set_for_read_ch(uint I2C_Slave_Add)
+{
+ StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
+ stubI2CWriteBytesRequest.I2CId = I2C_ID;
+ stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
+
+
+ UInt32 uInt32 = new UInt32();
+ stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
+ stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
+
+ var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
+
+ return 1;
+}
+
+int adc_read_ch(uint I2C_Slave_Add)
+{
+ StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();
+ stubI2CReadBytesRequest.I2CId = I2C_ID;
+ stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add + 1;
+ stubI2CReadBytesRequest.NumberOfBytesToRead = 10; // Number of bytes to read
+
+ var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);
+ uint temph=0;
+
+ for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++)
+ {
+ temph=response1.ReadBytes[i];
+ //stubManager.WriteHex(temph,2);
+ if(((temph>='A') && (temph<='Z')) || ((temph>='a') && (temph<='z')))
+ {
+ stubManager.Write((char) temph);
+ }
+ else
+ {
+ stubManager.WriteHex(temph,2);
+ }
+ stubManager.Write(" ");
+ }
+
+ return 1;
+}
+
+
+public void OnExecute(StubManager stubManager)
+{
+
+ for (int i = 0; i<1; i++)
+ {
+
+ adc_write(I2C_Slave_Add);
+ Thread.Sleep(5); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet )
+ stubManager.Write("\n");
+ //stubManager.Write(i);
+ stubManager.Write("The Buffer is: ");
+ adc_set_for_read_ch(I2C_Slave_Add);
+ //Thread.Sleep(1); //Sleep for 10 milli.
+ adc_read_ch(I2C_Slave_Add);
+
+ Thread.Sleep(1000);
+
+ }
+} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Motor_Get_Param_Horizontal_Printing2.cs b/Software/Stubs Collection/stubs/Motor_Get_Param_Horizontal_Printing2.cs
index 763288603..09d22dea9 100644
--- a/Software/Stubs Collection/stubs/Motor_Get_Param_Horizontal_Printing2.cs
+++ b/Software/Stubs Collection/stubs/Motor_Get_Param_Horizontal_Printing2.cs
@@ -40,7 +40,7 @@ const Int32 x_STATUS = 0x19;
//-------------------------------
const Int32 x_GET_PARAM = 0x20;
//-------------------------------
-const Int32 Max_Motor_ID = 30;
+const Int32 Max_Motor_ID = 25;
@@ -98,6 +98,22 @@ Int32 i = 12; // to run only for specific motor
public void OnExecute(StubManager stubManager)
{
+
+stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000380 , 0x06b9);
+stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000390 , 0x003f);
+stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000550 , 0x0003);
+stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000b80 , 0x001f);
+
+
+
+
+
+
+
+
+
+
+
for (i = 0; i < Max_Motor_ID; i++)
{
@@ -166,7 +182,9 @@ public void OnExecute(StubManager stubManager)
response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ADC_OUT)<<8, 0, 0);
stubManager.WriteHex(response.RecivedData,4);
- if( response.RecivedData > 12 )
+ if( response.RecivedData > 0x15 )
+ stubManager.Write("\t\tDual_Driver");
+ else if ( response.RecivedData > 0x0b)
stubManager.Write("\t\tVolage_Driver");
else if ( response.RecivedData > 8 )
stubManager.Write("\t\tCurrent_Driver");
diff --git a/Software/Stubs Collection/stubs/Progress_SetRapid.cs b/Software/Stubs Collection/stubs/Progress_SetRapid.cs
new file mode 100644
index 000000000..fbe559378
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Progress_SetRapid.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 = 0xE0;
+progressRequest.Delay = 0x1;
+
+ var response = stubManager.Run<ProgressResponse>(progressRequest);
+
+} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/Read_Cartridge_Present.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/Read_Cartridge_Present.cs
new file mode 100644
index 000000000..397999f12
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/Read_Cartridge_Present.cs
@@ -0,0 +1,97 @@
+using System;
+using System.Text;
+using System.Linq;
+using System.Drawing;
+using System.Diagnostics;
+using System.Windows.Forms;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+using Tango.PMR.Stubs;
+using Tango.Stubs;
+
+include "..\..\Defines\Tango_Defines_Basic.cs"
+include "Tango_Defines_LimitSwitch.cs"
+//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_Basic.cs"
+//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_LimitSwitch.cs"
+
+//MF 23092018 2 spare LS not include
+
+const Int32 F3_CARTx_PRES_02_Direct = 0x60000870;
+const Int32 F3_LOW_Cart_Led1 = 0x60000ba4;
+const Int32 F3_High_Cart_Led1 = 0x60000ba6;
+const Int32 F3_LOW_Cart_Led2 = 0x60000ba8;
+const Int32 F3_High_Cart_Led2 = 0x60000baa;
+const Int32 F3_LOW_Cart_Led3 = 0x60000bac;
+const Int32 F3_High_Cart_Led3 = 0x60000bae;
+
+const Int32 F3_PreScalar_Leds = 0x60000be8;
+
+
+public void OnExecute(StubManager stubManager)
+{
+
+ uint Temp = 0;
+ uint Temp1 = 0;
+ int counter = 0;
+ stubManager.Write("\nReading register F3_CARTx_PRES_02_Direct: ");
+ stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_LOW_Cart_Led1,100);//Low 8 bit
+
+var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F3_PreScalar_Leds,250);
+ stubManager.WriteHex(response.Value,4);
+ Temp = response.Value;
+ stubManager.Write("\nActivate limit switches one-by-one");
+
+ while ( counter != 1000)
+ {
+ response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F3_CARTx_PRES_02_Direct);
+
+
+
+ if (response.Value != Temp)
+ {
+ stubManager.WriteHex(response.Value,4);
+
+
+ Temp1=response.Value & 0x080;
+ if (Temp1 ==0x0080)
+ {
+ stubManager.Write("\nCART1_PRES");
+ stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_LOW_Cart_Led1,255);//Low 8 bit
+ stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_High_Cart_Led1,255);//High 8 bit
+
+
+ }
+ Temp1=response.Value & 0x0040;
+ if (Temp1 ==0x0040)
+ {
+ stubManager.Write("\nCART2_PRES");
+ stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_LOW_Cart_Led2,255);//Low 8 bit
+ stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_High_Cart_Led2,255);//High 8 bit
+ }
+
+ Temp1=response.Value & 0x0020;
+ if (Temp1 ==0x0020)
+ {
+ stubManager.Write("\nCART3_PRES");
+ stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_LOW_Cart_Led3,255);//Low 8 bit
+ stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_High_Cart_Led3,255);//High 8 bit
+ }
+
+
+ counter = counter + 1;
+ }
+ Thread.Sleep(1000);
+ Temp = response.Value;
+ stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_LOW_Cart_Led1,10);//Low 8 bit
+ stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_High_Cart_Led1,1);//High 8 bit
+ stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_LOW_Cart_Led2,10);//Low 8 bit
+ stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_High_Cart_Led2,1);//High 8 bit
+ stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_LOW_Cart_Led3,10);//Low 8 bit
+ stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_High_Cart_Led3,1);//High 8 bit
+
+ }
+
+
+
+} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/Tamper_sw.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/Tamper_sw.cs
new file mode 100644
index 000000000..2c51aebe7
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/Tamper_sw.cs
@@ -0,0 +1,94 @@
+sing System;
+using System.Text;
+using System.Linq;
+using System.Drawing;
+using System.Diagnostics;
+using System.Windows.Forms;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+using Tango.PMR.Stubs;
+using Tango.Stubs;
+
+include "..\..\Defines\Tango_Defines_Basic.cs"
+include "Tango_Defines_LimitSwitch.cs"
+//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_Basic.cs"
+//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_LimitSwitch.cs"
+
+//MF 23092018 2 spare LS not include
+
+const Int32 F3_GPI_01_Direct = 0x60000820;
+
+public void OnExecute(StubManager stubManager)
+{
+
+ uint Temp = 0;
+ uint Temp1 = 0;
+ int counter = 0;
+ stubManager.Write("\nReading register F3_GPI_01_Direct: ");
+
+var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F3_GPI_01_Direct);
+ stubManager.WriteHex(response.Value,4);
+ Temp = response.Value;
+ stubManager.Write("\nActivate limit switches one-by-one");
+
+ while ( counter != 1000)
+ {
+ response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F3_GPI_01_Direct);
+
+
+
+ if (response.Value != Temp)
+ {
+ stubManager.WriteHex(response.Value,4);
+
+
+ Temp1=response.Value & 0x0008;
+ if (Temp1 ==0x0008)
+ {
+ stubManager.Write("\nF3_GPI_PANSW6");
+
+ }
+ Temp1=response.Value & 0x0010;
+ if (Temp1 ==0x0010)
+ {
+ stubManager.Write("\nF3_GPI_PANSW5");
+ }
+
+ Temp1=response.Value & 0x0020;
+ if (Temp1 ==0x0020)
+ {
+ stubManager.Write("\nF3_GPI_PANSW4");
+ }
+
+ Temp1=response.Value & 0x0040;
+ if (Temp1 ==0x0040)
+ {
+ stubManager.Write("\nF3_GPI_PANSW3");
+ }
+
+ Temp1=response.Value & 0x0080;
+ if (Temp1 ==0x0080)
+ {
+ stubManager.Write("\nF3_GPI_PANSW2");
+ }
+
+
+ Temp1=response.Value & 0x0100;
+ if (Temp1 ==0x0100)
+ {
+ stubManager.Write("\nF3_GPI_PANSW1");
+ }
+
+
+
+ counter = counter + 1;
+ }
+ Thread.Sleep(1000);
+ Temp = response.Value;
+
+ }
+
+
+
+} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/Tamper_switch.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/Tamper_switch.cs
new file mode 100644
index 000000000..9b741d981
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/Tamper_switch.cs
@@ -0,0 +1,72 @@
+using System;
+using System.Text;
+using System.Linq;
+using System.Drawing;
+using System.Diagnostics;
+using System.Windows.Forms;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+using Tango.PMR.Stubs;
+using Tango.Stubs;
+
+include "..\..\Defines\Tango_Defines_Basic.cs"
+include "Tango_Defines_LimitSwitch.cs"
+//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_Basic.cs"
+//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_LimitSwitch.cs"
+
+
+
+public void OnExecute(StubManager stubManager)
+{
+ uint Temp = 0;
+ uint Temp1 = 0;
+ int counter = 0;
+ stubManager.Write("\nReading register F3_GPI_01_Direct: ");
+ var RetVal = Fpga_Read_Reg(FPGA3, F3_GPI_01_Direct, 0);
+ stubManager.WriteHex(RetVal.Value,4);
+ Temp = RetVal.Value;
+ stubManager.Write("\nActivate Tamper switches one-by-one");
+
+ while ( counter != 100000)
+ {
+ RetVal = Fpga_Read_Reg(FPGA3, F3_GPI_01_Direct, 0);
+ if (RetVal.Value != Temp)
+ {
+ stubManager.Write("\nRegister F3_GPI_01_Direct new value: ");
+ stubManager.WriteHex(RetVal.Value, 4);
+
+ Temp1=RetVal.Value & 0x0008;
+ if (Temp1 !=0x0008)
+ stubManager.Write("\nPANSW6");
+
+
+ Temp1=RetVal.Value & 0x0010;
+ if (Temp1 !=0x0010)
+ stubManager.Write("\nPANSW5");
+
+ Temp1=RetVal.Value & 0x0020;
+ if (Temp1 !=0x0020)
+ stubManager.Write("\nPANSW4");
+
+ Temp1=RetVal.Value & 0x0040;
+ if (Temp1 !=0x0040)
+ stubManager.Write("\nPANSW3");
+
+ Temp1=RetVal.Value & 0x0080;
+ if (Temp1 !=0x0080)
+ stubManager.Write("\nPANSW2");
+
+ Temp1=RetVal.Value & 0x0100;
+ if (Temp1 !=0x0100)
+ stubManager.Write("\nPANSW1");
+
+
+ counter = counter + 1;
+ }
+ Thread.Sleep(100);
+ Temp = RetVal.Value;
+
+ }
+
+} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/ssr9-chiller.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/ssr9-chiller.cs
new file mode 100644
index 000000000..28d6f69fc
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/ssr9-chiller.cs
@@ -0,0 +1,38 @@
+using System;
+using System.Text;
+using System.Linq;
+using System.Drawing;
+using System.Diagnostics;
+using System.Windows.Forms;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+using Tango.PMR.Stubs;
+using Tango.Stubs;
+
+include "..\..\Defines\Tango_Defines_Basic.cs"
+include "Tango_Defines_SSR.cs"
+//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\Software\Stub_scripts\Tango_Defines_Basic.cs"
+//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\Software\Stub_scripts\Interfaces\Tango_Defines_SSR.cs"
+
+//----------------------
+const Int32 I2C_ID = 2;
+//const Int32 I2C_Slave_Add = 0x46; //must be 0x40, 0x44 or 0x46
+//----------------------
+
+
+public void OnExecute(StubManager stubManager)
+{
+
+
+ UInt32 temp=0;
+
+
+ //Write F2_GPO_CHILLER_SSR9_CTRL SSR/SSR no. 9
+ SetBit (FPGA2, F2_CTRL, 2, 1);
+ stubManager.Write("\tTesting SSR no. 9\tCHILLER\t");
+ Thread.Sleep(10000);
+ SetBit (FPGA2, F2_CTRL, 2, 0);
+
+
+}
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/fan.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/fan.cs
new file mode 100644
index 000000000..7e68d62ef
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/fan.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)
+{
+
+
+ // Request ----
+// Int32 : Amount
+// Int32 : Delay
+
+// Response ----
+// Double : Progress
+//stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC2, 0x20); //WHS FAN 1 low seed
+//stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC3, 0x20); //WHS FAN 2 low seed
+//stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC4, 0x20); //WHS FAN 3 low seed
+//stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC5, 0x20); //WHS FAN 4 low seed
+//stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC6, 0x20); //WHS FAN 5 low seed
+//stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC2, 0x20); //WHS FAN 6 low seed
+var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC3, 0x20);
+
+
+
+
+} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_fan.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_fan.cs
new file mode 100644
index 000000000..acd5e3c50
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_fan.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;
+
+public void OnExecute(StubManager stubManager)
+{
+// Request ----
+// Int32 : Amount
+// Int32 : Delay
+
+// Response ----
+// Double : Progress
+stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0001);
+Thread.Sleep(1000); //Sleep for 10 milli.
+stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0101);
+Thread.Sleep(1000); //Sleep for 10 milli.
+stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0201);
+Thread.Sleep(1000); //Sleep for 10 milli.
+stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0301);
+Thread.Sleep(1000); //Sleep for 10 milli.
+stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0401);
+Thread.Sleep(1000); //Sleep for 10 milli.
+stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0501);
+Thread.Sleep(1000); //Sleep for 10 milli.
+stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0601);
+Thread.Sleep(1000); //Sleep for 10 milli.
+stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0701);
+Thread.Sleep(1000); //Sleep for 10 milli.
+
+stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4001);
+Thread.Sleep(1000); //Sleep for 10 milli.
+stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4101);
+Thread.Sleep(1000); //Sleep for 10 milli.
+stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4201);
+Thread.Sleep(1000); //Sleep for 10 milli.
+stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4301);
+Thread.Sleep(1000); //Sleep for 10 milli.
+stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4401);
+Thread.Sleep(1000); //Sleep for 10 milli.
+stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4501);
+Thread.Sleep(1000); //Sleep for 10 milli.
+stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4601);
+Thread.Sleep(1000); //Sleep for 10 milli.
+stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4701);
+Thread.Sleep(1000); //Sleep for 10 milli.
+
+stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0001);
+Thread.Sleep(1000); //Sleep for 10 milli.
+stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0101);
+Thread.Sleep(1000); //Sleep for 10 milli.
+stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0201);
+Thread.Sleep(1000); //Sleep for 10 milli.
+stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0301);
+Thread.Sleep(1000); //Sleep for 10 milli.
+stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0401);
+Thread.Sleep(1000); //Sleep for 10 milli.
+stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0501);
+Thread.Sleep(1000); //Sleep for 10 milli.
+stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0601);
+Thread.Sleep(1000); //Sleep for 10 milli.
+stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0701);
+Thread.Sleep(1000); //Sleep for 10 milli.
+
+stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4001);
+Thread.Sleep(1000); //Sleep for 10 milli.
+stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4101);
+Thread.Sleep(1000); //Sleep for 10 milli.
+stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4201);
+Thread.Sleep(1000); //Sleep for 10 milli.
+stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4301);
+Thread.Sleep(1000); //Sleep for 10 milli.
+stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4401);
+Thread.Sleep(1000); //Sleep for 10 milli.
+stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4501);
+Thread.Sleep(1000); //Sleep for 10 milli.
+stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4601);
+Thread.Sleep(1000); //Sleep for 10 milli.
+stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4701);
+Thread.Sleep(1000); //Sleep for 10 milli.
+
+var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E8, 0);
+} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_valv1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_valv1.cs
new file mode 100644
index 000000000..c81bdaebd
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_valv1.cs
@@ -0,0 +1,47 @@
+using System;
+using System.Text;
+using System.Linq;
+using System.Drawing;
+using System.Diagnostics;
+using System.Windows.Forms;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+using Tango.PMR.Stubs;
+using Tango.Stubs;
+
+public void OnExecute(StubManager stubManager)
+{
+// Request ----
+// Int32 : Amount
+// Int32 : Delay
+
+// Response ----
+// Double : Progress
+
+//valv1
+var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8501); //valv1_en=1
+Thread.Sleep(5000); //Sleep for 10 milli.
+var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8401);// valv1_dir=1
+Thread.Sleep(5000); //Sleep for 10 milli.
+var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8400);// valv1_dir=0
+Thread.Sleep(5000); //Sleep for 10 milli.
+var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8500);// valv1_disable
+
+
+// valve 2
+var response5 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8701); //valv2_en=1
+Thread.Sleep(5000); //Sleep for 10 milli.
+var response6 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8601);// valv2_dir=1
+Thread.Sleep(5000); //Sleep for 10 milli.
+var response7 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8600);// valv2_dir=0
+Thread.Sleep(5000); //Sleep for 10 milli.
+var response8 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8700); //valv2_disable
+
+//test pump
+Thread.Sleep(5000); //Sleep for 10 milli.
+stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0701);// pump on
+Thread.Sleep(5000); //Sleep for 10 milli.
+stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0700); // pump off
+
+} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_valv1_disable.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_valv1_disable.cs
new file mode 100644
index 000000000..086063855
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_valv1_disable.cs
@@ -0,0 +1,40 @@
+using System;
+using System.Text;
+using System.Linq;
+using System.Drawing;
+using System.Diagnostics;
+using System.Windows.Forms;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+using Tango.PMR.Stubs;
+using Tango.Stubs;
+
+public void OnExecute(StubManager stubManager)
+{
+// Request ----
+// Int32 : Amount
+// Int32 : Delay
+
+// Response ----
+// Double : Progress
+//stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8500); //valv1_en=0
+//Thread.Sleep(5000); //Sleep for 10 milli.
+//stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8501); //valv1_en=0
+//Thread.Sleep(5000); //Sleep for 10 milli.
+
+
+
+ int a = 0;
+
+ while (a < 100)
+ {
+ a = a + 1;
+stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8500); //valv1_en=0
+Thread.Sleep(5000); //Sleep for 10 milli.
+stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8501); //valv1_en=0
+Thread.Sleep(5000); //Sleep for 10 milli.
+//stubManager.WriteLine(a);
+ }
+
+} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing.cs b/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing.cs
new file mode 100644
index 000000000..7e0d1ae38
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing.cs
@@ -0,0 +1,215 @@
+using System;
+using System.Text;
+using System.Linq;
+using System.Drawing;
+using System.Diagnostics;
+using System.Windows.Forms;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+using Tango.PMR.Stubs;
+using Tango.Stubs;
+
+//unmark Auto logging !
+
+const Int32 x_ABS_POS = 0x01;
+const Int32 x_EL_POS = 0x02;
+const Int32 x_MARK = 0x03;
+const Int32 x_SPEED = 0x04;
+const Int32 x_ACC = 0x05;
+const Int32 x_DEC = 0x06;
+const Int32 x_MAX_SPEED = 0x07;
+const Int32 x_MIN_SPEED = 0x08;
+const Int32 x_FS_SPD = 0x15;
+const Int32 x_KVAL_HOLD = 0x09;
+const Int32 x_KVAL_RUN = 0x0A;
+const Int32 x_KVAL_ACC = 0x0B;
+const Int32 x_KVAL_DEC = 0x0C;
+const Int32 x_INT_SPD = 0x0D;
+const Int32 x_ST_SLP = 0x0E;
+const Int32 x_FN_SLP_ACC = 0x0F;
+const Int32 x_FN_SLP_DEC = 0x10;
+const Int32 x_K_THERM = 0x11;
+const Int32 x_ADC_OUT = 0x12;
+const Int32 x_OCD_TH = 0x13;
+const Int32 x_STALL_TH = 0x14;
+const Int32 x_STEP_MODE = 0x16;
+const Int32 x_ALARM_EN = 0x17;
+const Int32 x_CONFIG = 0x18;
+const Int32 x_STATUS = 0x19;
+//-------------------------------
+const Int32 x_GET_PARAM = 0x20;
+//-------------------------------
+const Int32 Max_Motor_ID = 25;
+
+
+
+string[] Motor_ID = new string[30];
+
+
+Motor_ID[0] ="DH_CLEANHEAD ";
+Motor_ID[1] ="DH_CLEANMECH ";
+Motor_ID[2] ="DH_LID ";
+Motor_ID[3] ="DRYER_DRIVING";
+Motor_ID[4] ="DRYER_LID ";
+Motor_ID[5] ="DRYER_LOADARM";
+Motor_ID[6] ="DISPENCER_1 ";
+Motor_ID[7] ="DISPENCER_2 ";
+Motor_ID[8] ="DISPENCER_3 ";
+Motor_ID[9] ="DISPENCER_4 ";
+Motor_ID[10]="DISPENCER_5 ";
+Motor_ID[11]="DISPENCER_6 ";
+Motor_ID[12]="DISPENCER_7 ";
+Motor_ID[13]="DISPENCER_8 ";
+Motor_ID[14]="SCREW ";
+Motor_ID[15]="WINDER ";
+Motor_ID[16]="LDANCER1 ";
+Motor_ID[17]="LDANCER2 ";
+Motor_ID[18]="LDRIVING ";
+Motor_ID[19]="LLODING ";
+Motor_ID[20]="LPIVOT ";
+Motor_ID[21]="RDANCER ";
+Motor_ID[22]="RDRIVING ";
+Motor_ID[23]="RLOADARM ";
+Motor_ID[24]="RLODING ";
+Motor_ID[25]="SPARE1_1 ";
+Motor_ID[26]="SPARE1_2 ";
+Motor_ID[27]="SPARE2_1 ";
+Motor_ID[28]="SPARE2_2 ";
+Motor_ID[29]="SPARE3 ";
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Int32 i = 12; // to run only for specific motor
+
+public void OnExecute(StubManager stubManager)
+{
+ 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 > 12 )
+ stubManager.Write("\t\tVolage_Driver");
+ else if ( response.RecivedData > 8 )
+ stubManager.Write("\t\tCurrent_Driver");
+ else
+ stubManager.Write("\t\tNo_Driver");
+
+
+ stubManager.Write("\n\n");
+
+ }
+
+ stubManager.Write("MoTor\t\t\tINT_SPD\tST_SLP\t\tSLP_ACC\tSLP_DEC\tSTATUS\n");
+ stubManager.Write("-----\t\t\t-------\t------\t\t-------\t--------\t-----\n");
+
+ for (i = 0; i < Max_Motor_ID; i++)
+ {
+ stubManager.Write(Motor_ID[i]);
+
+// stubManager.Write(i);
+ stubManager.Write("\t\t");
+
+ var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_INT_SPD)<<16, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\t\t");
+
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ST_SLP)<<8, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\t\t");
+
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_ACC)<<8, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\t\t");
+
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_DEC)<<8, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\t\t");
+
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STATUS)<<16, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\n\n");
+
+
+
+ }
+
+} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/NewSpeedSensor.cs b/Software/Stubs Collection/stubs/Scripts/NewSpeedSensor.cs
new file mode 100644
index 000000000..02f8384bc
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/NewSpeedSensor.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;
+
+const UInt32 Freq = 29166667;//FPGA Freq
+
+const UInt32 F1_Tacho_reg9 = 0x1E2;//Time of Tacho / No of clk in one cycle
+const UInt32 F1_gpo_cnt_A_reg = 0x3B0;// how many pulses to count
+//const Int32 F1_Prescaler1_reg5 = 0x3E8; //OLD FPGA 05.022019
+const UInt32 F1_Prescaler1_reg6 = 0x3EA; //New FPGA
+
+const UInt32 CNT = 4;//bigger number for resolution
+const UInt32 Presc = 2;//Lower number for resolution
+UInt32 temp;
+
+public void OnExecute(StubManager stubManager)
+{
+ stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000000 + F1_Prescaler1_reg6, Presc);//for new FPGA use reg6!!
+ var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000000 + F1_Prescaler1_reg6);//for new FPGA use reg6!!!
+ response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000000 + F1_gpo_cnt_A_reg);
+ stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000000 + F1_gpo_cnt_A_reg, CNT);
+ response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000000 + F1_gpo_cnt_A_reg);
+
+ for(int i =0;i<1000;i++)
+ {
+ response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000000 + F1_Tacho_reg9);
+
+
+ temp = (Freq * CNT) /((UInt32)response.Value * Presc);
+
+ stubManager.Write(temp);
+ stubManager.Write(" Hz, ");
+ stubManager.WriteHex((response.Value & 0xffff),4);
+ stubManager.WriteLine("");
+ Thread.Sleep(100); //Sleep for 100 milli.
+ }
+} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/new dispenser card GPIO.cs b/Software/Stubs Collection/stubs/Scripts/new dispenser card GPIO.cs
new file mode 100644
index 000000000..43d0dd76a
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/new dispenser card GPIO.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;
+
+public void OnExecute(StubManager stubManager)
+{
+ // Request ----
+ // UInt32 : DispenserId
+ // Boolean : Start --- true for ByPass
+ // Boolean : SetDirection --- true for TestRelay
+ // UInt32 : SetMicrostepDivision -- 1 for TestByPassTestRelay
+ // Int32 : SetSpeed
+
+ // Response ----
+ // UInt32 : DispenserId
+ // UInt32 : DispenserPosition --- MSB for Disp_UP, LSB for Disp_Down
+ // UInt32 : InkWorningLevel ---- MSB for Realy_On, LSB for Over_Press
+ // String : Status
+ // UInt32 : StatusWord
+
+ stubManager.Write("read inputs ");
+ stubManager.WriteLine("");
+ var response = stubManager.Run<StubDispenserResponse>("StubDispenserRequest" ,3, false, false, 0, 0);//read inputs
+ stubManager.Write("MSB for Disp_UP, LSB for Disp_Down ");
+ stubManager.WriteHex((response.DispenserPosition),4);
+ stubManager.WriteLine("");
+ stubManager.Write("MSB for Realy_On, LSB for Over_Press ");
+ stubManager.WriteHex((response.InkWorningLevel),4);
+ stubManager.WriteLine("");
+ stubManager.WriteLine("----");
+ stubManager.WriteLine("");
+
+ stubManager.Write("TestRelay + read inputs ");
+ stubManager.WriteLine("");
+ response = stubManager.Run<StubDispenserResponse>("StubDispenserRequest" ,3, false, true, 0, 0);//TestRelay + read inputs
+ stubManager.Write("MSB for Disp_UP, LSB for Disp_Down ");
+ stubManager.WriteHex((response.DispenserPosition),4);
+ stubManager.WriteLine("");
+ stubManager.Write("MSB for Realy_On, LSB for Over_Press ");
+ stubManager.WriteHex((response.InkWorningLevel),4);
+ stubManager.WriteLine("");
+ stubManager.WriteLine("----");
+ stubManager.WriteLine("");
+
+ stubManager.Write("ByPass + TestRelay + read inputs ");
+ stubManager.WriteLine("");
+ response = stubManager.Run<StubDispenserResponse>("StubDispenserRequest" ,3, true, true, 0, 0);//ByPass + TestRelay + read inputs
+ stubManager.Write("MSB for Disp_UP, LSB for Disp_Down ");
+ stubManager.WriteHex((response.DispenserPosition),4);
+ stubManager.WriteLine("");
+ stubManager.Write("MSB for Realy_On, LSB for Over_Press ");
+ stubManager.WriteHex((response.InkWorningLevel),4);
+ stubManager.WriteLine("");
+ stubManager.WriteLine("----");
+ stubManager.WriteLine("");
+
+ stubManager.Write("Remove ByPass (TestRelay + read inputs) ");
+ stubManager.WriteLine("");
+ response = stubManager.Run<StubDispenserResponse>("StubDispenserRequest" ,3, false, true, 0, 0);//TestRelay + read inputs
+ stubManager.Write("MSB for Disp_UP, LSB for Disp_Down ");
+ stubManager.WriteHex((response.DispenserPosition),4);
+ stubManager.WriteLine("");
+ stubManager.Write("MSB for Realy_On, LSB for Over_Press ");
+ stubManager.WriteHex((response.InkWorningLevel),4);
+ stubManager.WriteLine("");
+ stubManager.WriteLine("----");
+ stubManager.WriteLine("");
+
+
+ stubManager.Write("Rempve TestRelay and read inputs ");
+ stubManager.WriteLine("");
+ response = stubManager.Run<StubDispenserResponse>("StubDispenserRequest" ,3, false, false, 0, 0);//read input
+ stubManager.Write("MSB for Disp_UP, LSB for Disp_Down ");
+ stubManager.WriteHex((response.DispenserPosition),4);
+ stubManager.WriteLine("");
+ stubManager.Write("MSB for Realy_On, LSB for Over_Press ");
+ stubManager.WriteHex((response.InkWorningLevel),4);
+ stubManager.WriteLine("");
+ stubManager.WriteLine("----");
+ stubManager.WriteLine("");
+
+} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Set loading arm center.cs b/Software/Stubs Collection/stubs/Set loading arm center.cs
new file mode 100644
index 000000000..bb502309e
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Set loading arm center.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)
+{
+
+
+ProgressRequest progressRequest = new ProgressRequest();
+progressRequest.Amount = 0xB1;
+
+var response = stubManager.Run<ProgressResponse>(progressRequest);
+
+} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/SetWindingRotations.cs b/Software/Stubs Collection/stubs/SetWindingRotations.cs
new file mode 100644
index 000000000..e89bc04e5
--- /dev/null
+++ b/Software/Stubs Collection/stubs/SetWindingRotations.cs
@@ -0,0 +1,27 @@
+using System;
+using System.Text;
+using System.Linq;
+using System.Drawing;
+using System.Diagnostics;
+using System.Windows.Forms;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+using Tango.PMR.Stubs;
+using Tango.Stubs;
+
+public void OnExecute(StubManager stubManager)
+{
+
+// use this stub to set the number of thread rotation on each screw passage (bigger the number - slower the screw)
+ProgressRequest progressRequest = new ProgressRequest();
+//DO NOT CHANGE THIS LINE!!!!!!!!!!!!!!
+progressRequest.Amount = 0xF1; //DO NOT CHANGE THIS LINE!!!!!!!!!!!!!!
+//DO NOT CHANGE THIS LINE!!!!!!!!!!!!!!
+
+//set the number of rotations *1000
+progressRequest.Delay = 6123;
+
+ var response = stubManager.Run<ProgressResponse>(progressRequest);
+
+} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/SetupDebugDisributors.cs b/Software/Stubs Collection/stubs/SetupDebugDisributors.cs
new file mode 100644
index 000000000..0a31c7878
--- /dev/null
+++ b/Software/Stubs Collection/stubs/SetupDebugDisributors.cs
@@ -0,0 +1,79 @@
+using System;
+using System.Text;
+using System.Linq;
+using System.Drawing;
+using System.Diagnostics;
+using System.Windows.Forms;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+using Tango.PMR.Debugging;
+using Tango.Stubs;
+
+public void OnExecute(StubManager stubManager)
+{
+
+SetupDebugDisributorsRequest setupDebugDisributorsRequest = new SetupDebugDisributorsRequest();
+
+Boolean ControlFilter = new Boolean();
+ ControlFilter = true;
+setupDebugDisributorsRequest.DistributorActive.Add(ControlFilter);
+Boolean HeatersFilter = new Boolean();
+ HeatersFilter = true;
+setupDebugDisributorsRequest.DistributorActive.Add(HeatersFilter);
+Boolean JobFilter = new Boolean();
+ JobFilter = true;
+setupDebugDisributorsRequest.DistributorActive.Add(JobFilter);
+Boolean WasteFilter = new Boolean();
+ WasteFilter = true;
+setupDebugDisributorsRequest.DistributorActive.Add(WasteFilter);
+Boolean AlarmFilter = new Boolean();
+ AlarmFilter = true;
+setupDebugDisributorsRequest.DistributorActive.Add(AlarmFilter);
+Boolean DiagnosticsFilter = new Boolean();
+ DiagnosticsFilter = true;
+setupDebugDisributorsRequest.DistributorActive.Add(DiagnosticsFilter);
+Boolean IDSFilter = new Boolean();
+ IDSFilter = true;
+setupDebugDisributorsRequest.DistributorActive.Add(IDSFilter);
+Boolean ThreadFilter = new Boolean();
+ ThreadFilter = true;
+setupDebugDisributorsRequest.DistributorActive.Add(ThreadFilter);
+Boolean GeneralFilter = new Boolean();
+ GeneralFilter = true;
+setupDebugDisributorsRequest.DistributorActive.Add(GeneralFilter);
+Boolean CommFilter = new Boolean();
+ CommFilter = true;
+setupDebugDisributorsRequest.DistributorActive.Add(CommFilter);
+Boolean FPGAFilter = new Boolean();
+ FPGAFilter = true;
+setupDebugDisributorsRequest.DistributorActive.Add(FPGAFilter);
+Boolean LoadFilter = new Boolean();
+ LoadFilter = true;
+setupDebugDisributorsRequest.DistributorActive.Add(LoadFilter);
+Boolean InitFilter = new Boolean();
+ InitFilter = true;
+setupDebugDisributorsRequest.DistributorActive.Add(InitFilter);
+Boolean MaintFilter = new Boolean();
+ MaintFilter = true;
+setupDebugDisributorsRequest.DistributorActive.Add(MaintFilter);
+/*
+ DEBUG_DISTRIBUTOR__ControlFilter = 0,
+ DEBUG_DISTRIBUTOR__HeatersFilter = 1,
+ DEBUG_DISTRIBUTOR__JobFilter = 2,
+ DEBUG_DISTRIBUTOR__WasteFilter = 3,
+ DEBUG_DISTRIBUTOR__AlarmFilter = 4,
+ DEBUG_DISTRIBUTOR__DiagnosticsFilter = 5,
+ DEBUG_DISTRIBUTOR__IDSFilter = 6,
+ DEBUG_DISTRIBUTOR__ThreadFilter = 7,
+ DEBUG_DISTRIBUTOR__GeneralFilter = 8,
+ DEBUG_DISTRIBUTOR__CommFilter = 9,
+ DEBUG_DISTRIBUTOR__FPGAFilter = 10,
+ DEBUG_DISTRIBUTOR__LoadFilter = 11,
+ DEBUG_DISTRIBUTOR__InitFilter = 12,
+ DEBUG_DISTRIBUTOR__MaintFilter = 13
+
+ */
+ SetupDebugDisributorsResponse response2 = stubManager.Run<SetupDebugDisributorsResponse>(setupDebugDisributorsRequest);
+
+} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/WD test.cs b/Software/Stubs Collection/stubs/WD test.cs
new file mode 100644
index 000000000..f740ad54a
--- /dev/null
+++ b/Software/Stubs Collection/stubs/WD test.cs
@@ -0,0 +1,49 @@
+using System;
+using System.Text;
+using System.Linq;
+using System.Drawing;
+using System.Diagnostics;
+using System.Windows.Forms;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+using Tango.PMR.Stubs;
+using Tango.Stubs;
+
+public void OnExecute(StubManager stubManager)
+{
+/*
+stubManager.Run<StubGPIOWriteBitResponse>("StubGPIOWriteBitRequest" ,"N", 6, false);
+stubManager.Run<StubGPIOWriteBitResponse>("StubGPIOWriteBitRequest" ,"N", 6, true);
+
+stubManager.Run<StubGPIOWriteBitResponse>("StubGPIOWriteBitRequest" ,"H", 4, false);
+stubManager.Run<StubGPIOWriteBitResponse>("StubGPIOWriteBitRequest" ,"H", 4, true);
+
+stubManager.Run<StubGPIOWriteBitResponse>("StubGPIOWriteBitRequest" ,"F", 6, false);
+stubManager.Run<StubGPIOWriteBitResponse>("StubGPIOWriteBitRequest" ,"F", 6, true);
+*/
+
+ for (int i = 0; i < 1; i++)
+ {
+
+
+ var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000000 + 0x160);
+ var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000400 + 0x140);
+ var response2 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000800 + 0x140);
+ stubManager.WriteLineHex(response.Value,4);
+ stubManager.WriteLineHex(response1.Value,4);
+ stubManager.WriteLineHex(response2.Value,4);
+ stubManager.WriteLine("");
+
+ var response3 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000000 + 0x0B2);
+ var response4 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000000 + 0x0C2);
+ var response5 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000400 + 0x0B2);
+ var response6 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000800 + 0x0B2);
+ stubManager.WriteLineHex(response3.Value,4);
+ stubManager.WriteLineHex(response4.Value,4);
+ stubManager.WriteLineHex(response5.Value,4);
+ stubManager.WriteLineHex(response6.Value,4);
+
+ Thread.Sleep(1000); //Sleep for 1000 milli.
+ }
+} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/alarm.cfg b/Software/Stubs Collection/stubs/alarm.cfg
new file mode 100644
index 000000000..89f70357d
--- /dev/null
+++ b/Software/Stubs Collection/stubs/alarm.cfg
@@ -0,0 +1,292 @@
+
+èPÐ
+d 08@ÿHPÒ
+d 08@ÿHPÓ
+d 08@ÿHPÔ
+d 08@ÿHPÕ
+d 08@ÿHPÖ
+d 08@ÿHP×
+èPØ
+è(è8@ÿHPÙ
+è8@ÿHPÚ
+è (è8@ÿHPÛ
+è 8@ÿHPÜ
+
+è8PÝ
+èPÞ
+èPß
+èPà
+èPá
+èPâ
+èPã
+èPä
+ è8@ÿP¸
+ è8@ÿP¹
+ è8@ÿPº
+è (€ 8@ÿHP»
+è (€ 8@ÿHP¼
+è (€ 8@ÿHP½
+è (€ 8@ÿHP¾
+è (€ 8@ÿHP¿
+è (€ 8@ÿHPÀ
+è (€ 8@ÿHPÁ
+è (€8@ÿHPÂ
+è (€8@ÿHPÃ
+è (€8@ÿHPÄ
+è (€8@ÿHPÅ
+è (€8@ÿHPÆ
+è (€8@ÿHPÇ
+è (€8@ÿHPÈ
+è (€@8@ÿHPÉ
+è (€@8@ÿHPÊ
+è (€@8@ÿHPË
+è (€@8@ÿHPÍ
+è (€@8@ÿHPÎ
+è (€@8@ÿHPÏ
+è (€8@ÿHPÐ
+è (€8@ÿHPÑ
+è (€8@ÿHPÒ
+è (€@8@ÿHPÓ
+è (€8@ÿHPÔ
+è (€8@ÿHPÕ
+è (€8@ÿHPÖ
+è (d08@ÿHP×
+è (d08@ÿHPØ
+è (d08@ÿHPÙ
+è (d08@ÿHPÚ
+è (d08@ÿHPÛ
+è (€ 8@ÿHPÜ
+è (€ 8@ÿHPÝ
+è (€ 8@ÿHPÞ
+è (€8@ÿHPß
+è (€8@ÿHPà
+è (€8@ÿHPá
+è (€@8@ÿHPâ
+è (€@8@ÿHPã
+è (€@8@ÿHPä
+è (€8@ÿHPå
+è (€8@ÿHPæ
+è (€8@ÿHPç
+
+è8Pè
+
+è8Pé
+è (€ 8@ÿHP 
+è (€8@ÿHP¡
+è (€@8@ÿHP¢
+è (€8@ÿHP£
+ è8@ÿP¤
+d(Ž08@ÿP¥
+è( 8@ÿP§
+è( 8@ÿP¨
+ è8@ÿPª
+è (08@ÿHP«
+è (È08@ÿHP¬
+è 8@ÿHP­
+è 8@ÿHP®
+è (è8@ÿHP¯
+è08@ÿHP°
+è (€ 8@ÿHP±
+è (€8@ÿHP²
+è (€@8@ÿHP³
+è (€8@ÿHP´
+d (Ž08@ÿPˆ'
+d (Ž08@ÿP‰'
+d (Ž08@ÿPŠ'
+d (Ž08@ÿP‹'
+d (Ž08@ÿPŒ'
+d (Ž08@ÿP'
+è ( 8@ÿPŽ'
+è ( 8@ÿP'
+è ( 8@ÿP'
+è ( 8@ÿP‘'
+è ( 8@ÿP’'
+è ( 8@ÿP“'
+è ( 8@ÿP”'
+è ( 8@ÿP•'
+è ( 8@ÿP–'
+è ( 8@ÿP—'
+è ( 8@ÿP˜'
+è ( 8@ÿP™'
+è(¸08@ÿHPš'
+è (»08@ÿHP›'
+è (»08@ÿHPœ'
+è (¸08@ÿHP'
+è (ô08@ÿHPž'
+è8@ÿHPŸ'
+è 8@ÿHP '
+è 8@ÿHP¡'
+è 8@ÿHP¢'
+è 8@ÿHP£'
+è (€ 8@ÿHP§'
+è (€8@ÿHP¨'
+è (€@8@ÿHP©'
+è (€8@ÿHPª'
+è (€ 8@ÿHP«'
+è (€8@ÿHP¬'
+è (€@8@ÿHP­'
+è (€8@ÿHP®'
+è(€ 8@ÿHP¯'
+è(€8@ÿHP°'
+è(€@8@ÿHP±'
+è(€8@ÿHP²'
+è (Ž08@ÿHP³'
+è (Ž08@ÿHP´'
+è (Ž08@ÿHPµ'
+è (Ž08@ÿHP¶'
+è
+ (Ž08@ÿHP·'
+è (Ž08@ÿHP¸'
+è ( 8@ÿHP¹'
+è ( 8@ÿHPº'
+è ( 8@ÿHP»'
+è ( 8@ÿHP¼'
+è
+ ( 8@ÿHP½'
+è ( 8@ÿHP¾'
+è ( 8@ÿHP¿'
+è ( 8@ÿHPÀ'
+è ( 8@ÿHPÁ'
+è ( 8@ÿHPÂ'
+è
+ ( 8@ÿHPÃ'
+è ( 8@ÿHPÄ'
+è (¸08@ÿHPÅ'
+è (¸08@ÿHPÆ'
+è (¸08@ÿHPÇ'
+è (¸08@ÿHPÈ'
+è (¸08@ÿHPÉ'
+è
+
+(¸08@ÿHPÊ'
+è (¸08@ÿHPË'
+è 8@ÿHPÌ'
+è 8@ÿHPÍ'
+è 8@ÿHPÎ'
+è 8@ÿHPÏ'
+è 8@ÿHPÐ'
+è
+
+8@ÿHPÑ'
+è 8@ÿHPÒ'
+d (Ž08@ÿPð.
+è ( 8@ÿPñ.
+è ( 8@ÿPò.
+è (»08@ÿHPô.
+è8@ÿHPõ.
+ è8@ÿPØ6
+ è8@ÿPÙ6
+ è8@ÿPÚ6
+ è8@ÿPÛ6
+ è8@ÿPÜ6
+ è8@ÿPÝ6
+ è8@ÿPÞ6
+ è8@ÿPß6
+d08@ÿPè6
+d 08@ÿPé6
+d 08@ÿPê6
+d 08@ÿPë6
+d 08@ÿPì6
+d 08@ÿPí6
+d 08@ÿPî6
+d 08@ÿPï6
+è (€ 8@ÿHPø6
+è (€ 8@ÿHPù6
+è (€ 8@ÿHPú6
+è (€ 8@ÿHPû6
+è
+
+(€ 8@ÿHPü6
+è (€ 8@ÿHPý6
+è (€ 8@ÿHPþ6
+è (€ 8@ÿHPÿ6
+è (€8@ÿHP€7
+è (€8@ÿHP7
+è (€8@ÿHP‚7
+è (€8@ÿHPƒ7
+è
+
+(€8@ÿHP„7
+è (€8@ÿHP…7
+è (€8@ÿHP†7
+è (€8@ÿHP‡7
+è (€@8@ÿHPˆ7
+è (€@8@ÿHP‰7
+è (€@8@ÿHPŠ7
+è (€@8@ÿHP‹7
+è
+
+(€@8@ÿHPŒ7
+è (€@8@ÿHP7
+è (€@8@ÿHPŽ7
+è (€@8@ÿHP7
+è (€8@ÿHP7
+è (€8@ÿHP‘7
+è (€8@ÿHP’7
+è (€8@ÿHP“7
+è
+
+(€8@ÿHP”7
+è (€8@ÿHP•7
+è (€8@ÿHP–7
+è (€8@ÿHP—7
+è(08@ÿHP˜7
+è(08@ÿHP™7
+è(08@ÿHPš7
+è(08@ÿHP›7
+è(08@ÿHPœ7
+è(08@ÿHP7
+è(08@ÿHPž7
+è(08@ÿHPŸ7
+è(8@ÿHP 7
+è(8@ÿHP¡7
+è(8@ÿHP¢7
+è(8@ÿHP£7
+è(8@ÿHP¤7
+è(8@ÿHP¥7
+è(8@ÿHP¦7
+è(8@ÿHP§7
+è(08@ÿHP¨7
+è (08@ÿHP©7
+è (08@ÿHPª7
+è (08@ÿHP«7
+è (08@ÿHP¬7
+è (08@ÿHP­7
+è (08@ÿHP®7
+è (08@ÿHP¯7
+ è(¬8@ÿHPÀ>
+ è (¬8@ÿHPÁ>
+ è (¬8@ÿHPÂ>
+ è (¬8@ÿHPÃ>
+ è (¬8@ÿHPÄ>
+ è (¬8@ÿHPÅ>
+ è (¬8@ÿHPÆ>
+ è (¬8@ÿHPÇ>
+ è(d8@ÿHPÈ>
+ è (d8@ÿHPÉ>
+ è (d8@ÿHPÊ>
+ è (d8@ÿHPË>
+ è (d8@ÿHPÌ>
+ è (d8@ÿHPÍ>
+ è (d8@ÿHPÎ>
+ è (d8@ÿHPÏ>
+ è(¤ 08@ÿHPÐ>
+ è (¤ 08@ÿHPÑ>
+ è (¤ 08@ÿHPÒ>
+ è (¤ 08@ÿHPÓ>
+ è (¤ 08@ÿHPÔ>
+ è (¤ 08@ÿHPÕ>
+ è (¤ 08@ÿHPÖ>
+ è (¤ 08@ÿHP×>
+ è8@ÿPØ>
+è 8@ÿPÙ>
+è 8@ÿPÚ>
+è 8@ÿPÛ>
+è 8@ÿPÜ>
+è 8@ÿPÝ>
+è 8@ÿPÞ>
+è 8@ÿPß>
+ è8@ÿP¨F
+ è8@ÿP«F
+ è8@ÿP­F
+ è8@ÿP°F \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/embParamDownload.cs b/Software/Stubs Collection/stubs/embParamDownload.cs
new file mode 100644
index 000000000..afdc14c92
--- /dev/null
+++ b/Software/Stubs Collection/stubs/embParamDownload.cs
@@ -0,0 +1,74 @@
+using System;
+using System.Text;
+using System.Linq;
+using System.Drawing;
+using System.Diagnostics;
+using System.Windows.Forms;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+using Tango.PMR.Stubs;
+using Tango.Stubs;
+using Google.Protobuf;
+using Tango.PMR.EmbeddedParameters;
+using System.IO;
+using Tango.PMR.IO;
+
+
+public void OnExecute(StubManager stubManager)
+{
+
+
+ConfigurationParameters configurationParameters = new ConfigurationParameters();
+
+File.WriteAllBytes("C:/temp/EmbParam.cfg",configurationParameters.ToBytes());
+
+byte[] fileBytes = File.ReadAllBytes("C:/temp/EmbParam.cfg");
+
+
+var config = ConfigurationParameters.Parser.ParseFrom(fileBytes);
+
+ stubManager.Write( config);
+ Thread.Sleep(1000);
+
+//1. read
+stubManager.Write("\n\n Deleting old file");
+
+stubManager.Write("\n\n Loading new file file");
+
+
+FileDownloadRequest fileDownloadRequest = new FileDownloadRequest();
+fileDownloadRequest.FileName = "SYSINFO//EmbParam.cfg";;
+
+FileDownloadResponse response = stubManager.Run<FileDownloadResponse>(fileDownloadRequest);
+
+
+FileChunkDownloadRequest fileChunkDownloadRequest = new FileChunkDownloadRequest();
+fileChunkDownloadRequest.DownloadID = response.
+fileChunkDownloadRequest.FileName = null;
+fileChunkDownloadRequest.Position = 0;
+
+Thread.Sleep(1000);
+long chunk_size = response2.MaxChunkLength;
+
+FileStream fs = new FileStream("C:/temp/EmbParam.cfg",FileMode.Open);
+
+while (fs.Position < fs.Length)
+{
+ stubManager.Write("Position "+ fs.Position+ " Length "+ fs.Length +"\n\n");
+ FileChunkUploadRequest fileChunkUploadRequest = new FileChunkUploadRequest();
+ fileChunkUploadRequest.UploadID = response2.UploadID;
+ byte[] chunk = new byte[Math.Min(chunk_size,fs.Length - fs.Position)];
+ fs.Read(chunk,0,chunk.Length);
+ fileChunkUploadRequest.Buffer = ByteString.CopyFrom(chunk);
+ var response3 = stubManager.Run<FileChunkUploadResponse>(fileChunkUploadRequest);
+ Thread.Sleep(2000);
+
+}
+
+/*
+13:46:42.38: Executing script 'embeddedparametersbuild.cs'...
+{ "BreakSensorLimit": 10, "DiagnosticCollectionLimit": 1, "OverHeatCountLimit": 3, "UnderHeatCountLimit": 3, "CloseValveTimeout": 255, "OpenValveTimeout": 255, "InitialDispenserPressure": 1.5, "InitialDispenserTimeout": 60000, "InitialDispenserTimeLag": 100, "DispenserBuildPressureSpeed": 800, "DispenserBuildPressureLimit": 0.9, "DispenserBuildPressureTimeout": 80000, "DispenserBuildPressureLag": 50, "ACHeatersLowerOperationLimit": 995, "ACHeatersUpperOperationLimit": 1005, "DCHeatersLowerOperationLimit": 978, "DCHeatersUpperOperationLimit": 1005, "DispenserPresegmentWFCF": 80, "StartHeatingOnInitSequence": true, "GeneralParameters": [ 1, 1, 1, 1, 800, 1000 ], "CurrentAlarmLowLimit": 0.8, "CurrentAlarmHighLimit": 1.07, "IDSSegmentRefillTimeout": 5000, "IDSPreSegmentBuildupTime": 5000, "IDSCleaningSpeed": 50, "IDSCleaningStopBeforeSegmentTime": 3000, "IDSCleaningStartSprayPreSegmentTime": 1000, "IDSLeftCleaningMotorSpeed": 30, "IDSRightCleaningMotorSpeed": 23, "SwitchToIdleTimeinSeconds": 3600, "IdleDrierTemperature": 80, "IdleHeadTemperature": 80, "PowerOffTemperatureLimit": 50, "IDSPreSegmentWFCFTimeBeforeSegment": 1500 } */
+
+
+} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/embeddedparametersbuild.cs b/Software/Stubs Collection/stubs/embeddedparametersbuild.cs
index a08ca327a..e106699c8 100644
--- a/Software/Stubs Collection/stubs/embeddedparametersbuild.cs
+++ b/Software/Stubs Collection/stubs/embeddedparametersbuild.cs
@@ -24,15 +24,15 @@ ConfigurationParameters configurationParameters = new ConfigurationParameters();
configurationParameters.BreakSensorLimit = 10;
//how many samples to collect in diagnostics before sending
-configurationParameters.DiagnosticCollectionLimit = 1;
+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 = 10;
-configurationParameters.OpenValveTimeout = 10;
+configurationParameters.CloseValveTimeout = 48;
+configurationParameters.OpenValveTimeout = 48;
//backlash after filling - target pressure, timoeout, time staps (speed will be added in general parameters)
configurationParameters.InitialDispenserPressure = 0.25;
@@ -41,9 +41,9 @@ configurationParameters.InitialDispenserTimeLag = 100;
//job prepare - build pressure in dispensers - target pressure, timoeout, time staps, speed
configurationParameters.DispenserBuildPressureSpeed = 950; //no more than 1000
-configurationParameters.DispenserBuildPressureLimit = 1.2;
-configurationParameters.DispenserBuildPressureTimeout = 80000;
-configurationParameters.DispenserBuildPressureLag = 50;
+configurationParameters.DispenserBuildPressureLimit = 1.0;
+configurationParameters.DispenserBuildPressureTimeout = 180000;
+configurationParameters.DispenserBuildPressureLag = 100;
//temperature band 1000 = 100% - thresholds for job start around target temprature - AC
configurationParameters.ACHeatersLowerOperationLimit = 995;
@@ -65,34 +65,37 @@ configurationParameters.IDSPreSegmentWFCFTimeBeforeSegment = 30000;
configurationParameters.StartHeatingOnInitSequence = true;
// current test for the heaters - alarm thresholds
-configurationParameters.CurrentAlarmLowLimit = 0.80;
+configurationParameters.CurrentAlarmLowLimit = 0.78;
configurationParameters.CurrentAlarmHighLimit = 1.07;
+//currently not in use
configurationParameters.IDSSegmentRefillTimeout = 5000;
configurationParameters.IDSPreSegmentBuildupTime = 5000;
//cleaning!!!!!!!!!!
configurationParameters.IDSCleaningSpeed = 800;
-configurationParameters.IDSCleaningStopBeforeSegmentTime = 3000;
-configurationParameters.IDSCleaningStartSprayPreSegmentTime = 1000;
+configurationParameters.IDSCleaningStopBeforeSegmentTime = 10000; //end of presegemnt
+configurationParameters.IDSCleaningStartSprayPreSegmentTime =2000; //beginning of presegment
+
+configurationParameters.IDSLeftCleaningMotorSpeed = 48;
+configurationParameters.IDSRightCleaningMotorSpeed = 48;
-configurationParameters.IDSLeftCleaningMotorSpeed = 30;
-configurationParameters.IDSRightCleaningMotorSpeed = 23;
configurationParameters.SwitchToIdleTimeinSeconds = 3600;
configurationParameters.IdleDrierTemperature = 80;
configurationParameters.IdleHeadTemperature = 80;
configurationParameters.IdleMixerTemperature = 0;
-configurationParameters.PowerOffTemperatureLimit = 50;
+configurationParameters.PowerOffTemperatureLimit = 60;
//general parameters, ORDER MUST BE PRESERVED!!!!
//check the dispensers hard limit alarms
/*1*/
Double checkHardLimitAlarms = new Double();
+
checkHardLimitAlarms = 1.0;
configurationParameters.GeneralParameters.Add(checkHardLimitAlarms);
/*2*/
Double checkCurrentAlarms = new Double();
-checkCurrentAlarms = 1.0;
+checkCurrentAlarms = 0.0;
configurationParameters.GeneralParameters.Add(checkCurrentAlarms);
//check the tamper alarms
@@ -108,12 +111,12 @@ configurationParameters.GeneralParameters.Add(checkMotorAlarms);
/*5*/
Double WinderBackToBaseTime = new Double();
-WinderBackToBaseTime = 800.0;
+WinderBackToBaseTime = 820.0;
configurationParameters.GeneralParameters.Add(WinderBackToBaseTime);
/*6*/
Double DispenserInitialPressureSpeed = new Double();
-DispenserInitialPressureSpeed = 800.0;
+DispenserInitialPressureSpeed = 1050.0;
configurationParameters.GeneralParameters.Add(DispenserInitialPressureSpeed);
/*7*/
@@ -123,7 +126,7 @@ configurationParameters.GeneralParameters.Add(SetDiagnosticMode);
/*8*/
Double SetAutoFill = new Double();
-SetAutoFill = 0.0;
+SetAutoFill = 3.0;
configurationParameters.GeneralParameters.Add(SetAutoFill);
File.WriteAllBytes("C:/temp/EmbParam.cfg",configurationParameters.ToBytes());
@@ -134,7 +137,39 @@ 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 } */
diff --git a/Software/Stubs Collection/stubs/embeddedparametersbuildand load.cs b/Software/Stubs Collection/stubs/embeddedparametersbuildand load.cs
new file mode 100644
index 000000000..ed3e3f8d9
--- /dev/null
+++ b/Software/Stubs Collection/stubs/embeddedparametersbuildand load.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 = 49;
+configurationParameters.OpenValveTimeout = 49;
+
+//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 = 950; //no more than 1000
+configurationParameters.DispenserBuildPressureLimit = 1.0;
+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 SetAutoFill = new Double();
+SetAutoFill = 3.0;
+configurationParameters.GeneralParameters.Add(SetAutoFill);
+
+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/head_card_fan_test.cs b/Software/Stubs Collection/stubs/head_card_fan_test.cs
new file mode 100644
index 000000000..95c3825e0
--- /dev/null
+++ b/Software/Stubs Collection/stubs/head_card_fan_test.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)
+{
+// Request ----
+// Int32 : Amount
+// Int32 : Delay
+
+// Response ----
+// Double : Progress
+var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfac0, 0x00);//Fan Click Head Card , Fan 1 Setting - 0xFF Full PWM 0x80 = 50% FF = 100% 0 - STOP
+stubManager.WriteLineHex(response.Progress,2);//100% = 0xDC0, 50% = 0x1790, 0% = 0xFFF0
+
+var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfac1, 0x00);//Fan Click Head Card , Fan 1 Setting - 0xFF Full PWM 0x80 = 50% FF = 100% 0 - STOP
+stubManager.WriteLineHex(response1.Progress,2);//100% = 0xDC0, 50% = 0x1790, 0% = 0xFFF0
+} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/moveloadarmback.cs b/Software/Stubs Collection/stubs/moveloadarmback.cs
new file mode 100644
index 000000000..b7f5e0fa6
--- /dev/null
+++ b/Software/Stubs Collection/stubs/moveloadarmback.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)
+{
+// Request ----
+// UInt32 : MotorID
+// Boolean : Direction
+// UInt32 : Position
+
+// Response ----
+// UInt32 : MotorID
+// UInt32 : Position
+// UInt32 : StatusReg
+// Boolean : Direction
+// UInt32 : MotStatus
+// Boolean : STEPLOSSA
+// Boolean : STEPLOSSB
+var response = stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,5, true, 15);
+} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/powestep01_change_mode.cs b/Software/Stubs Collection/stubs/powestep01_change_mode.cs
new file mode 100644
index 000000000..75939ea87
--- /dev/null
+++ b/Software/Stubs Collection/stubs/powestep01_change_mode.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;
+
+
+Int32 i = 6; // to run only for specific motor
+
+public void OnExecute(StubManager stubManager)
+{
+ for (i = 6; i < 14; i++)
+ {
+ //stubManager.Run<ProgressResponse>("ProgressRequest" ,0x01, 0x010000 + (i<<8) + 0x00); //change motor driver 25 to voltage mode;
+ stubManager.Run<ProgressResponse>("ProgressRequest" ,0x01, 0x010000 + (i<<8) + 0x08); //change motor driver 06 to current mode;
+ Thread.Sleep(10); //Sleep for 10 milli.
+
+ }
+} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/technician view files/alpha.tpf b/Software/Stubs Collection/stubs/technician view files/alpha.tpf
new file mode 100644
index 000000000..ed887f811
--- /dev/null
+++ b/Software/Stubs Collection/stubs/technician view files/alpha.tpf
@@ -0,0 +1,2107 @@
+<?xml version="1.0"?>
+<MachineTechViewProject xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <Items />
+ <Tabs>
+ <MachineTechViewProjectTab>
+ <Name>Temperatures</Name>
+ <Items>
+ <TechItem xsi:type="MonitorItem">
+ <ID>50bae43f-8b1a-4279-9238-b976a0c72af3</ID>
+ <Left>1530</Left>
+ <Top>193.19911504424795</Top>
+ <Width>169</Width>
+ <Height>181.37610619469029</Height>
+ <Angle>0</Angle>
+ <ItemGuid>A8DB1D27-6B25-4FB4-A3F5-46A29BA51955</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <UpdateInterval>10</UpdateInterval>
+ <DecimalPoints>2</DecimalPoints>
+ </TechItem>
+ <TechItem xsi:type="SingleGraphItem">
+ <ID>88d1ed8f-752b-4eb0-9dad-b47aee34d5db</ID>
+ <Left>677</Left>
+ <Top>64.513274336283189</Top>
+ <Width>575</Width>
+ <Height>201.64159292035407</Height>
+ <Angle>0</Angle>
+ <ItemGuid>48E8DD1B-46EC-4576-B513-7E734503B6DA</ItemGuid>
+ <ColorNumber>-14774017</ColorNumber>
+ <DecimalPlaces>1</DecimalPlaces>
+ <Duration>701</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>300</Max>
+ </TechItem>
+ <TechItem xsi:type="ControllerItem">
+ <ID>ba743caa-95f2-4b20-8c32-8e5943ada3fc</ID>
+ <Left>144</Left>
+ <Top>589.78318584070769</Top>
+ <Width>380</Width>
+ <Height>194.54867256637203</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>e4892498-fa1a-413c-9dd8-633efaade51c</ID>
+ <Left>561</Left>
+ <Top>638.02654867256649</Top>
+ <Width>203</Width>
+ <Height>160.09734513274339</Height>
+ <Angle>0</Angle>
+ <ItemGuid>6b9cba1d-4acf-4992-97ad-e422bca6ada2</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ <TechItem xsi:type="DigitalOutItem">
+ <ID>1a243586-f54c-4208-bc29-458c45acd578</ID>
+ <Left>776</Left>
+ <Top>641.06637168141606</Top>
+ <Width>215</Width>
+ <Height>159.08407079646031</Height>
+ <Angle>0</Angle>
+ <ItemGuid>b05b8324-022b-4d61-ae4a-33c97cd1f51b</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ <TechItem xsi:type="MotorItem">
+ <ID>c399ec1f-152e-4517-b6a3-c17bb445fc79</ID>
+ <Left>57</Left>
+ <Top>853.73451327433634</Top>
+ <Width>251</Width>
+ <Height>184.41592920353969</Height>
+ <Angle>0</Angle>
+ <ItemGuid>6f851979-d69c-4243-9383-1517a8bdc656</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <Speed>500</Speed>
+ </TechItem>
+ <TechItem xsi:type="DispenserItem">
+ <ID>211ad3c8-3c39-47a1-88c0-089fb13678a0</ID>
+ <Left>361</Left>
+ <Top>858.80088495575251</Top>
+ <Width>245</Width>
+ <Height>204.68141592920335</Height>
+ <Angle>0</Angle>
+ <ItemGuid>C8D8FE90-0375-44A2-A6D1-E997789E065C</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <Speed>1700</Speed>
+ <DisplayName>Dispenser 2</DisplayName>
+ </TechItem>
+ <TechItem xsi:type="MotorItem">
+ <ID>07ad9c30-c4cf-461a-904e-f6661d464c26</ID>
+ <Left>665</Left>
+ <Top>870.96017699115055</Top>
+ <Width>216</Width>
+ <Height>147.93805309734523</Height>
+ <Angle>0</Angle>
+ <ItemGuid>3bed8c31-bcd6-479b-8a5d-92ce8a5e4d41</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <Speed>500</Speed>
+ </TechItem>
+ <TechItem xsi:type="DispenserItem">
+ <ID>de829cd4-0493-48d3-ac3a-4b9db77f2f42</ID>
+ <Left>969</Left>
+ <Top>866.90707964601779</Top>
+ <Width>190</Width>
+ <Height>145.91150442477886</Height>
+ <Angle>0</Angle>
+ <ItemGuid>08ED9044-CAD6-4492-94B2-C07206E0164B</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <Speed>1700</Speed>
+ <DisplayName>Dispenser 3</DisplayName>
+ </TechItem>
+ <TechItem xsi:type="HeaterItem">
+ <ID>a15665e3-af39-42d8-8c06-97d770632e10</ID>
+ <Left>1289</Left>
+ <Top>72.951327433628364</Top>
+ <Width>207</Width>
+ <Height>184.4159292035398</Height>
+ <Angle>0</Angle>
+ <ItemGuid>6D6CFA18-5922-4AFE-84B3-2721CE128681</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <HeaterState>
+ <HeaterType>DryerAirHeater</HeaterType>
+ <SetPoint>190</SetPoint>
+ <CurrentValue>190.13</CurrentValue>
+ <IsActive>false</IsActive>
+ <IsRampingUp>false</IsRampingUp>
+ <IsInSetPoint>true</IsInSetPoint>
+ </HeaterState>
+ <SetPoint>190</SetPoint>
+ </TechItem>
+ <TechItem xsi:type="HeaterItem">
+ <ID>0ac64716-d30c-489b-939e-a26d06445866</ID>
+ <Left>450</Left>
+ <Top>54.65044247787489</Top>
+ <Width>212</Width>
+ <Height>177.32300884955754</Height>
+ <Angle>0</Angle>
+ <ItemGuid>A5DFC2DB-3B36-4377-96A0-D492CE785C00</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <HeaterState>
+ <HeaterType>DryerMainHeater</HeaterType>
+ <SetPoint>30</SetPoint>
+ <CurrentValue>206.95999999999998</CurrentValue>
+ <IsActive>true</IsActive>
+ <IsRampingUp>false</IsRampingUp>
+ <IsInSetPoint>true</IsInSetPoint>
+ </HeaterState>
+ <SetPoint>30</SetPoint>
+ </TechItem>
+ <TechItem xsi:type="HeaterItem">
+ <ID>181796d8-64f6-420a-8f37-9af9df67d6a9</ID>
+ <Left>245</Left>
+ <Top>50.159292035398948</Top>
+ <Width>199</Width>
+ <Height>180.36283185840711</Height>
+ <Angle>0</Angle>
+ <ItemGuid>86808B48-B7F9-43AD-840E-2A6A5987C305</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <HeaterState>
+ <HeaterType>DryerSecondaryHeater</HeaterType>
+ <SetPoint>0</SetPoint>
+ <CurrentValue>200.32</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>667</Left>
+ <Top>320.19026548672576</Top>
+ <Width>186</Width>
+ <Height>195.56194690265494</Height>
+ <Angle>0</Angle>
+ <ItemGuid>8E764A14-0F84-4FEC-928B-32A2509CAD57</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <HeaterState>
+ <HeaterType>HeaterZone3</HeaterType>
+ <SetPoint>150</SetPoint>
+ <CurrentValue>149.94</CurrentValue>
+ <IsActive>true</IsActive>
+ <IsRampingUp>false</IsRampingUp>
+ <IsInSetPoint>true</IsInSetPoint>
+ </HeaterState>
+ <SetPoint>150</SetPoint>
+ </TechItem>
+ <TechItem xsi:type="HeaterItem">
+ <ID>7e8dd386-cca6-4d07-8a3e-af5403756002</ID>
+ <Left>894</Left>
+ <Top>321.20353982300895</Top>
+ <Width>200</Width>
+ <Height>187.45575221238937</Height>
+ <Angle>0</Angle>
+ <ItemGuid>B4EE8CC0-EE2B-4ABE-BF09-9226860E756B</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <HeaterState>
+ <HeaterType>HeaterZone2</HeaterType>
+ <SetPoint>120</SetPoint>
+ <CurrentValue>119.97</CurrentValue>
+ <IsActive>true</IsActive>
+ <IsRampingUp>false</IsRampingUp>
+ <IsInSetPoint>true</IsInSetPoint>
+ </HeaterState>
+ <SetPoint>120</SetPoint>
+ </TechItem>
+ <TechItem xsi:type="HeaterItem">
+ <ID>32a91e5f-27c8-490d-b187-8e39b6626a13</ID>
+ <Left>1128</Left>
+ <Top>326.26991150442478</Top>
+ <Width>157</Width>
+ <Height>194.54867256637175</Height>
+ <Angle>0</Angle>
+ <ItemGuid>27E7BB74-81C3-4EF2-80AE-962F111C441F</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <HeaterState>
+ <HeaterType>HeaterZone1</HeaterType>
+ <SetPoint>80</SetPoint>
+ <CurrentValue>80.02</CurrentValue>
+ <IsActive>true</IsActive>
+ <IsRampingUp>false</IsRampingUp>
+ <IsInSetPoint>true</IsInSetPoint>
+ </HeaterState>
+ <SetPoint>80</SetPoint>
+ </TechItem>
+ <TechItem xsi:type="HeaterItem">
+ <ID>c844235a-8a29-4c2e-a964-e8f546d2ced7</ID>
+ <Left>1281</Left>
+ <Top>587.69469026548677</Top>
+ <Width>173</Width>
+ <Height>183.40265486725662</Height>
+ <Angle>0</Angle>
+ <ItemGuid>42A62A48-F1D5-4BB6-AFEA-6A7DF6DCF626</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <HeaterState>
+ <HeaterType>MixerHeater</HeaterType>
+ <SetPoint>80</SetPoint>
+ <CurrentValue>80</CurrentValue>
+ <IsActive>true</IsActive>
+ <IsRampingUp>false</IsRampingUp>
+ <IsInSetPoint>true</IsInSetPoint>
+ </HeaterState>
+ <SetPoint>80</SetPoint>
+ </TechItem>
+ <TechItem xsi:type="HeaterItem">
+ <ID>45b121b5-cf7c-41f7-8089-6d4d6b1ed2c8</ID>
+ <Left>469</Left>
+ <Top>324.61946902655012</Top>
+ <Width>178</Width>
+ <Height>207.41150442477846</Height>
+ <Angle>0</Angle>
+ <ItemGuid>94574D69-46E1-4144-A8B5-D4BF0DA96D18</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <HeaterState>
+ <HeaterType>HeaterZone4</HeaterType>
+ <SetPoint>150</SetPoint>
+ <CurrentValue>150</CurrentValue>
+ <IsActive>true</IsActive>
+ <IsRampingUp>false</IsRampingUp>
+ <IsInSetPoint>true</IsInSetPoint>
+ </HeaterState>
+ <SetPoint>150</SetPoint>
+ </TechItem>
+ <TechItem xsi:type="HeaterItem">
+ <ID>e6b3eb18-482b-450e-b8a8-d2ac6bba4fd4</ID>
+ <Left>257</Left>
+ <Top>328.66814159291738</Top>
+ <Width>186</Width>
+ <Height>195.56194690265494</Height>
+ <Angle>0</Angle>
+ <ItemGuid>D6771DF4-771E-4D62-B6BA-BDE361C0A0F3</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <HeaterState>
+ <HeaterType>HeaterZone5</HeaterType>
+ <SetPoint>150</SetPoint>
+ <CurrentValue>150</CurrentValue>
+ <IsActive>true</IsActive>
+ <IsRampingUp>false</IsRampingUp>
+ <IsInSetPoint>true</IsInSetPoint>
+ </HeaterState>
+ <SetPoint>150</SetPoint>
+ </TechItem>
+ <TechItem xsi:type="HeaterItem">
+ <ID>efff2e67-e3a3-4667-9208-4704707d7cda</ID>
+ <Left>65</Left>
+ <Top>331.91150442477812</Top>
+ <Width>186</Width>
+ <Height>195.56194690265494</Height>
+ <Angle>0</Angle>
+ <ItemGuid>D2B6CAA0-055E-4871-8D91-A5370F1ACB22</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <HeaterState>
+ <HeaterType>HeaterZone6</HeaterType>
+ <SetPoint>160</SetPoint>
+ <CurrentValue>159.97</CurrentValue>
+ <IsActive>true</IsActive>
+ <IsRampingUp>false</IsRampingUp>
+ <IsInSetPoint>true</IsInSetPoint>
+ </HeaterState>
+ <SetPoint>160</SetPoint>
+ </TechItem>
+ <TechItem xsi:type="MonitorItem">
+ <ID>f9936dba-cef8-41e3-a715-eb629dca1870</ID>
+ <Left>1311</Left>
+ <Top>346.53539823008856</Top>
+ <Width>199</Width>
+ <Height>114.5</Height>
+ <Angle>0</Angle>
+ <ItemGuid>1778C1A7-AFB5-42F9-9E00-E80D30D9FC0A</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <UpdateInterval>10</UpdateInterval>
+ <DecimalPoints>0</DecimalPoints>
+ </TechItem>
+ <TechItem xsi:type="TextItem">
+ <ID>217c677a-3e11-4a7c-959b-616dae1259dd</ID>
+ <Left>1167</Left>
+ <Top>280.67256637168151</Top>
+ <Width>44</Width>
+ <Height>42.557522123893705</Height>
+ <Angle>0</Angle>
+ <ColorNumber>-14774017</ColorNumber>
+ <Text>A</Text>
+ </TechItem>
+ <TechItem xsi:type="TextItem">
+ <ID>f129ea0d-9abb-437f-928e-1cd1f569db2a</ID>
+ <Left>980.0000000000025</Left>
+ <Top>272.39823008849913</Top>
+ <Width>44</Width>
+ <Height>42.557522123893705</Height>
+ <Angle>0</Angle>
+ <ColorNumber>-14774017</ColorNumber>
+ <Text>C</Text>
+ </TechItem>
+ <TechItem xsi:type="TextItem">
+ <ID>5f2610dc-3b9d-4302-b8f5-77a5e1c73b8c</ID>
+ <Left>739.99999999999727</Left>
+ <Top>269.79203539822839</Top>
+ <Width>44</Width>
+ <Height>42.557522123893705</Height>
+ <Angle>0</Angle>
+ <ColorNumber>-14774017</ColorNumber>
+ <Text>D</Text>
+ </TechItem>
+ <TechItem xsi:type="TextItem">
+ <ID>eadb5257-47a2-4336-a72a-f2d157fe70cb</ID>
+ <Left>552.99999999999909</Left>
+ <Top>277.11946902654887</Top>
+ <Width>44</Width>
+ <Height>42.557522123893705</Height>
+ <Angle>0</Angle>
+ <ColorNumber>-14774017</ColorNumber>
+ <Text>F</Text>
+ </TechItem>
+ <TechItem xsi:type="TextItem">
+ <ID>6c59af66-169a-46e0-89ae-a81e3e619043</ID>
+ <Left>334.00000000000153</Left>
+ <Top>280.39380530973477</Top>
+ <Width>44</Width>
+ <Height>42.557522123893705</Height>
+ <Angle>0</Angle>
+ <ColorNumber>-14774017</ColorNumber>
+ <Text>I</Text>
+ </TechItem>
+ <TechItem xsi:type="TextItem">
+ <ID>3b32b9a8-f300-443f-950e-c49f81678bac</ID>
+ <Left>133.99999999999966</Left>
+ <Top>283.84070796460247</Top>
+ <Width>44</Width>
+ <Height>42.557522123893705</Height>
+ <Angle>0</Angle>
+ <ColorNumber>-14774017</ColorNumber>
+ <Text>L</Text>
+ </TechItem>
+ <TechItem xsi:type="PidItem">
+ <ID>f6d44793-ed44-46ed-8854-eacbc11af10c</ID>
+ <Left>909</Left>
+ <Top>544.12389380530976</Top>
+ <Width>219</Width>
+ <Height>97.2743362831859</Height>
+ <Angle>0</Angle>
+ <ItemGuid>df38139e-0026-46bc-b72f-df5f9eec80f7</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ <TechItem xsi:type="DigitalOutItem">
+ <ID>dd8f8a58-c09f-43dc-af6f-13fe83471be4</ID>
+ <Left>1005</Left>
+ <Top>624.17256637168157</Top>
+ <Width>237</Width>
+ <Height>170.23008849557505</Height>
+ <Angle>0</Angle>
+ <ItemGuid>cac03991-b332-4dfa-b491-c0e381b74fb9</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ <TechItem xsi:type="MonitorRecorderItem">
+ <ID>43793f93-da64-4409-b583-bca498f641e6</ID>
+ <Left>18</Left>
+ <Top>25.3274336283186</Top>
+ <Width>203</Width>
+ <Height>107.40707964601774</Height>
+ <Angle>0</Angle>
+ <ColorNumber>-1</ColorNumber>
+ <SelectedMonitorsGuids />
+ </TechItem>
+ </Items>
+ </MachineTechViewProjectTab>
+ <MachineTechViewProjectTab>
+ <Name>Thread</Name>
+ <Items>
+ <TechItem xsi:type="MonitorItem">
+ <ID>50bae43f-8b1a-4279-9238-b976a0c72af3</ID>
+ <Left>1530</Left>
+ <Top>193.19911504424795</Top>
+ <Width>169</Width>
+ <Height>181.37610619469029</Height>
+ <Angle>0</Angle>
+ <ItemGuid>A8DB1D27-6B25-4FB4-A3F5-46A29BA51955</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <UpdateInterval>10</UpdateInterval>
+ <DecimalPoints>2</DecimalPoints>
+ </TechItem>
+ <TechItem xsi:type="MonitorItem">
+ <ID>68eef943-2151-4df5-be61-044c3865606e</ID>
+ <Left>1172</Left>
+ <Top>145.78318584070678</Top>
+ <Width>175</Width>
+ <Height>167.827433628319</Height>
+ <Angle>0</Angle>
+ <ItemGuid>96B89605-F999-43FE-A1CD-2645BFB33A36</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <UpdateInterval>10</UpdateInterval>
+ <DecimalPoints>2</DecimalPoints>
+ </TechItem>
+ <TechItem xsi:type="MonitorItem">
+ <ID>6be024c6-3d1b-4267-9b77-44473aba56b7</ID>
+ <Left>988</Left>
+ <Top>143.32300884955998</Top>
+ <Width>190</Width>
+ <Height>167.09734513274049</Height>
+ <Angle>0</Angle>
+ <ItemGuid>FC60060A-3736-4910-B41A-FF6DABDF0E9E</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <UpdateInterval>10</UpdateInterval>
+ <DecimalPoints>2</DecimalPoints>
+ </TechItem>
+ <TechItem xsi:type="MonitorItem">
+ <ID>7c720f3b-00e1-49dd-92f9-fdd1e9686623</ID>
+ <Left>817</Left>
+ <Top>142.42035398230098</Top>
+ <Width>169</Width>
+ <Height>168.31858407079625</Height>
+ <Angle>0</Angle>
+ <ItemGuid>4CE6A82E-D841-4D33-BBB2-11F0743A441C</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <UpdateInterval>10</UpdateInterval>
+ <DecimalPoints>2</DecimalPoints>
+ </TechItem>
+ <TechItem xsi:type="SingleGraphItem">
+ <ID>3ebd6759-521b-4ed1-a353-ee1ad7801f28</ID>
+ <Left>922</Left>
+ <Top>516.43362831858417</Top>
+ <Width>439</Width>
+ <Height>304.995575221239</Height>
+ <Angle>0</Angle>
+ <ItemGuid>D126DB23-784B-4F0C-8F88-D89A65A7549F</ItemGuid>
+ <ColorNumber>-14774017</ColorNumber>
+ <DecimalPlaces>1</DecimalPlaces>
+ <Duration>1460</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>16384</Max>
+ </TechItem>
+ <TechItem xsi:type="SingleGraphItem">
+ <ID>984b4126-3dda-4624-a79f-0646eb0e1358</ID>
+ <Left>465</Left>
+ <Top>515.420353982301</Top>
+ <Width>439</Width>
+ <Height>304.995575221239</Height>
+ <Angle>0</Angle>
+ <ItemGuid>10102BC3-0EAE-47FF-A8E5-8640780CAA3D</ItemGuid>
+ <ColorNumber>-14774017</ColorNumber>
+ <DecimalPlaces>1</DecimalPlaces>
+ <Duration>1516</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>16384</Max>
+ </TechItem>
+ <TechItem xsi:type="SingleGraphItem">
+ <ID>8ebc3ab7-a02d-4b12-93b3-2563443831d7</ID>
+ <Left>15</Left>
+ <Top>518.46017699115032</Top>
+ <Width>439</Width>
+ <Height>304.995575221239</Height>
+ <Angle>0</Angle>
+ <ItemGuid>C0BCCD5C-346B-4C4A-A080-39D28E9E1A0C</ItemGuid>
+ <ColorNumber>-14774017</ColorNumber>
+ <DecimalPlaces>1</DecimalPlaces>
+ <Duration>1398</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>16384</Max>
+ </TechItem>
+ <TechItem xsi:type="SingleGraphItem">
+ <ID>acafb268-5e97-4277-8dc8-173250a9e3f8</ID>
+ <Left>12</Left>
+ <Top>13.849557522123973</Top>
+ <Width>439</Width>
+ <Height>304.995575221239</Height>
+ <Angle>0</Angle>
+ <ItemGuid>9FBC5460-BA59-486B-8D85-BD7D8A959F98</ItemGuid>
+ <ColorNumber>-14774017</ColorNumber>
+ <DecimalPlaces>1</DecimalPlaces>
+ <Duration>1273</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>100</Max>
+ </TechItem>
+ <TechItem xsi:type="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>
+ <DecimalPlaces>1</DecimalPlaces>
+ <Duration>514</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>100000</Max>
+ </TechItem>
+ <TechItem xsi:type="SingleGraphItem">
+ <ID>75b99507-4eba-4b11-b52e-26732d4c5479</ID>
+ <Left>19</Left>
+ <Top>324.14159292035305</Top>
+ <Width>429</Width>
+ <Height>193.26548672566258</Height>
+ <Angle>0</Angle>
+ <ItemGuid>F1DF490B-0577-4FA7-ACA1-0EEF4F934E8F</ItemGuid>
+ <ColorNumber>-14774017</ColorNumber>
+ <DecimalPlaces>4</DecimalPlaces>
+ <Duration>1398</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>100</Max>
+ </TechItem>
+ <TechItem xsi:type="SingleGraphItem">
+ <ID>a30e48de-be76-4230-92d0-d27d6f37b940</ID>
+ <Left>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>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>100</Max>
+ </TechItem>
+ <TechItem xsi:type="SingleGraphItem">
+ <ID>5ac4b368-093a-4192-98d4-e9d24f229b13</ID>
+ <Left>928</Left>
+ <Top>321.64601769912122</Top>
+ <Width>429</Width>
+ <Height>193.26548672566258</Height>
+ <Angle>0</Angle>
+ <ItemGuid>84CF23C9-D20D-4C08-BE1D-80201FC43C06</ItemGuid>
+ <ColorNumber>-14774017</ColorNumber>
+ <DecimalPlaces>4</DecimalPlaces>
+ <Duration>1398</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>100</Max>
+ </TechItem>
+ <TechItem xsi:type="MonitorRecorderItem">
+ <ID>9c34dc69-cfaa-48b4-9d02-8f0d9bba79dd</ID>
+ <Left>1303</Left>
+ <Top>34.380530973454768</Top>
+ <Width>176</Width>
+ <Height>83.05309734512457</Height>
+ <Angle>0</Angle>
+ <ColorNumber>-1</ColorNumber>
+ <SelectedMonitorsGuids>
+ <string>89B7B89D-8050-4188-B568-35B1910CFB6F</string>
+ <string>96B89605-F999-43FE-A1CD-2645BFB33A36</string>
+ <string>84CF23C9-D20D-4C08-BE1D-80201FC43C06</string>
+ <string>FC60060A-3736-4910-B41A-FF6DABDF0E9E</string>
+ <string>5F12B974-2C9E-4DDD-9B20-733251A5D7E6</string>
+ <string>9ADF7823-B293-4275-9999-F62474D246AA</string>
+ <string>4CE6A82E-D841-4D33-BBB2-11F0743A441C</string>
+ <string>F1DF490B-0577-4FA7-ACA1-0EEF4F934E8F</string>
+ </SelectedMonitorsGuids>
+ </TechItem>
+ </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>
+ <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>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>100</Max>
+ </TechItem>
+ <TechItem xsi:type="SingleGraphItem">
+ <ID>cc99a514-1498-4b93-a4eb-4e0a2a2e9de6</ID>
+ <Left>628</Left>
+ <Top>765.4469026548752</Top>
+ <Width>394</Width>
+ <Height>372.88495575221242</Height>
+ <Angle>0</Angle>
+ <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid>
+ <ColorNumber>-14774017</ColorNumber>
+ <DecimalPlaces>1</DecimalPlaces>
+ <Duration>1282</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>100</Max>
+ </TechItem>
+ <TechItem xsi:type="ValveItem">
+ <ID>cdddd48e-422d-48f4-8397-5032c3705fdb</ID>
+ <Left>1069</Left>
+ <Top>698.04867256637226</Top>
+ <Width>382</Width>
+ <Height>136.79203539823016</Height>
+ <Angle>0</Angle>
+ <ItemGuid>16C0F85C-0479-42F4-A67E-3E0CD3B23C2D</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ <TechItem xsi:type="MonitorItem">
+ <ID>ee6d4c5a-ca5b-4557-8012-dacf700cdc08</ID>
+ <Left>231</Left>
+ <Top>624.06637168142413</Top>
+ <Width>144</Width>
+ <Height>80.495575221237516</Height>
+ <Angle>0</Angle>
+ <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C010</ItemGuid>
+ <ColorNumber>-8391822</ColorNumber>
+ <UpdateInterval>10</UpdateInterval>
+ <DecimalPoints>0</DecimalPoints>
+ </TechItem>
+ <TechItem xsi:type="MonitorItem">
+ <ID>20576bb2-202f-4170-9af5-f3c18b410112</ID>
+ <Left>77</Left>
+ <Top>624.46460176991513</Top>
+ <Width>144</Width>
+ <Height>80.495575221237516</Height>
+ <Angle>0</Angle>
+ <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C011</ItemGuid>
+ <ColorNumber>-2186185</ColorNumber>
+ <UpdateInterval>10</UpdateInterval>
+ <DecimalPoints>0</DecimalPoints>
+ </TechItem>
+ </Items>
+ </MachineTechViewProjectTab>
+ <MachineTechViewProjectTab>
+ <Name>Thread insertion</Name>
+ <Items>
+ <TechItem xsi:type="MotorItem">
+ <ID>443a977c-8e89-4a56-82e4-684bac7945c9</ID>
+ <Left>25</Left>
+ <Top>22.761061946902203</Top>
+ <Width>247</Width>
+ <Height>172.25663716814159</Height>
+ <Angle>0</Angle>
+ <ItemGuid>08d15ca1-d7d1-460f-8f37-42c37c287cd1</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <Speed>500</Speed>
+ </TechItem>
+ <TechItem xsi:type="MotorItem">
+ <ID>a821b716-cb7d-4951-84ee-e56955431099</ID>
+ <Left>355</Left>
+ <Top>20.592920353981697</Top>
+ <Width>260</Width>
+ <Height>153.00442477876106</Height>
+ <Angle>0</Angle>
+ <ItemGuid>b90a4e78-ebbf-44db-829b-949517d6400b</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <Speed>50</Speed>
+ </TechItem>
+ <TechItem xsi:type="MotorItem">
+ <ID>e36e321b-d48d-4199-a1ee-75ac18e9de1e</ID>
+ <Left>694</Left>
+ <Top>19.367256637167998</Top>
+ <Width>217</Width>
+ <Height>155.26106194690203</Height>
+ <Angle>0</Angle>
+ <ItemGuid>b7c1aea4-32c1-41cb-bca3-4aa665529b49</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <Speed>50</Speed>
+ </TechItem>
+ <TechItem xsi:type="MotorItem">
+ <ID>8790db03-4dfd-4d49-aec0-706babb55af9</ID>
+ <Left>364</Left>
+ <Top>222.16814159291846</Top>
+ <Width>240</Width>
+ <Height>172.30973451327589</Height>
+ <Angle>0</Angle>
+ <ItemGuid>2d3eaca5-4dfd-40d9-9d1f-aa4ae794eddc</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <Speed>500</Speed>
+ </TechItem>
+ <TechItem xsi:type="MotorItem">
+ <ID>69ebcb28-13d9-41b3-a9ef-b2be51584141</ID>
+ <Left>29</Left>
+ <Top>241.34955752210982</Top>
+ <Width>263</Width>
+ <Height>174.296460176989</Height>
+ <Angle>0</Angle>
+ <ItemGuid>c6099065-a735-4cc5-b575-c31a45bb9262</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <Speed>400</Speed>
+ </TechItem>
+ <TechItem xsi:type="ThreadMotionItem">
+ <ID>4d562029-3fdf-40a4-a5a7-9a322253c912</ID>
+ <Left>1168</Left>
+ <Top>47.305309734517039</Top>
+ <Width>304</Width>
+ <Height>167.26548672566202</Height>
+ <Angle>0</Angle>
+ <ColorNumber>-1</ColorNumber>
+ <Speed>40</Speed>
+ </TechItem>
+ <TechItem xsi:type="BreakSensorItem">
+ <ID>92607e12-2dd6-41c9-8f89-f051f386b734</ID>
+ <Left>1258</Left>
+ <Top>277.55752212389069</Top>
+ <Width>240</Width>
+ <Height>156.04424778761069</Height>
+ <Angle>0</Angle>
+ <ItemGuid>DCE08A06-6711-43AE-AB7C-EADD5AB70EE0</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ <TechItem xsi:type="MotorItem">
+ <ID>7b5b6896-f626-4e59-a5cf-2600e603c0f6</ID>
+ <Left>695</Left>
+ <Top>223.44247787610908</Top>
+ <Width>228</Width>
+ <Height>175.0353982300901</Height>
+ <Angle>0</Angle>
+ <ItemGuid>7b6d0a93-5a91-4e1f-af47-353afd8b5ea6</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <Speed>83.833754740833143</Speed>
+ </TechItem>
+ <TechItem xsi:type="MotorItem">
+ <ID>2052a2d3-843c-4a1c-87fd-acd0832fd1b9</ID>
+ <Left>81</Left>
+ <Top>542.88495575220634</Top>
+ <Width>220</Width>
+ <Height>168.473451327436</Height>
+ <Angle>0</Angle>
+ <ItemGuid>7c03f12f-ab2a-4421-8575-aefd6dec0001</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <Speed>1000</Speed>
+ </TechItem>
+ <TechItem xsi:type="MotorItem">
+ <ID>339b7d00-d688-41cf-926a-8171d5e62740</ID>
+ <Left>376</Left>
+ <Top>553.11061946903</Top>
+ <Width>240</Width>
+ <Height>159.84070796460173</Height>
+ <Angle>0</Angle>
+ <ItemGuid>f3b5076e-cba3-4ad2-b3cc-0c4e907bd9ef</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <Speed>98.094184576485333</Speed>
+ </TechItem>
+ <TechItem xsi:type="MotorItem">
+ <ID>7644a8f9-00a2-4e37-8f48-0667b1541114</ID>
+ <Left>1014</Left>
+ <Top>290.60619469026437</Top>
+ <Width>240</Width>
+ <Height>172.30973451327589</Height>
+ <Angle>0</Angle>
+ <ItemGuid>92237d83-9f85-48db-aa6f-2fc5c9e0d8cd</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <Speed>500</Speed>
+ </TechItem>
+ <TechItem xsi:type="DigitalOutItem">
+ <ID>c706d31b-48b0-44cc-a9c4-11d3acdcf667</ID>
+ <Left>548</Left>
+ <Top>418.71652683599893</Top>
+ <Width>269</Width>
+ <Height>127.67256637168134</Height>
+ <Angle>0</Angle>
+ <ItemGuid>2a454081-bd5e-41de-ae5d-97aefe1d76de</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ <TechItem xsi:type="MotorItem">
+ <ID>7ccff69d-50f9-4e9b-a997-72a67917df5e</ID>
+ <Left>803</Left>
+ <Top>569.80530973451619</Top>
+ <Width>227</Width>
+ <Height>145.08849557522183</Height>
+ <Angle>0</Angle>
+ <ItemGuid>9c02effb-7deb-40a1-90c3-df1fb48e6431</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <Speed>30</Speed>
+ </TechItem>
+ <TechItem xsi:type="MotorItem">
+ <ID>a88a74cb-418b-4ed0-89ec-c42ff560528e</ID>
+ <Left>1107</Left>
+ <Top>573.87168141592883</Top>
+ <Width>227</Width>
+ <Height>145.08849557522183</Height>
+ <Angle>0</Angle>
+ <ItemGuid>a359e9d0-adcc-40a5-b3d9-b9cb26eca092</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <Speed>30</Speed>
+ </TechItem>
+ </Items>
+ </MachineTechViewProjectTab>
+ <MachineTechViewProjectTab>
+ <Name>Head graphs</Name>
+ <Items>
+ <TechItem xsi:type="SingleGraphItem">
+ <ID>ffe980da-dbbe-4bac-9595-46f587e9df00</ID>
+ <Left>1</Left>
+ <Top>57.486725663716754</Top>
+ <Width>430</Width>
+ <Height>187.15486725663709</Height>
+ <Angle>0</Angle>
+ <ItemGuid>D7585119-4A42-4370-8F1E-F3E62553E588</ItemGuid>
+ <ColorNumber>-14774017</ColorNumber>
+ <DecimalPlaces>2</DecimalPlaces>
+ <Duration>2962</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>300</Max>
+ </TechItem>
+ <TechItem xsi:type="SingleGraphItem">
+ <ID>c4e19f7c-e6e9-4f45-987e-f124456b2529</ID>
+ <Left>784</Left>
+ <Top>57.265486725668495</Top>
+ <Width>412</Width>
+ <Height>195.38938053097343</Height>
+ <Angle>0</Angle>
+ <ItemGuid>A8DB1D27-6B25-4FB4-A3F5-46A29BA51955</ItemGuid>
+ <ColorNumber>-14774017</ColorNumber>
+ <DecimalPlaces>3</DecimalPlaces>
+ <Duration>2817</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>300</Max>
+ </TechItem>
+ <TechItem xsi:type="SingleGraphItem">
+ <ID>b8b24455-1c20-417d-bd78-5fe4c7e3d023</ID>
+ <Left>0</Left>
+ <Top>240.77433628319324</Top>
+ <Width>430</Width>
+ <Height>224.47345132743214</Height>
+ <Angle>0</Angle>
+ <ItemGuid>6C0C1AB0-3EE9-40D7-8424-A79436FBC804</ItemGuid>
+ <ColorNumber>-14774017</ColorNumber>
+ <DecimalPlaces>2</DecimalPlaces>
+ <Duration>2982</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>300</Max>
+ </TechItem>
+ <TechItem xsi:type="SingleGraphItem">
+ <ID>2129a0cd-454f-4834-8197-3b048bf4b978</ID>
+ <Left>779</Left>
+ <Top>253.09292035398954</Top>
+ <Width>414</Width>
+ <Height>208.6194690265487</Height>
+ <Angle>0</Angle>
+ <ItemGuid>098F7CAB-030C-46B0-B2B8-A85AF2253032</ItemGuid>
+ <ColorNumber>-14774017</ColorNumber>
+ <DecimalPlaces>2</DecimalPlaces>
+ <Duration>2949</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>100</Max>
+ </TechItem>
+ <TechItem xsi:type="SingleGraphItem">
+ <ID>892fabb7-01fa-4b39-a19e-a557fafae0ac</ID>
+ <Left>3</Left>
+ <Top>465.50884955753315</Top>
+ <Width>423</Width>
+ <Height>226.97345132743362</Height>
+ <Angle>0</Angle>
+ <ItemGuid>DACEBF90-E2B4-4CC9-A973-B8B429AA0089</ItemGuid>
+ <ColorNumber>-14774017</ColorNumber>
+ <DecimalPlaces>2</DecimalPlaces>
+ <Duration>2628</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>300</Max>
+ </TechItem>
+ <TechItem xsi:type="SingleGraphItem">
+ <ID>4859974c-7224-42d5-97ca-0e2e549372f5</ID>
+ <Left>788</Left>
+ <Top>469.56194690266409</Top>
+ <Width>409</Width>
+ <Height>220.55752212389314</Height>
+ <Angle>0</Angle>
+ <ItemGuid>246C2551-5EFD-48E9-94F6-6313C5E5018F</ItemGuid>
+ <ColorNumber>-14774017</ColorNumber>
+ <DecimalPlaces>2</DecimalPlaces>
+ <Duration>3153</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>300</Max>
+ </TechItem>
+ <TechItem xsi:type="PidItem">
+ <ID>81b78212-14d8-4a66-bf3a-eeea9900e0d6</ID>
+ <Left>423</Left>
+ <Top>69.712389380530908</Top>
+ <Width>179</Width>
+ <Height>131.99999999999773</Height>
+ <Angle>0</Angle>
+ <ItemGuid>df38139e-0026-46bc-b72f-df5f9eec80f7</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ <TechItem xsi:type="PidItem">
+ <ID>34c56855-114d-4c94-b8b7-16881430d626</ID>
+ <Left>1198</Left>
+ <Top>60.787610619475856</Top>
+ <Width>144</Width>
+ <Height>147.96017699114969</Height>
+ <Angle>0</Angle>
+ <ItemGuid>d59b64f7-a8cf-4a2b-935a-943ae35fb78c</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ <TechItem xsi:type="PidItem">
+ <ID>0d35c220-41f5-49e8-99ba-72d5134e4c81</ID>
+ <Left>1200</Left>
+ <Top>269.79646017698923</Top>
+ <Width>148</Width>
+ <Height>154.90265486725662</Height>
+ <Angle>0</Angle>
+ <ItemGuid>9de55ec4-201f-4f62-9003-f63ebea06f8f</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ <TechItem xsi:type="PidItem">
+ <ID>e72a263a-41c2-408c-ac98-7345c787a3b0</ID>
+ <Left>1204</Left>
+ <Top>471.31858407080483</Top>
+ <Width>148</Width>
+ <Height>160.278761061948</Height>
+ <Angle>0</Angle>
+ <ItemGuid>d28bfa3c-edce-4f19-a296-3da251fcc0e2</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ <TechItem xsi:type="PidItem">
+ <ID>62fd293e-9461-4c91-a5b3-26ef7893f780</ID>
+ <Left>420</Left>
+ <Top>250.1769911504424</Top>
+ <Width>189</Width>
+ <Height>145.75221238937741</Height>
+ <Angle>0</Angle>
+ <ItemGuid>81a3ae80-f4ea-4857-bc4e-2055d3b5fbc7</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ <TechItem xsi:type="PidItem">
+ <ID>10c62974-d2f9-4849-b88f-f223e04bacc6</ID>
+ <Left>435</Left>
+ <Top>474.43362831858008</Top>
+ <Width>178</Width>
+ <Height>153.6504424778766</Height>
+ <Angle>0</Angle>
+ <ItemGuid>16D0DEF7-A2E0-4163-9F4B-FBEC2573BCC7</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ <TechItem xsi:type="SingleGraphItem">
+ <ID>37657a24-40d2-4c10-be0b-0587406d77bf</ID>
+ <Left>10</Left>
+ <Top>691.58849557522046</Top>
+ <Width>415</Width>
+ <Height>203.57522123893648</Height>
+ <Angle>0</Angle>
+ <ItemGuid>AFB7B6F7-8FFB-4A7F-B814-04F0C163CAA1</ItemGuid>
+ <ColorNumber>-14774017</ColorNumber>
+ <DecimalPlaces>2</DecimalPlaces>
+ <Duration>3153</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>300</Max>
+ </TechItem>
+ <TechItem xsi:type="SingleGraphItem">
+ <ID>9330a6be-17f1-4ecb-978d-719adf9fec1f</ID>
+ <Left>781</Left>
+ <Top>692.69911504425033</Top>
+ <Width>409</Width>
+ <Height>220.55752212389314</Height>
+ <Angle>0</Angle>
+ <ItemGuid>9A3877B2-9F98-4A5C-9A93-DECA2836FA8A</ItemGuid>
+ <ColorNumber>-14774017</ColorNumber>
+ <DecimalPlaces>2</DecimalPlaces>
+ <Duration>3153</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>300</Max>
+ </TechItem>
+ <TechItem xsi:type="PidItem">
+ <ID>3228b2ba-83f3-4eb2-a6d2-7200301758a4</ID>
+ <Left>1191</Left>
+ <Top>723.03539823007986</Top>
+ <Width>186</Width>
+ <Height>110.3451327433603</Height>
+ <Angle>0</Angle>
+ <ItemGuid>105ac1be-e6db-4a57-9f4a-bb9c780afd33</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ <TechItem xsi:type="PidItem">
+ <ID>6fd0eeb3-6a2a-435f-a877-0c17c26c6692</ID>
+ <Left>411</Left>
+ <Top>727.73008849557368</Top>
+ <Width>204</Width>
+ <Height>114.92035398229848</Height>
+ <Angle>0</Angle>
+ <ItemGuid>9d403aad-157a-4128-874c-704da4ed9ac1</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ <TechItem xsi:type="HeaterItem">
+ <ID>f9b4095c-4e87-41f2-955c-3b572ebee370</ID>
+ <Left>611</Left>
+ <Top>269.90265486725662</Top>
+ <Width>142</Width>
+ <Height>151.99115044247787</Height>
+ <Angle>0</Angle>
+ <ItemGuid>94574D69-46E1-4144-A8B5-D4BF0DA96D18</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <HeaterState>
+ <HeaterType>HeaterZone4</HeaterType>
+ <SetPoint>150</SetPoint>
+ <CurrentValue>150</CurrentValue>
+ <IsActive>true</IsActive>
+ <IsRampingUp>false</IsRampingUp>
+ <IsInSetPoint>true</IsInSetPoint>
+ </HeaterState>
+ <SetPoint>150</SetPoint>
+ </TechItem>
+ <TechItem xsi:type="HeaterItem">
+ <ID>4fa7a50d-5155-4785-95a0-508cd40fad4d</ID>
+ <Left>1360</Left>
+ <Top>77.818584070796476</Top>
+ <Width>140</Width>
+ <Height>168.77876106194691</Height>
+ <Angle>0</Angle>
+ <ItemGuid>27E7BB74-81C3-4EF2-80AE-962F111C441F</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <HeaterState>
+ <HeaterType>HeaterZone1</HeaterType>
+ <SetPoint>80</SetPoint>
+ <CurrentValue>80.02</CurrentValue>
+ <IsActive>true</IsActive>
+ <IsRampingUp>false</IsRampingUp>
+ <IsInSetPoint>true</IsInSetPoint>
+ </HeaterState>
+ <SetPoint>80</SetPoint>
+ </TechItem>
+ <TechItem xsi:type="HeaterItem">
+ <ID>9da56601-7b5b-4f0f-afbf-2b31970b104f</ID>
+ <Left>1352</Left>
+ <Top>292.19469026548552</Top>
+ <Width>166</Width>
+ <Height>148.95132743362956</Height>
+ <Angle>0</Angle>
+ <ItemGuid>8E764A14-0F84-4FEC-928B-32A2509CAD57</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <HeaterState>
+ <HeaterType>HeaterZone3</HeaterType>
+ <SetPoint>150</SetPoint>
+ <CurrentValue>149.94</CurrentValue>
+ <IsActive>true</IsActive>
+ <IsRampingUp>false</IsRampingUp>
+ <IsInSetPoint>true</IsInSetPoint>
+ </HeaterState>
+ <SetPoint>150</SetPoint>
+ </TechItem>
+ <TechItem xsi:type="HeaterItem">
+ <ID>b700e59d-f923-4f13-9dcc-942050548c22</ID>
+ <Left>1359</Left>
+ <Top>501.84513274336314</Top>
+ <Width>160</Width>
+ <Height>139.92920353982277</Height>
+ <Angle>0</Angle>
+ <ItemGuid>D6771DF4-771E-4D62-B6BA-BDE361C0A0F3</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <HeaterState>
+ <HeaterType>HeaterZone5</HeaterType>
+ <SetPoint>150</SetPoint>
+ <CurrentValue>150</CurrentValue>
+ <IsActive>true</IsActive>
+ <IsRampingUp>false</IsRampingUp>
+ <IsInSetPoint>true</IsInSetPoint>
+ </HeaterState>
+ <SetPoint>150</SetPoint>
+ </TechItem>
+ <TechItem xsi:type="HeaterItem">
+ <ID>97bf8fa2-b07f-4f0e-87ac-820ea52d236e</ID>
+ <Left>1358</Left>
+ <Top>716.707964601771</Top>
+ <Width>160</Width>
+ <Height>128.73451327433531</Height>
+ <Angle>0</Angle>
+ <ItemGuid>42A62A48-F1D5-4BB6-AFEA-6A7DF6DCF626</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <HeaterState>
+ <HeaterType>MixerHeater</HeaterType>
+ <SetPoint>80</SetPoint>
+ <CurrentValue>80</CurrentValue>
+ <IsActive>true</IsActive>
+ <IsRampingUp>false</IsRampingUp>
+ <IsInSetPoint>true</IsInSetPoint>
+ </HeaterState>
+ <SetPoint>80</SetPoint>
+ </TechItem>
+ <TechItem xsi:type="HeaterItem">
+ <ID>3941a557-05e6-4c1b-bb98-4f2a59892431</ID>
+ <Left>606</Left>
+ <Top>66.234513274336223</Top>
+ <Width>155</Width>
+ <Height>157.05752212389382</Height>
+ <Angle>0</Angle>
+ <ItemGuid>B4EE8CC0-EE2B-4ABE-BF09-9226860E756B</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <HeaterState>
+ <HeaterType>HeaterZone2</HeaterType>
+ <SetPoint>120</SetPoint>
+ <CurrentValue>119.97</CurrentValue>
+ <IsActive>true</IsActive>
+ <IsRampingUp>false</IsRampingUp>
+ <IsInSetPoint>true</IsInSetPoint>
+ </HeaterState>
+ <SetPoint>120</SetPoint>
+ </TechItem>
+ <TechItem xsi:type="HeaterItem">
+ <ID>3020fbc5-305e-4adf-9f1e-d7a48168e2e7</ID>
+ <Left>628</Left>
+ <Top>488.76991150442484</Top>
+ <Width>133</Width>
+ <Height>155.03097345132744</Height>
+ <Angle>0</Angle>
+ <ItemGuid>D2B6CAA0-055E-4871-8D91-A5370F1ACB22</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <HeaterState>
+ <HeaterType>HeaterZone6</HeaterType>
+ <SetPoint>160</SetPoint>
+ <CurrentValue>159.97</CurrentValue>
+ <IsActive>true</IsActive>
+ <IsRampingUp>false</IsRampingUp>
+ <IsInSetPoint>true</IsInSetPoint>
+ </HeaterState>
+ <SetPoint>160</SetPoint>
+ </TechItem>
+ <TechItem xsi:type="HeaterItem">
+ <ID>a4049a51-7417-4eab-8bc1-837574307e93</ID>
+ <Left>599</Left>
+ <Top>716.27876106194685</Top>
+ <Width>161</Width>
+ <Height>143.34955752212409</Height>
+ <Angle>0</Angle>
+ <ItemGuid>6D6CFA18-5922-4AFE-84B3-2721CE128681</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <HeaterState>
+ <HeaterType>DryerAirHeater</HeaterType>
+ <SetPoint>190</SetPoint>
+ <CurrentValue>190.13</CurrentValue>
+ <IsActive>false</IsActive>
+ <IsRampingUp>false</IsRampingUp>
+ <IsInSetPoint>true</IsInSetPoint>
+ </HeaterState>
+ <SetPoint>190</SetPoint>
+ </TechItem>
+ </Items>
+ </MachineTechViewProjectTab>
+ <MachineTechViewProjectTab>
+ <Name>waste</Name>
+ <Items>
+ <TechItem xsi:type="DigitalOutItem">
+ <ID>bb9bf273-0a3d-4202-98ce-37a5f206ed75</ID>
+ <Left>119</Left>
+ <Top>68.898230088495609</Top>
+ <Width>339</Width>
+ <Height>184.4159292035398</Height>
+ <Angle>0</Angle>
+ <ItemGuid>7e1f53ec-8176-4efa-ac3d-c8f2436e60d1</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ <TechItem xsi:type="DigitalOutItem">
+ <ID>59678a51-f995-4952-b250-e449f1fcbeac</ID>
+ <Left>468</Left>
+ <Top>80.336283185839477</Top>
+ <Width>280</Width>
+ <Height>166.17699115044252</Height>
+ <Angle>0</Angle>
+ <ItemGuid>78db28d0-0407-4942-bb62-c44da81c4f9e</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ <TechItem xsi:type="DigitalInItem">
+ <ID>8f9ff579-0e9d-4f48-8ed0-6fa563f2aba7</ID>
+ <Left>873</Left>
+ <Top>63.831858407079665</Top>
+ <Width>174</Width>
+ <Height>133.75221238938059</Height>
+ <Angle>0</Angle>
+ <ItemGuid>06bd7c0b-5aef-445a-86c0-853becf8594b</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ <TechItem xsi:type="DigitalInItem">
+ <ID>70d1bd1e-acdb-436a-b205-6eeb9d137120</ID>
+ <Left>1070</Left>
+ <Top>70.106194690265909</Top>
+ <Width>221</Width>
+ <Height>123.61946902654864</Height>
+ <Angle>0</Angle>
+ <ItemGuid>4048bf02-27dc-4049-9284-fe913a7e0ebe</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ <TechItem xsi:type="DigitalInItem">
+ <ID>dcc7ce16-5b89-4ff8-acd5-7fb0b9ebb6d1</ID>
+ <Left>877</Left>
+ <Top>248.24778761061947</Top>
+ <Width>186</Width>
+ <Height>126.65929203539827</Height>
+ <Angle>0</Angle>
+ <ItemGuid>00ea1771-efee-4f3e-a0d2-8b2a4214e9fd</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ <TechItem xsi:type="TextItem">
+ <ID>2b99bbf7-94da-4bb2-acc9-91b35e543c5d</ID>
+ <Left>897</Left>
+ <Top>358.69469026548683</Top>
+ <Width>147</Width>
+ <Height>69.9159292035398</Height>
+ <Angle>0</Angle>
+ <ColorNumber>-14774017</ColorNumber>
+ <Text>Waste lower presence</Text>
+ </TechItem>
+ <TechItem xsi:type="DigitalInItem">
+ <ID>c150533c-abe4-4edf-b6ad-fa475b133142</ID>
+ <Left>1112</Left>
+ <Top>253.66814159291806</Top>
+ <Width>186</Width>
+ <Height>126.65929203539827</Height>
+ <Angle>0</Angle>
+ <ItemGuid>d2f266e3-779b-4dfe-b513-26ce61c529a4</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ <TechItem xsi:type="TextItem">
+ <ID>d96f2a6d-0ccb-401e-8931-09086ca81fae</ID>
+ <Left>1143</Left>
+ <Top>366.78318584070507</Top>
+ <Width>147</Width>
+ <Height>69.9159292035398</Height>
+ <Angle>0</Angle>
+ <ColorNumber>-14774017</ColorNumber>
+ <Text>Waste middle presence</Text>
+ </TechItem>
+ <TechItem xsi:type="TextItem">
+ <ID>bb9847ba-9671-4613-bf23-a0c637ebc79d</ID>
+ <Left>151</Left>
+ <Top>271.55309734513281</Top>
+ <Width>200</Width>
+ <Height>63.836283185840671</Height>
+ <Angle>0</Angle>
+ <ColorNumber>-14774017</ColorNumber>
+ <Text>pump</Text>
+ </TechItem>
+ <TechItem xsi:type="TextItem">
+ <ID>d13a2df4-3f54-4c31-8f9a-ee7810fb6af5</ID>
+ <Left>504</Left>
+ <Top>283.71238938053096</Top>
+ <Width>192</Width>
+ <Height>67.88938053097354</Height>
+ <Angle>0</Angle>
+ <ColorNumber>-14774017</ColorNumber>
+ <Text>valve</Text>
+ </TechItem>
+ <TechItem xsi:type="DigitalOutItem">
+ <ID>fbe2670f-6d9b-4361-9332-1ceb1692c91a</ID>
+ <Left>108</Left>
+ <Top>484.61946902655154</Top>
+ <Width>356</Width>
+ <Height>208.10619469026472</Height>
+ <Angle>0</Angle>
+ <ItemGuid>78db28d0-0407-4942-bb62-c44da81c4f9e</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ </Items>
+ </MachineTechViewProjectTab>
+ <MachineTechViewProjectTab>
+ <Name>disp</Name>
+ <Items>
+ <TechItem xsi:type="SingleGraphItem">
+ <ID>f9531a72-3742-47a7-86bb-b589f8b3eb55</ID>
+ <Left>123</Left>
+ <Top>128.33628318584061</Top>
+ <Width>390</Width>
+ <Height>249.67699115047321</Height>
+ <Angle>0</Angle>
+ <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid>
+ <ColorNumber>-14774017</ColorNumber>
+ <DecimalPlaces>3</DecimalPlaces>
+ <Duration>3600</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>100</Max>
+ </TechItem>
+ <TechItem xsi:type="SingleGraphItem">
+ <ID>aae29286-81b3-476a-9f58-c0fd246cae96</ID>
+ <Left>880</Left>
+ <Top>158.81415929204155</Top>
+ <Width>442</Width>
+ <Height>241.88495575221771</Height>
+ <Angle>0</Angle>
+ <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid>
+ <ColorNumber>-14774017</ColorNumber>
+ <DecimalPlaces>3</DecimalPlaces>
+ <Duration>3600</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>100</Max>
+ </TechItem>
+ <TechItem xsi:type="TextItem">
+ <ID>7d94c7c4-1288-4f9d-b0e6-a06794829642</ID>
+ <Left>1055</Left>
+ <Top>14.181415929203524</Top>
+ <Width>161</Width>
+ <Height>111.46017699115049</Height>
+ <Angle>0</Angle>
+ <ColorNumber>-14774017</ColorNumber>
+ <Text>Y</Text>
+ </TechItem>
+ <TechItem xsi:type="TextItem">
+ <ID>c95f9ad1-b607-4606-8217-400bea76f3d6</ID>
+ <Left>384</Left>
+ <Top>23.991150442480944</Top>
+ <Width>161</Width>
+ <Height>111.46017699115049</Height>
+ <Angle>0</Angle>
+ <ColorNumber>-14774017</ColorNumber>
+ <Text>C</Text>
+ </TechItem>
+ <TechItem xsi:type="MonitorItem">
+ <ID>8f141fa5-fb24-4557-adcf-a6aa55a28fb4</ID>
+ <Left>121</Left>
+ <Top>-8.8495575221214722</Top>
+ <Width>169</Width>
+ <Height>132.73893805309734</Height>
+ <Angle>0</Angle>
+ <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <UpdateInterval>10</UpdateInterval>
+ <DecimalPoints>3</DecimalPoints>
+ </TechItem>
+ <TechItem xsi:type="MonitorItem">
+ <ID>7eab018a-ef43-4bca-a6cf-857d69767bba</ID>
+ <Left>839</Left>
+ <Top>-4.7079646017762684</Top>
+ <Width>169</Width>
+ <Height>132.73893805309734</Height>
+ <Angle>0</Angle>
+ <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <UpdateInterval>10</UpdateInterval>
+ <DecimalPoints>3</DecimalPoints>
+ </TechItem>
+ <TechItem xsi:type="MonitorRecorderItem">
+ <ID>2a9e89d4-5d60-4a83-9527-cb77fdf35c14</ID>
+ <Left>1276</Left>
+ <Top>22.287610619469035</Top>
+ <Width>187</Width>
+ <Height>102.34070796460179</Height>
+ <Angle>0</Angle>
+ <ColorNumber>-1</ColorNumber>
+ <SelectedMonitorsGuids>
+ <string>1F0F907A-EC16-4386-AFC8-B2B156F2A822</string>
+ <string>A499E5E0-A812-4032-8F96-B38C6762C4BD</string>
+ <string>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</string>
+ <string>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</string>
+ <string>19645882-6587-4A50-BD85-AF06617DC654</string>
+ <string>96B89605-F999-43FE-A1CD-2645BFB33A36</string>
+ <string>84CF23C9-D20D-4C08-BE1D-80201FC43C06</string>
+ <string>C0BCCD5C-346B-4C4A-A080-39D28E9E1A0C</string>
+ <string>10102BC3-0EAE-47FF-A8E5-8640780CAA3D</string>
+ <string>FC60060A-3736-4910-B41A-FF6DABDF0E9E</string>
+ <string>5F12B974-2C9E-4DDD-9B20-733251A5D7E6</string>
+ <string>D126DB23-784B-4F0C-8F88-D89A65A7549F</string>
+ </SelectedMonitorsGuids>
+ </TechItem>
+ <TechItem xsi:type="DispenserItem">
+ <ID>6d2e7962-b3ae-4682-b20e-9654f48dcffe</ID>
+ <Left>587</Left>
+ <Top>5.0619469026548813</Top>
+ <Width>155</Width>
+ <Height>131.72566371681415</Height>
+ <Angle>0</Angle>
+ <ItemGuid>2CC8E461-E91F-4D4C-A402-922477F06C87</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <Speed>500</Speed>
+ <DisplayName>Dispenser 1</DisplayName>
+ </TechItem>
+ <TechItem xsi:type="SingleGraphItem">
+ <ID>5ee2718f-f068-427b-a31e-d586c7d7682c</ID>
+ <Left>131</Left>
+ <Top>552.94690265486338</Top>
+ <Width>390</Width>
+ <Height>249.67699115047321</Height>
+ <Angle>0</Angle>
+ <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid>
+ <ColorNumber>-14774017</ColorNumber>
+ <DecimalPlaces>3</DecimalPlaces>
+ <Duration>3600</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>100</Max>
+ </TechItem>
+ <TechItem xsi:type="TextItem">
+ <ID>1c254a92-c075-453f-9667-cdcc91cf8e6a</ID>
+ <Left>399</Left>
+ <Top>455.67256637168265</Top>
+ <Width>161</Width>
+ <Height>111.46017699115049</Height>
+ <Angle>0</Angle>
+ <ColorNumber>-14774017</ColorNumber>
+ <Text>K</Text>
+ </TechItem>
+ <TechItem xsi:type="MonitorItem">
+ <ID>d1087b1a-c36b-4242-96f5-07c2bb602cc4</ID>
+ <Left>145</Left>
+ <Top>409.52212389380446</Top>
+ <Width>169</Width>
+ <Height>132.73893805309734</Height>
+ <Angle>0</Angle>
+ <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <UpdateInterval>10</UpdateInterval>
+ <DecimalPoints>3</DecimalPoints>
+ </TechItem>
+ <TechItem xsi:type="SingleGraphItem">
+ <ID>53fe93a2-88a5-4d4d-9cd5-eb4d8a8fefae</ID>
+ <Left>604</Left>
+ <Top>561.16371681414739</Top>
+ <Width>390</Width>
+ <Height>249.67699115047321</Height>
+ <Angle>0</Angle>
+ <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid>
+ <ColorNumber>-14774017</ColorNumber>
+ <DecimalPlaces>3</DecimalPlaces>
+ <Duration>3600</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>100</Max>
+ </TechItem>
+ <TechItem xsi:type="TextItem">
+ <ID>0bef6e9d-6da0-4f06-9e1a-c00142bde4c1</ID>
+ <Left>832</Left>
+ <Top>440.91150442477635</Top>
+ <Width>161</Width>
+ <Height>111.46017699115049</Height>
+ <Angle>0</Angle>
+ <ColorNumber>-14774017</ColorNumber>
+ <Text>M</Text>
+ </TechItem>
+ <TechItem xsi:type="MonitorItem">
+ <ID>762c5a97-a3bc-45b4-aa9f-0b50afa9cb9b</ID>
+ <Left>633</Left>
+ <Top>434.0132743362783</Top>
+ <Width>169</Width>
+ <Height>132.73893805309734</Height>
+ <Angle>0</Angle>
+ <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <UpdateInterval>10</UpdateInterval>
+ <DecimalPoints>3</DecimalPoints>
+ </TechItem>
+ <TechItem xsi:type="SingleGraphItem">
+ <ID>be584f80-3250-494c-87fc-250d6deae051</ID>
+ <Left>1045</Left>
+ <Top>559.4070796459921</Top>
+ <Width>390</Width>
+ <Height>249.67699115047321</Height>
+ <Angle>0</Angle>
+ <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid>
+ <ColorNumber>-14774017</ColorNumber>
+ <DecimalPlaces>3</DecimalPlaces>
+ <Duration>3600</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>100</Max>
+ </TechItem>
+ <TechItem xsi:type="MonitorItem">
+ <ID>39f6a02c-c4d9-47d0-b92d-bdea0ed5d3ce</ID>
+ <Left>1056</Left>
+ <Top>435.43805309733875</Top>
+ <Width>169</Width>
+ <Height>132.73893805309734</Height>
+ <Angle>0</Angle>
+ <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <UpdateInterval>10</UpdateInterval>
+ <DecimalPoints>3</DecimalPoints>
+ </TechItem>
+ <TechItem xsi:type="TextItem">
+ <ID>5b924929-9b16-4598-94cc-b2f4bca26798</ID>
+ <Left>1304</Left>
+ <Top>448.0884955752224</Top>
+ <Width>161</Width>
+ <Height>111.46017699115049</Height>
+ <Angle>0</Angle>
+ <ColorNumber>-14774017</ColorNumber>
+ <Text>TI</Text>
+ </TechItem>
+ <TechItem xsi:type="ValveItem">
+ <ID>89ae1fa5-1ad1-469e-ae76-0a29c35805cd</ID>
+ <Left>588</Left>
+ <Top>317.1504424778762</Top>
+ <Width>283</Width>
+ <Height>74.982300884955748</Height>
+ <Angle>0</Angle>
+ <ItemGuid>E144A221-4859-4DC3-9A7E-4A2969FB0826</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ <TechItem xsi:type="ValveItem">
+ <ID>c218cf34-74c2-41bb-8c3b-3030abce451a</ID>
+ <Left>1363</Left>
+ <Top>384.02654867256643</Top>
+ <Width>156</Width>
+ <Height>94.234513274336337</Height>
+ <Angle>0</Angle>
+ <ItemGuid>E144A221-4859-4DC3-9A7E-4A2969FB0826</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ <TechItem xsi:type="ValveItem">
+ <ID>75af30c6-d7f8-4745-bfb5-d6dc5d50479a</ID>
+ <Left>767</Left>
+ <Top>362.74778761061958</Top>
+ <Width>283</Width>
+ <Height>74.982300884955748</Height>
+ <Angle>0</Angle>
+ <ItemGuid>E144A221-4859-4DC3-9A7E-4A2969FB0826</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ <TechItem xsi:type="MonitorItem">
+ <ID>df1fd958-fd8a-4b00-98e1-679455494d60</ID>
+ <Left>309</Left>
+ <Top>13.168141592920392</Top>
+ <Width>112</Width>
+ <Height>107.40707964601768</Height>
+ <Angle>0</Angle>
+ <ItemGuid>3174ADCF-5793-4B5A-A3C6-B96E146A903D</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <UpdateInterval>10</UpdateInterval>
+ <DecimalPoints>0</DecimalPoints>
+ </TechItem>
+ <TechItem xsi:type="MonitorItem">
+ <ID>f07225b3-1522-4cb6-9ba8-5b9697f05467</ID>
+ <Left>1180</Left>
+ <Top>60.7920353982301</Top>
+ <Width>102</Width>
+ <Height>88.1548672566372</Height>
+ <Angle>0</Angle>
+ <ItemGuid>E2F0FC31-CE7E-416B-ACEA-8EB6CA9B850B</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <UpdateInterval>10</UpdateInterval>
+ <DecimalPoints>0</DecimalPoints>
+ </TechItem>
+ <TechItem xsi:type="MonitorItem">
+ <ID>45b87322-e1f5-42eb-88c6-71c2eeb2899a</ID>
+ <Left>1258</Left>
+ <Top>463.06194690265494</Top>
+ <Width>88</Width>
+ <Height>75.995575221239</Height>
+ <Angle>0</Angle>
+ <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C09F</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <UpdateInterval>10</UpdateInterval>
+ <DecimalPoints>0</DecimalPoints>
+ </TechItem>
+ <TechItem xsi:type="MonitorItem">
+ <ID>0c1c25e8-3ce3-4994-bbb9-bd6b2367a413</ID>
+ <Left>810</Left>
+ <Top>462.04867256637175</Top>
+ <Width>77</Width>
+ <Height>80.048672566371636</Height>
+ <Angle>0</Angle>
+ <ItemGuid>AD50C358-5BAF-4A2F-8593-51A22C85B3D1</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <UpdateInterval>10</UpdateInterval>
+ <DecimalPoints>0</DecimalPoints>
+ </TechItem>
+ <TechItem xsi:type="MonitorItem">
+ <ID>fa2f697e-b229-418a-bae6-78b92bf0458b</ID>
+ <Left>336</Left>
+ <Top>428.61061946902663</Top>
+ <Width>95</Width>
+ <Height>96.261061946902657</Height>
+ <Angle>0</Angle>
+ <ItemGuid>84682E90-6926-42AA-BF8C-2CCCF5C26C97</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <UpdateInterval>10</UpdateInterval>
+ <DecimalPoints>0</DecimalPoints>
+ </TechItem>
+ </Items>
+ </MachineTechViewProjectTab>
+ <MachineTechViewProjectTab>
+ <Name>Priming</Name>
+ <Items>
+ <TechItem xsi:type="MonitorItem">
+ <ID>ea45a516-9dac-4c9a-9261-0c44e22aa065</ID>
+ <Left>808</Left>
+ <Top>155.02654867256638</Top>
+ <Width>219</Width>
+ <Height>200.62831858407088</Height>
+ <Angle>0</Angle>
+ <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <UpdateInterval>10</UpdateInterval>
+ <DecimalPoints>2</DecimalPoints>
+ </TechItem>
+ <TechItem xsi:type="DispenserItem">
+ <ID>3e2cb7dc-a5f3-4ba6-a520-2bae8ff0e4a8</ID>
+ <Left>832</Left>
+ <Top>451.91592920353986</Top>
+ <Width>332</Width>
+ <Height>326.27433628318596</Height>
+ <Angle>0</Angle>
+ <ItemGuid>C8D8FE90-0375-44A2-A6D1-E997789E065C</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <Speed>1200</Speed>
+ <DisplayName>Dispenser 2</DisplayName>
+ </TechItem>
+ <TechItem xsi:type="SingleGraphItem">
+ <ID>6f8dfd8d-ed50-4923-b908-e0b5bc5d6ae5</ID>
+ <Left>154</Left>
+ <Top>131.72123893805315</Top>
+ <Width>474</Width>
+ <Height>410.37610619469024</Height>
+ <Angle>0</Angle>
+ <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid>
+ <ColorNumber>-14774017</ColorNumber>
+ <DecimalPlaces>1</DecimalPlaces>
+ <Duration>1942</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>100</Max>
+ </TechItem>
+ <TechItem xsi:type="ValveItem">
+ <ID>604e031b-89c3-4c9d-90ef-7b861a77e5e0</ID>
+ <Left>243</Left>
+ <Top>595.80088495575228</Top>
+ <Width>497</Width>
+ <Height>189.48230088495575</Height>
+ <Angle>0</Angle>
+ <ItemGuid>8B1FCBC3-FEEA-4F87-B56F-CE5D28B7ACA4</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ <TechItem xsi:type="DigitalOutItem">
+ <ID>c414ae0e-323a-48c1-9165-2c05cc4234c6</ID>
+ <Left>1291</Left>
+ <Top>584.65486725663732</Top>
+ <Width>200</Width>
+ <Height>171.24336283185835</Height>
+ <Angle>0</Angle>
+ <ItemGuid>0bd10306-2944-4cda-bc59-0264da2883d2</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ </Items>
+ </MachineTechViewProjectTab>
+ </Tabs>
+ <SelectedTabIndex>2</SelectedTabIndex>
+</MachineTechViewProject> \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/technician view files/new head.tpf b/Software/Stubs Collection/stubs/technician view files/new head.tpf
new file mode 100644
index 000000000..c2ae54a7d
--- /dev/null
+++ b/Software/Stubs Collection/stubs/technician view files/new head.tpf
@@ -0,0 +1,2815 @@
+<?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="ControllerItem">
+ <ID>ba743caa-95f2-4b20-8c32-8e5943ada3fc</ID>
+ <Left>28</Left>
+ <Top>678.95132743362808</Top>
+ <Width>238</Width>
+ <Height>119.56637168141629</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>e4892498-fa1a-413c-9dd8-633efaade51c</ID>
+ <Left>415</Left>
+ <Top>692.74336283185824</Top>
+ <Width>160</Width>
+ <Height>102.34070796460173</Height>
+ <Angle>0</Angle>
+ <ItemGuid>6b9cba1d-4acf-4992-97ad-e422bca6ada2</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ <TechItem xsi:type="HeaterItem">
+ <ID>a15665e3-af39-42d8-8c06-97d770632e10</ID>
+ <Left>928</Left>
+ <Top>593.77433628318579</Top>
+ <Width>207</Width>
+ <Height>184.4159292035398</Height>
+ <Angle>0</Angle>
+ <ItemGuid>6D6CFA18-5922-4AFE-84B3-2721CE128681</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <HeaterState>
+ <HeaterType>DryerAirHeater</HeaterType>
+ <SetPoint>0</SetPoint>
+ <CurrentValue>8.5</CurrentValue>
+ <IsActive>false</IsActive>
+ <IsRampingUp>false</IsRampingUp>
+ <IsInSetPoint>true</IsInSetPoint>
+ </HeaterState>
+ <SetPoint>0</SetPoint>
+ </TechItem>
+ <TechItem xsi:type="HeaterItem">
+ <ID>0ac64716-d30c-489b-939e-a26d06445866</ID>
+ <Left>828</Left>
+ <Top>682.88053097345</Top>
+ <Width>130</Width>
+ <Height>100.31415929203541</Height>
+ <Angle>0</Angle>
+ <ItemGuid>A5DFC2DB-3B36-4377-96A0-D492CE785C00</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <HeaterState>
+ <HeaterType>DryerMainHeater</HeaterType>
+ <SetPoint>0</SetPoint>
+ <CurrentValue>-2.05</CurrentValue>
+ <IsActive>false</IsActive>
+ <IsRampingUp>false</IsRampingUp>
+ <IsInSetPoint>true</IsInSetPoint>
+ </HeaterState>
+ <SetPoint>0</SetPoint>
+ </TechItem>
+ <TechItem xsi:type="HeaterItem">
+ <ID>181796d8-64f6-420a-8f37-9af9df67d6a9</ID>
+ <Left>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>8.5</CurrentValue>
+ <IsActive>false</IsActive>
+ <IsRampingUp>false</IsRampingUp>
+ <IsInSetPoint>true</IsInSetPoint>
+ </HeaterState>
+ <SetPoint>0</SetPoint>
+ </TechItem>
+ <TechItem xsi:type="HeaterItem">
+ <ID>fd2bb3a3-a411-470d-bde7-0beaf84da059</ID>
+ <Left>931</Left>
+ <Top>83.08407079646031</Top>
+ <Width>186</Width>
+ <Height>195.56194690265494</Height>
+ <Angle>0</Angle>
+ <ItemGuid>8E764A14-0F84-4FEC-928B-32A2509CAD57</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <HeaterState>
+ <HeaterType>HeaterZone3</HeaterType>
+ <SetPoint>0</SetPoint>
+ <CurrentValue>8.5</CurrentValue>
+ <IsActive>false</IsActive>
+ <IsRampingUp>false</IsRampingUp>
+ <IsInSetPoint>true</IsInSetPoint>
+ </HeaterState>
+ <SetPoint>0</SetPoint>
+ </TechItem>
+ <TechItem xsi:type="HeaterItem">
+ <ID>7e8dd386-cca6-4d07-8a3e-af5403756002</ID>
+ <Left>1106</Left>
+ <Top>88.1504424778762</Top>
+ <Width>200</Width>
+ <Height>187.45575221238937</Height>
+ <Angle>0</Angle>
+ <ItemGuid>B4EE8CC0-EE2B-4ABE-BF09-9226860E756B</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <HeaterState>
+ <HeaterType>HeaterZone2</HeaterType>
+ <SetPoint>30</SetPoint>
+ <CurrentValue>225.29</CurrentValue>
+ <IsActive>false</IsActive>
+ <IsRampingUp>true</IsRampingUp>
+ <IsInSetPoint>false</IsInSetPoint>
+ </HeaterState>
+ <SetPoint>30</SetPoint>
+ </TechItem>
+ <TechItem xsi:type="HeaterItem">
+ <ID>32a91e5f-27c8-490d-b187-8e39b6626a13</ID>
+ <Left>1311</Left>
+ <Top>89.163716814159329</Top>
+ <Width>157</Width>
+ <Height>194.54867256637175</Height>
+ <Angle>0</Angle>
+ <ItemGuid>27E7BB74-81C3-4EF2-80AE-962F111C441F</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <HeaterState>
+ <HeaterType>HeaterZone1</HeaterType>
+ <SetPoint>0</SetPoint>
+ <CurrentValue>8.5</CurrentValue>
+ <IsActive>false</IsActive>
+ <IsRampingUp>false</IsRampingUp>
+ <IsInSetPoint>true</IsInSetPoint>
+ </HeaterState>
+ <SetPoint>0</SetPoint>
+ </TechItem>
+ <TechItem xsi:type="HeaterItem">
+ <ID>c844235a-8a29-4c2e-a964-e8f546d2ced7</ID>
+ <Left>1140</Left>
+ <Top>588.70796460177</Top>
+ <Width>173</Width>
+ <Height>183.40265486725662</Height>
+ <Angle>0</Angle>
+ <ItemGuid>42A62A48-F1D5-4BB6-AFEA-6A7DF6DCF626</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <HeaterState>
+ <HeaterType>MixerHeater</HeaterType>
+ <SetPoint>30</SetPoint>
+ <CurrentValue>216.54999999999998</CurrentValue>
+ <IsActive>false</IsActive>
+ <IsRampingUp>true</IsRampingUp>
+ <IsInSetPoint>false</IsInSetPoint>
+ </HeaterState>
+ <SetPoint>30</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>30</SetPoint>
+ <CurrentValue>170.98999999999998</CurrentValue>
+ <IsActive>false</IsActive>
+ <IsRampingUp>true</IsRampingUp>
+ <IsInSetPoint>false</IsInSetPoint>
+ </HeaterState>
+ <SetPoint>30</SetPoint>
+ </TechItem>
+ <TechItem xsi:type="HeaterItem">
+ <ID>e6b3eb18-482b-450e-b8a8-d2ac6bba4fd4</ID>
+ <Left>547</Left>
+ <Top>85.482300884952679</Top>
+ <Width>186</Width>
+ <Height>195.56194690265494</Height>
+ <Angle>0</Angle>
+ <ItemGuid>D6771DF4-771E-4D62-B6BA-BDE361C0A0F3</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <HeaterState>
+ <HeaterType>HeaterZone5</HeaterType>
+ <SetPoint>0</SetPoint>
+ <CurrentValue>8.5</CurrentValue>
+ <IsActive>false</IsActive>
+ <IsRampingUp>false</IsRampingUp>
+ <IsInSetPoint>true</IsInSetPoint>
+ </HeaterState>
+ <SetPoint>0</SetPoint>
+ </TechItem>
+ <TechItem xsi:type="HeaterItem">
+ <ID>efff2e67-e3a3-4667-9208-4704707d7cda</ID>
+ <Left>353</Left>
+ <Top>86.69911504424698</Top>
+ <Width>186</Width>
+ <Height>195.56194690265494</Height>
+ <Angle>0</Angle>
+ <ItemGuid>D2B6CAA0-055E-4871-8D91-A5370F1ACB22</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <HeaterState>
+ <HeaterType>HeaterZone6</HeaterType>
+ <SetPoint>0</SetPoint>
+ <CurrentValue>279.81</CurrentValue>
+ <IsActive>false</IsActive>
+ <IsRampingUp>false</IsRampingUp>
+ <IsInSetPoint>true</IsInSetPoint>
+ </HeaterState>
+ <SetPoint>0</SetPoint>
+ </TechItem>
+ <TechItem xsi:type="MonitorItem">
+ <ID>f9936dba-cef8-41e3-a715-eb629dca1870</ID>
+ <Left>265</Left>
+ <Top>683.95575221238948</Top>
+ <Width>131</Width>
+ <Height>109.43362831858394</Height>
+ <Angle>0</Angle>
+ <ItemGuid>1778C1A7-AFB5-42F9-9E00-E80D30D9FC0A</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <UpdateInterval>10</UpdateInterval>
+ <DecimalPoints>0</DecimalPoints>
+ </TechItem>
+ <TechItem xsi:type="TextItem">
+ <ID>5f2610dc-3b9d-4302-b8f5-77a5e1c73b8c</ID>
+ <Left>1027.9999999999973</Left>
+ <Top>291.07079646017547</Top>
+ <Width>44</Width>
+ <Height>42.557522123893705</Height>
+ <Angle>0</Angle>
+ <ColorNumber>-14774017</ColorNumber>
+ <Text>D</Text>
+ </TechItem>
+ <TechItem xsi:type="TextItem">
+ <ID>eadb5257-47a2-4336-a72a-f2d157fe70cb</ID>
+ <Left>907.99999999999909</Left>
+ <Top>295.35840707964616</Top>
+ <Width>44</Width>
+ <Height>42.557522123893705</Height>
+ <Angle>0</Angle>
+ <ColorNumber>-14774017</ColorNumber>
+ <Text>F</Text>
+ </TechItem>
+ <TechItem xsi:type="TextItem">
+ <ID>6c59af66-169a-46e0-89ae-a81e3e619043</ID>
+ <Left>785.00000000000159</Left>
+ <Top>288.5000000000004</Top>
+ <Width>44</Width>
+ <Height>42.557522123893705</Height>
+ <Angle>0</Angle>
+ <ColorNumber>-14774017</ColorNumber>
+ <Text>I</Text>
+ </TechItem>
+ <TechItem xsi:type="TextItem">
+ <ID>3b32b9a8-f300-443f-950e-c49f81678bac</ID>
+ <Left>624.99999999999966</Left>
+ <Top>285.86725663716874</Top>
+ <Width>44</Width>
+ <Height>42.557522123893705</Height>
+ <Angle>0</Angle>
+ <ColorNumber>-14774017</ColorNumber>
+ <Text>L</Text>
+ </TechItem>
+ <TechItem xsi:type="PidItem">
+ <ID>f6d44793-ed44-46ed-8854-eacbc11af10c</ID>
+ <Left>569</Left>
+ <Top>688.00884955752213</Top>
+ <Width>155</Width>
+ <Height>96.261061946902714</Height>
+ <Angle>0</Angle>
+ <ItemGuid>df38139e-0026-46bc-b72f-df5f9eec80f7</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ <TechItem xsi:type="MonitorRecorderItem">
+ <ID>43793f93-da64-4409-b583-bca498f641e6</ID>
+ <Left>1308</Left>
+ <Top>656.59734513274338</Top>
+ <Width>203</Width>
+ <Height>107.40707964601774</Height>
+ <Angle>0</Angle>
+ <ColorNumber>-1</ColorNumber>
+ <SelectedMonitorsGuids />
+ </TechItem>
+ <TechItem xsi:type="HeaterItem">
+ <ID>be9db1fd-d408-4f1c-a15a-d6ffe58fafb6</ID>
+ <Left>1292</Left>
+ <Top>343.56637168141606</Top>
+ <Width>186</Width>
+ <Height>195.56194690265494</Height>
+ <Angle>0</Angle>
+ <ItemGuid>188285E5-1493-4BED-8269-91743770A631</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <HeaterState>
+ <HeaterType>HeaterZone7</HeaterType>
+ <SetPoint>100</SetPoint>
+ <CurrentValue>100.02</CurrentValue>
+ <IsActive>false</IsActive>
+ <IsRampingUp>false</IsRampingUp>
+ <IsInSetPoint>true</IsInSetPoint>
+ </HeaterState>
+ <SetPoint>100</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>100</SetPoint>
+ <CurrentValue>99.97</CurrentValue>
+ <IsActive>false</IsActive>
+ <IsRampingUp>false</IsRampingUp>
+ <IsInSetPoint>true</IsInSetPoint>
+ </HeaterState>
+ <SetPoint>100</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>95</SetPoint>
+ <CurrentValue>95.05</CurrentValue>
+ <IsActive>false</IsActive>
+ <IsRampingUp>false</IsRampingUp>
+ <IsInSetPoint>true</IsInSetPoint>
+ </HeaterState>
+ <SetPoint>95</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>99</SetPoint>
+ <CurrentValue>99</CurrentValue>
+ <IsActive>false</IsActive>
+ <IsRampingUp>false</IsRampingUp>
+ <IsInSetPoint>true</IsInSetPoint>
+ </HeaterState>
+ <SetPoint>99</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>100</SetPoint>
+ <CurrentValue>100.02</CurrentValue>
+ <IsActive>false</IsActive>
+ <IsRampingUp>false</IsRampingUp>
+ <IsInSetPoint>true</IsInSetPoint>
+ </HeaterState>
+ <SetPoint>100</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>100</SetPoint>
+ <CurrentValue>100.02</CurrentValue>
+ <IsActive>false</IsActive>
+ <IsRampingUp>false</IsRampingUp>
+ <IsInSetPoint>true</IsInSetPoint>
+ </HeaterState>
+ <SetPoint>100</SetPoint>
+ </TechItem>
+ <TechItem xsi:type="ProcessParametersItem">
+ <ID>63aa661e-4bad-43fc-aed3-c8f570254246</ID>
+ <Left>6</Left>
+ <Top>111.52654867256638</Top>
+ <Width>308</Width>
+ <Height>419.49557522123905</Height>
+ <Angle>0</Angle>
+ <ColorNumber>-14774017</ColorNumber>
+ <ProcessParameters>
+ <ID>0</ID>
+ <Guid>0f2eecbd-2a88-4510-b37c-7b4fc90de7f9</Guid>
+ <LastUpdated>2020-01-14T07:43:22.6203867Z</LastUpdated>
+ <Name>Process parameters 1</Name>
+ <DyeingSpeed>0</DyeingSpeed>
+ <MinInkUptake>0</MinInkUptake>
+ <MaxInkUptake>0</MaxInkUptake>
+ <FeederTension>0</FeederTension>
+ <PullerTension>0</PullerTension>
+ <WinderTension>0</WinderTension>
+ <MixerTemp>12</MixerTemp>
+ <HeadZone1Temp>100</HeadZone1Temp>
+ <HeadZone2Temp>100</HeadZone2Temp>
+ <HeadZone3Temp>95</HeadZone3Temp>
+ <HeadZone4Temp>100</HeadZone4Temp>
+ <HeadZone5Temp>100</HeadZone5Temp>
+ <HeadZone6Temp>99</HeadZone6Temp>
+ <DryerAirFlow>0</DryerAirFlow>
+ <DryerZone1Temp>100</DryerZone1Temp>
+ <DryerZone2Temp>0</DryerZone2Temp>
+ <DryerZone3Temp>0</DryerZone3Temp>
+ <DryerBufferLength>0</DryerBufferLength>
+ <HeadAirFlow>0</HeadAirFlow>
+ <TableIndex>0</TableIndex>
+ </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="ProcessParametersItem">
+ <ID>120a9bea-5b5a-4ba4-92f5-40135f49a344</ID>
+ <Left>6</Left>
+ <Top>543.18141592920369</Top>
+ <Width>338</Width>
+ <Height>129.69911504424772</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>0</DryerAirFlow>
+ <DryerZone1Temp>0</DryerZone1Temp>
+ <DryerZone2Temp>0</DryerZone2Temp>
+ <DryerZone3Temp>0</DryerZone3Temp>
+ <DryerBufferLength>0</DryerBufferLength>
+ <HeadAirFlow>0</HeadAirFlow>
+ <TableIndex>0</TableIndex>
+ </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="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>
+ </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>409</Left>
+ <Top>589.79203539823015</Top>
+ <Width>148</Width>
+ <Height>96.2610619469026</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>DryerAirHeater</HeaterType>
+ <SetPoint>0</SetPoint>
+ <CurrentValue>0</CurrentValue>
+ <IsActive>false</IsActive>
+ <IsRampingUp>false</IsRampingUp>
+ <IsInSetPoint>false</IsInSetPoint>
+ </HeaterState>
+ <SetPoint>0</SetPoint>
+ </TechItem>
+ <TechItem xsi:type="HeaterItem">
+ <ID>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>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>Thread</Name>
+ <Items>
+ <TechItem xsi:type="MonitorItem">
+ <ID>50bae43f-8b1a-4279-9238-b976a0c72af3</ID>
+ <Left>1530</Left>
+ <Top>193.19911504424795</Top>
+ <Width>169</Width>
+ <Height>181.37610619469029</Height>
+ <Angle>0</Angle>
+ <ItemGuid>A8DB1D27-6B25-4FB4-A3F5-46A29BA51955</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <UpdateInterval>10</UpdateInterval>
+ <DecimalPoints>2</DecimalPoints>
+ </TechItem>
+ <TechItem xsi:type="MonitorItem">
+ <ID>68eef943-2151-4df5-be61-044c3865606e</ID>
+ <Left>1172</Left>
+ <Top>145.78318584070678</Top>
+ <Width>175</Width>
+ <Height>167.827433628319</Height>
+ <Angle>0</Angle>
+ <ItemGuid>96B89605-F999-43FE-A1CD-2645BFB33A36</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <UpdateInterval>10</UpdateInterval>
+ <DecimalPoints>2</DecimalPoints>
+ </TechItem>
+ <TechItem xsi:type="MonitorItem">
+ <ID>6be024c6-3d1b-4267-9b77-44473aba56b7</ID>
+ <Left>988</Left>
+ <Top>143.32300884955998</Top>
+ <Width>190</Width>
+ <Height>167.09734513274049</Height>
+ <Angle>0</Angle>
+ <ItemGuid>FC60060A-3736-4910-B41A-FF6DABDF0E9E</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <UpdateInterval>10</UpdateInterval>
+ <DecimalPoints>2</DecimalPoints>
+ </TechItem>
+ <TechItem xsi:type="MonitorItem">
+ <ID>7c720f3b-00e1-49dd-92f9-fdd1e9686623</ID>
+ <Left>817</Left>
+ <Top>142.42035398230098</Top>
+ <Width>169</Width>
+ <Height>168.31858407079625</Height>
+ <Angle>0</Angle>
+ <ItemGuid>4CE6A82E-D841-4D33-BBB2-11F0743A441C</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <UpdateInterval>10</UpdateInterval>
+ <DecimalPoints>2</DecimalPoints>
+ </TechItem>
+ <TechItem xsi:type="SingleGraphItem">
+ <ID>3ebd6759-521b-4ed1-a353-ee1ad7801f28</ID>
+ <Left>922</Left>
+ <Top>516.43362831858417</Top>
+ <Width>439</Width>
+ <Height>304.995575221239</Height>
+ <Angle>0</Angle>
+ <ItemGuid>D126DB23-784B-4F0C-8F88-D89A65A7549F</ItemGuid>
+ <ColorNumber>-14774017</ColorNumber>
+ <DecimalPlaces>1</DecimalPlaces>
+ <Duration>1460</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>16384</Max>
+ </TechItem>
+ <TechItem xsi:type="SingleGraphItem">
+ <ID>984b4126-3dda-4624-a79f-0646eb0e1358</ID>
+ <Left>465</Left>
+ <Top>515.420353982301</Top>
+ <Width>439</Width>
+ <Height>304.995575221239</Height>
+ <Angle>0</Angle>
+ <ItemGuid>10102BC3-0EAE-47FF-A8E5-8640780CAA3D</ItemGuid>
+ <ColorNumber>-14774017</ColorNumber>
+ <DecimalPlaces>1</DecimalPlaces>
+ <Duration>1516</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>16384</Max>
+ </TechItem>
+ <TechItem xsi:type="SingleGraphItem">
+ <ID>8ebc3ab7-a02d-4b12-93b3-2563443831d7</ID>
+ <Left>15</Left>
+ <Top>518.46017699115032</Top>
+ <Width>439</Width>
+ <Height>304.995575221239</Height>
+ <Angle>0</Angle>
+ <ItemGuid>C0BCCD5C-346B-4C4A-A080-39D28E9E1A0C</ItemGuid>
+ <ColorNumber>-14774017</ColorNumber>
+ <DecimalPlaces>1</DecimalPlaces>
+ <Duration>1398</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>16384</Max>
+ </TechItem>
+ <TechItem xsi:type="SingleGraphItem">
+ <ID>acafb268-5e97-4277-8dc8-173250a9e3f8</ID>
+ <Left>12</Left>
+ <Top>13.849557522123973</Top>
+ <Width>439</Width>
+ <Height>304.995575221239</Height>
+ <Angle>0</Angle>
+ <ItemGuid>9FBC5460-BA59-486B-8D85-BD7D8A959F98</ItemGuid>
+ <ColorNumber>-14774017</ColorNumber>
+ <DecimalPlaces>1</DecimalPlaces>
+ <Duration>1273</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>100</Max>
+ </TechItem>
+ <TechItem xsi:type="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>
+ <DecimalPlaces>1</DecimalPlaces>
+ <Duration>514</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>100000</Max>
+ </TechItem>
+ <TechItem xsi:type="SingleGraphItem">
+ <ID>75b99507-4eba-4b11-b52e-26732d4c5479</ID>
+ <Left>19</Left>
+ <Top>324.14159292035305</Top>
+ <Width>429</Width>
+ <Height>193.26548672566258</Height>
+ <Angle>0</Angle>
+ <ItemGuid>F1DF490B-0577-4FA7-ACA1-0EEF4F934E8F</ItemGuid>
+ <ColorNumber>-14774017</ColorNumber>
+ <DecimalPlaces>4</DecimalPlaces>
+ <Duration>1398</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>100</Max>
+ </TechItem>
+ <TechItem xsi:type="SingleGraphItem">
+ <ID>a30e48de-be76-4230-92d0-d27d6f37b940</ID>
+ <Left>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>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>100</Max>
+ </TechItem>
+ <TechItem xsi:type="SingleGraphItem">
+ <ID>5ac4b368-093a-4192-98d4-e9d24f229b13</ID>
+ <Left>928</Left>
+ <Top>321.64601769912122</Top>
+ <Width>429</Width>
+ <Height>193.26548672566258</Height>
+ <Angle>0</Angle>
+ <ItemGuid>84CF23C9-D20D-4C08-BE1D-80201FC43C06</ItemGuid>
+ <ColorNumber>-14774017</ColorNumber>
+ <DecimalPlaces>4</DecimalPlaces>
+ <Duration>1398</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>100</Max>
+ </TechItem>
+ <TechItem xsi:type="MonitorRecorderItem">
+ <ID>9c34dc69-cfaa-48b4-9d02-8f0d9bba79dd</ID>
+ <Left>1303</Left>
+ <Top>34.380530973454768</Top>
+ <Width>176</Width>
+ <Height>83.05309734512457</Height>
+ <Angle>0</Angle>
+ <ColorNumber>-1</ColorNumber>
+ <SelectedMonitorsGuids>
+ <string>89B7B89D-8050-4188-B568-35B1910CFB6F</string>
+ <string>96B89605-F999-43FE-A1CD-2645BFB33A36</string>
+ <string>84CF23C9-D20D-4C08-BE1D-80201FC43C06</string>
+ <string>FC60060A-3736-4910-B41A-FF6DABDF0E9E</string>
+ <string>5F12B974-2C9E-4DDD-9B20-733251A5D7E6</string>
+ <string>9ADF7823-B293-4275-9999-F62474D246AA</string>
+ <string>4CE6A82E-D841-4D33-BBB2-11F0743A441C</string>
+ <string>F1DF490B-0577-4FA7-ACA1-0EEF4F934E8F</string>
+ </SelectedMonitorsGuids>
+ </TechItem>
+ </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>
+ <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>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>100</Max>
+ </TechItem>
+ <TechItem xsi:type="SingleGraphItem">
+ <ID>cc99a514-1498-4b93-a4eb-4e0a2a2e9de6</ID>
+ <Left>628</Left>
+ <Top>765.4469026548752</Top>
+ <Width>394</Width>
+ <Height>372.88495575221242</Height>
+ <Angle>0</Angle>
+ <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid>
+ <ColorNumber>-14774017</ColorNumber>
+ <DecimalPlaces>1</DecimalPlaces>
+ <Duration>1282</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>100</Max>
+ </TechItem>
+ <TechItem xsi:type="ValveItem">
+ <ID>cdddd48e-422d-48f4-8397-5032c3705fdb</ID>
+ <Left>1069</Left>
+ <Top>698.04867256637226</Top>
+ <Width>382</Width>
+ <Height>136.79203539823016</Height>
+ <Angle>0</Angle>
+ <ItemGuid>16C0F85C-0479-42F4-A67E-3E0CD3B23C2D</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ <TechItem xsi:type="MonitorItem">
+ <ID>ee6d4c5a-ca5b-4557-8012-dacf700cdc08</ID>
+ <Left>231</Left>
+ <Top>624.06637168142413</Top>
+ <Width>144</Width>
+ <Height>80.495575221237516</Height>
+ <Angle>0</Angle>
+ <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C010</ItemGuid>
+ <ColorNumber>-8391822</ColorNumber>
+ <UpdateInterval>10</UpdateInterval>
+ <DecimalPoints>0</DecimalPoints>
+ </TechItem>
+ <TechItem xsi:type="MonitorItem">
+ <ID>20576bb2-202f-4170-9af5-f3c18b410112</ID>
+ <Left>77</Left>
+ <Top>624.46460176991513</Top>
+ <Width>144</Width>
+ <Height>80.495575221237516</Height>
+ <Angle>0</Angle>
+ <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C011</ItemGuid>
+ <ColorNumber>-2186185</ColorNumber>
+ <UpdateInterval>10</UpdateInterval>
+ <DecimalPoints>0</DecimalPoints>
+ </TechItem>
+ </Items>
+ </MachineTechViewProjectTab>
+ <MachineTechViewProjectTab>
+ <Name>Thread insertion</Name>
+ <Items>
+ <TechItem xsi:type="MotorItem">
+ <ID>443a977c-8e89-4a56-82e4-684bac7945c9</ID>
+ <Left>25</Left>
+ <Top>22.761061946902203</Top>
+ <Width>247</Width>
+ <Height>172.25663716814159</Height>
+ <Angle>0</Angle>
+ <ItemGuid>08d15ca1-d7d1-460f-8f37-42c37c287cd1</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <Speed>500</Speed>
+ </TechItem>
+ <TechItem xsi:type="MotorItem">
+ <ID>a821b716-cb7d-4951-84ee-e56955431099</ID>
+ <Left>355</Left>
+ <Top>20.592920353981697</Top>
+ <Width>260</Width>
+ <Height>153.00442477876106</Height>
+ <Angle>0</Angle>
+ <ItemGuid>b90a4e78-ebbf-44db-829b-949517d6400b</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <Speed>50</Speed>
+ </TechItem>
+ <TechItem xsi:type="MotorItem">
+ <ID>e36e321b-d48d-4199-a1ee-75ac18e9de1e</ID>
+ <Left>694</Left>
+ <Top>19.367256637167998</Top>
+ <Width>217</Width>
+ <Height>155.26106194690203</Height>
+ <Angle>0</Angle>
+ <ItemGuid>b7c1aea4-32c1-41cb-bca3-4aa665529b49</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <Speed>50</Speed>
+ </TechItem>
+ <TechItem xsi:type="MotorItem">
+ <ID>8790db03-4dfd-4d49-aec0-706babb55af9</ID>
+ <Left>364</Left>
+ <Top>222.16814159291846</Top>
+ <Width>240</Width>
+ <Height>172.30973451327589</Height>
+ <Angle>0</Angle>
+ <ItemGuid>2d3eaca5-4dfd-40d9-9d1f-aa4ae794eddc</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <Speed>500</Speed>
+ </TechItem>
+ <TechItem xsi:type="MotorItem">
+ <ID>69ebcb28-13d9-41b3-a9ef-b2be51584141</ID>
+ <Left>29</Left>
+ <Top>241.34955752210982</Top>
+ <Width>263</Width>
+ <Height>174.296460176989</Height>
+ <Angle>0</Angle>
+ <ItemGuid>c6099065-a735-4cc5-b575-c31a45bb9262</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <Speed>400</Speed>
+ </TechItem>
+ <TechItem xsi:type="ThreadMotionItem">
+ <ID>4d562029-3fdf-40a4-a5a7-9a322253c912</ID>
+ <Left>1168</Left>
+ <Top>47.305309734517039</Top>
+ <Width>304</Width>
+ <Height>167.26548672566202</Height>
+ <Angle>0</Angle>
+ <ColorNumber>-1</ColorNumber>
+ <Speed>40</Speed>
+ </TechItem>
+ <TechItem xsi:type="BreakSensorItem">
+ <ID>92607e12-2dd6-41c9-8f89-f051f386b734</ID>
+ <Left>1258</Left>
+ <Top>277.55752212389069</Top>
+ <Width>240</Width>
+ <Height>156.04424778761069</Height>
+ <Angle>0</Angle>
+ <ItemGuid>DCE08A06-6711-43AE-AB7C-EADD5AB70EE0</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ <TechItem xsi:type="MotorItem">
+ <ID>7b5b6896-f626-4e59-a5cf-2600e603c0f6</ID>
+ <Left>695</Left>
+ <Top>223.44247787610908</Top>
+ <Width>228</Width>
+ <Height>175.0353982300901</Height>
+ <Angle>0</Angle>
+ <ItemGuid>7b6d0a93-5a91-4e1f-af47-353afd8b5ea6</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <Speed>83.833754740833143</Speed>
+ </TechItem>
+ <TechItem xsi:type="MotorItem">
+ <ID>2052a2d3-843c-4a1c-87fd-acd0832fd1b9</ID>
+ <Left>81</Left>
+ <Top>542.88495575220634</Top>
+ <Width>220</Width>
+ <Height>168.473451327436</Height>
+ <Angle>0</Angle>
+ <ItemGuid>7c03f12f-ab2a-4421-8575-aefd6dec0001</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <Speed>1000</Speed>
+ </TechItem>
+ <TechItem xsi:type="MotorItem">
+ <ID>339b7d00-d688-41cf-926a-8171d5e62740</ID>
+ <Left>376</Left>
+ <Top>553.11061946903</Top>
+ <Width>240</Width>
+ <Height>159.84070796460173</Height>
+ <Angle>0</Angle>
+ <ItemGuid>f3b5076e-cba3-4ad2-b3cc-0c4e907bd9ef</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <Speed>98.094184576485333</Speed>
+ </TechItem>
+ <TechItem xsi:type="MotorItem">
+ <ID>7644a8f9-00a2-4e37-8f48-0667b1541114</ID>
+ <Left>1014</Left>
+ <Top>290.60619469026437</Top>
+ <Width>240</Width>
+ <Height>172.30973451327589</Height>
+ <Angle>0</Angle>
+ <ItemGuid>92237d83-9f85-48db-aa6f-2fc5c9e0d8cd</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <Speed>500</Speed>
+ </TechItem>
+ <TechItem xsi:type="DigitalOutItem">
+ <ID>c706d31b-48b0-44cc-a9c4-11d3acdcf667</ID>
+ <Left>548</Left>
+ <Top>418.71652683599893</Top>
+ <Width>269</Width>
+ <Height>127.67256637168134</Height>
+ <Angle>0</Angle>
+ <ItemGuid>2a454081-bd5e-41de-ae5d-97aefe1d76de</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ <TechItem xsi:type="MotorItem">
+ <ID>7ccff69d-50f9-4e9b-a997-72a67917df5e</ID>
+ <Left>803</Left>
+ <Top>569.80530973451619</Top>
+ <Width>227</Width>
+ <Height>145.08849557522183</Height>
+ <Angle>0</Angle>
+ <ItemGuid>9c02effb-7deb-40a1-90c3-df1fb48e6431</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <Speed>30</Speed>
+ </TechItem>
+ <TechItem xsi:type="MotorItem">
+ <ID>a88a74cb-418b-4ed0-89ec-c42ff560528e</ID>
+ <Left>1107</Left>
+ <Top>573.87168141592883</Top>
+ <Width>227</Width>
+ <Height>145.08849557522183</Height>
+ <Angle>0</Angle>
+ <ItemGuid>a359e9d0-adcc-40a5-b3d9-b9cb26eca092</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <Speed>30</Speed>
+ </TechItem>
+ </Items>
+ </MachineTechViewProjectTab>
+ <MachineTechViewProjectTab>
+ <Name>Head graphs</Name>
+ <Items>
+ <TechItem xsi:type="SingleGraphItem">
+ <ID>ffe980da-dbbe-4bac-9595-46f587e9df00</ID>
+ <Left>3</Left>
+ <Top>5.8097345132742362</Top>
+ <Width>363</Width>
+ <Height>157.76991150442467</Height>
+ <Angle>0</Angle>
+ <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E448FB</ItemGuid>
+ <ColorNumber>-14774017</ColorNumber>
+ <DecimalPlaces>2</DecimalPlaces>
+ <Duration>2962</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>300</Max>
+ </TechItem>
+ <TechItem xsi:type="PidItem">
+ <ID>81b78212-14d8-4a66-bf3a-eeea9900e0d6</ID>
+ <Left>371</Left>
+ <Top>21.075221238938013</Top>
+ <Width>128</Width>
+ <Height>91.469026548670342</Height>
+ <Angle>0</Angle>
+ <ItemGuid>AA1CF164-76FE-49C6-AA73-0EBA29816E92</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ <TechItem xsi:type="HeaterItem">
+ <ID>3941a557-05e6-4c1b-bb98-4f2a59892431</ID>
+ <Left>517</Left>
+ <Top>11.517699115044195</Top>
+ <Width>103</Width>
+ <Height>113.4867256637167</Height>
+ <Angle>0</Angle>
+ <ItemGuid>188285E5-1493-4BED-8269-91743770A631</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <HeaterState>
+ <HeaterType>HeaterZone7</HeaterType>
+ <SetPoint>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>
+ <DecimalPlaces>2</DecimalPlaces>
+ <Duration>2962</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>300</Max>
+ </TechItem>
+ <TechItem xsi:type="PidItem">
+ <ID>064bd571-4250-4ea3-8ed5-96f1ddc8fe6b</ID>
+ <Left>374</Left>
+ <Top>280.73893805309746</Top>
+ <Width>128</Width>
+ <Height>91.469026548670342</Height>
+ <Angle>0</Angle>
+ <ItemGuid>8FEB7F10-E1FB-465A-A987-6E8659C2186A</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ <TechItem xsi:type="HeaterItem">
+ <ID>4845ec5b-067b-43c2-aaf1-314dcb358a7c</ID>
+ <Left>519</Left>
+ <Top>283.3407079646019</Top>
+ <Width>103</Width>
+ <Height>121.59292035398221</Height>
+ <Angle>0</Angle>
+ <ItemGuid>63E2AFE0-0746-4AAB-AA74-C26EC1F282AE</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <HeaterState>
+ <HeaterType>HeaterZone9</HeaterType>
+ <SetPoint>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>
+ <DecimalPlaces>2</DecimalPlaces>
+ <Duration>2962</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>300</Max>
+ </TechItem>
+ <TechItem xsi:type="PidItem">
+ <ID>85e9ecc2-3bce-4055-89a9-1712752898a9</ID>
+ <Left>375.66666666666663</Left>
+ <Top>902.19714360816624</Top>
+ <Width>128</Width>
+ <Height>91.469026548670342</Height>
+ <Angle>0</Angle>
+ <ItemGuid>500698E0-5623-4A47-9537-FCAAF5D0B725</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ <TechItem xsi:type="HeaterItem">
+ <ID>8d9b0d4b-ac5e-4c17-b7eb-4d59825064c7</ID>
+ <Left>523.04166666666652</Left>
+ <Top>895.90015771488663</Top>
+ <Width>103</Width>
+ <Height>121.59292035398221</Height>
+ <Angle>0</Angle>
+ <ItemGuid>F39B952A-6194-4055-A5CB-A3421BFE0F9B</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <HeaterState>
+ <HeaterType>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>
+ <DecimalPlaces>2</DecimalPlaces>
+ <Duration>2962</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>300</Max>
+ </TechItem>
+ <TechItem xsi:type="PidItem">
+ <ID>5ed86083-bdd6-4648-b7ca-f17fa97f034a</ID>
+ <Left>379</Left>
+ <Top>573.57522123893818</Top>
+ <Width>128</Width>
+ <Height>91.469026548670342</Height>
+ <Angle>0</Angle>
+ <ItemGuid>C113AA1D-25F5-4095-A1F3-18BEDFC0EEEE</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ <TechItem xsi:type="HeaterItem">
+ <ID>8269194e-5348-4367-8ae9-e6c0647febaf</ID>
+ <Left>523</Left>
+ <Top>571.1106194690268</Top>
+ <Width>103</Width>
+ <Height>116.52654867256626</Height>
+ <Angle>0</Angle>
+ <ItemGuid>D41BBB23-6EB5-4743-89DB-9191000B475F</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <HeaterState>
+ <HeaterType>HeaterZone11</HeaterType>
+ <SetPoint>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>
+ <DecimalPlaces>2</DecimalPlaces>
+ <Duration>2962</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>300</Max>
+ </TechItem>
+ <TechItem xsi:type="PidItem">
+ <ID>e8130372-e0ee-4c1c-a43d-4ab15ff57bd8</ID>
+ <Left>378</Left>
+ <Top>430.703539823009</Top>
+ <Width>128</Width>
+ <Height>91.469026548670342</Height>
+ <Angle>0</Angle>
+ <ItemGuid>DCCCCF68-5895-40BE-9E90-1FA35E44D2E4</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ <TechItem xsi:type="HeaterItem">
+ <ID>af0d953f-45de-4c0d-9eeb-d7a5c17681e4</ID>
+ <Left>519</Left>
+ <Top>428.23893805309746</Top>
+ <Width>103</Width>
+ <Height>121.59292035398221</Height>
+ <Angle>0</Angle>
+ <ItemGuid>B4D0A1C8-711C-49A9-82A3-B5B9F35FC131</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <HeaterState>
+ <HeaterType>HeaterZone10</HeaterType>
+ <SetPoint>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>
+ <DecimalPlaces>2</DecimalPlaces>
+ <Duration>2962</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>300</Max>
+ </TechItem>
+ <TechItem xsi:type="PidItem">
+ <ID>e7935033-56c6-42a4-a2b3-f5eedb0a11e7</ID>
+ <Left>382</Left>
+ <Top>151.03982300884968</Top>
+ <Width>128</Width>
+ <Height>91.469026548670342</Height>
+ <Angle>0</Angle>
+ <ItemGuid>E772ECA1-24EB-446A-AB28-F5E3D853B9F6</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ <TechItem xsi:type="HeaterItem">
+ <ID>b339a7c0-7555-4e54-9834-6193ed7c2b7a</ID>
+ <Left>519</Left>
+ <Top>147.561946902655</Top>
+ <Width>104</Width>
+ <Height>109.43362831858406</Height>
+ <Angle>0</Angle>
+ <ItemGuid>461FA2D7-1918-4958-AAA7-37A1A329FA12</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <HeaterState>
+ <HeaterType>HeaterZone8</HeaterType>
+ <SetPoint>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>
+ <DecimalPlaces>2</DecimalPlaces>
+ <Duration>2962</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>300</Max>
+ </TechItem>
+ <TechItem xsi:type="PidItem">
+ <ID>b3826c8e-1d82-4f4f-ad9f-d88f257dffb2</ID>
+ <Left>1005</Left>
+ <Top>12.221238938053205</Top>
+ <Width>128</Width>
+ <Height>91.469026548670342</Height>
+ <Angle>0</Angle>
+ <ItemGuid>d59b64f7-a8cf-4a2b-935a-943ae35fb78c</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ <TechItem xsi:type="HeaterItem">
+ <ID>d3631074-68c4-4377-b0c5-9213a6b1b2c0</ID>
+ <Left>1148</Left>
+ <Top>293.47345132743362</Top>
+ <Width>103</Width>
+ <Height>113.4867256637167</Height>
+ <Angle>0</Angle>
+ <ItemGuid>8E764A14-0F84-4FEC-928B-32A2509CAD57</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <HeaterState>
+ <HeaterType>HeaterZone3</HeaterType>
+ <SetPoint>0</SetPoint>
+ <CurrentValue>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>
+ <DecimalPlaces>2</DecimalPlaces>
+ <Duration>2962</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>100</Max>
+ </TechItem>
+ <TechItem xsi:type="PidItem">
+ <ID>233f0076-7595-4ecb-8496-41eeb7b457ea</ID>
+ <Left>993</Left>
+ <Top>279.72566371681404</Top>
+ <Width>128</Width>
+ <Height>91.469026548670342</Height>
+ <Angle>0</Angle>
+ <ItemGuid>9de55ec4-201f-4f62-9003-f63ebea06f8f</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ <TechItem xsi:type="HeaterItem">
+ <ID>f815ebb5-61af-45ff-8109-5f5e717a5c4d</ID>
+ <Left>1146</Left>
+ <Top>14.823008849557596</Top>
+ <Width>103</Width>
+ <Height>113.4867256637167</Height>
+ <Angle>0</Angle>
+ <ItemGuid>27E7BB74-81C3-4EF2-80AE-962F111C441F</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <HeaterState>
+ <HeaterType>HeaterZone1</HeaterType>
+ <SetPoint>0</SetPoint>
+ <CurrentValue>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>
+ <DecimalPlaces>2</DecimalPlaces>
+ <Duration>2962</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>300</Max>
+ </TechItem>
+ <TechItem xsi:type="PidItem">
+ <ID>72d7192b-dd27-4064-9f5f-90062388a81c</ID>
+ <Left>1003</Left>
+ <Top>151.03982300884974</Top>
+ <Width>128</Width>
+ <Height>91.469026548670342</Height>
+ <Angle>0</Angle>
+ <ItemGuid>df38139e-0026-46bc-b72f-df5f9eec80f7</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ <TechItem xsi:type="HeaterItem">
+ <ID>915f8dfc-5407-43ca-a0c7-d774867dfb5f</ID>
+ <Left>1145</Left>
+ <Top>153.64159292035396</Top>
+ <Width>103</Width>
+ <Height>113.4867256637167</Height>
+ <Angle>0</Angle>
+ <ItemGuid>B4EE8CC0-EE2B-4ABE-BF09-9226860E756B</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <HeaterState>
+ <HeaterType>HeaterZone2</HeaterType>
+ <SetPoint>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>
+ <DecimalPlaces>2</DecimalPlaces>
+ <Duration>2962</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>300</Max>
+ </TechItem>
+ <TechItem xsi:type="PidItem">
+ <ID>5f451443-fab2-4bf6-8f21-5e038ca2c726</ID>
+ <Left>1008</Left>
+ <Top>707.327433628319</Top>
+ <Width>128</Width>
+ <Height>91.469026548670342</Height>
+ <Angle>0</Angle>
+ <ItemGuid>16D0DEF7-A2E0-4163-9F4B-FBEC2573BCC7</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ <TechItem xsi:type="HeaterItem">
+ <ID>e5c1becb-1402-45fa-b252-60a03d4401cc</ID>
+ <Left>1150</Left>
+ <Top>716.00884955752235</Top>
+ <Width>103</Width>
+ <Height>113.4867256637167</Height>
+ <Angle>0</Angle>
+ <ItemGuid>D2B6CAA0-055E-4871-8D91-A5370F1ACB22</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <HeaterState>
+ <HeaterType>HeaterZone6</HeaterType>
+ <SetPoint>0</SetPoint>
+ <CurrentValue>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>
+ <DecimalPlaces>2</DecimalPlaces>
+ <Duration>2962</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>300</Max>
+ </TechItem>
+ <TechItem xsi:type="PidItem">
+ <ID>665593d6-e689-459e-94f9-2cdcce6150ac</ID>
+ <Left>1004</Left>
+ <Top>562.42920353982311</Top>
+ <Width>128</Width>
+ <Height>91.469026548670342</Height>
+ <Angle>0</Angle>
+ <ItemGuid>d28bfa3c-edce-4f19-a296-3da251fcc0e2</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ <TechItem xsi:type="HeaterItem">
+ <ID>42b4b029-e8bc-4156-b6c1-bb64aae83f9e</ID>
+ <Left>1149</Left>
+ <Top>571.1106194690268</Top>
+ <Width>103</Width>
+ <Height>113.4867256637167</Height>
+ <Angle>0</Angle>
+ <ItemGuid>D6771DF4-771E-4D62-B6BA-BDE361C0A0F3</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <HeaterState>
+ <HeaterType>HeaterZone5</HeaterType>
+ <SetPoint>0</SetPoint>
+ <CurrentValue>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>
+ <DecimalPlaces>2</DecimalPlaces>
+ <Duration>2962</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>300</Max>
+ </TechItem>
+ <TechItem xsi:type="PidItem">
+ <ID>b53a74f3-8e91-40ce-b980-c5b237baeee9</ID>
+ <Left>1002</Left>
+ <Top>413.47787610619491</Top>
+ <Width>128</Width>
+ <Height>91.469026548670342</Height>
+ <Angle>0</Angle>
+ <ItemGuid>81a3ae80-f4ea-4857-bc4e-2055d3b5fbc7</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ <TechItem xsi:type="HeaterItem">
+ <ID>8c438e59-d87c-46d2-8050-acc8a0c455d7</ID>
+ <Left>1148</Left>
+ <Top>434.31858407079636</Top>
+ <Width>103</Width>
+ <Height>113.4867256637167</Height>
+ <Angle>0</Angle>
+ <ItemGuid>94574D69-46E1-4144-A8B5-D4BF0DA96D18</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <HeaterState>
+ <HeaterType>HeaterZone4</HeaterType>
+ <SetPoint>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>
+ <DecimalPlaces>2</DecimalPlaces>
+ <Duration>2962</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>300</Max>
+ </TechItem>
+ <TechItem xsi:type="PidItem">
+ <ID>584c7f29-49cc-4845-a7ab-09239bd3a986</ID>
+ <Left>377.875</Left>
+ <Top>735.75944098834611</Top>
+ <Width>128</Width>
+ <Height>91.469026548670342</Height>
+ <Angle>0</Angle>
+ <ItemGuid>96A8AF31-B489-4FA2-BF99-C66D7DEC94C8</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ <TechItem xsi:type="HeaterItem">
+ <ID>5c6da8d4-bd2e-44cc-8d99-a6b8bca7df3f</ID>
+ <Left>524.20833333333337</Left>
+ <Top>721.52681153071046</Top>
+ <Width>103</Width>
+ <Height>121.59292035398221</Height>
+ <Angle>0</Angle>
+ <ItemGuid>2D578A37-D808-40D0-ACE4-4A868EDD6BDC</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <HeaterState>
+ <HeaterType>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>
+ <DecimalPlaces>2</DecimalPlaces>
+ <Duration>2962</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>300</Max>
+ </TechItem>
+ <TechItem xsi:type="PidItem">
+ <ID>c1f48bf1-9cb3-475a-b152-e8b9a211b694</ID>
+ <Left>1010.1666666666667</Left>
+ <Top>895.60597564181194</Top>
+ <Width>128</Width>
+ <Height>91.469026548670342</Height>
+ <Angle>0</Angle>
+ <ItemGuid>7FCA67CB-785B-49F7-B9F2-191E3ACC6CB7</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ <TechItem xsi:type="HeaterItem">
+ <ID>c5fbeda2-230d-40e4-9d52-5b3236e0c561</ID>
+ <Left>1161.708333333333</Left>
+ <Top>885.907999649522</Top>
+ <Width>103</Width>
+ <Height>121.59292035398221</Height>
+ <Angle>0</Angle>
+ <ItemGuid>F8C1BA7F-F6DF-414D-BAF5-D4CB292F91F6</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <HeaterState>
+ <HeaterType>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>
+ <DecimalPlaces>3</DecimalPlaces>
+ <Duration>3600</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>100</Max>
+ </TechItem>
+ <TechItem xsi:type="SingleGraphItem">
+ <ID>aae29286-81b3-476a-9f58-c0fd246cae96</ID>
+ <Left>880</Left>
+ <Top>158.81415929204155</Top>
+ <Width>442</Width>
+ <Height>241.88495575221771</Height>
+ <Angle>0</Angle>
+ <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid>
+ <ColorNumber>-14774017</ColorNumber>
+ <DecimalPlaces>3</DecimalPlaces>
+ <Duration>3600</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>100</Max>
+ </TechItem>
+ <TechItem xsi:type="TextItem">
+ <ID>7d94c7c4-1288-4f9d-b0e6-a06794829642</ID>
+ <Left>1055</Left>
+ <Top>14.181415929203524</Top>
+ <Width>161</Width>
+ <Height>111.46017699115049</Height>
+ <Angle>0</Angle>
+ <ColorNumber>-14774017</ColorNumber>
+ <Text>Y</Text>
+ </TechItem>
+ <TechItem xsi:type="TextItem">
+ <ID>c95f9ad1-b607-4606-8217-400bea76f3d6</ID>
+ <Left>384</Left>
+ <Top>23.991150442480944</Top>
+ <Width>161</Width>
+ <Height>111.46017699115049</Height>
+ <Angle>0</Angle>
+ <ColorNumber>-14774017</ColorNumber>
+ <Text>C</Text>
+ </TechItem>
+ <TechItem xsi:type="MonitorItem">
+ <ID>8f141fa5-fb24-4557-adcf-a6aa55a28fb4</ID>
+ <Left>121</Left>
+ <Top>-8.8495575221214722</Top>
+ <Width>169</Width>
+ <Height>132.73893805309734</Height>
+ <Angle>0</Angle>
+ <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <UpdateInterval>10</UpdateInterval>
+ <DecimalPoints>3</DecimalPoints>
+ </TechItem>
+ <TechItem xsi:type="MonitorItem">
+ <ID>7eab018a-ef43-4bca-a6cf-857d69767bba</ID>
+ <Left>839</Left>
+ <Top>-4.7079646017762684</Top>
+ <Width>169</Width>
+ <Height>132.73893805309734</Height>
+ <Angle>0</Angle>
+ <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <UpdateInterval>10</UpdateInterval>
+ <DecimalPoints>3</DecimalPoints>
+ </TechItem>
+ <TechItem xsi:type="MonitorRecorderItem">
+ <ID>2a9e89d4-5d60-4a83-9527-cb77fdf35c14</ID>
+ <Left>1276</Left>
+ <Top>22.287610619469035</Top>
+ <Width>187</Width>
+ <Height>102.34070796460179</Height>
+ <Angle>0</Angle>
+ <ColorNumber>-1</ColorNumber>
+ <SelectedMonitorsGuids>
+ <string>1F0F907A-EC16-4386-AFC8-B2B156F2A822</string>
+ <string>A499E5E0-A812-4032-8F96-B38C6762C4BD</string>
+ <string>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</string>
+ <string>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</string>
+ <string>19645882-6587-4A50-BD85-AF06617DC654</string>
+ <string>96B89605-F999-43FE-A1CD-2645BFB33A36</string>
+ <string>84CF23C9-D20D-4C08-BE1D-80201FC43C06</string>
+ <string>C0BCCD5C-346B-4C4A-A080-39D28E9E1A0C</string>
+ <string>10102BC3-0EAE-47FF-A8E5-8640780CAA3D</string>
+ <string>FC60060A-3736-4910-B41A-FF6DABDF0E9E</string>
+ <string>5F12B974-2C9E-4DDD-9B20-733251A5D7E6</string>
+ <string>D126DB23-784B-4F0C-8F88-D89A65A7549F</string>
+ </SelectedMonitorsGuids>
+ </TechItem>
+ <TechItem xsi:type="DispenserItem">
+ <ID>6d2e7962-b3ae-4682-b20e-9654f48dcffe</ID>
+ <Left>587</Left>
+ <Top>5.0619469026548813</Top>
+ <Width>155</Width>
+ <Height>131.72566371681415</Height>
+ <Angle>0</Angle>
+ <ItemGuid>2CC8E461-E91F-4D4C-A402-922477F06C87</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <Speed>500</Speed>
+ <DisplayName>Dispenser 1</DisplayName>
+ </TechItem>
+ <TechItem xsi:type="SingleGraphItem">
+ <ID>5ee2718f-f068-427b-a31e-d586c7d7682c</ID>
+ <Left>131</Left>
+ <Top>552.94690265486338</Top>
+ <Width>390</Width>
+ <Height>249.67699115047321</Height>
+ <Angle>0</Angle>
+ <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid>
+ <ColorNumber>-14774017</ColorNumber>
+ <DecimalPlaces>3</DecimalPlaces>
+ <Duration>3600</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>100</Max>
+ </TechItem>
+ <TechItem xsi:type="TextItem">
+ <ID>1c254a92-c075-453f-9667-cdcc91cf8e6a</ID>
+ <Left>399</Left>
+ <Top>455.67256637168265</Top>
+ <Width>161</Width>
+ <Height>111.46017699115049</Height>
+ <Angle>0</Angle>
+ <ColorNumber>-14774017</ColorNumber>
+ <Text>K</Text>
+ </TechItem>
+ <TechItem xsi:type="MonitorItem">
+ <ID>d1087b1a-c36b-4242-96f5-07c2bb602cc4</ID>
+ <Left>145</Left>
+ <Top>409.52212389380446</Top>
+ <Width>169</Width>
+ <Height>132.73893805309734</Height>
+ <Angle>0</Angle>
+ <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <UpdateInterval>10</UpdateInterval>
+ <DecimalPoints>3</DecimalPoints>
+ </TechItem>
+ <TechItem xsi:type="SingleGraphItem">
+ <ID>53fe93a2-88a5-4d4d-9cd5-eb4d8a8fefae</ID>
+ <Left>604</Left>
+ <Top>561.16371681414739</Top>
+ <Width>390</Width>
+ <Height>249.67699115047321</Height>
+ <Angle>0</Angle>
+ <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid>
+ <ColorNumber>-14774017</ColorNumber>
+ <DecimalPlaces>3</DecimalPlaces>
+ <Duration>3600</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>100</Max>
+ </TechItem>
+ <TechItem xsi:type="TextItem">
+ <ID>0bef6e9d-6da0-4f06-9e1a-c00142bde4c1</ID>
+ <Left>832</Left>
+ <Top>440.91150442477635</Top>
+ <Width>161</Width>
+ <Height>111.46017699115049</Height>
+ <Angle>0</Angle>
+ <ColorNumber>-14774017</ColorNumber>
+ <Text>M</Text>
+ </TechItem>
+ <TechItem xsi:type="MonitorItem">
+ <ID>762c5a97-a3bc-45b4-aa9f-0b50afa9cb9b</ID>
+ <Left>633</Left>
+ <Top>434.0132743362783</Top>
+ <Width>169</Width>
+ <Height>132.73893805309734</Height>
+ <Angle>0</Angle>
+ <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <UpdateInterval>10</UpdateInterval>
+ <DecimalPoints>3</DecimalPoints>
+ </TechItem>
+ <TechItem xsi:type="SingleGraphItem">
+ <ID>be584f80-3250-494c-87fc-250d6deae051</ID>
+ <Left>1045</Left>
+ <Top>559.4070796459921</Top>
+ <Width>390</Width>
+ <Height>249.67699115047321</Height>
+ <Angle>0</Angle>
+ <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid>
+ <ColorNumber>-14774017</ColorNumber>
+ <DecimalPlaces>3</DecimalPlaces>
+ <Duration>3600</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>100</Max>
+ </TechItem>
+ <TechItem xsi:type="MonitorItem">
+ <ID>39f6a02c-c4d9-47d0-b92d-bdea0ed5d3ce</ID>
+ <Left>1056</Left>
+ <Top>435.43805309733875</Top>
+ <Width>169</Width>
+ <Height>132.73893805309734</Height>
+ <Angle>0</Angle>
+ <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <UpdateInterval>10</UpdateInterval>
+ <DecimalPoints>3</DecimalPoints>
+ </TechItem>
+ <TechItem xsi:type="TextItem">
+ <ID>5b924929-9b16-4598-94cc-b2f4bca26798</ID>
+ <Left>1304</Left>
+ <Top>448.0884955752224</Top>
+ <Width>161</Width>
+ <Height>111.46017699115049</Height>
+ <Angle>0</Angle>
+ <ColorNumber>-14774017</ColorNumber>
+ <Text>TI</Text>
+ </TechItem>
+ <TechItem xsi:type="ValveItem">
+ <ID>89ae1fa5-1ad1-469e-ae76-0a29c35805cd</ID>
+ <Left>588</Left>
+ <Top>317.1504424778762</Top>
+ <Width>283</Width>
+ <Height>74.982300884955748</Height>
+ <Angle>0</Angle>
+ <ItemGuid>E144A221-4859-4DC3-9A7E-4A2969FB0826</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ <TechItem xsi:type="ValveItem">
+ <ID>c218cf34-74c2-41bb-8c3b-3030abce451a</ID>
+ <Left>1363</Left>
+ <Top>384.02654867256643</Top>
+ <Width>156</Width>
+ <Height>94.234513274336337</Height>
+ <Angle>0</Angle>
+ <ItemGuid>E144A221-4859-4DC3-9A7E-4A2969FB0826</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ <TechItem xsi:type="ValveItem">
+ <ID>75af30c6-d7f8-4745-bfb5-d6dc5d50479a</ID>
+ <Left>767</Left>
+ <Top>362.74778761061958</Top>
+ <Width>283</Width>
+ <Height>74.982300884955748</Height>
+ <Angle>0</Angle>
+ <ItemGuid>E144A221-4859-4DC3-9A7E-4A2969FB0826</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ <TechItem xsi:type="MonitorItem">
+ <ID>df1fd958-fd8a-4b00-98e1-679455494d60</ID>
+ <Left>309</Left>
+ <Top>13.168141592920392</Top>
+ <Width>112</Width>
+ <Height>107.40707964601768</Height>
+ <Angle>0</Angle>
+ <ItemGuid>3174ADCF-5793-4B5A-A3C6-B96E146A903D</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <UpdateInterval>10</UpdateInterval>
+ <DecimalPoints>0</DecimalPoints>
+ </TechItem>
+ <TechItem xsi:type="MonitorItem">
+ <ID>f07225b3-1522-4cb6-9ba8-5b9697f05467</ID>
+ <Left>1180</Left>
+ <Top>60.7920353982301</Top>
+ <Width>102</Width>
+ <Height>88.1548672566372</Height>
+ <Angle>0</Angle>
+ <ItemGuid>E2F0FC31-CE7E-416B-ACEA-8EB6CA9B850B</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <UpdateInterval>10</UpdateInterval>
+ <DecimalPoints>0</DecimalPoints>
+ </TechItem>
+ <TechItem xsi:type="MonitorItem">
+ <ID>45b87322-e1f5-42eb-88c6-71c2eeb2899a</ID>
+ <Left>1258</Left>
+ <Top>463.06194690265494</Top>
+ <Width>88</Width>
+ <Height>75.995575221239</Height>
+ <Angle>0</Angle>
+ <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C09F</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <UpdateInterval>10</UpdateInterval>
+ <DecimalPoints>0</DecimalPoints>
+ </TechItem>
+ <TechItem xsi:type="MonitorItem">
+ <ID>0c1c25e8-3ce3-4994-bbb9-bd6b2367a413</ID>
+ <Left>810</Left>
+ <Top>462.04867256637175</Top>
+ <Width>77</Width>
+ <Height>80.048672566371636</Height>
+ <Angle>0</Angle>
+ <ItemGuid>AD50C358-5BAF-4A2F-8593-51A22C85B3D1</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <UpdateInterval>10</UpdateInterval>
+ <DecimalPoints>0</DecimalPoints>
+ </TechItem>
+ <TechItem xsi:type="MonitorItem">
+ <ID>fa2f697e-b229-418a-bae6-78b92bf0458b</ID>
+ <Left>336</Left>
+ <Top>428.61061946902663</Top>
+ <Width>95</Width>
+ <Height>96.261061946902657</Height>
+ <Angle>0</Angle>
+ <ItemGuid>84682E90-6926-42AA-BF8C-2CCCF5C26C97</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <UpdateInterval>10</UpdateInterval>
+ <DecimalPoints>0</DecimalPoints>
+ </TechItem>
+ </Items>
+ </MachineTechViewProjectTab>
+ <MachineTechViewProjectTab>
+ <Name>Priming</Name>
+ <Items>
+ <TechItem xsi:type="MonitorItem">
+ <ID>ea45a516-9dac-4c9a-9261-0c44e22aa065</ID>
+ <Left>808</Left>
+ <Top>155.02654867256638</Top>
+ <Width>219</Width>
+ <Height>200.62831858407088</Height>
+ <Angle>0</Angle>
+ <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <UpdateInterval>10</UpdateInterval>
+ <DecimalPoints>2</DecimalPoints>
+ </TechItem>
+ <TechItem xsi:type="DispenserItem">
+ <ID>3e2cb7dc-a5f3-4ba6-a520-2bae8ff0e4a8</ID>
+ <Left>832</Left>
+ <Top>451.91592920353986</Top>
+ <Width>332</Width>
+ <Height>326.27433628318596</Height>
+ <Angle>0</Angle>
+ <ItemGuid>C8D8FE90-0375-44A2-A6D1-E997789E065C</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ <Speed>1200</Speed>
+ <DisplayName>Dispenser 2</DisplayName>
+ </TechItem>
+ <TechItem xsi:type="SingleGraphItem">
+ <ID>6f8dfd8d-ed50-4923-b908-e0b5bc5d6ae5</ID>
+ <Left>154</Left>
+ <Top>131.72123893805315</Top>
+ <Width>474</Width>
+ <Height>410.37610619469024</Height>
+ <Angle>0</Angle>
+ <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid>
+ <ColorNumber>-14774017</ColorNumber>
+ <DecimalPlaces>1</DecimalPlaces>
+ <Duration>1942</Duration>
+ <UseAutoRange>true</UseAutoRange>
+ <Min>0</Min>
+ <Max>100</Max>
+ </TechItem>
+ <TechItem xsi:type="ValveItem">
+ <ID>604e031b-89c3-4c9d-90ef-7b861a77e5e0</ID>
+ <Left>243</Left>
+ <Top>595.80088495575228</Top>
+ <Width>497</Width>
+ <Height>189.48230088495575</Height>
+ <Angle>0</Angle>
+ <ItemGuid>8B1FCBC3-FEEA-4F87-B56F-CE5D28B7ACA4</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ <TechItem xsi:type="DigitalOutItem">
+ <ID>c414ae0e-323a-48c1-9165-2c05cc4234c6</ID>
+ <Left>1291</Left>
+ <Top>584.65486725663732</Top>
+ <Width>200</Width>
+ <Height>171.24336283185835</Height>
+ <Angle>0</Angle>
+ <ItemGuid>0bd10306-2944-4cda-bc59-0264da2883d2</ItemGuid>
+ <ColorNumber>-1</ColorNumber>
+ </TechItem>
+ </Items>
+ </MachineTechViewProjectTab>
+ </Tabs>
+ <SelectedTabIndex>0</SelectedTabIndex>
+</MachineTechViewProject> \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/temp/EmbParam.cfg b/Software/Stubs Collection/stubs/temp/EmbParam.cfg
new file mode 100644
index 000000000..00a9e0549
--- /dev/null
+++ b/Software/Stubs Collection/stubs/temp/EmbParam.cfg
Binary files differ
diff --git a/Software/Stubs Collection/stubs/temp/embeddedparametersbuild.cs b/Software/Stubs Collection/stubs/temp/embeddedparametersbuild.cs
new file mode 100644
index 000000000..c49e44582
--- /dev/null
+++ b/Software/Stubs Collection/stubs/temp/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 = 1;
+
+//how many consecutive readout before declaring DC over/underheat alarm
+configurationParameters.OverHeatCountLimit = 3;
+configurationParameters.UnderHeatCountLimit = 3;
+
+// time of motor activity before opening the valve or after closing the valve, in milliseconds
+configurationParameters.CloseValveTimeout = 49;
+configurationParameters.OpenValveTimeout = 49;
+
+//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 = 950; //no more than 1000
+configurationParameters.DispenserBuildPressureLimit = 1.0;
+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;
+//
+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 = 50;
+
+//general parameters, ORDER MUST BE PRESERVED!!!!
+//check the dispensers hard limit alarms
+/*1*/
+Double checkHardLimitAlarms = new Double();
+
+checkHardLimitAlarms = 1.0;
+configurationParameters.GeneralParameters.Add(checkHardLimitAlarms);
+
+/*2*/
+Double checkCurrentAlarms = new Double();
+checkCurrentAlarms = 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 = 800.0;
+configurationParameters.GeneralParameters.Add(WinderBackToBaseTime);
+
+/*6*/
+Double DispenserInitialPressureSpeed = new Double();
+DispenserInitialPressureSpeed = 1150.0;
+configurationParameters.GeneralParameters.Add(DispenserInitialPressureSpeed);
+
+/*7*/
+Double SetDiagnosticMode = new Double();
+SetDiagnosticMode = 1.0;
+configurationParameters.GeneralParameters.Add(SetDiagnosticMode);
+
+/*8*/
+Double SetAutoFill = new Double();
+SetAutoFill = 3.0;
+configurationParameters.GeneralParameters.Add(SetAutoFill);
+
+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/test_reg_readback.cs b/Software/Stubs Collection/stubs/test_reg_readback.cs
new file mode 100644
index 000000000..d5ef91a3b
--- /dev/null
+++ b/Software/Stubs Collection/stubs/test_reg_readback.cs
@@ -0,0 +1,20 @@
+using System;
+using System.Text;
+using System.Linq;
+using System.Drawing;
+using System.Diagnostics;
+using System.Windows.Forms;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+using Tango.PMR.Stubs;
+using Tango.Stubs;
+
+public void OnExecute(StubManager stubManager)
+{
+
+var response = stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000000 + 0x3F0, 0xAAAA);
+
+var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000000 + 0x3F0);
+stubManager.WriteLineHex(response1.Value,4);
+} \ No newline at end of file