aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Stubs Collection/stubs/Scripts/Assemblies
diff options
context:
space:
mode:
authorMirta <mirta@twine-s.com>2020-12-30 16:39:52 +0200
committerMirta <mirta@twine-s.com>2020-12-30 16:39:52 +0200
commit00a491d93733d4625ad329b2ba8237f445364b3f (patch)
tree4b24c6fa78d7648f4bb7cefafa464bb0b063fec4 /Software/Stubs Collection/stubs/Scripts/Assemblies
parent124ad4150f80c6846fdee41dbbda9848c105f6e5 (diff)
downloadTango-00a491d9.tar.gz
Tango-00a491d9.zip
merge
Diffstat (limited to 'Software/Stubs Collection/stubs/Scripts/Assemblies')
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/ArcHead/Write Arc head eeprom.cs146
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/ArcHead/clean_motor_ls.cs278
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser ByPass - getout from loewer safety.cs46
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser ByPass - getout from upper safety.cs46
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser_LimitSwitch.cs2
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser_PressureSensor.cs2
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Blowe_RMO_LOG.CSV4
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test.cs204
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test1.cs217
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test2.cs227
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test3.cs229
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Jig.cs542
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_LimitSwitch.cs39
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_SSR.cs63
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset.CSV499
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset1.CSV1600
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset111.CSV29654
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_ssi.cs (renamed from Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Encoder.cs)27
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/GPO_Blower_PWM.cs36
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Load_Dryer_Arm.cs224
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Loading_arm_center_calibration.cs22
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/blower_rpm.cs62
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test.csv1795
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test1.cs78
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test1.csv345
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test12.csv283
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test13.csv290
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test14.csv224
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test15.csv181
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test16.csv231
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test2.csv271
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test3.csv127
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test_dryer_heater.cs174
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test_dryer_heater1.cs186
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_In_Test.cs34
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_In_new set point.cs34
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_test.cs32
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/DyeHeadJig.cs548
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/DyeHeadJig1.cs575
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Jig/DyeHeadJig.cs384
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Write Flate head eeprom.cs146
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Write SYLKO to head eeprom.cs118
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/magnet_motor_limit_switch1.cs75
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/ElectricalEnclosure/ElectricalEnclosure_Fans1.cs100
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Header/1.cs (renamed from Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/1.cs)0
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Header/DyeHead_SSR.cs (renamed from Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/DyeHead_SSR.cs)0
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Header/DyeHead_SSR_CURRENT_SENSE.cs (renamed from Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/DyeHead_SSR_CURRENT_SENSE.cs)0
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Header/header_LimitSwitch.cs (renamed from Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/header_LimitSwitch.cs)0
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Header/magner_motor_limit_switch.cs (renamed from Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/magnet_motor_limit_switch.cs)0
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Header/magner_ssr.cs (renamed from Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/magner_ssr.cs)0
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_JIG.cs574
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Motors_Switch.cs103
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Motors_Switch1.cs208
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Right_Position.cs145
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_SSI.cs64
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/Test_Loading_TFU.cs155
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/test.cs (renamed from Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_motor_test.cs)22
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Calibrate_Midtank_pressure_sensors_old.cs347
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 1 Motor Frequency.csv19
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 1 Pressure.csv55
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 2 Motor Frequency.csv19
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 2 Pressure.csv55
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 3 Motor Frequency.csv19
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 3 Pressure.csv55
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Feeder Motor.csv55
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/MIDTANK_JIG.cs480
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Midtank_Valves_test.cs65
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Midtank_pressure_sensors.cs64
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/New_Calibrate_Midtank_pressure_sensors.cs451
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Poller Motor.csv55
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Right Dancer.csv541
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Screw Motor.csv1
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/midtanksetparams.cs151
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/read_midtank_calibration.cs37
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/New_DyeHead/Test_Actuator.cs42
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/New_DyeHead/Test_Lid.cs145
-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/PowerStep01/Get_PowerStep01_Parameters.cs227
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Logger Temprature/Book4.xlsxbin9351 -> 0 bytes
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Logger Temprature/Copy of Book4.xlsxbin9880 -> 0 bytes
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Logger Temprature/Logger data.xlsxbin9874 -> 0 bytes
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Motor_GMotor_Get_Param_Powerstep01_rev2.cs292
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Motor_GMotor_Get_Param_Powerstep01_rev3.cs237
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Set_PowerStep01_Parameters.cs230
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/RTFU/RTFU_JIG.cs537
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/RTFU/RTFU_JIG1.cs552
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/RTFU/RTFU_SSI1.cs93
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/WHS/WHS_waste_Tank_Calibration_Save_V0.cs90
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/WHS/fan1-4.cs29
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/WHS/pump2.cs32
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Winder/Screw_Encoder.cs44
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Winder/Winder_Jig.cs370
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Winder/Winder_Zero.cs90
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Winder/Winder_spoll_exist.cs65
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Blower.cs21
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Blower_Data.cs28
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Fan_speed.cs36
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Fan_test.cs42
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Rehostat.cs31
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Set_Blower_Get_Q_Qavarege_Volt.cs64
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Shinko_Read_Temperature.cs26
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Shinko_Read_Temperature_1.cs35
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/fan.cs34
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/get_A2D_MAX11614.cs48
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/pump.cs29
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/set_gas_get_A2D_MAX11614.cs52
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_Blower.cs60
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_Fan_speed.cs59
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_blower_and_ORF3.cs48
-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/Assemblies/newWHS/test_valv1_valv2_pump.cs47
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_valv1_valv2_pump_Blower.cs27
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/valv1.cs33
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/valv2.cs34
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/whs control loop disable.cs26
120 files changed, 320 insertions, 48153 deletions
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/ArcHead/Write Arc head eeprom.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/ArcHead/Write Arc head eeprom.cs
deleted file mode 100644
index 8d0056de2..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/ArcHead/Write Arc head eeprom.cs
+++ /dev/null
@@ -1,146 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-//----------------------
-const Int32 I2C_ID = 3; //MCU_I2C3
-const Int32 TCA9548A_address = 0xE2;
-const Int32 I2C_Slave_Add = 0xA0; // //eeprom address - 32kByte
-int Head_Mux_Channel_ID = 4; //Head MUX channel
-//----------------------
-
-const Int32 SerialNum = 0x01;
-
-
-int enable_channel(int Channel_ID)
-{
- uint Const_temp = 0x01;
-
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = TCA9548A_address;
-
- Const_temp = Const_temp << Channel_ID;
- stubI2CWriteBytesRequest.BytesTWrite.Add(Const_temp);
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
-}
-
-
-int WriteFlatEpprom(uint I2C_Slave_Add)
-{
- uint Page=0;
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write
- //--------------------------------------------------------------
-
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x33); //header
- stubI2CWriteBytesRequest.BytesTWrite.Add(0xcc);
- stubI2CWriteBytesRequest.BytesTWrite.Add(0xaa);
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x55);
-
- //stubI2CWriteBytesRequest.BytesTWrite.Add(0x04);//HEAD_TYPE_STAPLE_SPUN
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
- Thread.Sleep(100);
-
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(92);//Byte 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write
- //--------------------------------------------------------------
-
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x20); //flat
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x00);
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x00);
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x00);
-
- //stubI2CWriteBytesRequest.BytesTWrite.Add(0x04);//HEAD_TYPE_STAPLE_SPUN
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
- Thread.Sleep(100);
-
-
-
-
-
- return 1;
-}
-
-int adc_set_for_read_ch(uint I2C_Slave_Add, uint Page)
-{
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
-}
-
-int adc_read_ch(uint I2C_Slave_Add)
-{
- StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();
- stubI2CReadBytesRequest.I2CId = I2C_ID;
- stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add + 1;
- stubI2CReadBytesRequest.NumberOfBytesToRead = 10; // Number of bytes to read
-
- var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);
- uint temph=0;
-
- for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++)
- {
- temph=response1.ReadBytes[i];
- stubManager.WriteHex(temph,2);
- }
-
- return 1;
-}
-
-
-public void OnExecute(StubManager stubManager)
-{
-
- //enable_all_channel();
- enable_channel(Head_Mux_Channel_ID); // Chanel 0-7 => Disp0enser 0-7
-
- for (int i = 0; i<1; i++)
- {
-
- WriteFlatEpprom(I2C_Slave_Add);
- Thread.Sleep(10); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet )
-
- stubManager.Write("\nPage 0x00 #");
- stubManager.Write(i);
- stubManager.Write("\t- The Buffer is: ");
- adc_set_for_read_ch(I2C_Slave_Add, 0x00);
- //Thread.Sleep(1); //Sleep for 10 milli.
- adc_read_ch(I2C_Slave_Add);
-
- Thread.Sleep(1000);
-
- }
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/ArcHead/clean_motor_ls.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/ArcHead/clean_motor_ls.cs
deleted file mode 100644
index 2a0fc12cf..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/ArcHead/clean_motor_ls.cs
+++ /dev/null
@@ -1,278 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-
-const Int32 LS_FRONT=0X460110;
-const Int32 LS_REAR=0X460120;
-const Int32 LS_UPPER=0X460140;
-const Int32 LS_SPARE=0X460180;
-
-const Int32 DyeingHeadLid_Motor = 2;
-
-const Int32 F1_MOTO_DH_LID_A1_TX_00 = 0x600002F0 ;
-const Int32 F1_MOTO_DH_LID_A1_TX_01 = 0x600002F2 ;
-const Int32 F1_MOTO_DH_LID_A1_RX_00 = 0x600002F4 ;
-const Int32 F1_MOTO_DH_LID_A1_RX_01 = 0x600002F6 ;
-
-//---------------------Start Command ----------------
-const Int32 CMD_RUN = 0; //Run on Pulse Per Secound .positive run Up and negative run Down
-const Int32 CMD_STOP= 1; //0;Hard stop(Defualt);1-Soft stop;2-Hard Hiz;3-Soft Hiz
-const Int32 CMD_HOME= 2; //Run until home .positive run Up and negative run Down
-const Int32 CMD_DLY = 3; //delay in Seconds .
-const Int32 CMD_MOVE= 4; //Move step. positive move Up and negative move Down
-const Int32 CMD_MAX_SPEED = 5; //set Maximum speed.motor will stop before that command
-
-const Int32 CMD_LOOP_NM=6; //NUMBER OF counter
-const Int32 CMD_LOOP= 7; //jump up(+) or down(-) command u
-const Int32 CMD_END = 13; //end loop .
-
-
-const Int32 x_STEP_MODE = 0x16;
-const Int32 x_STATUS = 0x19;
-const Int32 x_GET_PARAM = 0x20;
-const Int32 x_POWERSTEP01_STATUS = 0x1B;
-
-
-//-------------------------------------------- Flow Test Double PBU ------------------------------------------------
-
-Int32[] Start_Table = new int []
-{
- CMD_RUN,-40,
- CMD_DLY,200,
- CMD_STOP,0,
- CMD_DLY,10,
- CMD_HOME,40,
- CMD_END,3,
-};
-
-////////////////////////////////////
-
-public void OnExecute(StubManager stubManager)
-{
-Int32 COMMAND=0;
-Int32 Data=0;
-Int32 Index=0;
-Int32 speed=0;
-Int32 Loop_cnt=1;
-Int32 j=0;
-
-
-
- var stopwatch = new Stopwatch();
- stopwatch.Start();
-
- long elapsed_time = stopwatch.ElapsedMilliseconds;
- stubManager.WriteLine(elapsed_time);
-
- while (j!=-1)
- {
- {
- COMMAND=Start_Table[j];
- Data=Start_Table[j+1];
-
- switch (COMMAND)
- {
- case CMD_RUN:
- stubManager.WriteLine("CMD_RUN");
- Motor_Run(Data);
- break;
-
- case CMD_STOP:
- stubManager.WriteLine("CMD_stop");
- Motor_Stop(Data);
- break;
-
- case CMD_DLY:
- stubManager.WriteLine("CMD_delay");
-
- for (;Data>0;Data--)
- {
- Thread.Sleep(100); //100msec delay
- stubManager.WriteLine("CMD_delay " + Data );
- }
- break;
-
-
- case CMD_MOVE:
- stubManager.WriteLine("CMD_move");
-
- Motor_Move(Data);
- break;
-
- case CMD_END:
- stubManager.WriteLine("CMD_end");
-
- j=-3;
- break;
-
- case CMD_MAX_SPEED:
- stubManager.WriteLine("CMD_MAX_SPEED");
-
- Motor_Max_speed(Data);
- break;
-
- case CMD_HOME:
- stubManager.WriteLine("CMD_home");
-
- Move_Home(Data);
- break;
-
-
- case CMD_LOOP_NM:
- stubManager.WriteLine("LOOP_NM" + Data );
-
- Loop_cnt=Data-1;
- break;
-
- case CMD_LOOP:
- stubManager.WriteLine("CMD_loop");
-
- if (Loop_cnt!=0)
- {
- j = j+2*Data;
- Loop_cnt-- ;
- }
- break;
-
- default:
- break;
-
- }
-
- j = j + 2;
-
-
- }
-
- }
-
-}
-Int32 Motor_Max_speed(Int32 speed)
-{
- UInt32 i=Convert.ToUInt32((speed *4/61)*256*256 ) ;
- stubManager.WriteHex(i,8);
-
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor,0); //hold motor
-
-
- Motor_SetParam(F1_MOTO_DH_LID_A1_TX_01,F1_MOTO_DH_LID_A1_TX_00,0x07,i); //set max speed
-
- return 1;
-}
-
-
-int Motor_SetParam(Int32 HighAdr, Int32 LowAdr, Int32 ParaAddr, uint ParaData1)
-{
-
- Int32 Temp = 0;
- Temp = (ParaAddr << 8 ) + ( (Int32) ParaData1 >> 24);
-
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,HighAdr, (Temp & 0xffff));
- Temp = ((Int32)ParaData1 >> 8) & 0xffff;
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,LowAdr, (Temp));
-
- return 1;
-}
-
-Int32 Move_Home(Int32 speed)
-{
- Int32 Bit = 1;
- if (speed <0 )
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DyeingHeadLid_Motor, false, (-speed) );
- else
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DyeingHeadLid_Motor, true, speed);
- int i=0;
- while ((Bit != 0x0)&& (i<20000) ) //wait until Limit Switch or timeout 200*50msec=10sec
- {
- Bit=read_pio (LS_FRONT); // read LS_FRONT
- Thread.Sleep(20);
- i++;
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor,0); //hold motor
- return 0;
-}
-
-Int32 read_pio(Int32 i2c_input)
-{
- Int32 temp=0;
- var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,i2c_input); // read break
-
- temp = (Int32) (response.Progress);
- stubManager.WriteHex(temp, 4);
- stubManager.WriteLine(" ");
- temp =temp & (i2c_input& 0xff); //if break ok
-
- return temp;
-}
-
-
-
-//////////////////////////////////////////////////////////////
-Int32 Motor_Move (Int32 position)
-
- {
- Int32 x=16;
- var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,DyeingHeadLid_Motor, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0);
-
- response.RecivedData=response.RecivedData & 0x0007;
- if (response.RecivedData == 0)
- x=1;
- if (response.RecivedData == 1)
- x=2;
- if (response.RecivedData == 2)
- x=4;
- if (response.RecivedData == 3)
- x=8;
-
-
- int i=0;
- if (position<0 )
- stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,DyeingHeadLid_Motor, false, (-position * x) );
- else
- stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,DyeingHeadLid_Motor, true, position * x);
-
- Thread.Sleep(100); //100msec delay
-
- while (i==0)
- {
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,DyeingHeadLid_Motor, (x_GET_PARAM | x_POWERSTEP01_STATUS)<<16, 0, 0);
-
- stubManager.WriteHex(response.RecivedData,4);
- response.RecivedData=response.RecivedData & 0x0002;
- if (response.RecivedData==0x0002)
- i=1;
- Thread.Sleep(100); //100msec delay
-
-
- }
- return 0;
- }
-
-//////////////////////////////////////////////////////////////
-Int32 Motor_Run (Int32 speed)
-
- {
- if (speed<0 )
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DyeingHeadLid_Motor, false, (-speed) );
- else
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DyeingHeadLid_Motor, true, speed);
- return 0;
- }
-
-//---------------------------------------
-
- Int32 Motor_Stop(Int32 Stop_Value )
-{
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor, Stop_Value);
- return 1;
-}
-
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser ByPass - getout from loewer safety.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser ByPass - getout from loewer safety.cs
deleted file mode 100644
index 34dce79fe..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser ByPass - getout from loewer safety.cs
+++ /dev/null
@@ -1,46 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
- UInt32 Dispenser_ID = 3; //Software Dispensers 0..7, BP Dispensers 1..8 (4 for bp disp 5)
-
- stubManager.Write("ByPass + TestRelay + read inputs ");
- stubManager.WriteLine("");
- var response = stubManager.Run<StubDispenserResponse>("StubDispenserRequest" ,Dispenser_ID, true, false, 0, 0);//ByPass + read inputs
- stubManager.Write("MSB for Disp_UP, LSB for Disp_Down ");
- stubManager.WriteHex((response.DispenserPosition),4);
- stubManager.WriteLine("");
- stubManager.Write("MSB for Realy_On, LSB for Over_Press ");
- stubManager.WriteHex((response.InkWorningLevel),4);
- stubManager.WriteLine("");
- stubManager.WriteLine("----");
- stubManager.WriteLine("");
-
- stubManager.Run("StubMotorRunRequest" ,(Dispenser_ID + 6), true, 1200 );//Dispenser ID -> motor ID
-
- Thread.Sleep(30000); //Sleep
- stubManager.Run("StubMotorStopRequest" ,15, 3);
-
- stubManager.Write("Remove ByPass ( + read inputs) ");
- stubManager.WriteLine("");
- response = stubManager.Run<StubDispenserResponse>("StubDispenserRequest" ,Dispenser_ID, false, false, 0, 0);// read inputs
- stubManager.Write("MSB for Disp_UP, LSB for Disp_Down ");
- stubManager.WriteHex((response.DispenserPosition),4);
- stubManager.WriteLine("");
- stubManager.Write("MSB for Realy_On, LSB for Over_Press ");
- stubManager.WriteHex((response.InkWorningLevel),4);
- stubManager.WriteLine("");
- stubManager.WriteLine("----");
- stubManager.WriteLine("");
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser ByPass - getout from upper safety.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser ByPass - getout from upper safety.cs
deleted file mode 100644
index 1887d433c..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser ByPass - getout from upper safety.cs
+++ /dev/null
@@ -1,46 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
- UInt32 Dispenser_ID = 1; //Software Dispensers 0..7, BP Dispensers 1..8 (4 for bp disp 5)
-
- stubManager.Write("ByPass + TestRelay + read inputs ");
- stubManager.WriteLine("");
- var response = stubManager.Run<StubDispenserResponse>("StubDispenserRequest" ,Dispenser_ID, true, false, 0, 0);//ByPass + read inputs
- stubManager.Write("MSB for Disp_UP, LSB for Disp_Down ");
- stubManager.WriteHex((response.DispenserPosition),4);
- stubManager.WriteLine("");
- stubManager.Write("MSB for Realy_On, LSB for Over_Press ");
- stubManager.WriteHex((response.InkWorningLevel),4);
- stubManager.WriteLine("");
- stubManager.WriteLine("----");
- stubManager.WriteLine("");
-
- stubManager.Run("StubMotorRunRequest" ,(Dispenser_ID + 6), false, 1200 );//Dispenser ID -> motor ID
-
- Thread.Sleep(30000); //Sleep
- stubManager.Run("StubMotorStopRequest" ,15, 3);
-
- stubManager.Write("Remove ByPass ( + read inputs) ");
- stubManager.WriteLine("");
- response = stubManager.Run<StubDispenserResponse>("StubDispenserRequest" ,Dispenser_ID, false, false, 0, 0);// read inputs
- stubManager.Write("MSB for Disp_UP, LSB for Disp_Down ");
- stubManager.WriteHex((response.DispenserPosition),4);
- stubManager.WriteLine("");
- stubManager.Write("MSB for Realy_On, LSB for Over_Press ");
- stubManager.WriteHex((response.InkWorningLevel),4);
- stubManager.WriteLine("");
- stubManager.WriteLine("----");
- stubManager.WriteLine("");
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser_LimitSwitch.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser_LimitSwitch.cs
index 7eb048556..90ad540f9 100644
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser_LimitSwitch.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser_LimitSwitch.cs
@@ -37,8 +37,6 @@ int LimitSW_Dispenser(Int32 Fpga, Int32 Adr, int DispenserNo)
counter = counter + 1;
}
Thread.Sleep(100);
- Temp = RetVal.Value;
-
}
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser_PressureSensor.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser_PressureSensor.cs
index 342d2fdb2..11a419576 100644
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser_PressureSensor.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser_PressureSensor.cs
@@ -27,7 +27,7 @@ public void OnExecute(StubManager stubManager)
for (int i=2; i<10; i++)
{
- Thread.Sleep(100);
+ Thread.Sleep(1000);
var response = stubManager.Run<StubIntADCReadResponse>("StubIntADCReadRequest" ,i);
stubManager.Write("\nADC VALUE, DISPENSER "); stubManager.Write(i-1); stubManager.Write("\t"); stubManager.WriteHex(response.SamplingInBits, 4); stubManager.Write("\t"); stubManager.Write(response.VoltageSamplingMv); stubManager.Write(" mV");
}
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Blowe_RMO_LOG.CSV b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Blowe_RMO_LOG.CSV
deleted file mode 100644
index c91b21308..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Blowe_RMO_LOG.CSV
+++ /dev/null
@@ -1,4 +0,0 @@
-,RPM
-0,2675
-1,2688
-2,2688
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test.cs
deleted file mode 100644
index c88a17313..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test.cs
+++ /dev/null
@@ -1,204 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-Int32 position_32bit=0;
-Int32 last_14bit_position;
-
-const Int32 HomeStart=1024;
-const Int32 DrierLoadingArm_Motor = 5;
-const Int32 NM_ROUND =30;
-public void OnExecute(StubManager stubManager)
-{
- Test_Load_Arm();
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3);
-
-
-}
-
-bool Encoder_Dryer_Exist()
-{
- Int32 temp;
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190);
- var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192);
-
- temp = Convert.ToInt32 (response.Value & 0x0300);
- if (temp==0)
- return true;
- else
- return false;
-}
-
-
-
-void ReadEncoder_Dryer()
-{
- Int32 temp;
- Int32 temp1;
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190);
- var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192);
-
- temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff));
- if (temp>last_14bit_position)
- {
- temp1=temp-last_14bit_position;
- position_32bit=position_32bit+temp1;
- if (temp1>0x2000)
- position_32bit=position_32bit-0x4000;
- }
- else if (temp<last_14bit_position)
-
- {
- temp1=last_14bit_position-temp;
- position_32bit=position_32bit-temp1;
- if (temp1>0x2000)
- position_32bit=position_32bit+0x4000;
- }
-
- last_14bit_position=temp;
-
- return ;
-}
-
-int Test_Load_Arm()
-{
- int Loop_Nm = 1;
-
- Int32 temp3=0;
- Int32 j=0;
- Int32 i=0;
-
- if (!Encoder_Dryer_Exist())
- {
-
- stubManager.Write("Encoder of Dryer Fail \n");
- return 0;
-
- }
-
- var response = stubManager.ShowResponseWindow("Enter Loop Number for Dryer.", "");
- //stubManager.WriteLine(response);
- Loop_Nm = int.Parse(response);
-
- ReadEncoder_Dryer();
- position_32bit=0;
- ReadEncoder_Dryer();
- Int32 temp=position_32bit;
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, false, 100);//40
- Thread.Sleep(50);
-// temp=ReadEncoder_Dryer();
- while ((temp3<2)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min
- {
- i++;
- Thread.Sleep(50);
- ReadEncoder_Dryer();
-// stubManager.Write("position_32bit " + position_32bit +"\t");
-
- if (Math.Abs(position_32bit)> (50*0x4000))
- temp3=3;
- if ((position_32bit-temp)>20)
- temp3++;
-// stubManager.Write("Temp " + temp +"\n");
- temp=position_32bit;
-// stubManager.Write("Temp3 " + temp3 +"\n");
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3);
-
- DialogResult result1 = MessageBox.Show("Arm Motor rotate ?", "Warning",MessageBoxButtons.YesNo);
- if(result1 == DialogResult.No)
- {
-
- stubManager.Write("Arm Motor Not rotate\n");
- return 0;
- }
-
- DialogResult result2 = MessageBox.Show("Did Arm Motor arrive to mechanical stopper?", "Warning",MessageBoxButtons.YesNo);
- if(result2 == DialogResult.No)
- {
-
- stubManager.Write("Arm Motor Not arrive to mecahnicl stopper \n");
- return 0;
- }
- position_32bit=0;
-
-for (int loop=0;i<Loop_Nm;i++)
-
- {
- stubManager.Write("Loop Nm " + (loop+1) +" strat up posision \n");
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, true, 200);
-// Thread.Sleep(50);
- i=0;
- temp3=0;
-
-
- while ((temp3<3)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min
- {
- Thread.Sleep(50);
- i++;
- ReadEncoder_Dryer();
-
- if (Math.Abs(position_32bit)> (NM_ROUND*0x4000))
- temp3=3;
- if ((temp-position_32bit)>20)
- temp3++;
- temp=position_32bit;
-
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3);
-
- DialogResult result5 = MessageBox.Show("Did Arm Motor make 30 rounds? See picture on document", "Warning",MessageBoxButtons.YesNo);
- if(temp3 >2 )
- {
- stubManager.Write("Arm Motor not make 30 rounds\n");
- return 0;
- }
-
- Thread.Sleep(50);
- stubManager.Write("Loop Nm " + (loop+1) +" strat down posision \n");
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, false, 200);
- i=0;
- temp3=0;
-
- while ((temp3<3)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min
- {
- Thread.Sleep(50);
- i++;
- ReadEncoder_Dryer();
-
- if (Math.Abs(position_32bit)< HomeStart)
- temp3=3;
- if ((position_32bit-temp)>20)
- temp3++;
- temp=position_32bit;
-
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3);
-
- DialogResult result3 = MessageBox.Show("Did Arm Motor make 30 rounds? See picture on document", "Warning",MessageBoxButtons.YesNo);
- if(temp3 >2 )
- {
- stubManager.Write("Arm Motor not make 30 rounds\n");
- return 0;
- }
- Thread.Sleep(50);
-
-
-
-
- }
- return 0;
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test1.cs
deleted file mode 100644
index c4c3f13f4..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test1.cs
+++ /dev/null
@@ -1,217 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-Int32 position_32bit=0;
-Int32 last_14bit_position;
-
-const Int32 HomeStart=2048;
-const Int32 DrierLoadingArm_Motor = 5;
-const Int32 NM_ROUND =30;
-public void OnExecute(StubManager stubManager)
-{
- Test_Load_Arm();
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3);
-
-
-}
-
-bool Encoder_Dryer_Exist()
-{
- Int32 temp;
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190);
- var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192);
-
- temp = Convert.ToInt32 (response.Value & 0x0300);
- if (temp==0)
- return true;
- else
- return false;
-}
-
-
-
-void ReadEncoder_Dryer()
-{
- Int32 temp;
- Int32 temp1;
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190);
- var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192);
-
- temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff));
- if (temp>last_14bit_position)
- {
- temp1=temp-last_14bit_position;
- position_32bit=position_32bit+temp1;
- if (temp1>0x2000)
- position_32bit=position_32bit-0x4000;
- }
- else if (temp<last_14bit_position)
-
- {
- temp1=last_14bit_position-temp;
- position_32bit=position_32bit-temp1;
- if (temp1>0x2000)
- position_32bit=position_32bit+0x4000;
- }
-
- last_14bit_position=temp;
-
- return ;
-}
-
-int Test_Load_Arm()
-{
- int Loop_Nm = 1;
-
- Int32 temp3=0;
- Int32 j=0;
- Int32 i=0;
-
- if (!Encoder_Dryer_Exist())
- {
-
- stubManager.Write("Encoder of Dryer Fail \n");
- return 0;
-
- }
-
- var response = stubManager.ShowResponseWindow("Enter Loop Number for Dryer.", "");
- //stubManager.WriteLine(response);
- Loop_Nm = int.Parse(response);
-
- ReadEncoder_Dryer();
- position_32bit=0;
- ReadEncoder_Dryer();
- Int32 temp=position_32bit;
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, false, 100);//40
- Thread.Sleep(50);
-// temp=ReadEncoder_Dryer();
- while ((temp3<2)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min
- {
- i++;
- Thread.Sleep(30);
- ReadEncoder_Dryer();
-// stubManager.Write("position_32bit " + position_32bit +"\t");
-
- if (Math.Abs(position_32bit)> (50*0x4000))
- temp3=3;
- if ((position_32bit-temp)>20)
- temp3++;
-// stubManager.Write("Temp " + temp +"\n");
- temp=position_32bit;
-// stubManager.Write("Temp3 " + temp3 +"\n");
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3);
-
- DialogResult result1 = MessageBox.Show("Arm Motor rotate ?", "Warning",MessageBoxButtons.YesNo);
- if(result1 == DialogResult.No)
- {
-
- stubManager.Write("Arm Motor Not rotate\n");
- return 0;
- }
-
- DialogResult result2 = MessageBox.Show("Did Arm Motor arrive to mechanical stopper?", "Warning",MessageBoxButtons.YesNo);
- if(result2 == DialogResult.No)
- {
-
- stubManager.Write("Arm Motor Not arrive to mecahnicl stopper \n");
- return 0;
- }
-
- Thread.Sleep(1000);
-
- ReadEncoder_Dryer();
- position_32bit=0;
- ReadEncoder_Dryer();
- position_32bit=0;
-for (int loop=0;loop<Loop_Nm;loop++)
-
- {
- stubManager.Write("Loop Nm " + (loop+1) +" strat up posision \n");
- temp=position_32bit;
- stubManager.Write("position_32bit = " + position_32bit +"\n");
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, true, 200);
-// Thread.Sleep(50);
- i=0;
- temp3=-2;
-
-
- while ((temp3<2)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min
- {
- Thread.Sleep(30);
- i++;
- ReadEncoder_Dryer();
-
- if (Math.Abs(position_32bit)> (NM_ROUND*0x4000))
- temp3=3;
- if ((temp-position_32bit)>20)
- temp3++;
- temp=position_32bit;
-
-// stubManager.Write("position_32bit = " +position_32bit +"\ttemp3 = " + temp3 +"\n");
-
-
-
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 0);
-
- if(temp3 !=3 )
- {
- stubManager.Write("Arm Motor not make 30 rounds\n");
- return 0;
- }
-
- Thread.Sleep(1000);
- stubManager.Write("Loop Nm " + (loop+1) +" strat down posision \n");
- stubManager.Write("position_32bit = " + position_32bit +"\n");
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, false, 200);
- i=0;
- temp3=-2;
- temp=position_32bit;
-
- while ((temp3<2)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min
- {
- Thread.Sleep(50);
- i++;
- ReadEncoder_Dryer();
-
- if (Math.Abs(position_32bit)< HomeStart)
- temp3=3;
- if ((position_32bit-temp)>20)
- temp3++;
- temp=position_32bit;
-// stubManager.Write("position_32bit = " +position_32bit +"\ttemp3 = " + temp3 +"\n");
-
-
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 0);
-
- if(temp3 !=3 )
- {
- stubManager.Write("Arm Motor not make 30 rounds\n");
- return 0;
- }
- Thread.Sleep(1000);
-
-
-
-
- }
- return 0;
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test2.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test2.cs
deleted file mode 100644
index 7670a8708..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test2.cs
+++ /dev/null
@@ -1,227 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-Int32 position_32bit=0;
-Int32 last_14bit_position;
-
-const Int32 HomeStart=2048;
-const Int32 DrierLoadingArm_Motor = 5;
-const Int32 NM_ROUND =30;
-public void OnExecute(StubManager stubManager)
-{
- Test_Load_Arm();
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3);
-
-
-}
-
-bool Encoder_Dryer_Exist()
-{
- Int32 temp;
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190);
- var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192);
-
- temp = Convert.ToInt32 (response.Value & 0x0300);
- if (temp==0)
- return true;
- else
- return false;
-}
-
-
-
-void ReadEncoder_Dryer()
-{
- Int32 temp;
- Int32 temp1;
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190);
- var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192);
-
- temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff));
- if (temp>last_14bit_position)
- {
- temp1=temp-last_14bit_position;
- position_32bit=position_32bit+temp1;
- if (temp1>0x2000)
- position_32bit=position_32bit-0x4000;
- }
- else if (temp<last_14bit_position)
-
- {
- temp1=last_14bit_position-temp;
- position_32bit=position_32bit-temp1;
- if (temp1>0x2000)
- position_32bit=position_32bit+0x4000;
- }
-
- last_14bit_position=temp;
-
- return ;
-}
-
-int Test_Load_Arm()
-{
- int Loop_Nm = 1;
-
- Int32 temp3=0;
- Int32 j=0;
- Int32 i=0;
-
- if (!Encoder_Dryer_Exist())
- {
-
- stubManager.Write("Encoder of Dryer Fail \n");
- return 0;
-
- }
-
- var response = stubManager.ShowResponseWindow("Enter Loop Number for Dryer.", "");
- //stubManager.WriteLine(response);
- Loop_Nm = int.Parse(response);
-
- ReadEncoder_Dryer();
- position_32bit=0;
- ReadEncoder_Dryer();
- Int32 temp=position_32bit;
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, false, 100);//40
- Thread.Sleep(50);
-// temp=ReadEncoder_Dryer();
- while ((temp3<2)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min
- {
- i++;
- Thread.Sleep(30);
- ReadEncoder_Dryer();
-// stubManager.Write("position_32bit " + position_32bit +"\t");
-
- if (Math.Abs(position_32bit)> (50*0x4000))
- temp3=3;
- if ((position_32bit-temp)>20)
- temp3++;
-// stubManager.Write("Temp " + temp +"\n");
- temp=position_32bit;
-// stubManager.Write("Temp3 " + temp3 +"\n");
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3);
-
- DialogResult result1 = MessageBox.Show("Arm Motor rotate ?", "Warning",MessageBoxButtons.YesNo);
- if(result1 == DialogResult.No)
- {
-
- stubManager.Write("Arm Motor Not rotate\n");
- return 0;
- }
-
- DialogResult result2 = MessageBox.Show("Did Arm Motor arrive to mechanical stopper?", "Warning",MessageBoxButtons.YesNo);
- if(result2 == DialogResult.No)
- {
-
- stubManager.Write("Arm Motor Not arrive to mecahnicl stopper \n");
- return 0;
- }
-
- Thread.Sleep(1000);
- stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,5, true, 50);
- Thread.Sleep(1000);
-
- ReadEncoder_Dryer();
- position_32bit=0;
- ReadEncoder_Dryer();
- position_32bit=0;
-for (int loop=0;loop<Loop_Nm;loop++)
-
- {
- stubManager.Write("Loop Nm " + (loop+1) +" strat up posision \n");
- temp=position_32bit;
- stubManager.Write("position_32bit = " + position_32bit +"\n");
-
-// stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, true, 200);
- stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,5, true, 7680 * NM_ROUND);
-
-// Thread.Sleep(50);
- i=0;
- temp3=-2;
-
-
- while ((temp3<2)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min
- {
- Thread.Sleep(30);
- i++;
- ReadEncoder_Dryer();
-
-// if (Math.Abs(position_32bit)> (NM_ROUND*0x4000))
-// temp3=3;
- if (temp==position_32bit)
- temp3++;
- temp=position_32bit;
-
-// stubManager.Write("position_32bit = " +position_32bit +"\ttemp3 = " + temp3 +"\n");
-
-
-
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3);
-
- if (Math.Abs(position_32bit - NM_ROUND*0x4000 )> 500)
-
- {
- stubManager.Write("Arm Motor not make 30 rounds\n");
- return 0;
- }
-
-
- Thread.Sleep(1000);
- stubManager.Write("Loop Nm " + (loop+1) +" strat down posision \n");
- stubManager.Write("position_32bit = " + position_32bit +"\n");
-
-// stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, false, 200);
- stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,5, false, 7680 * NM_ROUND);
- i=0;
- temp3=-2;
- temp=position_32bit;
-
- while ((temp3<2)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min
- {
- Thread.Sleep(50);
- i++;
- ReadEncoder_Dryer();
-
- // if (Math.Abs(position_32bit)< HomeStart)
- // temp3=3;
- if (position_32bit==temp)
- temp3++;
- temp=position_32bit;
-// stubManager.Write("position_32bit = " +position_32bit +"\ttemp3 = " + temp3 +"\n");
-
-
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3);
-
-
- if (Math.Abs(position_32bit )> 500)
-
- {
- stubManager.Write("Arm Motor not make 30 rounds\n");
- return 0;
- }
-
- Thread.Sleep(1000);
-
-
-
-
- }
- return 0;
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test3.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test3.cs
deleted file mode 100644
index 7a7542ab7..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test3.cs
+++ /dev/null
@@ -1,229 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-Int32 position_32bit=0;
-Int32 last_14bit_position;
-
-const Int32 HomeStart=2048;
-const Int32 DrierLoadingArm_Motor = 5;
-const Int32 NM_ROUND =30;
-public void OnExecute(StubManager stubManager)
-{
- Test_Load_Arm();
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 1);
-
-
-}
-
-bool Encoder_Dryer_Exist()
-{
- Int32 temp;
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190);
- var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192);
-
- temp = Convert.ToInt32 (response.Value & 0x0300);
- if (temp==0)
- return true;
- else
- return false;
-}
-
-
-
-void ReadEncoder_Dryer()
-{
- Int32 temp;
- Int32 temp1;
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190);
- var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192);
-
- temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff));
- if (temp>last_14bit_position)
- {
- temp1=temp-last_14bit_position;
- position_32bit=position_32bit+temp1;
- if (temp1>0x2000)
- position_32bit=position_32bit-0x4000;
- }
- else if (temp<last_14bit_position)
-
- {
- temp1=last_14bit_position-temp;
- position_32bit=position_32bit-temp1;
- if (temp1>0x2000)
- position_32bit=position_32bit+0x4000;
- }
-
- last_14bit_position=temp;
-
- return ;
-}
-
-int Test_Load_Arm()
-{
- int Loop_Nm = 1;
-
- Int32 temp3=0;
- Int32 j=0;
- Int32 i=0;
-
- if (!Encoder_Dryer_Exist())
- {
-
- stubManager.Write("Encoder of Dryer Fail \n");
- return 0;
-
- }
-
- var response = stubManager.ShowResponseWindow("Enter Loop Number for Dryer.", "");
- //stubManager.WriteLine(response);
- Loop_Nm = int.Parse(response);
-
- ReadEncoder_Dryer();
- position_32bit=0;
- ReadEncoder_Dryer();
- Int32 temp=position_32bit;
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, false, 100);//40
- Thread.Sleep(50);
-// temp=ReadEncoder_Dryer();
- while ((temp3<2)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min
- {
- i++;
- Thread.Sleep(30);
- ReadEncoder_Dryer();
-// stubManager.Write("position_32bit " + position_32bit +"\t");
-
- if (Math.Abs(position_32bit)> (50*0x4000))
- temp3=3;
- if ((position_32bit-temp)>20)
- temp3++;
-// stubManager.Write("Temp " + temp +"\n");
- temp=position_32bit;
-// stubManager.Write("Temp3 " + temp3 +"\n");
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3);
-
- DialogResult result1 = MessageBox.Show("Arm Motor rotate ?", "Warning",MessageBoxButtons.YesNo);
- if(result1 == DialogResult.No)
- {
-
- stubManager.Write("Arm Motor Not rotate\n");
- return 0;
- }
-
- DialogResult result2 = MessageBox.Show("Did Arm Motor arrive to mechanical stopper?", "Warning",MessageBoxButtons.YesNo);
- if(result2 == DialogResult.No)
- {
-
- stubManager.Write("Arm Motor Not arrive to mecahnicl stopper \n");
- return 0;
- }
-
- Thread.Sleep(1000);
- stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,5, true, 50);
- Thread.Sleep(1000);
-
- ReadEncoder_Dryer();
- position_32bit=0;
- ReadEncoder_Dryer();
- position_32bit=0;
-for (int loop=0;loop<Loop_Nm;loop++)
-
- {
- stubManager.Write("Loop Nm " + (loop+1) +" strat up posision \n");
- temp=position_32bit;
- stubManager.Write("position_32bit = " + position_32bit +"\n");
-
-// stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, true, 200);
- stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,5, true, 7680 * NM_ROUND);
-
-// Thread.Sleep(50);
- i=0;
- temp3=-2;
-
-
- while ((temp3<2)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min
- {
- Thread.Sleep(30);
- i++;
- ReadEncoder_Dryer();
-
-// if (Math.Abs(position_32bit)> (NM_ROUND*0x4000))
-// temp3=3;
- if (temp==position_32bit)
- temp3++;
- temp=position_32bit;
-
-// stubManager.Write("position_32bit = " +position_32bit +"\ttemp3 = " + temp3 +"\n");
-
-
-
- }
- Thread.Sleep(1000);
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 1);
-
- if (Math.Abs(position_32bit - NM_ROUND*0x4000 )> 500)
-
- {
- stubManager.Write("Arm Motor not make 30 rounds\n");
- return 0;
- }
-
-
- Thread.Sleep(1000);
- stubManager.Write("Loop Nm " + (loop+1) +" strat down posision \n");
- stubManager.Write("position_32bit = " + position_32bit +"\n");
-
-// stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, false, 200);
- stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,5, false, 7680 * NM_ROUND);
- i=0;
- temp3=-2;
- temp=position_32bit;
-
- while ((temp3<2)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min
- {
- Thread.Sleep(50);
- i++;
- ReadEncoder_Dryer();
-
- // if (Math.Abs(position_32bit)< HomeStart)
- // temp3=3;
- if (position_32bit==temp)
- temp3++;
- temp=position_32bit;
-// stubManager.Write("position_32bit = " +position_32bit +"\ttemp3 = " + temp3 +"\n");
-
-
- }
- Thread.Sleep(1000);
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 1);
-
-
- if (Math.Abs(position_32bit )> 500)
-
- {
- stubManager.Write("Arm Motor not make 30 rounds\n");
- return 0;
- }
-
- Thread.Sleep(1000);
-
-
-
-
- }
- return 0;
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Jig.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Jig.cs
deleted file mode 100644
index 42f35b8ef..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Jig.cs
+++ /dev/null
@@ -1,542 +0,0 @@
-using System;
-using System.Text;
-using System.IO;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-
-include "..\..\Defines\Tango_Defines_Basic.cs"
-include "Tango_Defines_LimitSwitch.cs"
-include "Tango_Defines_SSR.cs"
-include "Tango_Defines_Tacho.cs"
-
-
-const int UNIT_UNDER_TEST=3+1+2+6;
-//--------------------------------------------------------------------------------
-string path1="P:\\Scripts\\Assemblies\\Dryer\\DryerLog\\";
-string path2="C:\\DryerLog\\";
-
-string File_Name1 ;
-string Status;
-//---------------------------
-Int32 last_14bit_position;
-Int32 position_32bit=0;
-float [] DryerTemp = new float[3] ;
-
-
-string [,] Units_status = new string[UNIT_UNDER_TEST,2] {
- {"Lid_Motor","Not Test"},
- {"LS_Lid_Open","Not Test"},
- {"LS_Lid_Close","Not Test"},
- {"DRIVING_Motor","Not Test"},
- {"SSI_Encoder","Not Test"},
- {"LoadArm_Motor","Not Test"},
- {"Blower_test","Not Test"},
- {"Air_PT100_test","Not Test"},
- {"Main_PT100_test","Not Test"},
- {"Sec.PT100","Not Test"},
- {"SSR1_heater","Not Test"},
- {"SSR2_heater","Not Test"},
- };
-
-
-
-//-----------------------------------------------------
-string Dryer_Sn;
-//--------------------------------------------------------------------------------
-
-public void OnExecute(StubManager stubManager)
-{
-string path="";
- Form form1 = new Form();
-
-// Set the caption bar text of the form.
- form1.TopMost = true;
- form1.Text = "Dryer Test";
- form1.FormBorderStyle = FormBorderStyle.FixedDialog;
- form1.MaximizeBox = false;
- form1.MinimizeBox = false;
- form1.StartPosition = FormStartPosition.CenterScreen;
- form1.AutoSize = true;
- form1.AutoSizeMode = AutoSizeMode.GrowAndShrink;
-// Create buttons to Run.
- Button button1 = new Button ()
- {
- Width = 100,
- Height = 100,
- };
- button1.Text = "Run";
- button1.Location = new Point (40, 100);
- form1.Controls.Add(button1);
-//-----Dryer Serial Number -----------
-
- Label Label1 = new Label ()
- {
- Width = 150,
- Height = 20,
- Text =" Dryer S/N"
- };
- Label1.Location = new Point (30, 10);
- form1.Controls.Add(Label1);
- TextBox TextBox1 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text =""
- };
- TextBox1.Location = new Point (40, 40);
- form1.Controls.Add(TextBox1);
- //----------LOCATION----------
-
- Label Label3 = new Label ()
- {
- Width = 150,
- Height = 20,
- Text ="LOCATION"
- };
-Label3.Location = new Point (350, 10);
- form1.Controls.Add(Label3);
-
-
-
-TextBox TextBox3 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text =""
- };
-TextBox3.Location = new Point (360, 40);
- form1.Controls.Add(TextBox3);
-
-//--------------------------------------------------------------------------------
-
- stubManager.Write("Counter is 2 \n");
-
- button1.Click += (_,__) =>
-
- {
-if (!Directory.Exists(path1))
- {
- path=path2;
- if (!Directory.Exists(path2))
- Directory.CreateDirectory(path2);
- }
-else
-path=path1;
-
-
-File_Name1=path + TextBox1.Text +"_Dryer_" + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".log" ;
-
-
-stubManager.Write(File_Name1 +"\n");
-stubManager.WriteToFile(File_Name1,DateTime.Now +" " );
-stubManager.Write(DateTime.Now +"\n" );
-
-stubManager.AppendToFile(File_Name1,"Dryer Test Report" );
-stubManager.Write("Dryer Test Report\n" );
-
-stubManager.AppendToFile(File_Name1,"Dryer S/N: \t" + TextBox1.Text );
-stubManager.Write("Dryer S/N:" + TextBox1.Text +"\n" );
-
-
-stubManager.AppendToFile(File_Name1,"Location:\t" + TextBox3.Text );
-stubManager.Write("Location:" + TextBox3.Text +"\n" );
-
-
-
-Label Label5 = new Label ()
- {
- Width = 120,
- Height =100,
- Text = ""
- };
-Label5.Location = new Point (300, 100);
-Label5.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
-
-Label5.Text="Pros";
-Label5.Font = new Font("Arial", 24,FontStyle.Bold);
-form1.Controls.Add(Label5);
-
-
-//------------------------------- start test -----------
-// Test_LId();
-// Test_motor_driving();
-// Test_Load_Arm ();
- Test_Blower_heaters_pt100();
- Status=write_to_file();
-
- Label5.Text=Status;
- TextBox1.Text="";
-};
-
- form1.ShowDialog();
-
- return ;
- }
-//------------------------------------------
-int Test_Blower_heaters_pt100()
-{
-
- float ftemp=0;
- float ftemp1=0;
-
- SetBit(FPGA1,0x3d2,5,1); //turn off Blower
- Thread.Sleep(500);
-
- var RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg8, 0);
-
- DialogResult result = MessageBox.Show("Close Dryer Door", "Warning");
- RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg8, 0);
- if(RetVal.Value>20)
- {
- Units_status[6,1]="Fail";
- stubManager.Write("Error,Fan rotate\n");
- return 0;
- }
-
- SetBit(FPGA1,0x3d2,4,1); //Dir
- SetBit(FPGA1,0x3d2,3,1); //Torqer High
- SetBit(FPGA1,0x3d2,5,0); //turn on Blower
-
- const int LOW = 70;//0 - 100%
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000400 | 0x112, 0xFF);//Freq 8 bit
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000400 | 0x3EC, LOW+1);//Low 8 bit
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000400 | 0x3EE, 101 - LOW);//High 8 bit
-
- Thread.Sleep(1000);
- RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg8, 0);
- stubManager.Write("blower Speed- " + RetVal.Value + "\n");
- if ((RetVal.Value<150)||(RetVal.Value>250) )
- {
- Units_status[6,1]="Fail";
- stubManager.Write("Error,Fan rotate\n");
- return 0;
- }
- Units_status[6,1]="Pass";
-
-
- stubManager.Write("Temp Befor heating \n");
- if (test_pt100()!=0)
- return 0;
-
-float temp=0;
-float temp1=4096*95*5;
-
- //Write GPO_DRYER_SSR1_CTRL SSR/SSR no. 1
- SetBit (FPGA2, F2_CTRL, 10, 1); //turn SSR1 on
- stubManager.Write("\tTesting SSR no. 1\t");
- Thread.Sleep(1000);
-var response1 = stubManager.Run<StubIntADCReadResponse>("StubIntADCReadRequest" ,16);
- temp=Convert.ToUInt32 (response1.SamplingInBits);
- temp=temp*800*3*100;
- temp=temp/(4096*95*50);
- stubManager.Write("Current = "+ temp + "A\n");
- if ((temp>6) || (temp<3))
- Units_status[10,1]="Fail";
- else
- Units_status[10,1]="Pass";
-
- //Write GPO_DRYER_SSR2_CTRL SSR/SSR no. 2
- SetBit (FPGA2, F2_CTRL, 9, 1);
- stubManager.Write("\tTesting SSR no. 2\t");
- Thread.Sleep(1000);
- response1 = stubManager.Run<StubIntADCReadResponse>("StubIntADCReadRequest" ,17);
- temp=Convert.ToUInt32 (response1.SamplingInBits);
- stubManager.WriteLine(temp);
- temp=temp*800*3*100;
- temp=temp/(4096*95*120);
- stubManager.Write("Current = "+ temp + "A\n");
- if ((temp>3) || (temp<1))
- Units_status[11,1]="Fail";
- else
- Units_status[11,1]="Pass";
-
- Thread.Sleep(50000);
-
-//check air temp
- ftemp=Read_pt100(0);
- stubManager.Write("After heating air temp is " + ftemp + "\n");
- ftemp = ftemp - DryerTemp[0];
- if ((ftemp<5)||(ftemp>25))
- Units_status[7,1]="Fail";
- else
- Units_status[7,1]="Pass";
-
-
-
-//check Main temp
- ftemp=Read_pt100(1);
- stubManager.Write("After heating Main temp is " + ftemp + "\n");
- ftemp = ftemp - DryerTemp[1];
- if ((ftemp<5)||(ftemp>40))
- Units_status[8,1]="Fail";
- else
- Units_status[8,1]="Pass";
-
-//check Sec. temp
- ftemp=Read_pt100(2);
- stubManager.Write("After heating Sec. temp is " + ftemp + "\n");
- ftemp = ftemp - DryerTemp[2];
- if ((ftemp<5)||(ftemp>40))
- Units_status[9,1]="Fail";
- else
- Units_status[9,1]="Pass";
-
- SetBit (FPGA2, F2_CTRL, 10, 0); //turn SSR1 off
- SetBit (FPGA2, F2_CTRL, 9, 0); //turn SSR2 off
-
- SetBit(FPGA1,0x3d2,5,1); //turn off Blower
- return 1;
-
-}
-
- int test_pt100()
- {
- float ftemp=0;
- int temp=0;
- int j=0;
- for (int i = 0; i < 3; i++)
- {
- DryerTemp[i]=Read_pt100(i);
- ftemp=DryerTemp[i];
- if ((ftemp>100)|| (ftemp<10))
- {
- Units_status[i+7,1]="Fail";
- }
- else
- {
- Units_status[i+7,1]="Pass";
- }
- stubManager.Write(Units_status[i+7,0] +"\t"+ ftemp.ToString("F2"));
- stubManager.Write("°C\n");
-
- }
- return 0;
- }
-//------------------------------------------------
-float Read_pt100(int i)
-{
- int j=i+6;
- var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,j); //
- float ftemp = (float)response.TemperatureCMultBy100;
- ftemp = ftemp / 100;
- return (ftemp);
-}
-
-
-//------------------------------------------
-int Test_motor_driving ()
-
-{
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,3, true, 500); //rotate Dryer Motor.
- stubManager.Write("Dryer Motor rotate \n ");
- DialogResult result = MessageBox.Show("Are Dryer Motor rotate?", "Warning",MessageBoxButtons.YesNo);
- if(result == DialogResult.No)
- {
- Units_status[3,1]="Fail";
- stubManager.Write("Dryer Motor not rotate\n");
- }
- else
- {
- Units_status[3,1]="Pass";
- stubManager.Write("Dryer Motor rotate\n");
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,3,3); //stop motor
-
- return 0;
-}
-//----------------------------------
-int Test_Load_Arm()
-{
-
- Int32 temp3=0;
- Int32 j=0;
- Int32 i=0;
- position_32bit=0;
- Int32 temp=position_32bit;
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,5, false, 60);//40
- Thread.Sleep(50);
- temp=ReadEncoder();
- while ((temp3==0)&& (i<600) ) //wait until Limit Switch or timeout 200*50msec=10sec
- {
- Thread.Sleep(50);
- ReadEncoder();
-// stubManager.Write("position_32bit " + position_32bit +"\t");
-
- if (Math.Abs(position_32bit)> (50*0x4000))
- temp3=1;
- if ((position_32bit-temp)>20)
- temp3=2;
-// stubManager.Write("Temp " + temp +"\n");
- temp=position_32bit;
-// stubManager.Write("Temp3 " + temp3 +"\n");
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,5, 3);
-
- DialogResult result1 = MessageBox.Show("Arm Motor rotate ?", "Warning",MessageBoxButtons.YesNo);
- if(result1 == DialogResult.No)
- {
- Units_status[5,1]="Fail";
- stubManager.Write("Arm Motor Not rotate\n");
- return 0;
- }
- Units_status[5,1]="Pass";
-
- DialogResult result2 = MessageBox.Show("Did Arm Motor arrive to mecahnicl stopper ?", "Warning",MessageBoxButtons.YesNo);
- if(result2 == DialogResult.No)
- {
- Units_status[4,1]="Fail";
- stubManager.Write("Arm Motor arrive to mecahnicl stopper \n");
- return 0;
- }
-
- position_32bit=0;
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,5, true, 60);
- Thread.Sleep(50);
- i=0;
- while ((Math.Abs(ReadEncoder())< (30*0x4000))&& (i<4500))
-
- {
- Thread.Sleep(50);
- i++;
-// stubManager.Write("position_32bit " + position_32bit +"\t" + i + "\n" );
-
-
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,5, 3);
-
- DialogResult result3 = MessageBox.Show("Did Arm Motor make 30 rounds?", "Warning",MessageBoxButtons.YesNo);
- if(result3 == DialogResult.No)
- {
- Units_status[4,1]="Fail";
- stubManager.Write("Arm Motor not make 30 rounds\n");
- return 0;
- }
- Units_status[4,1]="Pass";
- return 1;
-}
-
-Int32 ReadEncoder()
-{
- Int32 temp;
- Int32 temp1;
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190);
- var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192);
-
- temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff));
- if (temp>last_14bit_position)
- {
- temp1=temp-last_14bit_position;
- position_32bit=position_32bit+temp1;
- if (temp1>0x2000)
- position_32bit=position_32bit-0x4000;
- }
- else if (temp<last_14bit_position)
-
- {
- temp1=last_14bit_position-temp;
- position_32bit=position_32bit-temp1;
- if (temp1>0x2000)
- position_32bit=position_32bit+0x4000;
- }
-
- last_14bit_position=temp;
-
- return position_32bit;
-}
-//-----------------------------------
-int Test_LId ()
-{
- Int32 Bit = 1;
- int i = 0;
-
- stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,4, false, 0x800000+2); //mov Dryer Lid motor down
- Thread.Sleep(2000);
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,4, 2); //Hard stop hiZ motor
- Thread.Sleep(1000);
-
- stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,4, false, 0x800000+0); //mov Dryer Lid motor up
-
- while ((Bit != 0x0) && (i<200)) //wait until Limit Switch or timeout 200*50msec=10sec
- {
- Bit = GetBit(FPGA1, F1_LS_01_Direct,4);
- Thread.Sleep(50);
- i++;
- }
- stubManager.Write("\n--------1-Lid Open--------");
-
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,4, 2); //Hard stop hiZ motor
- DialogResult result1 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo);
- if(result1 == DialogResult.No)
- {
- Units_status[1,1]="Fail";
- stubManager.Write("LS_Lid_Open Not calibrate\n");
- return 0;
- }
- Units_status[1,1]="Pass";
-
- stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,4, false, 0x800000+2); //mov Dryer Lid motor down
-
- Bit = 1;
- i=0;
- while ((Bit != 0x0) && (i<200)) //wait until Limit Switch or timeout 200*50msec=10sec
- {
- Bit = GetBit(FPGA1, F1_LS_01_Direct,5);
- Thread.Sleep(50);
- i++;
- }
- stubManager.Write("\n--------2-Lid Close--------");
-
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,4, 2); //Hard stop hiZ motor
- DialogResult result2 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo);
- if(result2 == DialogResult.No)
- {
- Units_status[2,1]="Fail";
- stubManager.Write("LS_Lid_Close Not calibrate\n");
- return 0;
- }
- Units_status[2,1]="Pass";
- Units_status[0,1]="Pass";
- return 1;
-
-}
-
- //------------------------------------
-string write_to_file()
-{
- stubManager.Write("write_to_file\n");
-
-string Stemp="Pass";
- for (int i=0;i<UNIT_UNDER_TEST;i++)
- {
- stubManager.AppendToFile(File_Name1,Units_status[i,0]+"\t" + Units_status[i,1] );
- stubManager.Write(Units_status[i,0]+"\t" + Units_status[i,1]+"\n" );
-
- if ((Units_status[i,1]=="Fail")||(Units_status[i,1]=="Not Test"))
- Stemp="Fail";
- }
- if (Stemp=="Fail")
- {
- stubManager.AppendToFile(File_Name1,"-------------Dryer Fail ------------ ");
- stubManager.Write("-------------Dryer Fail ------------ ");
- }
- else
- {
- stubManager.AppendToFile(File_Name1,"-------------Dryer Pass ------------ )");
- stubManager.Write("-------------Dryer Pass ------------ ");
- }
-
- return Stemp;
-
-}
-
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_LimitSwitch.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_LimitSwitch.cs
index d3cc0b43c..46849f051 100644
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_LimitSwitch.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_LimitSwitch.cs
@@ -21,18 +21,14 @@ public void OnExecute(StubManager stubManager)
Int32 Bit = 1;
uint Temp = 0;
int counter = 0;
- UInt32 PowerStep_driver=0;
- if (Get_Driver_Type(4)>0x14)
- PowerStep_driver=1;
- for (int i=0;i<1;i++)
- {
- stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,4, false, 0x800000+2*PowerStep_driver); //mov Dryer Lid motor up
- Bit=1;
+
+ stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,4, false, 2); //mov Dryer Lid motor up
+
while (Bit != 0x0) //wait until Dryer Lid open
{
- Bit = GetBit(FPGA1, F1_LS_01_Direct,4);
- Thread.Sleep(100);
+ Bit = GetBit(FPGA1, F1_LS_01_Direct,5);
+ Thread.Sleep(10);
}
stubManager.Write("\n--------1-Lid Open--------");
@@ -42,34 +38,19 @@ stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,4, 2); //Hard st
- stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,4, false, 0x800000+2*(1-PowerStep_driver)); //mov Dryer Lid motor up
+stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,4, true, 2); //mov Dryer Lid motor down
Bit = 1;
while (Bit != 0x0) //wait until Dryer Lid open
{
- Bit = GetBit(FPGA1, F1_LS_01_Direct,5);
- Thread.Sleep(100);
+ Bit = GetBit(FPGA1, F1_LS_01_Direct,4);
+ Thread.Sleep(10);
}
- stubManager.Write("\n--------2-Lid Close--------\nCycle \t"+i);
+ stubManager.Write("\n--------2-Lid Close--------");
stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,4, 2); //Hard stop hiZ motor
-}
-
-}
-
-UInt32 Get_Driver_Type(UInt32 i)
-{
- Int32 x_GET_PARAM = 0x20;
- Int32 x_ADC_OUT = 0x12;
- UInt32 ADC_out ;
-
-
- var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ADC_OUT)<<8, 0, 0);
- ADC_out= (response.RecivedData) & 0x001F;
- stubManager.WriteHex(ADC_out,2) ;
- return ADC_out ;
-}
+} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_SSR.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_SSR.cs
index d0ecd2125..da391cfb2 100644
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_SSR.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_SSR.cs
@@ -18,63 +18,22 @@ include "Tango_Defines_SSR.cs"
public void OnExecute(StubManager stubManager)
{
-float temp=0;
-float temp1=4096*95*5;
-
- //Write GPO_DRYER_SSR1_CTRL SSR/SSR no. 1
- var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,6); //
- stubManager.WriteHex(response.TemperatureCMultBy100,4);
+ //Write GPO_DRYER_SSR1_CTRL SSR/SSR no. 1
SetBit (FPGA2, F2_CTRL, 10, 1);
- stubManager.Write("\tTesting SSR no. 1\t");
- Thread.Sleep(3000);
-
-var response1 = stubManager.Run<StubIntADCReadResponse>("StubIntADCReadRequest" ,16);
-
- temp=Convert.ToUInt32 (response1.SamplingInBits);
-
- stubManager.Write("Current = "+ temp*100/6 + "mA/n");
-
- temp=temp*800*3*100;
- temp=temp/(4096*95*50);
- stubManager.Write("Current = "+ temp + "A\t");
- stubManager.Write("Voltage = "+ (temp*60) + "V\n");
-
-// temp=temp*2400*60*100;
-// temp=temp/(4096*95*50);
-// stubManager.Write("Voltage = "+ temp + "Volt/n");
-// stubManager.Write("Current = "+ temp*100/6 + "mA/n");
-
-
+ stubManager.Write("\nTesting SSR no. 1");
+ Thread.Sleep(4000);
SetBit (FPGA2, F2_CTRL, 10, 0);
- response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,6); //
- stubManager.WriteHex(response.TemperatureCMultBy100,4);
- stubManager.Write("\n");
-
//Write GPO_DRYER_SSR2_CTRL SSR/SSR no. 2
- response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,7); //
- stubManager.WriteHex(response.TemperatureCMultBy100,4);
SetBit (FPGA2, F2_CTRL, 9, 1);
- stubManager.Write("\tTesting SSR no. 2\t");
- Thread.Sleep(3000);
-
- response1 = stubManager.Run<StubIntADCReadResponse>("StubIntADCReadRequest" ,17);
-
- temp=Convert.ToUInt32 (response1.SamplingInBits);
-
-// temp=temp*2400*1000;
-// temp=temp/(4096*95*100);
-// stubManager.Write("Current = "+ temp*100/6 + "mA/n");
-
- temp=temp*800*3*100;
- temp=temp/(4096*95*100);
- stubManager.Write("Current = "+ temp + "A\n");
-
-
+ stubManager.Write("\nTesting SSR no. 2");
+ Thread.Sleep(4000);
SetBit (FPGA2, F2_CTRL, 9, 0);
- response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,7); //
- stubManager.WriteHex(response.TemperatureCMultBy100,4);
- stubManager.Write("\n");
-
+
+ //Write GPO_DRYER_SSR3_CTRL SSR/SSR no. 3
+ SetBit (FPGA2, F2_CTRL, 8, 1);
+ stubManager.Write("\nTesting SSR no. 3");
+ Thread.Sleep(4000);
+ SetBit (FPGA2, F2_CTRL, 8, 0);
} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset.CSV b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset.CSV
deleted file mode 100644
index 3b00533c7..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset.CSV
+++ /dev/null
@@ -1,499 +0,0 @@
-01/10/2020 13:37:37
-Heating to 190
-01/10/2020 13:37:37
- 55
- 55
- 56
- 56
- 57
- 57
- 57
- 58
- 58
- 59
- 59
- 59
- 60
- 60
- 60
- 61
- 61
- 61
- 62
- 62
- 62
- 63
- 63
- 64
- 64
- 64
- 65
- 65
- 65
- 66
- 66
- 66
- 67
- 67
- 67
- 68
- 68
- 68
- 69
- 69
- 69
- 69
- 70
- 70
- 70
- 71
- 71
- 71
- 72
- 72
- 72
- 73
- 73
- 73
- 74
- 74
- 74
- 74
- 75
- 75
- 75
- 76
- 76
- 76
- 76
- 77
- 77
- 78
- 78
- 78
- 78
- 79
- 79
- 79
- 80
- 80
- 80
- 80
- 81
- 81
- 81
- 81
- 82
- 82
- 82
- 82
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 82
- 82
- 82
- 82
- 81
- 81
- 81
- 81
- 81
- 80
- 80
- 80
- 80
- 79
- 79
- 79
- 79
- 79
- 79
- 78
- 78
- 78
- 78
- 78
- 78
- 79
- 79
- 79
- 79
- 79
- 80
- 80
- 80
- 80
- 81
- 81
- 81
- 81
- 82
- 82
- 82
- 82
- 83
- 83
- 83
- 83
- 84
- 84
- 84
- 85
- 85
- 85
- 86
- 86
- 86
- 86
- 87
- 87
- 87
- 87
- 88
- 88
- 88
- 88
- 89
- 89
- 89
- 89
- 90
- 90
- 90
- 90
- 91
- 91
- 91
- 91
- 92
- 92
- 92
- 92
- 93
- 93
- 93
- 93
- 94
- 94
- 94
- 94
- 95
- 95
- 95
- 95
- 96
- 96
- 96
- 96
- 96
- 97
- 97
- 97
- 97
- 98
- 98
- 98
- 98
- 98
- 98
- 97
- 97
- 97
- 97
- 96
- 96
- 96
- 95
- 95
- 94
- 94
- 94
- 93
- 93
- 93
- 92
- 92
- 92
- 91
- 91
- 91
- 90
- 90
- 90
- 89
- 89
- 89
- 88
- 88
- 88
- 87
- 87
- 87
- 87
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 87
- 87
- 87
- 87
- 88
- 88
- 88
- 89
- 89
- 89
- 89
- 90
- 90
- 90
- 90
- 91
- 91
- 91
- 92
- 92
- 92
- 92
- 93
- 93
- 93
- 93
- 94
- 94
- 94
- 95
- 95
- 95
- 95
- 96
- 96
- 96
- 96
- 97
- 97
- 97
- 97
- 98
- 98
- 98
- 98
- 99
- 99
- 99
- 99
- 100
- 100
- 100
- 100
- 101
- 101
- 101
- 101
- 101
- 102
- 102
- 102
- 102
- 103
- 103
- 103
- 103
- 104
- 104
- 104
- 104
- 104
- 105
- 105
- 105
- 105
- 106
- 106
- 106
- 106
- 106
- 107
- 107
- 107
- 107
- 108
- 108
- 108
- 108
- 109
- 109
- 109
- 109
- 109
- 110
- 110
- 110
- 110
- 110
- 111
- 111
- 111
- 111
- 111
- 112
- 112
- 112
- 112
- 112
- 113
- 113
- 113
- 113
- 113
- 114
- 114
- 114
- 114
- 114
- 115
- 115
- 115
- 115
- 115
- 116
- 116
- 116
- 116
- 116
- 117
- 117
- 117
- 117
- 117
- 118
- 118
- 118
- 118
- 118
- 119
- 119
- 119
- 119
- 119
- 119
- 120
- 120
- 120
- 120
- 120
- 120
- 121
- 121
- 121
- 121
- 121
- 122
- 122
- 122
- 122
- 122
- 122
- 123
- 123
- 123
- 123
- 123
- 124
- 124
- 124
- 124
- 124
- 124
- 125
- 125
- 125
- 125
- 125
- 125
- 126
- 126
- 126
- 126
- 126
- 126
- 127
- 127
- 127
- 127
- 127
- 128
- 128
- 128
- 128
- 128
- 128
- 129
- 129
- 129
- 129
- 129
- 129
- 130
- 130
- 130
- 130
- 130
- 130
- 131
- 131
- 131
- 131
- 131
- 131
- 132
- 132
- 132
- 132
- 132
- 132
- 132
- 133
- 133
- 133
- 133
- 133
- 133
- 134
- 134
- 134
- 134
- 134
- 134
- 134
- 134
- 134
- 134
- 134
- 133
- 133
- 132
- 132
- 131
- 131
- 130
- 130
- 129
- 128
- 128
- 127
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset1.CSV b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset1.CSV
deleted file mode 100644
index 6d1a7862c..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset1.CSV
+++ /dev/null
@@ -1,1600 +0,0 @@
-06/07/2020 9:43:12
-Heating to 190
-06/07/2020 9:43:12
- 23
- 23
- 23
- 23
- 23
- 23
- 23
- 23
- 23
- 23
- 23
- 23
- 23
- 23
- 23
- 23
- 23
- 23
- 23
- 23
- 23
- 23
- 23
- 23
- 23
- 23
- 24
- 24
- 24
- 24
- 24
- 24
- 25
- 25
- 25
- 26
- 26
- 26
- 27
- 27
- 28
- 28
- 29
- 29
- 30
- 30
- 31
- 31
- 32
- 32
- 33
- 33
- 34
- 34
- 35
- 35
- 36
- 37
- 37
- 38
- 38
- 39
- 39
- 40
- 41
- 41
- 42
- 42
- 43
- 43
- 44
- 44
- 45
- 46
- 46
- 47
- 47
- 48
- 48
- 49
- 49
- 50
- 50
- 51
- 52
- 52
- 53
- 53
- 54
- 54
- 55
- 55
- 56
- 56
- 56
- 57
- 57
- 58
- 58
- 59
- 59
- 60
- 60
- 60
- 61
- 61
- 62
- 62
- 63
- 63
- 63
- 64
- 64
- 65
- 65
- 65
- 66
- 66
- 66
- 67
- 67
- 68
- 68
- 68
- 69
- 69
- 69
- 70
- 70
- 71
- 71
- 71
- 72
- 72
- 72
- 73
- 73
- 73
- 74
- 74
- 74
- 75
- 75
- 75
- 76
- 76
- 76
- 77
- 77
- 77
- 78
- 78
- 78
- 79
- 79
- 79
- 79
- 80
- 80
- 80
- 81
- 81
- 81
- 82
- 82
- 82
- 82
- 83
- 83
- 83
- 84
- 84
- 84
- 84
- 85
- 85
- 85
- 86
- 86
- 86
- 86
- 87
- 87
- 87
- 88
- 88
- 88
- 88
- 89
- 89
- 89
- 89
- 90
- 90
- 90
- 91
- 91
- 91
- 92
- 92
- 92
- 92
- 93
- 93
- 93
- 93
- 94
- 94
- 94
- 94
- 95
- 95
- 95
- 95
- 96
- 96
- 96
- 96
- 97
- 97
- 97
- 97
- 98
- 98
- 98
- 98
- 98
- 99
- 99
- 99
- 99
- 100
- 100
- 100
- 100
- 101
- 101
- 101
- 101
- 102
- 102
- 102
- 102
- 102
- 103
- 103
- 103
- 103
- 104
- 104
- 104
- 104
- 105
- 105
- 105
- 105
- 105
- 106
- 106
- 106
- 106
- 106
- 107
- 107
- 107
- 107
- 107
- 108
- 108
- 108
- 108
- 108
- 109
- 109
- 109
- 109
- 110
- 110
- 110
- 110
- 110
- 111
- 111
- 111
- 111
- 111
- 112
- 112
- 112
- 112
- 112
- 113
- 113
- 113
- 113
- 113
- 114
- 114
- 114
- 114
- 114
- 115
- 115
- 115
- 115
- 115
- 116
- 116
- 116
- 116
- 116
- 117
- 117
- 117
- 117
- 117
- 118
- 118
- 118
- 118
- 119
- 119
- 119
- 119
- 119
- 119
- 120
- 120
- 120
- 120
- 120
- 121
- 121
- 121
- 121
- 121
- 122
- 122
- 122
- 122
- 122
- 123
- 123
- 123
- 123
- 123
- 123
- 124
- 124
- 124
- 124
- 124
- 125
- 125
- 125
- 125
- 125
- 125
- 126
- 126
- 126
- 126
- 126
- 127
- 127
- 127
- 127
- 127
- 128
- 128
- 128
- 128
- 128
- 128
- 129
- 129
- 129
- 129
- 129
- 130
- 130
- 130
- 130
- 130
- 130
- 131
- 131
- 131
- 131
- 131
- 131
- 132
- 132
- 132
- 132
- 132
- 132
- 133
- 133
- 133
- 133
- 133
- 134
- 134
- 134
- 134
- 134
- 134
- 135
- 135
- 135
- 135
- 135
- 135
- 136
- 136
- 136
- 136
- 136
- 136
- 137
- 137
- 137
- 137
- 137
- 137
- 138
- 138
- 138
- 138
- 138
- 138
- 139
- 139
- 139
- 139
- 139
- 139
- 140
- 140
- 140
- 140
- 140
- 140
- 141
- 141
- 141
- 141
- 141
- 141
- 142
- 142
- 142
- 142
- 142
- 142
- 143
- 143
- 143
- 143
- 143
- 143
- 144
- 144
- 144
- 144
- 144
- 144
- 145
- 145
- 145
- 145
- 145
- 145
- 145
- 146
- 146
- 146
- 146
- 146
- 146
- 147
- 147
- 147
- 147
- 147
- 147
- 147
- 148
- 148
- 148
- 148
- 148
- 148
- 149
- 149
- 149
- 149
- 149
- 149
- 150
- 150
- 150
- 150
- 150
- 150
- 150
- 151
- 151
- 151
- 151
- 151
- 151
- 151
- 152
- 152
- 152
- 152
- 152
- 152
- 152
- 153
- 153
- 153
- 153
- 153
- 153
- 153
- 154
- 154
- 154
- 154
- 154
- 154
- 155
- 155
- 155
- 155
- 155
- 155
- 155
- 156
- 156
- 156
- 156
- 156
- 156
- 156
- 157
- 157
- 157
- 157
- 157
- 157
- 157
- 158
- 158
- 158
- 158
- 158
- 158
- 158
- 159
- 159
- 159
- 159
- 159
- 159
- 160
- 160
- 160
- 160
- 160
- 160
- 160
- 161
- 161
- 161
- 161
- 161
- 161
- 161
- 162
- 162
- 162
- 162
- 162
- 162
- 162
- 163
- 163
- 163
- 163
- 163
- 163
- 163
- 164
- 164
- 164
- 164
- 164
- 164
- 164
- 165
- 165
- 165
- 165
- 165
- 165
- 165
- 166
- 166
- 166
- 166
- 166
- 166
- 166
- 166
- 167
- 167
- 167
- 167
- 167
- 167
- 167
- 167
- 168
- 168
- 168
- 168
- 168
- 168
- 168
- 169
- 169
- 169
- 169
- 169
- 169
- 169
- 170
- 170
- 170
- 170
- 170
- 170
- 170
- 170
- 171
- 171
- 171
- 171
- 171
- 171
- 171
- 172
- 172
- 172
- 172
- 172
- 172
- 172
- 172
- 173
- 173
- 173
- 173
- 173
- 173
- 173
- 174
- 174
- 174
- 174
- 174
- 174
- 174
- 175
- 175
- 175
- 175
- 175
- 175
- 175
- 175
- 176
- 176
- 176
- 176
- 176
- 176
- 176
- 176
- 176
- 177
- 177
- 177
- 177
- 177
- 177
- 177
- 177
- 177
- 177
- 177
- 178
- 178
- 178
- 178
- 178
- 178
- 178
- 178
- 178
- 178
- 178
- 179
- 179
- 179
- 179
- 179
- 179
- 179
- 179
- 179
- 179
- 180
- 180
- 180
- 180
- 180
- 180
- 180
- 180
- 180
- 180
- 181
- 181
- 181
- 181
- 181
- 181
- 181
- 181
- 181
- 181
- 182
- 182
- 182
- 182
- 182
- 182
- 182
- 182
- 182
- 182
- 183
- 183
- 183
- 183
- 183
- 183
- 183
- 183
- 183
- 183
- 184
- 184
- 184
- 184
- 184
- 184
- 184
- 184
- 184
- 185
- 185
- 185
- 185
- 185
- 185
- 185
- 185
- 185
- 185
- 186
- 186
- 186
- 186
- 186
- 186
- 186
- 186
- 186
- 187
- 187
- 187
- 187
- 187
- 187
- 187
- 187
- 187
- 188
- 188
- 188
- 188
- 188
- 188
- 188
- 188
- 188
- 188
- 189
-06/07/2020 9:56:54
-cooling down
-06/07/2020 9:58:54
- 191
- 191
- 191
- 191
- 191
- 191
- 191
- 191
- 191
- 191
- 191
- 190
- 190
- 190
- 190
- 190
- 190
- 190
- 189
- 189
- 189
- 189
- 188
- 188
- 188
- 188
- 187
- 187
- 186
- 186
- 186
- 185
- 185
- 185
- 184
- 184
- 184
- 183
- 183
- 183
- 182
- 182
- 182
- 181
- 181
- 181
- 180
- 180
- 179
- 179
- 179
- 178
- 178
- 178
- 177
- 177
- 177
- 176
- 176
- 175
- 175
- 175
- 174
- 174
- 174
- 173
- 173
- 173
- 172
- 172
- 172
- 171
- 171
- 171
- 170
- 170
- 170
- 169
- 169
- 169
- 168
- 168
- 168
- 167
- 167
- 167
- 167
- 166
- 166
- 166
- 165
- 165
- 165
- 164
- 164
- 164
- 164
- 163
- 163
- 163
- 162
- 162
- 162
- 161
- 161
- 161
- 161
- 160
- 160
- 160
- 160
- 159
- 159
- 159
- 159
- 158
- 158
- 158
- 158
- 157
- 157
- 157
- 157
- 157
- 156
- 156
- 156
- 156
- 155
- 155
- 155
- 155
- 155
- 154
- 154
- 154
- 154
- 153
- 153
- 153
- 153
- 153
- 152
- 152
- 152
- 152
- 152
- 152
- 151
- 151
- 151
- 151
- 151
- 150
- 150
- 150
- 150
- 150
- 149
- 149
- 149
- 149
- 149
- 149
- 148
- 148
- 148
- 148
- 148
- 148
- 147
- 147
- 147
- 147
- 147
- 147
- 146
- 146
- 146
- 146
- 146
- 146
- 145
- 145
- 145
- 145
- 145
- 145
- 145
- 144
- 144
- 144
- 144
- 144
- 144
- 144
- 143
- 143
- 143
- 143
- 143
- 143
- 143
- 142
- 142
- 142
- 142
- 142
- 142
- 142
- 142
- 141
- 141
- 141
- 141
- 141
- 141
- 141
- 141
- 141
- 140
- 140
- 140
- 140
- 140
- 140
- 140
- 140
- 139
- 139
- 139
- 139
- 139
- 139
- 139
- 139
- 139
- 138
- 138
- 138
- 138
- 138
- 138
- 138
- 138
- 138
- 137
- 137
- 137
- 137
- 137
- 137
- 137
- 137
- 137
- 136
- 136
- 136
- 136
- 136
- 136
- 136
- 136
- 136
- 136
- 135
- 135
- 135
- 135
- 135
- 135
- 135
- 135
- 135
- 135
- 134
- 134
- 134
- 134
- 134
- 134
- 134
- 134
- 134
- 134
- 134
- 133
- 133
- 133
- 133
- 133
- 133
- 133
- 133
- 133
- 133
- 133
- 132
- 132
- 132
- 132
- 132
- 132
- 132
- 132
- 132
- 132
- 132
- 132
- 132
- 131
- 131
- 131
- 131
- 131
- 131
- 131
- 131
- 131
- 131
- 131
- 131
- 130
- 130
- 130
- 130
- 130
- 130
- 130
- 130
- 130
- 130
- 130
- 130
- 129
- 129
- 129
- 129
- 129
- 129
- 129
- 129
- 129
- 129
- 129
- 129
- 129
- 128
- 128
- 128
- 128
- 128
- 128
- 128
- 128
- 128
- 128
- 128
- 128
- 128
- 128
- 128
- 127
- 127
- 127
- 127
- 127
- 127
- 127
- 127
- 127
- 127
- 127
- 127
- 127
- 127
- 126
- 126
- 126
- 126
- 126
- 126
- 126
- 126
- 126
- 126
- 126
- 126
- 126
- 126
- 126
- 126
- 125
- 125
- 125
- 125
- 125
- 125
- 125
- 125
- 125
- 125
- 125
- 125
- 125
- 125
- 125
- 125
- 124
- 124
- 124
- 124
- 124
- 124
- 124
- 124
- 124
- 124
- 124
- 124
- 124
- 124
- 124
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 122
- 122
- 122
- 122
- 122
- 122
- 122
- 122
- 122
- 122
- 122
- 122
- 122
- 122
- 122
- 122
- 122
- 122
- 121
- 121
- 121
- 121
- 121
- 121
- 121
- 121
- 121
- 121
- 121
- 121
- 121
- 121
- 121
- 121
- 121
- 121
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset111.CSV b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset111.CSV
deleted file mode 100644
index 4ab057b1c..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset111.CSV
+++ /dev/null
@@ -1,29654 +0,0 @@
-16/08/2020 18:49:18
-Heating to 190
-16/08/2020 18:49:18
- 24
- 24
- 24
- 24
- 24
- 24
- 24
- 24
- 24
- 24
- 24
- 24
- 24
- 25
- 25
- 25
- 25
- 25
- 26
- 26
- 26
- 26
- 27
- 27
- 27
- 28
- 28
- 29
- 29
- 29
- 30
- 30
- 31
- 31
- 32
- 32
- 33
- 33
- 33
- 34
- 34
- 35
- 36
- 36
- 37
- 38
- 38
- 39
- 39
- 40
- 40
- 41
- 41
- 42
- 42
- 43
- 43
- 44
- 44
- 45
- 45
- 46
- 46
- 47
- 47
- 48
- 48
- 49
- 49
- 50
- 50
- 51
- 51
- 52
- 52
- 53
- 53
- 53
- 54
- 54
- 55
- 55
- 56
- 56
- 57
- 57
- 57
- 58
- 58
- 59
- 59
- 60
- 60
- 60
- 61
- 61
- 62
- 62
- 63
- 63
- 63
- 64
- 64
- 65
- 65
- 66
- 66
- 66
- 67
- 67
- 67
- 68
- 68
- 69
- 69
- 69
- 70
- 70
- 70
- 71
- 71
- 71
- 72
- 72
- 72
- 73
- 73
- 73
- 74
- 74
- 74
- 75
- 75
- 75
- 76
- 76
- 76
- 77
- 77
- 77
- 78
- 78
- 78
- 79
- 79
- 79
- 79
- 80
- 80
- 80
- 81
- 81
- 81
- 81
- 82
- 82
- 82
- 83
- 83
- 83
- 84
- 84
- 84
- 84
- 85
- 85
- 85
- 85
- 86
- 86
- 86
- 87
- 87
- 87
- 87
- 88
- 88
- 88
- 88
- 89
- 89
- 89
- 89
- 90
- 90
- 90
- 91
- 91
- 91
- 91
- 92
- 92
- 92
- 92
- 93
- 93
- 93
- 93
- 94
- 94
- 94
- 94
- 95
- 95
- 95
- 95
- 95
- 96
- 96
- 96
- 96
- 97
- 97
- 97
- 97
- 98
- 98
- 98
- 98
- 98
- 99
- 99
- 99
- 99
- 100
- 100
- 100
- 100
- 100
- 101
- 101
- 101
- 101
- 102
- 102
- 102
- 102
- 102
- 103
- 103
- 103
- 103
- 104
- 104
- 104
- 104
- 104
- 105
- 105
- 105
- 105
- 105
- 106
- 106
- 106
- 106
- 106
- 107
- 107
- 107
- 107
- 107
- 108
- 108
- 108
- 108
- 108
- 109
- 109
- 109
- 109
- 110
- 110
- 110
- 110
- 110
- 111
- 111
- 111
- 111
- 111
- 112
- 112
- 112
- 112
- 112
- 112
- 113
- 113
- 113
- 113
- 113
- 114
- 114
- 114
- 114
- 114
- 115
- 115
- 115
- 115
- 115
- 115
- 116
- 116
- 116
- 116
- 116
- 117
- 117
- 117
- 117
- 117
- 117
- 118
- 118
- 118
- 118
- 118
- 119
- 119
- 119
- 119
- 119
- 119
- 120
- 120
- 120
- 120
- 120
- 120
- 121
- 121
- 121
- 121
- 121
- 122
- 122
- 122
- 122
- 122
- 122
- 123
- 123
- 123
- 123
- 123
- 123
- 124
- 124
- 124
- 124
- 124
- 124
- 125
- 125
- 125
- 125
- 125
- 125
- 126
- 126
- 126
- 126
- 126
- 126
- 127
- 127
- 127
- 127
- 127
- 127
- 128
- 128
- 128
- 128
- 128
- 128
- 128
- 129
- 129
- 129
- 129
- 129
- 129
- 130
- 130
- 130
- 130
- 130
- 130
- 131
- 131
- 131
- 131
- 131
- 131
- 131
- 132
- 132
- 132
- 132
- 132
- 133
- 133
- 133
- 133
- 133
- 133
- 133
- 134
- 134
- 134
- 134
- 134
- 134
- 135
- 135
- 135
- 135
- 135
- 135
- 135
- 136
- 136
- 136
- 136
- 136
- 136
- 136
- 137
- 137
- 137
- 137
- 137
- 137
- 138
- 138
- 138
- 138
- 138
- 138
- 138
- 139
- 139
- 139
- 139
- 139
- 139
- 139
- 140
- 140
- 140
- 140
- 140
- 140
- 140
- 141
- 141
- 141
- 141
- 141
- 141
- 141
- 142
- 142
- 142
- 142
- 142
- 142
- 142
- 143
- 143
- 143
- 143
- 143
- 143
- 143
- 143
- 144
- 144
- 144
- 144
- 144
- 144
- 144
- 145
- 145
- 145
- 145
- 145
- 145
- 146
- 146
- 146
- 146
- 146
- 146
- 146
- 147
- 147
- 147
- 147
- 147
- 147
- 147
- 147
- 148
- 148
- 148
- 148
- 148
- 148
- 148
- 148
- 149
- 149
- 149
- 149
- 149
- 149
- 149
- 150
- 150
- 150
- 150
- 150
- 150
- 150
- 150
- 151
- 151
- 151
- 151
- 151
- 151
- 151
- 151
- 152
- 152
- 152
- 152
- 152
- 152
- 152
- 152
- 153
- 153
- 153
- 153
- 153
- 153
- 154
- 154
- 154
- 154
- 154
- 154
- 154
- 154
- 155
- 155
- 155
- 155
- 155
- 155
- 155
- 155
- 155
- 156
- 156
- 156
- 156
- 156
- 156
- 156
- 156
- 156
- 157
- 157
- 157
- 157
- 157
- 157
- 157
- 157
- 157
- 158
- 158
- 158
- 158
- 158
- 158
- 158
- 158
- 158
- 159
- 159
- 159
- 159
- 159
- 159
- 159
- 159
- 159
- 160
- 160
- 160
- 160
- 160
- 160
- 160
- 160
- 160
- 161
- 161
- 161
- 161
- 161
- 161
- 161
- 161
- 161
- 162
- 162
- 162
- 162
- 162
- 162
- 162
- 162
- 163
- 163
- 163
- 163
- 163
- 163
- 163
- 163
- 164
- 164
- 164
- 164
- 164
- 164
- 164
- 164
- 164
- 165
- 165
- 165
- 165
- 165
- 165
- 165
- 165
- 165
- 166
- 166
- 166
- 166
- 166
- 166
- 166
- 166
- 167
- 167
- 167
- 167
- 167
- 167
- 167
- 167
- 167
- 168
- 168
- 168
- 168
- 168
- 168
- 168
- 168
- 168
- 169
- 169
- 169
- 169
- 169
- 169
- 169
- 169
- 169
- 170
- 170
- 170
- 170
- 170
- 170
- 170
- 170
- 170
- 171
- 171
- 171
- 171
- 171
- 171
- 171
- 171
- 171
- 172
- 172
- 172
- 172
- 172
- 172
- 172
- 172
- 172
- 173
- 173
- 173
- 173
- 173
- 173
- 173
- 173
- 173
- 174
- 174
- 174
- 174
- 174
- 174
- 174
- 174
- 174
- 174
- 175
- 175
- 175
- 175
- 175
- 175
- 175
- 175
- 175
- 175
- 176
- 176
- 176
- 176
- 176
- 176
- 176
- 176
- 176
- 176
- 177
- 177
- 177
- 177
- 177
- 177
- 177
- 177
- 177
- 177
- 177
- 177
- 178
- 178
- 178
- 178
- 178
- 178
- 178
- 178
- 178
- 178
- 179
- 179
- 179
- 179
- 179
- 179
- 179
- 179
- 179
- 180
- 180
- 180
- 180
- 180
- 180
- 180
- 180
- 180
- 180
- 181
- 181
- 181
- 181
- 181
- 181
- 181
- 181
- 181
- 182
- 182
- 182
- 182
- 182
- 182
- 182
- 182
- 182
- 183
- 183
- 183
- 183
- 183
- 183
- 183
- 183
- 183
- 183
- 184
- 184
- 184
- 184
- 184
- 184
- 184
- 184
- 184
- 185
- 185
- 185
- 185
- 185
- 185
- 185
- 185
- 185
- 185
- 186
- 186
- 186
- 186
- 186
- 186
- 186
- 186
- 186
- 186
- 187
- 187
- 187
- 187
- 187
- 187
- 187
- 187
- 187
- 188
- 188
- 188
- 188
- 188
- 188
- 188
- 188
- 188
- 188
- 189
-16/08/2020 19:04:08
-cooling down
-16/08/2020 19:06:08
- 193
- 193
- 193
- 193
- 193
- 193
- 192
- 192
- 192
- 192
- 192
- 192
- 192
- 192
- 191
- 191
- 191
- 191
- 191
- 191
- 190
- 190
- 190
- 190
- 190
- 189
- 189
- 189
- 189
- 188
- 188
- 188
- 188
- 187
- 187
- 187
- 186
- 186
- 186
- 185
- 185
- 185
- 185
- 184
- 184
- 184
- 183
- 183
- 183
- 182
- 182
- 182
- 181
- 181
- 181
- 180
- 180
- 180
- 179
- 179
- 179
- 178
- 178
- 178
- 178
- 177
- 177
- 176
- 176
- 176
- 175
- 175
- 175
- 174
- 174
- 174
- 174
- 173
- 173
- 173
- 172
- 172
- 172
- 171
- 171
- 171
- 171
- 170
- 170
- 170
- 169
- 169
- 169
- 169
- 168
- 168
- 168
- 167
- 167
- 167
- 167
- 166
- 166
- 166
- 166
- 165
- 165
- 165
- 165
- 164
- 164
- 164
- 164
- 163
- 163
- 163
- 163
- 162
- 162
- 162
- 162
- 161
- 161
- 161
- 161
- 160
- 160
- 160
- 160
- 159
- 159
- 159
- 159
- 158
- 158
- 158
- 158
- 158
- 157
- 157
- 157
- 157
- 157
- 156
- 156
- 156
- 156
- 156
- 155
- 155
- 155
- 155
- 155
- 154
- 154
- 154
- 154
- 154
- 153
- 153
- 153
- 153
- 153
- 153
- 152
- 152
- 152
- 152
- 152
- 151
- 151
- 151
- 151
- 151
- 151
- 150
- 150
- 150
- 150
- 150
- 150
- 149
- 149
- 149
- 149
- 149
- 149
- 149
- 148
- 148
- 148
- 148
- 148
- 148
- 147
- 147
- 147
- 147
- 147
- 147
- 146
- 146
- 146
- 146
- 146
- 146
- 146
- 146
- 145
- 145
- 145
- 145
- 145
- 145
- 145
- 144
- 144
- 144
- 144
- 144
- 144
- 144
- 144
- 143
- 143
- 143
- 143
- 143
- 143
- 143
- 143
- 142
- 142
- 142
- 142
- 142
- 142
- 142
- 142
- 141
- 141
- 141
- 141
- 141
- 141
- 141
- 141
- 141
- 140
- 140
- 140
- 140
- 140
- 140
- 140
- 140
- 140
- 139
- 139
- 139
- 139
- 139
- 139
- 139
- 139
- 139
- 138
- 138
- 138
- 138
- 138
- 138
- 138
- 138
- 138
- 137
- 137
- 137
- 137
- 137
- 137
- 137
- 137
- 137
- 137
- 136
- 136
- 136
- 136
- 136
- 136
- 136
- 136
- 136
- 136
- 136
- 135
- 135
- 135
- 135
- 135
- 135
- 135
- 135
- 135
- 135
- 135
- 134
- 134
- 134
- 134
- 134
- 134
- 134
- 134
- 134
- 134
- 134
- 133
- 133
- 133
- 133
- 133
- 133
- 133
- 133
- 133
- 133
- 133
- 133
- 133
- 132
- 132
- 132
- 132
- 132
- 132
- 132
- 132
- 132
- 132
- 132
- 132
- 131
- 131
- 131
- 131
- 131
- 131
- 131
- 131
- 131
- 131
- 131
- 131
- 130
- 130
- 130
- 130
- 130
- 130
- 130
- 130
- 130
- 130
- 130
- 130
- 130
- 130
- 129
- 129
- 129
- 129
- 129
- 129
- 129
- 129
- 129
- 129
- 129
- 129
- 129
- 129
- 128
- 128
- 128
- 128
- 128
- 128
- 128
- 128
- 128
- 128
- 128
- 128
- 128
- 128
- 128
- 127
- 127
- 127
- 127
- 127
- 127
- 127
- 127
- 127
- 127
- 127
- 127
- 127
- 127
- 127
- 126
- 126
- 126
- 126
- 126
- 126
- 126
- 126
- 126
- 126
- 126
- 126
- 126
- 126
- 126
- 125
- 125
- 125
- 125
- 125
- 125
- 125
- 125
- 125
- 125
- 125
- 125
- 125
- 125
- 125
- 125
- 125
- 124
- 124
- 124
- 124
- 124
- 124
- 124
- 124
- 124
- 124
- 124
- 124
- 124
- 124
- 124
- 124
- 124
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 122
- 122
- 122
- 122
- 122
- 122
- 122
- 122
- 122
- 122
- 122
- 122
- 122
- 122
- 122
- 122
- 122
- 122
- 122
- 121
- 121
- 121
- 121
- 121
- 121
- 121
- 121
- 121
- 121
- 121
- 121
- 121
- 121
- 121
- 121
- 121
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 107
- 107
- 107
- 107
- 107
- 107
- 107
- 107
- 107
- 107
- 107
- 107
- 107
- 107
- 107
- 107
- 107
- 107
- 107
- 107
- 107
- 107
- 107
- 107
- 107
- 107
- 107
- 107
- 107
- 106
- 106
- 106
- 106
- 106
- 106
- 106
- 106
- 106
- 106
- 106
- 106
- 106
- 106
- 106
- 106
- 106
- 106
- 106
- 106
- 106
- 106
- 106
- 106
- 106
- 106
- 106
- 106
- 106
- 105
- 105
- 105
- 105
- 105
- 105
- 105
- 105
- 105
- 105
- 105
- 105
- 105
- 105
- 105
- 105
- 105
- 105
- 105
- 105
- 105
- 105
- 105
- 105
- 105
- 105
- 105
- 105
- 105
- 105
- 104
- 104
- 104
- 104
- 104
- 104
- 104
- 104
- 104
- 104
- 104
- 104
- 104
- 104
- 104
- 104
- 104
- 104
- 104
- 104
- 104
- 104
- 104
- 104
- 104
- 104
- 104
- 104
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 59
-16/08/2020 20:12:40
-Heating to 190
-16/08/2020 20:12:40
- 59
- 59
- 59
- 59
- 59
- 59
- 59
- 59
- 59
- 59
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 61
- 61
- 61
- 61
- 62
- 62
- 62
- 62
- 63
- 63
- 64
- 64
- 64
- 65
- 65
- 66
- 66
- 66
- 67
- 67
- 68
- 68
- 69
- 69
- 70
- 70
- 71
- 71
- 71
- 72
- 72
- 73
- 73
- 74
- 74
- 75
- 75
- 76
- 76
- 77
- 77
- 78
- 78
- 79
- 80
- 80
- 81
- 81
- 82
- 82
- 82
- 83
- 83
- 84
- 84
- 85
- 85
- 86
- 86
- 87
- 87
- 87
- 88
- 88
- 89
- 89
- 90
- 90
- 90
- 91
- 91
- 92
- 92
- 93
- 93
- 93
- 94
- 94
- 95
- 95
- 95
- 96
- 96
- 97
- 97
- 97
- 98
- 98
- 98
- 99
- 99
- 99
- 100
- 100
- 101
- 101
- 101
- 102
- 102
- 102
- 103
- 103
- 103
- 104
- 104
- 104
- 105
- 105
- 105
- 106
- 106
- 106
- 107
- 107
- 107
- 108
- 108
- 108
- 109
- 109
- 109
- 109
- 110
- 110
- 110
- 111
- 111
- 111
- 112
- 112
- 113
- 113
- 113
- 113
- 114
- 114
- 114
- 115
- 115
- 115
- 115
- 116
- 116
- 116
- 116
- 117
- 117
- 117
- 118
- 118
- 118
- 118
- 119
- 119
- 119
- 119
- 120
- 120
- 120
- 120
- 121
- 121
- 121
- 121
- 122
- 122
- 122
- 122
- 123
- 123
- 123
- 123
- 124
- 124
- 124
- 124
- 125
- 125
- 125
- 125
- 126
- 126
- 126
- 126
- 126
- 127
- 127
- 127
- 127
- 128
- 128
- 128
- 128
- 129
- 129
- 129
- 129
- 129
- 130
- 130
- 130
- 130
- 131
- 131
- 131
- 131
- 131
- 132
- 132
- 132
- 132
- 133
- 133
- 133
- 133
- 134
- 134
- 134
- 134
- 134
- 135
- 135
- 135
- 135
- 135
- 136
- 136
- 136
- 136
- 136
- 137
- 137
- 137
- 137
- 137
- 138
- 138
- 138
- 138
- 138
- 139
- 139
- 139
- 139
- 139
- 140
- 140
- 140
- 140
- 140
- 140
- 141
- 141
- 141
- 141
- 141
- 142
- 142
- 142
- 142
- 142
- 142
- 143
- 143
- 143
- 143
- 143
- 144
- 144
- 144
- 144
- 144
- 144
- 145
- 145
- 145
- 145
- 145
- 145
- 146
- 146
- 146
- 146
- 146
- 146
- 147
- 147
- 147
- 147
- 147
- 147
- 148
- 148
- 148
- 148
- 148
- 148
- 149
- 149
- 149
- 149
- 149
- 149
- 150
- 150
- 150
- 150
- 150
- 150
- 151
- 151
- 151
- 151
- 151
- 151
- 151
- 152
- 152
- 152
- 152
- 152
- 152
- 153
- 153
- 153
- 153
- 153
- 153
- 154
- 154
- 154
- 154
- 154
- 154
- 155
- 155
- 155
- 155
- 155
- 155
- 156
- 156
- 156
- 156
- 156
- 156
- 156
- 157
- 157
- 157
- 157
- 157
- 157
- 157
- 158
- 158
- 158
- 158
- 158
- 158
- 159
- 159
- 159
- 159
- 159
- 159
- 159
- 160
- 160
- 160
- 160
- 160
- 160
- 160
- 161
- 161
- 161
- 161
- 161
- 161
- 161
- 162
- 162
- 162
- 162
- 162
- 162
- 162
- 163
- 163
- 163
- 163
- 163
- 163
- 163
- 164
- 164
- 164
- 164
- 164
- 164
- 164
- 164
- 165
- 165
- 165
- 165
- 165
- 165
- 165
- 166
- 166
- 166
- 166
- 166
- 166
- 166
- 166
- 167
- 167
- 167
- 167
- 167
- 167
- 167
- 168
- 168
- 168
- 168
- 168
- 168
- 168
- 169
- 169
- 169
- 169
- 169
- 169
- 169
- 169
- 170
- 170
- 170
- 170
- 170
- 170
- 170
- 171
- 171
- 171
- 171
- 171
- 171
- 171
- 171
- 172
- 172
- 172
- 172
- 172
- 172
- 172
- 173
- 173
- 173
- 173
- 173
- 173
- 173
- 173
- 173
- 174
- 174
- 174
- 174
- 174
- 174
- 174
- 174
- 175
- 175
- 175
- 175
- 175
- 175
- 175
- 175
- 176
- 176
- 176
- 176
- 176
- 176
- 176
- 176
- 176
- 177
- 177
- 177
- 177
- 177
- 177
- 177
- 177
- 177
- 177
- 178
- 178
- 178
- 178
- 178
- 178
- 178
- 178
- 178
- 178
- 178
- 179
- 179
- 179
- 179
- 179
- 179
- 179
- 179
- 179
- 180
- 180
- 180
- 180
- 180
- 180
- 180
- 180
- 180
- 181
- 181
- 181
- 181
- 181
- 181
- 181
- 181
- 181
- 182
- 182
- 182
- 182
- 182
- 182
- 182
- 182
- 182
- 183
- 183
- 183
- 183
- 183
- 183
- 183
- 183
- 184
- 184
- 184
- 184
- 184
- 184
- 184
- 184
- 185
- 185
- 185
- 185
- 185
- 185
- 185
- 185
- 185
- 186
- 186
- 186
- 186
- 186
- 186
- 186
- 186
- 187
- 187
- 187
- 187
- 187
- 187
- 187
- 187
- 187
- 188
- 188
- 188
- 188
- 188
- 188
- 188
- 189
-16/08/2020 20:23:12
-cooling down
-17/08/2020 0:35:05
- 42
-17/08/2020 0:35:06
-Heating to 190
-17/08/2020 0:35:06
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 39
- 40
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 32
- 33
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 31
- 32
- 32
- 32
- 31
- 31
- 31
- 32
- 31
- 31
- 31
- 31
- 32
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 30
- 30
- 31
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 29
- 30
- 30
- 30
- 30
- 30
- 30
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Encoder.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_ssi.cs
index d2eb00cb6..0e6c5c7f0 100644
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Encoder.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_ssi.cs
@@ -31,25 +31,18 @@ public void OnExecute(StubManager stubManager)
for (int i = 0; i < 1000; i++)
{
+
+ SSI_Read_Write(FPGA1, F1_LSPARE_ROTENC_MSB, F1_LSPARE_ROTENC_LSB, F1_LSPARE_ROTENC_TX);
+// SSI_Read_Write(FPGA1, F1_LDANCER2_ROTENC_MSB, F1_LDANCER2_ROTENC_LSB, F1_LDANCER2_ROTENC_TX);
+ stubManager.Write("\n");
+ k++;
+ if ( (k & 0x8) == 0x08 ) {
+ k = 0;
+ stubManager.Write(" LDANCER1 LDANCER2 \n");
+ }
- stubManager.Write(ReadEncoder_Dryer() +"\n");
-
- Thread.Sleep(100);
+ Thread.Sleep(10);
}
}
-
-Int32 ReadEncoder_Dryer()
-{
- Int32 temp;
- Int32 temp1;
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190);
- var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192);
-
- temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff));
-
- return temp;
-}
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/GPO_Blower_PWM.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/GPO_Blower_PWM.cs
index de04260fa..d7c4894c6 100644
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/GPO_Blower_PWM.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/GPO_Blower_PWM.cs
@@ -12,48 +12,26 @@ using Tango.Stubs;
include "..\..\Defines\Tango_Defines_Basic.cs"
include "Tango_Defines_SSR.cs"
-include "Tango_Defines_Tacho.cs"
-const int Time_Test_On_Second= 60*30*3 ; //1.5 hour
-const string File_Name = @"P:\Scripts\Assemblies\Dryer\Blowe_RMO_LOG.CSV"; //3 hour
+
public void OnExecute(StubManager stubManager)
{
-
- var RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg8, 0);
- UInt32 temp;
-
SetBit(FPGA1,0x3d2,5,0); //turn on Blower
- SetBit(FPGA1,0x3d2,4,1); //Dir
+ SetBit(FPGA1,0x3d2,4,0); //Dir
SetBit(FPGA1,0x3d2,3,1); //Torqer High
- const int LOW = 70;//0 - 100%
+ const int LOW = 50;//0 - 100%
var response = stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000400 | 0x112, 0xFF);//Freq 8 bit
var response1 = stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000400 | 0x3EC, LOW+1);//Low 8 bit
var response2 = stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000400 | 0x3EE, 101 - LOW);//High 8 bit
-
-
- stubManager.WriteToFile(File_Name,",RPM ");
-
-
- for (int i=0;i<Time_Test_On_Second;i++)
-
- {
- Thread.Sleep(1000);
- RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg8, 0);
- temp=60/12; //60 sec
- temp=temp *29166667;
- temp=temp/RetVal.Value;
- temp=temp/250;
- stubManager.AppendToFile(File_Name,i+ ","+ temp );
-
- stubManager.Write("Fan5 Speed- \t"+temp + "\n");
-// stubManager.WriteHex(RetVal.Value,4);
-
- }
+ Thread.Sleep(4000);
SetBit(FPGA1,0x3d2,5,1); //turn off Blower
+
+ // low + high = 100 % in order use the same freq
+ // there is option to change only the high (low + freq constasnt) this will chnga the freq
} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Load_Dryer_Arm.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Load_Dryer_Arm.cs
deleted file mode 100644
index 1ce0a515f..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Load_Dryer_Arm.cs
+++ /dev/null
@@ -1,224 +0,0 @@
-//-------------------------------------------
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-include "..\..\Defines\Tango_Defines_Basic.cs"
-include "..\Defines\Tango_Defines_Motors.cs"
-
- //--------------------------------------------------------------------------------
-
-//--------------------------------------------------------------------------------
-Int32 last_14bit_position;
-Int32 position_32bit;
-
-
-public void OnExecute(StubManager stubManager)
-{
-
-
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190);
- var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192);
- last_14bit_position = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff));
- position_32bit=0;
-
-
-//Create form
- Form form1 = new Form();
-
-//--------------------------------------------------------------------------------
-
-// Create buttons to use as the accept and cancel buttons.
- Button button1 = new Button ()
- {
- Width = 100,
- Height = 100,
- };
-
- Button button2 = new Button ()
- {
- Width = 100,
- Height = 100,
- };
-//--------------------------------------------------------------------------------
-// Set the text of button
-
- button1.Text = "ARM HOME";
-
- button2.Text = "ARM STRART";
-
-//--------------------------------------------------------------------------------
-// Set the position of the button on the form.
-
- button1.Location = new Point (40, 100);
-
- button2.Location
- = new Point (button1.Left + button1.Width + 10, 100);
-
-//--------------------------------------------------------------------------------
- // Add button to the form.
-
- form1.Controls.Add(button1);
-
- form1.Controls.Add(button2);
-
-//--------------------------------------------------------------------------------
-
-// Set the caption bar text of the form.
-
- form1.Text = "Load Dryer Arm";
-
-//--------------------------------------------------------------------------------
-
- // Define the border style of the form to a dialog box.
-
- form1.FormBorderStyle = FormBorderStyle.FixedDialog;
-
- // Set the MaximizeBox to false to remove the maximize box.
-
- form1.MaximizeBox = false;
-
- // Set the MinimizeBox to false to remove the minimize box.
-
- form1.MinimizeBox = false;
-
- // Set the start position of the form to the center of the screen.
-
- form1.StartPosition = FormStartPosition.CenterScreen;
-
-
- form1.AutoSize = true;
- form1.AutoSizeMode = AutoSizeMode.GrowAndShrink;
-//--------------------------------------------------------------------------------
-
- TextBox TextBox1 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text ="20"
- };
-TextBox1.Location = new Point (40, 40);
- form1.Controls.Add(TextBox1);
-Label Label1 = new Label ()
- {
- Width = 150,
- Height = 100,
- Text ="Number round"
- };
-Label1.Location = new Point (20, 10);
- form1.Controls.Add(Label1);
-
-
-
-//--------------------------------------------------------------------------------
-
-
-
- button2.Click += (_,__) =>
-
- {
- position_32bit=0;
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,5, true, 40);
- Thread.Sleep(200);
-
- while (Math.Abs(ReadEncoder())< (UInt32.Parse(TextBox1.Text)*0x4000))
-
- {
- Thread.Sleep(200);
-
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,5, 3);
-
- };
-
-
-
-//--------------------------------------------------------------------------------
-
- button1.Click += (_,__) =>
- {
- Int32 temp3=0;
- Int32 j=0;
- position_32bit=0;
- Int32 temp=position_32bit;
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,5, false, 40);
- Thread.Sleep(200);
-
- while (temp3==0)
-
- {
- Thread.Sleep(200);
- ReadEncoder();
- stubManager.Write("position_32bit " + position_32bit +"\t");
-
- if (Math.Abs(position_32bit)> (UInt32.Parse(TextBox1.Text)*0x4000))
- temp3=1;
- if (Math.Abs(position_32bit-temp)<0x40)
- j=j+1;
- else
- j=0;
- temp=position_32bit;
- if (j>3)
- temp3=2;
-
- stubManager.Write("Temp3 " + temp3 +"\n");
-
-
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,5, 3);
-
- };
-
-//--------------------------------------------------------------------------------
-
-// Display the form as a modal dialog box.
- form1.ShowDialog();
-
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,5, 3);
-
-
- return;
-}
-
-Int32 ReadEncoder()
-{
- Int32 temp;
- Int32 temp1;
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190);
- var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192);
-
- temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff));
- if (temp>last_14bit_position)
- {
- temp1=temp-last_14bit_position;
- position_32bit=position_32bit+temp1;
- if (temp1>0x2000)
- position_32bit=position_32bit-0x4000;
- }
- else if (temp<last_14bit_position)
-
- {
- temp1=last_14bit_position-temp;
- position_32bit=position_32bit-temp1;
- if (temp1>0x2000)
- position_32bit=position_32bit+0x4000;
- }
-
- last_14bit_position=temp;
-
- return position_32bit;
-}
-
-
-
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Loading_arm_center_calibration.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Loading_arm_center_calibration.cs
deleted file mode 100644
index bb502309e..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Loading_arm_center_calibration.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-
-
-ProgressRequest progressRequest = new ProgressRequest();
-progressRequest.Amount = 0xB1;
-
-var response = stubManager.Run<ProgressResponse>(progressRequest);
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/blower_rpm.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/blower_rpm.cs
deleted file mode 100644
index 13e6af513..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/blower_rpm.cs
+++ /dev/null
@@ -1,62 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-include "..\..\Defines\Tango_Defines_Basic.cs"
-include "Tango_Defines_SSR.cs"
-include "Tango_Defines_Tacho.cs"
-
-const int Time_Test_On_Second= 60*30*3 ; //1.5 hour
-const string File_Name = @"P:\Scripts\Assemblies\Dryer\Blowe_RMO_LOG.CSV"; //3 hour
-
-
-public void OnExecute(StubManager stubManager)
-{
-
-
-/*
- const int LOW = 75;//0 - 100%
- var response = stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000400 | 0x112, 0xFF);//Freq 8 bit
- var response1 = stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000400 | 0x3EC, LOW+1);//Low 8 bit
- var response2 = stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000400 | 0x3EE, 101 - LOW);//High 8 bit
-*/
-
-
-
-
-
-
-
- var RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg8, 0);
- UInt32 temp;
-
-
-// stubManager.WriteToFile(File_Name,",RPM ");
-
-
- for (int i=0;i<Time_Test_On_Second;i++)
-
- {
-
- Thread.Sleep(1000);
- RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg8, 0);
- temp=60/12; //60 sec
- temp=temp *29166667;
- temp=temp/RetVal.Value;
- temp=temp/250;
-// stubManager.AppendToFile(File_Name,i+ ","+ temp );
-
- stubManager.Write("Fan5 Speed- \t"+temp + "\n");
-// stubManager.WriteHex(RetVal.Value,4);
-
- }
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test.csv
deleted file mode 100644
index a31cc8341..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test.csv
+++ /dev/null
@@ -1,1795 +0,0 @@
-24/05/2020 13:21:48
-0,0
-58,0
-75,0
-92,-2
-111,53
-132,36
-151,-53
-172,-14
-192,-117
-212,-100
-248,-149
-268,-309
-289,-377
-309,-453
-328,-462
-350,-539
-369,-687
-388,-747
-410,-829
-431,-842
-451,-922
-464,-991
-494,-1044
-515,-1221
-535,-1237
-557,-1312
-578,-1459
-599,-1538
-619,-1552
-639,-1626
-660,-1701
-685,-1846
-704,-1873
-720,-1940
-733,-2000
-749,-2113
-765,-2172
-783,-2231
-802,-2298
-820,-2369
-836,-2435
-861,-2494
-878,-2525
-899,-2593
-919,-2735
-933,-2809
-952,-2861
-966,-2932
-982,-2986
-996,-2982
-1014,-3033
-1035,-3101
-1052,-3242
-1078,-3239
-1101,-3341
-1124,-3425
-1146,-3570
-1181,-3595
-1203,-3783
-1216,-3799
-1235,-3850
-1250,-3921
-1277,-3984
-1298,-4147
-1318,-4223
-1336,-4294
-1355,-4298
-1374,-4365
-1396,-4444
-1427,-4591
-1458,-4713
-1484,-4751
-1505,-4914
-1533,-4960
-1555,-5028
-1574,-5172
-1596,-5244
-1619,-5268
-1642,-5419
-1664,-5499
-1686,-5520
-1706,-5606
-1733,-5740
-1757,-5783
-1776,-5935
-1793,-6007
-1811,-6065
-1830,-6133
-1849,-6207
-1870,-6276
-1891,-6285
-1912,-6366
-1940,-6511
-1962,-6546
-1977,-6627
-1992,-6683
-2012,-6739
-2032,-6815
-2055,-6963
-2077,-6996
-2093,-7053
-2119,-7114
-2142,-7283
-2164,-7362
-2187,-7380
-2210,-7531
-2235,-7615
-2254,-7642
-2276,-7714
-2302,-7874
-2322,-7900
-2342,-7972
-2373,-8107
-2396,-8161
-2416,-8310
-2442,-8383
-2465,-8413
-2490,-8566
-2512,-8591
-2536,-8677
-2562,-8785
-2581,-8858
-2612,-8929
-2653,-9040
-2681,-9265
-2700,-9302
-2720,-9370
-2741,-9446
-2760,-9591
-2782,-9659
-2805,-9679
-2829,-9834
-2848,-9917
-2866,-9988
-2888,-10052
-2907,-10069
-2925,-10142
-2939,-10213
-2961,-10260
-2997,-10379
-3021,-10549
-3041,-10570
-3062,-10646
-3081,-10717
-3102,-10790
-3124,-10934
-3146,-11013
-3165,-11031
-3183,-11105
-3203,-11176
-3229,-11309
-3251,-11341
-3271,-11427
-3291,-11562
-3309,-11635
-3331,-11704
-3349,-11783
-3367,-11800
-3388,-11860
-3405,-11927
-3434,-11996
-3450,-12165
-3465,-12226
-3484,-12284
-3503,-12351
-3519,-12424
-3532,-12485
-3554,-12535
-3578,-12558
-3600,-12638
-3626,-12784
-3648,-12819
-3670,-12898
-3683,-13042
-3705,-13028
-3728,-13181
-3746,-13196
-3761,-13260
-3780,-13332
-3800,-13399
-3817,-13546
-3837,-13532
-3871,-13699
-3887,-13736
-3906,-13799
-3923,-13929
-3943,-13927
-3963,-14067
-3982,-14138
-3998,-14214
-4017,-14271
-4043,-14281
-4062,-14375
-4078,-14512
-4100,-14570
-4122,-14650
-4143,-14668
-4165,-14750
-4188,-14912
-4205,-14982
-4234,-15015
-4255,-15158
-4268,-15231
-4286,-15282
-4309,-15353
-4323,-15375
-4344,-15488
-4362,-15511
-4381,-15579
-4401,-15647
-4422,-15718
-4444,-15860
-4470,-15888
-4493,-16044
-4515,-16130
-4536,-16147
-4558,-16220
-4575,-16366
-4596,-16434
-4622,-16458
-4644,-16543
-4674,-16690
-4697,-16742
-4714,-16887
-4733,-16945
-4749,-17019
-4772,-17084
-4786,-17104
-4803,-17219
-4820,-17281
-4834,-17347
-4847,-17398
-4878,-17453
-4895,-17500
-4915,-17567
-4935,-17706
-4952,-17778
-4967,-17844
-4985,-17831
-5004,-17962
-5021,-18035
-5037,-18099
-5056,-18159
-5094,-18189
-5113,-18369
-5131,-18440
-5150,-18442
-5169,-18512
-5189,-18582
-5205,-18658
-5220,-18719
-5241,-18775
-5266,-18922
-5287,-19012
-5306,-19028
-5326,-19100
-5349,-19244
-5374,-19335
-5393,-19353
-5410,-19424
-5424,-19486
-5444,-19536
-5471,-19705
-5491,-19721
-5511,-19789
-5529,-19869
-5551,-19944
-5564,-20076
-5586,-20060
-5608,-20205
-5633,-20234
-5652,-20317
-5684,-20387
-5706,-20507
-5722,-20652
-5741,-20713
-5758,-20789
-5774,-20843
-5789,-20839
-5805,-20901
-5827,-20964
-5845,-21104
-5866,-21173
-5886,-21250
-5914,-21265
-5937,-21434
-5952,-21454
-5984,-21572
-6002,-21693
-6022,-21759
-6035,-21827
-6055,-21880
-6074,-21952
-6096,-21963
-6124,-22044
-6139,-22210
-6161,-22270
-6183,-22287
-6201,-22367
-6223,-22432
-6236,-22578
-6255,-22567
-6272,-22706
-6288,-22696
-6333,-22837
-6356,-22935
-6370,-23012
-6392,-23067
-6408,-23144
-6429,-23276
-6446,-23350
-6467,-23413
-6486,-23488
-6507,-23559
-6521,-23575
-6542,-23627
-6562,-23707
-6583,-23777
-6604,-23924
-6628,-24003
-6647,-24020
-6669,-24103
-6696,-24238
-6724,-24362
-6741,-24445
-6760,-24507
-6780,-24579
-6805,-24595
-6829,-24754
-6848,-24777
-6872,-24847
-6890,-24936
-6918,-25083
-6939,-25111
-6956,-25181
-6971,-25240
-6990,-25300
-7007,-25366
-7024,-25432
-7045,-25497
-7064,-25648
-7086,-25710
-7108,-25787
-7137,-25898
-7156,-25978
-7184,-26052
-7202,-26158
-7224,-26220
-7238,-26306
-7255,-26354
-7275,-26415
-7296,-26493
-7310,-26509
-7336,-26584
-7351,-26654
-7370,-26712
-7392,-26779
-7405,-26926
-7426,-26916
-7446,-27058
-7464,-27130
-7483,-27193
-7507,-27270
-7541,-27400
-7555,-27417
-7573,-27468
-7593,-27538
-7616,-27613
-7636,-27759
-7660,-27839
-7677,-27865
-7701,-27933
-7724,-28080
-7743,-28161
-7777,-28174
-7798,-28359
-7821,-28381
-7837,-28533
-7856,-28585
-7875,-28655
-7889,-28723
-7907,-28712
-7934,-28851
-7957,-28890
-7974,-29033
-7989,-29098
-8003,-29087
-8024,-29140
-8048,-29224
-8100,-29328
-8117,-29567
-8146,-29633
-8169,-29672
-8192,-29823
-8209,-29846
-8226,-29909
-8245,-29966
-8258,-30037
-8284,-30092
-8306,-30261
-8329,-30336
-8348,-30355
-8378,-30432
-8402,-30552
-8425,-30632
-8439,-30779
-8459,-30833
-8490,-30859
-8505,-31025
-8519,-31011
-8545,-31067
-8570,-31177
-8592,-31257
-8622,-31430
-8643,-31449
-8662,-31595
-8683,-31670
-8701,-31742
-8721,-31815
-8747,-31838
-8765,-31984
-8786,-32053
-8813,-32076
-8835,-32236
-8854,-32311
-8869,-32381
-8890,-32442
-8904,-32458
-8925,-32575
-8939,-32587
-8952,-32700
-8972,-32751
-9004,-32783
-9026,-32946
-9043,-33020
-9063,-33084
-9081,-33099
-9098,-33168
-9117,-33226
-9139,-33298
-9160,-33382
-9180,-33528
-9202,-33599
-9224,-33614
-9252,-33700
-9274,-33808
-9292,-33884
-9304,-33949
-9326,-34004
-9342,-34154
-9360,-34142
-9377,-34203
-9395,-34272
-9415,-34341
-9445,-34481
-9467,-34531
-9485,-34671
-9505,-34744
-9527,-34761
-9541,-34837
-9556,-34892
-9576,-35011
-9591,-35017
-9610,-35137
-9640,-35168
-9659,-35321
-9682,-35337
-9707,-35423
-9728,-35574
-9750,-35594
-9767,-35681
-9781,-35733
-9797,-35848
-9818,-35909
-9838,-35921
-9867,-36005
-9889,-36110
-9907,-36191
-9931,-36258
-9950,-36410
-9971,-36485
-9989,-36497
-10010,-36562
-10031,-36641
-10057,-36777
-10081,-36820
-10101,-36901
-10123,-37038
-10145,-37121
-10161,-37135
-10180,-37193
-10206,-37285
-10227,-37432
-10248,-37509
-10270,-37525
-10291,-37673
-10313,-37751
-10330,-37830
-10344,-37894
-10368,-37947
-10387,-37972
-10407,-38047
-10425,-38120
-10439,-38183
-10459,-38236
-10486,-38377
-10507,-38415
-10523,-38488
-10541,-38553
-10561,-38620
-10578,-38696
-10592,-38758
-10610,-38810
-10630,-38869
-10652,-38952
-10679,-39094
-10702,-39132
-10724,-39289
-10746,-39361
-10763,-39383
-10792,-39464
-10809,-39617
-10823,-39679
-10837,-39731
-10854,-39716
-10884,-39853
-10901,-39893
-10918,-39957
-10939,-40021
-10959,-40171
-10977,-40241
-10991,-40305
-11007,-40362
-11020,-40350
-11035,-40403
-11051,-40518
-11081,-40576
-11113,-40661
-11132,-40739
-11151,-40873
-11172,-40952
-11194,-41027
-11213,-41043
-11227,-41116
-11248,-41163
-11283,-41294
-11308,-41450
-11329,-41537
-11352,-41553
-11370,-41638
-11391,-41702
-11408,-41850
-11428,-41906
-11448,-41982
-11473,-42053
-11493,-42082
-11512,-42221
-11535,-42291
-11559,-42322
-11579,-42404
-11598,-42538
-11622,-42618
-11644,-42636
-11663,-42718
-11701,-42790
-11718,-42997
-11741,-43062
-11760,-43141
-11778,-43156
-11804,-43232
-11829,-43388
-11849,-43411
-11871,-43482
-11894,-43629
-11919,-43715
-11947,-43746
-11974,-43853
-12021,-44016
-12040,-44123
-12083,-44198
-12103,-44417
-12125,-44487
-12147,-44507
-12178,-44624
-12198,-44707
-12219,-44850
-12241,-44919
-12266,-44937
-12286,-45032
-12309,-45174
-12331,-45195
-12351,-45280
-12384,-45423
-12405,-45472
-12428,-45622
-12447,-45704
-12469,-45707
-12491,-45794
-12508,-45940
-12523,-46004
-12538,-46059
-12553,-46050
-12567,-46104
-12580,-46216
-12605,-46267
-12624,-46295
-12640,-46365
-12659,-46425
-12681,-46498
-12694,-46643
-12716,-46628
-12731,-46772
-12750,-46833
-12775,-46905
-12798,-46942
-12820,-47084
-12846,-47120
-12859,-47197
-12876,-47246
-12895,-47312
-12908,-47378
-12928,-47490
-12942,-47507
-12960,-47562
-12989,-47650
-13009,-47797
-13031,-47876
-13049,-47891
-13069,-47958
-13085,-48034
-13107,-48096
-13126,-48241
-13147,-48314
-13168,-48388
-13195,-48402
-13230,-48571
-13249,-48698
-13263,-48772
-13284,-48821
-13298,-48841
-13316,-48955
-13332,-49021
-13346,-49084
-13359,-49132
-13387,-49123
-13409,-49227
-13432,-49309
-13453,-49458
-13470,-49542
-13490,-49601
-13506,-49672
-13526,-49732
-13544,-49739
-13564,-49809
-13592,-49977
-13615,-49994
-13634,-50072
-13653,-50144
-13669,-50281
-13683,-50276
-13695,-50325
-13711,-50385
-13727,-50499
-13747,-50565
-13767,-50571
-13799,-50650
-13822,-50774
-13841,-50921
-13867,-51000
-13880,-51017
-13914,-51134
-13938,-51268
-13960,-51290
-13980,-51364
-13995,-51508
-14010,-51564
-14028,-51551
-14056,-51710
-14078,-51734
-14112,-51885
-14134,-51931
-14153,-52077
-14175,-52149
-14190,-52230
-14209,-52284
-14231,-52353
-14244,-52374
-14272,-52452
-14291,-52595
-14310,-52661
-14343,-52737
-14364,-52861
-14377,-52933
-14400,-52984
-14413,-53004
-14427,-53122
-14453,-53137
-14470,-53204
-14485,-53263
-14499,-53324
-14521,-53442
-14558,-53478
-14580,-53602
-14602,-53743
-14622,-53826
-14642,-53833
-14665,-53905
-14693,-54058
-14716,-54100
-14735,-54182
-14748,-54247
-14771,-54305
-14791,-54458
-14811,-54528
-14829,-54599
-14856,-54610
-14871,-54775
-14899,-54853
-14913,-54865
-14932,-54981
-14952,-54992
-14970,-55074
-14995,-55136
-15023,-55254
-15042,-55329
-15070,-55470
-15092,-55505
-15115,-55582
-15133,-55729
-15151,-55801
-15170,-55869
-15189,-55934
-15209,-55946
-15228,-56019
-15247,-56088
-15268,-56157
-15295,-56303
-15313,-56343
-15331,-56406
-15344,-56470
-15364,-56581
-15377,-56591
-15395,-56710
-15415,-56715
-15433,-56782
-15454,-56853
-15486,-56935
-15508,-57055
-15528,-57197
-15548,-57271
-15569,-57346
-15588,-57360
-15608,-57429
-15627,-57497
-15648,-57568
-15675,-57713
-15695,-57752
-15718,-57824
-15738,-57978
-15760,-58050
-15779,-58064
-15793,-58136
-15808,-58186
-15826,-58305
-15846,-58374
-15864,-58388
-15890,-58453
-15911,-58611
-15935,-58639
-15949,-58720
-15967,-58768
-15980,-58834
-15998,-58951
-16017,-58954
-16038,-59022
-16059,-59104
-16089,-59245
-16111,-59292
-16133,-59435
-16152,-59518
-16169,-59592
-16192,-59656
-16223,-59674
-16242,-59791
-16260,-59860
-16288,-59930
-16308,-60097
-16328,-60114
-16355,-60185
-16379,-60355
-16398,-60380
-16412,-60442
-16431,-60495
-16445,-60565
-16467,-60619
-16481,-60700
-16506,-60748
-16527,-60918
-16547,-60995
-16565,-61063
-16588,-61069
-16620,-61225
-16641,-61272
-16663,-61342
-16682,-61488
-16702,-61561
-16718,-61634
-16744,-61693
-16766,-61722
-16784,-61874
-16806,-61943
-16827,-61965
-16844,-62041
-16867,-62185
-16887,-62253
-16908,-62329
-16929,-62402
-16951,-62422
-16973,-62581
-16994,-62653
-17014,-62666
-17031,-62736
-17050,-62804
-17064,-62875
-17083,-62926
-17108,-62994
-17144,-63114
-17165,-63287
-17185,-63305
-17204,-63374
-17223,-63446
-17236,-63517
-17253,-63571
-17269,-63630
-17288,-63693
-17310,-63766
-17330,-63846
-17349,-63995
-17375,-64015
-17394,-64086
-17416,-64158
-17432,-64310
-17449,-64380
-17465,-64430
-17479,-64490
-17499,-64484
-17513,-64621
-17539,-64610
-17560,-64771
-17579,-64778
-17593,-64856
-17612,-64905
-17634,-64976
-17653,-65056
-17676,-65193
-17698,-65281
-17715,-65299
-17741,-65361
-17764,-65524
-17785,-65605
-17805,-65622
-17825,-65699
-17849,-65844
-17867,-65866
-17887,-65930
-17907,-66003
-17927,-66079
-17946,-66218
-17965,-66291
-17992,-66358
-18027,-66474
-18051,-66534
-18072,-66683
-18088,-66758
-18110,-66763
-18132,-66837
-18155,-66920
-18172,-67068
-18202,-67131
-18225,-67246
-18245,-67329
-18265,-67339
-18284,-67417
-18307,-67491
-18331,-67647
-18351,-67665
-18370,-67736
-18387,-67806
-18414,-67878
-18433,-68039
-18455,-68042
-18479,-68131
-18500,-68287
-18521,-68358
-18538,-68372
-18552,-68434
-18566,-68489
-18589,-68604
-18609,-68624
-18637,-68784
-18658,-68868
-18679,-68881
-18702,-68961
-18715,-69108
-18737,-69093
-18759,-69239
-18779,-69319
-18802,-69337
-18818,-69484
-18846,-69479
-18870,-69590
-18892,-69738
-18915,-69821
-18931,-69850
-18945,-69900
-18965,-70016
-18979,-70027
-18995,-70150
-19014,-70201
-19049,-70231
-19072,-70345
-19091,-70423
-19106,-70493
-19126,-70547
-19145,-70620
-19163,-70692
-19185,-70760
-19205,-70908
-19242,-70978
-19264,-71059
-19283,-71140
-19297,-71273
-19317,-71258
-19335,-71333
-19353,-71467
-19368,-71534
-19386,-71524
-19404,-71590
-19420,-71722
-19446,-71719
-19468,-71827
-19485,-71896
-19503,-71960
-19521,-72027
-19539,-72097
-19557,-72165
-19579,-72303
-19600,-72377
-19626,-72455
-19647,-72487
-19669,-72627
-19687,-72708
-19703,-72713
-19720,-72778
-19738,-72899
-19759,-72964
-19779,-72979
-19798,-73056
-19830,-73197
-19849,-73242
-19871,-73320
-19889,-73466
-19906,-73528
-19922,-73597
-19937,-73653
-19954,-73717
-19970,-73771
-19988,-73766
-20001,-73831
-20027,-73883
-20049,-74053
-20069,-74069
-20085,-74135
-20099,-74193
-20132,-74250
-20152,-74433
-20172,-74444
-20191,-74517
-20206,-74584
-20234,-74641
-20256,-74814
-20274,-74826
-20296,-74900
-20313,-74979
-20335,-75114
-20352,-75191
-20375,-75250
-20394,-75336
-20413,-75342
-20440,-75504
-20460,-75581
-20482,-75593
-20499,-75676
-20521,-75740
-20540,-75881
-20561,-75956
-20583,-76031
-20602,-76049
-20624,-76119
-20646,-76198
-20673,-76308
-20695,-76379
-20719,-76524
-20738,-76612
-20760,-76620
-20775,-76702
-20793,-76757
-20814,-76827
-20835,-76903
-20858,-77049
-20880,-77071
-20900,-77147
-20912,-77221
-20933,-77275
-20955,-77350
-20975,-77498
-20997,-77567
-21030,-77602
-21064,-77802
-21084,-77847
-21103,-77909
-21121,-77980
-21141,-78050
-21159,-78119
-21176,-78253
-21200,-78323
-21219,-78406
-21235,-78409
-21248,-78532
-21270,-78580
-21299,-78606
-21322,-78781
-21336,-78800
-21354,-78912
-21369,-78984
-21385,-79035
-21400,-79102
-21419,-79164
-21433,-79224
-21459,-79273
-21478,-79314
-21492,-79383
-21509,-79436
-21526,-79499
-21546,-79565
-21566,-79639
-21586,-79718
-21601,-79855
-21623,-79841
-21641,-79987
-21670,-80019
-21690,-80101
-21711,-80242
-21730,-80316
-21749,-80388
-21771,-80394
-21790,-80473
-21811,-80545
-21830,-80690
-21849,-80760
-21874,-80829
-21900,-80954
-21924,-81022
-21941,-81054
-21968,-81218
-21988,-81283
-22008,-81295
-22032,-81372
-22052,-81519
-22073,-81597
-22087,-81610
-22118,-81731
-22146,-81860
-22168,-81881
-22187,-82026
-22210,-82099
-22258,-82180
-22283,-82370
-22333,-82463
-22355,-82578
-22379,-82729
-22401,-82771
-22418,-82836
-22440,-82899
-22457,-82982
-22472,-83048
-22495,-83112
-22521,-83251
-22542,-83288
-22570,-83362
-22586,-83466
-22607,-83590
-22628,-83609
-22648,-83683
-22667,-83821
-22686,-83891
-22706,-83968
-22726,-83978
-22742,-84049
-22762,-84110
-22778,-84181
-22803,-84244
-22823,-84402
-22844,-84478
-22865,-84494
-22882,-84569
-22896,-84632
-22914,-84684
-22934,-84748
-22951,-84832
-22980,-84891
-23001,-85006
-23024,-85078
-23043,-85227
-23060,-85299
-23083,-85366
-23105,-85446
-23129,-85461
-23164,-85600
-23193,-85747
-23214,-85794
-23233,-85930
-23254,-86001
-23274,-86078
-23288,-86093
-23307,-86210
-23327,-86280
-23344,-86292
-23361,-86356
-23385,-86437
-23402,-86582
-23430,-86635
-23451,-86678
-23468,-86756
-23489,-86820
-23503,-86959
-23516,-86943
-23533,-86995
-23553,-87058
-23569,-87131
-23593,-87193
-23615,-87346
-23634,-87423
-23650,-87434
-23672,-87558
-23691,-87575
-23713,-87644
-23738,-87792
-23760,-87822
-23783,-87902
-23805,-88053
-23818,-88132
-23838,-88183
-23851,-88259
-23871,-88313
-23887,-88382
-23900,-88437
-23918,-88423
-23938,-88561
-23959,-88637
-23987,-88649
-24008,-88817
-24032,-88890
-24055,-88928
-24075,-89066
-24088,-89138
-24105,-89123
-24127,-89257
-24150,-89336
-24177,-89353
-24201,-89532
-24224,-89548
-24241,-89632
-24264,-89696
-24280,-89847
-24300,-89910
-24321,-89982
-24343,-89993
-24364,-90076
-24396,-90226
-24413,-90269
-24430,-90333
-24449,-90393
-24470,-90537
-24489,-90617
-24505,-90674
-24519,-90738
-24536,-90728
-24556,-90791
-24580,-90932
-24611,-90957
-24636,-91143
-24658,-91162
-24678,-91307
-24699,-91378
-24721,-91458
-24737,-91477
-24758,-91536
-24777,-91614
-24801,-91754
-24825,-91846
-24846,-91866
-24864,-92013
-24880,-92073
-24899,-92071
-24917,-92206
-24941,-92279
-24963,-92301
-24982,-92381
-25006,-92453
-25028,-92613
-25045,-92625
-25066,-92686
-25084,-92771
-25101,-92828
-25122,-92893
-25141,-93033
-25160,-93105
-25179,-93174
-25199,-93245
-25223,-93263
-25258,-93438
-25278,-93478
-25299,-93620
-25326,-93694
-25350,-93802
-25373,-93889
-25395,-93903
-25417,-94059
-25439,-94137
-25470,-94182
-25483,-94326
-25500,-94380
-25517,-94446
-25539,-94516
-25553,-94585
-25566,-94633
-25582,-94619
-25595,-94680
-25618,-94730
-25640,-94817
-25660,-94962
-25678,-95036
-25697,-95104
-25716,-95173
-25735,-95177
-25754,-95247
-25770,-95326
-25786,-95388
-25803,-95442
-25823,-95507
-25851,-95577
-25869,-95693
-25892,-95755
-25913,-95839
-25933,-95986
-25954,-96065
-25974,-96078
-25993,-96143
-26007,-96217
-26036,-96274
-26056,-96449
-26070,-96517
-26088,-96570
-26109,-96635
-26132,-96654
-26163,-96736
-26185,-96847
-26207,-96933
-26233,-97084
-26256,-97116
-26277,-97261
-26296,-97345
-26311,-97416
-26329,-97471
-26341,-97534
-26358,-97585
-26376,-97651
-26392,-97712
-26411,-97775
-26440,-97846
-26461,-97892
-26480,-98033
-26501,-98112
-26525,-98124
-26549,-98212
-26586,-98329
-26603,-98446
-26619,-98558
-26635,-98619
-26656,-98679
-26681,-98759
-26704,-98792
-26724,-98944
-26747,-98955
-26770,-99039
-26785,-99191
-26801,-99245
-26820,-99307
-26837,-99389
-26866,-99447
-26890,-99493
-26910,-99638
-26927,-99712
-26949,-99780
-26983,-99800
-27010,-99941
-27026,-100094
-27055,-100148
-27083,-100198
-27101,-100358
-27123,-100369
-27139,-100441
-27155,-100500
-27176,-100567
-27190,-100643
-27208,-100697
-27232,-100768
-27252,-100913
-27273,-100994
-27287,-101005
-27309,-101117
-27324,-101137
-27346,-101207
-27368,-101283
-27391,-101428
-27407,-101505
-27421,-101571
-27440,-101623
-27459,-101641
-27478,-101712
-27499,-101774
-27526,-101849
-27541,-102017
-27560,-102067
-27579,-102144
-27593,-102206
-27606,-102258
-27622,-102245
-27648,-102393
-27661,-102463
-27674,-102511
-27693,-102497
-27723,-102642
-27740,-102681
-27759,-102740
-27778,-102812
-27798,-102887
-27814,-103025
-27833,-103016
-27852,-103155
-27873,-103228
-27889,-103243
-27909,-103366
-27929,-103375
-27959,-103450
-27981,-103566
-28000,-103650
-28023,-103789
-28037,-103865
-28057,-103927
-28076,-103993
-28096,-104062
-28116,-104136
-28137,-104144
-28166,-104227
-28189,-104334
-28207,-104422
-28230,-104487
-28260,-104637
-28276,-104752
-28303,-104827
-28325,-104848
-28339,-104926
-28368,-104978
-28384,-105154
-28407,-105215
-28429,-105238
-28447,-105317
-28468,-105374
-28490,-105524
-28511,-105548
-28532,-105617
-28551,-105691
-28582,-105843
-28602,-105885
-28624,-105958
-28639,-106093
-28654,-106153
-28676,-106148
-28698,-106294
-28720,-106372
-28742,-106389
-28762,-106542
-28784,-106612
-28801,-106690
-28834,-106760
-28856,-106883
-28876,-106900
-28894,-107049
-28914,-107042
-28931,-107182
-28949,-107245
-28968,-107309
-28987,-107378
-29008,-107448
-29036,-107466
-29062,-107645
-29084,-107663
-29106,-107742
-29129,-107895
-29150,-107975
-29173,-108080
-29195,-108138
-29221,-108226
-29243,-108255
-29262,-108397
-29276,-108473
-29296,-108522
-29323,-108560
-29346,-108715
-29379,-108786
-29394,-108913
-29415,-108969
-29434,-109041
-29461,-109116
-29478,-109151
-29501,-109218
-29525,-109370
-29546,-109388
-29564,-109472
-29584,-109534
-29604,-109607
-29625,-109740
-29641,-109821
-29657,-109891
-29685,-109942
-29705,-109980
-29724,-110052
-29747,-110193
-29770,-110277
-29789,-110297
-29811,-110368
-29834,-110519
-29856,-110537
-29876,-110614
-29899,-110762
-29925,-110813
-29939,-110875
-29954,-110930
-29971,-111046
-29988,-111112
-30007,-111124
-30021,-111182
-30035,-111297
-30065,-111352
-30091,-111468
-30109,-111560
-30131,-111623
-30145,-111642
-30160,-111691
-30179,-111816
-30202,-111827
-30223,-111907
-30245,-112050
-30266,-112133
-30286,-112154
-30304,-112220
-30332,-112288
-30355,-112411
-30369,-112486
-30389,-112537
-30402,-112608
-30418,-112655
-30434,-112717
-30449,-112778
-30467,-112904
-30480,-112960
-30502,-113018
-30531,-113035
-30554,-113213
-30574,-113228
-30593,-113301
-30612,-113374
-30631,-113442
-30654,-113580
-30682,-113661
-30704,-113771
-30723,-113850
-30748,-113867
-30762,-113953
-30789,-114009
-30814,-114179
-30836,-114199
-30857,-114348
-30871,-114425
-30890,-114479
-30909,-114551
-30931,-114618
-30952,-114639
-30969,-114717
-30990,-114784
-31005,-114922
-31025,-114911
-31050,-115059
-31073,-115144
-31095,-115160
-31114,-115311
-31149,-115366
-31167,-115512
-31193,-115582
-31207,-115617
-31221,-115670
-31244,-115721
-31288,-115805
-31311,-116036
-31331,-116058
-31354,-116131
-31386,-116264
-31410,-116405
-31433,-116425
-31459,-116511
-31481,-116672
-31521,-116700
-31547,-116917
-31567,-116940
-31587,-117015
-31615,-117084
-31634,-117252
-31652,-117261
-31674,-117329
-31689,-117409
-31708,-117464
-31730,-117611
-31746,-117682
-31768,-117742
-31788,-117825
-31805,-117835
-31825,-117900
-31853,-117979
-31873,-118147
-31892,-118171
-31909,-118229
-31923,-118289
-31937,-118405
-31954,-118456
-31976,-118520
-32004,-118537
-32020,-118714
-32033,-118766
-32056,-118753
-32076,-118903
-32096,-118977
-32119,-118992
-32137,-119066
-32159,-119134
-32197,-119261
-32219,-119428
-32238,-119441
-32255,-119514
-32271,-119578
-32289,-119635
-32305,-119700
-32323,-119764
-32338,-119836
-32353,-119886
-32367,-119947
-32381,-120062
-32412,-120135
-32447,-120253
-32469,-120361
-32488,-120442
-32510,-120514
-32524,-120531
-32546,-120648
-32566,-120661
-32581,-120742
-32594,-120791
-32607,-120903
-32639,-120956
-32662,-121074
-32684,-121153
-32707,-121176
-32729,-121326
-32750,-121416
-32773,-121422
-32795,-121508
-32820,-121663
-32844,-121682
-32864,-121836
-32881,-121911
-32896,-121980
-32910,-122031
-32927,-122018
-32948,-122159
-32962,-122224
-32979,-122282
-32994,-122280
-33015,-122336
-33040,-122407
-33077,-122520
-33099,-122639
-33118,-122714
-33134,-122785
-33150,-122847
-33163,-122907
-33182,-122954
-33204,-123027
-33224,-123108
-33251,-123246
-33275,-123289
-33294,-123435
-33318,-123522
-33335,-123536
-33357,-123607
-33378,-123680
-33400,-123825
-33417,-123908
-33438,-123921
-33467,-123977
-33490,-124154
-33511,-124178
-33531,-124253
-33547,-124326
-33563,-124390
-33586,-124443
-33607,-124596
-33626,-124676
-33648,-124740
-33677,-124761
-33699,-124934
-33712,-124951
-33726,-125064
-33743,-125115
-33766,-125180
-33790,-125207
-33813,-125360
-33838,-125448
-33864,-125545
-33890,-125632
-33912,-125666
-33934,-125812
-33960,-125891
-33975,-125927
-33992,-125982
-34011,-126044
-34027,-126114
-34042,-126178
-34063,-126235
-34089,-126306
-34109,-126465
-34131,-126482
-34144,-126559
-34168,-126613
-34188,-126761
-34206,-126833
-34226,-126905
-34246,-126978
-34277,-127046
-34306,-127172
-34328,-127280
-34348,-127359
-34368,-127371
-34391,-127449
-34411,-127597
-34431,-127673
-34453,-127740
-34473,-127775
-34496,-127839
-34515,-127987
-34541,-128059
-34566,-128093
-34590,-128256
-34608,-128269
-34632,-128342
-34653,-128492
-34674,-128569
-34695,-128646
-34717,-128661
-34748,-128816
-34769,-128866
-34783,-129005
-34803,-128988
-34819,-129131
-34843,-129204
-34870,-129232
-34891,-129320
-34912,-129463
-34927,-129482
-34955,-129599
-34977,-129710
-34995,-129788
-35011,-129852
-35028,-129913
-35046,-129975
-35065,-130038
-35085,-130115
-35098,-130124
-35114,-130247
-35131,-130298
-35155,-130364
-35197,-130489
-35214,-130608
-35234,-130669
-35250,-130745
-35272,-130806
-35292,-130888
-35306,-130899
-35321,-130954
-35337,-131070
-35368,-131140
-35391,-131252
-35411,-131335
-35426,-131348
-35442,-131406
-35465,-131527
-35479,-131542
-35493,-131594
-35519,-131685
-35545,-131751
-35565,-131854
-35579,-131919
-35593,-132035
-35608,-132085
-35636,-132165
-35656,-132185
-35677,-132262
-35699,-132410
-35722,-132487
-35741,-132504
-35760,-132572
-35788,-132736
-35805,-132758
-35823,-132821
-35839,-132882
-35862,-132947
-35883,-133102
-35903,-133178
-35925,-133248
-35946,-133268
-35961,-133348
-35979,-133415
-36006,-133467
-36026,-133577
-36047,-133644
-36071,-133727
-36098,-133894
-36116,-133913
-36133,-133978
-36153,-134041
-36181,-134112
-36204,-134220
-36226,-134303
-36245,-134453
-36268,-134524
-36287,-134541
-36305,-134611
-36326,-134684
-36360,-134760
-36384,-134958
-36411,-135044
-36429,-135156
-36443,-135143
-36461,-135193
-36482,-135265
-36498,-135416
-36516,-135468
-36544,-135550
-36563,-135570
-36585,-135645
-36607,-135790
-36629,-135865
-36657,-135883
-36682,-136058
-36703,-136087
-36726,-136160
-36746,-136314
-36768,-136389
-36788,-136407
-36806,-136475
-36821,-136544
-36846,-136602
-36866,-136765
-36886,-136840
-36905,-136845
-36921,-136914
-36941,-136980
-36958,-137055
-36980,-137114
-37003,-137264
-37022,-137349
-37048,-137357
-37070,-137515
-37089,-141224
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test1.cs
deleted file mode 100644
index 9be6f1ec6..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test1.cs
+++ /dev/null
@@ -1,78 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-
-Int32 last_14bit_position;
-Int32 position_32bit=0;
-const Int32 DrierLoadingArm_Motor = 5;
-public void OnExecute(StubManager stubManager)
-{
- string FileName="test.csv";
- var stopwatch = new Stopwatch();
- stopwatch.Start();
-
- long elapsed_time = stopwatch.ElapsedMilliseconds;
-
- ReadEncoder_Dryer();
- position_32bit=0;
- ReadEncoder_Dryer();
- Int32 temp=position_32bit;
-
- stubManager.WriteToFile(FileName,DateTime.Now +" " );
-//stubManager.AppendToFile("test.csv",elapsed_time+ ","+ position_32bit );
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, false, 100);//40
- elapsed_time = stopwatch.ElapsedMilliseconds;
- stubManager.AppendToFile(FileName,elapsed_time+ ","+ position_32bit );
- while (true)
- {
- ReadEncoder_Dryer();
- elapsed_time = stopwatch.ElapsedMilliseconds;
-stubManager.AppendToFile(FileName,elapsed_time+ ","+ position_32bit );
- Thread.Sleep(1);
- }
-
-}
-
-
-
-void ReadEncoder_Dryer()
-{
- Int32 temp;
- Int32 temp1;
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190);
- var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192);
-
- temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff));
- if (temp>last_14bit_position)
- {
- temp1=temp-last_14bit_position;
- position_32bit=position_32bit+temp1;
- if (temp1>0x2000)
- position_32bit=position_32bit-0x4000;
- }
- else if (temp<last_14bit_position)
-
- {
- temp1=last_14bit_position-temp;
- position_32bit=position_32bit-temp1;
- if (temp1>0x2000)
- position_32bit=position_32bit+0x4000;
- }
-
- last_14bit_position=temp;
-
- return ;
-}
-
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test1.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test1.csv
deleted file mode 100644
index ed306d345..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test1.csv
+++ /dev/null
@@ -1,345 +0,0 @@
-24/05/2020 14:15:24
-0,0
-0,-8
-0,27
-0,32
-0,34
-0,-18
-0,32
-0,36
-0,-20
-0,30
-0,41
-0,35
-0,36
-0,41
-0,36
-0,36
-0,-21
-0,31
-0,-21
-0,30
-0,-21
-0,31
-0,-20
-0,31
-0,-20
-0,31
-0,-21
-0,35
-0,38
-0,30
-0,-21
-0,30
-0,-20
-0,30
-0,-21
-0,31
-0,38
-0,31
-0,-20
-0,30
-0,-20
-0,31
-0,-21
-0,31
-0,-21
-0,30
-0,-22
-0,37
-0,36
-0,38
-0,39
-0,33
-0,-22
-0,30
-0,-21
-0,30
-0,-21
-0,30
-0,-20
-0,31
-0,41
-0,34
-0,40
-0,37
-0,30
-0,-22
-0,34
-0,41
-0,35
-0,37
-0,39
-0,37
-0,40
-0,33
-0,38
-0,33
-0,-20
-0,36
-0,37
-0,39
-0,39
-0,38
-0,37
-0,39
-0,35
-0,36
-0,-21
-0,38
-0,40
-0,32
-0,-22
-0,33
-0,41
-0,31
-0,-22
-0,36
-0,35
-0,32
-0,-17
-0,-22
-0,7
-0,43
-0,122
-0,287
-0,302
-0,374
-0,452
-0,582
-0,725
-0,779
-0,803
-0,799
-0,716
-0,557
-0,454
-0,473
-0,381
-0,349
-0,216
-0,66
-0,96
-0,-62
-0,-157
-0,-231
-0,-327
-0,-310
-0,-463
-0,-542
-0,-600
-0,-712
-0,-789
-0,-807
-0,-957
-0,-1015
-0,-1013
-0,-1172
-0,-1175
-0,-1269
-0,-1400
-0,-1434
-0,-1496
-0,-1573
-0,-1683
-0,-1750
-0,-1781
-0,-1914
-0,-1998
-0,-2131
-0,-2150
-0,-2225
-0,-2269
-0,-2328
-0,-2420
-0,-2553
-0,-2626
-0,-2692
-0,-2768
-0,-2888
-0,-2963
-0,-2969
-0,-3054
-0,-3215
-0,-3229
-0,-3304
-0,-3448
-0,-3526
-0,-3605
-0,-3709
-0,-3780
-0,-3806
-0,-3865
-0,-3984
-0,-3992
-0,-4074
-0,-4222
-0,-4204
-0,-4269
-0,-4407
-0,-4445
-0,-4512
-0,-4586
-0,-4728
-0,-4814
-0,-4875
-0,-4890
-0,-4967
-0,-5038
-0,-5109
-0,-5216
-0,-5297
-0,-5447
-0,-5496
-0,-5566
-0,-5637
-0,-5718
-0,-5724
-0,-5806
-0,-5962
-0,-6037
-0,-6145
-0,-6222
-0,-6235
-0,-6320
-0,-6467
-0,-6490
-0,-6576
-0,-6636
-0,-6784
-0,-7020
-0,-7175
-0,-7206
-0,-7271
-0,-7334
-0,-7405
-0,-7465
-0,-7611
-0,-7684
-0,-7726
-0,-7882
-0,-7909
-0,-7984
-0,-8052
-0,-8183
-0,-8249
-0,-8333
-0,-8383
-0,-8461
-0,-8488
-0,-8553
-0,-8625
-0,-8693
-0,-8831
-0,-8904
-0,-8920
-0,-8998
-0,-9109
-0,-9167
-0,-9195
-0,-9360
-0,-9374
-0,-9433
-0,-9517
-0,-9657
-0,-9721
-0,-9718
-0,-9862
-0,-9934
-0,-9946
-0,-10025
-0,-10191
-0,-10262
-0,-10325
-0,-10379
-0,-10438
-0,-10490
-0,-10559
-0,-10544
-0,-10687
-0,-10757
-0,-10873
-0,-10953
-0,-11008
-0,-11063
-0,-11062
-0,-11215
-0,-11230
-0,-11303
-0,-11378
-0,-11523
-0,-11560
-0,-11706
-0,-11794
-0,-11816
-0,-11868
-0,-11990
-0,-11991
-0,-12065
-0,-12136
-0,-12189
-0,-12350
-0,-12376
-0,-12459
-0,-12527
-0,-12595
-0,-12658
-0,-12798
-0,-12790
-0,-12925
-0,-12999
-0,-13076
-0,-13100
-0,-13259
-0,-13277
-0,-13358
-0,-13505
-0,-13586
-0,-13654
-0,-13676
-0,-13739
-0,-13806
-0,-13958
-0,-14016
-0,-14049
-0,-14118
-0,-14187
-0,-14244
-0,-14297
-0,-14365
-0,-14453
-0,-14595
-0,-14618
-0,-14698
-0,-14754
-0,-14837
-0,-14973
-0,-15045
-0,-15116
-0,-15187
-0,-15235
-0,-15287
-0,-15353
-0,-15386
-0,-15499
-0,-15565
-0,-15616
-0,-15701
-0,-15764
-0,-15787
-0,-15856
-0,-15994
-0,-16074
-0,-16097
-0,-16271
-0,-16340
-0,-16359
-0,-16504
-0,-16502
-0,-16565
-0,-16617
-0,-16692
-0,-16830
-0,-16905
-0,-16944
-0,-17014
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test12.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test12.csv
deleted file mode 100644
index 756c780f4..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test12.csv
+++ /dev/null
@@ -1,283 +0,0 @@
-24/05/2020 14:47:25
-41,0
-63,7
-77,-31
-91,-29
-117,18
-131,-77
-162,-86
-175,-131
-195,-105
-212,-219
-226,-189
-244,-283
-265,-341
-286,-357
-300,-430
-323,-543
-345,-561
-366,-712
-386,-795
-403,-803
-425,-926
-459,-944
-480,-1076
-502,-1145
-524,-1289
-544,-1319
-563,-1389
-585,-1458
-605,-1537
-627,-1681
-649,-1703
-672,-1781
-695,-1925
-723,-2014
-744,-2124
-764,-2190
-789,-2274
-809,-2306
-824,-2441
-841,-2430
-864,-2490
-882,-2636
-904,-2711
-927,-2732
-949,-2809
-973,-2960
-996,-2980
-1010,-3068
-1024,-3117
-1047,-3232
-1071,-3260
-1090,-3409
-1109,-3476
-1131,-3545
-1150,-3563
-1166,-3636
-1180,-3699
-1196,-3749
-1219,-3872
-1243,-3902
-1266,-4051
-1280,-4071
-1293,-4181
-1315,-4230
-1339,-4322
-1356,-4343
-1375,-4400
-1395,-4474
-1412,-4618
-1432,-4683
-1457,-4765
-1486,-4784
-1510,-4961
-1524,-4984
-1547,-5035
-1560,-5115
-1580,-5168
-1597,-5246
-1612,-5312
-1633,-5361
-1653,-5440
-1672,-5577
-1685,-5649
-1709,-5634
-1728,-5788
-1744,-5855
-1758,-5919
-1777,-5969
-1792,-6041
-1808,-6100
-1831,-6160
-1847,-6179
-1866,-6304
-1885,-6312
-1904,-6381
-1930,-6451
-1953,-6620
-1972,-6637
-1994,-6707
-2010,-6851
-2032,-6849
-2054,-6997
-2073,-7014
-2091,-7083
-2121,-7159
-2143,-7267
-2165,-7345
-2181,-7424
-2195,-7556
-2209,-7547
-2229,-7607
-2245,-7669
-2262,-7732
-2276,-7795
-2296,-7847
-2310,-7924
-2329,-7971
-2355,-8048
-2376,-8209
-2398,-8285
-2411,-8299
-2434,-8415
-2457,-8435
-2479,-8582
-2501,-8612
-2519,-8690
-2539,-8753
-2557,-8824
-2576,-8891
-2607,-9028
-2629,-9082
-2645,-9227
-2659,-9290
-2681,-9279
-2698,-9424
-2720,-9487
-2741,-9509
-2761,-9583
-2796,-9738
-2815,-9793
-2834,-9858
-2859,-9996
-2876,-10039
-2890,-10089
-2909,-10148
-2923,-10212
-2945,-10330
-2963,-10344
-2979,-10411
-2994,-10476
-3015,-10533
-3046,-10612
-3069,-10727
-3082,-10804
-3107,-10853
-3122,-10945
-3137,-11001
-3152,-11056
-3170,-11120
-3189,-11187
-3208,-11256
-3229,-11327
-3248,-11473
-3266,-11536
-3283,-11607
-3296,-11664
-3319,-11648
-3341,-11799
-3354,-11817
-3374,-11932
-3390,-12002
-3405,-12061
-3427,-12121
-3440,-12139
-3458,-12251
-3473,-12260
-3490,-12374
-3512,-12438
-3546,-12457
-3565,-12580
-3588,-12657
-3611,-12809
-3631,-12894
-3653,-12902
-3677,-12986
-3696,-13139
-3716,-13210
-3739,-13225
-3757,-13306
-3777,-13372
-3807,-13512
-3830,-13560
-3847,-13707
-3863,-13771
-3885,-13831
-3908,-13917
-3924,-13944
-3947,-13997
-3967,-14147
-4025,-14263
-4060,-14374
-4083,-14502
-4106,-14586
-4129,-14735
-4143,-14759
-4162,-14875
-4180,-14945
-4199,-15010
-4222,-15017
-4240,-15175
-4258,-15243
-4278,-15305
-4292,-15377
-4318,-15431
-4342,-15476
-4361,-15622
-4380,-15690
-4395,-15758
-4410,-15817
-4427,-15808
-4443,-15863
-4462,-15925
-4476,-15996
-4496,-16050
-4513,-16126
-4534,-16187
-4568,-16345
-4587,-16454
-4603,-16526
-4619,-16582
-4641,-16645
-4663,-16728
-4676,-16740
-4689,-16854
-4702,-16901
-4720,-16884
-4734,-16954
-4753,-17004
-4774,-17075
-4795,-17230
-4812,-17304
-4828,-17365
-4842,-17425
-4863,-17481
-4877,-17556
-4891,-17608
-4911,-17594
-4926,-17738
-4946,-17724
-4973,-17877
-4996,-17905
-5020,-17982
-5043,-18144
-5063,-18160
-5078,-18236
-5097,-18286
-5110,-18359
-5126,-18407
-5146,-18474
-5161,-18539
-5174,-18658
-5192,-18708
-5205,-18773
-5220,-18823
-5249,-18813
-5270,-18926
-5287,-19001
-5303,-19069
-5324,-19129
-5344,-19202
-5360,-19341
-5383,-19409
-5401,-19431
-5415,-19493
-5430,-19607
-5443,-19660
-5464,-19716
-5554,-20053
-5575,-20128
-5592,-20147
-5612,-20199
-5631,-20274
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test13.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test13.csv
deleted file mode 100644
index 7344cf879..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test13.csv
+++ /dev/null
@@ -1,290 +0,0 @@
-24/05/2020 14:47:49
-41,0
-56,0
-71,0
-90,-1
-104,-9
-122,-19
-155,-104
-176,-162
-197,-137
-216,-184
-235,-295
-257,-352
-279,-425
-300,-496
-321,-510
-342,-592
-356,-736
-371,-722
-387,-772
-405,-829
-426,-907
-445,-1049
-476,-1115
-497,-1171
-516,-1318
-534,-1335
-555,-1450
-576,-1462
-594,-1542
-613,-1609
-627,-1680
-645,-1727
-666,-1795
-689,-1944
-710,-2032
-738,-2045
-758,-2209
-779,-2291
-797,-2301
-811,-2367
-827,-2478
-843,-2537
-859,-2598
-874,-2660
-893,-2721
-914,-2789
-934,-2866
-956,-2879
-982,-2962
-999,-3121
-1019,-3185
-1039,-3194
-1057,-3274
-1082,-3420
-1102,-3494
-1122,-3567
-1136,-3578
-1149,-3690
-1164,-3743
-1178,-3797
-1199,-3790
-1228,-3950
-1249,-3977
-1267,-4119
-1289,-4183
-1306,-4263
-1329,-4332
-1350,-4351
-1363,-4425
-1400,-4481
-1422,-4620
-1436,-4764
-1450,-4750
-1475,-4805
-1491,-4961
-1508,-5022
-1525,-5084
-1543,-5150
-1569,-5234
-1585,-5243
-1605,-5304
-1622,-5379
-1639,-5441
-1659,-5502
-1681,-5581
-1701,-5726
-1729,-5801
-1743,-5838
-1778,-5901
-1802,-6033
-1817,-6174
-1839,-6236
-1853,-6310
-1867,-6364
-1881,-6353
-1897,-6406
-1912,-6467
-1930,-6519
-1953,-6589
-1975,-6741
-1995,-6823
-2014,-6847
-2030,-6906
-2052,-6966
-2065,-7038
-2085,-7155
-2104,-7159
-2117,-7229
-2131,-7346
-2147,-7395
-2174,-7456
-2211,-7505
-2232,-7630
-2247,-7777
-2263,-7763
-2282,-7824
-2305,-7959
-2320,-8049
-2333,-8098
-2350,-8149
-2367,-8216
-2385,-8211
-2407,-8342
-2432,-8429
-2453,-8453
-2470,-8596
-2493,-8661
-2513,-8747
-2532,-8815
-2552,-8873
-2574,-8924
-2590,-8913
-2605,-8955
-2627,-9053
-2647,-9020
-2675,-9031
-2698,-9022
-2719,-9025
-2734,-9025
-2752,-9025
-2768,-9025
-2782,-9025
-2802,-9025
-2821,-9025
-2843,-9025
-2863,-9025
-2881,-9025
-2904,-9025
-2931,-9025
-2948,-9025
-2967,-9025
-2982,-9025
-2997,-9025
-3021,-9025
-3057,-9025
-3080,-9025
-3102,-9025
-3117,-9025
-3133,-9025
-3150,-9025
-3178,-9025
-3203,-9025
-3217,-9025
-3231,-9025
-3249,-9025
-3265,-9025
-3285,-9025
-3300,-9025
-3319,-9025
-3336,-9025
-3350,-9025
-3370,-9025
-3385,-9025
-3411,-9025
-3433,-9025
-3449,-9025
-3464,-9025
-3478,-9025
-3498,-9025
-3518,-9025
-3532,-9025
-3552,-9025
-3567,-9025
-3585,-9025
-3604,-9025
-3633,-9025
-3654,-9025
-3676,-9025
-3697,-9025
-3718,-9025
-3737,-9025
-3757,-9025
-3773,-9025
-3786,-9025
-3806,-9025
-3821,-9025
-3835,-9025
-3853,-9025
-3880,-9025
-3902,-9025
-3920,-9025
-3938,-9025
-3952,-9025
-3966,-9025
-3986,-9025
-4007,-9025
-4027,-9025
-4047,-9025
-4061,-9025
-4082,-9025
-4106,-9025
-4134,-9025
-4148,-9025
-4164,-9025
-4177,-9025
-4194,-9025
-4207,-9025
-4220,-9025
-4232,-9025
-4248,-9025
-4269,-9025
-4288,-9025
-4308,-9025
-4324,-9025
-4352,-9025
-4374,-9025
-4388,-9025
-4411,-9025
-4427,-9025
-4444,-9025
-4463,-9025
-4478,-9025
-4499,-9025
-4521,-9025
-4541,-9025
-4559,-9025
-4572,-9025
-4602,-9025
-4624,-9025
-4640,-9025
-4653,-9025
-4670,-9025
-4684,-9025
-4702,-9025
-4720,-9025
-4733,-9025
-4748,-9025
-4766,-9025
-4780,-9025
-4803,-9025
-4822,-9025
-4837,-9025
-4860,-9025
-4883,-9025
-4906,-9025
-4920,-9025
-4933,-9025
-4956,-9025
-4973,-9025
-4993,-9025
-5013,-9025
-5030,-9025
-5062,-9025
-5085,-9025
-5104,-9025
-5126,-9025
-5140,-9025
-5156,-9025
-5172,-9025
-5189,-9025
-5205,-9025
-5225,-9025
-5245,-9025
-5263,-9025
-5280,-9025
-5310,-9025
-5323,-9025
-5372,-9025
-5401,-9025
-5421,-9025
-5435,-9025
-5450,-9025
-5467,-9025
-5489,-9025
-5513,-9025
-5533,-9025
-5554,-9025
-5584,-9025
-5605,-9025
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test14.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test14.csv
deleted file mode 100644
index 82a9b98c3..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test14.csv
+++ /dev/null
@@ -1,224 +0,0 @@
-24/05/2020 14:48:02
-40,0
-59,0
-80,0
-116,-3
-138,-99
-159,-72
-180,-172
-203,-146
-224,-203
-243,-262
-264,-315
-282,-379
-301,-438
-324,-525
-346,-674
-364,-752
-393,-814
-415,-929
-434,-948
-454,-1015
-474,-1086
-496,-1165
-515,-1315
-537,-1381
-558,-1400
-578,-1477
-597,-1553
-618,-1685
-639,-1765
-660,-1840
-680,-1856
-703,-1936
-725,-2078
-751,-2113
-794,-2297
-816,-2356
-836,-2431
-857,-2510
-886,-2660
-907,-2696
-921,-2836
-946,-2907
-967,-2987
-988,-2997
-1010,-3077
-1029,-3223
-1045,-3295
-1064,-3354
-1082,-3423
-1105,-3491
-1127,-3519
-1148,-3601
-1170,-3738
-1184,-3817
-1199,-3868
-1216,-3930
-1232,-3989
-1247,-3983
-1266,-4043
-1282,-4114
-1309,-4244
-1334,-4286
-1348,-4368
-1363,-4416
-1382,-4485
-1400,-4551
-1415,-4621
-1431,-4669
-1450,-4736
-1470,-4804
-1492,-4882
-1518,-5027
-1540,-5060
-1560,-5212
-1579,-5279
-1593,-5352
-1612,-5400
-1633,-5470
-1650,-5548
-1671,-5616
-1691,-5637
-1710,-5702
-1727,-5774
-1755,-5907
-1777,-5950
-1793,-6030
-1814,-6086
-1833,-6231
-1854,-6298
-1868,-6378
-1887,-6426
-1908,-6454
-1931,-6526
-1949,-6600
-1985,-6758
-2007,-6873
-2026,-6957
-2046,-7021
-2066,-7031
-2082,-7104
-2095,-7165
-2115,-7280
-2132,-7285
-2149,-7354
-2164,-7414
-2182,-7538
-2212,-7542
-2231,-7725
-2250,-7787
-2266,-7796
-2284,-7915
-2304,-7929
-2326,-8015
-2348,-8148
-2372,-8233
-2392,-8259
-2411,-8326
-2439,-8391
-2462,-8507
-2485,-8587
-2498,-8649
-2519,-8751
-2538,-8801
-2551,-8781
-2564,-8872
-2585,-8835
-2599,-8925
-2625,-8929
-2647,-8919
-2667,-8921
-2687,-8921
-2702,-8921
-2724,-8921
-2745,-8921
-2763,-8921
-2785,-8921
-2806,-8921
-2819,-8921
-2842,-8921
-2865,-8921
-2887,-8921
-2908,-8921
-2922,-8921
-2935,-8921
-2956,-8921
-2977,-8921
-3004,-8921
-3029,-8921
-3046,-8921
-3063,-8921
-3092,-8921
-3107,-8921
-3124,-8921
-3140,-8921
-3159,-8921
-3180,-8921
-3201,-8921
-3222,-8921
-3241,-8921
-3261,-8921
-3281,-8921
-3307,-8921
-3330,-8921
-3348,-8921
-3366,-8921
-3381,-8921
-3399,-8921
-3418,-8921
-3433,-8921
-3455,-8921
-3474,-8921
-3493,-8921
-3515,-8921
-3543,-8921
-3565,-8921
-3587,-8921
-3607,-8921
-3620,-8922
-3634,-8922
-3647,-8922
-3666,-8922
-3684,-8922
-3704,-8922
-3717,-8922
-3735,-8922
-3764,-8922
-3785,-8922
-3805,-8922
-3826,-8922
-3845,-8922
-3861,-8922
-3879,-8922
-3896,-8922
-3911,-8922
-3928,-8922
-3945,-8922
-3966,-8922
-3997,-8922
-4021,-8922
-4041,-8922
-4062,-8922
-4080,-8922
-4099,-8921
-4115,-8921
-4135,-8921
-4156,-8921
-4177,-8921
-4199,-8921
-4226,-8921
-4249,-8921
-4273,-8921
-4286,-8921
-4301,-8921
-4317,-8921
-4338,-8921
-4360,-8921
-4381,-8921
-4405,-8921
-4428,-8921
-4448,-8921
-4477,-8921
-4497,-8921
-4521,-8921
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test15.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test15.csv
deleted file mode 100644
index 7099494c8..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test15.csv
+++ /dev/null
@@ -1,181 +0,0 @@
-24/05/2020 14:48:15
-55,0
-74,0
-88,-1
-102,-5
-123,-18
-146,22
-168,-82
-191,-121
-215,-103
-238,-166
-260,-233
-281,-298
-299,-375
-322,-506
-353,-598
-375,-710
-392,-782
-417,-849
-439,-884
-461,-1026
-477,-1102
-500,-1169
-522,-1195
-545,-1340
-567,-1421
-596,-1449
-619,-1620
-637,-1636
-658,-1698
-678,-1782
-701,-1928
-726,-1951
-746,-2029
-768,-2175
-791,-2201
-813,-2277
-841,-2358
-862,-2468
-883,-2544
-906,-2682
-925,-2766
-939,-2837
-953,-2891
-968,-2943
-984,-2929
-999,-2991
-1019,-3044
-1055,-3205
-1088,-3337
-1112,-3382
-1137,-3482
-1156,-3559
-1181,-3705
-1202,-3784
-1219,-3805
-1235,-3867
-1258,-3929
-1277,-4008
-1291,-4085
-1323,-4135
-1343,-4255
-1359,-4325
-1372,-4386
-1394,-4500
-1415,-4523
-1435,-4597
-1455,-4733
-1475,-4810
-1492,-4887
-1512,-4948
-1531,-4957
-1560,-5027
-1575,-5204
-1591,-5251
-1610,-5310
-1623,-5380
-1638,-5435
-1654,-5422
-1672,-5481
-1694,-5550
-1713,-5696
-1735,-5765
-1762,-5788
-1782,-5951
-1802,-6024
-1821,-6099
-1844,-6108
-1866,-6188
-1886,-6335
-1906,-6410
-1928,-6484
-1944,-6500
-1958,-6563
-1972,-6677
-1996,-6725
-2019,-6756
-2041,-6905
-2061,-6986
-2081,-7062
-2102,-7075
-2126,-7155
-2149,-7303
-2171,-7384
-2193,-7411
-2212,-7554
-2242,-7623
-2261,-7670
-2285,-7825
-2305,-7834
-2327,-7903
-2344,-7989
-2364,-8053
-2383,-8188
-2402,-8258
-2425,-8331
-2447,-8361
-2482,-8435
-2504,-8558
-2529,-8624
-2551,-8694
-2571,-8745
-2593,-8850
-2615,-8822
-2662,-8898
-2684,-8890
-2719,-8890
-2741,-8890
-2761,-8890
-2780,-8891
-2802,-8891
-2822,-8891
-2841,-8891
-2864,-8891
-2878,-8891
-2895,-8891
-2909,-8891
-2935,-8891
-2960,-8891
-2977,-8891
-2993,-8891
-3008,-8891
-3027,-8891
-3044,-8891
-3064,-8891
-3085,-8891
-3104,-8891
-3122,-8891
-3148,-8891
-3172,-8891
-3193,-8891
-3208,-8891
-3222,-8891
-3240,-8891
-3264,-8891
-3282,-8891
-3304,-8891
-3326,-8891
-3343,-8891
-3360,-8891
-3384,-8891
-3407,-8891
-3433,-8891
-3450,-8891
-3470,-8891
-3484,-8891
-3499,-8891
-3513,-8891
-3527,-8891
-3547,-8891
-3569,-8891
-3593,-8891
-3616,-8890
-3629,-8890
-3652,-8890
-3670,-8890
-3691,-8890
-3706,-8890
-3726,-8890
-3744,-8890
-3762,-8890
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test16.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test16.csv
deleted file mode 100644
index a5743e552..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test16.csv
+++ /dev/null
@@ -1,231 +0,0 @@
-24/05/2020 14:48:26
-44,0
-61,0
-82,0
-102,-5
-123,-17
-136,25
-150,4
-180,-83
-201,-141
-218,-125
-236,-166
-258,-282
-279,-287
-301,-362
-323,-443
-342,-587
-359,-663
-381,-725
-399,-739
-421,-805
-444,-959
-474,-1007
-497,-1159
-513,-1244
-534,-1297
-548,-1371
-562,-1423
-581,-1477
-602,-1553
-622,-1625
-646,-1642
-664,-1719
-691,-1860
-711,-1891
-732,-1967
-752,-2042
-771,-2185
-790,-2261
-809,-2329
-829,-2394
-852,-2408
-886,-2563
-911,-2694
-931,-2718
-960,-2797
-982,-2969
-999,-2982
-1019,-3046
-1041,-3126
-1062,-3274
-1081,-3346
-1101,-3417
-1115,-3430
-1135,-3548
-1149,-3556
-1177,-3676
-1199,-3778
-1220,-3863
-1242,-3878
-1259,-3957
-1276,-4097
-1291,-4091
-1305,-4144
-1328,-4199
-1343,-4283
-1363,-4336
-1388,-4412
-1402,-4569
-1416,-4618
-1430,-4605
-1448,-4663
-1470,-4729
-1492,-4876
-1507,-4896
-1521,-5013
-1552,-5028
-1572,-5116
-1602,-5250
-1619,-5300
-1635,-5361
-1655,-5421
-1670,-5496
-1690,-5554
-1717,-5697
-1743,-5745
-1759,-5901
-1780,-5957
-1802,-6035
-1820,-6054
-1846,-6118
-1869,-6281
-1884,-6303
-1903,-6424
-1924,-6432
-1939,-6509
-1957,-6562
-1970,-6626
-1984,-6744
-2004,-6797
-2018,-6869
-2036,-6921
-2062,-6986
-2084,-7019
-2103,-7100
-2119,-7232
-2140,-7228
-2163,-7373
-2186,-7404
-2207,-7551
-2227,-7626
-2247,-7702
-2268,-7718
-2283,-7794
-2311,-7849
-2331,-8015
-2350,-8087
-2367,-8150
-2386,-8193
-2405,-8177
-2423,-8227
-2436,-8325
-2456,-8288
-2473,-8313
-2487,-8316
-2516,-8310
-2534,-8311
-2550,-8311
-2579,-8311
-2593,-8311
-2615,-8311
-2635,-8311
-2651,-8311
-2674,-8311
-2695,-8311
-2712,-8311
-2739,-8311
-2763,-8311
-2784,-8311
-2806,-8311
-2822,-8311
-2838,-8311
-2859,-8311
-2876,-8311
-2891,-8311
-2908,-8311
-2922,-8311
-2940,-8311
-2964,-8311
-2996,-8311
-3029,-8311
-3043,-8311
-3065,-8311
-3087,-8311
-3101,-8311
-3120,-8311
-3133,-8311
-3149,-8311
-3166,-8311
-3179,-8311
-3195,-8311
-3222,-8311
-3237,-8311
-3256,-8311
-3275,-8311
-3288,-8311
-3301,-8311
-3316,-8311
-3335,-8311
-3348,-8311
-3370,-8311
-3383,-8311
-3404,-8311
-3425,-8311
-3441,-8311
-3457,-8311
-3474,-8311
-3491,-8311
-3505,-8311
-3518,-8311
-3535,-8311
-3549,-8311
-3565,-8311
-3589,-8311
-3617,-8311
-3640,-8311
-3669,-8311
-3688,-8311
-3703,-8311
-3725,-8311
-3739,-8311
-3756,-8311
-3773,-8311
-3793,-8311
-3810,-8311
-3823,-8311
-3851,-8311
-3867,-8311
-3887,-8311
-3908,-8311
-3922,-8311
-3942,-8311
-3963,-8311
-3986,-8311
-4005,-8311
-4027,-8311
-4041,-8311
-4074,-8311
-4097,-8311
-4119,-8311
-4142,-8311
-4159,-8311
-4176,-8311
-4193,-8311
-4206,-8311
-4219,-8311
-4238,-8311
-4252,-8311
-4277,-8311
-4303,-8311
-4321,-8311
-4340,-8311
-4362,-8311
-4382,-8311
-4406,-8311
-4423,-8311
-4438,-8312
-4456,-8312
-4473,-8312
-4490,-8312
-4518,-8312
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test2.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test2.csv
deleted file mode 100644
index ba03e113f..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test2.csv
+++ /dev/null
@@ -1,271 +0,0 @@
-24/05/2020 14:16:54
-0,0
-0,8
-0,80
-0,-7
-0,-34
-0,-163
-0,-239
-0,-342
-0,-385
-0,-457
-0,-479
-0,-630
-0,-672
-0,-752
-0,-856
-0,-1017
-0,-989
-0,-1092
-0,-1160
-0,-1179
-0,-1350
-0,-1424
-0,-1433
-0,-1507
-0,-1580
-0,-1630
-0,-1732
-0,-1717
-0,-1850
-0,-1932
-0,-1995
-0,-2042
-0,-2125
-0,-2151
-0,-2230
-0,-2375
-0,-2439
-0,-2467
-0,-2618
-0,-2700
-0,-2711
-0,-2785
-0,-2906
-0,-2969
-0,-3038
-0,-3121
-0,-3265
-0,-3339
-0,-3412
-0,-3467
-0,-3481
-0,-3545
-0,-3719
-0,-3738
-0,-3802
-0,-3890
-0,-4028
-0,-4107
-0,-4120
-0,-4192
-0,-4277
-0,-4424
-0,-4489
-0,-4522
-0,-4672
-0,-4741
-0,-4795
-0,-4788
-0,-4926
-0,-4987
-0,-5060
-0,-5130
-0,-5204
-0,-5305
-0,-5386
-0,-5458
-0,-5520
-0,-5539
-0,-5617
-0,-5771
-0,-5790
-0,-5873
-0,-6011
-0,-6076
-0,-6119
-0,-6188
-0,-6259
-0,-6407
-0,-6476
-0,-6548
-0,-6611
-0,-6675
-0,-6739
-0,-6749
-0,-6925
-0,-6941
-0,-7023
-0,-7165
-0,-7227
-0,-7298
-0,-7372
-0,-7424
-0,-7498
-0,-7520
-0,-7583
-0,-7751
-0,-7815
-0,-7892
-0,-7902
-0,-7977
-0,-8029
-0,-8146
-0,-8199
-0,-8217
-0,-8340
-0,-8397
-0,-8436
-0,-8578
-0,-8650
-0,-8702
-0,-8776
-0,-8850
-0,-8872
-0,-8931
-0,-9002
-0,-9123
-0,-9194
-0,-9266
-0,-9411
-0,-9491
-0,-9498
-0,-9559
-0,-9719
-0,-9789
-0,-9858
-0,-9881
-0,-9963
-0,-10084
-0,-10233
-0,-10309
-0,-10373
-0,-10438
-0,-10500
-0,-10684
-0,-10769
-0,-10785
-0,-10897
-0,-11015
-0,-10998
-0,-11132
-0,-11206
-0,-11242
-0,-11399
-0,-11466
-0,-11531
-0,-11603
-0,-11608
-0,-11779
-0,-11860
-0,-11925
-0,-11943
-0,-12093
-0,-12163
-0,-12216
-0,-12213
-0,-12348
-0,-12430
-0,-12444
-0,-12511
-0,-12681
-0,-12702
-0,-12784
-0,-12854
-0,-12909
-0,-12980
-0,-13118
-0,-13180
-0,-13261
-0,-13322
-0,-13374
-0,-13411
-0,-13467
-0,-13543
-0,-13619
-0,-13756
-0,-13833
-0,-13848
-0,-13929
-0,-13985
-0,-14039
-0,-14162
-0,-14176
-0,-14351
-0,-14359
-0,-14473
-0,-14522
-0,-14590
-0,-14673
-0,-14741
-0,-14793
-0,-14844
-0,-14829
-0,-14888
-0,-15033
-0,-15076
-0,-15190
-0,-15202
-0,-15273
-0,-15422
-0,-15493
-0,-15572
-0,-15636
-0,-15649
-0,-15732
-0,-15888
-0,-15967
-0,-16038
-0,-16107
-0,-16258
-0,-16281
-0,-16397
-0,-16422
-0,-16501
-0,-16561
-0,-16619
-0,-16678
-0,-16829
-0,-16857
-0,-16933
-0,-16992
-0,-17106
-0,-17157
-0,-17224
-0,-17276
-0,-17349
-0,-17422
-0,-17477
-0,-17545
-0,-17659
-0,-17731
-0,-17802
-0,-17821
-0,-17904
-0,-18048
-0,-18124
-0,-18152
-0,-18230
-0,-18282
-0,-18354
-0,-18511
-0,-18532
-0,-18606
-0,-18752
-0,-18817
-0,-18805
-0,-18954
-0,-19003
-0,-19070
-0,-19096
-0,-19185
-0,-19347
-0,-19369
-0,-19444
-0,-19580
-0,-19566
-0,-19709
-0,-19780
-0,-19853
-0,-19904
-0,-19983
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test3.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test3.csv
deleted file mode 100644
index 91ae72e87..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test3.csv
+++ /dev/null
@@ -1,127 +0,0 @@
-24/05/2020 14:17:18
-0,0
-0,0
-0,51
-0,-62
-0,-97
-0,-19
-0,-15
-0,-64
-0,-15
-0,-8
-0,-16
-0,-4
-0,-13
-0,-5
-0,-17
-0,-5
-0,-16
-0,-5
-0,-16
-0,-4
-0,-17
-0,-7
-0,-15
-0,-14
-0,-7
-0,-14
-0,-6
-0,-15
-0,-10
-0,-11
-0,-11
-0,-8
-0,-11
-0,-7
-0,-13
-0,-17
-0,-16
-0,-5
-0,-17
-0,-4
-0,-16
-0,-5
-0,-17
-0,-5
-0,-17
-0,-5
-0,-18
-0,-5
-0,-17
-0,-9
-0,-13
-0,-5
-0,-16
-0,-8
-0,-13
-0,-15
-0,-10
-0,-15
-0,-5
-0,-17
-0,-5
-0,-17
-0,-6
-0,-15
-0,-6
-0,-17
-0,-6
-0,-17
-0,-5
-0,-17
-0,-9
-0,-14
-0,-11
-0,-5
-0,-18
-0,-5
-0,-16
-0,-5
-0,-11
-0,-14
-0,-5
-0,-17
-0,-5
-0,-17
-0,-5
-0,-17
-0,-13
-0,-8
-0,-12
-0,-7
-0,-18
-0,-6
-0,-17
-0,-7
-0,-14
-0,-10
-0,-12
-0,-10
-0,-9
-0,-15
-0,-5
-0,-13
-0,-10
-0,-15
-0,-8
-0,-17
-0,-6
-0,-13
-0,-11
-0,-12
-0,-11
-0,-13
-0,-10
-0,-13
-0,-5
-0,-18
-0,-5
-0,-14
-0,-11
-0,-17
-0,-5
-0,-17
-0,-6
-0,-13
-0,-13
-0,-6
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test_dryer_heater.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test_dryer_heater.cs
deleted file mode 100644
index 1977c13a6..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test_dryer_heater.cs
+++ /dev/null
@@ -1,174 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Printing;
-using Tango.Stubs;
-using Tango.PMR.Stubs;
-
-const string File_Name = @"P:\Scripts\Assemblies\Dryer\Dryer_Tset.CSV"; //3 hour
-
-public void OnExecute(StubManager stubManager)
-{
- int j;
-
- stubManager.WriteToFile(File_Name,DateTime.Now +" " );
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,3,true, 2200);
-
- for (int i=0;i<10;i++)
-
- {
- stubManager.WriteLine("--------------------loop number " + i +" ---------------------" );
-
- Blower_190();
- stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan1*/0x3E7, /*Head_Q=*/5);
- stubManager.WriteLine("Heating to 190 " );
- stubManager.AppendToFile(File_Name,"Heating to 190 " );
-
- stubManager.AppendToFile(File_Name,DateTime.Now +" " );
-
- j=0;
-
- while (j==0)
- {
- var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,6); //read air temp
-
- stubManager.WriteLine(response.TemperatureCMultBy100/100);
- stubManager.AppendToFile(File_Name," " + response.TemperatureCMultBy100/100);
- stubManager.Write("\n");
- if (response.TemperatureCMultBy100>(18900)) //18900
- j=1;
- Thread.Sleep(1000);
-
- }
-// stubManager.WriteLine("start motor " );
-
-// stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,3, true, 2200); //rotate Dryer Motor.
-// Thread.Sleep(1000*20);//
- stubManager.AppendToFile(File_Name,DateTime.Now +" " );
-
- Thread.Sleep(1000*60*2);//2 minits
-
-// stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,3,3); //stop motor
-// stubManager.WriteLine("stop motor " );
-
- Blower_0();
- stubManager.WriteLine("cooling down " );
- stubManager.AppendToFile(File_Name,"cooling down " );
- stubManager.AppendToFile(File_Name,DateTime.Now +" ");
-
- j=0;
- while (j==0)
- {
- var response1 = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,6); //read air temp
- stubManager.WriteLine(response1.TemperatureCMultBy100/100);
- stubManager.AppendToFile(File_Name, " " + (response1.TemperatureCMultBy100/100));
-stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan1*/0x3E7, /*Head_Q=*/5);
- stubManager.Write("\n");
- if (response1.TemperatureCMultBy100<6000)//
- j=1;
- Thread.Sleep(1000);
-
- }
- stubManager.AppendToFile(File_Name,DateTime.Now +" " );
-
-
- }
-
-}
-
-void Blower_190()
-
- {
-UploadProcessParametersRequest uploadProcessParametersRequest = new UploadProcessParametersRequest();
-
-ProcessParameters processParameters = new ProcessParameters();
-processParameters.DyeingSpeed = 0;
-processParameters.MinInkUptake = 0;
-processParameters.MaxInkUptake = 0;
-processParameters.FeederTension = 0;
-processParameters.PullerTension = 0;
-processParameters.WinderTension = 0;
-processParameters.MixerTemp = 0;
-processParameters.HeadZone1Temp = 0;
-processParameters.HeadZone2Temp = 0;
-processParameters.HeadZone3Temp = 0;
-processParameters.HeadZone4Temp = 0;
-processParameters.HeadZone5Temp = 0;
-processParameters.HeadZone6Temp = 0;
-processParameters.DryerAirFlow = 5;
-processParameters.DryerZone1Temp = 190;
-processParameters.DryerZone2Temp = 0;
-processParameters.DryerZone3Temp = 0;
-processParameters.DryerBufferLength = 0;
-processParameters.HeadAirFlow = 0;
-processParameters.TableIndex = 0;
-processParameters.HeadZone7Temp = 0;
-processParameters.HeadZone8Temp = 0;
-processParameters.HeadZone9Temp = 0;
-processParameters.HeadZone10Temp = 0;
-processParameters.HeadZone11Temp = 0;
-processParameters.HeadZone12Temp = 0;
-processParameters.RBlowerFlow = 0;
-processParameters.RBlowerTemp = 0;
-processParameters.LBlowerFlow = 0;
-processParameters.LBlowerTemp = 0;
-processParameters.PressureBuildUp = 0;
-
-uploadProcessParametersRequest.ProcessParameters = processParameters;
-
-
-
- var response = stubManager.Run<UploadProcessParametersResponse>(uploadProcessParametersRequest);
-}
-
-void Blower_0()
-
- {
-UploadProcessParametersRequest uploadProcessParametersRequest = new UploadProcessParametersRequest();
-
-ProcessParameters processParameters = new ProcessParameters();
-processParameters.DyeingSpeed = 0;
-processParameters.MinInkUptake = 0;
-processParameters.MaxInkUptake = 0;
-processParameters.FeederTension = 0;
-processParameters.PullerTension = 0;
-processParameters.WinderTension = 0;
-processParameters.MixerTemp = 0;
-processParameters.HeadZone1Temp = 0;
-processParameters.HeadZone2Temp = 0;
-processParameters.HeadZone3Temp = 0;
-processParameters.HeadZone4Temp = 0;
-processParameters.HeadZone5Temp = 0;
-processParameters.HeadZone6Temp = 0;
-processParameters.DryerAirFlow = 5;
-processParameters.DryerZone1Temp = 00;
-processParameters.DryerZone2Temp = 0;
-processParameters.DryerZone3Temp = 0;
-processParameters.DryerBufferLength = 0;
-processParameters.HeadAirFlow = 0;
-processParameters.TableIndex = 0;
-processParameters.HeadZone7Temp = 0;
-processParameters.HeadZone8Temp = 0;
-processParameters.HeadZone9Temp = 0;
-processParameters.HeadZone10Temp = 0;
-processParameters.HeadZone11Temp = 0;
-processParameters.HeadZone12Temp = 0;
-processParameters.RBlowerFlow = 0;
-processParameters.RBlowerTemp = 0;
-processParameters.LBlowerFlow = 0;
-processParameters.LBlowerTemp = 0;
-processParameters.PressureBuildUp = 0;
-
-uploadProcessParametersRequest.ProcessParameters = processParameters;
-
-
-
- var response = stubManager.Run<UploadProcessParametersResponse>(uploadProcessParametersRequest);
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test_dryer_heater1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test_dryer_heater1.cs
deleted file mode 100644
index 3d06c1e79..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test_dryer_heater1.cs
+++ /dev/null
@@ -1,186 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Printing;
-using Tango.Stubs;
-using Tango.PMR.Stubs;
-
-//const string File_Name = @"P:\Scripts\Assemblies\Dryer\Dryer_Tset.CSV"; //3 hour
-string File_Name;
-const string Path=@"P:\Operations\Log\Dryer\";
-public void OnExecute(StubManager stubManager)
-{
-
-
- var response8 = stubManager.ShowResponseWindow("Enter Serial number of Dryer ", "");
-
- File_Name =Path +"SN_" + response8 + "DryerHeaterTest_" + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".csv" ;
-
- //stubManager.WriteLine(response);
-// stubManager.Write("\n");
-// midtankno = int.Parse(response);
-
-
- int j;
-
- stubManager.WriteToFile(File_Name,DateTime.Now +" " );
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,3,true, 2200);
-
- for (int i=0;i<10;i++)
-
- {
- stubManager.WriteLine("--------------------loop number " + i +" ---------------------" );
-
- Blower_190();
- stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan1*/0x3E7, /*Head_Q=*/5);
- stubManager.WriteLine("Heating to 190 " );
- stubManager.AppendToFile(File_Name,"Heating to 190 " );
-
- stubManager.AppendToFile(File_Name,DateTime.Now +" " );
-
- j=0;
-
- while (j==0)
- {
- var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,6); //read air temp
-
- stubManager.WriteLine(response.TemperatureCMultBy100/100);
- stubManager.AppendToFile(File_Name," " + response.TemperatureCMultBy100/100);
- stubManager.Write("\n");
- if (response.TemperatureCMultBy100>(18900)) //18900
- j=1;
- Thread.Sleep(1000);
-
- }
-// stubManager.WriteLine("start motor " );
-
-// stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,3, true, 2200); //rotate Dryer Motor.
-// Thread.Sleep(1000*20);//
- stubManager.AppendToFile(File_Name,DateTime.Now +" " );
-
- Thread.Sleep(1000*60*2);//2 minits
-
-// stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,3,3); //stop motor
-// stubManager.WriteLine("stop motor " );
-
- Blower_0();
- stubManager.WriteLine("cooling down " );
- stubManager.AppendToFile(File_Name,"cooling down " );
- stubManager.AppendToFile(File_Name,DateTime.Now +" ");
-
- j=0;
- while (j==0)
- {
- var response1 = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,6); //read air temp
- stubManager.WriteLine(response1.TemperatureCMultBy100/100);
- stubManager.AppendToFile(File_Name, " " + (response1.TemperatureCMultBy100/100));
-stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan1*/0x3E7, /*Head_Q=*/5);
- stubManager.Write("\n");
- if (response1.TemperatureCMultBy100<6000)//
- j=1;
- Thread.Sleep(1000);
-
- }
- stubManager.AppendToFile(File_Name,DateTime.Now +" " );
-
-
- }
-
-}
-
-void Blower_190()
-
- {
-UploadProcessParametersRequest uploadProcessParametersRequest = new UploadProcessParametersRequest();
-
-ProcessParameters processParameters = new ProcessParameters();
-processParameters.DyeingSpeed = 0;
-processParameters.MinInkUptake = 0;
-processParameters.MaxInkUptake = 0;
-processParameters.FeederTension = 0;
-processParameters.PullerTension = 0;
-processParameters.WinderTension = 0;
-processParameters.MixerTemp = 0;
-processParameters.HeadZone1Temp = 0;
-processParameters.HeadZone2Temp = 0;
-processParameters.HeadZone3Temp = 0;
-processParameters.HeadZone4Temp = 0;
-processParameters.HeadZone5Temp = 0;
-processParameters.HeadZone6Temp = 0;
-processParameters.DryerAirFlow = 5;
-processParameters.DryerZone1Temp = 190;
-processParameters.DryerZone2Temp = 0;
-processParameters.DryerZone3Temp = 0;
-processParameters.DryerBufferLength = 0;
-processParameters.HeadAirFlow = 0;
-processParameters.TableIndex = 0;
-processParameters.HeadZone7Temp = 0;
-processParameters.HeadZone8Temp = 0;
-processParameters.HeadZone9Temp = 0;
-processParameters.HeadZone10Temp = 0;
-processParameters.HeadZone11Temp = 0;
-processParameters.HeadZone12Temp = 0;
-processParameters.RBlowerFlow = 0;
-processParameters.RBlowerTemp = 0;
-processParameters.LBlowerFlow = 0;
-processParameters.LBlowerTemp = 0;
-processParameters.PressureBuildUp = 0;
-
-uploadProcessParametersRequest.ProcessParameters = processParameters;
-
-
-
- var response = stubManager.Run<UploadProcessParametersResponse>(uploadProcessParametersRequest);
-}
-
-void Blower_0()
-
- {
-UploadProcessParametersRequest uploadProcessParametersRequest = new UploadProcessParametersRequest();
-
-ProcessParameters processParameters = new ProcessParameters();
-processParameters.DyeingSpeed = 0;
-processParameters.MinInkUptake = 0;
-processParameters.MaxInkUptake = 0;
-processParameters.FeederTension = 0;
-processParameters.PullerTension = 0;
-processParameters.WinderTension = 0;
-processParameters.MixerTemp = 0;
-processParameters.HeadZone1Temp = 0;
-processParameters.HeadZone2Temp = 0;
-processParameters.HeadZone3Temp = 0;
-processParameters.HeadZone4Temp = 0;
-processParameters.HeadZone5Temp = 0;
-processParameters.HeadZone6Temp = 0;
-processParameters.DryerAirFlow = 5;
-processParameters.DryerZone1Temp = 00;
-processParameters.DryerZone2Temp = 0;
-processParameters.DryerZone3Temp = 0;
-processParameters.DryerBufferLength = 0;
-processParameters.HeadAirFlow = 0;
-processParameters.TableIndex = 0;
-processParameters.HeadZone7Temp = 0;
-processParameters.HeadZone8Temp = 0;
-processParameters.HeadZone9Temp = 0;
-processParameters.HeadZone10Temp = 0;
-processParameters.HeadZone11Temp = 0;
-processParameters.HeadZone12Temp = 0;
-processParameters.RBlowerFlow = 0;
-processParameters.RBlowerTemp = 0;
-processParameters.LBlowerFlow = 0;
-processParameters.LBlowerTemp = 0;
-processParameters.PressureBuildUp = 0;
-
-uploadProcessParametersRequest.ProcessParameters = processParameters;
-
-
-
- var response = stubManager.Run<UploadProcessParametersResponse>(uploadProcessParametersRequest);
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_In_Test.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_In_Test.cs
deleted file mode 100644
index 92c50a57e..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_In_Test.cs
+++ /dev/null
@@ -1,34 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-int Delay_UP=200; //msec
-int Delay_stop=500;
-int Delay_limit=1000;
-
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf000); //mov ACTUATOR-IN down up to limit switch
- Thread.Sleep(1000);
- while (true)
- {
-
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf003); //mov ACTUATOR-IN down up
- Thread.Sleep(Delay_UP);
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf008); //stop ACTUATOR-IN
- Thread.Sleep(Delay_stop);
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf000); //mov ACTUATOR-IN down up to limit switch
- Thread.Sleep(Delay_limit);
-
- }
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_In_new set point.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_In_new set point.cs
deleted file mode 100644
index dc5d5af07..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_In_new set point.cs
+++ /dev/null
@@ -1,34 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-int Delay_UP=200; //msec
-int Delay_stop=500;
-int Delay_limit=1000;
-
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf000); //mov ACTUATOR-IN down up to limit switch
- Thread.Sleep(2000);
-// while (true)
-// {
-
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf003); //mov ACTUATOR-IN up
- Thread.Sleep(Delay_UP);
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf008); //stop ACTUATOR-IN
- Thread.Sleep(Delay_stop);
- // stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf000); //mov ACTUATOR-IN down up to limit switch
-// Thread.Sleep(Delay_limit);
-
- // }
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_test.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_test.cs
deleted file mode 100644
index 6d71a9ac3..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_test.cs
+++ /dev/null
@@ -1,32 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
- int sleep_up=4000;//2 second
- int sleep_dn=1000;//2 second
- while (true)
- {
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf000); //mov ACTUATOR-IN down
- Thread.Sleep(sleep_dn);
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf001); //mov ACTUATOR-IN up
- Thread.Sleep(sleep_up);
-
- }
- // stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf100); //mov ACTUATOR-OUTdown
- // stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf101); //mov ACTUATOR-OUT up
-
-
-
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/DyeHeadJig.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/DyeHeadJig.cs
deleted file mode 100644
index 2baedf7c2..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/DyeHeadJig.cs
+++ /dev/null
@@ -1,548 +0,0 @@
-using System;
-using System.Text;
-using System.IO;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-
-include "..\..\Defines\Tango_Defines_Basic.cs"
-include "Tango_Defines_SSR.cs"
-include "Tango_Defines_LimitSwitch.cs"
-
-
-//--------------------------------------------------------------------------------
- const Int32 I2C_ID = 2;
-
-//--------------------------------------------------------------------------------
-//--------------------------------------------------------------------------------
-//string path1=@"P:\Scripts\Assemblies\Dye head\DyeHeadLog\";
-string path1="P:\\Scripts\\Assemblies\\Dye head\\DyeHeadLog\\";
-string path2=@"C:\DyeHeadLog";
-
-string File_Name1 ;
-string Status;
-//---------------------------
-
-float [] DyeHeadTemp = new float[6] ;
-
-string [,] Units_status = new string[16,2] {
- {"Pt100_Zone_1","Not Test"},
- {"Pt100_Zone_2","Not Test"},
- {"Pt100_Zone_3","Not Test"},
- {"Pt100_Zone_4","Not Test"},
- {"Pt100_Zone_5","Not Test"},
- {"Pt100_Zone_6","Not Test"},
- {"Heater_Zone_1","Not Test"},
- {"Heater_Zone_2","Not Test"},
- {"Heater_Zone_3","Not Test"},
- {"Heater_Zone_4","Not Test"},
- {"Heater_Zone_5","Not Test"},
- {"Heater_Zone_6","Not Test"},
- {"Magnet","Not Test"},
- {"LS_DH_LID_Open","Not Test"},
- {"LS_DH_LID_Close","Not Test"},
- {"DH_LID_Motor","Not Test"},
- };
-
-
-
-//-----------------------------------------------------
-string DyeHead_Sn;
-//--------------------------------------------------------------------------------
-
-public void OnExecute(StubManager stubManager)
-{
-string path="";
- Form form1 = new Form();
-
-// Set the caption bar text of the form.
-
- form1.Text = "DyeHead Test";
- form1.FormBorderStyle = FormBorderStyle.FixedDialog;
- form1.MaximizeBox = false;
- form1.MinimizeBox = false;
- form1.StartPosition = FormStartPosition.CenterScreen;
- form1.AutoSize = true;
- form1.AutoSizeMode = AutoSizeMode.GrowAndShrink;
-// Create buttons to Run.
- Button button1 = new Button ()
- {
- Width = 100,
- Height = 100,
- };
- button1.Text = "Run";
- button1.Location = new Point (40, 100);
- form1.Controls.Add(button1);
-//-----DyeHead Serial Number -----------
-
- Label Label1 = new Label ()
- {
- Width = 150,
- Height = 20,
- Text =" DyeHead S/N"
- };
- Label1.Location = new Point (30, 10);
- form1.Controls.Add(Label1);
- TextBox TextBox1 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text =""
- };
- TextBox1.Location = new Point (40, 40);
- form1.Controls.Add(TextBox1);
- //----------LOCATION----------
-
- Label Label3 = new Label ()
- {
- Width = 150,
- Height = 20,
- Text ="LOCATION"
- };
-Label3.Location = new Point (350, 10);
- form1.Controls.Add(Label3);
-
-
-
-TextBox TextBox3 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text =""
- };
-TextBox3.Location = new Point (360, 40);
- form1.Controls.Add(TextBox3);
-
-//--------------------------------------------------------------------------------
-
- stubManager.Write("Counter is 2 \n");
-
- button1.Click += (_,__) =>
-
- {
-if (!Directory.Exists(path1))
- {
- path=path2;
- if (!Directory.Exists(path2))
- Directory.CreateDirectory(path2);
- }
-else
-path=path1;
-
-
-File_Name1=path + TextBox1.Text +"_DyeHead_" + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".log" ;
-
-
-stubManager.Write(File_Name1 +"\n");
-stubManager.WriteToFile(File_Name1,DateTime.Now +" " );
-stubManager.Write(DateTime.Now +"\n" );
-
-stubManager.AppendToFile(File_Name1,"DyeHead Test Report" );
-stubManager.Write("DyeHead Test Report\n" );
-
-stubManager.AppendToFile(File_Name1,"RTFU S/N: \t" + TextBox1.Text );
-stubManager.Write("DyeHead S/N:" + TextBox1.Text +"\n" );
-
-
-stubManager.AppendToFile(File_Name1,"Location:\t" + TextBox3.Text );
-stubManager.Write("Location:" + TextBox3.Text +"\n" );
-
-
-
-Label Label5 = new Label ()
- {
- Width = 120,
- Height =100,
- Text = ""
- };
-Label5.Location = new Point (300, 100);
-Label5.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
-
-Label5.Text="Pros";
-Label5.Font = new Font("Arial", 24,FontStyle.Bold);
-form1.Controls.Add(Label5);
-
-
-//------------------------------- start test -----------
-
- DialogResult result = MessageBox.Show("Make shure, Dyehead is not hot", "Warning",MessageBoxButtons.OKCancel);
- if(result == DialogResult.Cancel)
- {
- stubManager.AppendToFile(File_Name1,"Dyehead is too hot \tFail");
- stubManager.Write("Dyehead is too hot \tFail\n");
- return ;
- }
- Test_Magnet_Motor_LS_DyeHead();
- Test_heaters_pt100 ();
- Status=write_to_file();
-
- Label5.Text=Status;
- TextBox1.Text="";
-};
-
- form1.ShowDialog();
-
- stubManager.Write("Counter is \n");
-
-
- return;
- }
-
-//--------------------------------------------
- int Test_Magnet_Motor_LS_DyeHead()
-{
- Int32 Bit = 1;
-
- stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,23, false,0x800000+0);
- stubManager.Write("\nTesting SSR no. 13 of magnet or motor driver");
-
- DialogResult result = MessageBox.Show("Make shure, Magnet is open", "Warning",MessageBoxButtons.OKCancel);
- if(result == DialogResult.Cancel)
- {
- Units_status[12,1]="Fail";
- stubManager.Write("Magnet Not Open\n");
- return 0;
- }
- Units_status[12,1]="Pass";
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,2, true, 250);
- stubManager.Write("\n*** Open Lid Head ");
-
- Bit = 1;
- int i=0;
- while ((Bit != 0x0)&& (i<200)) //wait until Limit Switch or timeout 200*50msec=10sec
- {
- Bit = GetBit(FPGA1, F1_LS_01_Direct,7);
- Thread.Sleep(50);
- i++;
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,23,3); //stop motor
-
- DialogResult result1 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.OKCancel);
- if(result1 == DialogResult.Cancel)
- {
- Units_status[15,1]="Fail";
- Units_status[13,1]="Fail";
- stubManager.Write("LS_DH_LID_Open Not calibrate\n");
- return 0;
- }
- Units_status[13,1]="Pass";
- stubManager.Write("\n*** Close Lid Head ");
- Bit = 1;
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,2, false, 250);
- i=0;
- while ((Bit != 0x0)&& (i<200)) //wait until Limit Switch or timeout 200*50msec=10sec
- {
- Bit = GetBit(FPGA1, F1_LS_01_Direct,8);
- Thread.Sleep(50);
- i++;
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,23,3); //stop motor
-
- DialogResult result2 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.OKCancel);
- if(result2 == DialogResult.Cancel)
- {
- Units_status[14,1]="Fail";
- Units_status[15,1]="Fail";
- stubManager.Write("LS_DH_LID_Close Not calibrate\n");
- return 0;
- }
- Units_status[14,1]="Pass";
- stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,23, false,0x800000+2);
- DialogResult result3 = MessageBox.Show("Make shure, Magnet is open", "Warning",MessageBoxButtons.OKCancel);
- if(result3 == DialogResult.Cancel)
- {
- Units_status[12,1]="Fail";
- stubManager.Write("Magnet Not Open\n");
- return 0;
- }
- Units_status[12,1]="Pass";
- Units_status[15,1]="Pass";
-
- return 0;
-}
-
- //------------------------------------
-string write_to_file()
-{
- stubManager.Write("write_to_file\n");
-
-string Stemp="Pass";
- for (int i=0;i<16;i++)
- {
- stubManager.AppendToFile(File_Name1,Units_status[i,0]+"\t" + Units_status[i,1] );
- stubManager.Write(Units_status[i,0]+"\t" + Units_status[i,1]+"\n" );
-
- if ((Units_status[i,1]=="Fail")||(Units_status[i,1]=="Not Test"))
- Stemp="Fail";
- }
- return Stemp;
-}
-//------------------------------------
-int Test_heaters_pt100()
-{
-// uint utemp=0;
- uint temp=0;
- float ftemp=0;
- float ftemp1=0;
-
- stubManager.Write("\nTemp Befor heating \n");
- if (test_pt100()!=0)
- return 0;
-
-//------------Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 8
- SetBit (FPGA2, F2_CTRL, 3, 1);
- stubManager.Write("Testing SSR no. 8\tHeadZone-1\t");
- Thread.Sleep(10000);
- adc_configuration(0x40,0x10); //a2d_address 0x40 channel 3
- adc_set_for_read_ch(0x40);
- temp=adc_read_ch(0x40);
- SetBit (FPGA2, F2_CTRL, 3, 0);
- ftemp=Read_pt100(0);
- stubManager.Write("After heating " + ftemp +"c\tCurrent is "+ temp + "\n");
- ftemp = ftemp - DyeHeadTemp[0];
- if ((temp>0x860)|| (temp<0x7e0)||(ftemp<5)||(ftemp>20))
- Units_status[6,1]="Fail";
- else
- Units_status[6,1]="Pass";
-
- //Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 7
- ftemp=Read_pt100(1);
- ftemp1 = ftemp - DyeHeadTemp[1];
- if ( ftemp1>4)
- Units_status[7,1]="Fail";
- else
- {
- SetBit (FPGA2, F2_CTRL, 4, 1);
- stubManager.Write("Testing SSR no. 7\tHeadZone-2\t");
- Thread.Sleep(10000);
- adc_configuration(0x40,0x08); //a2d_address 0x40 channel 4
- adc_set_for_read_ch(0x40);
- temp=adc_read_ch(0x40);
- SetBit (FPGA2, F2_CTRL, 4, 0);
- ftemp=Read_pt100(1);
- stubManager.Write("After heating " + ftemp +"c\tCurrent is "+temp + "\n");
- ftemp = ftemp - DyeHeadTemp[1];
- if ((temp>0x660)|| (temp<0x600)||(ftemp<5)||(ftemp>20))
- Units_status[7,1]="Fail";
- else
- Units_status[7,1]="Pass";
- }
-
- //Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 6
-
- ftemp=Read_pt100(2);
- ftemp1 = ftemp - DyeHeadTemp[2];
- if ( ftemp1>4)
- Units_status[7,1]="Fail";
- else
- {
- SetBit (FPGA2, F2_CTRL, 5, 1);
- stubManager.Write("Testing SSR no. 6\tHeadZone-3\t");
- Thread.Sleep(10000);
- adc_configuration(0x40,0x04); //a2d_address 0x40 channel 5
- adc_set_for_read_ch(0x40);
- temp=adc_read_ch(0x40);
- SetBit (FPGA2, F2_CTRL, 5, 0);
- ftemp=Read_pt100(2);
- stubManager.Write("After heating " + ftemp +"c\tCurrent is "+temp +"\n");
- ftemp = ftemp - DyeHeadTemp[2];
- if ((temp>0x660)|| (temp<0x600)||(ftemp<5)||(ftemp>20))
- Units_status[8,1]="Fail";
- else
- Units_status[8,1]="Pass";
- }
-
- //Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 5
- ftemp=Read_pt100(3);
- ftemp1 = ftemp - DyeHeadTemp[3];
- if ( ftemp1>4)
- Units_status[9,1]="Fail";
- else
- {
- SetBit (FPGA2, F2_CTRL, 6, 1);
- stubManager.Write("Testing SSR no. 5\tHeadZone-4\t");
- Thread.Sleep(10000);
- adc_configuration(0x44,0x80); //a2d_address 0x44 channel 0
- adc_set_for_read_ch(0x44);
- temp=adc_read_ch(0x44);
- SetBit (FPGA2, F2_CTRL, 6, 0);
- ftemp=Read_pt100(3);
- stubManager.Write("After heating " + ftemp +"c\tCurrent is "+temp + "\n");
- ftemp = ftemp - DyeHeadTemp[3];
- if ((temp>0x1100)|| (temp<0xf90)||(ftemp<5)||(ftemp>20))
- Units_status[9,1]="Fail";
- else
- Units_status[9,1]="Pass";
- }
-
- //Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 10
- ftemp=Read_pt100(4);
- ftemp1 = ftemp - DyeHeadTemp[4];
- if ( ftemp1>4)
- Units_status[10,1]="Fail";
- else
- {
- SetBit (FPGA1, F1_gpo_01, 2, 1);
- stubManager.Write("Testing SSR no. 10\tHeadZone-5\t");
- Thread.Sleep(10000);
- adc_configuration(0x44,0x40); //a2d_address 0x44 channel 1
- adc_set_for_read_ch(0x44);
- temp=adc_read_ch(0x44);
- SetBit (FPGA1, F1_gpo_01, 2, 0);
- ftemp=Read_pt100(4);
- stubManager.Write("After heating " + ftemp +"c\tCurrent is "+temp + "\n");
- ftemp = ftemp - DyeHeadTemp[4];
- if ((temp>0xa80)|| (temp<0xa20)||(ftemp<5)||(ftemp>20))
- Units_status[10,1]="Fail";
- else
- Units_status[10,1]="Pass";
- }
-
- //Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 11
- ftemp=Read_pt100(5);
- ftemp1 = ftemp - DyeHeadTemp[5];
- if ( ftemp1>4)
- Units_status[11,1]="Fail";
- else
- {
- SetBit (FPGA3, F3_GPO_01_bus, 4, 1);
- stubManager.Write("Testing SSR no. 11\tHeadZone-6\t");
- Thread.Sleep(10000);
- adc_configuration(0x44,0x40); //a2d_address 0x44 channel 1
- adc_set_for_read_ch(0x44);
- temp=adc_read_ch(0x44);
- SetBit (FPGA3, F3_GPO_01_bus, 4, 0);
- ftemp=Read_pt100(5);
- stubManager.Write("After heating " + ftemp +"c\tCurrent is "+temp + "\n");
- ftemp = ftemp - DyeHeadTemp[5];
- if ((temp>0x660)|| (temp<0x600)||(ftemp<5)||(ftemp>20))
- Units_status[11,1]="Fail";
- else
- Units_status[11,1]="Pass";
- }
- return 0;
-}
-//------------------------------------------------
- int test_pt100()
- {
- float ftemp=0;
- int temp=0;
- int j=0;
- for (int i = 0; i < 6; i++)
- {
- DyeHeadTemp[i]=Read_pt100(i);
- ftemp=DyeHeadTemp[i];
- if ((ftemp>100)|| (ftemp<10))
- {
- Units_status[i,1]="Fail";
- }
- else
- {
- Units_status[i,1]="Pass";
- }
- stubManager.Write("Zone-"+(i+1)+ "\t" + ftemp.ToString("F2"));
- stubManager.Write("°C\n");
-
- }
- return 0;
- }
-//------------------------------------------------
-float Read_pt100(int i)
-{
- int j= i+1;
- if (i==5)
- j=11;
- var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,j); //
- float ftemp = (float)response.TemperatureCMultBy100;
- ftemp = ftemp / 100;
- return (ftemp);
-}
-//---------------------------
-int adc_configuration(uint I2C_Slave_Add,uint channel )
- {
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x00);//Byte 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(channel);//Byte 1 to Write, must be 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02 or 0x01 for different channels
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x80);//Byte 2 to Write
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
- }
-//-----------------------------------
-int adc_set_for_read_temp(uint I2C_Slave_Add)
- {
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x02);//Byte 0 to write
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
- }
-//-----------------------------------
-int adc_read_temp(uint I2C_Slave_Add)
- {
-
- StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();
- stubI2CReadBytesRequest.I2CId = I2C_ID;
- stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add;
- stubI2CReadBytesRequest.NumberOfBytesToRead = 2; // Number of bytes to read
-
- var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);
-
- for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++)
- {
- stubManager.WriteLineHex(response1.ReadBytes[i],2);
- }
-
-
- return 1;
- }
-//-----------------------------------
-int adc_set_for_read_ch(uint I2C_Slave_Add)
- {
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x01);//Byte 0 to write
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
- }
-//-----------------------------------
-uint adc_read_ch(uint I2C_Slave_Add)
- {
- StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();
- stubI2CReadBytesRequest.I2CId = I2C_ID;
- stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add;
- stubI2CReadBytesRequest.NumberOfBytesToRead = 2; // Number of bytes to read
-
- var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);
- uint temph=0;
- uint templ=0;
- uint temp=0;
- temph=response1.ReadBytes[0];
- templ=response1.ReadBytes[1];
- temp = (temph << 8) | templ;
- temp=temp & 0x0fff;
- return temp;
- }
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/DyeHeadJig1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/DyeHeadJig1.cs
deleted file mode 100644
index b3513ac55..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/DyeHeadJig1.cs
+++ /dev/null
@@ -1,575 +0,0 @@
-using System;
-using System.Text;
-using System.IO;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-
-include "..\..\Defines\Tango_Defines_Basic.cs"
-include "Tango_Defines_SSR.cs"
-include "Tango_Defines_LimitSwitch.cs"
-
-
-//--------------------------------------------------------------------------------
- const Int32 I2C_ID = 2;
-
-//--------------------------------------------------------------------------------
-//--------------------------------------------------------------------------------
-//string path1=@"P:\Scripts\Assemblies\Dye head\DyeHeadLog\";
-string path1="P:\\Scripts\\Assemblies\\Dye head\\DyeHeadLog\\";
-string path2="C:\\DyeHeadLog\\";
-
-string File_Name1 ;
-string Status;
-//---------------------------
-
-float [] DyeHeadTemp = new float[6] ;
-
-string [,] Units_status = new string[16,2] {
- {"Pt100_Zone_1","Not Test"},
- {"Pt100_Zone_2","Not Test"},
- {"Pt100_Zone_3","Not Test"},
- {"Pt100_Zone_4","Not Test"},
- {"Pt100_Zone_5","Not Test"},
- {"Pt100_Zone_6","Not Test"},
- {"Heater_Zone_1","Not Test"},
- {"Heater_Zone_2","Not Test"},
- {"Heater_Zone_3","Not Test"},
- {"Heater_Zone_4","Not Test"},
- {"Heater_Zone_5","Not Test"},
- {"Heater_Zone_6","Not Test"},
- {"Magnet ","Not Test"},
- {"LS_DH_LID_Open","Not Test"},
- {"LS_DH_LID_Close","Not Test"},
- {"DH_LID_Motor","Not Test"},
- };
-
-
-
-//-----------------------------------------------------
-string DyeHead_Sn;
-//--------------------------------------------------------------------------------
-
-public void OnExecute(StubManager stubManager)
-{
-string path="";
- Form form1 = new Form();
-
-// Set the caption bar text of the form.
-
- form1.Text = "DyeHead Test";
- form1.FormBorderStyle = FormBorderStyle.FixedDialog;
- form1.MaximizeBox = false;
- form1.MinimizeBox = false;
- form1.StartPosition = FormStartPosition.CenterScreen;
- form1.AutoSize = true;
- form1.AutoSizeMode = AutoSizeMode.GrowAndShrink;
-// Create buttons to Run.
- Button button1 = new Button ()
- {
- Width = 100,
- Height = 100,
- };
- button1.Text = "Run";
- button1.Location = new Point (40, 100);
- form1.Controls.Add(button1);
-//-----DyeHead Serial Number -----------
-
- Label Label1 = new Label ()
- {
- Width = 150,
- Height = 20,
- Text =" DyeHead S/N"
- };
- Label1.Location = new Point (30, 10);
- form1.Controls.Add(Label1);
- TextBox TextBox1 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text =""
- };
- TextBox1.Location = new Point (40, 40);
- form1.Controls.Add(TextBox1);
- //----------LOCATION----------
-
- Label Label3 = new Label ()
- {
- Width = 150,
- Height = 20,
- Text ="LOCATION"
- };
-Label3.Location = new Point (350, 10);
- form1.Controls.Add(Label3);
-
-
-
-TextBox TextBox3 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text =""
- };
-TextBox3.Location = new Point (360, 40);
- form1.Controls.Add(TextBox3);
-
-//--------------------------------------------------------------------------------
-
- stubManager.Write("Counter is 2 \n");
-
- button1.Click += (_,__) =>
-
- {
-if (!Directory.Exists(path1))
- {
- path=path2;
- if (!Directory.Exists(path2))
- Directory.CreateDirectory(path2);
- }
-else
-path=path1;
-
-
-File_Name1=path + TextBox1.Text +"_DyeHead_" + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".log" ;
-
-
-stubManager.Write(File_Name1 +"\n");
-stubManager.WriteToFile(File_Name1,DateTime.Now +" " );
-stubManager.Write(DateTime.Now +"\n" );
-
-stubManager.AppendToFile(File_Name1,"DyeHead Test Report" );
-stubManager.Write("DyeHead Test Report\n" );
-
-stubManager.AppendToFile(File_Name1,"DyeHead S/N: \t" + TextBox1.Text );
-stubManager.Write("DyeHead S/N:" + TextBox1.Text +"\n" );
-
-
-stubManager.AppendToFile(File_Name1,"Location:\t" + TextBox3.Text );
-stubManager.Write("Location:" + TextBox3.Text +"\n" );
-
-
-
-Label Label5 = new Label ()
- {
- Width = 120,
- Height =100,
- Text = ""
- };
-Label5.Location = new Point (300, 100);
-Label5.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
-
-Label5.Text="Pros";
-Label5.Font = new Font("Arial", 24,FontStyle.Bold);
-form1.Controls.Add(Label5);
-
-
-//------------------------------- start test -----------
-
- DialogResult result = MessageBox.Show("Make shure, Dyehead is not hot", "Warning",MessageBoxButtons.OKCancel);
- if(result == DialogResult.Cancel)
- {
- stubManager.AppendToFile(File_Name1,"Dyehead is too hot \tFail");
- stubManager.Write("Dyehead is too hot \tFail\n");
- return ;
- }
- Test_Magnet_Motor_LS_DyeHead();
- Test_heaters_pt100 ();
- Status=write_to_file();
-
- Label5.Text=Status;
- TextBox1.Text="";
-};
-
- form1.ShowDialog();
-
-// stubManager.Write("Counter is \n");
-
-
- return;
- }
-
-//--------------------------------------------
- int Test_Magnet_Motor_LS_DyeHead()
-{
- Int32 Bit = 1;
-
- stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,23, false,0x800000+0);
- stubManager.Write("\nTesting SSR no. 13 of magnet or motor driver");
-
- DialogResult result = MessageBox.Show("Make shure, Magnet is open", "Warning",MessageBoxButtons.OKCancel);
- if(result == DialogResult.Cancel)
- {
- Units_status[12,1]="Fail";
- stubManager.Write("Magnet Not Open\n");
- return 0;
- }
- Units_status[12,1]="Pass";
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,2, true, 250);
- stubManager.Write("\n*** Open Lid Head ");
-
- Bit = 1;
- int i=0;
- while ((Bit != 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec
- {
- Bit = GetBit(FPGA1, F1_LS_01_Direct,7);
- Thread.Sleep(50);
- i++;
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,2,3); //stop motor
-
- DialogResult result1 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.OKCancel);
- if(result1 == DialogResult.Cancel)
- {
- Units_status[15,1]="Fail";
- Units_status[13,1]="Fail";
- stubManager.Write("LS_DH_LID_Open Not calibrate\n");
- return 0;
- }
- Units_status[13,1]="Pass";
- stubManager.Write("\n*** Close Lid Head ");
- Bit = 1;
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,2, false, 250);
- i=0;
- while ((Bit != 0x0) && (i<200)) //wait until Limit Switch or timeout 200*50msec=10sec
- {
- Bit = GetBit(FPGA1, F1_LS_01_Direct,8);
- Thread.Sleep(50);
- i++;
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,2,3); //stop motor
-
- DialogResult result2 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.OKCancel);
- if(result2 == DialogResult.Cancel)
- {
- Units_status[14,1]="Fail";
- Units_status[15,1]="Fail";
- stubManager.Write("LS_DH_LID_Close Not calibrate\n");
- return 0;
- }
- Units_status[14,1]="Pass";
- stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,23, false,0x800000+2);
- DialogResult result3 = MessageBox.Show("Make shure, Magnet is close", "Warning",MessageBoxButtons.OKCancel);
- if(result3 == DialogResult.Cancel)
- {
- Units_status[12,1]="Fail";
- stubManager.Write("Magnet Not close\n");
- return 0;
- }
- Units_status[12,1]="Pass";
- Units_status[15,1]="Pass";
-
- return 0;
-}
-
- //------------------------------------
-string write_to_file()
-{
- stubManager.Write("write_to_file\n");
-
-string Stemp="Pass";
- for (int i=0;i<16;i++)
- {
- stubManager.AppendToFile(File_Name1,Units_status[i,0]+"\t" + Units_status[i,1] );
- stubManager.Write(Units_status[i,0]+"\t" + Units_status[i,1]+"\n" );
-
- if ((Units_status[i,1]=="Fail")||(Units_status[i,1]=="Not Test"))
- Stemp="Fail";
- }
- if (Stemp=="Fail")
- {
- stubManager.AppendToFile(File_Name1,"-------------Dye Head Fail ------------ )");
- stubManager.Write("-------------Dye Head Fail ------------ ");
- }
- else
- {
- stubManager.AppendToFile(File_Name1,"-------------Dye Head Pass ------------ )");
- stubManager.Write("-------------Dye Head Pass ------------ ");
- }
-
- return Stemp;
-}
-//------------------------------------
-int Test_heaters_pt100()
-{
-
-// uint utemp=0;
- uint temp=0;
- float ftemp=0;
- float ftemp1=0;
- float current=0;
-
- stubManager.Write("\nTemp Befor heating \n");
- if (test_pt100()!=0)
- return 0;
-
-//------------Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 8
- SetBit (FPGA2, F2_CTRL, 3, 1);
- stubManager.Write("Testing SSR no. 8\tHeadZone-1\t");
- Thread.Sleep(10000);
- adc_configuration(0x40,0x10); //a2d_address 0x40 channel 3
- adc_set_for_read_ch(0x40);
- temp=adc_read_ch(0x40);
- current= (float)(temp);
- current=( float) (0.001221) * current;
- SetBit (FPGA2, F2_CTRL, 3, 0);
- ftemp=Read_pt100(0);
- stubManager.Write("After heating " + ftemp +"c\tCurrent is "+ current + "\n");
- ftemp = ftemp - DyeHeadTemp[0];
-
- if ((current>1.5)|| (current<0.9)||(ftemp<5)||(ftemp>25))
- Units_status[6,1]="Fail";
- else
- Units_status[6,1]="Pass";
-
- //Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 7
- ftemp=Read_pt100(1);
- ftemp1 = ftemp - DyeHeadTemp[1];
- if ( ftemp1>4)
- Units_status[7,1]="Fail";
- else
- {
- SetBit (FPGA2, F2_CTRL, 4, 1);
- stubManager.Write("Testing SSR no. 7\tHeadZone-2\t");
- Thread.Sleep(10000);
- adc_configuration(0x40,0x08); //a2d_address 0x40 channel 4
- adc_set_for_read_ch(0x40);
- temp=adc_read_ch(0x40);
- current= (float)(temp);
- current=( float) (0.001221) * current;
- SetBit (FPGA2, F2_CTRL, 4, 0);
- ftemp=Read_pt100(1);
- stubManager.Write("After heating " + ftemp +"c\tCurrent is "+ current + "\n");
- ftemp = ftemp - DyeHeadTemp[1];
- if ((current<1.6)|| (current>2.1)||(ftemp<5)||(ftemp>25))
- Units_status[7,1]="Fail";
- else
- Units_status[7,1]="Pass";
- }
-
- //Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 6
-
- ftemp=Read_pt100(2);
- ftemp1 = ftemp - DyeHeadTemp[2];
- if ( ftemp1>4)
- Units_status[8,1]="Fail";
- else
- {
- SetBit (FPGA2, F2_CTRL, 5, 1);
- stubManager.Write("Testing SSR no. 6\tHeadZone-3\t");
- Thread.Sleep(10000);
- adc_configuration(0x40,0x04); //a2d_address 0x40 channel 5
- adc_set_for_read_ch(0x40);
- temp=adc_read_ch(0x40);
- current= (float)(temp);
- current=( float) (0.001221) * current;
- SetBit (FPGA2, F2_CTRL, 5, 0);
- ftemp=Read_pt100(2);
- stubManager.Write("After heating " + ftemp +"c\tCurrent is "+current +"\n");
- ftemp = ftemp - DyeHeadTemp[2];
- if ((current<1.6)|| (current>2.1)||(ftemp<5)||(ftemp>25))
- Units_status[8,1]="Fail";
- else
- Units_status[8,1]="Pass";
- }
-
- //Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 5
- ftemp=Read_pt100(3);
- ftemp1 = ftemp - DyeHeadTemp[3];
- if ( ftemp1>4)
- Units_status[9,1]="Fail";
- else
- {
- SetBit (FPGA2, F2_CTRL, 6, 1);
- stubManager.Write("Testing SSR no. 5\tHeadZone-4\t");
- Thread.Sleep(10000);
- adc_configuration(0x44,0x80); //a2d_address 0x44 channel 0
- adc_set_for_read_ch(0x44);
- temp=adc_read_ch(0x44);
- current= (float)(temp);
- current=( float) (0.001221) * current;
-
- SetBit (FPGA2, F2_CTRL, 6, 0);
- ftemp=Read_pt100(3);
- stubManager.Write("After heating " + ftemp +"c\tCurrent is "+current + "\n");
- ftemp = ftemp - DyeHeadTemp[3];
- if ((current<2.9)|| (current>3.4)||(ftemp<5)||(ftemp>25))
- Units_status[9,1]="Fail";
- else
- Units_status[9,1]="Pass";
- }
-
- //Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 10
- ftemp=Read_pt100(4);
- ftemp1 = ftemp - DyeHeadTemp[4];
- if ( ftemp1>4)
- Units_status[10,1]="Fail";
- else
- {
- SetBit (FPGA1, F1_gpo_01, 2, 1);
- stubManager.Write("Testing SSR no. 10\tHeadZone-5\t");
- Thread.Sleep(10000);
- adc_configuration(0x44,0x40); //a2d_address 0x44 channel 1
- adc_set_for_read_ch(0x44);
- temp=adc_read_ch(0x44);
- current= (float)(temp);
- current=( float) (0.001526) * current;
- SetBit (FPGA1, F1_gpo_01, 2, 0);
- ftemp=Read_pt100(4);
- stubManager.Write("After heating " + ftemp +"c\tCurrent is "+current + "\n");
- ftemp = ftemp - DyeHeadTemp[4];
- if ((current<2.9)|| (current>3.4)||(ftemp<5)||(ftemp>25))
- Units_status[10,1]="Fail";
- else
- Units_status[10,1]="Pass";
- }
-
- //Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 11
- ftemp=Read_pt100(5);
- ftemp1 = ftemp - DyeHeadTemp[5];
- if ( ftemp1>4)
- Units_status[11,1]="Fail";
- else
- {
- SetBit (FPGA3, F3_GPO_01_bus, 4, 1);
- stubManager.Write("Testing SSR no. 11\tHeadZone-6\t");
- Thread.Sleep(10000);
- adc_configuration(0x44,0x40); //a2d_address 0x44 channel 1
- adc_set_for_read_ch(0x44);
- temp=adc_read_ch(0x44);
- current= (float)(temp);
- current=( float) (0.001526) * current;
- SetBit (FPGA3, F3_GPO_01_bus, 4, 0);
- ftemp=Read_pt100(5);
- stubManager.Write("After heating " + ftemp +"c\tCurrent is "+current + "\n");
- ftemp = ftemp - DyeHeadTemp[5];
- if ((current<1.6)|| (current>2.1)||(ftemp<5)||(ftemp>20))
- Units_status[11,1]="Fail";
- else
- Units_status[11,1]="Pass";
- }
- return 0;
-}
-//------------------------------------------------
- int test_pt100()
- {
- float ftemp=0;
- int temp=0;
- int j=0;
- for (int i = 0; i < 6; i++)
- {
- DyeHeadTemp[i]=Read_pt100(i);
- ftemp=DyeHeadTemp[i];
- if ((ftemp>100)|| (ftemp<10))
- {
- Units_status[i,1]="Fail";
- }
- else
- {
- Units_status[i,1]="Pass";
- }
- stubManager.Write("Zone-"+(i+1)+ "\t" + ftemp.ToString("F2"));
- stubManager.Write("°C\n");
-
- }
- return 0;
- }
-//------------------------------------------------
-float Read_pt100(int i)
-{
- int j= i+1;
- if (i==5)
- j=11;
- var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,j); //
- float ftemp = (float)response.TemperatureCMultBy100;
- ftemp = ftemp / 100;
- return (ftemp);
-}
-//---------------------------
-int adc_configuration(uint I2C_Slave_Add,uint channel )
- {
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x00);//Byte 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(channel);//Byte 1 to Write, must be 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02 or 0x01 for different channels
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x80);//Byte 2 to Write
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
- }
-//-----------------------------------
-int adc_set_for_read_temp(uint I2C_Slave_Add)
- {
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x02);//Byte 0 to write
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
- }
-//-----------------------------------
-int adc_read_temp(uint I2C_Slave_Add)
- {
-
- StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();
- stubI2CReadBytesRequest.I2CId = I2C_ID;
- stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add;
- stubI2CReadBytesRequest.NumberOfBytesToRead = 2; // Number of bytes to read
-
- var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);
-
- for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++)
- {
- stubManager.WriteLineHex(response1.ReadBytes[i],2);
- }
-
-
- return 1;
- }
-//-----------------------------------
-int adc_set_for_read_ch(uint I2C_Slave_Add)
- {
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x01);//Byte 0 to write
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
- }
-//-----------------------------------
-uint adc_read_ch(uint I2C_Slave_Add)
- {
- StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();
- stubI2CReadBytesRequest.I2CId = I2C_ID;
- stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add;
- stubI2CReadBytesRequest.NumberOfBytesToRead = 2; // Number of bytes to read
-
- var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);
- uint temph=0;
- uint templ=0;
- uint temp=0;
- temph=response1.ReadBytes[0];
- templ=response1.ReadBytes[1];
- temp = (temph << 8) | templ;
- temp=temp & 0x0fff;
- return temp;
- }
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Jig/DyeHeadJig.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Jig/DyeHeadJig.cs
deleted file mode 100644
index 3e5ccf085..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Jig/DyeHeadJig.cs
+++ /dev/null
@@ -1,384 +0,0 @@
-//--------------------------------------------------------------------------------
-
-//include "Dispenser_setup_mbar1.cs"
-//include "C:\Dispenser_setup\Dispenser_setup_seal_test.cs"
-
-//--------------------------------------------------------------------------------
-//include "Dispenser_Motor_stop.cs"
-//include "Dispenser_setup_form_valve close_1.cs"
-//include "Dispenser_setup_form_valve open_1.cs"
-//include "Dispenser_Motor_run.cs"
-//include "Dispenser_Motor_Up.cs"
-//include "Dispenser_Motor_Down.cs"
-//--------------------------------------------------------------------------------
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-//--------------------------------------------------------------------------------
-const Int32 RDANCER_Motor = 21;
-const Int32 RDRIVING_Motor = 22;
-const Int32 RLOADING_Motor = 24;
-
-//--------
-
-const Int32 F1_LS_RLOADMOTOR_UP = 0x0040 ;
-const Int32 F1_LS_RLOADMOTOR_DN = 0x0080 ;
-
-
-
-
-
-
-const Int32 F1_MOTO_RLOADING_TX1 = 0x60000202;
-const Int32 F1_MOTO_RLOADING_TX0 = 0x60000200;
-const Int32 F1_MOTO_RLOADING_RX1 = 0x60000206;
-const Int32 F1_MOTO_RLOADING_RX0 = 0x60000204;
-
-
-const Int32 F1_LS_03_Direct =0x60000040;
-//--------------------------------------------------------------------------------
-string path1="M:\\RTFU\\Reports\\";
-string File_Name1 ;
-string Status;
-
-
-
-//-----------------------------------------------------
-
-//int SealTest=0;
-//int Characterization;
-string RTFU_Sn;
-//int dispenserNumber=1;
-//string Dtype="";
-//int Table=0;
-///string shortDateString;
-
-//UInt32 Type_card;
-//--------------------------------------------------------------------------------
-
-public void OnExecute(StubManager stubManager)
-{
- stubManager.Write("Counter is 1 \n");
-
-//-----------------------------------------------------------------------------------------------------------------------------------------------------
-//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0X60000522, 0X128);//0X128 EQULE 50 MSEC
-
- //-----------------------------detect card ----------------------------
-
-
-//---------------------------------------------------------------------------------------------------------------------------------------------------------
-
-
-//Create form
- Form form1 = new Form();
-
-//--------------------------------------------------------------------------------
-
-// Create buttons to use as the accept and cancel buttons.
- Button button1 = new Button ()
- {
- Width = 100,
- Height = 100,
- };
-
-//--------------------------------------------------------------------------------
-// Set the text of button
-
- button1.Text = "Run";
-
-
-//--------------------------------------------------------------------------------
-// Set the position of the button on the form.
-
- button1.Location = new Point (40, 100);
-
-
-
-
-//--------------------------------------------------------------------------------
- // Add button to the form.
-
- form1.Controls.Add(button1);
-
-
-
-//--------------------------------------------------------------------------------
-
-// Set the caption bar text of the form.
-
- form1.Text = "RTFU Test";
-
-//--------------------------------------------------------------------------------
-
- // Define the border style of the form to a dialog box.
-
- form1.FormBorderStyle = FormBorderStyle.FixedDialog;
-
- // Set the MaximizeBox to false to remove the maximize box.
-
- form1.MaximizeBox = false;
-
- // Set the MinimizeBox to false to remove the minimize box.
-
- form1.MinimizeBox = false;
-
- // Set the start position of the form to the center of the screen.
-
- form1.StartPosition = FormStartPosition.CenterScreen;
-
-
- form1.AutoSize = true;
- form1.AutoSizeMode = AutoSizeMode.GrowAndShrink;
-
-//-----RTFU Serial Number -----------
-
-Label Label1 = new Label ()
- {
- Width = 150,
- Height = 20,
- Text =" RTFU S/N"
- };
-Label1.Location = new Point (30, 10);
- form1.Controls.Add(Label1);
-
-
-TextBox TextBox1 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text =""
- };
-TextBox1.Location = new Point (40, 40);
- form1.Controls.Add(TextBox1);
-
-//-----USER NAME -----------
-
-Label Label2 = new Label ()
- {
- Width = 150,
- Height = 20,
- Text ="USER NAME"
- };
-Label2.Location = new Point (190, 10);
- form1.Controls.Add(Label2);
-
-
-TextBox TextBox2 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text =""
- };
-TextBox2.Location = new Point (200, 40);
- form1.Controls.Add(TextBox2);
-
-//----------LOCATION----------
-
- Label Label3 = new Label ()
- {
- Width = 150,
- Height = 20,
- Text ="LOCATION"
- };
-Label3.Location = new Point (350, 10);
- form1.Controls.Add(Label3);
-
-
-
-TextBox TextBox3 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text =""
- };
-TextBox3.Location = new Point (360, 40);
- form1.Controls.Add(TextBox3);
-
-//--------------------------------------------------------------------------------
-
- stubManager.Write("Counter is 2 \n");
-
- button1.Click += (_,__) =>
-
- {
-
-//File_Name1=path1 +"RTFU.log" ;
-File_Name1=path1 + TextBox1.Text +"_RTFU_" + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".log" ;
-//File_Name1=path1 + DateTime.Now+"RTFU.log" ;
-
-stubManager.Write(File_Name1 +"\n");
-stubManager.WriteToFile(File_Name1,DateTime.Now +"\n" );
-stubManager.Write(DateTime.Now +"\n" );
-
-stubManager.AppendToFile(File_Name1,"RTFU Test Report\n" );
-stubManager.Write("RTFU Test Report\n" );
-
-stubManager.AppendToFile(File_Name1,"RTFU S/N: \t" + TextBox1.Text +"\n" );
-stubManager.Write("RTFU S/N:" + TextBox1.Text +"\n" );
-
-stubManager.AppendToFile(File_Name1,"User Name:\t" + TextBox2.Text +"\n" );
-stubManager.Write("User Name:" + TextBox2.Text +"\n" );
-
-
-stubManager.AppendToFile(File_Name1,"Location:\t" + TextBox3.Text +"\n" );
-stubManager.Write("Location:" + TextBox3.Text +"\n" );
-
-
-
-
-
-
-Label Label5 = new Label ()
- {
- Width = 120,
- Height =100,
- Text = ""
- };
-Label5.Location = new Point (300, 100);
-Label5.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
-
-Label5.Text="Pros";
-Label5.Font = new Font("Arial", 24,FontStyle.Bold);
-form1.Controls.Add(Label5);
-
-Status=Test_RLOADING_RTFU ();
- Label5.Text=Status;
- TextBox1.Text="";
-};
-
- form1.ShowDialog();
-
- stubManager.Write("Counter is \n");
-
-
- return;
- }
- //------------------------------------
-string Test_RLOADING_RTFU()
-{
- int temp=1;
- int counter;
- Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x2c000000); //set kval ran to 0x2c
- Thread.Sleep(100);
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RLOADING_Motor, true,100); //move Rloading down
- Thread.Sleep(3000);
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading
- Thread.Sleep(1000);
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RLOADING_Motor,false,100); //move Rloading up
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //read LS
- if ((response.Value & F1_LS_RLOADMOTOR_UP) !=F1_LS_RLOADMOTOR_UP ) //if LS_RLOADMOTOR_UP is up then error
- {
- stubManager.AppendToFile(File_Name1,"LS_RLOADMOTOR_UP\tFail");
- stubManager.Write("LS_RLOADMOTOR_UP\tFail\n");
- return "Fail";
- }
- counter =0;
- while ( counter < 150)
- {
- counter = counter + 1;
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if LS_RLOADMOTOR_UP is up then move down
- if ((response.Value & F1_LS_RLOADMOTOR_UP) != F1_LS_RLOADMOTOR_UP )
- counter=150;
- Thread.Sleep(100);
- }
- if (counter >= 150)
- {
- stubManager.AppendToFile(File_Name1,"LS_RLOADMOTOR_UP or Motors RLOADING \tFail");
- stubManager.Write("LS_RLOADMOTOR_UP or Motors RLOADING \tFail\n");
- return "Fail";
- }
- stubManager.AppendToFile(File_Name1,"LS_RLOADMOTOR_UP\tPass");
- stubManager.Write("LS_RLOADMOTOR_UP or Motors RLOADING \tPass\n");
-//-----------------------------------------------------------------------------------------------------
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RLOADING_Motor, true,100); //move Rloading down
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //read LS
-
- if ((response.Value & F1_LS_RLOADMOTOR_DN) !=F1_LS_RLOADMOTOR_DN ) //if LS_RLOADMOTOR_DN is up then error
- {
- stubManager.AppendToFile(File_Name1,"LS_RLOADMOTOR_DN\tFail");
- stubManager.Write("LS_RLOADMOTOR_DN\tFail\n");
- return "Fail";
- }
- counter =0;
- while ( counter < 150)
- {
- counter = counter + 1;
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if LS_RLOADMOTOR_UP is up then move down
- if ((response.Value & F1_LS_RLOADMOTOR_DN) != F1_LS_RLOADMOTOR_DN )
- counter=150;
- Thread.Sleep(100);
- }
- if (counter >= 150)
- {
- stubManager.AppendToFile(File_Name1,"LS_RLOADMOTOR_DN \tFail");
- stubManager.Write("LS_RLOADMOTOR_UP RLOADING \tFail\n");
- return "Fail";
- }
- Thread.Sleep(1000);
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading
- Thread.Sleep(1000);
- Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x14000000); //set kval ran to 0x14
-
- return "Pass";;
-
-}
-//-------------------------------------------------------------
-int Test_RDRIVING_RTFU()
-{
- int temp=1;
- int counter;
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RDRIVING_Motor, true,200); //move Rdriving clockwise
-
- DialogResult result1 = MessageBox.Show("Are RDRIVING_Motor move clockwise ?","Important Question",MessageBoxButtons.YesNo);
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RDRIVING_Motor, 3); //hold Rloading
- if (result1==DialogResult.Yes)
- {
- stubManager.AppendToFile(File_Name1,"RDRIVING_RTFU\tPass");
- stubManager.Write("RDRIVING_RTFU\tPass\n");
- return 1;
- }
- else
- {
- stubManager.AppendToFile(File_Name1,"RDRIVING_RTFU\tFail");
- stubManager.Write("RDRIVING_RTFU\tFail\n");
- return 0;
- }
-}
-//--------------------------------------------------------------------------------
-
-
-//--------------------------------------------------------------------------------
-
-//--------------------------------------------------------------------------------
-
-
-//--------------------------------------------------------------------------------
-
-// Display the form as a modal dialog box.
-
-// ParaData1 shall be left justified i.e. <cmd><Byte0><Byte1><Byte2>
-int Motor_SetParam(Int32 HighAdr, Int32 LowAdr, Int32 ParaAddr, uint ParaData1)
-{
-
- Int32 Temp = 0;
- Temp = (ParaAddr << 8 ) + ( (Int32) ParaData1 >> 24);
-
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,HighAdr, (Temp & 0xffff));
- Temp = ((Int32)ParaData1 >> 8) & 0xffff;
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,LowAdr, (Temp));
- //Fpga_Read_Reg(Fpga, HighAdr+4, 1);
- //Fpga_Read_Reg(Fpga, LowAdr+4, 1);
-
- return 1;
-}
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Write Flate head eeprom.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Write Flate head eeprom.cs
deleted file mode 100644
index 0d01c7dbe..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Write Flate head eeprom.cs
+++ /dev/null
@@ -1,146 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-//----------------------
-const Int32 I2C_ID = 3; //MCU_I2C3
-const Int32 TCA9548A_address = 0xE2;
-const Int32 I2C_Slave_Add = 0xA0; // //eeprom address - 32kByte
-int Head_Mux_Channel_ID = 4; //Head MUX channel
-//----------------------
-
-const Int32 SerialNum = 0x01;
-
-
-int enable_channel(int Channel_ID)
-{
- uint Const_temp = 0x01;
-
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = TCA9548A_address;
-
- Const_temp = Const_temp << Channel_ID;
- stubI2CWriteBytesRequest.BytesTWrite.Add(Const_temp);
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
-}
-
-
-int WriteFlatEpprom(uint I2C_Slave_Add)
-{
- uint Page=0;
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write
- //--------------------------------------------------------------
-
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x33); //header
- stubI2CWriteBytesRequest.BytesTWrite.Add(0xcc);
- stubI2CWriteBytesRequest.BytesTWrite.Add(0xaa);
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x55);
-
- //stubI2CWriteBytesRequest.BytesTWrite.Add(0x04);//HEAD_TYPE_STAPLE_SPUN
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
- Thread.Sleep(100);
-
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(92);//Byte 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write
- //--------------------------------------------------------------
-
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x10); //flat
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x00);
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x00);
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x00);
-
- //stubI2CWriteBytesRequest.BytesTWrite.Add(0x04);//HEAD_TYPE_STAPLE_SPUN
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
- Thread.Sleep(100);
-
-
-
-
-
- return 1;
-}
-
-int adc_set_for_read_ch(uint I2C_Slave_Add, uint Page)
-{
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
-}
-
-int adc_read_ch(uint I2C_Slave_Add)
-{
- StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();
- stubI2CReadBytesRequest.I2CId = I2C_ID;
- stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add + 1;
- stubI2CReadBytesRequest.NumberOfBytesToRead = 10; // Number of bytes to read
-
- var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);
- uint temph=0;
-
- for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++)
- {
- temph=response1.ReadBytes[i];
- stubManager.WriteHex(temph,2);
- }
-
- return 1;
-}
-
-
-public void OnExecute(StubManager stubManager)
-{
-
- //enable_all_channel();
- enable_channel(Head_Mux_Channel_ID); // Chanel 0-7 => Disp0enser 0-7
-
- for (int i = 0; i<1; i++)
- {
-
- WriteFlatEpprom(I2C_Slave_Add);
- Thread.Sleep(10); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet )
-
- stubManager.Write("\nPage 0x00 #");
- stubManager.Write(i);
- stubManager.Write("\t- The Buffer is: ");
- adc_set_for_read_ch(I2C_Slave_Add, 0x00);
- //Thread.Sleep(1); //Sleep for 10 milli.
- adc_read_ch(I2C_Slave_Add);
-
- Thread.Sleep(1000);
-
- }
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Write SYLKO to head eeprom.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Write SYLKO to head eeprom.cs
deleted file mode 100644
index d7729ca2f..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Write SYLKO to head eeprom.cs
+++ /dev/null
@@ -1,118 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-//----------------------
-const Int32 I2C_ID = 3; //MCU_I2C3
-const Int32 TCA9548A_address = 0xE2;
-const Int32 I2C_Slave_Add = 0xA0; // //eeprom address - 32kByte
-int Head_Mux_Channel_ID = 4; //Head MUX channel
-//----------------------
-
-const Int32 SerialNum = 0x01;
-
-
-int enable_channel(int Channel_ID)
-{
- uint Const_temp = 0x01;
-
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = TCA9548A_address;
-
- Const_temp = Const_temp << Channel_ID;
- stubI2CWriteBytesRequest.BytesTWrite.Add(Const_temp);
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
-}
-
-
-int adc_write(uint I2C_Slave_Add, uint Page)
-{
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write
- //--------------------------------------------------------------
-
- stubI2CWriteBytesRequest.BytesTWrite.Add(SerialNum);//S/N
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x03);//HEAD_TYPE_SYLKO
- //stubI2CWriteBytesRequest.BytesTWrite.Add(0x04);//HEAD_TYPE_STAPLE_SPUN
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
-}
-
-int adc_set_for_read_ch(uint I2C_Slave_Add, uint Page)
-{
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
-}
-
-int adc_read_ch(uint I2C_Slave_Add)
-{
- StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();
- stubI2CReadBytesRequest.I2CId = I2C_ID;
- stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add + 1;
- stubI2CReadBytesRequest.NumberOfBytesToRead = 10; // Number of bytes to read
-
- var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);
- uint temph=0;
-
- for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++)
- {
- temph=response1.ReadBytes[i];
- stubManager.WriteHex(temph,2);
- }
-
- return 1;
-}
-
-
-public void OnExecute(StubManager stubManager)
-{
-
- //enable_all_channel();
- enable_channel(Head_Mux_Channel_ID); // Chanel 0-7 => Disp0enser 0-7
-
- for (int i = 0; i<1; i++)
- {
-
- adc_write(I2C_Slave_Add,0x00);
- Thread.Sleep(10); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet )
-
- stubManager.Write("\nPage 0x00 #");
- stubManager.Write(i);
- stubManager.Write("\t- The Buffer is: ");
- adc_set_for_read_ch(I2C_Slave_Add, 0x00);
- //Thread.Sleep(1); //Sleep for 10 milli.
- adc_read_ch(I2C_Slave_Add);
-
- Thread.Sleep(1000);
-
- }
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/magnet_motor_limit_switch1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/magnet_motor_limit_switch1.cs
deleted file mode 100644
index a5a43f137..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/magnet_motor_limit_switch1.cs
+++ /dev/null
@@ -1,75 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-include "..\..\Defines\Tango_Defines_Basic.cs"
-include "Tango_Defines_SSR.cs"
-include "Tango_Defines_LimitSwitch.cs"
-
-//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\Software\Stub_scripts\Tango_Defines_Basic.cs"
-//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\Software\Stub_scripts\Interfaces\Tango_Defines_SSR.cs"
-
-
-public void OnExecute(StubManager stubManager)
-{
-Int32 Bit = 1;
-
- //Write GPO_DRYER_SSR1_CTRL SSR/SSR no. 1
- SetBit (FPGA2, F2_CTRL, 0, 1);
- stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,23, false,0x800000+0);
-
- stubManager.Write("\nTesting SSR no. 13 of magnet or motor driver");
- Thread.Sleep(1000);
-
-var response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,2, true, 150);
-
-
- stubManager.Write("\n*** Open Lid Head ");
- Bit = 1;
-
- while (Bit != 0x0) //wait until LTFU LOADRAM Down
- {
- Bit = GetBit(FPGA1, F1_LS_01_Direct,7);
- Thread.Sleep(50);
- }
- Thread.Sleep(2000);
- stubManager.Write("\n--------1--------");
-
-
- stubManager.Write("\n*** Close Lid Head ");
- Bit = 1;
- response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,2, false, 150);
-
- while (Bit != 0x0) //wait until LTFU LOADRAM Down
- {
- Bit = GetBit(FPGA1, F1_LS_01_Direct,8);
- Thread.Sleep(50);
- }
- Thread.Sleep(100);
- stubManager.Write("\n--------2--------");
-
- response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,2, true, 0);
-
- SetBit (FPGA2, F2_CTRL, 0, 0);
-
- stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,23, false,0x800000+2);
- Thread.Sleep(1000);
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,23,3);
-
-
-// var response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,0, true, 50); motor clean
-
-//response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,1, true, 50); motor clean
-
-
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/ElectricalEnclosure/ElectricalEnclosure_Fans1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/ElectricalEnclosure/ElectricalEnclosure_Fans1.cs
index ba39cb2b0..264400e64 100644
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/ElectricalEnclosure/ElectricalEnclosure_Fans1.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/ElectricalEnclosure/ElectricalEnclosure_Fans1.cs
@@ -73,7 +73,7 @@ public void OnExecute(StubManager stubManager)
for (int i = 0; i<1000; i++)
{
- stubManager.Write("\n----------------------------------------\n");
+ stubManager.Write("----------------------------------------\n");
// Fpga_Read_Reg(FPGA1, F1_Tacho_reg0, 0); stubManager.Write("\n");
// Fpga_Read_Reg(FPGA1, F1_Tacho_reg1, 1); stubManager.Write("\n");
// Fpga_Read_Reg(FPGA1, F1_Tacho_reg2, 1); stubManager.Write("\n");
@@ -83,85 +83,37 @@ public void OnExecute(StubManager stubManager)
var RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg0, 0);
stubManager.Write("\nFan5 Speed-");
stubManager.WriteHex(RetVal.Value,4);
- if (RetVal.Value>0x440 && RetVal.Value<0x4d0)
- stubManager.Write("\t Pass");
- else
- stubManager.Write("\t Fail");
+ RetVal = Fpga_Read_Reg(FPGA1, F1_gpi_FANS, 0);
+ Temp1=RetVal.Value & 0x0001;
+ if (Temp1 !=0x0001)
+ stubManager.Write("\nFan1 Running ");
+ else
+ stubManager.Write("\nFan1 Stop");
- RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg1, 0);
- stubManager.Write("\nFan1 Speed-");
- stubManager.WriteHex(RetVal.Value,4);
- if (RetVal.Value>0x220 && RetVal.Value<0x300)
- stubManager.Write("\t Pass");
- else
- stubManager.Write("\t Fail");
-
-
-
-
-// RetVal = Fpga_Read_Reg(FPGA1, F1_gpi_FANS, 0);
-// Temp1=RetVal.Value & 0x0001;
-// if (Temp1 !=0x0001)
-// stubManager.Write("\tFan1 Running ");
-// else
-// stubManager.Write("\tFan1 Stop");
-
-
-
- RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg2, 0);
- stubManager.Write("\nFan2 Speed-");
- stubManager.WriteHex(RetVal.Value,4);
- if (RetVal.Value>0x220 && RetVal.Value<0x300)
- stubManager.Write("\t Pass");
- else
- stubManager.Write("\t Fail");
-
-
-// Temp1=RetVal.Value & 0x0002;
-// if (Temp1 !=0x0002)
-// stubManager.Write("\tFan2 Running ");
-// else
-// stubManager.Write("\tFan2 Stop");
-
-
- RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg3, 0);
- stubManager.Write("\nFan3 Speed-");
- stubManager.WriteHex(RetVal.Value,4);
- if (RetVal.Value>0x220 && RetVal.Value<0x300)
- stubManager.Write("\t Pass");
- else
- stubManager.Write("\t Fail");
-
-
-// Temp1=RetVal.Value & 0x0004;
-// if (Temp1 !=0x0004)
-// stubManager.Write("\tFan3 Running ");
-// else
-// stubManager.Write("\tFan3 Stop");
+ Temp1=RetVal.Value & 0x0002;
+ if (Temp1 !=0x0002)
+ stubManager.Write("\nFan2 Running ");
+ else
+ stubManager.Write("\nFan2 Stop");
-
-
- RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg4, 0);
- stubManager.Write("\nFan4 Speed-");
- stubManager.WriteHex(RetVal.Value,4);
- if (RetVal.Value>0x220 && RetVal.Value<0x300)
- stubManager.Write("\t Pass");
- else
- stubManager.Write("\t Fail");
+ Temp1=RetVal.Value & 0x0004;
+ if (Temp1 !=0x0004)
+ stubManager.Write("\nFan3 Running ");
+ else
+ stubManager.Write("\nFan3 Stop");
-
-// Temp1=RetVal.Value & 0x0008;
-// if (Temp1 !=0x0008)
-// stubManager.Write("\tFan4 Running ");
-// else
-// stubManager.Write("\tFan4 Stop");
+ Temp1=RetVal.Value & 0x0008;
+ if (Temp1 !=0x0008)
+ stubManager.Write("\nFan4 Running ");
+ else
+ stubManager.Write("\nFan4 Stop");
-// Fpga_Read_Reg(FPGA1, F1_Tacho_reg5, 1); stubManager.Write("\n");
-// Fpga_Read_Reg(FPGA1, F1_Tacho_reg6, 1); stubManager.Write("\n");
-// Fpga_Read_Reg(FPGA1, F1_Tacho_reg7, 1); stubManager.Write("\n");
-// Fpga_Read_Reg(FPGA2, F2_Tacho_reg0, 1); stubManager.Write("\n");
+ Fpga_Read_Reg(FPGA1, F1_Tacho_reg5, 1); stubManager.Write("\n");
+ Fpga_Read_Reg(FPGA1, F1_Tacho_reg6, 1); stubManager.Write("\n");
+ Fpga_Read_Reg(FPGA1, F1_Tacho_reg7, 1); stubManager.Write("\n");
+ Fpga_Read_Reg(FPGA2, F2_Tacho_reg0, 1); stubManager.Write("\n");
//stubManager.Write("\n\n");
Thread.Sleep(1000);
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Header/1.cs
index 4100a770c..4100a770c 100644
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/1.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Header/1.cs
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/DyeHead_SSR.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Header/DyeHead_SSR.cs
index cb01a86c4..cb01a86c4 100644
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/DyeHead_SSR.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Header/DyeHead_SSR.cs
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/DyeHead_SSR_CURRENT_SENSE.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Header/DyeHead_SSR_CURRENT_SENSE.cs
index b9793a336..b9793a336 100644
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/DyeHead_SSR_CURRENT_SENSE.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Header/DyeHead_SSR_CURRENT_SENSE.cs
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/header_LimitSwitch.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Header/header_LimitSwitch.cs
index 4454e9c63..4454e9c63 100644
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/header_LimitSwitch.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Header/header_LimitSwitch.cs
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/magnet_motor_limit_switch.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Header/magner_motor_limit_switch.cs
index 0dcf29853..0dcf29853 100644
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/magnet_motor_limit_switch.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Header/magner_motor_limit_switch.cs
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/magner_ssr.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Header/magner_ssr.cs
index 54e3f4844..54e3f4844 100644
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/magner_ssr.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Header/magner_ssr.cs
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_JIG.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_JIG.cs
deleted file mode 100644
index f961158e9..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_JIG.cs
+++ /dev/null
@@ -1,574 +0,0 @@
-using System;
-using System.Text;
-using System.IO;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-//--------------------------------------------------------------------------------
-
-//-------------------DEFINE Motors------------------
-const Int32 LDANCER_Motor = 16;
-const Int32 LDRIVING_Motor = 18;
-const Int32 LLOADING_Motor = 19;
-
-//-------------------DEFINE Motors Parameters------------------
-
-const Int32 F1_MOTO_LLOADING_TX1 = 0x60000232;
-const Int32 F1_MOTO_LLOADING_TX0 = 0x60000230;
-
-
-//-------------------DEFINE Limit Switch---------------
-const Int32 F1_LS_02_Direct =0x60000030;
-
-const Int32 F1_LS_LLOADMOTOR_UP = 0x0100 ;
-const Int32 F1_LS_LLOADMOTOR_DN = 0x0200 ;
-const Int32 F1_LS_LDANCER1_UP = 0x1000;
-const Int32 F1_LS_LDANCER1_DN = 0x2000;
-const Int32 F1_LS_LDANCER2_UP = 0x0400;
-const Int32 F1_LS_LDANCER2_DN = 0x0800;
-const Int32 F1_LS_LLOADRAM_LF = 0x0080;
-const Int32 F1_LS_LLOADRAM_RT = 0x0040;
-
-
-const Int32 F1_LDANCER1_ROTENC_MSB = 0x600001c2;
-const Int32 F1_LDANCER1_ROTENC_LSB = 0x600001c0;
-const Int32 F1_LDANCER1_ROTENC_TX = 0x600001ce;
-
-const Int32 F1_LDANCER2_ROTENC_MSB = 0x600001b2;
-const Int32 F1_LDANCER2_ROTENC_LSB = 0x600001b0;
-const Int32 F1_LDANCER2_ROTENC_TX = 0x600001be;
-
-const int UNIT_UNDER_TEST=3+1+5;
-//--------------------------------------------------------------------------------
-string path1="P:\\Scripts\\Assemblies\\LTFU\\LTFULog\\";
-string path2="C:\\LTFULog\\";
-
-string File_Name1 ;
-string Status;
-//---------------------------
-
-string [,] Units_status = new string[UNIT_UNDER_TEST,2] {
- {"LS_LLOADMOTOR_Up","Not Test"}, //0
- {"LS_LLOADMOTOR_DOWN","Not Test"}, //1
- {"LLOADING_Motor","Not Test"}, //2
- {"LDRIVING_Motor","Not Test"}, //3
- {"LS_LDANCER1_DOWN","Not Test"}, //4
- {"LS_LDANCER1_UP","Not Test"}, //5
- {"LDANCER_Motor","Not Test"}, //6
- {"LDANCER1_ROTENC","Not Test"}, //7
- {"LDANCER1_ROTENC","Not Test"}, //8
- };
-//-----------------------------------------------------
-string LTFU_Sn;
-//--------------------------------------------------------------------------------
-
-public void OnExecute(StubManager stubManager)
-{
-string path="";
- Form form1 = new Form();
- Motor_SetParam(F1_MOTO_LLOADING_TX1,F1_MOTO_LLOADING_TX0,0x0a,0x14000000); //set kval ran to 0x14,0.65A
-
-// Set the caption bar text of the form.
- form1.TopMost = true;
- form1.Text = "LTFU Test";
- form1.FormBorderStyle = FormBorderStyle.FixedDialog;
- form1.MaximizeBox = false;
- form1.MinimizeBox = false;
- form1.StartPosition = FormStartPosition.CenterScreen;
- form1.AutoSize = true;
- form1.AutoSizeMode = AutoSizeMode.GrowAndShrink;
-// Create buttons to Run.
- Button button1 = new Button ()
- {
- Width = 100,
- Height = 100,
- };
- button1.Text = "Run";
- button1.Location = new Point (40, 100);
- form1.Controls.Add(button1);
-//-----LTFU Serial Number -----------
-
- Label Label1 = new Label ()
- {
- Width = 150,
- Height = 20,
- Text =" LTFU S/N"
- };
- Label1.Location = new Point (30, 10);
- form1.Controls.Add(Label1);
- TextBox TextBox1 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text =""
- };
- TextBox1.Location = new Point (40, 40);
- form1.Controls.Add(TextBox1);
- //----------LOCATION----------
-
- Label Label3 = new Label ()
- {
- Width = 150,
- Height = 20,
- Text ="LOCATION"
- };
-Label3.Location = new Point (350, 10);
- form1.Controls.Add(Label3);
-
-
-
-TextBox TextBox3 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text =""
- };
-TextBox3.Location = new Point (360, 40);
- form1.Controls.Add(TextBox3);
-
-
-
-
- Label Label5 = new Label ()
- {
- Width = 120,
- Height =100,
- Text = ""
- };
- Label5.Location = new Point (300, 100);
- Label5.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
-
- Label5.Text="";
- Label5.Font = new Font("Arial", 24,FontStyle.Bold);
- form1.Controls.Add(Label5);
-
-
-
-
-//--------------------------------------------------------------------------------
-
- button1.Click += (_,__) =>
-
- {
-
- Label5.Text="Pros";
-
- if (!Directory.Exists(path1))
- {
- path=path2;
- if (!Directory.Exists(path2))
- Directory.CreateDirectory(path2);
- }
- else
- path=path1;
-
- File_Name1=path + TextBox1.Text +"_LTFU_" + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".log" ;
-
-
- stubManager.Write(File_Name1 +"\n");
- stubManager.WriteToFile(File_Name1,DateTime.Now +" " );
- stubManager.Write(DateTime.Now +"\n" );
-
- stubManager.AppendToFile(File_Name1,"LTFU Test Report" );
- stubManager.Write("LTFU Test Report\n" );
-
- stubManager.AppendToFile(File_Name1,"LTFU S/N: \t" + TextBox1.Text );
- stubManager.Write("LTFU S/N:" + TextBox1.Text +"\n" );
-
-
- stubManager.AppendToFile(File_Name1,"Location:\t" + TextBox3.Text );
- stubManager.Write("Location:" + TextBox3.Text +"\n" );
-
-
-
-//------------------------------- start test -----------
- Test_LLOADING_LTFU();
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LLOADING_Motor, 3); //hold LRoading high z
- Thread.Sleep(100);
- Motor_SetParam(F1_MOTO_LLOADING_TX1,F1_MOTO_LLOADING_TX0,0x0a,0x14000000); //set kval ran to 0x14,0.65A
-
- Test_LDRIVING_LTFU();
-
- Test_DANCER_LTFU();
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LDANCER_Motor, 3); //hold Lloading high z
-
- Status=write_to_file();
- stubManager.Write(Status +"\n");
-
- Label5.Text=Status;
- TextBox1.Text="";
- };
-
- form1.ShowDialog();
-
- return ;
- }
-
- //------------------------------------
-int Test_LLOADING_LTFU()
-{
- int temp=1;
- int counter;
-
- Motor_SetParam(F1_MOTO_LLOADING_TX1,F1_MOTO_LLOADING_TX0,0x0a,0x2c000000); //set kval ran to 0x2c- 1.3A
- Thread.Sleep(100);
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,LLOADING_Motor, false,200); //move Rloading down
- Thread.Sleep(3000);
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LLOADING_Motor, 3); //hold Rloading high z
- Thread.Sleep(1000);
-//------------------------------------------ check F1_LS_LLOADMOTOR_UP------------------------------------------------
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //read LS
- if ((response.Value & F1_LS_LLOADMOTOR_UP) !=F1_LS_LLOADMOTOR_UP ) //if LS_RLOADMOTOR_UP is up then error
- {
- DialogResult result = MessageBox.Show("Did LLOADIN MOTOR Move?", "Warning",MessageBoxButtons.YesNo);
- if(result == DialogResult.Yes)
- {
- Units_status[0,1]="Fail";
- stubManager.Write("LS_LLOADMOTOR_UP\tFail\n");
- return 0;
- }
- else
- {
- Units_status[2,1]="Fail";
- stubManager.Write("LLOADMOTOR\tFail\n");
- return 0;
- }
- }
-//----------------------------------------- mov LLOADING up -------------------------------------------------
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,LLOADING_Motor,true,200); //move Lloading up
- counter =0;
- while ( counter < 150)
- {
- counter = counter + 1;
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //if LS_LLOADMOTOR_UP is up then move down
- if ((response.Value & F1_LS_LLOADMOTOR_UP) != F1_LS_LLOADMOTOR_UP )
- counter=250;
-
- Thread.Sleep(100);
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LLOADING_Motor, 3); //hold Lloading high z
-
- if (counter == 150)
- {
- Units_status[0,1]="Fail";
- stubManager.Write("LS_LLOADMOTOR_UP\tFail\n");
- return 0;
- }
- DialogResult result1 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo);
- if(result1 == DialogResult.No)
- {
- Units_status[0,1]="Fail";
- stubManager.Write("LS_LLOADMOTOR_UP Not calibrate\n");
- return 0;
- }
- Units_status[0,1]="Pass";
- Units_status[2,1]="Pass";
-
-//------------------------------------------ check F1_LS_LLOADMOTOR_DN------------------------------------------------
-
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //read LS
-
- if ((response.Value & F1_LS_LLOADMOTOR_DN) !=F1_LS_LLOADMOTOR_DN ) //if LS_LLOADMOTOR_DN is up then error
- {
- Units_status[1,1]="Fail";
- stubManager.Write("LS_LLOADMOTOR_DN\tFail\n");
- return 0;
- }
-//------------------------------------------ mov LLOADING dn ------------------------------------------------
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,LLOADING_Motor, false,200); //move Lloading down
- counter =0;
- while ( counter < 150)
- {
- counter = counter + 1;
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //if LS_LLOADMOTOR_UP is up then move down
- if ((response.Value & F1_LS_LLOADMOTOR_DN) != F1_LS_LLOADMOTOR_DN )
- counter=250;
-
- Thread.Sleep(100);
- }
-
- if (counter == 150)
- {
- Units_status[1,1]="Fail";
- stubManager.Write("LS_LLOADMOTOR_DN\tFail\n");
- return 0;
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LLOADING_Motor, 3); //hold Lloading high z
-
- DialogResult result4 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo);
- if(result4 == DialogResult.No)
- {
- Units_status[1,1]="Fail";
- stubManager.Write("LS_LLOADMOTOR_DN Not calibrate\n");
- return 0;
- }
- Units_status[1,1]="Pass";
- stubManager.Write("LLOADMOTOR\tPass\n");
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,LLOADING_Motor, false,200); //move Lloading down
- Thread.Sleep(2000);
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LLOADING_Motor, 3); //hold Lloading high z
-
- return 1 ;
-
-}
-
-
-Int32 ReadEncoder(int i)
-{
- Int32 temp;
-
- if (i==0) //LDANCER1_ROTENC
- {
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F1_LDANCER1_ROTENC_TX, 0x0000); //triggers a TX transmission
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LDANCER1_ROTENC_LSB);
- var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LDANCER1_ROTENC_MSB);
-
- temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff));
-
-
- return temp;
- }
- //LDANCER2_ROTENC
-
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F1_LDANCER2_ROTENC_TX, 0x0000); //triggers a TX transmission
- var response2 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LDANCER2_ROTENC_LSB);
- var response3 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LDANCER2_ROTENC_MSB);
-
- temp = Convert.ToInt32 (((((response3.Value <<16) + response2.Value)>>10 ) & 0x3fff));
-
-
- return temp;
-}
-//--------------------------------------------------------------------------------
-int Test_DANCER_LTFU()
-{
- int counter;
- Int32 temp;
- Int32 temp1;
- Int32 temp2;
- Int32 temp3;
-
-
-//------------------------------------------ check F1_LS_LDANCER1_DN ------------------------------------------------
-
- MessageBox.Show("Make sure LDANCER Doun");
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //read LS
-
-
- if ((response.Value & F1_LS_LDANCER1_UP) !=F1_LS_LDANCER1_UP ) //if F1_LS_LDANCER1_UP is up then error
- {
- Units_status[5,1]="Fail";
- stubManager.Write("LS_LDANCER_UP\tFail\n");
- return 0;
- }
-
-//----------------------------------------- check F1_LS_LDANCER1_UP -------------------------------------------------
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,LDANCER_Motor,false,400); //move Lloading up
- counter =0;
- while ( counter < 250)
- {
- counter = counter + 1;
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //if F1_LS_LDANCER1_UP is up then move down
- if ((response.Value & F1_LS_LDANCER1_UP) != F1_LS_LDANCER1_UP )
- counter=350;
-
- Thread.Sleep(100);
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LDANCER_Motor, 3); //hold Ldancer high z
-
-
- if (counter == 250)
- {
- Units_status[5,1]="Fail";
- stubManager.Write("LS_LDANCER1_UP\tFail\n");
- return 0;
- }
-
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //read LS
- if ((response.Value & F1_LS_LDANCER1_DN) !=F1_LS_LDANCER1_DN ) //if F1_LS_LDANCER1_DN is up then error
- {
- Units_status[4,1]="Fail";
- stubManager.Write("LS_LDANCER1_DOWN\tFail\n");
- return 0;
- }
-
- DialogResult result5= MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo);
-
- if(result5== DialogResult.No)
- {
- Units_status[5,1]="Fail";
- stubManager.Write("LS_LDANCER1_UP Not calibrate\n");
- return 0;
- }
-
- Units_status[5,1]="Pass";
- stubManager.Write("LS_LDANCER1_UP\tPass\n");
-
-//----------------------------------------- mov LDANCER_Motor down and check Ldancer encoder -------------------------------------------------
- temp= ReadEncoder(0);
- temp2= ReadEncoder(1);
-
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,LDANCER_Motor,true,400); //move Rloading down
- counter =0;
- while ( counter < 250)
- {
- counter = counter + 1;
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //if LS_LDANCER1_DN is dn then move stop
- if ((response.Value & F1_LS_LDANCER1_DN) != F1_LS_LDANCER1_DN )
- counter=350;
-
- Thread.Sleep(100);
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LDANCER_Motor, 3); //hold Rloading high z
- if (counter == 250)
- {
- Units_status[4,1]="Fail";
- stubManager.Write("LS_LDANCER1_DOWN\tFail\n");
- return 0;
- }
- DialogResult result2 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo);
-
- if(result2 == DialogResult.No)
- {
- Units_status[4,1]="Fail";
- stubManager.Write("LS_LDANCER1_DN Not calibrate\n");
- return 0;
- }
-
- Units_status[4,1]="Pass";
- stubManager.Write("LS_LDANCER1_DN\tPass\n");
-
- Units_status[6,1]="Pass";
- stubManager.Write("LDANCER_Motor\tPass\n");
-
- temp1= ReadEncoder(0);
- temp3= ReadEncoder(1);
-
- stubManager.Write("temp="+temp + "\temp1="+temp1 +"\n");
-
- DialogResult result = MessageBox.Show("SSI Dancer1 led is Green(not blinking)?", "Warning",MessageBoxButtons.YesNo);
- if(result == DialogResult.No)
- {
- Units_status[7,1]="Fail";
- stubManager.Write("LDANCER1_SSI\tFail\n");
- }
- else
- {
- if (temp>temp1)
- temp1=temp1+0x4000;
- temp1=temp1-temp;
- if ((temp1> 4000) || (temp1 <200))
- {
- Units_status[7,1]="Fail";
- stubManager.Write("LDANCER1_SSI\tFail\n");
- }
- else
- {
- Units_status[7,1]="Pass";
- stubManager.Write("LDANCER1_SSI\tPass\n");
- }
- }
- stubManager.Write("temp2="+temp2 + "\temp3="+temp3 +"\n");
-
- DialogResult result3 = MessageBox.Show("SSI Dancer2 led is Green(not blinking)?", "Warning",MessageBoxButtons.YesNo);
- if(result3 == DialogResult.No)
- {
- Units_status[8,1]="Fail";
- stubManager.Write("LDANCER2_SSI\tFail\n");
- }
- else
- {
- if (temp3>temp2)
- temp2=temp2+0x4000;
- temp2=temp2-temp3;
- if ((temp1> 4000) || (temp1 <2000))
- {
- Units_status[8,1]="Fail";
- stubManager.Write("LDANCER2_SSI\tFail\n");
- }
- else
- {
- Units_status[8,1]="Pass";
- stubManager.Write("LDANCER2_SSI\tPass\n");
- }
- }
- return 1;
-}
-
-
-//-------------------------------------------------------------
-int Test_LDRIVING_LTFU()
-{
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,LDRIVING_Motor, true,200); //move Ldriving clockwise
- stubManager.Write("LDRIVING_Motor Motor rotate \n ");
-
- DialogResult result = MessageBox.Show("Are LDRIVING Motor rotate?", "Warning",MessageBoxButtons.YesNo);
- if(result == DialogResult.No)
- {
- Units_status[3,1]="Fail";
- stubManager.Write("LDRIVING Motor not rotate\n");
- }
- else
- {
- Units_status[3,1]="Pass";
- stubManager.Write("LDRIVING Motor rotate\n");
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LDRIVING_Motor,3); //stop motor
-
- return 0;
-}
-
-
-
-//--------------------------------------------------------------------------------
-int Motor_SetParam(Int32 HighAdr, Int32 LowAdr, Int32 ParaAddr, uint ParaData1)
-{
-
- Int32 Temp = 0;
- Temp = (ParaAddr << 8 ) + ( (Int32) ParaData1 >> 24);
-
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,HighAdr, (Temp & 0xffff));
- Temp = ((Int32)ParaData1 >> 8) & 0xffff;
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,LowAdr, (Temp));
-
- return 1;
-}
- //------------------------------------
-string write_to_file()
-{
- stubManager.Write("write_to_file\n");
-
-string Stemp="Pass";
- for (int i=0;i<UNIT_UNDER_TEST;i++)
- {
- stubManager.AppendToFile(File_Name1,Units_status[i,0]+"\t" + Units_status[i,1] );
- stubManager.Write(Units_status[i,0]+"\t" + Units_status[i,1]+"\n" );
-
- if ((Units_status[i,1]=="Fail")||(Units_status[i,1]=="Not Test"))
- Stemp="Fail";
- }
- if (Stemp=="Fail")
- {
- stubManager.AppendToFile(File_Name1,"-------------LTFU Fail ------------ ");
- stubManager.Write("-------------LTFU Fail ------------ ");
- }
- else
- {
- stubManager.AppendToFile(File_Name1,"-------------LTFU Pass ------------ )");
- stubManager.Write("-------------LTFU Pass ------------ ");
- }
-
- return Stemp;
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Motors_Switch.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Motors_Switch.cs
index 9955e0e5d..7578e825d 100644
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Motors_Switch.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Motors_Switch.cs
@@ -14,8 +14,6 @@ using Tango.Stubs;
include "..\..\Defines\Tango_Defines_Basic.cs"
include "Tango_Defines_Motors.cs"
-include "Tango_Defines_LimitSwitch.cs"
-
//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_Basic.cs"
//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_Motors.cs"
@@ -23,108 +21,15 @@ include "Tango_Defines_LimitSwitch.cs"
public void OnExecute(StubManager stubManager)
{
-Int32 Bit = 1;
+
stubManager.Write("\n*** LTFU Motor + limit switch Test ***");
+// stubManager.Write("\n*** Pulling motor drivers out of reset");
SetBit(FPGA1, F1_Moto_Driver_NSTBYRST1, 0, 1);
SetBit(FPGA1, F1_Moto_Driver_NSTBYRST1, 1, 1);
SetBit(FPGA1, F1_Moto_Driver_NSTBYRST1, 2, 1);
SetBit(FPGA1, F1_Moto_Driver_NSTBYRST1, 4, 1);
- stubManager.Write("\n*** Moving motor F1_MOTO_LLOADING back and for");
- Bit = 1;
-
- var response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,19,true , 500);
- while (Bit != 0x0) //wait until LTFU LOADRAM Down
- {
- Bit = GetBit(FPGA1, F1_LS_02_Direct,8);
- Thread.Sleep(10);
- }
- Thread.Sleep(100);
- stubManager.Write("\n--------1--------");
-
-
-response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,19, false, 500);
- Bit = 1;
- while (Bit != 0x0) //wait until LTFU LOADRAM Down
- {
- Bit = GetBit(FPGA1, F1_LS_02_Direct,9);
- Thread.Sleep(10);
- }
- stubManager.Write("\n--------2--------");
- response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,19, false, 0);
-
- Thread.Sleep(100);
- var response1 = stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,19, false, 5000);
- Thread.Sleep(1000);
- Motor_HighZ(FPGA1, F1_MOTO_LLOADING_TX1, F1_MOTO_LLOADING_TX0);
- stubManager.Write("\n*** Stopped motor F1_MOTO_LLOADING");
-
-
- //mov ldriving -
- stubManager.Write("\n*** Running motor F1_MOTO_LDRIVING for 4 seconds... ");
- Motor_Run(FPGA1, F1_MOTO_LDRIVING_TX1, F1_MOTO_LDRIVING_TX0, 0xffff, 0x1);
- Thread.Sleep(4000);
- Motor_HighZ(FPGA1, F1_MOTO_LDRIVING_TX1, F1_MOTO_LDRIVING_TX0);
-
-
-
-
-
-
-
-
- stubManager.Write("\n\n*** Moving motor F1_MOTO_LDANCER1 back and for ...");
-
- Bit = 1;
- response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,16,false ,500);
- while (Bit != 0x0) //wait until LTFU LOADRAM Down
- {
- Bit = GetBit(FPGA1, F1_LS_02_Direct,12);
- Thread.Sleep(10);
- }
- Thread.Sleep(100);
- stubManager.Write("\n--------1--------");
-
-
-response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,16, true, 500);
- Bit = 1;
- while (Bit != 0x0) //wait until LTFU LOADRAM Down
- {
- Bit = GetBit(FPGA1, F1_LS_02_Direct,13);
- Thread.Sleep(10);
- }
-
- Thread.Sleep(1000);
- Motor_HighZ(FPGA1, F1_MOTO_LDANCER1_TX1, F1_MOTO_LDANCER1_TX0);
-
-
-
-
-
-/*
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ stubManager.Write("\n*** F1_MOTO_LPIVOT1 is moving back and forth ");
@@ -202,7 +107,7 @@ response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,16, true
// Thread.Sleep(4000);
stubManager.Write("\n\n*** RTFU Motor Test Ended ***");
- */
+
}
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Motors_Switch1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Motors_Switch1.cs
new file mode 100644
index 000000000..9955e0e5d
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Motors_Switch1.cs
@@ -0,0 +1,208 @@
+using System;
+using System.Text;
+using System.Linq;
+using System.Drawing;
+using System.Diagnostics;
+using System.Windows.Forms;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+using Tango.PMR.Diagnostics;
+using Tango.PMR.Stubs;
+using Tango.Stubs;
+
+
+include "..\..\Defines\Tango_Defines_Basic.cs"
+include "Tango_Defines_Motors.cs"
+include "Tango_Defines_LimitSwitch.cs"
+
+//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_Basic.cs"
+//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_Motors.cs"
+
+
+
+public void OnExecute(StubManager stubManager)
+{
+Int32 Bit = 1;
+ stubManager.Write("\n*** LTFU Motor + limit switch Test ***");
+ SetBit(FPGA1, F1_Moto_Driver_NSTBYRST1, 0, 1);
+ SetBit(FPGA1, F1_Moto_Driver_NSTBYRST1, 1, 1);
+ SetBit(FPGA1, F1_Moto_Driver_NSTBYRST1, 2, 1);
+ SetBit(FPGA1, F1_Moto_Driver_NSTBYRST1, 4, 1);
+
+ stubManager.Write("\n*** Moving motor F1_MOTO_LLOADING back and for");
+ Bit = 1;
+
+ var response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,19,true , 500);
+ while (Bit != 0x0) //wait until LTFU LOADRAM Down
+ {
+ Bit = GetBit(FPGA1, F1_LS_02_Direct,8);
+ Thread.Sleep(10);
+ }
+ Thread.Sleep(100);
+ stubManager.Write("\n--------1--------");
+
+
+response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,19, false, 500);
+ Bit = 1;
+ while (Bit != 0x0) //wait until LTFU LOADRAM Down
+ {
+ Bit = GetBit(FPGA1, F1_LS_02_Direct,9);
+ Thread.Sleep(10);
+ }
+ stubManager.Write("\n--------2--------");
+ response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,19, false, 0);
+
+ Thread.Sleep(100);
+ var response1 = stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,19, false, 5000);
+ Thread.Sleep(1000);
+ Motor_HighZ(FPGA1, F1_MOTO_LLOADING_TX1, F1_MOTO_LLOADING_TX0);
+ stubManager.Write("\n*** Stopped motor F1_MOTO_LLOADING");
+
+
+ //mov ldriving -
+ stubManager.Write("\n*** Running motor F1_MOTO_LDRIVING for 4 seconds... ");
+ Motor_Run(FPGA1, F1_MOTO_LDRIVING_TX1, F1_MOTO_LDRIVING_TX0, 0xffff, 0x1);
+ Thread.Sleep(4000);
+ Motor_HighZ(FPGA1, F1_MOTO_LDRIVING_TX1, F1_MOTO_LDRIVING_TX0);
+
+
+
+
+
+
+
+
+ stubManager.Write("\n\n*** Moving motor F1_MOTO_LDANCER1 back and for ...");
+
+ Bit = 1;
+ response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,16,false ,500);
+ while (Bit != 0x0) //wait until LTFU LOADRAM Down
+ {
+ Bit = GetBit(FPGA1, F1_LS_02_Direct,12);
+ Thread.Sleep(10);
+ }
+ Thread.Sleep(100);
+ stubManager.Write("\n--------1--------");
+
+
+response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,16, true, 500);
+ Bit = 1;
+ while (Bit != 0x0) //wait until LTFU LOADRAM Down
+ {
+ Bit = GetBit(FPGA1, F1_LS_02_Direct,13);
+ Thread.Sleep(10);
+ }
+
+ Thread.Sleep(1000);
+ Motor_HighZ(FPGA1, F1_MOTO_LDANCER1_TX1, F1_MOTO_LDANCER1_TX0);
+
+
+
+
+
+/*
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ //mov LLOAD - up
+ stubManager.Write("\n*** Moving motor F1_MOTO_LLOADING back and for");
+ MotorHomingRequest motorHomingRequest = new MotorHomingRequest();
+ motorHomingRequest.MotorType = (Tango.PMR.Hardware.HardwareMotorType) 19;
+ motorHomingRequest.Speed = 500;
+ motorHomingRequest.Direction = Tango.PMR.Diagnostics.MotorDirection.Forward; //Forward
+ stubManager.Run(motorHomingRequest);
+ Thread.Sleep(6000);
+ //mov lLOAD - dn
+ motorHomingRequest.MotorType = (Tango.PMR.Hardware.HardwareMotorType) 19;
+ motorHomingRequest.Speed = 500;
+ motorHomingRequest.Direction = Tango.PMR.Diagnostics.MotorDirection.Backward; //Forward
+ stubManager.Run(motorHomingRequest);
+ Thread.Sleep(5000);
+ var response = stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,19, false, 1000);
+ Thread.Sleep(1000);
+
+
+ //mov ldriving -
+ stubManager.Write("\n*** Running motor F1_MOTO_LDRIVING for 4 seconds... ");
+ Motor_Run(FPGA1, F1_MOTO_LDRIVING_TX1, F1_MOTO_LDRIVING_TX0, 0xffff, 0x1);
+// Thread.Sleep(4000);
+ Motor_HighZ(FPGA1, F1_MOTO_LDRIVING_TX1, F1_MOTO_LDRIVING_TX0);
+
+
+ //mov Ldancer -
+ stubManager.Write("\n*** F1_MOTO_LDANCER1 is moving back and forth ");
+ motorHomingRequest.MotorType = (Tango.PMR.Hardware.HardwareMotorType) 16;
+ motorHomingRequest.Speed = 500;
+ motorHomingRequest.Direction = Tango.PMR.Diagnostics.MotorDirection.Forward; //Forward
+ stubManager.Run(motorHomingRequest);
+ Thread.Sleep(20000);
+ motorHomingRequest.MotorType = (Tango.PMR.Hardware.HardwareMotorType) 16;
+ motorHomingRequest.Speed = 500;
+ motorHomingRequest.Direction = Tango.PMR.Diagnostics.MotorDirection.Backward; //Backard
+ stubManager.Run(motorHomingRequest);
+ Thread.Sleep(20000);
+
+
+
+ //mov Lpivot -
+ stubManager.Write("\n*** F1_MOTO_LPIVOT1 is moving back and forth ");
+ motorHomingRequest.MotorType = (Tango.PMR.Hardware.HardwareMotorType) 20;
+ motorHomingRequest.Speed = 500;
+ motorHomingRequest.Direction = Tango.PMR.Diagnostics.MotorDirection.Forward; //Forward
+ stubManager.Run(motorHomingRequest);
+ Thread.Sleep(20000);
+ motorHomingRequest.MotorType = (Tango.PMR.Hardware.HardwareMotorType) 20;
+ motorHomingRequest.Speed = 500;
+ motorHomingRequest.Direction = Tango.PMR.Diagnostics.MotorDirection.Backward; //Backard
+ stubManager.Run(motorHomingRequest);
+ Thread.Sleep(20000);
+
+
+
+
+
+
+
+
+
+ stubManager.Write("\n*** F1_MOTO_RDANCER is moving back and forth ");
+ motorHomingRequest.MotorType = (Tango.PMR.Hardware.HardwareMotorType) 21;
+ motorHomingRequest.Speed = 10;
+// motorHomingRequest.Direction = Tango.PMR.Diagnostics.MotorDirection.Forward; //Forward
+// stubManager.Run(motorHomingRequest);
+// Thread.Sleep(5000);
+ motorHomingRequest.MotorType = (Tango.PMR.Hardware.HardwareMotorType) 21;
+ motorHomingRequest.Speed = 10;
+// motorHomingRequest.Direction = Tango.PMR.Diagnostics.MotorDirection.Backward; //Backard
+// stubManager.Run(motorHomingRequest);
+// Thread.Sleep(4000);
+
+ stubManager.Write("\n\n*** RTFU Motor Test Ended ***");
+ */
+
+
+}
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Right_Position.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Right_Position.cs
deleted file mode 100644
index ebd2cf414..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Right_Position.cs
+++ /dev/null
@@ -1,145 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-
-
-
-const Int32 x_ABS_POS = 0x01;
-const Int32 x_EL_POS = 0x02;
-const Int32 x_MARK = 0x03;
-const Int32 x_SPEED = 0x04;
-const Int32 x_ACC = 0x05;
-const Int32 x_DEC = 0x06;
-const Int32 x_MAX_SPEED = 0x07;
-const Int32 x_MIN_SPEED = 0x08;
-const Int32 x_FS_SPD = 0x15;
-const Int32 x_KVAL_HOLD = 0x09;
-const Int32 x_KVAL_RUN = 0x0A;
-const Int32 x_KVAL_ACC = 0x0B;
-const Int32 x_KVAL_DEC = 0x0C;
-const Int32 x_INT_SPD = 0x0D;
-const Int32 x_ST_SLP = 0x0E;
-const Int32 x_FN_SLP_ACC = 0x0F;
-const Int32 x_FN_SLP_DEC = 0x10;
-const Int32 x_K_THERM = 0x11;
-const Int32 x_ADC_OUT = 0x12;
-const Int32 x_OCD_TH = 0x13;
-const Int32 x_STALL_TH = 0x14;
-const Int32 x_STEP_MODE = 0x16;
-const Int32 x_ALARM_EN = 0x17;
-const Int32 x_CONFIG = 0x18;
-const Int32 x_STATUS = 0x19;
-//-------------------------------
-const Int32 x_GET_PARAM = 0x20;
-//-------------------------------
-const Int32 F1_LS_02_Direct = 0x60000030 ;
-const Int32 F1_LS_LSPARE2 = 0x0004; //up
-const Int32 F1_LS_LDANCER1_UP = 0x1000;
-
-
-
-
-
-
-
-
-
-
-
-
-
-public void OnExecute(StubManager stubManager)
-{
- int counter;
-
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,17, 3); //hold Ldancer high z
-
- var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,17, (x_GET_PARAM | x_ABS_POS)<<24, 0, 0);
- response.RecivedData=response.RecivedData & 0x00ffffff;
- stubManager.WriteHex(response.RecivedData,8);
- stubManager.Write("\n");
-
- var response3 = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,17, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0);
- response3.RecivedData=response3.RecivedData & 0x00007;
-
- stubManager.WriteHex(response3.RecivedData,4);
- stubManager.Write("\nNober uStep is - ");
- if (response3.RecivedData>4)
- response3.RecivedData=4;
- stubManager.WriteLine(Math.Pow(2,response3.RecivedData));
-
-
-//----------------------------------------- check F1_LS_LDANCER2_UP -------------------------------------------------
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,17,false,100); //move Lloading up
- counter =0;
- while ( counter < 800)
- {
- counter = counter + 1;
-var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //if F1_LS_LSPARE2 is up then move down
- if ((response1.Value & F1_LS_LSPARE2) != F1_LS_LSPARE2 )
- counter=900;
-
- Thread.Sleep(100);
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,17, 3); //hold Ldancer high z
-
-var response2 = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,17, (x_GET_PARAM | x_ABS_POS)<<24, 0, 0);
- response2.RecivedData=response2.RecivedData & 0x00ffffff;
- stubManager.WriteHex(response2.RecivedData,8);
- stubManager.Write("\n");
-
- stubManager.Write("Motor Puller positon is - "+ (response2.RecivedData-response.RecivedData)/(Math.Pow(2,response3.RecivedData)));
-//---------------------------------------------------------------------------------------------------------------------
-
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,16, 3); //hold Ldancer high z
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,16, (x_GET_PARAM | x_ABS_POS)<<24, 0, 0);
- response.RecivedData=response.RecivedData & 0x00ffffff;
- stubManager.WriteHex(response.RecivedData,8);
- stubManager.Write("\n");
-
- response3 = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,16, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0);
- response3.RecivedData=response3.RecivedData & 0x00007;
-
- stubManager.WriteHex(response3.RecivedData,4);
- stubManager.Write("\nNober uStep is - ");
- if (response3.RecivedData>4)
- response3.RecivedData=4;
- stubManager.WriteLine(Math.Pow(2,response3.RecivedData));
-
-
-//----------------------------------------- check F1_LS_LDANCER2_UP -------------------------------------------------
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,16,false,100); //move Lloading up
- counter =0;
- while ( counter < 800)
- {
- counter = counter + 1;
- var response8 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //if F1_LS_LSPARE2 is up then move up
- if ((response8.Value & F1_LS_LDANCER1_UP) !=F1_LS_LDANCER1_UP ) //if F1_LS_LDANCER1_UP is up then error
- counter=900;
-
- Thread.Sleep(100);
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,16, 3); //hold Ldancer high z
-
- response2 = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,16, (x_GET_PARAM | x_ABS_POS)<<24, 0, 0);
- response2.RecivedData=response2.RecivedData & 0x00ffffff;
- stubManager.WriteHex(response2.RecivedData,8);
- stubManager.Write("\n");
-
- stubManager.Write("Motor Winder positon is - "+ (response2.RecivedData-response.RecivedData)/(Math.Pow(2,response3.RecivedData)));
-
-
-
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_SSI.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_SSI.cs
index 94873f9f4..3218dbd83 100644
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_SSI.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_SSI.cs
@@ -31,64 +31,18 @@ public void OnExecute(StubManager stubManager)
for (int i = 0; i < 100; i++)
{
-
- stubManager.Write("LDANCER1 - "+ ReadEncoder(0)+ "\t\t LDANCER2 - " + ReadEncoder(1) + "\n" );
-
-
-
+
+ SSI_Read_Write(FPGA1, F1_LDANCER1_ROTENC_MSB, F1_LDANCER1_ROTENC_LSB, F1_LDANCER1_ROTENC_TX);
+ SSI_Read_Write(FPGA1, F1_LDANCER2_ROTENC_MSB, F1_LDANCER2_ROTENC_LSB, F1_LDANCER2_ROTENC_TX);
+ stubManager.Write("\n");
+ k++;
+ if ( (k & 0x8) == 0x08 ) {
+ k = 0;
+ stubManager.Write(" LDANCER1 LDANCER2 \n");
+ }
Thread.Sleep(400);
}
}
-
-
-Int32 ReadEncoder(int i)
-{
- Int32 temp;
-
- if (i==0) //LDANCER1_ROTENC
- {
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x600001ce, 0x0000); //triggers a TX transmission
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x600001c0);
- var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x600001c2);
-
- temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff));
-
-
- return temp;
- }
- //LDANCER2_ROTENC
-
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x600001be, 0x0000); //triggers a TX transmission
- var response2 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x600001b0);
- var response3 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x600001b2);
-
- temp = Convert.ToInt32 (((((response3.Value <<16) + response2.Value)>>10 ) & 0x3fff));
-
-
- return temp;
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/Test_Loading_TFU.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/Test_Loading_TFU.cs
deleted file mode 100644
index de14d455f..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/Test_Loading_TFU.cs
+++ /dev/null
@@ -1,155 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-
-
-
-//-------------------DEFINE Motors------------------
-//const Int32 LDANCER_Motor = 16;
-//const Int32 LDRIVING_Motor = 18;
-//const Int32 LLOADING_Motor = 19;
-//const Int32 LDANCER_Motor = 16;
-//const Int32 LDRIVING_Motor = 18;
-//const Int32 LLOADING_Motor = 19;
-
-const Int32 LDANCER1_Motor = 16;
-const Int32 LDANCER2_Motor = 17;
-const Int32 LDRIVING_Motor = 18;
-const Int32 LLOADING_Motor = 19;
-
-const Int32 RDANCER_Motor = 21;
-//const Int32 RDRIVING_Motor = 22;
-//const Int32 MAGNET_Driver = 23; //replace RLOADARM
-const Int32 RLOADING_Motor = 24;
-
-//-------------------DEFINE Motors Parameters------------------
-
-const Int32 F1_MOTO_LLOADING_TX1 = 0x60000232;
-const Int32 F1_MOTO_LLOADING_TX0 = 0x60000230;
-const Int32 F1_MOTO_RLOADING_TX1 = 0x60000202;
-const Int32 F1_MOTO_RLOADING_TX0 = 0x60000200;
-
-
-//-------------------DEFINE Limit Switch---------------
-const Int32 F1_LS_02_Direct =0x60000030;
-const Int32 F1_LS_03_Direct =0x60000040;
-const Int32 F1_LS_RLOADMOTOR_UP = 0x0040 ;
-const Int32 F1_LS_RLOADMOTOR_DN = 0x0080 ;
-
-const Int32 F1_LS_LLOADMOTOR_UP = 0x0100 ;
-const Int32 F1_LS_LLOADMOTOR_DN = 0x0200 ;
-const Int32 F1_LS_LDANCER1_UP = 0x1000;
-const Int32 F1_LS_LDANCER1_DN = 0x2000;
-const Int32 F1_LS_LDANCER2_UP = 0x0400;
-const Int32 F1_LS_LDANCER2_DN = 0x0800;
-const Int32 F1_LS_LLOADRAM_LF = 0x0080;
-const Int32 F1_LS_LLOADRAM_RT = 0x0040;
-const Int32 F1_LS_LSPARE2 = 0x0004; //up
-//const Int32 F1_LS_LLOADMOTOR_UP = 0x0100 ;
-const Int32 F1_LS_RDANCER_DN = 0x0200;
-const Int32 F1_LS_RLOADRAM_DN = 0x0020;
-const Int32 F1_LS_LSPARE1 = 0x0008; //dn
-
-//include "..\..\Defines\Tango_Defines_Basic.cs"
-//include "Tango_Defines_LimitSwitch.cs"
-//include "Tango_Defines_Motors.cs"
-//include "Tango_Defines_SSI.cs"
-//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_Basic.cs"
-//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_SSI.cs"
-
-
-void OnExecute(StubManager stubManager)
-{
- for (int i=0;i<1;i++)
- {
-
- Move_Motor(LDANCER1_Motor,false,F1_LS_02_Direct,F1_LS_LDANCER1_UP,450);
-
- Move_Motor(LDANCER2_Motor,false,F1_LS_02_Direct,F1_LS_LSPARE2,450);
-
- Motor_SetParam(F1_MOTO_LLOADING_TX1,F1_MOTO_LLOADING_TX0,0x0a,0x0a000000); //set kval ran to 0x2c- 0.9A
- Thread.Sleep(200);
- Move_Motor(LLOADING_Motor,true,F1_LS_02_Direct,F1_LS_LLOADMOTOR_UP,300);
- Motor_SetParam(F1_MOTO_LLOADING_TX1,F1_MOTO_LLOADING_TX0,0x0a,0x07000000); //set kval ran to 0x2c- 0.6A
- Thread.Sleep(200);
-
- Move_Motor(RDANCER_Motor,true,F1_LS_03_Direct,F1_LS_RLOADRAM_DN,10);
-
- Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x0a000000); //set kval ran to 0x14,0.65A
- Thread.Sleep(200);
- Move_Motor(RLOADING_Motor,false,F1_LS_03_Direct,F1_LS_RLOADMOTOR_UP,200);
- Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x07000000); //set kval ran to 0x14,0.65A
- Thread.Sleep(200);
-
-
-
- Thread.Sleep(2000);
-
- Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x0a000000); //set kval ran to 0x14,0.65A
- Thread.Sleep(200);
- Move_Motor(RLOADING_Motor,true,F1_LS_03_Direct,F1_LS_RLOADMOTOR_DN,200);
- Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x07000000); //set kval ran to 0x14,0.65A
- Thread.Sleep(200);
-
- Move_Motor(RDANCER_Motor,false,F1_LS_03_Direct,F1_LS_RDANCER_DN,10);
-
- Motor_SetParam(F1_MOTO_LLOADING_TX1,F1_MOTO_LLOADING_TX0,0x0a,0x0a000000); //set kval ran to 0x2c- 0.9A
- Thread.Sleep(200);
- Move_Motor(LLOADING_Motor,false,F1_LS_02_Direct,F1_LS_LLOADMOTOR_DN,300);
- Motor_SetParam(F1_MOTO_LLOADING_TX1,F1_MOTO_LLOADING_TX0,0x0a,0x0a000000); //set kval ran to 0x2c- 0.9A
- Thread.Sleep(200);
-
- Move_Motor(LDANCER2_Motor,true,F1_LS_02_Direct,F1_LS_LSPARE1,450);
-
- Move_Motor(LDANCER1_Motor,true,F1_LS_02_Direct,F1_LS_LDANCER1_DN,450);
-
- Thread.Sleep(2000);
- }
-
-
-
-}
-
- void Move_Motor(UInt32 MotorID, bool Direction, UInt32 Register , UInt32 Bits, Double speed)
-{
-int counter ;
-
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,MotorID,Direction,speed); //move Lloading up
- counter =0;
- while ( counter < 1500)
- {
- counter = counter + 1;
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,Register); //if LS_LLOADMOTOR_UP is up then move down
- if ((response.Value & Bits) != Bits )
- counter=1650;
-
- Thread.Sleep(20);
-
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,MotorID, 1); //hold motor
-
-
-}
-
- int Motor_SetParam(Int32 HighAdr, Int32 LowAdr, Int32 ParaAddr, uint ParaData1)
-{
-
- Int32 Temp = 0;
- Temp = (ParaAddr << 8 ) + ( (Int32) ParaData1 >> 24);
-
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,HighAdr, (Temp & 0xffff));
- Temp = ((Int32)ParaData1 >> 8) & 0xffff;
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,LowAdr, (Temp));
-
- return 1;
-}
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_motor_test.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/test.cs
index bd92ea498..397c6fbd4 100644
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_motor_test.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/test.cs
@@ -10,20 +10,16 @@ using System.Collections.Generic;
using Tango.PMR.Stubs;
using Tango.Stubs;
+
+include "..\..\Defines\Tango_Defines_Basic.cs"
+include "Tango_Defines_LimitSwitch.cs"
+
public void OnExecute(StubManager stubManager)
{
-
-
-stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,3,true, 2200);
-
-
-
-
-
-
-
-
-
-
+ Int32 Bit = 1;
+ //Write GPO_DRYER_SSR1_CTRL SSR/SSR no. 1
+ SetBit (FPGA2, F2_CTRL, 0, 1);
+ stubManager.Write("\nTesting SSR no. 13 of magnet");
+ Thread.Sleep(4000);
} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Calibrate_Midtank_pressure_sensors_old.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Calibrate_Midtank_pressure_sensors_old.cs
deleted file mode 100644
index 7c0243c49..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Calibrate_Midtank_pressure_sensors_old.cs
+++ /dev/null
@@ -1,347 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.PMR.EmbeddedParameters;
-using Tango.Stubs;
-
-//----------------------
-const double MIN_SLOP=0.7;
-const double MAX_SLOP=1.4;
-const double ERROR_SLOP=-1;
-const double MIN_50cc_on_volt=2.3;
-const double MAX_50cc_on_volt=3.2;
-const double ERROR_50cc_on_volt=-1;
-
-
-
-const Int32 F3_VALVE_OUT = 0x600008E2 ;
-string Machine_SN ;
-private const string FILE_PATH = "P:\\Operations\\Log\\Midtanlk\\";
-string File_name;
-double [,] voltage_array = new double[9,9];
-string [] Parameter = new string[5] {"\t","Empty [V]","100cc [V]","800cc [V]"," b [L/V] "};
-
-//----------------------
-const Int32 I2C_ID = 2;
-//const Int32 I2C_Slave_Add = 0x46; //must be 0x40, 0x44 or 0x46
-//----------------------
-
-
-
-
-
-public void OnExecute(StubManager stubManager)
-{
-
-
- voltage_array[1,0]=1;
- voltage_array[2,0]=2;
- voltage_array[3,0]=3;
- voltage_array[4,0]=4;
- voltage_array[5,0]=5;
- voltage_array[6,0]=6;
- voltage_array[7,0]=7;
- voltage_array[8,0]=8;
-
- var response = stubManager.ShowResponseWindow("Enter Machine S/N: ", "");
- stubManager.Write("\n");
- Machine_SN = response;
- stubManager.Write(Machine_SN);
- File_name= FILE_PATH +Machine_SN + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".LOG";
- stubManager.Write(File_name);
- stubManager.WriteToFile(File_name,"Machine S/N:" + Machine_SN);
-
- string box_msg = "Make Sure all Midatnk empty";
- // string box_title = "Midatnk empty";
-// MessageBox.Show(box_msg, box_title);
- MessageBox.Show(box_msg);
-
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_VALVE_OUT, 0x000f); // open all valve air of midtank and close all ink of midtank
- Thread.Sleep(500);
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_VALVE_OUT, 0x00ff); // open all valve air of midtank and close all ink of midtank
- Thread.Sleep(500);
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_VALVE_OUT, 0x0fff); // open all valve air of midtank and close all ink of midtank
- Thread.Sleep(500);
- stubManager.Run<StubFpgaWriteRegResponse>("stubFpgaWriteRegRequest" ,F3_VALVE_OUT, 0xffff); // open all valve air and ink of midtank
-
- Thread.Sleep(2500);
-
- Thread.Sleep(1000);
-
- read_pressure_sensor(1);
-
- box_msg ="Insert 100cc of appropriate ink/lube to each midtank\n\t1.black ink\n\t2. Magenta ink\n\t3. Transparent ink\n\t4. Cleaner\n\t5. Cyan ink\n\t6. Yellow ink\n\t7. Spot color\n\t8. Lubricant/n";
- MessageBox.Show(box_msg);
-
- read_pressure_sensor(2);
-
- // voltage_array[3,2]=2.5;
-
- box_msg = "Add another 700cc for ink and TI \nFor Lubbricant add 500cc only.";
- MessageBox.Show(box_msg);
- read_pressure_sensor(3);
- stubManager.Run<StubFpgaWriteRegResponse>("stubFpgaWriteRegRequest" ,F3_VALVE_OUT, 0x0000); // close all valve air and ink of midtank
- // voltage_array[3,3]=4.5;
-
- calc_slop();
- print_table();
-
- insert_slop_t_eeprom();
- box_msg ="Turn Power Off and On to finish the calibration.";
- MessageBox.Show(box_msg);
-
- }
-
-int calc_slop()
- {
- stubManager.Write("\n ");
-
- double delta;
- for (uint i=1;i<9;i++)
- {
- delta=voltage_array[i,3]-voltage_array[i,2];
-
- stubManager.Write("\nMidtank No:"+i +"="+delta);
- if (i==8)
- delta=0.5/delta; //0.5 litter on lubricant
- else
- delta=0.7/delta; //0.7 litter
-
- if ((delta<MIN_SLOP) || (delta >MAX_SLOP))
- {
- voltage_array[i,4]=ERROR_SLOP;
- // stubManager.Write("123");
- }
- else if ((voltage_array[i,2]<MIN_50cc_on_volt) || (voltage_array[i,2]>MAX_50cc_on_volt ))
- voltage_array[i,4]=ERROR_SLOP;
- else
- voltage_array[i,4]=delta;
- }
- return 1;
- }
-
-
- int insert_slop_t_eeprom()
-{
- stubManager.Write("\n ");
-
- MidTankDataSetupRequest midTankDataSetupRequest = new MidTankDataSetupRequest();
-
-
- for (uint i=1;i<9;i++)
- {
- if (voltage_array[i,4]!= ERROR_SLOP)
- {
- MidTankData midTankData = new MidTankData();
- midTankData.MidTankId = i-1;
- midTankData.InitialOffsetA = voltage_array[i,2];
- midTankData.SlopeB = voltage_array[i,4];
-
- stubManager.Write("\nMidtank No:" + i+ "=\tA="+voltage_array[i,2]+"\tSlop="+voltage_array[i,4]);
-
-
- midTankDataSetupRequest.MidTankInfo.Add(midTankData);
-
- }
-var response = stubManager.Run<MidTankDataSetupResponse>(midTankDataSetupRequest);
-
-
-
- }
-
-
-
-
-/*
-MidTankData midTankData = new MidTankData();
-midTankData.MidTankId = 0;
-midTankData.InitialOffsetA = 0.1;
-midTankData.SlopeB = 0.1;
-
-MidTankData midTankData1 = new MidTankData();
-midTankData1.MidTankId = 1;
-midTankData1.InitialOffsetA = 0.11;
-midTankData1.SlopeB = 0.11;
-
-MidTankData midTankData2 = new MidTankData();
-midTankData2.MidTankId = 2;
-midTankData2.InitialOffsetA = 0.2;
-midTankData2.SlopeB = 0.2;
-
-MidTankData midTankData3 = new MidTankData();
-midTankData3.MidTankId = 3;
-midTankData3.InitialOffsetA = 0.3;
-midTankData3.SlopeB = 0.3;
-
-MidTankData midTankData4 = new MidTankData();
-midTankData4.MidTankId = 4;
-midTankData4.InitialOffsetA = 0.4;
-midTankData4.SlopeB = 0.4;
-
-MidTankData midTankData5 = new MidTankData();
-midTankData5.MidTankId = 5;
-midTankData5.InitialOffsetA = 0.5;
-midTankData5.SlopeB = 0.5;
-
-MidTankData midTankData6 = new MidTankData();
-midTankData6.MidTankId = 6;
-midTankData6.InitialOffsetA = 0.6;
-midTankData6.SlopeB = 0.6;
-
-
-MidTankData midTankData7 = new MidTankData();
-midTankData6.MidTankId = 7;
-midTankData6.InitialOffsetA = 0.7;
-midTankData6.SlopeB = 0.7;
-
-
-midTankDataSetupRequest.MidTankInfo.Add(midTankData);
-midTankDataSetupRequest.MidTankInfo.Add(midTankData1);
-midTankDataSetupRequest.MidTankInfo.Add(midTankData2);
-midTankDataSetupRequest.MidTankInfo.Add(midTankData3);
-midTankDataSetupRequest.MidTankInfo.Add(midTankData4);
-midTankDataSetupRequest.MidTankInfo.Add(midTankData5);
-midTankDataSetupRequest.MidTankInfo.Add(midTankData6);
-midTankDataSetupRequest.MidTankInfo.Add(midTankData7);
-*/
-return 1;
-}
-
-
-
-int print_table()
- {
-
- for (uint i=0;i<5;i++)
- {
- stubManager.AppendToFile(File_name,Parameter[i]+"\t"+voltage_array[1,i]+"\t"+voltage_array[2,i]+"\t"+voltage_array[3,i]+"\t"+voltage_array[4,i]+"\t"+voltage_array[5,i]+"\t"+voltage_array[6,i]+"\t"+voltage_array[7,i]+"\t"+voltage_array[8,i]) ;
- }
-
-
- return 1;
-
- }
-
-
-
-int adc_configuration(uint I2C_Slave_Add,uint channel )
- {
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x00);//Byte 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(channel);//Byte 1 to Write, must be 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02 or 0x01 for different channels
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x80);//Byte 2 to Write
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
- }
-
-
-int adc_set_for_read_ch(uint I2C_Slave_Add)
- {
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x01);//Byte 0 to write
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
- }
-
-
-
-
-int adc_read_ch(uint I2C_Slave_Add,uint table_index_x,uint table_index_y)
- {
- StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();
- stubI2CReadBytesRequest.I2CId = I2C_ID;
- stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add;
- stubI2CReadBytesRequest.NumberOfBytesToRead = 2; // Number of bytes to read
-
- var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);
- uint temph=0;
- uint templ=0;
- uint temp;
- double calc;
- double calc1;
- double calc2;
- temph=response1.ReadBytes[0];
- templ=response1.ReadBytes[1];
- temp = (temph << 8) | templ;
- temp=temp & 0x0fff;
-
- calc = (double)temp *2.5 / 4096.0;
- stubManager.Write("ADC [volts]:\t");
- stubManager.Write(calc+"\t");
-
- calc1 = (1.96- calc) * 4.64 + 1.96;
- stubManager.Write("Vsensor [volts]:\t");
- stubManager.Write(calc1);
-
- voltage_array[table_index_x,table_index_y]=calc1;
-
- return 1;
- }
-
-int read_pressure_sensor(uint i )
- {
-
- stubManager.Write("\n-----------MIDTANK_PRESSESENS-------test_no= "+i);
-
- stubManager.Write("\n1_1= ");
-
- adc_configuration(0x44,0x20); //a2d_address 0x44 channel channel 2
- adc_set_for_read_ch(0x44);
- adc_read_ch(0x44,1,i);
-
- stubManager.Write("\n2_1= ");
- adc_configuration(0x44,0x08); //a2d_address 0x44 channel channel 4
- adc_set_for_read_ch(0x44);
- adc_read_ch(0x44,2,i);
-
- stubManager.Write("\n3_1= ");
- adc_configuration(0x46,0x80); //a2d_address 0x46 channel channel 0
- adc_set_for_read_ch(0x46);
- adc_read_ch(0x46,3,i);
-
- stubManager.Write("\n4_1= ");
- adc_configuration(0x46,0x20); //a2d_address 0x46 channel channel 2
- adc_set_for_read_ch(0x46);
- adc_read_ch(0x46,4,i);
-
- stubManager.Write("\n1_2= ");
- adc_configuration(0x44,0x10); //a2d_address 0x44 channel channel 3
- adc_set_for_read_ch(0x44);
- adc_read_ch(0x44,5,i);
-
- stubManager.Write("\n2_2= ");
- adc_configuration(0x44,0x04); //a2d_address 0x44 channel channel 5
- adc_set_for_read_ch(0x44);
- adc_read_ch(0x44,6,i);
-
- stubManager.Write("\n3_2= ");
- adc_configuration(0x46,0x40); //a2d_address 0x46 channel channel 1
- adc_set_for_read_ch(0x46);
- adc_read_ch(0x46,7,i);
-
- stubManager.Write("\n4_2= ");
- adc_configuration(0x46,0x10); //a2d_address 0x46 channel channel 3
- adc_set_for_read_ch(0x46);
- adc_read_ch(0x46,8,i);
-
- return 1;
- }
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 1 Motor Frequency.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 1 Motor Frequency.csv
deleted file mode 100644
index 4b9e73f00..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 1 Motor Frequency.csv
+++ /dev/null
@@ -1,19 +0,0 @@
-Time,Dispenser 1 Motor Frequency
-13:39:54.945,0
-13:39:55.245,0
-13:39:55.545,0
-13:39:55.845,0
-13:39:56.145,0
-13:39:56.445,0
-13:39:56.745,0
-13:39:57.045,0
-13:39:57.345,0
-13:39:57.645,0
-13:39:57.945,0
-13:39:58.245,0
-13:39:58.545,0
-13:39:58.845,0
-13:39:59.145,0
-13:39:59.445,0
-13:39:59.745,0
-13:40:00.045,0
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 1 Pressure.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 1 Pressure.csv
deleted file mode 100644
index 2ff983a1b..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 1 Pressure.csv
+++ /dev/null
@@ -1,55 +0,0 @@
-Time,Dispenser 1 Pressure
-13:39:54.945,0.0458705425262451
-13:39:55.045,0.0317853689193726
-13:39:55.145,0.0388279557228088
-13:39:55.245,0.0353068113327026
-13:39:55.345,0.0353068113327026
-13:39:55.445,0.0353068113327026
-13:39:55.545,0.0353068113327026
-13:39:55.645,0.0282642245292664
-13:39:55.745,0.0353068113327026
-13:39:55.845,0.0353068113327026
-13:39:55.945,0.0353068113327026
-13:39:56.045,0.0388279557228088
-13:39:56.145,0.0388279557228088
-13:39:56.245,0.0317853689193726
-13:39:56.345,0.0353068113327026
-13:39:56.445,0.0353068113327026
-13:39:56.545,0.0353068113327026
-13:39:56.645,0.0388279557228088
-13:39:56.745,0.0388279557228088
-13:39:56.845,0.0353068113327026
-13:39:56.945,0.0388279557228088
-13:39:57.045,0.0388279557228088
-13:39:57.145,0.0317853689193726
-13:39:57.245,0.0388279557228088
-13:39:57.345,0.0388279557228088
-13:39:57.445,0.0282642245292664
-13:39:57.545,0.0353068113327026
-13:39:57.645,0.0388279557228088
-13:39:57.745,0.0353068113327026
-13:39:57.845,0.0388279557228088
-13:39:57.945,0.0317853689193726
-13:39:58.045,0.0388279557228088
-13:39:58.145,0.0353068113327026
-13:39:58.245,0.0317853689193726
-13:39:58.345,0.0423493981361389
-13:39:58.445,0.0317853689193726
-13:39:58.545,0.0423493981361389
-13:39:58.645,0.0353068113327026
-13:39:58.745,0.0353068113327026
-13:39:58.845,0.0282642245292664
-13:39:58.945,0.0353068113327026
-13:39:59.045,0.0317853689193726
-13:39:59.145,0.0317853689193726
-13:39:59.245,0.0353068113327026
-13:39:59.345,0.0388279557228088
-13:39:59.445,0.0388279557228088
-13:39:59.545,0.0458705425262451
-13:39:59.645,0.0353068113327026
-13:39:59.745,0.0353068113327026
-13:39:59.845,0.0317853689193726
-13:39:59.945,0.0317853689193726
-13:40:00.045,0.0353068113327026
-13:40:00.145,0.0388279557228088
-13:40:00.245,0.0388279557228088
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 2 Motor Frequency.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 2 Motor Frequency.csv
deleted file mode 100644
index 1bf9584f3..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 2 Motor Frequency.csv
+++ /dev/null
@@ -1,19 +0,0 @@
-Time,Dispenser 2 Motor Frequency
-13:39:54.945,0
-13:39:55.245,0
-13:39:55.545,0
-13:39:55.845,0
-13:39:56.145,0
-13:39:56.445,0
-13:39:56.745,0
-13:39:57.045,0
-13:39:57.345,0
-13:39:57.645,0
-13:39:57.945,0
-13:39:58.245,0
-13:39:58.545,0
-13:39:58.845,0
-13:39:59.145,0
-13:39:59.445,0
-13:39:59.745,0
-13:40:00.045,0
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 2 Pressure.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 2 Pressure.csv
deleted file mode 100644
index 88c664efe..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 2 Pressure.csv
+++ /dev/null
@@ -1,55 +0,0 @@
-Time,Dispenser 2 Pressure
-13:39:54.945,0.119816958904266
-13:39:55.045,0.11277437210083
-13:39:55.145,0.119816958904266
-13:39:55.245,0.11629581451416
-13:39:55.345,0.11277437210083
-13:39:55.445,0.119816958904266
-13:39:55.545,0.119816958904266
-13:39:55.645,0.119816958904266
-13:39:55.745,0.11629581451416
-13:39:55.845,0.11629581451416
-13:39:55.945,0.11629581451416
-13:39:56.045,0.126859545707703
-13:39:56.145,0.119816958904266
-13:39:56.245,0.119816958904266
-13:39:56.345,0.11629581451416
-13:39:56.445,0.11629581451416
-13:39:56.545,0.119816958904266
-13:39:56.645,0.11629581451416
-13:39:56.745,0.119816958904266
-13:39:56.845,0.11277437210083
-13:39:56.945,0.119816958904266
-13:39:57.045,0.123338103294373
-13:39:57.145,0.11629581451416
-13:39:57.245,0.11277437210083
-13:39:57.345,0.119816958904266
-13:39:57.445,0.123338103294373
-13:39:57.545,0.119816958904266
-13:39:57.645,0.11629581451416
-13:39:57.745,0.123338103294373
-13:39:57.845,0.11629581451416
-13:39:57.945,0.11629581451416
-13:39:58.045,0.119816958904266
-13:39:58.145,0.11277437210083
-13:39:58.245,0.123338103294373
-13:39:58.345,0.119816958904266
-13:39:58.445,0.119816958904266
-13:39:58.545,0.119816958904266
-13:39:58.645,0.11629581451416
-13:39:58.745,0.119816958904266
-13:39:58.845,0.109253227710724
-13:39:58.945,0.123338103294373
-13:39:59.045,0.123338103294373
-13:39:59.145,0.123338103294373
-13:39:59.245,0.11629581451416
-13:39:59.345,0.119816958904266
-13:39:59.445,0.123338103294373
-13:39:59.545,0.109253227710724
-13:39:59.645,0.119816958904266
-13:39:59.745,0.119816958904266
-13:39:59.845,0.11277437210083
-13:39:59.945,0.11629581451416
-13:40:00.045,0.11629581451416
-13:40:00.145,0.119816958904266
-13:40:00.245,0.11277437210083
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 3 Motor Frequency.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 3 Motor Frequency.csv
deleted file mode 100644
index bdc3c7c8d..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 3 Motor Frequency.csv
+++ /dev/null
@@ -1,19 +0,0 @@
-Time,Dispenser 3 Motor Frequency
-13:39:54.945,0
-13:39:55.245,0
-13:39:55.545,0
-13:39:55.845,0
-13:39:56.145,0
-13:39:56.445,0
-13:39:56.745,0
-13:39:57.045,0
-13:39:57.345,0
-13:39:57.645,0
-13:39:57.945,0
-13:39:58.245,0
-13:39:58.545,0
-13:39:58.845,0
-13:39:59.145,0
-13:39:59.445,0
-13:39:59.745,0
-13:40:00.045,0
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 3 Pressure.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 3 Pressure.csv
deleted file mode 100644
index 8f0a93237..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 3 Pressure.csv
+++ /dev/null
@@ -1,55 +0,0 @@
-Time,Dispenser 3 Pressure
-13:39:54.945,-0.00342711806297302
-13:39:55.045,-0.00342711806297302
-13:39:55.145,-0.00342711806297302
-13:39:55.245,-0.00342711806297302
-13:39:55.345,-0.00342711806297302
-13:39:55.445,-0.00342711806297302
-13:39:55.545,-0.00342711806297302
-13:39:55.645,-0.00342711806297302
-13:39:55.745,-0.00342711806297302
-13:39:55.845,-0.00342711806297302
-13:39:55.945,-0.00342711806297302
-13:39:56.045,-0.00342711806297302
-13:39:56.145,-0.00342711806297302
-13:39:56.245,-0.00342711806297302
-13:39:56.345,-0.00342711806297302
-13:39:56.445,-0.00342711806297302
-13:39:56.545,-0.00342711806297302
-13:39:56.645,-0.00342711806297302
-13:39:56.745,-0.00342711806297302
-13:39:56.845,-0.00342711806297302
-13:39:56.945,-0.00342711806297302
-13:39:57.045,-0.00342711806297302
-13:39:57.145,-0.00342711806297302
-13:39:57.245,-0.00342711806297302
-13:39:57.345,-0.00342711806297302
-13:39:57.445,-0.00342711806297302
-13:39:57.545,-0.00342711806297302
-13:39:57.645,-0.00342711806297302
-13:39:57.745,-0.00342711806297302
-13:39:57.845,-0.00342711806297302
-13:39:57.945,-0.00342711806297302
-13:39:58.045,-0.00342711806297302
-13:39:58.145,-0.00342711806297302
-13:39:58.245,-0.00342711806297302
-13:39:58.345,-0.00342711806297302
-13:39:58.445,-0.00342711806297302
-13:39:58.545,-0.00342711806297302
-13:39:58.645,-0.00342711806297302
-13:39:58.745,-0.00342711806297302
-13:39:58.845,-0.00342711806297302
-13:39:58.945,-0.00342711806297302
-13:39:59.045,-0.00342711806297302
-13:39:59.145,-0.00342711806297302
-13:39:59.245,-0.00342711806297302
-13:39:59.345,-0.00342711806297302
-13:39:59.445,-0.00342711806297302
-13:39:59.545,-0.00342711806297302
-13:39:59.645,-0.00342711806297302
-13:39:59.745,-0.00342711806297302
-13:39:59.845,-0.00342711806297302
-13:39:59.945,-0.00342711806297302
-13:40:00.045,-0.00342711806297302
-13:40:00.145,-0.00342711806297302
-13:40:00.245,-0.00342711806297302
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Feeder Motor.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Feeder Motor.csv
deleted file mode 100644
index 5080effe1..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Feeder Motor.csv
+++ /dev/null
@@ -1,55 +0,0 @@
-Time,Feeder Motor
-13:39:54.945,0
-13:39:55.045,0
-13:39:55.145,0
-13:39:55.245,0
-13:39:55.345,0
-13:39:55.445,0
-13:39:55.545,0
-13:39:55.645,0
-13:39:55.745,0
-13:39:55.845,0
-13:39:55.945,0
-13:39:56.045,0
-13:39:56.145,0
-13:39:56.245,0
-13:39:56.345,0
-13:39:56.445,0
-13:39:56.545,0
-13:39:56.645,0
-13:39:56.745,0
-13:39:56.845,0
-13:39:56.945,0
-13:39:57.045,0
-13:39:57.145,0
-13:39:57.245,0
-13:39:57.345,0
-13:39:57.445,0
-13:39:57.545,0
-13:39:57.645,0
-13:39:57.745,0
-13:39:57.845,0
-13:39:57.945,0
-13:39:58.045,0
-13:39:58.145,0
-13:39:58.245,0
-13:39:58.345,0
-13:39:58.445,0
-13:39:58.545,0
-13:39:58.645,0
-13:39:58.745,0
-13:39:58.845,0
-13:39:58.945,0
-13:39:59.045,0
-13:39:59.145,0
-13:39:59.245,0
-13:39:59.345,0
-13:39:59.445,0
-13:39:59.545,0
-13:39:59.645,0
-13:39:59.745,0
-13:39:59.845,0
-13:39:59.945,0
-13:40:00.045,0
-13:40:00.145,0
-13:40:00.245,0
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/MIDTANK_JIG.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/MIDTANK_JIG.cs
deleted file mode 100644
index 6b864dfee..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/MIDTANK_JIG.cs
+++ /dev/null
@@ -1,480 +0,0 @@
-using System;
-using System.Text;
-using System.IO;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-using System.Timers;
-
-
-// private static System.Timers.Timer aTimer;
-
-//--------------------------------------------------------------------------------
-const Int32 I2C_ID = 2;
-const int UNIT_UNDER_TEST =3*8;
-const Int32 F3_VALVE_OUT = 0x600008e2;
-//--------------------------------------------------------------------------------
-string path1="P:\\Scripts\\Assemblies\\MidTank\\MidTankLog\\";
-string path2="C:\\MidTankLog\\";
-
-string File_Name1 ;
-string Status;
-//---------------------------
-int [] Convert_Midtank_No = new Int32 [8] {1,3,5,7,2,4,6,8};
-uint [,] ADC_Add_Chnl = new uint [8,2] {
- {0x44,0x20},
- {0x44,0x08},
- {0x46,0x80},
- {0x46,0x20},
- {0x44,0x10},
- {0x44,0x04},
- {0x46,0x40},
- {0x46,0x10},
- };
-
-
-string [,] Units_status = new string[UNIT_UNDER_TEST,2] {
- {"Midtank1_Valve_Air","Not Test"}, //0
- {"Midtank1_Valve_Ink","Not Test"}, //1
- {"Midtank1_Pressure_Sensor","Not Test"}, //2
- {"Midtank2_Valve_Air","Not Test"}, //3
- {"Midtank2_Valve_Ink","Not Test"}, //4
- {"Midtank2_Pressure_Sensor","Not Test"}, //5
- {"Midtank3_Valve_Air","Not Test"}, //6
- {"Midtank3_Valve_Ink","Not Test"}, //7
- {"Midtank3_Pressure_Sensor","Not Test"}, //8
- {"Midtank4_Valve_Air","Not Test"}, //9
- {"Midtank4_Valve_Ink","Not Test"}, //10
- {"Midtank4_Pressure_Sensor","Not Test"}, //11
- {"Midtank5_Valve_Air","Not Test"}, //12
- {"Midtank5_Valve_Ink","Not Test"}, //13
- {"Midtank5_Pressure_Sensor","Not Test"}, //14
- {"Midtank6_Valve_Air","Not Test"}, //15
- {"Midtank6_Valve_Ink","Not Test"}, //16
- {"Midtank6_Pressure_Sensor","Not Test"}, //17
- {"Midtank7_Valve_Air","Not Test"}, //18
- {"Midtank7_Valve_Ink","Not Test"}, //19
- {"Midtank7_Pressure_Sensor","Not Test"}, //20
- {"Midtank8_Valve_Air","Not Test"}, //21
- {"Midtank8_Valve_Ink","Not Test"}, //22
- {"Midtank8_Pressure_Sensor","Not Test"}, //23
- };
-//-----------------------------------------------------
-string MIDTANK_Sn;
-//--------------------------------------------------------------------------------
- // private static void SetTimer()
- // {
- // // Create a timer with a one second interval.
- // aTimer = new System.Timers.Timer(1000);
-// // Hook up the Elapsed event for the timer.
-// aTimer.Elapsed += OnTimedEvent;
-// aTimer.AutoReset = true;
-// aTimer.Enabled = true;
-// }
-
-// private static void OnTimedEvent(Object source, ElapsedEventArgs e)
- // {
-// bool x=0;
-// if (x==true)
-// Label5.Text="Pros";
-// else
-//// Label5.Text=" ";
-// x = !x ;
-//
-// }
-
-
-
-
-
-
-
-
-
-public void OnExecute(StubManager stubManager)
-{
-string path="";
- Form form1 = new Form();
-
-// Set the caption bar text of the form.
- form1.TopMost = true;
- form1.Text = "MIDTANK Test";
- form1.FormBorderStyle = FormBorderStyle.FixedDialog;
- form1.MaximizeBox = false;
- form1.MinimizeBox = false;
- form1.StartPosition = FormStartPosition.CenterScreen;
- form1.AutoSize = true;
- form1.AutoSizeMode = AutoSizeMode.GrowAndShrink;
-// Create buttons to Run.
- Button button1 = new Button ()
- {
- Width = 100,
- Height = 100,
- };
- button1.Text = "Run";
- button1.Location = new Point (40, 100);
- form1.Controls.Add(button1);
-//-----MIDTANK Serial Number -----------
-
- Label Label1 = new Label ()
- {
- Width = 150,
- Height = 20,
- Text =" MIDTANK S/N"
- };
- Label1.Location = new Point (30, 10);
- form1.Controls.Add(Label1);
- TextBox TextBox1 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text =""
- };
- TextBox1.Location = new Point (40, 40);
- form1.Controls.Add(TextBox1);
- //----------LOCATION----------
-
- Label Label3 = new Label ()
- {
- Width = 150,
- Height = 20,
- Text ="LOCATION"
- };
-Label3.Location = new Point (350, 10);
- form1.Controls.Add(Label3);
-
-
-
-TextBox TextBox3 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text =""
- };
-TextBox3.Location = new Point (360, 40);
- form1.Controls.Add(TextBox3);
-
-
-
-
- Label Label5 = new Label ()
- {
- Width = 120,
- Height =100,
- Text = ""
- };
- Label5.Location = new Point (300, 100);
- Label5.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
-
- Label5.Text="";
- Label5.Font = new Font("Arial", 24,FontStyle.Bold);
- form1.Controls.Add(Label5);
-
-//----------------------------
-
-bool BlinkOn = false;
-
-
-
-//--------------------------------------------------------------------------------
-
- button1.Click += (_,__) =>
-
- {
-// SetTimer();
-
-// Label5.Text="Pros";
-
-
-
-
-//--------------------------------------------------------------------------------
-
-
-
-
- Label5.Text = "Pros";
- // if (_click)
- // _show_text.Text = "Fail";
- // else
- // _show_text.Text = "Pass";
-
- // _click = !_click;
- // TextBox1.Text = "";
-
-
-
-//--------------------------------------------------------------------------------
-
-
-
- if (!Directory.Exists(path1))
- {
- path=path2;
- if (!Directory.Exists(path2))
- Directory.CreateDirectory(path2);
- }
- else
- path=path1;
-
- File_Name1=path + TextBox1.Text +"_MIDTANK_" + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".log" ;
-
-
- stubManager.Write(File_Name1 +"\n");
- stubManager.WriteToFile(File_Name1,DateTime.Now +" " );
- stubManager.Write(DateTime.Now +"\n" );
-
- stubManager.AppendToFile(File_Name1,"MIDTANK Test Report" );
- stubManager.Write("MIDTANK Test Report\n" );
-
- stubManager.AppendToFile(File_Name1,"MIDTANK S/N: \t" + TextBox1.Text );
- stubManager.Write("MIDTANK S/N:" + TextBox1.Text +"\n" );
-
-
- stubManager.AppendToFile(File_Name1,"Location:\t" + TextBox3.Text );
- stubManager.Write("Location:" + TextBox3.Text +"\n" );
-
-
-
-//------------------------------- start test -----------
- Test_MIDTANK();
-
- Status=write_to_file();
- stubManager.Write(Status +"\n");
-
- Label5.Text=Status;
-
- // _show_text.Text =Status;
-
- TextBox1.Text="";
- };
-
- form1.ShowDialog();
-
- return ;
- }
-
- //------------------------------------
-int Test_MIDTANK()
-{
- double Pressur_Volt;
- double temp;
- for (Int32 i=1;i<9;i++)
- {
- open_valve(i,0,1) ; //open Air valve
- open_valve(i,1,1) ; //open Ink valve
- Thread.Sleep(2000);
- Pressur_Volt=read_pressuere_sense(i);
- if ((Pressur_Volt>3 )||(Pressur_Volt<2))
- {
- Units_status[(i-1)*3+2,1]="Fail";
- stubManager.Write("pressuere_sense of midtank" + i +"\tFail\n");
- }
- else
- {
- close_valve(i,1,0) ; //close Ink valve
- DialogResult result = MessageBox.Show("ADD 20cc air thru Air valve of Midtank"+ i, "Warning");
- close_valve(i,0,0) ; //close Air valve
- Thread.Sleep(2000);
-
- temp=read_pressuere_sense(i);
- temp=temp-Pressur_Volt;
- if ((temp>0.5) && ( temp <2))
- Units_status[(i-1)*3+2,1]="Pass";
- else
- Units_status[(i-1)*3+2,1]="Fail";
- }
-
- close_valve(i,0,0) ; //close Air valve
- close_valve(i,1,0) ; //close Ink valve
- }
- return 1;
-}
-
-double read_pressuere_sense(Int32 Midtank_Nm)
-{
-double Pressur_Volt;
- adc_configuration((ADC_Add_Chnl[Midtank_Nm-1,0]),(ADC_Add_Chnl[Midtank_Nm-1,1]) ); //configure address and channel of midtank
- adc_set_for_read_ch(ADC_Add_Chnl[Midtank_Nm-1,0]);
- Pressur_Volt =adc_read_ch(ADC_Add_Chnl[Midtank_Nm-1,0]);
-
- stubManager.Write("pressure sense of midtank " + Midtank_Nm + "is " + Pressur_Volt+ "Volt\n");
- return Pressur_Volt;
-}
-
-
-//--------------------------------
-int adc_configuration(uint I2C_Slave_Add,uint channel )
- {
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x00);//Byte 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(channel);//Byte 1 to Write, must be 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02 or 0x01 for different channels
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x80);//Byte 2 to Write
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
- }
-//--------------------------------
-int adc_set_for_read_ch(uint I2C_Slave_Add)
- {
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x01);//Byte 0 to write
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
- }
-//--------------------------------
-
-double adc_read_ch(uint I2C_Slave_Add)
- {
- StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();
- stubI2CReadBytesRequest.I2CId = I2C_ID;
- stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add;
- stubI2CReadBytesRequest.NumberOfBytesToRead = 2; // Number of bytes to read
-
- var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);
- uint temph=0;
- uint templ=0;
- uint temp;
- double calc;
- double calc1;
- temph=response1.ReadBytes[0];
- templ=response1.ReadBytes[1];
- temp = (temph << 8) | templ;
- temp=temp & 0x0fff;
-
- calc = (double)temp *2.5 / 4096.0;
- calc1 = (1.96- calc) * 4.64 + 1.96;
- return calc1;
- }
-//--------------------------------
-int open_valve (int valve_nm,int valve_type,int check_valve) //valve_type=0 is Air ,1 is Ink ; check_valve=1 send feedbak
-{
- int temp1=Convert_Midtank_No[valve_nm-1] ;
-
- string temp;
- SetBit (F3_VALVE_OUT,((valve_type+1)*8)- temp1, 1);
- if (check_valve!=0)
- {
- temp="Air";
- if (valve_type==1)
- temp="Ink";
-
- DialogResult result = MessageBox.Show("Did " + temp + "Valve of Midtank " + valve_nm +" open?", "Warning",MessageBoxButtons.YesNo);
- if(result == DialogResult.No)
- {
- Units_status[(valve_nm-1)*3+valve_type,1]="Fail";
- stubManager.Write(temp +"Valve\tFail\n");
- return 0;
- }
- else
- {
- Units_status[(valve_nm-1)*3+valve_type,1]="Pass";
- stubManager.Write(temp +"Valve\tOpen\n");
- return 1;
- }
-
- }
- return 1;
-
-}
-//--------------------------------
-int close_valve (int valve_nm,int valve_type,int check_valve)
-{
- int temp1=Convert_Midtank_No[valve_nm-1];
-
- string temp;
- SetBit (F3_VALVE_OUT,((valve_type+1)*8)- temp1, 0);
- if (check_valve!=0)
- {
- temp="Air";
- if (valve_type==1)
- temp="Ink";
-
- DialogResult result = MessageBox.Show("Did " + temp +" Valve of Midtank " + valve_nm +" close?", "Warning",MessageBoxButtons.YesNo);
- if(result == DialogResult.No)
- {
- Units_status[(valve_nm-1)*3+valve_type,1]="Fail";
- stubManager.Write(temp +"Valve\tFail\n");
- return 0;
- }
- else
- {
- Units_status[(valve_nm-1)*3+valve_type,1]="Pass";
- stubManager.Write(temp +"Valve\tclose\n");
- return 1;
- }
- }
- return 1;
-
-
-
-
-}
-//--------------------------------
-Int32 SetBit(Int32 Adr, Int32 BitNo, Int32 Bit)
-{
- Int32 BitMask;
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" , F3_VALVE_OUT);
- Int32 RV = (Int32) response.Value & 0xffff;
-
-
- if (Bit == 0x1)
- {
- BitMask = 0x1 << BitNo;
- RV = RV | BitMask;
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_VALVE_OUT , RV);
- }
- else if (Bit == 0x0)
- {
- BitMask = ~(0x1 << BitNo);
- RV = RV & BitMask;
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_VALVE_OUT , RV);
- }
- return 1;
-}
- //------------------------------------
-string write_to_file()
-{
- stubManager.Write("write_to_file\n");
-
-string Stemp="Pass";
- for (int i=0;i<UNIT_UNDER_TEST;i++)
- {
- stubManager.AppendToFile(File_Name1,Units_status[i,0]+"\t" + Units_status[i,1] );
- stubManager.Write(Units_status[i,0]+"\t" + Units_status[i,1]+"\n" );
-
- if ((Units_status[i,1]=="Fail")||(Units_status[i,1]=="Not Test"))
- Stemp="Fail";
- }
- if (Stemp=="Fail")
- {
- stubManager.AppendToFile(File_Name1,"-------------MidTank Fail ------------ ");
- stubManager.Write("-------------MidTank Fail ------------ ");
- }
- else
- {
- stubManager.AppendToFile(File_Name1,"-------------MidTank Pass ------------ )");
- stubManager.Write("-------------MidTank Pass ------------ ");
- }
-
- return Stemp;
-
-}
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Midtank_Valves_test.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Midtank_Valves_test.cs
deleted file mode 100644
index bacbfdcc1..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Midtank_Valves_test.cs
+++ /dev/null
@@ -1,65 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-include "..\..\Defines\Tango_Defines_Basic.cs"
-include "..\Defines\Tango_Defines_GPO.cs"
-//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_Basic.cs"
-//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_GPO.cs"
-
-
-public void OnExecute(StubManager stubManager)
-{
-int i=0;
-int midtankno = 0;
-while(midtankno!=99)
- {
- var response = stubManager.ShowResponseWindow("Enter 1-16 to open Midtank, 101-116 to close , 0 - open all midtank ,100-close all midtank: press 99 to quit ", "");
- //stubManager.WriteLine(response);
- stubManager.Write("\n");
- midtankno = int.Parse(response);
-
-
- if(midtankno==0 )
- {
- for (i=0;i<16;i++)
- {
- SetBit (FPGA3, F3_VALVE_OUT,15-i, 1);
- stubManager.Write("Setting GPO F3_VALVE_OUT, bit " + (15-i) + " On\n");
- Thread.Sleep(1000);
- }
- }
- else if(midtankno==100 )
- {
- for (i=0;i<16;i++)
- {
- SetBit (FPGA3, F3_VALVE_OUT,15- i, 0);
- stubManager.Write("Setting GPO F3_VALVE_OUT, bit " + (15-i) + " Off\n");
- Thread.Sleep(1000);
- }
- }
-
- else if(midtankno<17 )
- {
- midtankno=midtankno-1; //start from 0 to 15
- SetBit (FPGA3, F3_VALVE_OUT,15- i, 1);
- stubManager.Write("Setting GPO F3_VALVE_OUT, bit " + (15-i) + " On\n");
- }
-
- else if(midtankno>100 )
- {
- midtankno=midtankno-101; //start from 0 to 15
- SetBit (FPGA3, F3_VALVE_OUT,15- i, 0);
- stubManager.Write("Setting GPO F3_VALVE_OUT, bit " + (15-i) + " Off\n");
- }
- }
-
-}
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Midtank_pressure_sensors.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Midtank_pressure_sensors.cs
index e2bacf5f4..682ef322d 100644
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Midtank_pressure_sensors.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Midtank_pressure_sensors.cs
@@ -90,7 +90,6 @@ int adc_set_for_read_ch(uint I2C_Slave_Add)
}
-
int adc_read_ch(uint I2C_Slave_Add)
{
StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();
@@ -99,27 +98,16 @@ int adc_read_ch(uint I2C_Slave_Add)
stubI2CReadBytesRequest.NumberOfBytesToRead = 2; // Number of bytes to read
var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);
- UInt32 temph=0;
- UInt32 templ=0;
- UInt32 temp;
- double calc;
- double calc1;
+ uint temph=0;
+ uint templ=0;
+ uint temp;
for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i=i+2)
{
temph=response1.ReadBytes[i];
templ=response1.ReadBytes[i+1];
temp = (temph << 8) | templ;
temp=temp & 0x0fff;
-
- calc = (double)temp *2.5 / 4096.0;
- calc1 = (1.96- calc) * 4.64 + 1.96;
-
-
- // temp=temp*3300;
- // temp=temp/4096;
-
- stubManager.Write(calc1);
- stubManager.Write("mV\n");
+ stubManager.WriteHex(temp,4);
}
@@ -133,49 +121,47 @@ public void OnExecute(StubManager stubManager)
{
- stubManager.Write("-----------MIDTANK_PRESSESENS-----------\n ");
+ stubManager.Write("\n-----------MIDTANK_PRESSESENS----------- ");
- stubManager.Write("Midtank-1= ");
+ stubManager.Write("\n1_1= ");
adc_configuration(0x44,0x20); //a2d_address 0x44 channel channel 2
+// adc_set_for_read_temp(0x44);
+// adc_read_temp(0x44);
+ adc_set_for_read_ch(0x44);
+ adc_read_ch(0x44);
+
+ stubManager.Write("\n1_2= ");
+ adc_configuration(0x44,0x10); //a2d_address 0x44 channel channel 3
adc_set_for_read_ch(0x44);
adc_read_ch(0x44);
-
- stubManager.Write("Midtank-2= ");
+ stubManager.Write("\n2_1= ");
adc_configuration(0x44,0x08); //a2d_address 0x44 channel channel 4
adc_set_for_read_ch(0x44);
adc_read_ch(0x44);
+ stubManager.Write("\n2_2= ");
+ adc_configuration(0x44,0x04); //a2d_address 0x44 channel channel 5
+ adc_set_for_read_ch(0x44);
+ adc_read_ch(0x44);
- stubManager.Write("Midtank-3= ");
+ stubManager.Write("\n3_1= ");
adc_configuration(0x46,0x80); //a2d_address 0x46 channel channel 0
adc_set_for_read_ch(0x46);
adc_read_ch(0x46);
-
- stubManager.Write("Midtank-4= ");
- adc_configuration(0x46,0x20); //a2d_address 0x46 channel channel 2
+
+ stubManager.Write("\n3_2= ");
+ adc_configuration(0x46,0x40); //a2d_address 0x46 channel channel 1
adc_set_for_read_ch(0x46);
adc_read_ch(0x46);
-
-
- stubManager.Write("Midtank-5= ");
- adc_configuration(0x44,0x10); //a2d_address 0x44 channel channel 3
- adc_set_for_read_ch(0x44);
- adc_read_ch(0x44);
-
- stubManager.Write("Midtank-6= ");
- adc_configuration(0x44,0x04); //a2d_address 0x44 channel channel 5
- adc_set_for_read_ch(0x44);
- adc_read_ch(0x44);
-
- stubManager.Write("Midtank-7= ");
- adc_configuration(0x46,0x40); //a2d_address 0x46 channel channel 1
+ stubManager.Write("\n4_1= ");
+ adc_configuration(0x46,0x20); //a2d_address 0x46 channel channel 2
adc_set_for_read_ch(0x46);
adc_read_ch(0x46);
- stubManager.Write("Midtank-8= ");
+ stubManager.Write("\n4_2= ");
adc_configuration(0x46,0x10); //a2d_address 0x46 channel channel 3
adc_set_for_read_ch(0x46);
adc_read_ch(0x46);
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/New_Calibrate_Midtank_pressure_sensors.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/New_Calibrate_Midtank_pressure_sensors.cs
deleted file mode 100644
index 00ca4e8eb..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/New_Calibrate_Midtank_pressure_sensors.cs
+++ /dev/null
@@ -1,451 +0,0 @@
-using System;
-using System.IO;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.PMR.EmbeddedParameters;
-using Tango.Stubs;
-
-//----------------------
-const double MIN_SLOP=0.7;
-const double MAX_SLOP=1.4;
-const double ERROR_SLOP=-1;
-const double MIN_50cc_on_volt=2.3;
-const double MAX_50cc_on_volt=3.2;
-const double ERROR_50cc_on_volt=-1;
-
-int [] Convert_Midtank_No = new Int32 [8] {1,3,5,7,2,4,6,8};
-uint [,] ADC_Add_Chnl = new uint [8,2] {
- {0x44,0x20},
- {0x44,0x08},
- {0x46,0x80},
- {0x46,0x20},
- {0x44,0x10},
- {0x44,0x04},
- {0x46,0x40},
- {0x46,0x10},
- };
-
-
-const Int32 F3_VALVE_OUT = 0x600008E2 ;
-string Machine_SN ;
-private const string FILE_PATH = @"C:\MidTankLog\";
-string File_name;
-double Full_Cartridge=1000; // on CC
-double Slop=0.92;
-//----------------------
-const Int32 I2C_ID = 2;
-//const Int32 I2C_Slave_Add = 0x46; //must be 0x40, 0x44 or 0x46
-//----------------------
-
-
-public void OnExecute(StubManager stubManager)
-{
- Int32 Timout ;
- Int32 Interval;
- Int32 midtankno = 0;
- double Full_Point=0; //on Voltage
- double resualt;
- double Sum=0 ;
- double Old_Sum=0 ;
- double Start_Point=0;
-
-
- if (!Directory.Exists(FILE_PATH))
- {
- Directory.CreateDirectory(FILE_PATH);
- }
-
-
-
- var response = stubManager.ShowResponseWindow("Enter Midtank S/N: ", "");
- stubManager.Write("\n");
- Machine_SN = response;
- stubManager.WriteLine(Machine_SN);
- File_name= FILE_PATH +Machine_SN + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".csv";
- stubManager.Write(File_name);
- stubManager.WriteToFile(File_name,"MidTank S/N:," + Machine_SN);
-
-
- var response1 = stubManager.ShowResponseWindow("Enter Midtank number to calibrate (1-8):", "");
- stubManager.WriteLine(response1);
- midtankno = Int32.Parse(response1);
- stubManager.AppendToFile(File_name,"MidTank Number:\t" + response1);
- if (midtankno==8)
- {
- Slop=1;
- Timout=60; //60 minutes
- Interval=60; //60 second
- }
- else
- {
- Slop=0.92;
- Timout=10*2; //10 minutes
- Interval=30; //30 second
-
- }
- var response10 = stubManager.ShowResponseWindow("Enter Cartridge Valume on CC (500-1500):", "");
- stubManager.WriteLine(response10);
- Full_Cartridge = double.Parse(response10);
- stubManager.AppendToFile(File_name,"Cartridge Valume:\t" + response10);
- stubManager.AppendToFile(File_name,"Slop value:\t" + Slop);
-
-
- DialogResult result = MessageBox.Show("Are you sure to calibrate Midtank No: "+ midtankno + " with "+ Full_Cartridge +" CC" , "Warning",MessageBoxButtons.YesNo);
- if(result == DialogResult.Yes)
- {
-
-
-
- string box_msg = "Please Insert cartridge ";
-
- MessageBox.Show(box_msg);
-
- open_valve(midtankno,1,1) ; //open Air valve
- open_valve(midtankno,0,1) ; //open Ink valve
- Int32 i=0;
- while (i<Timout) //check for 15 minitus
- {
- Sum=0;
- for (Int32 j=0;j<Interval;j++)
- {
- resualt=read_pressure_sensor(midtankno);
- stubManager.AppendToFile(File_name,resualt+",V");
- Sum=Sum+resualt;
- Thread.Sleep(1000);
- }
-
-
- if (i==0)
- Start_Point=Sum/Interval;
-
- if (Sum>Old_Sum)
- Old_Sum=Sum-Old_Sum;
- else
- Old_Sum=Old_Sum-Sum;
-
-
- if ((check_valve(midtankno,1) != 0) && (check_valve(midtankno,0) != 0))
- {
- i++;
- if ( Old_Sum <0.02)
- i=Timout+1; //end
- Old_Sum=Sum;
- }
- else
- {
- open_valve(midtankno,1,0) ; //open Air valve
- open_valve(midtankno,0,0) ; //open Ink valve
- Old_Sum=0;
-
- }
- }
- Full_Point=Sum/Interval;
-
-
- close_valve(midtankno,1,1) ; //close Air valve
- close_valve(midtankno,0,1) ; //close Ink valve
-
-
- if (insert_slop_t_eeprom(Full_Point, midtankno,Start_Point)==0)
- {
- box_msg ="Turn Power Off and On to finish the calibration.";
- MessageBox.Show(box_msg);
- }
- else
- {
- box_msg ="Calibration error";
- MessageBox.Show(box_msg);
-
- }
- }
-
-}
-
-
- int insert_slop_t_eeprom( double FullPoint,Int32 midtankno, double StartPoint)
-{
- stubManager.Write("\n StartPoint = "+ StartPoint +" \n");
- stubManager.Write("\n FullPoint = "+ FullPoint +" \n");
-
- StartPoint=FullPoint-StartPoint;
- StartPoint=1000*StartPoint/Full_Cartridge;
-
- stubManager.Write("\n slop = "+ StartPoint +" \n");
-
- if ((StartPoint>0.7 ) && (StartPoint<1.6 ))
- {
- MidTankDataSetupRequest midTankDataSetupRequest = new MidTankDataSetupRequest();
-
- MidTankData midTankData = new MidTankData();
- midTankData.MidTankId = Convert.ToUInt32 (midtankno-1);
- midTankData.InitialOffsetA =FullPoint - (Full_Cartridge/1000-0.1)/Slop;
- midTankData.SlopeB = Slop;
-
- stubManager.Write("\nMidtank No:" + midtankno + "=\tVoltage Zero is ="+(FullPoint - (Full_Cartridge/1000-0.1)/Slop)+"\tSlop="+ Slop);
- stubManager.AppendToFile(File_name,"\nMidtank No:" + midtankno + "=\tVoltage Zero is ="+(FullPoint - (Full_Cartridge/1000-0.1)/Slop)+"\tSlop="+ Slop);
-
-
- midTankDataSetupRequest.MidTankInfo.Add(midTankData);
-
-
- var response = stubManager.Run<MidTankDataSetupResponse>(midTankDataSetupRequest);
-
- return 0;
- }
- else
- stubManager.Write("\nError");
- stubManager.AppendToFile(File_name,"\n Slop Error");
- return 1;
-
-}
-
-
-int adc_configuration(uint I2C_Slave_Add,uint channel )
- {
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x00);//Byte 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(channel);//Byte 1 to Write, must be 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02 or 0x01 for different channels
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x80);//Byte 2 to Write
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
- }
-
-
-int adc_set_for_read_ch(uint I2C_Slave_Add)
- {
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x01);//Byte 0 to write
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
- }
-
-
-
-
-double adc_read_ch(uint I2C_Slave_Add)
- {
- StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();
- stubI2CReadBytesRequest.I2CId = I2C_ID;
- stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add;
- stubI2CReadBytesRequest.NumberOfBytesToRead = 2; // Number of bytes to read
-
- var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);
- uint temph=0;
- uint templ=0;
- uint temp;
- double calc;
- double calc1;
- double calc2;
- temph=response1.ReadBytes[0];
- templ=response1.ReadBytes[1];
- temp = (temph << 8) | templ;
- temp=temp & 0x0fff;
-
- calc = (double)temp *2.5 / 4096.0;
-
- calc1 = (1.96- calc) * 4.64 + 1.96;
- stubManager.Write("Vsensor [volts]:\t");
- stubManager.Write(calc1 + "\n");
-
-
- return calc1;
- }
-
-double read_pressure_sensor(Int32 i )
- {
-double resualt =0 ;
- switch (i)
- {
- case 1:
- adc_configuration(0x44,0x20); //a2d_address 0x44 channel channel 2
- adc_set_for_read_ch(0x44);
- resualt=adc_read_ch(0x44);
- break;
-
- case 2:
- adc_configuration(0x44,0x08); //a2d_address 0x44 channel channel 4
- adc_set_for_read_ch(0x44);
- resualt=adc_read_ch(0x44);
- break;
-
- case 3:
- adc_configuration(0x46,0x80); //a2d_address 0x46 channel channel 0
- adc_set_for_read_ch(0x46);
- resualt=adc_read_ch(0x46);
- break;
-
- case 4:
- adc_configuration(0x46,0x20); //a2d_address 0x46 channel channel 2
- adc_set_for_read_ch(0x46);
- resualt=adc_read_ch(0x46);
- break;
-
- case 5:
- adc_configuration(0x44,0x10); //a2d_address 0x44 channel channel 3
- adc_set_for_read_ch(0x44);
- resualt=adc_read_ch(0x44);
- break;
-
- case 6:
- adc_configuration(0x44,0x04); //a2d_address 0x44 channel channel 5
- adc_set_for_read_ch(0x44);
- resualt=adc_read_ch(0x44);
- break;
-
- case 7:
- adc_configuration(0x46,0x40); //a2d_address 0x46 channel channel 1
- adc_set_for_read_ch(0x46);
- resualt=adc_read_ch(0x46);
- break;
-
- case 8:
- adc_configuration(0x46,0x10); //a2d_address 0x46 channel channel 3
- adc_set_for_read_ch(0x46);
- resualt=adc_read_ch(0x46);
- break;
-
- default:
- stubManager.Write("Error");
-
- break;
- }
-
- return resualt;
- }
-
-
-//--------------------------------
-int open_valve (int valve_nm,int valve_type,int check_valve) //valve_type=0 is Air ,1 is Ink ; check_valve=1 send feedbak
-{
- int temp1=Convert_Midtank_No[valve_nm-1] ;
-
- string temp;
- SetBit (F3_VALVE_OUT,(((valve_type+1)*8)- temp1), 1);
-
- if (check_valve!=0)
- {
- temp="Air";
- if (valve_type==1)
- temp="Ink";
-
- DialogResult result = MessageBox.Show("Did " + temp + "Valve of Midtank " + valve_nm +" open?", "Warning",MessageBoxButtons.YesNo);
- if(result == DialogResult.No)
- {
-// Units_status[(valve_nm-1)*3+valve_type,1]="Fail";
- stubManager.Write(temp +"Valve\tFail\n");
- return 0;
- }
- else
- {
-// Units_status[(valve_nm-1)*3+valve_type,1]="Pass";
- stubManager.Write(temp +"Valve\tOpen\n");
- return 1;
- }
-
- }
- return 1;
-
-}
-//--------------------------------
-int close_valve (int valve_nm,int valve_type,int check_valve)
-{
- int temp1=Convert_Midtank_No[valve_nm-1];
-
- string temp;
- SetBit (F3_VALVE_OUT,(((valve_type+1)*8)- temp1), 0);
- if (check_valve!=0)
- {
- temp="Air";
- if (valve_type==1)
- temp="Ink";
-
- DialogResult result = MessageBox.Show("Did " + temp +" Valve of Midtank " + valve_nm +" close?", "Warning",MessageBoxButtons.YesNo);
- if(result == DialogResult.No)
- {
-// Units_status[(valve_nm-1)*3+valve_type,1]="Fail";
- stubManager.Write(temp +"Valve\tFail\n");
- return 0;
- }
- else
- {
-// Units_status[(valve_nm-1)*3+valve_type,1]="Pass";
- stubManager.Write(temp +"Valve\tclose\n");
- return 1;
- }
- }
- return 1;
-
-}
-
-public Int32 SetBit(Int32 Adr, Int32 BitNo, Int32 Bit)
-{
- Int32 BitMask;
- var RetVal = Fpga_Read_Reg(Adr);
- Int32 RV = (Int32) RetVal.Value;
-
- if (Bit == 0x1)
- {
- BitMask = 0x1 << BitNo;
- RV = RV | BitMask;
- Fpga_Write_Reg( Adr, RV );
- }
- else if (Bit == 0x0)
- {
- BitMask = ~(0x1 << BitNo);
- RV = RV & BitMask;
- Fpga_Write_Reg(Adr, RV );
- }
- return 1;
-}
-
-int Fpga_Write_Reg(Int32 Addr, Int32 Data)
-{
- var response = stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,Addr, Data);
-
- return 1;
-}
-
-
-Int32 check_valve (Int32 valve_nm,int valve_type)
-{
- Int32 temp1=Convert_Midtank_No[valve_nm-1];
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F3_VALVE_OUT);
- Int32 RV =(Int32) response.Value & 0xffff ;
- RV = RV & ( 0x1 << (((valve_type+1)*8)- temp1));
- return RV;
-
-}
-
-
-StubFpgaReadRegResponse Fpga_Read_Reg(Int32 Addr)
-{
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,Addr);
- response.Value = response.Value & 0xffff;
-
- return response;
-}
-
-
-
-
-//end mati \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Poller Motor.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Poller Motor.csv
deleted file mode 100644
index e42f3c309..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Poller Motor.csv
+++ /dev/null
@@ -1,55 +0,0 @@
-Time,Poller Motor
-13:39:54.945,0
-13:39:55.045,0
-13:39:55.145,0
-13:39:55.245,0
-13:39:55.345,0
-13:39:55.445,0
-13:39:55.545,0
-13:39:55.645,0
-13:39:55.745,0
-13:39:55.845,0
-13:39:55.945,0
-13:39:56.045,0
-13:39:56.145,0
-13:39:56.245,0
-13:39:56.345,0
-13:39:56.445,0
-13:39:56.545,0
-13:39:56.645,0
-13:39:56.745,0
-13:39:56.845,0
-13:39:56.945,0
-13:39:57.045,0
-13:39:57.145,0
-13:39:57.245,0
-13:39:57.345,0
-13:39:57.445,0
-13:39:57.545,0
-13:39:57.645,0
-13:39:57.745,0
-13:39:57.845,0
-13:39:57.945,0
-13:39:58.045,0
-13:39:58.145,0
-13:39:58.245,0
-13:39:58.345,0
-13:39:58.445,0
-13:39:58.545,0
-13:39:58.645,0
-13:39:58.745,0
-13:39:58.845,0
-13:39:58.945,0
-13:39:59.045,0
-13:39:59.145,0
-13:39:59.245,0
-13:39:59.345,0
-13:39:59.445,0
-13:39:59.545,0
-13:39:59.645,0
-13:39:59.745,0
-13:39:59.845,0
-13:39:59.945,0
-13:40:00.045,0
-13:40:00.145,0
-13:40:00.245,0
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Right Dancer.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Right Dancer.csv
deleted file mode 100644
index 9efc47b7e..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Right Dancer.csv
+++ /dev/null
@@ -1,541 +0,0 @@
-Time,Right Dancer
-13:39:54.945,12900
-13:39:54.955,12900
-13:39:54.965,12900
-13:39:54.975,12900
-13:39:54.985,12900
-13:39:54.995,12900
-13:39:55.005,12900
-13:39:55.015,12900
-13:39:55.025,12900
-13:39:55.035,12900
-13:39:55.045,12900
-13:39:55.055,12900
-13:39:55.065,12900
-13:39:55.075,12900
-13:39:55.085,12900
-13:39:55.095,12900
-13:39:55.105,12900
-13:39:55.115,12900
-13:39:55.125,12900
-13:39:55.135,12900
-13:39:55.145,12900
-13:39:55.155,12900
-13:39:55.165,12900
-13:39:55.175,12900
-13:39:55.185,12900
-13:39:55.195,12900
-13:39:55.205,12900
-13:39:55.215,12900
-13:39:55.225,12900
-13:39:55.235,12900
-13:39:55.245,12900
-13:39:55.255,12900
-13:39:55.265,12900
-13:39:55.275,12900
-13:39:55.285,12900
-13:39:55.295,12900
-13:39:55.305,12900
-13:39:55.315,12900
-13:39:55.325,12900
-13:39:55.335,12900
-13:39:55.345,12900
-13:39:55.355,12900
-13:39:55.365,12900
-13:39:55.375,12900
-13:39:55.385,12900
-13:39:55.395,12900
-13:39:55.405,12900
-13:39:55.415,12900
-13:39:55.425,12900
-13:39:55.435,12900
-13:39:55.445,12900
-13:39:55.455,12900
-13:39:55.465,12900
-13:39:55.475,12900
-13:39:55.485,12900
-13:39:55.495,12900
-13:39:55.505,12900
-13:39:55.515,12900
-13:39:55.525,12900
-13:39:55.535,12900
-13:39:55.545,12900
-13:39:55.555,12900
-13:39:55.565,12900
-13:39:55.575,12900
-13:39:55.585,12900
-13:39:55.595,12900
-13:39:55.605,12900
-13:39:55.615,12900
-13:39:55.625,12900
-13:39:55.635,12900
-13:39:55.645,12900
-13:39:55.655,12900
-13:39:55.665,12900
-13:39:55.675,12900
-13:39:55.685,12900
-13:39:55.695,12900
-13:39:55.705,12900
-13:39:55.715,12900
-13:39:55.725,12900
-13:39:55.735,12900
-13:39:55.745,12900
-13:39:55.755,12900
-13:39:55.765,12900
-13:39:55.775,12900
-13:39:55.785,12900
-13:39:55.795,12900
-13:39:55.805,12900
-13:39:55.815,12900
-13:39:55.825,12900
-13:39:55.835,12900
-13:39:55.845,12900
-13:39:55.855,12900
-13:39:55.865,12900
-13:39:55.875,12900
-13:39:55.885,12900
-13:39:55.895,12900
-13:39:55.905,12900
-13:39:55.915,12900
-13:39:55.925,12900
-13:39:55.935,12900
-13:39:55.945,12900
-13:39:55.955,12900
-13:39:55.965,12900
-13:39:55.975,12900
-13:39:55.985,12900
-13:39:55.995,12900
-13:39:56.005,12900
-13:39:56.015,12900
-13:39:56.025,12900
-13:39:56.035,12900
-13:39:56.045,12900
-13:39:56.055,12900
-13:39:56.065,12900
-13:39:56.075,12900
-13:39:56.085,12900
-13:39:56.095,12900
-13:39:56.105,12900
-13:39:56.115,12900
-13:39:56.125,12900
-13:39:56.135,12900
-13:39:56.145,12900
-13:39:56.155,12900
-13:39:56.165,12900
-13:39:56.175,12900
-13:39:56.185,12900
-13:39:56.195,12900
-13:39:56.205,12900
-13:39:56.215,12900
-13:39:56.225,12900
-13:39:56.235,12900
-13:39:56.245,12900
-13:39:56.255,12900
-13:39:56.265,12900
-13:39:56.275,12900
-13:39:56.285,12900
-13:39:56.295,12900
-13:39:56.305,12900
-13:39:56.315,12900
-13:39:56.325,12900
-13:39:56.335,12900
-13:39:56.345,12900
-13:39:56.355,12900
-13:39:56.365,12900
-13:39:56.375,12900
-13:39:56.385,12900
-13:39:56.395,12900
-13:39:56.405,12900
-13:39:56.415,12900
-13:39:56.425,12900
-13:39:56.435,12900
-13:39:56.445,12900
-13:39:56.455,12900
-13:39:56.465,12900
-13:39:56.475,12900
-13:39:56.485,12900
-13:39:56.495,12900
-13:39:56.505,12900
-13:39:56.515,12900
-13:39:56.525,12900
-13:39:56.535,12900
-13:39:56.545,12900
-13:39:56.555,12900
-13:39:56.565,12900
-13:39:56.575,12900
-13:39:56.585,12900
-13:39:56.595,12900
-13:39:56.605,12900
-13:39:56.615,12900
-13:39:56.625,12900
-13:39:56.635,12900
-13:39:56.645,12900
-13:39:56.655,12900
-13:39:56.665,12900
-13:39:56.675,12900
-13:39:56.685,12900
-13:39:56.695,12900
-13:39:56.705,12900
-13:39:56.715,12900
-13:39:56.725,12900
-13:39:56.735,12900
-13:39:56.745,12900
-13:39:56.755,12900
-13:39:56.765,12900
-13:39:56.775,12900
-13:39:56.785,12900
-13:39:56.795,12900
-13:39:56.805,12900
-13:39:56.815,12900
-13:39:56.825,12900
-13:39:56.835,12900
-13:39:56.845,12900
-13:39:56.855,12900
-13:39:56.865,12900
-13:39:56.875,12900
-13:39:56.885,12900
-13:39:56.895,12900
-13:39:56.905,12900
-13:39:56.915,12900
-13:39:56.925,12900
-13:39:56.935,12900
-13:39:56.945,12900
-13:39:56.955,12900
-13:39:56.965,12900
-13:39:56.975,12900
-13:39:56.985,12900
-13:39:56.995,12900
-13:39:57.005,12900
-13:39:57.015,12900
-13:39:57.025,12900
-13:39:57.035,12900
-13:39:57.045,12900
-13:39:57.055,12900
-13:39:57.065,12900
-13:39:57.075,12900
-13:39:57.085,12900
-13:39:57.095,12900
-13:39:57.105,12900
-13:39:57.115,12900
-13:39:57.125,12900
-13:39:57.135,12900
-13:39:57.145,12900
-13:39:57.155,12900
-13:39:57.165,12900
-13:39:57.175,12900
-13:39:57.185,12900
-13:39:57.195,12900
-13:39:57.205,12900
-13:39:57.215,12900
-13:39:57.225,12900
-13:39:57.235,12900
-13:39:57.245,12900
-13:39:57.255,12900
-13:39:57.265,12900
-13:39:57.275,12900
-13:39:57.285,12900
-13:39:57.295,12900
-13:39:57.305,12900
-13:39:57.315,12900
-13:39:57.325,12900
-13:39:57.335,12900
-13:39:57.345,12900
-13:39:57.355,12900
-13:39:57.365,12900
-13:39:57.375,12900
-13:39:57.385,12900
-13:39:57.395,12900
-13:39:57.405,12900
-13:39:57.415,12900
-13:39:57.425,12900
-13:39:57.435,12900
-13:39:57.445,12900
-13:39:57.455,12900
-13:39:57.465,12900
-13:39:57.475,12900
-13:39:57.485,12900
-13:39:57.495,12900
-13:39:57.505,12900
-13:39:57.515,12900
-13:39:57.525,12900
-13:39:57.535,12900
-13:39:57.545,12900
-13:39:57.555,12900
-13:39:57.565,12900
-13:39:57.575,12900
-13:39:57.585,12900
-13:39:57.595,12900
-13:39:57.605,12900
-13:39:57.615,12900
-13:39:57.625,12900
-13:39:57.635,12900
-13:39:57.645,12900
-13:39:57.655,12900
-13:39:57.665,12900
-13:39:57.675,12900
-13:39:57.685,12900
-13:39:57.695,12900
-13:39:57.705,12900
-13:39:57.715,12900
-13:39:57.725,12900
-13:39:57.735,12900
-13:39:57.745,12900
-13:39:57.755,12900
-13:39:57.765,12900
-13:39:57.775,12900
-13:39:57.785,12900
-13:39:57.795,12900
-13:39:57.805,12900
-13:39:57.815,12900
-13:39:57.825,12900
-13:39:57.835,12900
-13:39:57.845,12900
-13:39:57.855,12900
-13:39:57.865,12900
-13:39:57.875,12900
-13:39:57.885,12900
-13:39:57.895,12900
-13:39:57.905,12900
-13:39:57.915,12900
-13:39:57.925,12900
-13:39:57.935,12900
-13:39:57.945,12900
-13:39:57.955,12900
-13:39:57.965,12900
-13:39:57.975,12900
-13:39:57.985,12900
-13:39:57.995,12900
-13:39:58.005,12900
-13:39:58.015,12900
-13:39:58.025,12900
-13:39:58.035,12900
-13:39:58.045,12900
-13:39:58.055,12900
-13:39:58.065,12900
-13:39:58.075,12900
-13:39:58.085,12900
-13:39:58.095,12900
-13:39:58.105,12900
-13:39:58.115,12900
-13:39:58.125,12900
-13:39:58.135,12900
-13:39:58.145,12900
-13:39:58.155,12900
-13:39:58.165,12900
-13:39:58.175,12900
-13:39:58.185,12900
-13:39:58.195,12900
-13:39:58.205,12900
-13:39:58.215,12900
-13:39:58.225,12900
-13:39:58.235,12900
-13:39:58.245,12900
-13:39:58.255,12900
-13:39:58.265,12900
-13:39:58.275,12900
-13:39:58.285,12900
-13:39:58.295,12900
-13:39:58.305,12900
-13:39:58.315,12900
-13:39:58.325,12900
-13:39:58.335,12900
-13:39:58.345,12900
-13:39:58.355,12900
-13:39:58.365,12900
-13:39:58.375,12900
-13:39:58.385,12900
-13:39:58.395,12900
-13:39:58.405,12900
-13:39:58.415,12900
-13:39:58.425,12900
-13:39:58.435,12900
-13:39:58.445,12900
-13:39:58.455,12900
-13:39:58.465,12900
-13:39:58.475,12900
-13:39:58.485,12900
-13:39:58.495,12900
-13:39:58.505,12900
-13:39:58.515,12900
-13:39:58.525,12900
-13:39:58.535,12900
-13:39:58.545,12900
-13:39:58.555,12900
-13:39:58.565,12900
-13:39:58.575,12900
-13:39:58.585,12900
-13:39:58.595,12900
-13:39:58.605,12900
-13:39:58.615,12900
-13:39:58.625,12900
-13:39:58.635,12900
-13:39:58.645,12900
-13:39:58.655,12900
-13:39:58.665,12900
-13:39:58.675,12900
-13:39:58.685,12900
-13:39:58.695,12900
-13:39:58.705,12900
-13:39:58.715,12900
-13:39:58.725,12900
-13:39:58.735,12900
-13:39:58.745,12900
-13:39:58.755,12900
-13:39:58.765,12900
-13:39:58.775,12900
-13:39:58.785,12900
-13:39:58.795,12900
-13:39:58.805,12900
-13:39:58.815,12900
-13:39:58.825,12900
-13:39:58.835,12900
-13:39:58.845,12900
-13:39:58.855,12900
-13:39:58.865,12900
-13:39:58.875,12900
-13:39:58.885,12900
-13:39:58.895,12900
-13:39:58.905,12900
-13:39:58.915,12900
-13:39:58.925,12900
-13:39:58.935,12900
-13:39:58.945,12900
-13:39:58.955,12900
-13:39:58.965,12900
-13:39:58.975,12900
-13:39:58.985,12900
-13:39:58.995,12900
-13:39:59.005,12900
-13:39:59.015,12900
-13:39:59.025,12900
-13:39:59.035,12900
-13:39:59.045,12900
-13:39:59.055,12900
-13:39:59.065,12900
-13:39:59.075,12900
-13:39:59.085,12900
-13:39:59.095,12900
-13:39:59.105,12900
-13:39:59.115,12900
-13:39:59.125,12900
-13:39:59.135,12900
-13:39:59.145,12900
-13:39:59.155,12900
-13:39:59.165,12900
-13:39:59.175,12900
-13:39:59.185,12900
-13:39:59.195,12900
-13:39:59.205,12900
-13:39:59.215,12900
-13:39:59.225,12900
-13:39:59.235,12900
-13:39:59.245,12900
-13:39:59.255,12900
-13:39:59.265,12900
-13:39:59.275,12900
-13:39:59.285,12900
-13:39:59.295,12900
-13:39:59.305,12900
-13:39:59.315,12900
-13:39:59.325,12900
-13:39:59.335,12900
-13:39:59.345,12900
-13:39:59.355,12900
-13:39:59.365,12900
-13:39:59.375,12900
-13:39:59.385,12900
-13:39:59.395,12900
-13:39:59.405,12900
-13:39:59.415,12900
-13:39:59.425,12900
-13:39:59.435,12900
-13:39:59.445,12900
-13:39:59.455,12900
-13:39:59.465,12900
-13:39:59.475,12900
-13:39:59.485,12900
-13:39:59.495,12900
-13:39:59.505,12900
-13:39:59.515,12900
-13:39:59.525,12900
-13:39:59.535,12900
-13:39:59.545,12900
-13:39:59.555,12900
-13:39:59.565,12900
-13:39:59.575,12900
-13:39:59.585,12900
-13:39:59.595,12900
-13:39:59.605,12900
-13:39:59.615,12900
-13:39:59.625,12900
-13:39:59.635,12900
-13:39:59.645,12900
-13:39:59.655,12900
-13:39:59.665,12900
-13:39:59.675,12900
-13:39:59.685,12900
-13:39:59.695,12900
-13:39:59.705,12900
-13:39:59.715,12900
-13:39:59.725,12900
-13:39:59.735,12900
-13:39:59.745,12900
-13:39:59.755,12900
-13:39:59.765,12900
-13:39:59.775,12900
-13:39:59.785,12900
-13:39:59.795,12900
-13:39:59.805,12900
-13:39:59.815,12900
-13:39:59.825,12900
-13:39:59.835,12900
-13:39:59.845,12900
-13:39:59.855,12900
-13:39:59.865,12900
-13:39:59.875,12900
-13:39:59.885,12900
-13:39:59.895,12900
-13:39:59.905,12900
-13:39:59.915,12900
-13:39:59.925,12900
-13:39:59.935,12900
-13:39:59.945,12900
-13:39:59.955,12900
-13:39:59.965,12900
-13:39:59.975,12900
-13:39:59.985,12900
-13:39:59.995,12900
-13:40:00.005,12900
-13:40:00.015,12900
-13:40:00.025,12900
-13:40:00.035,12900
-13:40:00.045,12900
-13:40:00.055,12900
-13:40:00.065,12900
-13:40:00.075,12900
-13:40:00.085,12900
-13:40:00.095,12900
-13:40:00.105,12900
-13:40:00.115,12900
-13:40:00.125,12900
-13:40:00.135,12900
-13:40:00.145,12900
-13:40:00.155,12900
-13:40:00.165,12900
-13:40:00.175,12900
-13:40:00.185,12900
-13:40:00.195,12900
-13:40:00.205,12900
-13:40:00.215,12900
-13:40:00.225,12900
-13:40:00.235,12900
-13:40:00.245,12900
-13:40:00.255,12900
-13:40:00.265,12900
-13:40:00.275,12900
-13:40:00.285,12900
-13:40:00.295,12900
-13:40:00.305,12900
-13:40:00.315,12900
-13:40:00.325,12900
-13:40:00.335,12900
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Screw Motor.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Screw Motor.csv
deleted file mode 100644
index ac6f709b1..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Screw Motor.csv
+++ /dev/null
@@ -1 +0,0 @@
-Time,Screw Motor
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/midtanksetparams.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/midtanksetparams.cs
deleted file mode 100644
index d3aa81e83..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/midtanksetparams.cs
+++ /dev/null
@@ -1,151 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-using Tango.PMR.EmbeddedParameters;
-
-public void OnExecute(StubManager stubManager)
-{
- uint midtankno = 0;
- double Slop;
- double Zero_Point;
-
-MidTankDataSetupRequest midTankDataSetupRequest = new MidTankDataSetupRequest();
-
- var response = stubManager.ShowResponseWindow("Enter Midtank number to calibrate (1-8):", "");
- //stubManager.WriteLine(response);
- stubManager.Write("\n");
- midtankno = uint.Parse(response);
-
- var response1 = stubManager.ShowResponseWindow("Enter Midtank Slop ", "");
- //stubManager.WriteLine(response);
- stubManager.Write("\n");
- Slop = double.Parse(response1);
-
- var response2= stubManager.ShowResponseWindow("Enter Zero point (100cc)", "");
- //stubManager.WriteLine(response);
- stubManager.Write("\n");
- Zero_Point = double.Parse(response2);
-
- DialogResult result = MessageBox.Show("Are you sure to calibrate Midtank No: "+ midtankno + "with Slop "+ Slop +" and Zero_Point " + Zero_Point , "Warning",MessageBoxButtons.YesNo);
- if(result == DialogResult.Yes)
- {
- MidTankData midTankData = new MidTankData();
- midTankData.MidTankId = midtankno-1;
- midTankData.InitialOffsetA = Zero_Point;
- midTankData.SlopeB = Slop;
- midTankDataSetupRequest.MidTankInfo.Add(midTankData);
- var response3 = stubManager.Run<MidTankDataSetupResponse>(midTankDataSetupRequest);
- string box_msg ="Turn Power Off and On to finish the calibration.";
- MessageBox.Show(box_msg);
-
- }
-
-}
-
-
-
-//MidTankDataSetupRequest midTankDataSetupRequest = new MidTankDataSetupRequest();
-
-//50cc [V] 1.93242734375 1.94375546875 1.9295953125 1.935259375 1.92109921875 2.8245171875 1.92676328125 1.92676328125
- //b [mL/V] -1 -1 -1 -1 -1 0.885922630082808 -1 -1
-/*
-MidTankData midTankData = new MidTankData();
-midTankData.MidTankId = 0;
-midTankData.InitialOffsetA = 2.64273428916931;
-midTankData.SlopeB = 0.899999976158142;
-
-MidTankData midTankData1 = new MidTankData();
-midTankData1.MidTankId = 1;
-midTankData1.InitialOffsetA = 2.63755464553833;
-midTankData1.SlopeB = 0.899999976158142;
-
-MidTankData midTankData2 = new MidTankData();
-midTankData2.MidTankId = 2;
-midTankData2.InitialOffsetA = 2.63525938987732;
-midTankData2.SlopeB = 0.899999976158142;
-
-MidTankData midTankData3 = new MidTankData();
-midTankData3.MidTankId = 3;
-midTankData3.InitialOffsetA = 1.4276158142;
-midTankData3.SlopeB = 0.899999976158142;
-
-
-MidTankData midTankData4 = new MidTankData();
-midTankData4.MidTankId = 4;
-midTankData4.InitialOffsetA = 2.61099219322205;
-midTankData4.SlopeB = 0.899999976158142;
-
-
-MidTankData midTankData5 = new MidTankData();
-midTankData5.MidTankId = 5;
-midTankData5.InitialOffsetA = 2.62451720237732;
-midTankData5.SlopeB = 0.899999976158142;
-
-
-MidTankData midTankData6 = new MidTankData();
-midTankData6.MidTankId = 6;
-midTankData6.InitialOffsetA = 2.62676334381104;
-midTankData6.SlopeB = 0.899999976158142;
-
-MidTankData midTankData7 = new MidTankData();
-midTankData7.MidTankId = 7;
-midTankData7.InitialOffsetA = 2.62676334381104;
-midTankData7.SlopeB = 0.899999976158142;
-
-
-
-midTankDataSetupRequest.MidTankInfo.Add(midTankData);
-midTankDataSetupRequest.MidTankInfo.Add(midTankData1);
-midTankDataSetupRequest.MidTankInfo.Add(midTankData2);
-midTankDataSetupRequest.MidTankInfo.Add(midTankData3);
-midTankDataSetupRequest.MidTankInfo.Add(midTankData4);
-midTankDataSetupRequest.MidTankInfo.Add(midTankData5);
-midTankDataSetupRequest.MidTankInfo.Add(midTankData6);
-midTankDataSetupRequest.MidTankInfo.Add(midTankData7);
-
-
-var response = stubManager.Run<MidTankDataSetupResponse>(midTankDataSetupRequest);
- */
-
-//}
-
-/*
- int insert_slop_t_eeprom()
-{
- stubManager.Write("\n ");
-
- MidTankDataSetupRequest midTankDataSetupRequest = new MidTankDataSetupRequest();
-
-
- for (uint i=1;i<9;i++)
- {
- if (voltage_array[i,4]!= ERROR_SLOP)
- {
- MidTankData midTankData = new MidTankData();
- midTankData.MidTankId = i-1;
- midTankData.InitialOffsetA = voltage_array[i,2];
- midTankData.SlopeB = voltage_array[i,4];
-
- stubManager.Write("\nMidtank No:" + i+ "=\tA="+voltage_array[i,2]+"\tSlop="+voltage_array[i,4]);
-
-
- midTankDataSetupRequest.MidTankInfo.Add(midTankData);
-
- }
-var response = stubManager.Run<MidTankDataSetupResponse>(midTankDataSetupRequest);
-
-
-
- }
-}
-
-*/
-
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/read_midtank_calibration.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/read_midtank_calibration.cs
deleted file mode 100644
index 469772888..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/read_midtank_calibration.cs
+++ /dev/null
@@ -1,37 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
- int i;
-
- for(i=0;i<8;i++)
- {
-
- var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xA, i);
- stubManager.Write("\n Initial_Offset_A [#");
- stubManager.Write(i);
- stubManager.Write("] = ");
- stubManager.WriteLine(response.Progress);
- }
-
- for(i=0;i<8;i++)
- {
- var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xB, i);
- stubManager.Write("\n Slope_B [#");
- stubManager.Write(i);
- stubManager.Write("] = ");
- stubManager.WriteLine(response1.Progress);
- }
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/New_DyeHead/Test_Actuator.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/New_DyeHead/Test_Actuator.cs
deleted file mode 100644
index f9555a05b..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/New_DyeHead/Test_Actuator.cs
+++ /dev/null
@@ -1,42 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
- int sleep_up=2000;//2 second
- int sleep_dn=2000;//2 second
- var response = stubManager.ShowResponseWindow("Enter Loop Number for Actuator.", "");
- //stubManager.WriteLine(response);
- int Loop_Nm = int.Parse(response);
-
- for (int i=0;i<Loop_Nm;i++)
- {
-
-
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf000); //mov ACTUATOR-IN down
- Thread.Sleep(sleep_dn);
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf101); //mov ACTUATOR-OUT up
- Thread.Sleep(sleep_dn);
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf001); //mov ACTUATOR-IN up
- Thread.Sleep(sleep_up);
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf100); //mov ACTUATOR-OUT down
- Thread.Sleep(sleep_up);
-
- }
- // stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf100); //mov ACTUATOR-OUTdown
- // stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf101); //mov ACTUATOR-OUT up
-
-
-
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/New_DyeHead/Test_Lid.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/New_DyeHead/Test_Lid.cs
deleted file mode 100644
index 110a0f09b..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/New_DyeHead/Test_Lid.cs
+++ /dev/null
@@ -1,145 +0,0 @@
-using System;
-using System.Text;
-using System.IO;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-const int New_DyeHead_UNDER_TEST=48;
-
-const Int32 MGNET_OPEN=0x42F801;
-const Int32 MGNET_EN=0x42F701;
-const Int32 MGNET_CLOSE=0x42F800;
-const Int32 MGNET_DIS=0x42F700;
-
-const Int32 LS_FRONT=0X460110;
-const Int32 LS_REAR=0X460120;
-const Int32 LS_UPPER=0X460140;
-const Int32 LS_SPARE=0X460180;
-
-const Int32 DyeingHeadLid_Motor = 2;
-
-//--------------------------------------------------------------------------------
-
-public void OnExecute(StubManager stubManager)
-{
- var response = stubManager.ShowResponseWindow("Enter Loop Number for Dye Head Lead.", "");
- //stubManager.WriteLine(response);
- int Loop_Nm = int.Parse(response);
-
- for (int i=0;i<Loop_Nm;i++)
- {
- if (Test_Magnet_Motor_LS_New_DyeHead() != 0 )
- {
- i=Loop_Nm;
- stubManager.Write("Error");
- }
- Thread.Sleep(2000);
- }
-}
-
-//-------------------------------------------------------------
-
-//--------------------------------------------
- int Test_Magnet_Motor_LS_New_DyeHead()
-{
- Int32 temp;
- int i=0;
-
-//---------------------- open Magnet ----------------------------
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,MGNET_OPEN); // turn magnet on
- Thread.Sleep(100);
-
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,MGNET_EN); // magnet enable
- Thread.Sleep(100);
-
- Thread.Sleep(1000);
-//---------------------- chekc Magnet is open ----------------------------
-// DialogResult result = MessageBox.Show("Make shure, Magnet is open and DyeHead cover on front.", "Warning",MessageBoxButtons.YesNo);
-// if(result == DialogResult.No)
-// {
-// stubManager.Write("Magnet is close\n");
-// return 0;
-// }
- temp=read_pio (LS_UPPER); // read LS_UPPER
- if (temp != 0)
- {
- stubManager.Write("LS_UPPER of Magnet is close\n");
- return 1;
- }
- stubManager.Write("Magnet is Open\n");
-
-
-//---------------------- Move DyeingHead Lid Motor rear----------------------------
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DyeingHeadLid_Motor, true, 250);
- stubManager.Write("*** Open Lid Head ********* \n");
-
- temp = 0;
- i=0;
- while ((temp == 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec
- {
- temp=read_pio (LS_REAR); // read LS_REAR
- Thread.Sleep(50);
-
- i++;
- }
-
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor,3); //stop motor
- if(i==200)
- {
- stubManager.Write("LS_REAR Not calibrate\n");
- return 1;
- }
-
-//---------------------- Move DyeingHead Lid Motor front----------------------------
- stubManager.Write("*** Close Lid Head \n");
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DyeingHeadLid_Motor, false, 250);
- temp = 0;
- i=0;
- while ((temp == 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec
- {
- temp=read_pio (LS_FRONT); // read LS_FRONT
- Thread.Sleep(50);
- i++;
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor,3); //stop motor
- if(i==200)
- {
- stubManager.Write("LS_FRONT Not calibrate\n");
- return 1;
- }
-//---------------------- Close Magnet ----------------------------
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,MGNET_CLOSE); // turn magnet off
- Thread.Sleep(2000);
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,MGNET_DIS); // magnet Disable
-
- stubManager.Write("Magnet is Close\n");
- Thread.Sleep(1000);
-
- temp=read_pio (LS_UPPER); // read LS_UPPER
- if (temp == 0)
- {
- stubManager.Write("LS_UPPER of Magnet is open\n");
- return 1;
- }
- stubManager.Write("LS_UPPER of Magnet is close\n");
- return 0;
- }
-
-Int32 read_pio(Int32 i2c_input)
-{
- Int32 temp=0;
- var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,i2c_input); // read break
-
- temp = (Int32) (response.Progress);
- temp =temp & (i2c_input& 0xff); //if break ok
-
- return temp;
-}
-//end mati
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/Read_Cartridge_Present.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/Read_Cartridge_Present.cs
deleted file mode 100644
index 397999f12..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/Read_Cartridge_Present.cs
+++ /dev/null
@@ -1,97 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-include "..\..\Defines\Tango_Defines_Basic.cs"
-include "Tango_Defines_LimitSwitch.cs"
-//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_Basic.cs"
-//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_LimitSwitch.cs"
-
-//MF 23092018 2 spare LS not include
-
-const Int32 F3_CARTx_PRES_02_Direct = 0x60000870;
-const Int32 F3_LOW_Cart_Led1 = 0x60000ba4;
-const Int32 F3_High_Cart_Led1 = 0x60000ba6;
-const Int32 F3_LOW_Cart_Led2 = 0x60000ba8;
-const Int32 F3_High_Cart_Led2 = 0x60000baa;
-const Int32 F3_LOW_Cart_Led3 = 0x60000bac;
-const Int32 F3_High_Cart_Led3 = 0x60000bae;
-
-const Int32 F3_PreScalar_Leds = 0x60000be8;
-
-
-public void OnExecute(StubManager stubManager)
-{
-
- uint Temp = 0;
- uint Temp1 = 0;
- int counter = 0;
- stubManager.Write("\nReading register F3_CARTx_PRES_02_Direct: ");
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_LOW_Cart_Led1,100);//Low 8 bit
-
-var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F3_PreScalar_Leds,250);
- stubManager.WriteHex(response.Value,4);
- Temp = response.Value;
- stubManager.Write("\nActivate limit switches one-by-one");
-
- while ( counter != 1000)
- {
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F3_CARTx_PRES_02_Direct);
-
-
-
- if (response.Value != Temp)
- {
- stubManager.WriteHex(response.Value,4);
-
-
- Temp1=response.Value & 0x080;
- if (Temp1 ==0x0080)
- {
- stubManager.Write("\nCART1_PRES");
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_LOW_Cart_Led1,255);//Low 8 bit
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_High_Cart_Led1,255);//High 8 bit
-
-
- }
- Temp1=response.Value & 0x0040;
- if (Temp1 ==0x0040)
- {
- stubManager.Write("\nCART2_PRES");
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_LOW_Cart_Led2,255);//Low 8 bit
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_High_Cart_Led2,255);//High 8 bit
- }
-
- Temp1=response.Value & 0x0020;
- if (Temp1 ==0x0020)
- {
- stubManager.Write("\nCART3_PRES");
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_LOW_Cart_Led3,255);//Low 8 bit
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_High_Cart_Led3,255);//High 8 bit
- }
-
-
- counter = counter + 1;
- }
- Thread.Sleep(1000);
- Temp = response.Value;
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_LOW_Cart_Led1,10);//Low 8 bit
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_High_Cart_Led1,1);//High 8 bit
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_LOW_Cart_Led2,10);//Low 8 bit
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_High_Cart_Led2,1);//High 8 bit
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_LOW_Cart_Led3,10);//Low 8 bit
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_High_Cart_Led3,1);//High 8 bit
-
- }
-
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/Tamper_sw.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/Tamper_sw.cs
deleted file mode 100644
index 2c51aebe7..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/Tamper_sw.cs
+++ /dev/null
@@ -1,94 +0,0 @@
-sing System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-include "..\..\Defines\Tango_Defines_Basic.cs"
-include "Tango_Defines_LimitSwitch.cs"
-//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_Basic.cs"
-//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_LimitSwitch.cs"
-
-//MF 23092018 2 spare LS not include
-
-const Int32 F3_GPI_01_Direct = 0x60000820;
-
-public void OnExecute(StubManager stubManager)
-{
-
- uint Temp = 0;
- uint Temp1 = 0;
- int counter = 0;
- stubManager.Write("\nReading register F3_GPI_01_Direct: ");
-
-var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F3_GPI_01_Direct);
- stubManager.WriteHex(response.Value,4);
- Temp = response.Value;
- stubManager.Write("\nActivate limit switches one-by-one");
-
- while ( counter != 1000)
- {
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F3_GPI_01_Direct);
-
-
-
- if (response.Value != Temp)
- {
- stubManager.WriteHex(response.Value,4);
-
-
- Temp1=response.Value & 0x0008;
- if (Temp1 ==0x0008)
- {
- stubManager.Write("\nF3_GPI_PANSW6");
-
- }
- Temp1=response.Value & 0x0010;
- if (Temp1 ==0x0010)
- {
- stubManager.Write("\nF3_GPI_PANSW5");
- }
-
- Temp1=response.Value & 0x0020;
- if (Temp1 ==0x0020)
- {
- stubManager.Write("\nF3_GPI_PANSW4");
- }
-
- Temp1=response.Value & 0x0040;
- if (Temp1 ==0x0040)
- {
- stubManager.Write("\nF3_GPI_PANSW3");
- }
-
- Temp1=response.Value & 0x0080;
- if (Temp1 ==0x0080)
- {
- stubManager.Write("\nF3_GPI_PANSW2");
- }
-
-
- Temp1=response.Value & 0x0100;
- if (Temp1 ==0x0100)
- {
- stubManager.Write("\nF3_GPI_PANSW1");
- }
-
-
-
- counter = counter + 1;
- }
- Thread.Sleep(1000);
- Temp = response.Value;
-
- }
-
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/Tamper_switch.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/Tamper_switch.cs
deleted file mode 100644
index 9b741d981..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/Tamper_switch.cs
+++ /dev/null
@@ -1,72 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-include "..\..\Defines\Tango_Defines_Basic.cs"
-include "Tango_Defines_LimitSwitch.cs"
-//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_Basic.cs"
-//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_LimitSwitch.cs"
-
-
-
-public void OnExecute(StubManager stubManager)
-{
- uint Temp = 0;
- uint Temp1 = 0;
- int counter = 0;
- stubManager.Write("\nReading register F3_GPI_01_Direct: ");
- var RetVal = Fpga_Read_Reg(FPGA3, F3_GPI_01_Direct, 0);
- stubManager.WriteHex(RetVal.Value,4);
- Temp = RetVal.Value;
- stubManager.Write("\nActivate Tamper switches one-by-one");
-
- while ( counter != 100000)
- {
- RetVal = Fpga_Read_Reg(FPGA3, F3_GPI_01_Direct, 0);
- if (RetVal.Value != Temp)
- {
- stubManager.Write("\nRegister F3_GPI_01_Direct new value: ");
- stubManager.WriteHex(RetVal.Value, 4);
-
- Temp1=RetVal.Value & 0x0008;
- if (Temp1 !=0x0008)
- stubManager.Write("\nPANSW6");
-
-
- Temp1=RetVal.Value & 0x0010;
- if (Temp1 !=0x0010)
- stubManager.Write("\nPANSW5");
-
- Temp1=RetVal.Value & 0x0020;
- if (Temp1 !=0x0020)
- stubManager.Write("\nPANSW4");
-
- Temp1=RetVal.Value & 0x0040;
- if (Temp1 !=0x0040)
- stubManager.Write("\nPANSW3");
-
- Temp1=RetVal.Value & 0x0080;
- if (Temp1 !=0x0080)
- stubManager.Write("\nPANSW2");
-
- Temp1=RetVal.Value & 0x0100;
- if (Temp1 !=0x0100)
- stubManager.Write("\nPANSW1");
-
-
- counter = counter + 1;
- }
- Thread.Sleep(100);
- Temp = RetVal.Value;
-
- }
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/ssr9-chiller.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/ssr9-chiller.cs
deleted file mode 100644
index 28d6f69fc..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/ssr9-chiller.cs
+++ /dev/null
@@ -1,38 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-include "..\..\Defines\Tango_Defines_Basic.cs"
-include "Tango_Defines_SSR.cs"
-//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\Software\Stub_scripts\Tango_Defines_Basic.cs"
-//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\Software\Stub_scripts\Interfaces\Tango_Defines_SSR.cs"
-
-//----------------------
-const Int32 I2C_ID = 2;
-//const Int32 I2C_Slave_Add = 0x46; //must be 0x40, 0x44 or 0x46
-//----------------------
-
-
-public void OnExecute(StubManager stubManager)
-{
-
-
- UInt32 temp=0;
-
-
- //Write F2_GPO_CHILLER_SSR9_CTRL SSR/SSR no. 9
- SetBit (FPGA2, F2_CTRL, 2, 1);
- stubManager.Write("\tTesting SSR no. 9\tCHILLER\t");
- Thread.Sleep(10000);
- SetBit (FPGA2, F2_CTRL, 2, 0);
-
-
-}
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Get_PowerStep01_Parameters.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Get_PowerStep01_Parameters.cs
deleted file mode 100644
index ebe0dbf0f..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Get_PowerStep01_Parameters.cs
+++ /dev/null
@@ -1,227 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-//unmark Auto logging !
-
-const Int32 x_POWERSTEP01_CONFIG = 0x1A;
-const Int32 x_POWERSTEP01_STATUS = 0x1B;
-const Int32 x_POWERSTEP01_GATECFG1 = 0x18;
-const Int32 x_POWERSTEP01_GATECFG2 = 0x19;
-
-const Int32 x_ABS_POS = 0x01;
-const Int32 x_EL_POS = 0x02;
-const Int32 x_MARK = 0x03;
-const Int32 x_SPEED = 0x04;
-const Int32 x_ACC = 0x05;
-const Int32 x_DEC = 0x06;
-const Int32 x_MAX_SPEED = 0x07;
-const Int32 x_MIN_SPEED = 0x08;
-const Int32 x_FS_SPD = 0x15;
-const Int32 x_KVAL_HOLD = 0x09;
-const Int32 x_KVAL_RUN = 0x0A;
-const Int32 x_KVAL_ACC = 0x0B;
-const Int32 x_KVAL_DEC = 0x0C;
-const Int32 x_INT_SPD = 0x0D;
-const Int32 x_ST_SLP = 0x0E;
-const Int32 x_FN_SLP_ACC = 0x0F;
-const Int32 x_FN_SLP_DEC = 0x10;
-const Int32 x_K_THERM = 0x11;
-const Int32 x_ADC_OUT = 0x12;
-const Int32 x_OCD_TH = 0x13;
-const Int32 x_STALL_TH = 0x14;
-const Int32 x_STEP_MODE = 0x16;
-const Int32 x_ALARM_EN = 0x17;
-const Int32 x_CONFIG = 0x18;
-const Int32 x_STATUS = 0x19;
-//-------------------------------
-const Int32 x_GET_PARAM = 0x20;
-//-------------------------------
-const Int32 Max_Motor_ID = 25;
-
-string[] Motor_ID = new string[30];
-
-
-Motor_ID[0] ="DH_CLEANHEAD ";
-Motor_ID[1] ="DH_CLEANMECH ";
-Motor_ID[2] ="DH_LID ";
-Motor_ID[3] ="DRYER_DRIVING";
-Motor_ID[4] ="DRYER_LID ";
-Motor_ID[5] ="DRYER_LOADARM";
-Motor_ID[6] ="DISPENCER_1 ";
-Motor_ID[7] ="DISPENCER_2 ";
-Motor_ID[8] ="DISPENCER_3 ";
-Motor_ID[9] ="DISPENCER_4 ";
-Motor_ID[10]="DISPENCER_5 ";
-Motor_ID[11]="DISPENCER_6 ";
-Motor_ID[12]="DISPENCER_7 ";
-Motor_ID[13]="DISPENCER_8 ";
-Motor_ID[14]="SCREW ";
-Motor_ID[15]="WINDER ";
-Motor_ID[16]="LDANCER1 ";
-Motor_ID[17]="LDANCER2 ";
-Motor_ID[18]="LDRIVING ";
-Motor_ID[19]="LLODING ";
-Motor_ID[20]="LPIVOT ";
-Motor_ID[21]="RDANCER ";
-Motor_ID[22]="RDRIVING ";
-Motor_ID[23]="RLOADARM ";
-Motor_ID[24]="RLODING ";
-Motor_ID[25]="SPARE1_1 ";
-Motor_ID[26]="SPARE1_2 ";
-Motor_ID[27]="SPARE2_1 ";
-Motor_ID[28]="SPARE2_2 ";
-Motor_ID[29]="SPARE3 ";
-
-public void OnExecute(StubManager stubManager)
-{
-
- var i = stubManager.ShowResponseWindow("Please Enter Motor ID:");
-
- stubManager.Write("Motor_ID:\t\t ");
- stubManager.Write(i);
- stubManager.Write("\n");
-
- stubManager.Write("ABS_POS:\t\t");
- var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ABS_POS)<<24, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("EL_POS:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_EL_POS)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("MARK:\t\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MARK)<<24, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("SPEED:\t\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_SPEED)<<24, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("ACC:\t\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ACC)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("DEC:\t\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_DEC)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("MAX_SPEED:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MAX_SPEED)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("MIN_SPEED:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MIN_SPEED)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("FS_SPD:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FS_SPD)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("KVAL\\TVAL_HOLD:\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_HOLD)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("KVAL\\TVAL_RUN:\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_RUN)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("KVAL\\TVAL_ACC:\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_ACC)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("KVAL\\TVAL_DEC:\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_DEC)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("INT_SPEED:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_INT_SPD)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("ST_SLP\\T_FAST:\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ST_SLP)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("FN_SLP_ACC\\TON_MIN:\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_ACC)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("FN_SLP_DEC\\TOFF_MIN:");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_DEC)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("K_THERM:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_K_THERM)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("ADC_OUT:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ADC_OUT)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("OCD_TH:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_OCD_TH)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("STALL_TH:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STALL_TH)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("STEP_MODE:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("ALARM_EN:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ALARM_EN)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("GATECFG1:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG1)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("GATECFG2:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG2)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("CONFIG:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_CONFIG)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("STATUS:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_STATUS)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Logger Temprature/Book4.xlsx b/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Logger Temprature/Book4.xlsx
deleted file mode 100644
index ef3a94e64..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Logger Temprature/Book4.xlsx
+++ /dev/null
Binary files differ
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Logger Temprature/Copy of Book4.xlsx b/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Logger Temprature/Copy of Book4.xlsx
deleted file mode 100644
index 6ea3df3ad..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Logger Temprature/Copy of Book4.xlsx
+++ /dev/null
Binary files differ
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Logger Temprature/Logger data.xlsx b/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Logger Temprature/Logger data.xlsx
deleted file mode 100644
index 0d4bd4d8a..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Logger Temprature/Logger data.xlsx
+++ /dev/null
Binary files differ
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Motor_GMotor_Get_Param_Powerstep01_rev2.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Motor_GMotor_Get_Param_Powerstep01_rev2.cs
deleted file mode 100644
index 505444080..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Motor_GMotor_Get_Param_Powerstep01_rev2.cs
+++ /dev/null
@@ -1,292 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-//unmark Auto logging !
-
-//General Configuration
-const Int32 x_ABS_POS = 0x01;
-const Int32 x_EL_POS = 0x02;
-const Int32 x_MARK = 0x03;
-const Int32 x_SPEED = 0x04;
-const Int32 x_ACC = 0x05;
-const Int32 x_DEC = 0x06;
-const Int32 x_MAX_SPEED = 0x07;
-const Int32 x_MIN_SPEED = 0x08;
-const Int32 x_ADC_OUT = 0x12;
-const Int32 x_OCD_TH = 0x13;
-const Int32 x_FS_SPD = 0x15;
-const Int32 x_STEP_MODE = 0x16;
-const Int32 x_ALARM_EN = 0x17;
-const Int32 x_POWERSTEP01_GATECFG1 = 0x18;
-const Int32 x_POWERSTEP01_GATECFG2 = 0x19;
-const Int32 x_POWERSTEP01_CONFIG = 0x1A;
-const Int32 x_POWERSTEP01_STATUS = 0x1B;
-//VOLTAGE / CURRENT
-const Int32 x_KTVAL_HOLD = 0x09;
-const Int32 x_KTVAL_RUN = 0x0A;
-const Int32 x_KTVAL_ACC = 0x0B;
-const Int32 x_KTVAL_DEC = 0x0C;
-const Int32 x_ST_SLP_T_FAST = 0x0E;
-const Int32 x_FN_SLP_ACC_TON_MIN = 0x0F;
-const Int32 x_FN_SLP_DEC_TOFF_MIN = 0x10;
-
-const Int32 x_INT_SPD = 0x0D;//voltage
-const Int32 x_K_THERM = 0x11;//VOLTAGE
-const Int32 x_STALL_TH = 0x14;//VOLTAGE
-
-//-------------------------------
-const Int32 x_GET_PARAM = 0x20;
-//-------------------------------
-Int32 Start_index = 0; // start from motor
-
-const Int32 Max_Motor_ID = 25;
-
-string[] Motor_ID = new string[30];
-
-
-Motor_ID[0] ="DH_CLEANHEAD ";
-Motor_ID[1] ="DH_CLEANMECH ";
-Motor_ID[2] ="DH_LID ";
-Motor_ID[3] ="DRYER_DRIVING";
-Motor_ID[4] ="DRYER_LID ";
-Motor_ID[5] ="DRYER_LOADARM";
-Motor_ID[6] ="DISPENCER_1 ";
-Motor_ID[7] ="DISPENCER_2 ";
-Motor_ID[8] ="DISPENCER_3 ";
-Motor_ID[9] ="DISPENCER_4 ";
-Motor_ID[10]="DISPENCER_5 ";
-Motor_ID[11]="DISPENCER_6 ";
-Motor_ID[12]="DISPENCER_7 ";
-Motor_ID[13]="DISPENCER_8 ";
-Motor_ID[14]="SCREW ";
-Motor_ID[15]="WINDER ";
-Motor_ID[16]="LDANCER1 ";
-Motor_ID[17]="LDANCER2 ";
-Motor_ID[18]="LDRIVING ";
-Motor_ID[19]="LLODING ";
-Motor_ID[20]="LPIVOT ";
-Motor_ID[21]="RDANCER ";
-Motor_ID[22]="RDRIVING ";
-Motor_ID[23]="RLOADARM ";
-Motor_ID[24]="RLODING ";
-Motor_ID[25]="SPARE1_1 ";
-Motor_ID[26]="SPARE1_2 ";
-Motor_ID[27]="SPARE2_1 ";
-Motor_ID[28]="SPARE2_2 ";
-Motor_ID[29]="SPARE3 ";
-
-
-
-
-public void OnExecute(StubManager stubManager)
-{
- Int32 i = 0;
-
- Int32 motname = 0;
-//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000380 , 0x06b9); //7ff mati
-//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000390 , 0x003f);
-//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000550 , 0x0003); //ff mati
-//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000b80 , 0x001f);
-
- for (i = Start_index; i < Max_Motor_ID; i++)
- {
-
- if((i%8 ==0) )
- {
- stubManager.Write("\n\n");
- stubManager.Write("MoTor\t\t\tMIN_SPEED\tMAX_SPEED\tSTEP_MODE\tACC\t\tDEC\t\tKTVAL_HOLD\tKTVAL_RUN\tTKVAL_ACC\tTKVAL_DEC\tOCD_TH\t\tSTALL_TH\tFS_SPD\n");
- stubManager.Write("------\t\t\t--------\t--------\t----------\t---\t\t---\t\t----------\t---------\t---------\t---------\t------\t\t--------\t------\n");
- }
- //stubManager.Write(i);
-
- stubManager.Write(Motor_ID[i]);
- stubManager.Write("\t\t");
-
- var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MIN_SPEED)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MAX_SPEED)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ACC)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_DEC)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KTVAL_HOLD)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KTVAL_RUN)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KTVAL_ACC)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KTVAL_DEC)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_OCD_TH)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STALL_TH)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FS_SPD)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- stubManager.Write("\n\n");
-
- }
-
-
-
- for (i = Start_index; i < Max_Motor_ID; i++)
- {
-
- if((i%8 ==0) )
- {
- stubManager.Write("\n\n");
-
- stubManager.Write("MoTor\t\t\tINT_SPD\tST_SLP\t\tSLP_ACC_TON_MIN\tSLP_DEC_TOFF_MIN\n");
- stubManager.Write("-----\t\t\t-------\t------\t\t---------------\t----------------\n");
- }
-
- stubManager.Write(Motor_ID[i]);
-
-// stubManager.Write(i);
- stubManager.Write("\t\t");
-
- var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_INT_SPD)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ST_SLP_T_FAST)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_ACC_TON_MIN)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_DEC_TOFF_MIN)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- stubManager.Write("\n\n");
-
- }
-
-
- for (i = Start_index; i < Max_Motor_ID; i++)
- {
-
- if((i%8 ==0) )
- {
- stubManager.Write("\n\n");
-
- stubManager.Write("MoTor\t\t\tPS01_CONFIG\t\tPS01_STATUS\t\tPS01_GATECFG1\t\tPS01_GATECFG2\n");
- stubManager.Write("-----\t\t\t------------\t\t-----------\t\t-------------\t\t------------\n");
- }
-
- stubManager.Write(Motor_ID[i]);
- stubManager.Write("\t\t");
-
- var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_CONFIG)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_STATUS)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG1)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG2)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n\n");
-
-
- }
-
- for (i = Start_index; i < Max_Motor_ID; i++)
- {
-
- if((i%8 ==0) )
- {
- stubManager.Write("\n\n");
-
- stubManager.Write("MoTor\t\t\tABS_POS\tEL_POS\t\tMARK\t\tSPEED\t\tALARM_EN\tK_THERM\tADC_OUT\tDriver_Type\n");
- stubManager.Write("-----\t\t\t-------\t------\t\t----\t\t-----\t\t--------\t--------\t------\t\t---------\n");
- }
-
- stubManager.Write(Motor_ID[i]);
-
- stubManager.Write("\t\t");
-
- var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ABS_POS)<<24, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_EL_POS)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MARK)<<24, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_SPEED)<<24, 0, 0);
- stubManager.WriteHex((response.RecivedData * 1000.0 / 67108.0),4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ALARM_EN)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_K_THERM)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ADC_OUT)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- if( response.RecivedData > 0x15 && response.RecivedData < 0x1c )
- stubManager.Write("\t\tDual_Driver");
- else if ( response.RecivedData > 0x0b && response.RecivedData < 0x12 )
- stubManager.Write("\t\tVolage_Driver");
- else if ( response.RecivedData > 8 && response.RecivedData < 0x0a)
- stubManager.Write("\t\tCurrent_Driver");
- else
- stubManager.Write("\t\tNo_Driver");
-
- stubManager.Write("\n\n");
-
- }
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Motor_GMotor_Get_Param_Powerstep01_rev3.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Motor_GMotor_Get_Param_Powerstep01_rev3.cs
deleted file mode 100644
index 384c079fa..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Motor_GMotor_Get_Param_Powerstep01_rev3.cs
+++ /dev/null
@@ -1,237 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-//unmark Auto logging !
-
-//General Configuration
-const Int32 x_ABS_POS = 0x01;
-const Int32 x_EL_POS = 0x02;
-const Int32 x_MARK = 0x03;
-const Int32 x_SPEED = 0x04;
-const Int32 x_ACC = 0x05;
-const Int32 x_DEC = 0x06;
-const Int32 x_MAX_SPEED = 0x07;
-const Int32 x_MIN_SPEED = 0x08;
-//VOLTAGE / CURRENT
-const Int32 x_KTVAL_HOLD = 0x09;
-const Int32 x_KTVAL_RUN = 0x0A;
-const Int32 x_KTVAL_ACC = 0x0B;
-const Int32 x_KTVAL_DEC = 0x0C;
-const Int32 x_INT_SPD = 0x0D;//voltage
-const Int32 x_ST_SLP_T_FAST = 0x0E;
-const Int32 x_FN_SLP_ACC_TON_MIN = 0x0F;
-const Int32 x_FN_SLP_DEC_TOFF_MIN = 0x10;
-const Int32 x_K_THERM = 0x11;//VOLTAGE
-const Int32 x_ADC_OUT = 0x12;
-const Int32 x_OCD_TH = 0x13;
-const Int32 x_STALL_TH = 0x14;//VOLTAGE
-const Int32 x_FS_SPD = 0x15;
-const Int32 x_STEP_MODE = 0x16;
-const Int32 x_ALARM_EN = 0x17;
-const Int32 x_POWERSTEP01_GATECFG1 = 0x18;
-const Int32 x_POWERSTEP01_GATECFG2 = 0x19;
-const Int32 x_POWERSTEP01_CONFIG = 0x1A;
-const Int32 x_POWERSTEP01_STATUS = 0x1B;
-//VOLTAGE / CURRENT
-
-//-------------------------------
-const Int32 x_GET_PARAM = 0x20;
-//-------------------------------
-Int32 Start_index = 0; // start from motor
-
-const Int32 Max_Motor_ID = 25;
-
-string[] Motor_ID = new string[30];
-
-
-Motor_ID[0] ="DH_CLEANHEAD ";
-Motor_ID[1] ="DH_CLEANMECH ";
-Motor_ID[2] ="DH_LID ";
-Motor_ID[3] ="DRYER_DRIVING";
-Motor_ID[4] ="DRYER_LID ";
-Motor_ID[5] ="DRYER_LOADARM";
-Motor_ID[6] ="DISPENCER_1 ";
-Motor_ID[7] ="DISPENCER_2 ";
-Motor_ID[8] ="DISPENCER_3 ";
-Motor_ID[9] ="DISPENCER_4 ";
-Motor_ID[10]="DISPENCER_5 ";
-Motor_ID[11]="DISPENCER_6 ";
-Motor_ID[12]="DISPENCER_7 ";
-Motor_ID[13]="DISPENCER_8 ";
-Motor_ID[14]="SCREW ";
-Motor_ID[15]="WINDER ";
-Motor_ID[16]="LDANCER1 ";
-Motor_ID[17]="LDANCER2 ";
-Motor_ID[18]="LDRIVING ";
-Motor_ID[19]="LLODING ";
-Motor_ID[20]="LPIVOT ";
-Motor_ID[21]="RDANCER ";
-Motor_ID[22]="RDRIVING ";
-Motor_ID[23]="RLOADARM ";
-Motor_ID[24]="RLODING ";
-Motor_ID[25]="SPARE1_1 ";
-Motor_ID[26]="SPARE1_2 ";
-Motor_ID[27]="SPARE2_1 ";
-Motor_ID[28]="SPARE2_2 ";
-Motor_ID[29]="SPARE3 ";
-
-
-
-
-public void OnExecute(StubManager stubManager)
-{
- Int32 i = 0;
-
- Int32 motname = 0;
-//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000380 , 0x06b9); //7ff mati
-//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000390 , 0x003f);
-//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000550 , 0x0003); //ff mati
-//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000b80 , 0x001f);
-
-
-// stubManager.Write("\n\n");
- stubManager.Write("MoTor\tABS_POS\tEL_POS\tMARK\tSPEED\tACC\tDEC\tMAX_SPEED\tMIN_SPEED\tKTVAL_HOLD\tKTVAL_RUN\tTKVAL_ACC\tTKVAL_DEC\tINT_SPD\tT_FAST\t TON_MIN\tTOFF_MIN\tK_THERM\tADC_OUT\tOCD_TH\tSTALL_TH\tFS_SPD\tSTEP_MODE\tALARM_EN\tGATECFG1\tGATECFG2\tCONFIG\tSTATUS\n");
-// stubManager.Write("------\t\t\t--------\t--------\t----------\t---\t\t---\t\t----------\t---------\t---------\t---------\t------\t\t--------\t------\n");
-
-
-
- for (i = Start_index; i < Max_Motor_ID; i++)
- {
-
-// if((i%8 ==0) )
-// {
-// }
- //stubManager.Write(i);
-
- stubManager.Write(Motor_ID[i]);
- stubManager.Write("\t\t");
-
- var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ABS_POS)<<24, 0, 0);
- stubManager.WriteHex(response.RecivedData,6);
- stubManager.Write("\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_EL_POS)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t");
-
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MARK)<<24, 0, 0);
- stubManager.WriteHex(response.RecivedData,6);
- stubManager.Write("\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_SPEED)<<24, 0, 0);
- stubManager.WriteHex(response.RecivedData,6);
- stubManager.Write("\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ACC)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_DEC)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MAX_SPEED)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MIN_SPEED)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t");
-
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KTVAL_HOLD)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KTVAL_RUN)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KTVAL_ACC)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KTVAL_DEC)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_INT_SPD)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t");
-
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ST_SLP_T_FAST)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_ACC_TON_MIN)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_DEC_TOFF_MIN)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t");
-
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_K_THERM)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ADC_OUT)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_OCD_TH)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t");
-
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STALL_TH)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FS_SPD)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ALARM_EN)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG1)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG2)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_CONFIG)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_STATUS)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
-
-
-
- }
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Set_PowerStep01_Parameters.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Set_PowerStep01_Parameters.cs
deleted file mode 100644
index 9571deb9e..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Set_PowerStep01_Parameters.cs
+++ /dev/null
@@ -1,230 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-//unmark Auto logging !
-
-const Int32 x_POWERSTEP01_CONFIG = 0x1A;
-const Int32 x_POWERSTEP01_STATUS = 0x1B;
-const Int32 x_POWERSTEP01_GATECFG1 = 0x18;
-const Int32 x_POWERSTEP01_GATECFG2 = 0x19;
-
-const Int32 x_ABS_POS = 0x01;
-const Int32 x_EL_POS = 0x02;
-const Int32 x_MARK = 0x03;
-const Int32 x_SPEED = 0x04;
-const Int32 x_ACC = 0x05;
-const Int32 x_DEC = 0x06;
-const Int32 x_MAX_SPEED = 0x07;
-const Int32 x_MIN_SPEED = 0x08;
-const Int32 x_FS_SPD = 0x15;
-const Int32 x_KVAL_HOLD = 0x09;
-const Int32 x_KVAL_RUN = 0x0A;
-const Int32 x_KVAL_ACC = 0x0B;
-const Int32 x_KVAL_DEC = 0x0C;
-const Int32 x_INT_SPD = 0x0D;
-const Int32 x_ST_SLP = 0x0E;
-const Int32 x_FN_SLP_ACC = 0x0F;
-const Int32 x_FN_SLP_DEC = 0x10;
-const Int32 x_K_THERM = 0x11;
-const Int32 x_ADC_OUT = 0x12;
-const Int32 x_OCD_TH = 0x13;
-const Int32 x_STALL_TH = 0x14;
-const Int32 x_STEP_MODE = 0x16;
-const Int32 x_ALARM_EN = 0x17;
-const Int32 x_CONFIG = 0x18;
-const Int32 x_STATUS = 0x19;
-//-------------------------------
-const Int32 x_GET_PARAM = 0x20;
-const Int32 x_SET_PARAM = 0x00;
-
-//-------------------------------
-const Int32 Max_Motor_ID = 25;
-
-string[] Motor_ID = new string[30];
-
-
-Motor_ID[0] ="DH_CLEANHEAD ";
-Motor_ID[1] ="DH_CLEANMECH ";
-Motor_ID[2] ="DH_LID ";
-Motor_ID[3] ="DRYER_DRIVING";
-Motor_ID[4] ="DRYER_LID ";
-Motor_ID[5] ="DRYER_LOADARM";
-Motor_ID[6] ="DISPENCER_1 ";
-Motor_ID[7] ="DISPENCER_2 ";
-Motor_ID[8] ="DISPENCER_3 ";
-Motor_ID[9] ="DISPENCER_4 ";
-Motor_ID[10]="DISPENCER_5 ";
-Motor_ID[11]="DISPENCER_6 ";
-Motor_ID[12]="DISPENCER_7 ";
-Motor_ID[13]="DISPENCER_8 ";
-Motor_ID[14]="SCREW ";
-Motor_ID[15]="WINDER ";
-Motor_ID[16]="LDANCER1 ";
-Motor_ID[17]="LDANCER2 ";
-Motor_ID[18]="LDRIVING ";
-Motor_ID[19]="LLODING ";
-Motor_ID[20]="LPIVOT ";
-Motor_ID[21]="RDANCER ";
-Motor_ID[22]="RDRIVING ";
-Motor_ID[23]="RLOADARM ";
-Motor_ID[24]="RLODING ";
-Motor_ID[25]="SPARE1_1 ";
-Motor_ID[26]="SPARE1_2 ";
-Motor_ID[27]="SPARE2_1 ";
-Motor_ID[28]="SPARE2_2 ";
-Motor_ID[29]="SPARE3 ";
-
-public void OnExecute(StubManager stubManager)
-{
-
- var i = stubManager.ShowResponseWindow("Please Enter Motor ID:");
-
- stubManager.Write("Motor_ID:\t\t ");
- stubManager.Write(i);
- stubManager.Write("\n");
-/*
- stubManager.Write("ABS_POS:\t\t");
- var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ABS_POS)<<24, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("EL_POS:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_EL_POS)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("MARK:\t\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MARK)<<24, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("SPEED:\t\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_SPEED)<<24, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("ACC:\t\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ACC)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("DEC:\t\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_DEC)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("MAX_SPEED:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MAX_SPEED)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("MIN_SPEED:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MIN_SPEED)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("FS_SPD:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FS_SPD)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("KVAL\\TVAL_HOLD:\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_HOLD)<<8+0x5, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-*/
- stubManager.Write("KVAL\\TVAL_RUN:\t");
- var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_RUN)<<8+0x20 , 0, 0) ; //3v
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("KVAL\\TVAL_ACC:\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_ACC)<<8+0x20 , 0, 0); //3v
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("KVAL\\TVAL_DEC:\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_DEC)<<8+0x20 , 0, 0); //3v
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-/*
- stubManager.Write("INT_SPEED:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_INT_SPD)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-*/
- stubManager.Write("ST_SLP\\T_FAST:\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ST_SLP)<<8, 0, 0); //0
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("FN_SLP_ACC\\TON_MIN:\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_ACC)<<8, 0, 0); //0
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("FN_SLP_DEC\\TOFF_MIN:");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_DEC)<<8, 0, 0); //00
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-/*
- stubManager.Write("K_THERM:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_K_THERM)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("ADC_OUT:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ADC_OUT)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("OCD_TH:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_OCD_TH)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("STALL_TH:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STALL_TH)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-*/
- stubManager.Write("STEP_MODE:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STEP_MODE)<<8+0x07, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-/*
- stubManager.Write("ALARM_EN:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ALARM_EN)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("GATECFG1:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG1)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("GATECFG2:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG2)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("CONFIG:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_CONFIG)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("STATUS:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_STATUS)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
- */
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/RTFU/RTFU_JIG.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/RTFU/RTFU_JIG.cs
deleted file mode 100644
index 9ffd0d9d5..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/RTFU/RTFU_JIG.cs
+++ /dev/null
@@ -1,537 +0,0 @@
-using System;
-using System.Text;
-using System.IO;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-//--------------------------------------------------------------------------------
-//--------------------------------------------------------------------------------
-//string path1="P:\\Scripts\\Assemblies\\RTFU\\RTFULog\\";
-//string path2="C:\\RTFULog\\";
-
-//string File_Name1 ;
-//string Status;
-
-//-------------------DEFINE Motors------------------
-const Int32 RDANCER_Motor = 21;
-const Int32 RDRIVING_Motor = 22;
-const Int32 RLOADING_Motor = 24;
-
-//-------------------DEFINE Motors Parameters------------------
-
-const Int32 F1_MOTO_RLOADING_TX1 = 0x60000202;
-const Int32 F1_MOTO_RLOADING_TX0 = 0x60000200;
-const Int32 F1_MOTO_RLOADING_RX1 = 0x60000206;
-const Int32 F1_MOTO_RLOADING_RX0 = 0x60000204;
-
-//-------------------DEFINE Limit Switch---------------
-const Int32 F1_LS_03_Direct =0x60000040;
-
-const Int32 F1_LS_RLOADMOTOR_UP = 0x0040 ;
-const Int32 F1_LS_RLOADMOTOR_DN = 0x0080 ;
-const Int32 F1_LS_RDANCER_UP = 0x0100;
-const Int32 F1_LS_RDANCER_DOWN = 0x0200;
-const Int32 F1_LS_RLOADRAM_DOWN = 0x0020;
-
-const Int32 F1_RDANCER_ROTENC_DATA_p_RX_lsb = 0x600001a0;
-const Int32 F1_RDANCER_ROTENC_DATA_p_RX_msb = 0x600001a2;
-const Int32 F1_RDANCER_ROTENC_DATA_p_TX = 0x600001ae;
-
-
-const int UNIT_UNDER_TEST=3+1+5;
-//--------------------------------------------------------------------------------
-string path1="P:\\Scripts\\Assemblies\\RTFU\\RTFULog\\";
-string path2="C:\\RTFULog\\";
-
-string File_Name1 ;
-string Status;
-//---------------------------
-
-string [,] Units_status = new string[UNIT_UNDER_TEST,2] {
- {"LS_RLOADMOTOR_Up","Not Test"}, //0
- {"LS_RLOADMOTOR_DOWN","Not Test"}, //1
- {"RLOADING_Motor","Not Test"}, //2
- {"DRIVING_Motor","Not Test"}, //3
- {"LS_RDANCER_DOWN","Not Test"}, //4
- {"LS_RDANCER_UP","Not Test"}, //5
- {"LS_RLOADRAM_DOWN","Not Test"}, //6
- {"RDANCER_Motor","Not Test"}, //7
- {"RDANCER_ROTENC","Not Test"}, //8
- };
-
-
-
-//-----------------------------------------------------
-string RTFU_Sn;
-//--------------------------------------------------------------------------------
-
-public void OnExecute(StubManager stubManager)
-{
-string path="";
- Form form1 = new Form();
-
-// Set the caption bar text of the form.
- form1.TopMost = true;
- form1.Text = "RTFU Test";
- form1.FormBorderStyle = FormBorderStyle.FixedDialog;
- form1.MaximizeBox = false;
- form1.MinimizeBox = false;
- form1.StartPosition = FormStartPosition.CenterScreen;
- form1.AutoSize = true;
- form1.AutoSizeMode = AutoSizeMode.GrowAndShrink;
-// Create buttons to Run.
- Button button1 = new Button ()
- {
- Width = 100,
- Height = 100,
- };
- button1.Text = "Run";
- button1.Location = new Point (40, 100);
- form1.Controls.Add(button1);
-//-----RTFU Serial Number -----------
-
- Label Label1 = new Label ()
- {
- Width = 150,
- Height = 20,
- Text =" RTFU S/N"
- };
- Label1.Location = new Point (30, 10);
- form1.Controls.Add(Label1);
- TextBox TextBox1 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text =""
- };
- TextBox1.Location = new Point (40, 40);
- form1.Controls.Add(TextBox1);
- //----------LOCATION----------
-
- Label Label3 = new Label ()
- {
- Width = 150,
- Height = 20,
- Text ="LOCATION"
- };
-Label3.Location = new Point (350, 10);
- form1.Controls.Add(Label3);
-
-
-
-TextBox TextBox3 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text =""
- };
-TextBox3.Location = new Point (360, 40);
- form1.Controls.Add(TextBox3);
-
-//--------------------------------------------------------------------------------
-
- stubManager.Write("Counter is 2 \n");
-
- button1.Click += (_,__) =>
-
- {
- if (!Directory.Exists(path1))
- {
- path=path2;
- if (!Directory.Exists(path2))
- Directory.CreateDirectory(path2);
- }
- else
- path=path1;
-
- File_Name1=path + TextBox1.Text +"_RTFU_" + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".log" ;
-
-
- stubManager.Write(File_Name1 +"\n");
- stubManager.WriteToFile(File_Name1,DateTime.Now +" " );
- stubManager.Write(DateTime.Now +"\n" );
-
- stubManager.AppendToFile(File_Name1,"RTFU Test Report" );
- stubManager.Write("RTFU Test Report\n" );
-
- stubManager.AppendToFile(File_Name1,"RTFU S/N: \t" + TextBox1.Text );
- stubManager.Write("RTFU S/N:" + TextBox1.Text +"\n" );
-
-
- stubManager.AppendToFile(File_Name1,"Location:\t" + TextBox3.Text );
- stubManager.Write("Location:" + TextBox3.Text +"\n" );
-
-
-
- Label Label5 = new Label ()
- {
- Width = 120,
- Height =100,
- Text = ""
- };
- Label5.Location = new Point (300, 100);
- Label5.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
-
- Label5.Text="Pros";
- Label5.Font = new Font("Arial", 24,FontStyle.Bold);
- form1.Controls.Add(Label5);
-
-
-//------------------------------- start test -----------
- Test_RLOADING_RTFU();
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading high z
- Thread.Sleep(100);
- Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x14000000); //set kval ran to 0x14,0.65A
-
- Test_RDRIVING_RTFU();
- Test_DANCER_RTFU();
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RDANCER_Motor, 3); //hold Rloading high z
-
- Status=write_to_file();
-
- Label5.Text=Status;
- TextBox1.Text="";
- };
-
- form1.ShowDialog();
-
- return ;
- }
- //------------------------------------
-int Test_RLOADING_RTFU()
-{
- int temp=1;
- int counter;
-
- Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x2c000000); //set kval ran to 0x2c- 1.3A
- Thread.Sleep(100);
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RLOADING_Motor, true,100); //move Rloading down
- Thread.Sleep(3000);
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading high z
- Thread.Sleep(1000);
-//------------------------------------------ check F1_LS_RLOADMOTOR_up------------------------------------------------
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //read LS
- if ((response.Value & F1_LS_RLOADMOTOR_UP) !=F1_LS_RLOADMOTOR_UP ) //if LS_RLOADMOTOR_UP is up then error
- {
- DialogResult result = MessageBox.Show("Did RLOADIN MOTOR Move?", "Warning",MessageBoxButtons.YesNo);
- if(result == DialogResult.Yes)
- {
- Units_status[0,1]="Fail";
- stubManager.Write("LS_RLOADMOTOR_UP\tFail\n");
- return 0;
- }
- else
- {
- Units_status[2,1]="Fail";
- stubManager.Write("RLOADMOTOR\tFail\n");
- return 0;
- }
- }
-
-//----------------------------------------- mov RLOADING up -------------------------------------------------
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RLOADING_Motor,false,100); //move Rloading up
- counter =0;
- while ( counter < 150)
- {
- counter = counter + 1;
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if LS_RLOADMOTOR_UP is up then move down
- if ((response.Value & F1_LS_RLOADMOTOR_UP) != F1_LS_RLOADMOTOR_UP )
- counter=250;
-
- Thread.Sleep(100);
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading high z
-
- if (counter == 150)
- {
- Units_status[0,1]="Fail";
- stubManager.Write("LS_RLOADMOTOR_UP\tFail\n");
- return 0;
- }
- DialogResult result1 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo);
- if(result1 == DialogResult.No)
- {
- Units_status[0,1]="Fail";
- stubManager.Write("LS_RLOADMOTOR_UP Not calibrate\n");
- return 0;
- }
- Units_status[0,1]="Pass";
- Units_status[2,1]="Pass";
-
-//------------------------------------------ check F1_LS_RLOADMOTOR_DN------------------------------------------------
-
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //read LS
-
- if ((response.Value & F1_LS_RLOADMOTOR_DN) !=F1_LS_RLOADMOTOR_DN ) //if LS_RLOADMOTOR_DN is up then error
- {
- Units_status[1,1]="Fail";
- stubManager.Write("LS_RLOADMOTOR_DN\tFail\n");
- return 0;
- }
-//------------------------------------------ mov RLOADING dn ------------------------------------------------
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RLOADING_Motor, true,100); //move Rloading down
- counter =0;
- while ( counter < 150)
- {
- counter = counter + 1;
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if LS_RLOADMOTOR_UP is up then move down
- if ((response.Value & F1_LS_RLOADMOTOR_DN) != F1_LS_RLOADMOTOR_DN )
- counter=250;
-
- Thread.Sleep(100);
- }
-
- if (counter == 150)
- {
- Units_status[1,1]="Fail";
- stubManager.Write("LS_RLOADMOTOR_DN\tFail\n");
- return 0;
- }
- DialogResult result2 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo);
- if(result2 == DialogResult.No)
- {
- Units_status[1,1]="Fail";
- stubManager.Write("LS_RLOADMOTOR_DN Not calibrate\n");
- return 0;
- }
- Units_status[1,1]="Pass";
- stubManager.Write("RLOADMOTOR\tPass\n");
-
- return 1 ;
-
-}
-
-//----------------------------------
-
-Int32 ReadEncoder()
-{
- Int32 temp;
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F1_RDANCER_ROTENC_DATA_p_TX, 0x0000); //triggers a TX transmission
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_RDANCER_ROTENC_DATA_p_RX_lsb);
- var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_RDANCER_ROTENC_DATA_p_RX_msb);
-
- temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff));
-
-
- return temp;
-}
-//--------------------------------------------------------------------------------
-int Test_DANCER_RTFU()
-{
- int counter;
- Int32 temp;
- Int32 temp1;
-
-//------------------------------------------ check F1_LS_RDANCER_DOWN ------------------------------------------------
-
- MessageBox.Show("Make sure RDANCER Doun");
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //read LS
- if ((response.Value & F1_LS_RDANCER_DOWN) !=F1_LS_RDANCER_DOWN ) //if F1_LS_RDANCER_DOWN is up then error
- {
- Units_status[4,1]="Fail";
- stubManager.Write("LS_RDANCER_DOWN\tFail\n");
- return 0;
- }
-//----------------------------------------- mov RDANCER_Motor up and check F1_LS_RDANCER_DOWN -------------------------------------------------
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RDANCER_Motor,true,10); //move Rloading up
- counter =0;
- while ( counter < 150)
- {
- counter = counter + 1;
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if LS_RLOADMOTOR_UP is up then move down
- if ((response.Value & F1_LS_RDANCER_DOWN) != F1_LS_RDANCER_DOWN )
- counter=250;
-
- Thread.Sleep(100);
- }
- if (counter == 150)
- {
- Units_status[4,1]="Fail";
- stubManager.Write("LS_RDANCER_DOWN\tFail\n");
- return 0;
- }
- Units_status[4,1]="Pass";
- stubManager.Write("LS_RDANCER_DOWN\tPass\n");
-
-//----------------------------------------- check F1_LS_RDANCER_UP -------------------------------------------------
-
- if ((response.Value & F1_LS_RDANCER_UP) !=F1_LS_RDANCER_UP ) //if F1_LS_RDANCER_UP is up then error
- {
- Units_status[5,1]="Fail";
- stubManager.Write("LS_RDANCER_UP\tFail\n");
- return 0;
- }
- counter =0;
- while ( counter < 150)
- {
- counter = counter + 1;
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if F1_LS_RDANCER_UP is up then move down
- if ((response.Value & F1_LS_RDANCER_UP) != F1_LS_RDANCER_UP )
- counter=250;
-
- Thread.Sleep(100);
- }
- if (counter == 150)
- {
- Units_status[5,1]="Fail";
- stubManager.Write("LS_RDANCER_UP\tFail\n");
- return 0;
- }
- Units_status[5,1]="Pass";
- stubManager.Write("LS_RDANCER_UP\tPass\n");
-
-//----------------------------------------- check F1_LS_RLOADRAM_DOWN -------------------------------------------------
-
- if ((response.Value & F1_LS_RLOADRAM_DOWN) !=F1_LS_RLOADRAM_DOWN ) //if F1_LS_RLOADRAM_DOWN is up then error
- {
- Units_status[6,1]="Fail";
- stubManager.Write("LS_RLOADRAM_DOWN\tFail\n");
- return 0;
- }
- counter =0;
- while ( counter < 150)
- {
- counter = counter + 1;
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if F1_LS_RLOADRAM_DOWN is up then move down
- if ((response.Value & F1_LS_RLOADRAM_DOWN) != F1_LS_RLOADRAM_DOWN )
- counter=250;
-
- Thread.Sleep(100);
- }
- if (counter == 150)
- {
- Units_status[6,1]="Fail";
- stubManager.Write("LS_RLOADRAM_DOWN\tFail\n");
- return 0;
- }
- Units_status[6,1]="Pass";
- stubManager.Write("LS_RLOADRAM_DOWN\tPass\n");
-
-//----------------------------------------- mov RDANCER_Motor down and check rdancer encoder -------------------------------------------------
- temp= ReadEncoder();
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RDANCER_Motor,false,10); //move Rloading down
- counter =0;
- while ( counter < 150)
- {
- counter = counter + 1;
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if LS_RLOADMOTOR_UP is up then move down
- if ((response.Value & F1_LS_RDANCER_DOWN) != F1_LS_RDANCER_DOWN )
- counter=250;
-
- Thread.Sleep(100);
- }
- if (counter == 150)
- {
- Units_status[4,1]="Fail";
- stubManager.Write("LS_RDANCER_DOWN\tFail\n");
- return 0;
- }
- Units_status[7,1]="Pass";
- stubManager.Write("RDANCER_Motor\tPass\n");
-
- temp1= ReadEncoder();
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RDANCER_Motor, 3); //hold Rloading high z
-
- stubManager.Write("temp="+temp + "\temp1="+temp1 +"\n");
-
- DialogResult result = MessageBox.Show("SSI Dancer led is Green(not blinking)?", "Warning",MessageBoxButtons.YesNo);
- if(result == DialogResult.No)
- {
- Units_status[8,1]="Fail";
- stubManager.Write("RDANCER_SSI\tFail\n");
- return 0;
- }
-
- if (temp>temp1)
- temp1=temp1+0x4000;
-
- temp1=temp1-temp;
- if ((temp1> 15000) || (temp1 <1000))
- {
- Units_status[8,1]="Fail";
- stubManager.Write("RDANCER_SSI\tFail\n");
- return 0;
- }
- Units_status[8,1]="Pass";
- stubManager.Write("RDANCER_SSI\tPass\n");
-
- return 1;
-}
-
-
-//-------------------------------------------------------------
-int Test_RDRIVING_RTFU()
-{
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RDRIVING_Motor, true,200); //move Rdriving clockwise
- stubManager.Write("RDRIVING_Motor Motor rotate \n ");
-
- DialogResult result = MessageBox.Show("Are RDRIVING Motor rotate?", "Warning",MessageBoxButtons.YesNo);
- if(result == DialogResult.No)
- {
- Units_status[3,1]="Fail";
- stubManager.Write("RDRIVING Motor not rotate\n");
- }
- else
- {
- Units_status[3,1]="Pass";
- stubManager.Write("RDRIVING Motor rotate\n");
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RDRIVING_Motor,3); //stop motor
-
- return 0;
-}
-
-
-
-//--------------------------------------------------------------------------------
-int Motor_SetParam(Int32 HighAdr, Int32 LowAdr, Int32 ParaAddr, uint ParaData1)
-{
-
- Int32 Temp = 0;
- Temp = (ParaAddr << 8 ) + ( (Int32) ParaData1 >> 24);
-
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,HighAdr, (Temp & 0xffff));
- Temp = ((Int32)ParaData1 >> 8) & 0xffff;
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,LowAdr, (Temp));
-
- return 1;
-}
- //------------------------------------
-string write_to_file()
-{
- stubManager.Write("write_to_file\n");
-
-string Stemp="Pass";
- for (int i=0;i<UNIT_UNDER_TEST;i++)
- {
- stubManager.AppendToFile(File_Name1,Units_status[i,0]+"\t" + Units_status[i,1] );
- stubManager.Write(Units_status[i,0]+"\t" + Units_status[i,1]+"\n" );
-
- if ((Units_status[i,1]=="Fail")||(Units_status[i,1]=="Not Test"))
- Stemp="Fail";
- }
- if (Stemp=="Fail")
- {
- stubManager.AppendToFile(File_Name1,"-------------RTFU Fail ------------ ");
- stubManager.Write("-------------RTFU Fail ------------ ");
- }
- else
- {
- stubManager.AppendToFile(File_Name1,"-------------RTFU Pass ------------ )");
- stubManager.Write("-------------RTFU Pass ------------ ");
- }
-
- return Stemp;
-
-}
-
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/RTFU/RTFU_JIG1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/RTFU/RTFU_JIG1.cs
deleted file mode 100644
index 500e153c4..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/RTFU/RTFU_JIG1.cs
+++ /dev/null
@@ -1,552 +0,0 @@
-using System;
-using System.Text;
-using System.IO;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-//--------------------------------------------------------------------------------
-//--------------------------------------------------------------------------------
-//string path1="P:\\Scripts\\Assemblies\\RTFU\\RTFULog\\";
-//string path2="C:\\RTFULog\\";
-
-//string File_Name1 ;
-//string Status;
-
-//-------------------DEFINE Motors------------------
-const Int32 RDANCER_Motor = 21;
-const Int32 RDRIVING_Motor = 22;
-const Int32 RLOADING_Motor = 24;
-
-//-------------------DEFINE Motors Parameters------------------
-
-const Int32 F1_MOTO_RLOADING_TX1 = 0x60000202;
-const Int32 F1_MOTO_RLOADING_TX0 = 0x60000200;
-const Int32 F1_MOTO_RLOADING_RX1 = 0x60000206;
-const Int32 F1_MOTO_RLOADING_RX0 = 0x60000204;
-
-//-------------------DEFINE Limit Switch---------------
-const Int32 F1_LS_03_Direct =0x60000040;
-
-const Int32 F1_LS_RLOADMOTOR_UP = 0x0040 ;
-const Int32 F1_LS_RLOADMOTOR_DN = 0x0080 ;
-const Int32 F1_LS_RDANCER_UP = 0x0100;
-const Int32 F1_LS_RDANCER_DOWN = 0x0200;
-const Int32 F1_LS_RLOADRAM_DOWN = 0x0020;
-
-const Int32 F1_RDANCER_ROTENC_DATA_p_RX_lsb = 0x600001a0;
-const Int32 F1_RDANCER_ROTENC_DATA_p_RX_msb = 0x600001a2;
-const Int32 F1_RDANCER_ROTENC_DATA_p_TX = 0x600001ae;
-
-
-const int UNIT_UNDER_TEST=3+1+5;
-//--------------------------------------------------------------------------------
-string path1="P:\\Scripts\\Assemblies\\RTFU\\RTFULog\\";
-string path2="C:\\RTFULog\\";
-
-string File_Name1 ;
-string Status;
-//---------------------------
-
-string [,] Units_status = new string[UNIT_UNDER_TEST,2] {
- {"LS_RLOADMOTOR_Up","Not Test"}, //0
- {"LS_RLOADMOTOR_DOWN","Not Test"}, //1
- {"RLOADING_Motor","Not Test"}, //2
- {"DRIVING_Motor","Not Test"}, //3
- {"LS_RDANCER_DOWN","Not Test"}, //4
- {"LS_RDANCER_UP","Not Test"}, //5
- {"LS_RLOADRAM_DOWN","Not Test"}, //6
- {"RDANCER_Motor","Not Test"}, //7
- {"RDANCER_ROTENC","Not Test"}, //8
- };
-
-
-
-//-----------------------------------------------------
-string RTFU_Sn;
-//--------------------------------------------------------------------------------
-
-public void OnExecute(StubManager stubManager)
-{
-string path="";
- Form form1 = new Form();
- Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x14000000); //set kval ran to 0x14,0.65A
-
-// Set the caption bar text of the form.
- form1.TopMost = true;
- form1.Text = "RTFU Test";
- form1.FormBorderStyle = FormBorderStyle.FixedDialog;
- form1.MaximizeBox = false;
- form1.MinimizeBox = false;
- form1.StartPosition = FormStartPosition.CenterScreen;
- form1.AutoSize = true;
- form1.AutoSizeMode = AutoSizeMode.GrowAndShrink;
-// Create buttons to Run.
- Button button1 = new Button ()
- {
- Width = 100,
- Height = 100,
- };
- button1.Text = "Run";
- button1.Location = new Point (40, 100);
- form1.Controls.Add(button1);
-//-----RTFU Serial Number -----------
-
- Label Label1 = new Label ()
- {
- Width = 150,
- Height = 20,
- Text =" RTFU S/N"
- };
- Label1.Location = new Point (30, 10);
- form1.Controls.Add(Label1);
- TextBox TextBox1 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text =""
- };
- TextBox1.Location = new Point (40, 40);
- form1.Controls.Add(TextBox1);
- //----------LOCATION----------
-
- Label Label3 = new Label ()
- {
- Width = 150,
- Height = 20,
- Text ="LOCATION"
- };
-Label3.Location = new Point (350, 10);
- form1.Controls.Add(Label3);
-
-
-
-TextBox TextBox3 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text =""
- };
-TextBox3.Location = new Point (360, 40);
- form1.Controls.Add(TextBox3);
-
-
-
-
- Label Label5 = new Label ()
- {
- Width = 120,
- Height =100,
- Text = ""
- };
- Label5.Location = new Point (300, 100);
- Label5.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
-
- Label5.Text="";
- Label5.Font = new Font("Arial", 24,FontStyle.Bold);
- form1.Controls.Add(Label5);
-
-
-
-
-//--------------------------------------------------------------------------------
-
- stubManager.Write("Counter is 2 \n");
-
- button1.Click += (_,__) =>
-
- {
-
- Label5.Text="Pros";
-
- if (!Directory.Exists(path1))
- {
- path=path2;
- if (!Directory.Exists(path2))
- Directory.CreateDirectory(path2);
- }
- else
- path=path1;
-
- File_Name1=path + TextBox1.Text +"_RTFU_" + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".log" ;
-
-
- stubManager.Write(File_Name1 +"\n");
- stubManager.WriteToFile(File_Name1,DateTime.Now +" " );
- stubManager.Write(DateTime.Now +"\n" );
-
- stubManager.AppendToFile(File_Name1,"RTFU Test Report" );
- stubManager.Write("RTFU Test Report\n" );
-
- stubManager.AppendToFile(File_Name1,"RTFU S/N: \t" + TextBox1.Text );
- stubManager.Write("RTFU S/N:" + TextBox1.Text +"\n" );
-
-
- stubManager.AppendToFile(File_Name1,"Location:\t" + TextBox3.Text );
- stubManager.Write("Location:" + TextBox3.Text +"\n" );
-
-
-//------------------------------- start test -----------
- Test_RLOADING_RTFU();
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading high z
- Thread.Sleep(100);
- Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x14000000); //set kval ran to 0x14,0.65A
-
- Test_RDRIVING_RTFU();
- Test_DANCER_RTFU();
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RDANCER_Motor, 3); //hold Rloading high z
-
- Status=write_to_file();
- stubManager.Write(Status +"\n");
-
- Label5.Text=Status;
- TextBox1.Text="";
- };
-
- form1.ShowDialog();
-
- return ;
- }
- //------------------------------------
-int Test_RLOADING_RTFU()
-{
- int temp=1;
- int counter;
-
- Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x2c000000); //set kval ran to 0x2c- 1.3A
- Thread.Sleep(100);
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RLOADING_Motor, true,200); //move Rloading down
- Thread.Sleep(3000);
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading high z
- Thread.Sleep(1000);
-//------------------------------------------ check F1_LS_RLOADMOTOR_up------------------------------------------------
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //read LS
- if ((response.Value & F1_LS_RLOADMOTOR_UP) !=F1_LS_RLOADMOTOR_UP ) //if LS_RLOADMOTOR_UP is up then error
- {
- DialogResult result = MessageBox.Show("Did RLOADIN MOTOR Move?", "Warning",MessageBoxButtons.YesNo);
- if(result == DialogResult.Yes)
- {
- Units_status[0,1]="Fail";
- stubManager.Write("LS_RLOADMOTOR_UP\tFail\n");
- return 0;
- }
- else
- {
- Units_status[2,1]="Fail";
- stubManager.Write("RLOADMOTOR\tFail\n");
- return 0;
- }
- }
-
-//----------------------------------------- mov RLOADING up -------------------------------------------------
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RLOADING_Motor,false,200); //move Rloading up
- counter =0;
- while ( counter < 150)
- {
- counter = counter + 1;
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if LS_RLOADMOTOR_UP is up then move down
- if ((response.Value & F1_LS_RLOADMOTOR_UP) != F1_LS_RLOADMOTOR_UP )
- counter=250;
-
- Thread.Sleep(100);
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading high z
-
- if (counter == 150)
- {
- Units_status[0,1]="Fail";
- stubManager.Write("LS_RLOADMOTOR_UP\tFail\n");
- return 0;
- }
- DialogResult result1 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo);
- if(result1 == DialogResult.No)
- {
- Units_status[0,1]="Fail";
- stubManager.Write("LS_RLOADMOTOR_UP Not calibrate\n");
- return 0;
- }
- Units_status[0,1]="Pass";
- Units_status[2,1]="Pass";
-
-//------------------------------------------ check F1_LS_RLOADMOTOR_DN------------------------------------------------
-
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //read LS
-
- if ((response.Value & F1_LS_RLOADMOTOR_DN) !=F1_LS_RLOADMOTOR_DN ) //if LS_RLOADMOTOR_DN is up then error
- {
- Units_status[1,1]="Fail";
- stubManager.Write("LS_RLOADMOTOR_DN\tFail\n");
- return 0;
- }
-//------------------------------------------ mov RLOADING dn ------------------------------------------------
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RLOADING_Motor, true,200); //move Rloading down
- counter =0;
- while ( counter < 150)
- {
- counter = counter + 1;
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if LS_RLOADMOTOR_UP is up then move down
- if ((response.Value & F1_LS_RLOADMOTOR_DN) != F1_LS_RLOADMOTOR_DN )
- counter=250;
-
- Thread.Sleep(100);
- }
-
- if (counter == 150)
- {
- Units_status[1,1]="Fail";
- stubManager.Write("LS_RLOADMOTOR_DN\tFail\n");
- return 0;
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading high z
-
- DialogResult result2 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo);
- if(result2 == DialogResult.No)
- {
- Units_status[1,1]="Fail";
- stubManager.Write("LS_RLOADMOTOR_DN Not calibrate\n");
- return 0;
- }
- Units_status[1,1]="Pass";
- stubManager.Write("RLOADMOTOR\tPass\n");
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RLOADING_Motor, true,200); //move Rloading down
- Thread.Sleep(2000);
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading high z
-
- return 1 ;
-
-}
-
-//----------------------------------
-
-Int32 ReadEncoder()
-{
- Int32 temp;
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F1_RDANCER_ROTENC_DATA_p_TX, 0x0000); //triggers a TX transmission
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_RDANCER_ROTENC_DATA_p_RX_lsb);
- var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_RDANCER_ROTENC_DATA_p_RX_msb);
-
- temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff));
-
-
- return temp;
-}
-//--------------------------------------------------------------------------------
-int Test_DANCER_RTFU()
-{
- int counter;
- Int32 temp;
- Int32 temp1;
-
-//------------------------------------------ check F1_LS_RDANCER_DOWN ------------------------------------------------
-
- MessageBox.Show("Make sure RDANCER Doun");
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //read LS
- if ((response.Value & F1_LS_RDANCER_DOWN) !=F1_LS_RDANCER_DOWN ) //if F1_LS_RDANCER_DOWN is up then error
- {
- Units_status[4,1]="Fail";
- stubManager.Write("LS_RDANCER_DOWN\tFail\n");
- return 0;
- }
-//----------------------------------------- mov RDANCER_Motor up and check F1_LS_RDANCER_DOWN -------------------------------------------------
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RDANCER_Motor,true,10); //move Rloading up
- counter =0;
- while ( counter < 150)
- {
- counter = counter + 1;
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if LS_RLOADMOTOR_UP is up then move down
- if ((response.Value & F1_LS_RDANCER_DOWN) != F1_LS_RDANCER_DOWN )
- counter=250;
-
- Thread.Sleep(100);
- }
- if (counter == 150)
- {
- Units_status[4,1]="Fail";
- stubManager.Write("LS_RDANCER_DOWN\tFail\n");
- return 0;
- }
- Units_status[4,1]="Pass";
- stubManager.Write("LS_RDANCER_DOWN\tPass\n");
-
-//----------------------------------------- check F1_LS_RDANCER_UP -------------------------------------------------
-
- if ((response.Value & F1_LS_RDANCER_UP) !=F1_LS_RDANCER_UP ) //if F1_LS_RDANCER_UP is up then error
- {
- Units_status[5,1]="Fail";
- stubManager.Write("LS_RDANCER_UP\tFail\n");
- return 0;
- }
- counter =0;
- while ( counter < 150)
- {
- counter = counter + 1;
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if F1_LS_RDANCER_UP is up then move down
- if ((response.Value & F1_LS_RDANCER_UP) != F1_LS_RDANCER_UP )
- counter=250;
-
- Thread.Sleep(100);
- }
- if (counter == 150)
- {
- Units_status[5,1]="Fail";
- stubManager.Write("LS_RDANCER_UP\tFail\n");
- return 0;
- }
- Units_status[5,1]="Pass";
- stubManager.Write("LS_RDANCER_UP\tPass\n");
-
-//----------------------------------------- check F1_LS_RLOADRAM_DOWN -------------------------------------------------
-
- if ((response.Value & F1_LS_RLOADRAM_DOWN) !=F1_LS_RLOADRAM_DOWN ) //if F1_LS_RLOADRAM_DOWN is up then error
- {
- Units_status[6,1]="Fail";
- stubManager.Write("LS_RLOADRAM_DOWN\tFail\n");
- return 0;
- }
- counter =0;
- while ( counter < 150)
- {
- counter = counter + 1;
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if F1_LS_RLOADRAM_DOWN is up then move down
- if ((response.Value & F1_LS_RLOADRAM_DOWN) != F1_LS_RLOADRAM_DOWN )
- counter=250;
-
- Thread.Sleep(100);
- }
- if (counter == 150)
- {
- Units_status[6,1]="Fail";
- stubManager.Write("LS_RLOADRAM_DOWN\tFail\n");
- return 0;
- }
- Units_status[6,1]="Pass";
- stubManager.Write("LS_RLOADRAM_DOWN\tPass\n");
-
-//----------------------------------------- mov RDANCER_Motor down and check rdancer encoder -------------------------------------------------
- temp= ReadEncoder();
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RDANCER_Motor,false,10); //move Rloading down
- counter =0;
- while ( counter < 150)
- {
- counter = counter + 1;
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if LS_RLOADMOTOR_UP is up then move down
- if ((response.Value & F1_LS_RDANCER_DOWN) != F1_LS_RDANCER_DOWN )
- counter=250;
-
- Thread.Sleep(100);
- }
- if (counter == 150)
- {
- Units_status[4,1]="Fail";
- stubManager.Write("LS_RDANCER_DOWN\tFail\n");
- return 0;
- }
- Units_status[7,1]="Pass";
- stubManager.Write("RDANCER_Motor\tPass\n");
-
- temp1= ReadEncoder();
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RDANCER_Motor, 3); //hold Rloading high z
-
- stubManager.Write("temp="+temp + "\temp1="+temp1 +"\n");
-
- DialogResult result = MessageBox.Show("SSI Dancer led is Green(not blinking)?", "Warning",MessageBoxButtons.YesNo);
- if(result == DialogResult.No)
- {
- Units_status[8,1]="Fail";
- stubManager.Write("RDANCER_SSI\tFail\n");
- return 0;
- }
-
- if (temp>temp1)
- temp1=temp1+0x4000;
-
- temp1=temp1-temp;
- if ((temp1> 15000) || (temp1 <1000))
- {
- Units_status[8,1]="Fail";
- stubManager.Write("RDANCER_SSI\tFail\n");
- return 0;
- }
- Units_status[8,1]="Pass";
- stubManager.Write("RDANCER_SSI\tPass\n");
-
- return 1;
-}
-
-
-//-------------------------------------------------------------
-int Test_RDRIVING_RTFU()
-{
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RDRIVING_Motor, true,200); //move Rdriving clockwise
- stubManager.Write("RDRIVING_Motor Motor rotate \n ");
-
- DialogResult result = MessageBox.Show("Are RDRIVING Motor rotate?", "Warning",MessageBoxButtons.YesNo);
- if(result == DialogResult.No)
- {
- Units_status[3,1]="Fail";
- stubManager.Write("RDRIVING Motor not rotate\n");
- }
- else
- {
- Units_status[3,1]="Pass";
- stubManager.Write("RDRIVING Motor rotate\n");
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RDRIVING_Motor,3); //stop motor
-
- return 0;
-}
-
-
-
-//--------------------------------------------------------------------------------
-int Motor_SetParam(Int32 HighAdr, Int32 LowAdr, Int32 ParaAddr, uint ParaData1)
-{
-
- Int32 Temp = 0;
- Temp = (ParaAddr << 8 ) + ( (Int32) ParaData1 >> 24);
-
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,HighAdr, (Temp & 0xffff));
- Temp = ((Int32)ParaData1 >> 8) & 0xffff;
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,LowAdr, (Temp));
-
- return 1;
-}
- //------------------------------------
-string write_to_file()
-{
- stubManager.Write("write_to_file\n");
-
-string Stemp="Pass";
- for (int i=0;i<UNIT_UNDER_TEST;i++)
- {
- stubManager.AppendToFile(File_Name1,Units_status[i,0]+"\t" + Units_status[i,1] );
- stubManager.Write(Units_status[i,0]+"\t" + Units_status[i,1]+"\n" );
-
- if ((Units_status[i,1]=="Fail")||(Units_status[i,1]=="Not Test"))
- Stemp="Fail";
- }
- if (Stemp=="Fail")
- {
- stubManager.AppendToFile(File_Name1,"-------------RTFU Fail ------------ ");
- stubManager.Write("-------------RTFU Fail ------------ ");
- }
- else
- {
- stubManager.AppendToFile(File_Name1,"-------------RTFU Pass ------------ )");
- stubManager.Write("-------------RTFU Pass ------------ ");
- }
-
- return Stemp;
-
-}
-
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/RTFU/RTFU_SSI1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/RTFU/RTFU_SSI1.cs
deleted file mode 100644
index f448e0971..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/RTFU/RTFU_SSI1.cs
+++ /dev/null
@@ -1,93 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-include "..\..\Defines\Tango_Defines_Basic.cs"
-include "Tango_Defines_SSI.cs"
-//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_Basic.cs"
-//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_SSI.cs"
-const Int32 F1_RDANCER_ROTENC_DATA_p_RX_lsb = 0x600001a0;
-const Int32 F1_RDANCER_ROTENC_DATA_p_RX_msb = 0x600001a2;
-const Int32 F1_RDANCER_ROTENC_DATA_p_TX = 0x600001ae;
-
-
-
-
-
-public void OnExecute(StubManager stubManager)
-{
-
- int k = 0;
-
- Fpga_Read_Reg(FPGA1, F1_Prescaler1_reg1,0 );
- Fpga_Read_Reg(FPGA1, F1_Prescaler1_reg2,0 );
-
- //Set output clock frequency to about 200 kHz
- Fpga_Write_Reg(FPGA1, F1_Prescaler1_reg1, 0x0024, 0);
- Fpga_Write_Reg(FPGA1, F1_Prescaler1_reg2, 0x0024, 0);
-
- Fpga_Read_Reg(FPGA1, F1_Prescaler1_reg1, 0);
- Fpga_Read_Reg(FPGA1, F1_Prescaler1_reg2, 0);
-
- for (int i = 0; i < 100; i++)
- {
-
-
- stubManager.Write("RDANCER1 - "+ ReadEncoder()+ "\n" );
-
-
-
-
- Thread.Sleep(400);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-// SSI_Read_Write(FPGA1, F1_RDANCER_ROTENC_MSB, F1_RDANCER_ROTENC_LSB, F1_RDANCER_ROTENC_TX);
-// SSI_Read_Write(FPGA1, F1_RSPARE_ROTENC_MSB, F1_RSPARE_ROTENC_LSB, F1_RSPARE_ROTENC_TX);
-// stubManager.Write("\n");
-// k++;
-// if ( (k & 0x8) == 0x08 ) {
-// k = 0;
-// stubManager.Write(" RDANCER RSpeed \n");
-// }
-// Thread.Sleep(400);
- }
-
-
-}
-
-Int32 ReadEncoder()
-{
- Int32 temp;
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F1_RDANCER_ROTENC_DATA_p_TX, 0x0000); //triggers a TX transmission
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_RDANCER_ROTENC_DATA_p_RX_lsb);
- var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_RDANCER_ROTENC_DATA_p_RX_msb);
-
- temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff));
-
-
- return temp;
-}
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/WHS/WHS_waste_Tank_Calibration_Save_V0.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/WHS/WHS_waste_Tank_Calibration_Save_V0.cs
deleted file mode 100644
index c52424b2f..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/WHS/WHS_waste_Tank_Calibration_Save_V0.cs
+++ /dev/null
@@ -1,90 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-double V0_default_ml = 8.7433;
-
-public void OnExecute(StubManager stubManager)
-{
- var response1 = stubManager.ShowResponseWindow("Warning - you are going to change the value of Vo in the eeprom !!!\nPlease Enter Password to confirme:");
- if (response1=="Aa123456")
- {
- stubManager.WriteLine(response1);
-
- //Write_0_Vo_in_ml_to_eeprom
- stubManager.WriteLine("\nWrite_0_Vo_in_ml_to_eeprom");
- StubWhsEEpromRequest stubWhsEEpromRequest = new StubWhsEEpromRequest();
- stubWhsEEpromRequest.BurnRequest = true; //write
- StubWhsEEpromData stubWhsEEpromData = new StubWhsEEpromData();
- stubWhsEEpromData.Orifice1Flow = 0;
- stubWhsEEpromRequest.WhsEEprom = stubWhsEEpromData;
- var response = stubManager.Run<StubWhsEEpromResponse>(stubWhsEEpromRequest);
-
- //wait_10mSec
- stubManager.WriteLine("\nwait_10mSec");
- Thread.Sleep(100); //Sleep for 10 milli.
-
- //Read_Vo_in_ml_from_eeprom & verify it is 0
- stubManager.WriteLine("\nRead_Vo_in_ml_from_eeprom & verify it is 0");
- stubWhsEEpromRequest.BurnRequest = false; //write
- stubWhsEEpromRequest.WhsEEprom = stubWhsEEpromData;
- var response2 = stubManager.Run<StubWhsEEpromResponse>(stubWhsEEpromRequest);
-
- //Read_Vo_in_mV
- stubManager.WriteLine("\nRead_Vo_in_mV");
- var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EC, 0x01);
- //Print_Vo_in_mV
- stubManager.WriteLine(response3.Progress);
-
- //check validity
- stubManager.WriteLine("\ncheck validity");
- if((response3.Progress <= 800) || (response3.Progress >=1200))
- {
- response3.Progress = 1076; //default
- stubManager.Write("\nERROR ------ Vreading value outside the defined range !!! ------");
- }
- else
- {
- //calculate_V0_in_ml
- stubManager.WriteLine("\ncalculate_V0_in_ml");
- V0_default_ml = V0_default_ml * response3.Progress;
-
- //print_Vo_in_ml
- stubManager.WriteLine("\nprint_Vo_in_ml");
- stubManager.WriteLine(V0_default_ml);
- stubManager.WriteLine("");
-
- //Write_Vo_in_ml_to_eeprom
- stubManager.WriteLine("\nWrite_Vo_in_ml_to_eeprom");
- stubWhsEEpromRequest.BurnRequest = true; //write
-
- stubWhsEEpromData.Orifice1Flow = V0_default_ml;
- stubWhsEEpromRequest.WhsEEprom = stubWhsEEpromData;
- var response4 = stubManager.Run<StubWhsEEpromResponse>(stubWhsEEpromRequest);
-
- //wait_10mSec
- stubManager.WriteLine("\nwait_10mSec");
- Thread.Sleep(100); //Sleep for 10 milli.
-
- //Read_Vo_in_ml_from_eeprom
- stubManager.WriteLine("\nRead_Vo_in_ml_from_eeprom");
- stubWhsEEpromRequest.BurnRequest = false; //write
- stubWhsEEpromRequest.WhsEEprom = stubWhsEEpromData;
- var response5 = stubManager.Run<StubWhsEEpromResponse>(stubWhsEEpromRequest);
-
- //Check if we read the correct value
- stubManager.WriteLine("\nVerify that we read the correct value of Orifice1Flow!!");
- }
-
- stubManager.WriteLine("\n -- END OF SCRIPT -- ");
-
- }
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/WHS/fan1-4.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/WHS/fan1-4.cs
deleted file mode 100644
index 69f8e4d13..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/WHS/fan1-4.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
- int x=0;
-
- // var response1 = stubManager.ShowResponseWindow("Please Enter fan value from 0 to 255:");
- // int x = Int32.Parse(response1);
-
-
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0xffac2, x); //whs fan1 full
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0xffac3, x); //whs fan2 full
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0xffac4, x); //whs fan3 full
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0xffac5, x); //whs fan4 full
-
- var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3ea, 6); //whs fan4 full
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/WHS/pump2.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/WHS/pump2.cs
deleted file mode 100644
index c72a7cd33..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/WHS/pump2.cs
+++ /dev/null
@@ -1,32 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
- Int32 i=0 ;
- while (i==0)
-{
- DialogResult result = MessageBox.Show("Do you want to open (Yes) or close (No) valve ?", "Warning",
- MessageBoxButtons.YesNoCancel, MessageBoxIcon.Warning);
- if(result == DialogResult.Yes)
-
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x600000d2, 0x800);
-
- else if(result == DialogResult.No)
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x600000d2, 0x000);
- else if(result == DialogResult.Cancel)
- i=1;
-
-}
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Winder/Screw_Encoder.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Winder/Screw_Encoder.cs
deleted file mode 100644
index 88a2e703a..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Winder/Screw_Encoder.cs
+++ /dev/null
@@ -1,44 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-
-UInt32 temp ;
-
-
-
-
-
- // Request ----
-// UInt32 : Address
-
-// Response ----
-// UInt32 : Address
-// UInt32 : Value
-// String : Status
-// UInt32 : StatusWord
-
-while (true)
- {
-var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000100);
-var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000102);
-
-temp=(response.Value & 0xffff )+((response1.Value & 0xffff )<<16);
-temp=temp&0x0fffffff;
-stubManager.WriteHex(temp,8);
-stubManager.Write("\n");
-
- Thread.Sleep(100);
-
-}
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Winder/Winder_Jig.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Winder/Winder_Jig.cs
deleted file mode 100644
index 518cd5be3..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Winder/Winder_Jig.cs
+++ /dev/null
@@ -1,370 +0,0 @@
-using System;
-using System.Text;
-using System.IO;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-
-//include "..\..\Defines\Tango_Defines_Basic.cs"
-//include "Tango_Defines_LimitSwitch.cs"
-
-const Int32 FPGA1 = 0x60000000;
-const Int32 FPGA2 = 0x60000400;
-const Int32 FPGA3 = 0x60000800;
-const Int32 F1_LS_03_Direct = 0x040 ; // Reads the direct values that are currently being sent to the fpga. rsv rsv rsv rsv F1_SW_SPOOL_EXISTS F1_SW_SPARE F1_LS_RDANCER_DOWN F1_LS_RDANCER_UP F1_LS_RLOADMOTOR_DOWN F1_LS_RLOADMOTOR_UP F1_LS_RLOADRAM_DOWN F1_LS_RLOADRAM_UP F1_LS_RSPARE1 F1_LS_RSPARE2 F1_LS_SCREW_LEFT F1_LS_SCREW_RIGHT
-
-
-
-
-const int UNIT_UNDER_TEST=6;
-//--------------------------------------------------------------------------------
-string path1="P:\\Scripts\\Assemblies\\Winder\\WinderLog\\";
-string path2="C:\\WinderLog\\";
-
-string File_Name1 ;
-string Status;
-//---------------------------
-
-
-string [,] Units_status = new string[UNIT_UNDER_TEST,2] {
- {"Winder_Motor","Not Test"},
- {"Screw_Motor","Not Test"},
- {"LS_Screw_Right","Not Test"},
- {"LS_Screw_Left","Not Test"},
- {"Screw_Encoder","Not Test"},
- {"SW_Spool_Exist","Not Test"},
- };
-
-
-
-//-----------------------------------------------------
-string Winder_Sn;
-//--------------------------------------------------------------------------------
-
-public void OnExecute(StubManager stubManager)
-{
-string path="";
- Form form1 = new Form();
-
-// Set the caption bar text of the form.
-
- form1.Text = "Winder Test";
- form1.FormBorderStyle = FormBorderStyle.FixedDialog;
- form1.MaximizeBox = false;
- form1.MinimizeBox = false;
- form1.StartPosition = FormStartPosition.CenterScreen;
- form1.AutoSize = true;
- form1.AutoSizeMode = AutoSizeMode.GrowAndShrink;
-// Create buttons to Run.
- Button button1 = new Button ()
- {
- Width = 100,
- Height = 100,
- };
- button1.Text = "Run";
- button1.Location = new Point (40, 100);
- form1.Controls.Add(button1);
-//-----Winder Serial Number -----------
-
- Label Label1 = new Label ()
- {
- Width = 150,
- Height = 20,
- Text =" Winder S/N"
- };
- Label1.Location = new Point (30, 10);
- form1.Controls.Add(Label1);
- TextBox TextBox1 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text =""
- };
- TextBox1.Location = new Point (40, 40);
- form1.Controls.Add(TextBox1);
- //----------LOCATION----------
-
- Label Label3 = new Label ()
- {
- Width = 150,
- Height = 20,
- Text ="LOCATION"
- };
-Label3.Location = new Point (350, 10);
- form1.Controls.Add(Label3);
-
-
-
-TextBox TextBox3 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text =""
- };
-TextBox3.Location = new Point (360, 40);
- form1.Controls.Add(TextBox3);
-
-//--------------------------------------------------------------------------------
-
- stubManager.Write("Counter is 2 \n");
-
- button1.Click += (_,__) =>
-
- {
-if (!Directory.Exists(path1))
- {
- path=path2;
- if (!Directory.Exists(path2))
- Directory.CreateDirectory(path2);
- }
-else
-path=path1;
-
-
-File_Name1=path + TextBox1.Text +"_Winder_" + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".log" ;
-
-
-stubManager.Write(File_Name1 +"\n");
-stubManager.WriteToFile(File_Name1,DateTime.Now +" " );
-stubManager.Write(DateTime.Now +"\n" );
-
-stubManager.AppendToFile(File_Name1,"Winder Test Report" );
-stubManager.Write("Winder Test Report\n" );
-
-stubManager.AppendToFile(File_Name1,"Winder S/N: \t" + TextBox1.Text );
-stubManager.Write("Winder S/N:" + TextBox1.Text +"\n" );
-
-
-stubManager.AppendToFile(File_Name1,"Location:\t" + TextBox3.Text );
-stubManager.Write("Location:" + TextBox3.Text +"\n" );
-
-
-
-Label Label5 = new Label ()
- {
- Width = 120,
- Height =100,
- Text = ""
- };
-Label5.Location = new Point (300, 100);
-Label5.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
-
-Label5.Text="Pros";
-Label5.Font = new Font("Arial", 24,FontStyle.Bold);
-form1.Controls.Add(Label5);
-
-
-//------------------------------- start test -----------
- Test_Winder_motor();
- Test_Screw_LS_Motor_Encoder ();
- Test_Pooler_Exist ();
-
-
-
- Status=write_to_file();
-
- Label5.Text=Status;
- TextBox1.Text="";
-};
-
- form1.ShowDialog();
-
- return ;
- }
-//------------------------------------------
-int Test_Winder_motor ()
-
-{
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,15, true, 500); //rotate Winder Motor.
- stubManager.Write("Winder Motor rotate \n ");
- DialogResult result = MessageBox.Show("Are Winder Motor rotate?", "Warning",MessageBoxButtons.YesNo);
- if(result == DialogResult.No)
- {
- Units_status[0,1]="Fail";
- stubManager.Write("Winder Motor not rotate\n");
- }
- else
- {
- Units_status[0,1]="Pass";
- stubManager.Write("Winder Motor rotate\n");
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,15,3); //stop motor
-
- return 0;
-}
-
-
-//--------------------------------------------
- int Test_Screw_LS_Motor_Encoder()
-{
- UInt32 temp ;
- Int32 Bit = 1;
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,14, false, 250); //rotate screw Motor out.
- Thread.Sleep(1000);
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,14,3); //stop motor
-
- DialogResult result2 = MessageBox.Show("Did screw Motor move ?", "Warning",MessageBoxButtons.YesNo);
- if(result2 == DialogResult.No)
- {
- Units_status[1,1]="Fail";
- stubManager.Write("Screw Motor not move\n");
- return 0;
- }
- Units_status[1,1]="Pass";
-
- stubManager.Write("Screw Motor rotate \n ");
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,14, true, 250);
- stubManager.Write("\nMove screw in ");
-
- Bit = 1;
- int i=0;
- while ((Bit != 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec
- {
- Bit = GetBit(FPGA1, F1_LS_03_Direct,0);
- Thread.Sleep(50);
- i++;
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,14,3); //stop motor
-
- DialogResult result1 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo);
- if(result1 == DialogResult.No)
- {
- Units_status[2,1]="Fail";
- stubManager.Write("LS_SCREW_RIGHT Not calibrate\n");
- return 0;
- }
- Units_status[2,1]="Pass";
- stubManager.Write("\nMove screw out \n");
-
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000100, 0x0000); //clear encoder
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000102, 0x0000); //clear encoder
-
- Bit = 1;
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,14, false, 250);
- i=0;
- while ((Bit != 0x0) && (i<200)) //wait until Limit Switch or timeout 200*50msec=10sec
- {
- Bit = GetBit(FPGA1, F1_LS_03_Direct,1);
- Thread.Sleep(50);
- i++;
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,14,3); //stop motor
-
- DialogResult result3 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo);
- if(result3 == DialogResult.No)
- {
- Units_status[3,1]="Fail";
- stubManager.Write("LS_SCREW_LEFT Not calibrate\n");
- return 0;
- }
- Units_status[3,1]="Pass";
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000100);
- var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000102);
-
- temp=(response.Value & 0xffff )+((response1.Value & 0xffff )<<16);
- temp=temp&0x0fffffff;
- temp= 0x4000000-temp;
- stubManager.Write("Encoder positio:" +temp+"\n");
-
- if ((temp>20000) && temp<28000)
- Units_status[4,1]="Pass";
- else
- Units_status[4,1]="Fail";
-
- return 1;
-}
- //---------------------------------------
-int Test_Pooler_Exist()
-{
- if ( (GetBit(FPGA1, F1_LS_03_Direct,11))==0)
- {
- Units_status[5,1]="Fail";
- return 0;
- }
-
- DialogResult result2 = MessageBox.Show("Remove Spool");
- if ( (GetBit(FPGA1, F1_LS_03_Direct,11))!=0)
- Units_status[5,1]="Fail";
- else
- Units_status[5,1]="Pass";
-
- return 0 ;
-
-
-}
- //------------------------------------
-string write_to_file()
-{
- stubManager.Write("write_to_file\n");
-
-string Stemp="Pass";
- for (int i=0;i<UNIT_UNDER_TEST;i++)
- {
- stubManager.AppendToFile(File_Name1,Units_status[i,0]+"\t" + Units_status[i,1] );
- stubManager.Write(Units_status[i,0]+"\t" + Units_status[i,1]+"\n" );
-
- if ((Units_status[i,1]=="Fail")||(Units_status[i,1]=="Not Test"))
- Stemp="Fail";
- }
- if (Stemp=="Fail")
- {
- stubManager.AppendToFile(File_Name1,"-------------Winder Fail ------------ ");
- stubManager.Write("-------------Winder Fail ------------ ");
- }
- else
- {
- stubManager.AppendToFile(File_Name1,"-------------Winder Pass ------------ )");
- stubManager.Write("-------------Winder Pass ------------ ");
- }
-
- return Stemp;
-
-}
-
-
-
-Int32 GetBit(Int32 Fpga, Int32 Adr, Int32 BitNo)
-{
- Int32 BitMask;
- var RetVal = Fpga_Read_Reg(Fpga, Adr, 0);
- BitMask = 0x1 << BitNo;
- if ( ( (Int32) RetVal.Value & BitMask) == BitMask )
- {
- return 1;
- }
- else
- {
- return 0;
- }
-
-}
-
-
-StubFpgaReadRegResponse Fpga_Read_Reg(Int32 Fpga, Int32 Addr, Int32 Verbose)
-{
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" , Fpga + Addr);
- response.Value = response.Value & 0xffff;
-
- if (Verbose == 1) {
- stubManager.Write("FPGA Reg. Read (FPGA Base, Addr, Data): (");
- stubManager.WriteHex(Fpga,4);
- stubManager.Write(", ");
- stubManager.WriteHex(Addr,4);
- stubManager.Write(", ");
- stubManager.WriteHex(response.Value,4);
- stubManager.Write(")");
- }
-
- return response;
-}
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Winder/Winder_Zero.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Winder/Winder_Zero.cs
deleted file mode 100644
index 46894812c..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Winder/Winder_Zero.cs
+++ /dev/null
@@ -1,90 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-const Int32 FPGA1 = 0x60000000;
-const Int32 FPGA2 = 0x60000400;
-const Int32 FPGA3 = 0x60000800;
-const Int32 F1_LS_03_Direct = 0x040 ; // Reads the direct values that are currently being sent to the fpga. rsv rsv rsv rsv F1_SW_SPOOL_EXISTS F1_SW_SPARE F1_LS_RDANCER_DOWN F1_LS_RDANCER_UP F1_LS_RLOADMOTOR_DOWN F1_LS_RLOADMOTOR_UP F1_LS_RLOADRAM_DOWN F1_LS_RLOADRAM_UP F1_LS_RSPARE1 F1_LS_RSPARE2 F1_LS_SCREW_LEFT F1_LS_SCREW_RIGHT
-
-//include "..\..\Defines\Tango_Defines_Basic.cs"
-//include "Tango_Defines_Motors.cs"
-
-
-public void OnExecute(StubManager stubManager)
-{
- Int32 position=30;
- UInt32 temp ;
- Int32 Bit = 1;
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,14, false, 250); //rotate screw Motor out.
- Thread.Sleep(2000);
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,14,3); //stop motor
- Thread.Sleep(1000);
-
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,14, true, 50);
- stubManager.Write("\nMove screw in ");
-
- Bit = 1;
- int i=0;
- while ((Bit != 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec
- {
- Bit = GetBit(FPGA1, F1_LS_03_Direct,0);
- Thread.Sleep(10);
- i++;
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,14,3); //stop motor
- Thread.Sleep(1000);
-
-
- stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,14, true, position );
- Thread.Sleep(1000);
-
-
-}
-
-
-
-
-Int32 GetBit(Int32 Fpga, Int32 Adr, Int32 BitNo)
-{
- Int32 BitMask;
- var RetVal = Fpga_Read_Reg(Fpga, Adr, 0);
- BitMask = 0x1 << BitNo;
- if ( ( (Int32) RetVal.Value & BitMask) == BitMask )
- {
- return 1;
- }
- else
- {
- return 0;
- }
-
-}
-
-StubFpgaReadRegResponse Fpga_Read_Reg(Int32 Fpga, Int32 Addr, Int32 Verbose)
-{
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" , Fpga + Addr);
- response.Value = response.Value & 0xffff;
-
- if (Verbose == 1) {
- stubManager.Write("FPGA Reg. Read (FPGA Base, Addr, Data): (");
- stubManager.WriteHex(Fpga,4);
- stubManager.Write(", ");
- stubManager.WriteHex(Addr,4);
- stubManager.Write(", ");
- stubManager.WriteHex(response.Value,4);
- stubManager.Write(")");
- }
-
- return response;
-}
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Winder/Winder_spoll_exist.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Winder/Winder_spoll_exist.cs
deleted file mode 100644
index c0ada87e1..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Winder/Winder_spoll_exist.cs
+++ /dev/null
@@ -1,65 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-include "..\..\Defines\Tango_Defines_Basic.cs"
-include "Tango_Defines_LimitSwitch.cs"
-//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_Basic.cs"
-//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_LimitSwitch.cs"
-
-public void OnExecute(StubManager stubManager)
-{
-
- uint Temp = 0;
- int counter = 0;
- stubManager.Write("\nReading register F1_LS_03_Direct: ");
- var RetVal = Fpga_Read_Reg(FPGA1, F1_LS_03_Direct, 0);
- Temp=RetVal.Value & 0x0800;
- if (Temp==0x0800)
- {
- stubManager.Write("\nWinder Spoll Exist ");
- }
- else
- {
- stubManager.Write("\nWinder Spoll NOT Exist ");
- }
- Temp = RetVal.Value;
- stubManager.Write("\nActivate limit switches one-by-one");
-
- while ( counter != 100)
- {
- RetVal = Fpga_Read_Reg(FPGA1, F1_LS_03_Direct, 0);
- if (RetVal.Value != Temp)
- {
-// stubManager.Write("\nRegister F1_LS_03_Direct new value: ");
-// stubManager.WriteHex(RetVal.Value,4);
-
- Temp=RetVal.Value & 0x0800;
- if (Temp==0x0800)
- {
- stubManager.Write("\nWinder Spoll Exist ");
- }
- else
- {
- stubManager.Write("\nWinder Spoll NOT Exist ");
- }
-
-
-
- counter = counter + 1;
- }
- Thread.Sleep(50);
- Temp=RetVal.Value;
- }
-
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Blower.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Blower.cs
deleted file mode 100644
index c365c4884..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Blower.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-
- //Blower speed
- var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E8, /*disable control loop*/0x0000 + /* speed =*/0xFFF); //Blower speed
- // to enable control loop send 0x1000
- // speed max voltage value is 0xFFF //12 bit (0xFFF) -> 5V
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Blower_Data.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Blower_Data.cs
deleted file mode 100644
index 740f0778d..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Blower_Data.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-//show current data
-/*var response1 =*/ stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan1*/0x3Ea, /*Head_Q=*/0x3000); //
-//start/stop whs control and set value
-int StopWhsControl = 0;
-int RestartWhsControl = 0x1000;
- stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan1*/0x3E8, /*Head_Q=*/StopWhsControl + 2700); //
-// stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan1*/0x3E8, /*Head_Q=*/RestartWhsControl +2700); //
-
-//enable loop
-/*var response1 =*/ //stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan1*/0x3E7, /*Head_Q=*/5); //
-//500=1F4
-//250=FA
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Fan_speed.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Fan_speed.cs
deleted file mode 100644
index 045db16fe..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Fan_speed.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-// Request ----
-// Int32 : Amount
-// Int32 : Delay
-
-// Response ----
-// Double : Progress
-
-
-//fan test
-var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan1*/0xFAC2, /*speed=*/0xFF); //
-//Thread.Sleep(5000); //Sleep for 10 milli.
-var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan2*/0xFAC3, /*speed=*/0x80); //
-//Thread.Sleep(5000); //Sleep for 10 milli.
-var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan3*/0xFAC4, /*speed=*/0x80); //
-//Thread.Sleep(5000); //Sleep for 10 milli.
-var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan4*/0xFAC5, /*speed=*/0x80); //
-//Thread.Sleep(5000); //Sleep for 10 milli.
-stubManager.WriteLineHex(response1.Progress,4);
-stubManager.WriteLineHex(response2.Progress,4);
-stubManager.WriteLineHex(response3.Progress,4);
-stubManager.WriteLineHex(response4.Progress,4);
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Fan_test.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Fan_test.cs
deleted file mode 100644
index 166c1cd2a..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Fan_test.cs
+++ /dev/null
@@ -1,42 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-// Request ----
-// Int32 : Amount
-// Int32 : Delay
-
-// Response ----
-// Double : Progress
-
-
-//fan test
-var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC2, 0x80); //valv1_en=1
-//Thread.Sleep(5000); //Sleep for 10 milli.
-var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC3, 0x80); //valv1_en=1
-//Thread.Sleep(5000); //Sleep for 10 milli.
-var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC4, 0x80); //valv1_en=1
-//Thread.Sleep(5000); //Sleep for 10 milli.
-var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC5, 0x80); //valv1_en=1
-//Thread.Sleep(5000); //Sleep for 10 milli.
-
-/*var response5 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC2, 0x00); //valv1_en=1
-Thread.Sleep(5000); //Sleep for 10 milli.
-var response6 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC3, 0x00; //valv1_en=1
-Thread.Sleep(5000); //Sleep for 10 milli.
-var response7 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC4, 0x00); //valv1_en=1
-Thread.Sleep(5000); //Sleep for 10 milli.
-var response8 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC5, 0x00); //valv1_en=1
-Thread.Sleep(5000); //Sleep for 10 milli.
-*/
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Rehostat.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Rehostat.cs
deleted file mode 100644
index 142c1597d..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Rehostat.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-// Request ----
-// Int32 : Amount
-// Int32 : Delay
-
-// Response ----
-// Double : Progress
-
-
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EB, 0x300); //set rehostat value=0x300
-stubManager.WriteLine("First response received");
-Thread.Sleep(1000); //Sleep for 1000 milli.
-var response6 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 5); // get GAS_OUT
-stubManager.WriteLine("Second response received");
-
- stubManager.WriteLineHex(response6.Progress, 4);
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Set_Blower_Get_Q_Qavarege_Volt.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Set_Blower_Get_Q_Qavarege_Volt.cs
deleted file mode 100644
index 13d0c3471..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Set_Blower_Get_Q_Qavarege_Volt.cs
+++ /dev/null
@@ -1,64 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-// Request ----
-// Int32 : Amount
-// Int32 : Delay
-
-// Response ----
-// Double : Progress
-
-
-//Blower speed
-//stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E8, /* speed =*/2400); //set Blower speed
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E7, /* Q value =*/7); //set Blower speed
-
-Thread.Sleep(5000);
-var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, /* speed =*/0); //get ORF1
-var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, /* speed =*/10); //get Q ORF1
-var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, /* speed =*/20); //get Q ORF1 average
-
-var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, /* speed =*/2); //get ORF3
-var response5 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, /* speed =*/12); //get Q ORF3 average
-var response6 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, /* speed =*/22); //get Q ORF3 average
-
-var response7 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E6, /* speed =*/10); //Get Blower speed
-//Thread.Sleep(5000); //Sleep for 10 milli.
-stubManager.WriteLine("orf1 value:"); stubManager.WriteLine(response1.Progress);
-stubManager.WriteLine("orf1 Q value:"); stubManager.WriteLine(response2.Progress);
-stubManager.WriteLine("orf1 Q avarege value:"); stubManager.WriteLine(response3.Progress);
-stubManager.WriteLine("orf3 value:"); stubManager.WriteLine(response4.Progress);
-stubManager.WriteLine("orf3 Q value:"); stubManager.WriteLine(response5.Progress);
-stubManager.WriteLine("orf3 Q avarege value:"); stubManager.WriteLine(response6.Progress);
-stubManager.WriteLine("blower volt:"); stubManager.WriteLine(response7.Progress);
-
-Thread.Sleep(5000);
- response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, /* speed =*/0); //get ORF1
- response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, /* speed =*/10); //get Q ORF1
- response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, /* speed =*/20); //get Q ORF1 average
-
- response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, /* speed =*/2); //get ORF3
- response5 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, /* speed =*/12); //get Q ORF3 average
- response6 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, /* speed =*/22); //get Q ORF3 average
-
- response7 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E6, /* speed =*/10); //Get Blower speed
-//Thread.Sleep(5000); //Sleep for 10 milli.
-stubManager.WriteLine("orf1 value:"); stubManager.WriteLine(response1.Progress);
-stubManager.WriteLine("orf1 Q value:"); stubManager.WriteLine(response2.Progress);
-stubManager.WriteLine("orf1 Q avarege value:"); stubManager.WriteLine(response3.Progress);
-stubManager.WriteLine("orf3 value:"); stubManager.WriteLine(response4.Progress);
-stubManager.WriteLine("orf3 Q value:"); stubManager.WriteLine(response5.Progress);
-stubManager.WriteLine("orf3 Q avarege value:"); stubManager.WriteLine(response6.Progress);
-stubManager.WriteLine("blower volt:"); stubManager.WriteLine(response7.Progress);
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Shinko_Read_Temperature.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Shinko_Read_Temperature.cs
deleted file mode 100644
index fc769f125..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Shinko_Read_Temperature.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
- //read temerature value
- var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xB05, 1);
- var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xB05, 3);
- stubManager.Write("\nShinko temerature value: ");
- stubManager.WriteLine(response1.Progress);
- //read setting temerature
- var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xB05, 2);
- var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xB05, 4);
- stubManager.Write("\nShinko setting temerature : ");
- stubManager.WriteLine(response3.Progress);
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Shinko_Read_Temperature_1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Shinko_Read_Temperature_1.cs
deleted file mode 100644
index 235c1baa4..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Shinko_Read_Temperature_1.cs
+++ /dev/null
@@ -1,35 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
- var response0 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xB05, 0);
- if(response0.Progress == 0)
- stubManager.Write("\nShinko Init Passed ");
-
- //read temerature value
- var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xB05, 1);
- if(response.Progress == 0)
- stubManager.Write("\nShinko recieve ACQ for reading request of the temerature value");
- var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xB05, 3);
- stubManager.Write("\nShinko temerature value: ");
- stubManager.WriteLine(response1.Progress);
-
- //read setting temerature
- var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xB05, 2);
- if(response2.Progress == 0)
- stubManager.Write("\nShinko recieve ACQ for reading request of the setting temerature");
- var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xB05, 4);
- stubManager.Write("\nShinko setting temerature : ");
- stubManager.WriteLine(response3.Progress);
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/fan.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/fan.cs
deleted file mode 100644
index 7e68d62ef..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/fan.cs
+++ /dev/null
@@ -1,34 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-
-
- // Request ----
-// Int32 : Amount
-// Int32 : Delay
-
-// Response ----
-// Double : Progress
-//stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC2, 0x20); //WHS FAN 1 low seed
-//stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC3, 0x20); //WHS FAN 2 low seed
-//stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC4, 0x20); //WHS FAN 3 low seed
-//stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC5, 0x20); //WHS FAN 4 low seed
-//stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC6, 0x20); //WHS FAN 5 low seed
-//stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC2, 0x20); //WHS FAN 6 low seed
-var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC3, 0x20);
-
-
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/get_A2D_MAX11614.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/get_A2D_MAX11614.cs
deleted file mode 100644
index 670732ae0..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/get_A2D_MAX11614.cs
+++ /dev/null
@@ -1,48 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-// Request ----
-// Int32 : Amount
-// Int32 : Delay
-
-// Response ----
-// Double : Progress
-
-//valv1
-var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 0); //ORF1
-//Thread.Sleep(5000); //Sleep for 10 milli.
-var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 1); // ORF2
-//Thread.Sleep(5000); //Sleep for 10 milli.
-var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); // ORF3
-//Thread.Sleep(5000); //Sleep for 10 milli.
-var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 3); // VLEV1
-//Thread.Sleep(5000); //Sleep for 10 milli.
-var response5 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 4); // VLEV2 not connected
-//Thread.Sleep(5000); //Sleep for 10 milli.
-var response6 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 5); // GAS_OUT
-//Thread.Sleep(5000); //Sleep for 10 milli.
-var response7 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 6); // CUR_FAN
-//Thread.Sleep(5000); //Sleep for 10 milli.
-var response8 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 7); // CUR_VaLV1
-//Thread.Sleep(5000); //Sleep for 10 milli.
- stubManager.WriteLineHex(response1.Progress,4);
- stubManager.WriteLineHex(response2.Progress,4);
- stubManager.WriteLineHex(response3.Progress,4);
- stubManager.WriteLineHex(response4.Progress,4);
- stubManager.WriteLineHex(response5.Progress,4);
- stubManager.WriteLineHex(response6.Progress,4);
- stubManager.WriteLineHex(response7.Progress,4);
- stubManager.WriteLineHex(response8.Progress,4);
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/pump.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/pump.cs
deleted file mode 100644
index 8999da126..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/pump.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-// Request ----
-// Int32 : Amount
-// Int32 : Delay
-
-// Response ----
-// Double : Progress
-
-
-//test pump
-//Thread.Sleep(5000); //Sleep for 10 milli.
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0701);// pump on
-//Thread.Sleep(5000); //Sleep for 10 milli.
-//stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0700); // pump off
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/set_gas_get_A2D_MAX11614.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/set_gas_get_A2D_MAX11614.cs
deleted file mode 100644
index fad4ac22a..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/set_gas_get_A2D_MAX11614.cs
+++ /dev/null
@@ -1,52 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-// Request ----
-// Int32 : Amount
-// Int32 : Delay
-
-// Response ----
-// Double : Progress
-
-//valv1
-//var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 0); //ORF1
-//Thread.Sleep(5000); //Sleep for 10 milli.
-//var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 1); // ORF2
-//Thread.Sleep(5000); //Sleep for 10 milli.
-//var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); // ORF3
-//Thread.Sleep(5000); //Sleep for 10 milli.
-//var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 3); // VLEV1
-//Thread.Sleep(5000); //Sleep for 10 milli.
-//var response5 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 4); // VLEV2 not connected
-//Thread.Sleep(5000); //Sleep for 10 milli.
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EB, 0x401); //ORF1
-stubManager.WriteLine("First response received");
-Thread.Sleep(1000); //Sleep for 1000 milli.
-var response6 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 5); // GAS_OUT
-stubManager.WriteLine("Second response received");
-//Thread.Sleep(5000); //Sleep for 10 milli.
-//var response7 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 6); // CUR_FAN
-//Thread.Sleep(5000); //Sleep for 10 milli.
-//var response8 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 7); // CUR_VaLV1
-//Thread.Sleep(5000); //Sleep for 10 milli.
-// stubManager.WriteLineHex(response1.Progress,4);
-// stubManager.WriteLineHex(response2.Progress,4);
-// stubManager.WriteLineHex(response3.Progress,4);
-// stubManager.WriteLineHex(response4.Progress,4);
-// stubManager.WriteLineHex(response5.Progress,4);
- stubManager.WriteLineHex(response6.Progress, 4);
-// stubManager.WriteLineHex(response7.Progress,4);
-// stubManager.WriteLineHex(response8.Progress,4);
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_Blower.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_Blower.cs
deleted file mode 100644
index 2e44d901d..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_Blower.cs
+++ /dev/null
@@ -1,60 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-// Request ----
-// Int32 : Amount
-// Int32 : Delay
-
-// Response ----
-// Double : Progress
-
-
-//Blower speed
-/*var response1 =*/ stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E8, /* speed =*/0x800); //Blower speed
-Thread.Sleep(1000); //Sleep for 1000 milli.
-var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); //ORF3
-stubManager.WriteLine("First response received");
-Thread.Sleep(1000); //Sleep for 1000 milli.
-//Thread.Sleep(5000); //Sleep for 10 milli.
-stubManager.WriteLine(response1.Progress);
-Thread.Sleep(1000); //Sleep for 1000 milli.
-var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); //ORF3
-stubManager.WriteLine(response2.Progress);
-Thread.Sleep(1000); //Sleep for 1000 milli.
-var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); //ORF3
-stubManager.WriteLine(response3.Progress);
-Thread.Sleep(1000); //Sleep for 1000 milli.
-var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); //ORF3
-stubManager.WriteLine(response4.Progress);
-Thread.Sleep(1000); //Sleep for 1000 milli.
-var response5 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); //ORF3
-stubManager.WriteLine(response5.Progress);
-Thread.Sleep(1000); //Sleep for 1000 milli.
-var response6 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); //ORF3
-stubManager.WriteLine(response6.Progress);
-Thread.Sleep(1000); //Sleep for 1000 milli.
-var response7 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); //ORF3
-stubManager.WriteLine(response7.Progress);
-Thread.Sleep(1000); //Sleep for 1000 milli.
-var response8 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); //ORF3
-stubManager.WriteLine(response8.Progress);
-Thread.Sleep(1000); //Sleep for 1000 milli.
-var response9 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); //ORF3
-stubManager.WriteLine(response9.Progress);
-Thread.Sleep(1000); //Sleep for 1000 milli.
-var response10 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); //ORF3
-stubManager.WriteLine(response10.Progress);
-//var response_av = (response1.Progress + response2.Progress +response3.Progress + response4.Progress + response5.Progress + response6.Progress + response7.Progress + response8.Progress +response9.Progress + response10.Progress)/10;
-//stubManager.WriteLine(response_av.Progress);
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_Fan_speed.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_Fan_speed.cs
deleted file mode 100644
index 582a7f7e7..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_Fan_speed.cs
+++ /dev/null
@@ -1,59 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-// Request ----
-// Int32 : Amount
-// Int32 : Delay
-
-// Response ----
-// Double : Progress
-
-//valv1
-var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8501); //valv1_en=1
-Thread.Sleep(5000); //Sleep for 10 milli.
-var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8401);// valv1_dir=1
-Thread.Sleep(5000); //Sleep for 10 milli.
-var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8400);// valv1_dir=0
-Thread.Sleep(5000); //Sleep for 10 milli.
-var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8500);// valv1_disable
-
-
-// valve 2
-var response5 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8701); //valv2_en=1
-Thread.Sleep(5000); //Sleep for 10 milli.
-var response6 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8601);// valv2_dir=1
-Thread.Sleep(5000); //Sleep for 10 milli.
-var response7 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8600);// valv2_dir=0
-Thread.Sleep(5000); //Sleep for 10 milli.
-var response8 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8700); //valv2_disable
-
-//test pump
-Thread.Sleep(5000); //Sleep for 10 milli.
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0701);// pump on
-Thread.Sleep(5000); //Sleep for 10 milli.
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0700); // pump off
-
-// test Blower
-Thread.Sleep(5000); //Sleep for 10 milli.
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E8, 0x0000);// Blower OFF
-Thread.Sleep(5000); //Sleep for 10 milli.
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E8, 0x0400);// Blower 1.25v
-Thread.Sleep(5000); //Sleep for 10 milli.
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E8, 0x0800); // Blower 2.5v
-Thread.Sleep(5000); //Sleep for 10 milli.
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E8, 0x0C00);// Blower 3.77v
-Thread.Sleep(5000); //Sleep for 10 milli.
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E8, 0x0FFF); // Blower 5.0v
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_blower_and_ORF3.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_blower_and_ORF3.cs
deleted file mode 100644
index 3eb47bc93..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_blower_and_ORF3.cs
+++ /dev/null
@@ -1,48 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-// Request ----
-// Int32 : Amount
-// Int32 : Delay
-
-// Response ----
-// Double : Progress
-
-//Blower speed
-var stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E8, /* speed =*/0xFFF); //Blower speed
-var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); // ORF3
-//Thread.Sleep(5000); //Sleep for 10 milli.
-//Blower speed
-var stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E8, /* speed =*/0x800); //Blower speed
-var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); // ORF3
-//Thread.Sleep(5000); //Sleep for 10 milli.
-//Blower speed
-var stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E8, /* speed =*/0x400); //Blower speed
-var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); // ORF3
-//Thread.Sleep(5000); //Sleep for 10 milli.
-//Blower speed
-var stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E8, /* speed =*/0x200); //Blower speed
-var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); // ORF3
-//Thread.Sleep(5000); //Sleep for 10 milli.
-//Blower speed
-var stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E8, /* speed =*/0x100); //Blower speed
-var response5 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); // ORF3
-//Thread.Sleep(5000); //Sleep for 10 milli.
- stubManager.WriteLineHex(response1.Progress,4);
- stubManager.WriteLineHex(response2.Progress,4);
- stubManager.WriteLineHex(response3.Progress,4);
- stubManager.WriteLineHex(response4.Progress,4);
- stubManager.WriteLineHex(response5.Progress,4);
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_fan.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_fan.cs
deleted file mode 100644
index acd5e3c50..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_fan.cs
+++ /dev/null
@@ -1,90 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-// Request ----
-// Int32 : Amount
-// Int32 : Delay
-
-// Response ----
-// Double : Progress
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0001);
-Thread.Sleep(1000); //Sleep for 10 milli.
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0101);
-Thread.Sleep(1000); //Sleep for 10 milli.
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0201);
-Thread.Sleep(1000); //Sleep for 10 milli.
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0301);
-Thread.Sleep(1000); //Sleep for 10 milli.
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0401);
-Thread.Sleep(1000); //Sleep for 10 milli.
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0501);
-Thread.Sleep(1000); //Sleep for 10 milli.
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0601);
-Thread.Sleep(1000); //Sleep for 10 milli.
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0701);
-Thread.Sleep(1000); //Sleep for 10 milli.
-
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4001);
-Thread.Sleep(1000); //Sleep for 10 milli.
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4101);
-Thread.Sleep(1000); //Sleep for 10 milli.
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4201);
-Thread.Sleep(1000); //Sleep for 10 milli.
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4301);
-Thread.Sleep(1000); //Sleep for 10 milli.
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4401);
-Thread.Sleep(1000); //Sleep for 10 milli.
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4501);
-Thread.Sleep(1000); //Sleep for 10 milli.
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4601);
-Thread.Sleep(1000); //Sleep for 10 milli.
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4701);
-Thread.Sleep(1000); //Sleep for 10 milli.
-
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0001);
-Thread.Sleep(1000); //Sleep for 10 milli.
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0101);
-Thread.Sleep(1000); //Sleep for 10 milli.
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0201);
-Thread.Sleep(1000); //Sleep for 10 milli.
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0301);
-Thread.Sleep(1000); //Sleep for 10 milli.
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0401);
-Thread.Sleep(1000); //Sleep for 10 milli.
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0501);
-Thread.Sleep(1000); //Sleep for 10 milli.
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0601);
-Thread.Sleep(1000); //Sleep for 10 milli.
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0701);
-Thread.Sleep(1000); //Sleep for 10 milli.
-
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4001);
-Thread.Sleep(1000); //Sleep for 10 milli.
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4101);
-Thread.Sleep(1000); //Sleep for 10 milli.
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4201);
-Thread.Sleep(1000); //Sleep for 10 milli.
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4301);
-Thread.Sleep(1000); //Sleep for 10 milli.
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4401);
-Thread.Sleep(1000); //Sleep for 10 milli.
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4501);
-Thread.Sleep(1000); //Sleep for 10 milli.
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4601);
-Thread.Sleep(1000); //Sleep for 10 milli.
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4701);
-Thread.Sleep(1000); //Sleep for 10 milli.
-
-var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E8, 0);
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_valv1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_valv1.cs
deleted file mode 100644
index c81bdaebd..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_valv1.cs
+++ /dev/null
@@ -1,47 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-// Request ----
-// Int32 : Amount
-// Int32 : Delay
-
-// Response ----
-// Double : Progress
-
-//valv1
-var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8501); //valv1_en=1
-Thread.Sleep(5000); //Sleep for 10 milli.
-var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8401);// valv1_dir=1
-Thread.Sleep(5000); //Sleep for 10 milli.
-var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8400);// valv1_dir=0
-Thread.Sleep(5000); //Sleep for 10 milli.
-var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8500);// valv1_disable
-
-
-// valve 2
-var response5 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8701); //valv2_en=1
-Thread.Sleep(5000); //Sleep for 10 milli.
-var response6 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8601);// valv2_dir=1
-Thread.Sleep(5000); //Sleep for 10 milli.
-var response7 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8600);// valv2_dir=0
-Thread.Sleep(5000); //Sleep for 10 milli.
-var response8 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8700); //valv2_disable
-
-//test pump
-Thread.Sleep(5000); //Sleep for 10 milli.
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0701);// pump on
-Thread.Sleep(5000); //Sleep for 10 milli.
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0700); // pump off
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_valv1_disable.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_valv1_disable.cs
deleted file mode 100644
index 086063855..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_valv1_disable.cs
+++ /dev/null
@@ -1,40 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-// Request ----
-// Int32 : Amount
-// Int32 : Delay
-
-// Response ----
-// Double : Progress
-//stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8500); //valv1_en=0
-//Thread.Sleep(5000); //Sleep for 10 milli.
-//stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8501); //valv1_en=0
-//Thread.Sleep(5000); //Sleep for 10 milli.
-
-
-
- int a = 0;
-
- while (a < 100)
- {
- a = a + 1;
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8500); //valv1_en=0
-Thread.Sleep(5000); //Sleep for 10 milli.
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8501); //valv1_en=0
-Thread.Sleep(5000); //Sleep for 10 milli.
-//stubManager.WriteLine(a);
- }
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_valv1_valv2_pump.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_valv1_valv2_pump.cs
deleted file mode 100644
index c4435ab42..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_valv1_valv2_pump.cs
+++ /dev/null
@@ -1,47 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-// Request ----
-// Int32 : Amount
-// Int32 : Delay
-
-// Response ----
-// Double : Progress
-
-//valv1
-var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8501); //valv1_en=1
-Thread.Sleep(5000); //Sleep for 10 milli.
-var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8401);// valv1_dir=1
-Thread.Sleep(5000); //Sleep for 10 milli.
-var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8400);// valv1_dir=0
-Thread.Sleep(5000); //Sleep for 10 milli.
-var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8500);// valv1_disable
-
-
-// valve 2
-var response5 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8701); //valv2_en=1
-Thread.Sleep(5000); //Sleep for 10 milli.
-var response6 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8601);// valv2_dir=1
-Thread.Sleep(5000); //Sleep for 10 milli.
-var response7 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8600);// valv2_dir=0
-Thread.Sleep(5000); //Sleep for 10 milli.
-var response8 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8700); //valv2_disable
-
-//test pump
-//Thread.Sleep(5000); //Sleep for 10 milli.
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0701);// pump on
-Thread.Sleep(5000); //Sleep for 10 milli.
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0700); // pump off
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_valv1_valv2_pump_Blower.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_valv1_valv2_pump_Blower.cs
deleted file mode 100644
index f873ba057..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_valv1_valv2_pump_Blower.cs
+++ /dev/null
@@ -1,27 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-// Request ----
-// Int32 : Amount
-// Int32 : Delay
-
-// Response ----
-// Double : Progress
-
-
-//fan test
-var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC1, 0xFF); //valv1_en=1
-Thread.Sleep(5000); //Sleep for 10 milli.
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/valv1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/valv1.cs
deleted file mode 100644
index 47f5cdff5..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/valv1.cs
+++ /dev/null
@@ -1,33 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-// Request ----
-// Int32 : Amount
-// Int32 : Delay
-
-// Response ----
-// Double : Progress
-
-//valv1
-var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8501); //valv1_en=1
-//Thread.Sleep(5000); //Sleep for 10 milli.
-//var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8401);// valv1_dir=1
-//Thread.Sleep(5000); //Sleep for 10 milli.
-//var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8400);// valv1_dir=0
-//Thread.Sleep(5000); //Sleep for 10 milli.
-//var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8500);// valv1_disable
-
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/valv2.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/valv2.cs
deleted file mode 100644
index ce19f0d1e..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/valv2.cs
+++ /dev/null
@@ -1,34 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-// Request ----
-// Int32 : Amount
-// Int32 : Delay
-
-// Response ----
-// Double : Progress
-
-
-
-// valve 2
-var response5 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8701); //valv2_en=1
-//Thread.Sleep(5000); //Sleep for 10 milli.
-//var response6 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8601);// valv2_dir=1
-//Thread.Sleep(5000); //Sleep for 10 milli.
-//var response7 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8600);// valv2_dir=0
-//Thread.Sleep(5000); //Sleep for 10 milli.
-//var response8 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8700); //valv2_disable
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/whs control loop disable.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/whs control loop disable.cs
deleted file mode 100644
index 01bd67d0a..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/whs control loop disable.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-//Loading Arm Calibration - this command writes the arm position to a non-volatile memory
-
-int ControlLoopEnable = 0x1000;
-int ControlLoopDisable = 0x0000;
-
-ProgressRequest progressRequest = new ProgressRequest();
-progressRequest.Amount = 0x3e8;
-progressRequest.Delay = ControlLoopDisable+2700;
-
- var response = stubManager.Run<ProgressResponse>(progressRequest);
-
-} \ No newline at end of file