aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Stubs Collection
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Stubs Collection')
-rw-r--r--Software/Stubs Collection/Procedures/ConnectionType.pproj1
-rw-r--r--Software/Stubs Collection/Procedures/Dancer calibration.txt49
-rw-r--r--Software/Stubs Collection/Procedures/Dancers calibration.pproj1
-rw-r--r--Software/Stubs Collection/Procedures/Debug Log Control.pproj1
-rw-r--r--Software/Stubs Collection/Procedures/EmbeddedParametersBuild.pproj1
-rw-r--r--Software/Stubs Collection/Procedures/EmbeddedParametersBuild.txt272
-rw-r--r--Software/Stubs Collection/Procedures/FFS Rebuild.pproj1
-rw-r--r--Software/Stubs Collection/Procedures/Loading Arm claibration.txt39
-rw-r--r--Software/Stubs Collection/Procedures/Mid tank calibration.pproj477
-rw-r--r--Software/Stubs Collection/Procedures/MidTank Calibration.txt477
-rw-r--r--Software/Stubs Collection/Procedures/Priming.pproj1
-rw-r--r--Software/Stubs Collection/Procedures/Priming1.pproj1015
-rw-r--r--Software/Stubs Collection/Procedures/Priming1.txt1015
-rw-r--r--Software/Stubs Collection/Procedures/Read main card EEPROM.pproj (renamed from Software/Stubs Collection/Procedures/Loading arm calibration.pproj)2
-rw-r--r--Software/Stubs Collection/Procedures/Read main card informatiom.txt91
-rw-r--r--Software/Stubs Collection/Procedures/Read main card information.pproj1
-rw-r--r--Software/Stubs Collection/Procedures/Selection Input.pproj1
-rw-r--r--Software/Stubs Collection/Procedures/Set_Head_Type_With_DB.pproj1
-rw-r--r--Software/Stubs Collection/Procedures/WHS Loop Disable.pproj1
-rw-r--r--Software/Stubs Collection/Procedures/WHS loopp control.txt31
-rw-r--r--Software/Stubs Collection/Procedures/WHS_waste_Tank_Calibration_Save_V0.pproj107
-rw-r--r--Software/Stubs Collection/Procedures/WHS_waste_Tank_Calibration_Save_V0.txt107
-rw-r--r--Software/Stubs Collection/Procedures/Waste Tank Calibration.pproj1
-rw-r--r--Software/Stubs Collection/Procedures/Winder Calibration.pproj1
-rw-r--r--Software/Stubs Collection/Procedures/Winder Calibration.txt78
-rw-r--r--Software/Stubs Collection/Procedures/Write main card information.pproj1
-rw-r--r--Software/Stubs Collection/Procedures/demo.pproj1
-rw-r--r--Software/Stubs Collection/Procedures/diagnostics shlomo.tdp2613
-rw-r--r--Software/Stubs Collection/Procedures/diagnostics.tdp2597
-rw-r--r--Software/Stubs Collection/alarm generator/alarm_gen.exebin3761664 -> 0 bytes
-rw-r--r--Software/Stubs Collection/stubs/Autohome_Control.cs30
-rw-r--r--Software/Stubs Collection/stubs/ChangePidDuringRun.cs52
-rw-r--r--Software/Stubs Collection/stubs/ConvertFloat2Bytes.cs54
-rw-r--r--Software/Stubs Collection/stubs/Create File System on the Drive - reset flash.cs17
-rw-r--r--Software/Stubs Collection/stubs/Delete alarm file.cs23
-rw-r--r--Software/Stubs Collection/stubs/Dispenser ByPass - getout from loewer safety.cs46
-rw-r--r--Software/Stubs Collection/stubs/Dispenser ByPass - getout from upper safety.cs46
-rw-r--r--Software/Stubs Collection/stubs/DispenserEEpromRead.cs27
-rw-r--r--Software/Stubs Collection/stubs/DispenserEEpromWrite.cs59
-rw-r--r--Software/Stubs Collection/stubs/EmbParam.cfgbin249 -> 0 bytes
-rw-r--r--Software/Stubs Collection/stubs/Get_PowerStep01_Parameters.cs227
-rw-r--r--Software/Stubs Collection/stubs/Head LS.cs31
-rw-r--r--Software/Stubs Collection/stubs/HeadCard_ADC.cs64
-rw-r--r--Software/Stubs Collection/stubs/Head_Card_I2C.cs66
-rw-r--r--Software/Stubs Collection/stubs/Head_Card_IO.cs160
-rw-r--r--Software/Stubs Collection/stubs/Head_EEPROM.cs135
-rw-r--r--Software/Stubs Collection/stubs/Head_card_PT100__Horizontal_Printing.cs59
-rw-r--r--Software/Stubs Collection/stubs/Head_card_PT100__Horizontal_Printing_new.cs87
-rw-r--r--Software/Stubs Collection/stubs/Head_card_PT100__Horizontal_Printing_new2.cs49
-rw-r--r--Software/Stubs Collection/stubs/Head_i2c_functions.cs27
-rw-r--r--Software/Stubs Collection/stubs/Heat I2C ACT test.cs33
-rw-r--r--Software/Stubs Collection/stubs/I2C_RW_Main_Card_EEPROM_Save_Main_SN.cs98
-rw-r--r--Software/Stubs Collection/stubs/I2C_RW_Main_EEPROM_AVI _support_string.cs109
-rw-r--r--Software/Stubs Collection/stubs/LoadingArm5Rounds.cs23
-rw-r--r--Software/Stubs Collection/stubs/LoadingArmCalibration.cs23
-rw-r--r--Software/Stubs Collection/stubs/LoadingArmandCenterCalibration.cs28
-rw-r--r--Software/Stubs Collection/stubs/Main card Watchdog test.cs24
-rw-r--r--Software/Stubs Collection/stubs/Motor_GMotor_Get_Param_Powerstep01_rev2.cs292
-rw-r--r--Software/Stubs Collection/stubs/Motor_Get_Param_Horizontal_Printing2.cs22
-rw-r--r--Software/Stubs Collection/stubs/Motor_Get_Param_Horizontal_Printing5.cs265
-rw-r--r--Software/Stubs Collection/stubs/Progress_SetRapid.cs23
-rw-r--r--Software/Stubs Collection/stubs/Read Dancer.cs36
-rw-r--r--Software/Stubs Collection/stubs/Read Dispensers Serial Num.cs27
-rw-r--r--Software/Stubs Collection/stubs/Scripts/11.cs42
-rw-r--r--Software/Stubs Collection/stubs/Scripts/12345.cs63
-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_motor_test.cs29
-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/auto shutt off.cs)21
-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
-rw-r--r--Software/Stubs Collection/stubs/Scripts/CalculateContinuous.cs42
-rw-r--r--Software/Stubs Collection/stubs/Scripts/ChangePidDuringRun.cs52
-rw-r--r--Software/Stubs Collection/stubs/Scripts/ConvertFloat2Bytes.cs54
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Defines/Blowe_RMO_LOG.CSV47
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Dispenser_setup.cs1415
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Head_EEPROM.cs135
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Head_Type_Indification.cs25
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Head_Type_Indification_2.cs25
-rw-r--r--Software/Stubs Collection/stubs/Scripts/I2C_RW_Dispenser_EEPROM.cs134
-rw-r--r--Software/Stubs Collection/stubs/Scripts/I2C_RW_Main_Card_EEPROM_Save_Main_SN.cs98
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Jig_Tester/Dryer_Jig.cs457
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Jig_Tester/DyeHead_Jig.cs344
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Jig_Tester/JIG_TESTER.cs1032
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Jig_Tester/Jig-TesterV 1.0.docxbin2159500 -> 0 bytes
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Jig_Tester/Jig-TesterV 1.1.docxbin3989402 -> 0 bytes
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Jig_Tester/LTFU_Jig.cs496
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Jig_Tester/MidTank_Jig.cs201
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Jig_Tester/Mixer_Jig.cs131
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Jig_Tester/New_DyeHead_Jig.cs583
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Jig_Tester/New_Mixer_Jig.cs170
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Jig_Tester/RTFU_Jig.cs367
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Jig_Tester/Tango_define.cs124
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Jig_Tester/Winder_Jig.cs189
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Jig_Tester/location.cs1
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Jig_Tester/span.cs615
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Jig_Tester/stapele_span.cs631
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Main card Watchdog test.cs24
-rw-r--r--Software/Stubs Collection/stubs/Scripts/MidTank Calibration.pproj1
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Moshe Copy Files.exebin342016 -> 0 bytes
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing.cs118
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing1.cs118
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing2.cs233
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing3.cs261
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing4.cs265
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing_powerstep01.cs266
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing_powerstep01_rev10.cs266
-rw-r--r--Software/Stubs Collection/stubs/Scripts/NewSpeedSensor.cs45
-rw-r--r--Software/Stubs Collection/stubs/Scripts/POPUP example for mati.cs30
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Priming.pproj1
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Priming1.pproj1
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Read Dancer new.cs138
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Read Dancer.cs32
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Read Dispensers Serial Num.cs27
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Read_Version.cs17
-rw-r--r--Software/Stubs Collection/stubs/Scripts/SS Head Sensor board.cs22
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Set cleaning sequence.cs23
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Set loading arm center.cs22
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Tango_Main_PCB_ATP_sn_xxxxxxx.xlsxbin14591 -> 0 bytes
-rw-r--r--Software/Stubs Collection/stubs/Scripts/TestForVika.cs126
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Twine_Tango_Main_Test12.docxbin14324142 -> 0 bytes
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Twine_Tango_Main_Test13.docxbin13730535 -> 0 bytes
-rw-r--r--Software/Stubs Collection/stubs/Scripts/WHS_Test_EEPROM.cs135
-rw-r--r--Software/Stubs Collection/stubs/Scripts/WHS_waste_Tank_Calibration_Save_V0.pproj1
-rw-r--r--Software/Stubs Collection/stubs/Scripts/blower_Q.cs29
-rw-r--r--Software/Stubs Collection/stubs/Scripts/change sublimation time.cs23
-rw-r--r--Software/Stubs Collection/stubs/Scripts/check_kval_load_arm.cs80
-rw-r--r--Software/Stubs Collection/stubs/Scripts/config head type to hed card eeprom.cs118
-rw-r--r--Software/Stubs Collection/stubs/Scripts/eepromati2.c458
-rw-r--r--Software/Stubs Collection/stubs/Scripts/eepromati3.c272
-rw-r--r--Software/Stubs Collection/stubs/Scripts/embeddedparametersbuild_w_cleaning.cs215
-rw-r--r--Software/Stubs Collection/stubs/Scripts/load parameters from machine.cs59
-rw-r--r--Software/Stubs Collection/stubs/Scripts/magnet_new_head.cs23
-rw-r--r--Software/Stubs Collection/stubs/Scripts/motormov.cs23
-rw-r--r--Software/Stubs Collection/stubs/Scripts/new dispenser card GPIO.cs90
-rw-r--r--Software/Stubs Collection/stubs/Scripts/process parameters.cs57
-rw-r--r--Software/Stubs Collection/stubs/Scripts/progress_test.pproj1
-rw-r--r--Software/Stubs Collection/stubs/Scripts/read and store main card data.cs83
-rw-r--r--Software/Stubs Collection/stubs/Scripts/read write main eeprom fixed.cs45
-rw-r--r--Software/Stubs Collection/stubs/Scripts/read write main eeprom.cs45
-rw-r--r--Software/Stubs Collection/stubs/Scripts/read_cpu_eeprom.cs29
-rw-r--r--Software/Stubs Collection/stubs/Scripts/single temperature.cs23
-rw-r--r--Software/Stubs Collection/stubs/Scripts/temp.cs492
-rw-r--r--Software/Stubs Collection/stubs/Scripts/test halt.cs24
-rw-r--r--Software/Stubs Collection/stubs/Scripts/test.cs76
-rw-r--r--Software/Stubs Collection/stubs/Scripts/waste level.cs71
-rw-r--r--Software/Stubs Collection/stubs/Scripts/waste_level2.cs85
-rw-r--r--Software/Stubs Collection/stubs/Scripts/wd_enable.cs25
-rw-r--r--Software/Stubs Collection/stubs/Scripts/whs eeprom temporary 2.cs31
-rw-r--r--Software/Stubs Collection/stubs/Scripts/whs eeprom temporary.cs42
-rw-r--r--Software/Stubs Collection/stubs/Scripts/whs fans stop.cs28
-rw-r--r--Software/Stubs Collection/stubs/Set CleaningSequence.cs23
-rw-r--r--Software/Stubs Collection/stubs/Set loading arm center.cs22
-rw-r--r--Software/Stubs Collection/stubs/SetWindingRotations.cs27
-rw-r--r--Software/Stubs Collection/stubs/SetupDebugDisributors.cs79
-rw-r--r--Software/Stubs Collection/stubs/Test_Bred_bord_Head_pressure_sensor_ARC.cs83
-rw-r--r--Software/Stubs Collection/stubs/ThreadLoading.cs119
-rw-r--r--Software/Stubs Collection/stubs/WD test.cs49
-rw-r--r--Software/Stubs Collection/stubs/WHS_EEPROM.cs31
-rw-r--r--Software/Stubs Collection/stubs/alarm.cfg292
-rw-r--r--Software/Stubs Collection/stubs/arm test.cs43
-rw-r--r--Software/Stubs Collection/stubs/change sublimation time.cs23
-rw-r--r--Software/Stubs Collection/stubs/cleaning sequence disable.cs24
-rw-r--r--Software/Stubs Collection/stubs/dye sequence stubs.cs40
-rw-r--r--Software/Stubs Collection/stubs/embParamDownload.cs74
-rw-r--r--Software/Stubs Collection/stubs/embeddedparametersbuild.cs (renamed from Software/Stubs Collection/stubs/Scripts/embeddedparametersbuild.cs)96
-rw-r--r--Software/Stubs Collection/stubs/embeddedparametersbuild_w_cleaning.cs233
-rw-r--r--Software/Stubs Collection/stubs/head_card_fan_test.cs26
-rw-r--r--Software/Stubs Collection/stubs/load parameters from machine.cs46
-rw-r--r--Software/Stubs Collection/stubs/logs handles.cs38
-rw-r--r--Software/Stubs Collection/stubs/logs severity.cs27
-rw-r--r--Software/Stubs Collection/stubs/midtank calibration/Midtankcalibration.cs69
-rw-r--r--Software/Stubs Collection/stubs/midtank calibration/read_midtank_calibration.cs37
-rw-r--r--Software/Stubs Collection/stubs/moveloadarmback.cs29
-rw-r--r--Software/Stubs Collection/stubs/powestep01_change_mode.cs25
-rw-r--r--Software/Stubs Collection/stubs/read WHS V0.cs33
-rw-r--r--Software/Stubs Collection/stubs/read and store main card data.cs84
-rw-r--r--Software/Stubs Collection/stubs/read eeprom advanced.cs84
-rw-r--r--Software/Stubs Collection/stubs/read embedded version.cs2
-rw-r--r--Software/Stubs Collection/stubs/read main card eeprom.cs25
-rw-r--r--Software/Stubs Collection/stubs/reload main card EEPROM.cs101
-rw-r--r--Software/Stubs Collection/stubs/set test VAC.cs23
-rw-r--r--Software/Stubs Collection/stubs/stop whs blower control.cs23
-rw-r--r--Software/Stubs Collection/stubs/technician view files/ARC head techboard.tpf2722
-rw-r--r--Software/Stubs Collection/stubs/technician view files/FSE Draft 1.tpf1401
-rw-r--r--Software/Stubs Collection/stubs/technician view files/FSE Draft 2.tpf1401
-rw-r--r--Software/Stubs Collection/stubs/technician view files/alpha.tpf2149
-rw-r--r--Software/Stubs Collection/stubs/technician view files/new head.tpf3096
-rw-r--r--Software/Stubs Collection/stubs/technician view files/teach board 2.tpf3144
-rw-r--r--Software/Stubs Collection/stubs/technician view files/tech board 1.tpf2974
-rw-r--r--Software/Stubs Collection/stubs/test_reg_readback.cs20
-rw-r--r--Software/Stubs Collection/stubs/test_uart3_whs.cs24
-rw-r--r--Software/Stubs Collection/stubs/update thread PID during run.cs57
-rw-r--r--Software/Stubs Collection/stubs/whs control loop disable.cs26
309 files changed, 502 insertions, 90381 deletions
diff --git a/Software/Stubs Collection/Procedures/ConnectionType.pproj b/Software/Stubs Collection/Procedures/ConnectionType.pproj
deleted file mode 100644
index 9f87f5e00..000000000
--- a/Software/Stubs Collection/Procedures/ConnectionType.pproj
+++ /dev/null
@@ -1 +0,0 @@
-{"$id":"1","Name":"untitled","Description":null,"Scripts":{"$id":"2","$values":[{"$id":"3","Name":"Program.csx","IsEntryPoint":true,"Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Program\r\n{\r\n public void OnExecute(IProcedureContext context)\r\n {\r\n\t\t\r\n //Connection check example.\r\n \r\n if (context.IsConnected) //Check if there is an active machine connection.\r\n {\r\n \tif (context.ConnectionType == MachineConnectionTypes.Wifi) //Check enumeration of the active connection type.\r\n \t{\r\n \t\tcontext.WriteLine(\"The machine is connected via WiFi\");\t\r\n \t}\r\n }\r\n\r\n }\r\n}"},{"$id":"4","Name":"Service.csx","IsEntryPoint":false,"Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}"}]},"Inputs":{"$id":"5","$values":[]},"ReferenceAssemblies":{"$id":"6","$values":[{"$id":"7","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"8","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"9","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"10","File":"C:\\DATA\\Development\\Tango\\Software\\Visual_Studio\\Build\\FSE\\Debug\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"11","File":"C:\\DATA\\Development\\Tango\\Software\\Visual_Studio\\Build\\FSE\\Debug\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"12","File":"C:\\DATA\\Development\\Tango\\Software\\Visual_Studio\\Build\\FSE\\Debug\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"13","File":"C:\\DATA\\Development\\Tango\\Software\\Visual_Studio\\Build\\FSE\\Debug\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"14","File":"C:\\DATA\\Development\\Tango\\Software\\Visual_Studio\\Build\\FSE\\Debug\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"15","File":"C:\\DATA\\Development\\Tango\\Software\\Visual_Studio\\Build\\FSE\\Debug\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"16","File":"C:\\DATA\\Development\\Tango\\Software\\Visual_Studio\\Build\\FSE\\Debug\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"17","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"Dialogs":{"$id":"18","$values":[]},"ID":"d6aaf6ec-2a05-4edb-b150-fef4487acd80","ApartmentState":"STA"} \ No newline at end of file
diff --git a/Software/Stubs Collection/Procedures/Dancer calibration.txt b/Software/Stubs Collection/Procedures/Dancer calibration.txt
deleted file mode 100644
index d6b90c1f0..000000000
--- a/Software/Stubs Collection/Procedures/Dancer calibration.txt
+++ /dev/null
@@ -1,49 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
-using System.ComponentModel;
-using System.Linq;
-using System.Text;
-using System.Threading;
-using System.Threading.Tasks;
-using Google.Protobuf;
-using Tango.BL.Enumerations;
-using Tango.PMR.Stubs;
-using Tango.PMR.Diagnostics;
-using Tango.FSE.Common.Diagnostics;
-using Tango.FSE.Procedures;
-
-public class Program
-{
- public void OnExecute(IProcedureContext context)
- {
- StubDancerPositionRequest stubDancerPositionRequest = new StubDancerPositionRequest();
- string response1 = context.GetInput<string>("ValidationPassword");
- List<uint> list = new List<uint>();
- if (response1 == "Aa123456")
- {
- context.WriteLine(response1);
- stubDancerPositionRequest.DancerID = 0;
- StubDancerPositionResponse response = context.Send<StubDancerPositionResponse>(stubDancerPositionRequest);
- Thread.Sleep(100);
- list.Add (response.Position);
- stubDancerPositionRequest.DancerID = 1;
- response = context.Send<StubDancerPositionResponse>(stubDancerPositionRequest);
- Thread.Sleep(100);
- list.Add (response.Position);
- stubDancerPositionRequest.DancerID = 2;
- response = context.Send<StubDancerPositionResponse>(stubDancerPositionRequest);
- Thread.Sleep(100);
- list.Add (response.Position);
-
- context.AddResult(ResultType.Passed, "Array Result", list);
-
- }
- else
- {
- context.AddResult(ResultType.Failed, "Wrong password", response1);
-
- }
-
- }
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/Procedures/Dancers calibration.pproj b/Software/Stubs Collection/Procedures/Dancers calibration.pproj
deleted file mode 100644
index 53140f877..000000000
--- a/Software/Stubs Collection/Procedures/Dancers calibration.pproj
+++ /dev/null
@@ -1 +0,0 @@
-{"$id":"1","Name":"Dancers calibration","Description":"This procedure calibrates the middle points of the dancers. you must enter the passord for the procedure to run.","Scripts":{"$id":"2","$values":[{"$id":"3","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Program\r\n{\r\n public void OnExecute(IProcedureContext context)\r\n {\r\n\t\tStubDancerPositionRequest stubDancerPositionRequest = new StubDancerPositionRequest();\r\n\t\tstring response1 = context.GetInput<string>(\"ValidationPassword\");\r\n List<uint> list = new List<uint>();\r\n\t\tif (response1 == \"Aa123456\")\r\n\t\t{\r\n\t\t\tcontext.WriteLine(response1);\r\n\t\t\tstubDancerPositionRequest.DancerID = 0;\r\n\t\t\tStubDancerPositionResponse response = context.Send<StubDancerPositionResponse>(stubDancerPositionRequest);\r\n\t\t\tThread.Sleep(100);\r\n\t\t\tlist.Add (response.Position);\r\n\t\t\tstubDancerPositionRequest.DancerID = 1;\r\n\t\t \tresponse = context.Send<StubDancerPositionResponse>(stubDancerPositionRequest);\r\n\t\t\tThread.Sleep(100);\r\n\t\t\tlist.Add (response.Position);\r\n\t\t\tstubDancerPositionRequest.DancerID = 2;\r\n\t\t\tresponse = context.Send<StubDancerPositionResponse>(stubDancerPositionRequest);\r\n\t\t\tThread.Sleep(100);\r\n\t\t\tlist.Add (response.Position);\r\n\r\n\t context.AddResult(ResultType.Passed, \"Array Result\", list);\r\n\r\n\t }\r\n\t else\r\n\t {\r\n\t context.AddResult(ResultType.Failed, \"Wrong password\", response1);\r\n\r\n\t }\r\n\r\n }\r\n}","Name":"Program.csx","IsEntryPoint":true},{"$id":"4","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}","Name":"Service.csx","IsEntryPoint":false}]},"Inputs":{"$id":"5","$values":[{"$id":"6","Type":"Default","SelectionInputs":{"$id":"7","$values":[]},"DisplayName":"Validation Password","Description":"Validation Password","Key":"ValidationPassword","Value":"0"}]},"ReferenceAssemblies":{"$id":"8","$values":[{"$id":"9","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"10","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"11","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"12","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"13","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"14","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"15","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"16","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"17","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"18","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"19","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"Dialogs":{"$id":"20","$values":[]},"ID":"23b690b1-bd08-45ba-807b-3faa244ed8c3","ApartmentState":"MTA"} \ No newline at end of file
diff --git a/Software/Stubs Collection/Procedures/Debug Log Control.pproj b/Software/Stubs Collection/Procedures/Debug Log Control.pproj
deleted file mode 100644
index c79f5f7e8..000000000
--- a/Software/Stubs Collection/Procedures/Debug Log Control.pproj
+++ /dev/null
@@ -1 +0,0 @@
-{"$id":"1","Name":"Debug Log Control","Description":null,"Scripts":{"$id":"2","$values":[{"$id":"3","Name":"Program.csx","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Entities;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Debugging;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Program\r\n{\r\n public void OnExecute(IProcedureContext context)\r\n {\r\n\t\tSetDebugLogCategoryRequest setDebugLogCategoryRequest = new SetDebugLogCategoryRequest();\r\n\t\tint Category = context.GetInput<int>(\"Category\");\r\n\t\tsetDebugLogCategoryRequest.MinimumCategory = (Tango.PMR.Debugging.DebugLogCategory)Category;\r\n\t\tvar response = context.Send<SetDebugLogCategoryResponse>(setDebugLogCategoryRequest);\r\n\r\n\t\tSetupDebugDisributorsRequest setupDebugDisributorsRequest = new SetupDebugDisributorsRequest();\r\n\r\n\t\tsetupDebugDisributorsRequest.DebugDistributor = Tango.PMR.Debugging.DebugDistributorType.ControlFilter;\r\n\t\tsetupDebugDisributorsRequest.DistributorActive = context.GetInput<bool>(\"Control Filter\");\r\n\t\tvar response1 = context.Send<SetupDebugDisributorsResponse>(setupDebugDisributorsRequest);\r\n\t\tsetupDebugDisributorsRequest.DebugDistributor = Tango.PMR.Debugging.DebugDistributorType.HeatersFilter;\r\n\t\tsetupDebugDisributorsRequest.DistributorActive = context.GetInput<bool>(\"Heaters Filter\");\r\n\t\tresponse1 = context.Send<SetupDebugDisributorsResponse>(setupDebugDisributorsRequest);\r\n\t\tsetupDebugDisributorsRequest.DebugDistributor = Tango.PMR.Debugging.DebugDistributorType.JobFilter ;\r\n\t\tsetupDebugDisributorsRequest.DistributorActive = context.GetInput<bool>(\"Job Filter \");\r\n\t\tresponse1 = context.Send<SetupDebugDisributorsResponse>(setupDebugDisributorsRequest);\r\n\t\tsetupDebugDisributorsRequest.DebugDistributor = Tango.PMR.Debugging.DebugDistributorType.WasteFilter ;\r\n\t\tsetupDebugDisributorsRequest.DistributorActive = context.GetInput<bool>(\"Waste Filter \");\r\n\t\tresponse1 = context.Send<SetupDebugDisributorsResponse>(setupDebugDisributorsRequest);\r\n\t\tsetupDebugDisributorsRequest.DebugDistributor = Tango.PMR.Debugging.DebugDistributorType.AlarmFilter ;\r\n\t\tsetupDebugDisributorsRequest.DistributorActive = context.GetInput<bool>(\"Alarm Filter \");\r\n\t\tresponse1 = context.Send<SetupDebugDisributorsResponse>(setupDebugDisributorsRequest);\r\n\t\tsetupDebugDisributorsRequest.DebugDistributor = Tango.PMR.Debugging.DebugDistributorType.DiagnosticsFilter;\r\n\t\tsetupDebugDisributorsRequest.DistributorActive = context.GetInput<bool>(\"Diagnostics Filter\");\r\n\t\tresponse1 = context.Send<SetupDebugDisributorsResponse>(setupDebugDisributorsRequest);\r\n\t\t//setupDebugDisributorsRequest.DebugDistributor = Tango.PMR.Debugging.DebugDistributorType.IDSFilter;\r\n\t\tsetupDebugDisributorsRequest.DistributorActive = context.GetInput<bool>(\"IDS Filter\");\r\n\t\t//response1 = context.Send<SetupDebugDisributorsResponse>(setupDebugDisributorsRequest);\r\n\t\tsetupDebugDisributorsRequest.DebugDistributor = Tango.PMR.Debugging.DebugDistributorType.ThreadFilter;\r\n\t\tsetupDebugDisributorsRequest.DistributorActive = context.GetInput<bool>(\"Thread Filter\");\r\n\t\tresponse1 = context.Send<SetupDebugDisributorsResponse>(setupDebugDisributorsRequest);\r\n\t\tsetupDebugDisributorsRequest.DebugDistributor = Tango.PMR.Debugging.DebugDistributorType.GeneralFilter;\r\n\t\tsetupDebugDisributorsRequest.DistributorActive = context.GetInput<bool>(\"General Filter\");\r\n\t\tresponse1 = context.Send<SetupDebugDisributorsResponse>(setupDebugDisributorsRequest);\r\n\t\tsetupDebugDisributorsRequest.DebugDistributor = Tango.PMR.Debugging.DebugDistributorType.CommFilter;\r\n\t\tsetupDebugDisributorsRequest.DistributorActive = context.GetInput<bool>(\"Comm Filter\");\r\n\t\tresponse1 = context.Send<SetupDebugDisributorsResponse>(setupDebugDisributorsRequest);\r\n\t\t//setupDebugDisributorsRequest.DebugDistributor = Tango.PMR.Debugging.DebugDistributorType.FPGAFilter;\r\n\t\tsetupDebugDisributorsRequest.DistributorActive = context.GetInput<bool>(\"FPGA Filter\");\r\n\t\t//response1 = context.Send<SetupDebugDisributorsResponse>(setupDebugDisributorsRequest);\r\n\t\tsetupDebugDisributorsRequest.DebugDistributor = Tango.PMR.Debugging.DebugDistributorType.LoadFilter;\r\n\t\tsetupDebugDisributorsRequest.DistributorActive = context.GetInput<bool>(\"Load Filter\");\r\n\t\tresponse1 = context.Send<SetupDebugDisributorsResponse>(setupDebugDisributorsRequest);\r\n\t\tsetupDebugDisributorsRequest.DebugDistributor = Tango.PMR.Debugging.DebugDistributorType.InitFilter;\r\n\t\tsetupDebugDisributorsRequest.DistributorActive = context.GetInput<bool>(\"Init Filter\");\r\n\t\tresponse1 = context.Send<SetupDebugDisributorsResponse>(setupDebugDisributorsRequest);\r\n\t\tsetupDebugDisributorsRequest.DebugDistributor = Tango.PMR.Debugging.DebugDistributorType.MaintFilter;\r\n\t\tsetupDebugDisributorsRequest.DistributorActive = context.GetInput<bool>(\"Maint Filter\");\r\n\t\tresponse1 = context.Send<SetupDebugDisributorsResponse>(setupDebugDisributorsRequest);\r\n\t\t//setupDebugDisributorsRequest.DebugDistributor = Tango.PMR.Debugging.DebugDistributorType.IFSFilter ;\r\n\t\tsetupDebugDisributorsRequest.DistributorActive = context.GetInput<bool>(\"IFS Filter\");\r\n\t\t//response1 = context.Send<SetupDebugDisributorsResponse>(setupDebugDisributorsRequest);\r\n\t\tsetupDebugDisributorsRequest.DebugDistributor = Tango.PMR.Debugging.DebugDistributorType.FilesFilter;\r\n\t\tsetupDebugDisributorsRequest.DistributorActive = context.GetInput<bool>(\"Files Filter\");\r\n\t\tresponse1 = context.Send<SetupDebugDisributorsResponse>(setupDebugDisributorsRequest);\r\n\t\t//setupDebugDisributorsRequest.DebugDistributor = Tango.PMR.Debugging.DebugDistributorType.I2CFilter ;\r\n\t\tsetupDebugDisributorsRequest.DistributorActive = context.GetInput<bool>(\"I2C Filter\");\r\n\t\t//response1 = context.Send<SetupDebugDisributorsResponse>(setupDebugDisributorsRequest);\r\n\t\t//setupDebugDisributorsRequest.DebugDistributor = Tango.PMR.Debugging.DebugDistributorType.MotorFilter;\r\n\t\tsetupDebugDisributorsRequest.DistributorActive = context.GetInput<bool>(\"Motor Filter\");\r\n\t\t//response1 = context.Send<SetupDebugDisributorsResponse>(setupDebugDisributorsRequest);\r\n\r\n }\r\n}","IsEntryPoint":true},{"$id":"4","Name":"Service.csx","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Entities;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}","IsEntryPoint":false}]},"Inputs":{"$id":"5","$values":[{"$id":"6","Type":"Selection","SelectionInputs":{"$id":"7","$values":[{"$id":"8","Name":"Info","Value":"0"},{"$id":"9","Name":"Warning","Value":"1"},{"$id":"10","Name":"Error","Value":"2"},{"$id":"11","Name":"Critical","Value":"3"},{"$id":"12","Name":"Debug","Value":"4"}]},"DisplayName":"Category","Description":"Minimal category to display","Key":"Category","Value":"2"},{"$id":"13","Type":"Boolean","SelectionInputs":{"$id":"14","$values":[]},"DisplayName":"Control Filter","Description":"Control Filter","Key":"Control Filter","Value":true},{"$id":"15","Type":"Boolean","SelectionInputs":{"$id":"16","$values":[]},"DisplayName":"Heaters Filter","Description":"Heaters Filter","Key":"Heaters Filter","Value":true},{"$id":"17","Type":"Boolean","SelectionInputs":{"$id":"18","$values":[]},"DisplayName":"Job Filter","Description":"Job Filter","Key":"Job Filter","Value":true},{"$id":"19","Type":"Boolean","SelectionInputs":{"$id":"20","$values":[]},"DisplayName":"Waste Filter","Description":"Waste Filter","Key":"Waste Filter","Value":true},{"$id":"21","Type":"Boolean","SelectionInputs":{"$id":"22","$values":[]},"DisplayName":"Alarm Filter","Description":"Alarm Filter","Key":"Alarm Filter","Value":true},{"$id":"23","Type":"Boolean","SelectionInputs":{"$id":"24","$values":[]},"DisplayName":"Diagnostics Filter","Description":"Diagnostics Filter","Key":"Diagnostics Filter","Value":true},{"$id":"25","Type":"Boolean","SelectionInputs":{"$id":"26","$values":[]},"DisplayName":"IDS Filter","Description":"IDS Filter","Key":"IDS Filter","Value":true},{"$id":"27","Type":"Boolean","SelectionInputs":{"$id":"28","$values":[]},"DisplayName":"Thread Filter","Description":"Thread Filter","Key":"Thread Filter","Value":true},{"$id":"29","Type":"Boolean","SelectionInputs":{"$id":"30","$values":[]},"DisplayName":"General Filter","Description":"General Filter","Key":"General Filter","Value":true},{"$id":"31","Type":"Boolean","SelectionInputs":{"$id":"32","$values":[]},"DisplayName":"Comm Filter","Description":"Comm Filter","Key":"Comm Filter","Value":true},{"$id":"33","Type":"Boolean","SelectionInputs":{"$id":"34","$values":[]},"DisplayName":"FPGA Filter","Description":"FPGA Filter","Key":"FPGA Filter","Value":true},{"$id":"35","Type":"Boolean","SelectionInputs":{"$id":"36","$values":[]},"DisplayName":"Load Filter","Description":"Load Filter","Key":"Load Filter","Value":true},{"$id":"37","Type":"Boolean","SelectionInputs":{"$id":"38","$values":[]},"DisplayName":"Init Filter","Description":"Init Filter","Key":"Init Filter","Value":true},{"$id":"39","Type":"Boolean","SelectionInputs":{"$id":"40","$values":[]},"DisplayName":"Maint Filter","Description":"Maint Filter","Key":"Maint Filter","Value":true},{"$id":"41","Type":"Boolean","SelectionInputs":{"$id":"42","$values":[]},"DisplayName":"IFS Filter","Description":"IFS Filter","Key":"IFS Filter","Value":true},{"$id":"43","Type":"Boolean","SelectionInputs":{"$id":"44","$values":[]},"DisplayName":"Files Filter","Description":"Files Filter","Key":"Files Filter","Value":true},{"$id":"45","Type":"Boolean","SelectionInputs":{"$id":"46","$values":[]},"DisplayName":"I2C Filter","Description":"I2C Filter","Key":"I2C Filter","Value":true},{"$id":"47","Type":"Boolean","SelectionInputs":{"$id":"48","$values":[]},"DisplayName":"Motor Filter","Description":"Motor Filter","Key":"Motor Filter","Value":true}]},"Variables":{"$id":"49","$values":[]},"ReferenceAssemblies":{"$id":"50","$values":[{"$id":"51","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"52","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"53","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"54","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"55","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"56","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"57","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"58","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"59","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"60","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"61","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"Resources":{"$id":"62","$values":[]},"Dialogs":{"$id":"63","$values":[]},"ID":"6829ef05-2990-4989-afc3-a35ff89a3d0f","ApartmentState":"STA"} \ No newline at end of file
diff --git a/Software/Stubs Collection/Procedures/EmbeddedParametersBuild.pproj b/Software/Stubs Collection/Procedures/EmbeddedParametersBuild.pproj
deleted file mode 100644
index 7f649fdf8..000000000
--- a/Software/Stubs Collection/Procedures/EmbeddedParametersBuild.pproj
+++ /dev/null
@@ -1 +0,0 @@
-{"$id":"1","Name":"EmbeddedParametersBuild","Visibility":"Public","Description":"This procedure lets the FSE to define values for cleaning, tamper alarms, initial heating, WCF value and automatic dispenser filling.","Scripts":{"$id":"2","$values":[{"$id":"3","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.IO;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.PMR.EmbeddedParameters;\r\nusing Tango.PMR.IO;\r\nusing Tango.FSE.Procedures;\r\n\r\n\r\npublic class Cleaning\r\n{\r\n\t[Description(\"Actuator Going up time\")]\r\n\tpublic int Tup;\r\n\t[Description(\"Actuator Wait up time\")]\r\n\tpublic int Tdelay1;\r\n\t[Description(\"Actuator Wait Down time\")]\r\n\tpublic int Tdelay2;\r\n}\r\npublic class Advanced\r\n{\r\n\t[Description(\"Automatic heating on machine StartUp\")]\r\n\tpublic bool InitialHeating;\r\n\t[Description(\"Waste pressure buildup factor\")]\r\n\tpublic int WFCF;\r\n\t[Description(\"Auto fill mode on/off\")]\r\n\tpublic bool Autofill;\r\n}\r\n\r\npublic class Program\r\n{\r\n public void OnExecute(IProcedureContext context)\r\n {\r\n\tstring description = \"\";\r\n context.AddResult(ResultType.Passed, \"My Value Name\", \"Test for this value has passed.\");\r\n\t\tConfigurationParameters configurationParameters = new ConfigurationParameters();\r\n\r\n\t\tbool AdvancedParams = context.GetInput<bool>(\"AdvancedParameters\");\r\n\t\tAdvanced Advancedparam = new Advanced();\r\n\t\tAdvancedparam.InitialHeating = true;\r\n\t\tAdvancedparam.WFCF = 40;\r\n\t\tAdvancedparam.Autofill = true;\r\n\t\tif (AdvancedParams == true)\r\n \tAdvancedparam =\tcontext.RequestUserInputFor<Advanced>(Advancedparam,\"Advanced parameters input Required\",\"Please fill in the form\");\r\n\t\tdescription += \"Version 1.5.3.3\"; \r\n\t\tconfigurationParameters.BreakSensorLimit = 10;\r\n\r\n\t\t//how many samples to collect in diagnostics before sending\r\n\t\tconfigurationParameters.DiagnosticCollectionLimit = 1;\r\n\r\n\t\t//how many consecutive readout before declaring DC over/underheat alarm\r\n\t\tconfigurationParameters.OverHeatCountLimit = 3;\r\n\t\tconfigurationParameters.UnderHeatCountLimit = 3;\r\n\r\n\t\t// time of motor activity before opening the valve or after closing the valve, in milliseconds\r\n\t\tconfigurationParameters.CloseValveTimeout = 20;\r\n\t\tconfigurationParameters.OpenValveTimeout = 20;\r\n\r\n\t\t//backlash after filling - target pressure, timoeout, time staps (speed will be added in general parameters)\r\n\t\tconfigurationParameters.InitialDispenserPressure = 3.85; //used for initial pre-run maximal pressure\r\n\t\tconfigurationParameters.InitialDispenserTimeout = 120000; ////used for initial pre-run target number of steps\r\n\t\tconfigurationParameters.InitialDispenserTimeLag = 100;\r\n\t\tdescription = description+\" \"+configurationParameters.InitialDispenserPressure+\"-\"+configurationParameters.InitialDispenserTimeout/1000;\r\n\r\n\t\t//job prepare - build pressure in dispensers - target pressure, timoeout, time staps, speed\r\n\t\tconfigurationParameters.DispenserBuildPressureSpeed = 950; //no more than 1000\r\n\t\tconfigurationParameters.DispenserBuildPressureLimit = 0.85; \r\n\t\tconfigurationParameters.DispenserBuildPressureTimeout = 420000;\r\n\t\tconfigurationParameters.DispenserBuildPressureLag = 100;\r\n\t\tdescription = description+\" T \"+configurationParameters.DispenserBuildPressureTimeout/1000;\r\n\r\n\t\t//temperature band 1000 = 100% - thresholds for job start around target temprature - AC\r\n\t\tconfigurationParameters.ACHeatersLowerOperationLimit = 995;\r\n\t\tconfigurationParameters.ACHeatersUpperOperationLimit = 1005;\r\n\r\n\t\t//temperature band 1000 = 100% - thresholds for job start around target temprature - DC\r\n\t\tconfigurationParameters.DCHeatersLowerOperationLimit = 978;\r\n\t\tconfigurationParameters.DCHeatersUpperOperationLimit = 1005;\r\n\r\n\t\t// mid tank reading offset to add to the readout (OBSOLETE!)\r\n\t\tconfigurationParameters.MidTankPressureCorrection = 0.0;\r\n\r\n\t\t//waste factor for intersegment pressure building\r\n\t\tconfigurationParameters.DispenserPresegmentWFCF = Advancedparam.WFCF;\r\n\t\tdescription = description+\" WF\"+configurationParameters.DispenserPresegmentWFCF;\r\n\t\t\r\n\t\t//how much time to start the WFCF process (pressure buildup) before segment start\r\n\t\tconfigurationParameters.IDSPreSegmentWFCFTimeBeforeSegment = 12000;\r\n\r\n\t\t//flag: start heaters according to saved process parameters upon init?\r\n\t\tconfigurationParameters.StartHeatingOnInitSequence = Advancedparam.InitialHeating;\r\n\r\n\t\t// current test for the heaters - alarm thresholds\r\n\t\tconfigurationParameters.CurrentAlarmLowLimit = 0.78;\r\n\t\tconfigurationParameters.CurrentAlarmHighLimit = 1.07;\r\n\r\n\t\t//currently not in use\r\n\t\tconfigurationParameters.IDSSegmentRefillTimeout = 5000;\r\n\t\tconfigurationParameters.IDSPreSegmentBuildupTime = 5000;\r\n\t\t//cleaning!!!!!!!!!!\r\n\t\tconfigurationParameters.IDSCleaningSpeed = 800;\r\n\t\tconfigurationParameters.IDSCleaningStopBeforeSegmentTime = 10000; //end of presegemnt\r\n\t\tconfigurationParameters.IDSCleaningStartSprayPreSegmentTime =2000; //beginning of presegment\r\n\t\tdescription = description+\" Cl\"+configurationParameters.IDSCleaningStopBeforeSegmentTime/1000+\"-\"+configurationParameters.IDSCleaningStartSprayPreSegmentTime/1000;\r\n\t\t\r\n\t\tbool SetCleaning = context.GetInput<bool>(\"SetCleaningValues\");\r\n Cleaning Clean = new Cleaning();\r\n\t\tClean.Tup = 10;\r\n\t\tClean.Tdelay1 = 98;\r\n\t\tClean.Tdelay2 = 198;//300 milli up, stay 1 sec, stay down 2 sec\r\n\t\tif (SetCleaning == true)\r\n \tClean =\tcontext.RequestUserInputFor<Cleaning>(Clean,\"Cleaning Input Required\",\"Please fill in the form\");\r\n\r\n\t\t// Tup = LeftRockerSpeed/100;\r\n\t\t// Tdelay1 = LeftRockerSpeed%100;\r\n\t\t// Tdelay2 = RightRockerSpeed;\r\n\t\tint LeftRockerSpeed = Clean.Tup*100+Clean.Tdelay1;\r\n\t\tint RightRockerSpeed = Clean.Tdelay2;\r\n\r\n\t\tconfigurationParameters.IDSLeftCleaningMotorSpeed = LeftRockerSpeed;\r\n\t\tconfigurationParameters.IDSRightCleaningMotorSpeed = RightRockerSpeed;\r\n\t\tdescription = description+\"-\"+Clean.Tup+\".\"+Clean.Tdelay1+\".\"+Clean.Tdelay2;\r\n\r\n\t\tconfigurationParameters.SwitchToIdleTimeinSeconds = 3600;\r\n\t\tconfigurationParameters.IdleDrierTemperature = 80;\r\n\t\tconfigurationParameters.IdleHeadTemperature = 80;\r\n\t\tconfigurationParameters.IdleMixerTemperature = 0;\r\n\t\tconfigurationParameters.PowerOffTemperatureLimit = 60;\r\n\r\n\t\t//general parameters, ORDER MUST BE PRESERVED!!!!\r\n\t\t//check the dispensers hard limit alarms\r\n\t\t/*1*/\r\n\t\tDouble checkHardLimitAlarms = new Double();\r\n\t\tcheckHardLimitAlarms = 1.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(checkHardLimitAlarms);\r\n\r\n\t\t/*2*/\r\n\t\tDouble checkCurrentAlarms = new Double();\r\n\t\tcheckCurrentAlarms = 0.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(checkCurrentAlarms);\r\n\t\t//check the tamper alarms\r\n\r\n\t\t/*3*/\r\n\t\tDouble checkTamperAlarms = new Double();\r\n\t\tcheckTamperAlarms = context.GetInput<double>(\"CheckTampers\");\r\n\t\tconfigurationParameters.GeneralParameters.Add(checkTamperAlarms);\r\n\r\n\t\t/*4*/\r\n\t\tDouble checkMotorAlarms = new Double();\r\n\t\tcheckMotorAlarms = 1.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(checkMotorAlarms);\r\n\t\tdescription = description+\"-Cur\"+checkCurrentAlarms+\"Tamp\"+checkTamperAlarms+\"Mot\"+checkMotorAlarms;\r\n\r\n\t\t/*5*/\r\n\t\tDouble WinderBackToBaseTime = new Double();\r\n\t\tWinderBackToBaseTime = 820.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(WinderBackToBaseTime);\r\n\t\t/*6*/\r\n\t\tDouble DispenserInitialPressureSpeed = new Double();\r\n\t\tDispenserInitialPressureSpeed = 1050.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(DispenserInitialPressureSpeed);\r\n\r\n\t\t/*7*/\r\n\t\tDouble SetDiagnosticMode = new Double();\r\n\t\tSetDiagnosticMode = 3.0;\t\t\r\n\t\tconfigurationParameters.GeneralParameters.Add(SetDiagnosticMode);\r\n\r\n\t\t/*8*/\t\t\r\n\t\tDouble SetAutoFill = new Double();\r\n\t\tSetAutoFill = 3.0;\t\t\r\n\t\tif (Advancedparam.Autofill == false)\r\n\t\t\tSetAutoFill = 0.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(SetAutoFill);\r\n\t\tdescription = description+\"-AF\"+SetAutoFill+\"DI\"+SetDiagnosticMode;\r\n\t\t/*9*/\r\n\t\tdouble PowerOffDisableCleaning = new Double();\r\n\t\tPowerOffDisableCleaning = 0.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(PowerOffDisableCleaning);\r\n\t\t/*10*/\r\n\t\tdouble SublimationBlowTime = new Double();\r\n\t\tSublimationBlowTime = 30.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(SublimationBlowTime);\r\n\t\t/*11*/\r\n\t\tdouble AllowedRangeForHeadBlowerDeviation = new Double();\r\n\t\tAllowedRangeForHeadBlowerDeviation = 7;\r\n\t\tconfigurationParameters.GeneralParameters.Add(AllowedRangeForHeadBlowerDeviation);\r\n\t\t/*12*/\r\n\t\tdouble AllowedRangeForWasteBlowerDeviation = new Double();\r\n\t\tAllowedRangeForWasteBlowerDeviation = 20;\r\n\t\tconfigurationParameters.GeneralParameters.Add(AllowedRangeForWasteBlowerDeviation);\r\n\t\t/*13*/\r\n\t\tdouble Voltage_Hysteresis = new Double();\r\n\t\tVoltage_Hysteresis = 4;\r\n\t\tconfigurationParameters.GeneralParameters.Add(Voltage_Hysteresis);\r\n\t\t/*14*/\r\n\t\tdouble Head_Blower_Calculation_C = new Double();\r\n\t\tHead_Blower_Calculation_C = 0.242;\r\n\t\tconfigurationParameters.GeneralParameters.Add(Head_Blower_Calculation_C);\r\n\t\t/*15*/\r\n\t\tdouble Head_Blower_Calculation_B = new Double();\r\n\t\tHead_Blower_Calculation_B = -0.134;\r\n\t\tconfigurationParameters.GeneralParameters.Add(Head_Blower_Calculation_B);\r\n\t\tdescription = description+\"-C\"+Head_Blower_Calculation_C+\"-B\"+Head_Blower_Calculation_B;\r\n\r\n\t\tconfigurationParameters.Description = description;\r\n\t\t\r\n\r\n\t\t//configurationParameters\t= context.RequestUserInputFor<ConfigurationParameters>(configurationParameters,\"ConfigurationParameters Input Required\",\"Please fill in the form\");\r\n\t\t/*Directory.CreateDirectory (\"C:/Temp\");\r\n\t\tFile.WriteAllBytes(\"C:/temp/EmbParam.cfg\",configurationParameters.ToBytes());\r\n\r\n\t\tbyte[] fileBytes1 = File.ReadAllBytes(\"C:/temp/EmbParam.cfg\");*/\r\n\t\tbyte[] fileBytes = configurationParameters.ToBytes();\r\n\r\n\r\n\t\tvar config = ConfigurationParameters.Parser.ParseFrom(fileBytes);\r\n\r\n\t\tcontext.Write( config);\r\n\t\tThread.Sleep(1000);\r\n\r\n\t\r\n\t\tcontext.Write(\"\\n\\n Deleting old file\");\r\n\r\n\t\tDeleteRequest deleteRequest = new DeleteRequest();\r\n\t\tdeleteRequest.Path = \"SYSINFO//EmbParam.cfg\";\r\n\t\tdeleteRequest.Attribute = Tango.PMR.IO.FileAttribute.Unspecified;\r\n\t\tDeleteResponse response5 = context.Send<DeleteResponse>(deleteRequest);\r\n\r\n\r\n\t\tThread.Sleep(1000);\r\n\t\tcontext.Write(\"\\n\\n Loading new file file\");\r\n\r\n\t\tFileUploadRequest fileUploadRequest = new FileUploadRequest();\r\n\t\tfileUploadRequest.Path = \"SYSINFO//EmbParam.cfg\";\r\n\t\tfileUploadRequest.Length = (int)fileBytes.Length;\r\n\t\tFileUploadResponse response2 = context.Send<FileUploadResponse>(fileUploadRequest);\r\n\t\tThread.Sleep(1000);\r\n\t\tlong chunk_size = response2.MaxChunkLength;\r\n\r\n\t\tcontext.Write(\"Chunk size \"+ chunk_size + \" file size \"+ fileBytes.Length +\"\\n\\n\");\r\n\t\tif (chunk_size < fileBytes.Length)\r\n\t\t{\r\n\t\t\tcontext.AddResult(ResultType.Failed, \"Chunk size too small\", chunk_size);\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tFileChunkUploadRequest fileChunkUploadRequest = new FileChunkUploadRequest();\r\n\t\t\tfileChunkUploadRequest.UploadID = response2.UploadID;\r\n\t\t\tfileChunkUploadRequest.Buffer = ByteString.CopyFrom(fileBytes);\t\r\n\t\t\tvar response3 = context.Send<FileChunkUploadResponse>(fileChunkUploadRequest);\r\n\t\t\r\n\t\t\t//if (response3.\r\n\r\n\t\t\t// activating the new file\r\n\t\t\tProgressRequest progressRequest = new ProgressRequest();\r\n\t\t\tprogressRequest.Amount = 0xCD;\r\n\t\t\tprogressRequest.Delay = 0xCD;\r\n\t\t\tvar response1 = context.Send<ProgressResponse>(progressRequest);\r\n\t\t\tcontext.AddResult(ResultType.Passed, \"parameters loaded\", chunk_size);\r\n\t\t}\r\n\r\n }\r\n}","Name":"Program.csx","IsEntryPoint":true},{"$id":"4","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}","Name":"Service.csx","IsEntryPoint":false}]},"Inputs":{"$id":"5","$values":[{"$id":"6","Type":"Selection","SelectionInputs":{"$id":"7","$values":[{"$id":"8","Name":"Enable Tamper Check","Value":"1.0"},{"$id":"9","Name":"Disable Tamper Check","Value":"0.0"}]},"DisplayName":"Check Tamper / Fan alarms","Description":"Check Tamper / Fan alarms (1 -true, 0 - false)","Key":"CheckTampers","Value":"1.0"},{"$id":"10","Type":"Default","SelectionInputs":{"$id":"11","$values":[]},"DisplayName":"Set advanced parameters","Description":"Set advanced parameters","Key":"AdvancedParameters","Value":"false"},{"$id":"12","Type":"Default","SelectionInputs":{"$id":"13","$values":[]},"DisplayName":"Set Cleaning Values","Description":"Set to 1 if you want to update the cleaning values","Key":"SetCleaningValues","Value":"false"}]},"Variables":{"$id":"14","$values":[]},"ReferenceAssemblies":{"$id":"15","$values":[{"$id":"16","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"17","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"18","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"19","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"20","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"21","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"22","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"23","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"24","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"25","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"26","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"Resources":{"$id":"27","$values":[]},"Dialogs":{"$id":"28","$values":[]},"ID":"2bd29884-5eb9-4d27-be4e-6cfa31dc9f66","ApartmentState":"MTA"} \ No newline at end of file
diff --git a/Software/Stubs Collection/Procedures/EmbeddedParametersBuild.txt b/Software/Stubs Collection/Procedures/EmbeddedParametersBuild.txt
deleted file mode 100644
index a4d81d3ba..000000000
--- a/Software/Stubs Collection/Procedures/EmbeddedParametersBuild.txt
+++ /dev/null
@@ -1,272 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
-using System.ComponentModel;
-using System.Linq;
-using System.Text;
-using System.Threading;
-using System.Threading.Tasks;
-using System.IO;
-using Google.Protobuf;
-using Tango.BL.Enumerations;
-using Tango.PMR.Stubs;
-using Tango.PMR.Diagnostics;
-using Tango.FSE.Common.Diagnostics;
-using Tango.PMR.EmbeddedParameters;
-using Tango.PMR.IO;
-using Tango.FSE.Procedures;
-
-
-public class Cleaning
-{
- [Description("Actuator Going up time")]
- public int Tup;
- [Description("Actuator Wait up time")]
- public int Tdelay1;
- [Description("Actuator Wait Down time")]
- public int Tdelay2;
-}
-public class Advanced
-{
- [Description("Automatic heating on machine StartUp")]
- public bool InitialHeating;
- [Description("Waste pressure buildup factor")]
- public int WFCF;
- [Description("Auto fill mode on/off")]
- public bool Autofill;
-}
-
-public class Program
-{
- public void OnExecute(IProcedureContext context)
- {
- string description = "";
- context.AddResult(ResultType.Passed, "My Value Name", "Test for this value has passed.");
- ConfigurationParameters configurationParameters = new ConfigurationParameters();
-
- bool AdvancedParams = context.GetInput<bool>("AdvancedParameters");
- Advanced Advancedparam = new Advanced();
- Advancedparam.InitialHeating = true;
- Advancedparam.WFCF = 40;
- Advancedparam.Autofill = true;
- if (AdvancedParams == true)
- Advancedparam = context.RequestUserInputFor<Advanced>(Advancedparam,"Advanced parameters input Required","Please fill in the form");
- description += "Version 1.5.3.3";
- configurationParameters.BreakSensorLimit = 10;
-
- //how many samples to collect in diagnostics before sending
- configurationParameters.DiagnosticCollectionLimit = 1;
-
- //how many consecutive readout before declaring DC over/underheat alarm
- configurationParameters.OverHeatCountLimit = 3;
- configurationParameters.UnderHeatCountLimit = 3;
-
- // time of motor activity before opening the valve or after closing the valve, in milliseconds
- configurationParameters.CloseValveTimeout = 20;
- configurationParameters.OpenValveTimeout = 20;
-
- //backlash after filling - target pressure, timoeout, time staps (speed will be added in general parameters)
- configurationParameters.InitialDispenserPressure = 3.85; //used for initial pre-run maximal pressure
- configurationParameters.InitialDispenserTimeout = 120000; ////used for initial pre-run target number of steps
- configurationParameters.InitialDispenserTimeLag = 100;
- description = description+" "+configurationParameters.InitialDispenserPressure+"-"+configurationParameters.InitialDispenserTimeout/1000;
-
- //job prepare - build pressure in dispensers - target pressure, timoeout, time staps, speed
- configurationParameters.DispenserBuildPressureSpeed = 950; //no more than 1000
- configurationParameters.DispenserBuildPressureLimit = 0.85;
- configurationParameters.DispenserBuildPressureTimeout = 420000;
- configurationParameters.DispenserBuildPressureLag = 100;
- description = description+" T "+configurationParameters.DispenserBuildPressureTimeout/1000;
-
- //temperature band 1000 = 100% - thresholds for job start around target temprature - AC
- configurationParameters.ACHeatersLowerOperationLimit = 995;
- configurationParameters.ACHeatersUpperOperationLimit = 1005;
-
- //temperature band 1000 = 100% - thresholds for job start around target temprature - DC
- configurationParameters.DCHeatersLowerOperationLimit = 978;
- configurationParameters.DCHeatersUpperOperationLimit = 1005;
-
- // mid tank reading offset to add to the readout (OBSOLETE!)
- configurationParameters.MidTankPressureCorrection = 0.0;
-
- //waste factor for intersegment pressure building
- configurationParameters.DispenserPresegmentWFCF = Advancedparam.WFCF;
- description = description+" WF"+configurationParameters.DispenserPresegmentWFCF;
-
- //how much time to start the WFCF process (pressure buildup) before segment start
- configurationParameters.IDSPreSegmentWFCFTimeBeforeSegment = 12000;
-
- //flag: start heaters according to saved process parameters upon init?
- configurationParameters.StartHeatingOnInitSequence = Advancedparam.InitialHeating;
-
- // current test for the heaters - alarm thresholds
- configurationParameters.CurrentAlarmLowLimit = 0.78;
- configurationParameters.CurrentAlarmHighLimit = 1.07;
-
- //currently not in use
- configurationParameters.IDSSegmentRefillTimeout = 5000;
- configurationParameters.IDSPreSegmentBuildupTime = 5000;
- //cleaning!!!!!!!!!!
- configurationParameters.IDSCleaningSpeed = 800;
- configurationParameters.IDSCleaningStopBeforeSegmentTime = 10000; //end of presegemnt
- configurationParameters.IDSCleaningStartSprayPreSegmentTime =2000; //beginning of presegment
- description = description+" Cl"+configurationParameters.IDSCleaningStopBeforeSegmentTime/1000+"-"+configurationParameters.IDSCleaningStartSprayPreSegmentTime/1000;
-
- bool SetCleaning = context.GetInput<bool>("SetCleaningValues");
- Cleaning Clean = new Cleaning();
- Clean.Tup = 10;
- Clean.Tdelay1 = 98;
- Clean.Tdelay2 = 198;//300 milli up, stay 1 sec, stay down 2 sec
- if (SetCleaning == true)
- Clean = context.RequestUserInputFor<Cleaning>(Clean,"Cleaning Input Required","Please fill in the form");
-
- // Tup = LeftRockerSpeed/100;
- // Tdelay1 = LeftRockerSpeed%100;
- // Tdelay2 = RightRockerSpeed;
- int LeftRockerSpeed = Clean.Tup*100+Clean.Tdelay1;
- int RightRockerSpeed = Clean.Tdelay2;
-
- configurationParameters.IDSLeftCleaningMotorSpeed = LeftRockerSpeed;
- configurationParameters.IDSRightCleaningMotorSpeed = RightRockerSpeed;
- description = description+"-"+Clean.Tup+"."+Clean.Tdelay1+"."+Clean.Tdelay2;
-
- configurationParameters.SwitchToIdleTimeinSeconds = 3600;
- configurationParameters.IdleDrierTemperature = 80;
- configurationParameters.IdleHeadTemperature = 80;
- configurationParameters.IdleMixerTemperature = 0;
- configurationParameters.PowerOffTemperatureLimit = 60;
-
- //general parameters, ORDER MUST BE PRESERVED!!!!
- //check the dispensers hard limit alarms
- /*1*/
- Double checkHardLimitAlarms = new Double();
- checkHardLimitAlarms = 1.0;
- configurationParameters.GeneralParameters.Add(checkHardLimitAlarms);
-
- /*2*/
- Double checkCurrentAlarms = new Double();
- checkCurrentAlarms = 0.0;
- configurationParameters.GeneralParameters.Add(checkCurrentAlarms);
- //check the tamper alarms
-
- /*3*/
- Double checkTamperAlarms = new Double();
- checkTamperAlarms = context.GetInput<double>("CheckTampers");
- configurationParameters.GeneralParameters.Add(checkTamperAlarms);
-
- /*4*/
- Double checkMotorAlarms = new Double();
- checkMotorAlarms = 1.0;
- configurationParameters.GeneralParameters.Add(checkMotorAlarms);
- description = description+"-Cur"+checkCurrentAlarms+"Tamp"+checkTamperAlarms+"Mot"+checkMotorAlarms;
-
- /*5*/
- Double WinderBackToBaseTime = new Double();
- WinderBackToBaseTime = 820.0;
- configurationParameters.GeneralParameters.Add(WinderBackToBaseTime);
- /*6*/
- Double DispenserInitialPressureSpeed = new Double();
- DispenserInitialPressureSpeed = 1050.0;
- configurationParameters.GeneralParameters.Add(DispenserInitialPressureSpeed);
-
- /*7*/
- Double SetDiagnosticMode = new Double();
- SetDiagnosticMode = 3.0;
- configurationParameters.GeneralParameters.Add(SetDiagnosticMode);
-
- /*8*/
- Double SetAutoFill = new Double();
- SetAutoFill = 3.0;
- if (Advancedparam.Autofill == false)
- SetAutoFill = 0.0;
- configurationParameters.GeneralParameters.Add(SetAutoFill);
- description = description+"-AF"+SetAutoFill+"DI"+SetDiagnosticMode;
- /*9*/
- double PowerOffDisableCleaning = new Double();
- PowerOffDisableCleaning = 0.0;
- configurationParameters.GeneralParameters.Add(PowerOffDisableCleaning);
- /*10*/
- double SublimationBlowTime = new Double();
- SublimationBlowTime = 30.0;
- configurationParameters.GeneralParameters.Add(SublimationBlowTime);
- /*11*/
- double AllowedRangeForHeadBlowerDeviation = new Double();
- AllowedRangeForHeadBlowerDeviation = 7;
- configurationParameters.GeneralParameters.Add(AllowedRangeForHeadBlowerDeviation);
- /*12*/
- double AllowedRangeForWasteBlowerDeviation = new Double();
- AllowedRangeForWasteBlowerDeviation = 20;
- configurationParameters.GeneralParameters.Add(AllowedRangeForWasteBlowerDeviation);
- /*13*/
- double Voltage_Hysteresis = new Double();
- Voltage_Hysteresis = 4;
- configurationParameters.GeneralParameters.Add(Voltage_Hysteresis);
- /*14*/
- double Head_Blower_Calculation_C = new Double();
- Head_Blower_Calculation_C = 0.242;
- configurationParameters.GeneralParameters.Add(Head_Blower_Calculation_C);
- /*15*/
- double Head_Blower_Calculation_B = new Double();
- Head_Blower_Calculation_B = -0.134;
- configurationParameters.GeneralParameters.Add(Head_Blower_Calculation_B);
- description = description+"-C"+Head_Blower_Calculation_C+"-B"+Head_Blower_Calculation_B;
-
- configurationParameters.Description = description;
-
-
- //configurationParameters = context.RequestUserInputFor<ConfigurationParameters>(configurationParameters,"ConfigurationParameters Input Required","Please fill in the form");
- /*Directory.CreateDirectory ("C:/Temp");
- File.WriteAllBytes("C:/temp/EmbParam.cfg",configurationParameters.ToBytes());
-
- byte[] fileBytes1 = File.ReadAllBytes("C:/temp/EmbParam.cfg");*/
- byte[] fileBytes = configurationParameters.ToBytes();
-
-
- var config = ConfigurationParameters.Parser.ParseFrom(fileBytes);
-
- context.Write( config);
- Thread.Sleep(1000);
-
-
- context.Write("\n\n Deleting old file");
-
- DeleteRequest deleteRequest = new DeleteRequest();
- deleteRequest.Path = "SYSINFO//EmbParam.cfg";
- deleteRequest.Attribute = Tango.PMR.IO.FileAttribute.Unspecified;
- DeleteResponse response5 = context.Send<DeleteResponse>(deleteRequest);
-
-
- Thread.Sleep(1000);
- context.Write("\n\n Loading new file file");
-
- FileUploadRequest fileUploadRequest = new FileUploadRequest();
- fileUploadRequest.Path = "SYSINFO//EmbParam.cfg";
- fileUploadRequest.Length = (int)fileBytes.Length;
- FileUploadResponse response2 = context.Send<FileUploadResponse>(fileUploadRequest);
- Thread.Sleep(1000);
- long chunk_size = response2.MaxChunkLength;
-
- context.Write("Chunk size "+ chunk_size + " file size "+ fileBytes.Length +"\n\n");
- if (chunk_size < fileBytes.Length)
- {
- context.AddResult(ResultType.Failed, "Chunk size too small", chunk_size);
- }
- else
- {
- FileChunkUploadRequest fileChunkUploadRequest = new FileChunkUploadRequest();
- fileChunkUploadRequest.UploadID = response2.UploadID;
- fileChunkUploadRequest.Buffer = ByteString.CopyFrom(fileBytes);
- var response3 = context.Send<FileChunkUploadResponse>(fileChunkUploadRequest);
-
- //if (response3.
-
- // activating the new file
- ProgressRequest progressRequest = new ProgressRequest();
- progressRequest.Amount = 0xCD;
- progressRequest.Delay = 0xCD;
- var response1 = context.Send<ProgressResponse>(progressRequest);
- context.AddResult(ResultType.Passed, "parameters loaded", chunk_size);
- }
-
- }
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/Procedures/FFS Rebuild.pproj b/Software/Stubs Collection/Procedures/FFS Rebuild.pproj
deleted file mode 100644
index 2dca7e072..000000000
--- a/Software/Stubs Collection/Procedures/FFS Rebuild.pproj
+++ /dev/null
@@ -1 +0,0 @@
-{"$id":"1","Name":"FFS Rebuild","Description":"This procedure formats the flash file system of the embedded system. use it if the embedded storage looks malfunctioning. this call disconnects the tablet and holds the system for one minute.","Scripts":{"$id":"2","$values":[{"$id":"3","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Program\r\n{\r\n public void OnExecute(IProcedureContext context)\r\n {\r\n\t\tStubDancerPositionRequest stubDancerPositionRequest = new StubDancerPositionRequest();\r\n\t\tstring response1 = context.GetInput<string>(\"ValidationPassword\");\r\n List<uint> list = new List<uint>();\r\n\t\tif (response1 == \"Aa123456\")\r\n\t\t{\r\n\t\t\t//CF - initialize FFS\r\n\t\t\tProgressRequest progressRequest = new ProgressRequest();\r\n\t\t\tprogressRequest.Amount = 0xCF;\r\n\t\t\tprogressRequest.Delay = 0xCF;\r\n\t\t\t\r\n\t\t\t\tvar response = context.Send<ProgressResponse>(progressRequest);\r\n\t }\r\n\r\n }\r\n}","Name":"Program.csx","IsEntryPoint":true},{"$id":"4","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}","Name":"Service.csx","IsEntryPoint":false}]},"Inputs":{"$id":"5","$values":[{"$id":"6","Type":"Default","SelectionInputs":{"$id":"7","$values":[]},"DisplayName":"Validation Password","Description":"Validation Password","Key":"ValidationPassword","Value":"0"}]},"Variables":{"$id":"8","$values":[]},"ReferenceAssemblies":{"$id":"9","$values":[{"$id":"10","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"11","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"12","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"13","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"14","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"15","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"16","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"17","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"18","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"19","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"20","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"Resources":{"$id":"21","$values":[]},"Dialogs":{"$id":"22","$values":[]},"ID":"23b690b1-bd08-45ba-807b-3faa244ed8c3","ApartmentState":"MTA"} \ No newline at end of file
diff --git a/Software/Stubs Collection/Procedures/Loading Arm claibration.txt b/Software/Stubs Collection/Procedures/Loading Arm claibration.txt
deleted file mode 100644
index 946cfc546..000000000
--- a/Software/Stubs Collection/Procedures/Loading Arm claibration.txt
+++ /dev/null
@@ -1,39 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
-using System.ComponentModel;
-using System.Linq;
-using System.Text;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Drawing;
-using Google.Protobuf;
-using Tango.BL.Entities;
-using Tango.BL.Enumerations;
-using Tango.PMR.Stubs;
-using Tango.PMR.Diagnostics;
-using Tango.FSE.Common.Connection;
-using Tango.FSE.Common.Diagnostics;
-using Tango.FSE.Procedures;
-
-public class Program
-{
- public void OnExecute(IProcedureContext context)
- {
-
-
- ProgressRequest progressRequest = new ProgressRequest();
- progressRequest.Amount = 0xB1;
- //progressRequest.Delay = 1;
-
- var response = context.Send<ProgressResponse>(progressRequest);
-
- progressRequest.Amount = 0xB2;
- progressRequest.Delay = 0;
-
- response = context.Send<ProgressResponse>(progressRequest);
-
- context.AddResult(ResultType.Passed, "Loading Arm Calibrated", "OK");
-
- }
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/Procedures/Mid tank calibration.pproj b/Software/Stubs Collection/Procedures/Mid tank calibration.pproj
deleted file mode 100644
index 655bbd099..000000000
--- a/Software/Stubs Collection/Procedures/Mid tank calibration.pproj
+++ /dev/null
@@ -1,477 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
-using System.ComponentModel;
-using System.Linq;
-using System.Text;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Drawing;
-using Google.Protobuf;
-using Tango.BL.Entities;
-using Tango.BL.Enumerations;
-using Tango.PMR.Stubs;
-using Tango.PMR.Diagnostics;
-using Tango.FSE.Common.Connection;
-using Tango.FSE.Common.Diagnostics;
-using Tango.FSE.Procedures;
-using System.IO;
-using System.Windows.Forms;
-using Tango.PMR.EmbeddedParameters;
-
-public class Program
-{
-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
-//----------------------
-
-
-private IProcedureContext context;
-
-
-
-
- public void OnExecute(IProcedureContext context)
- {
-
-
- 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 =context.RequestUserInputFor<String>("Enter Midtank S/N: ", "");
- context.Write("\n");
- Machine_SN = response;
- context.WriteLine(Machine_SN);
- File_name= FILE_PATH +Machine_SN + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".csv";
- context.Write(File_name);
- context.WriteToFile(File_name,"MidTank S/N:," + Machine_SN);
-
-
- var response1 =context.RequestUserInputFor<String>("Enter Midtank number to calibrate (1-8):", "");
- context.WriteLine(response1);
- midtankno = Int32.Parse(response1);
- context.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 =context.RequestUserInputFor<String>("Enter Cartridge Valume on CC (500-1500):", "");
- context.WriteLine(response10);
- Full_Cartridge = double.Parse(response10);
- context.AppendToFile(File_name,"Cartridge Valume:\t" + response10);
- context.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);
- context.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);
-
-
- context.AddResult(ResultType.Passed, "Test passed", "Test passed.");
-
- }
- else
- {
- box_msg ="Calibration error";
- MessageBox.Show(box_msg);
-
-
- context.AddResult(ResultType.Failed, "Test Fail", "Test Fail.");
-
- }
- }
-
-}
-
-
- int insert_slop_t_eeprom( double FullPoint,Int32 midtankno, double StartPoint)
-{
-// context.Write("\n ");
-
- StartPoint=FullPoint-StartPoint;
- StartPoint=StartPoint/Full_Cartridge;
- if ((StartPoint>0.7 ) && (StartPoint>1.3 ))
- {
- 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;
-
- context.Write("\nMidtank No:" + midtankno + "=\tVoltage Zero is ="+(FullPoint - (Full_Cartridge/1000-0.1)/Slop)+"\tSlop="+ Slop);
- context.AppendToFile(File_name,"\nMidtank No:" + midtankno + "=\tVoltage Zero is ="+(FullPoint - (Full_Cartridge/1000-0.1)/Slop)+"\tSlop="+ Slop);
-
-
- midTankDataSetupRequest.MidTankInfo.Add(midTankData);
-
-
- var response =context.Send<MidTankDataSetupResponse>(midTankDataSetupRequest);
-
- return 0;
- }
- else
- context.Write("\nError");
- context.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 =context.Send<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 =context.Send<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 =context.Send<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;
- context.Write("Vsensor [volts]:\t");
- context.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:
- context.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";
- context.Write(temp +"Valve\tFail\n");
- return 0;
- }
- else
- {
-// Units_status[(valve_nm-1)*3+valve_type,1]="Pass";
- context.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";
- context.Write(temp +"Valve\tFail\n");
- return 0;
- }
- else
- {
-// Units_status[(valve_nm-1)*3+valve_type,1]="Pass";
- context.Write(temp +"Valve\tclose\n");
- return 1;
- }
- }
- return 1;
-
-}
-
-public Int32 SetBit(Int32 Adr, Int32 BitNo, Int32 Bit)
-{
- Int32 BitMask;
- Int32 RetVal;
- RetVal = Fpga_Read_Reg(Adr);
- Int32 RV = RetVal ;
-
- 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 =context.Send<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 =context.Send<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F3_VALVE_OUT);
- Int32 RV =(Int32) response.Value & 0xffff ;
- RV = RV & ( 0x1 << (((valve_type+1)*8)- temp1));
- return RV;
-
-}
-
-
-Int32 Fpga_Read_Reg(Int32 Addr)
-{
-
-context.Write("123");
-
- var response =context.Send<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,Addr);
- context.Write("456");
-
- Int32 RV= (Int32) response.Value & 0xffff;
- context.Write("789");
-
- return RV;
-}
-
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/Procedures/MidTank Calibration.txt b/Software/Stubs Collection/Procedures/MidTank Calibration.txt
deleted file mode 100644
index 655bbd099..000000000
--- a/Software/Stubs Collection/Procedures/MidTank Calibration.txt
+++ /dev/null
@@ -1,477 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
-using System.ComponentModel;
-using System.Linq;
-using System.Text;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Drawing;
-using Google.Protobuf;
-using Tango.BL.Entities;
-using Tango.BL.Enumerations;
-using Tango.PMR.Stubs;
-using Tango.PMR.Diagnostics;
-using Tango.FSE.Common.Connection;
-using Tango.FSE.Common.Diagnostics;
-using Tango.FSE.Procedures;
-using System.IO;
-using System.Windows.Forms;
-using Tango.PMR.EmbeddedParameters;
-
-public class Program
-{
-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
-//----------------------
-
-
-private IProcedureContext context;
-
-
-
-
- public void OnExecute(IProcedureContext context)
- {
-
-
- 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 =context.RequestUserInputFor<String>("Enter Midtank S/N: ", "");
- context.Write("\n");
- Machine_SN = response;
- context.WriteLine(Machine_SN);
- File_name= FILE_PATH +Machine_SN + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".csv";
- context.Write(File_name);
- context.WriteToFile(File_name,"MidTank S/N:," + Machine_SN);
-
-
- var response1 =context.RequestUserInputFor<String>("Enter Midtank number to calibrate (1-8):", "");
- context.WriteLine(response1);
- midtankno = Int32.Parse(response1);
- context.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 =context.RequestUserInputFor<String>("Enter Cartridge Valume on CC (500-1500):", "");
- context.WriteLine(response10);
- Full_Cartridge = double.Parse(response10);
- context.AppendToFile(File_name,"Cartridge Valume:\t" + response10);
- context.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);
- context.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);
-
-
- context.AddResult(ResultType.Passed, "Test passed", "Test passed.");
-
- }
- else
- {
- box_msg ="Calibration error";
- MessageBox.Show(box_msg);
-
-
- context.AddResult(ResultType.Failed, "Test Fail", "Test Fail.");
-
- }
- }
-
-}
-
-
- int insert_slop_t_eeprom( double FullPoint,Int32 midtankno, double StartPoint)
-{
-// context.Write("\n ");
-
- StartPoint=FullPoint-StartPoint;
- StartPoint=StartPoint/Full_Cartridge;
- if ((StartPoint>0.7 ) && (StartPoint>1.3 ))
- {
- 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;
-
- context.Write("\nMidtank No:" + midtankno + "=\tVoltage Zero is ="+(FullPoint - (Full_Cartridge/1000-0.1)/Slop)+"\tSlop="+ Slop);
- context.AppendToFile(File_name,"\nMidtank No:" + midtankno + "=\tVoltage Zero is ="+(FullPoint - (Full_Cartridge/1000-0.1)/Slop)+"\tSlop="+ Slop);
-
-
- midTankDataSetupRequest.MidTankInfo.Add(midTankData);
-
-
- var response =context.Send<MidTankDataSetupResponse>(midTankDataSetupRequest);
-
- return 0;
- }
- else
- context.Write("\nError");
- context.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 =context.Send<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 =context.Send<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 =context.Send<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;
- context.Write("Vsensor [volts]:\t");
- context.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:
- context.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";
- context.Write(temp +"Valve\tFail\n");
- return 0;
- }
- else
- {
-// Units_status[(valve_nm-1)*3+valve_type,1]="Pass";
- context.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";
- context.Write(temp +"Valve\tFail\n");
- return 0;
- }
- else
- {
-// Units_status[(valve_nm-1)*3+valve_type,1]="Pass";
- context.Write(temp +"Valve\tclose\n");
- return 1;
- }
- }
- return 1;
-
-}
-
-public Int32 SetBit(Int32 Adr, Int32 BitNo, Int32 Bit)
-{
- Int32 BitMask;
- Int32 RetVal;
- RetVal = Fpga_Read_Reg(Adr);
- Int32 RV = RetVal ;
-
- 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 =context.Send<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 =context.Send<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F3_VALVE_OUT);
- Int32 RV =(Int32) response.Value & 0xffff ;
- RV = RV & ( 0x1 << (((valve_type+1)*8)- temp1));
- return RV;
-
-}
-
-
-Int32 Fpga_Read_Reg(Int32 Addr)
-{
-
-context.Write("123");
-
- var response =context.Send<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,Addr);
- context.Write("456");
-
- Int32 RV= (Int32) response.Value & 0xffff;
- context.Write("789");
-
- return RV;
-}
-
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/Procedures/Priming.pproj b/Software/Stubs Collection/Procedures/Priming.pproj
deleted file mode 100644
index 9139b1597..000000000
--- a/Software/Stubs Collection/Procedures/Priming.pproj
+++ /dev/null
@@ -1 +0,0 @@
-{"$id":"1","Name":"Priming","Description":"Used for a dispenser priming","Scripts":{"$id":"2","$values":[{"$id":"3","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Entities;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\nusing System.IO;\r\nusing System.Diagnostics;\r\nusing System.Windows.Forms;\r\n\r\n\r\npublic class Program\r\n{\r\n\r\n\r\nprivate IProcedureContext context;\r\n\r\n//---------------------Start Command ----------------\r\nconst Int32\tCMD_RUN\t=\t0;\t\t//Run on Pulse Per Secound .positive run Up and negative run Down b\r\nconst Int32\tCMD_STOP=\t1;\t\t//0;Hard stop(Defualt);1-Soft stop;2-Hard Hiz;3-Soft Hiz\r\nconst Int32\tCMD_VALVE=\t2;\t\t//0-to Midtank ,1-to head \r\nconst Int32\tCMD_DLY\t=\t3;\t\t//delay in Seconds .\r\nconst Int32\tCMD_TIME=\t4;\t\t//Print Time .\r\nconst Int32\tCMD_PRESS=\t5;\t\t//return from Delay loop when pressure is high (on mBAR) .\r\nconst Int32 CMD_LOOP_NM=6;\t\t//NUMBER OF counter\r\nconst Int32 CMD_LOOP=\t7;\t\t//jump up(+) or down(-) command u\r\nconst Int32 CMD_MTV_OPEN =\t8;\t\t//0 Air ; 1 Ink\r\nconst Int32 CMD_MTV_CLOSE=\t9;\t\t//0 Air ; 1 Ink\r\nconst Int32 CMD_LBL=\t10;\t//label for user \r\nconst Int32 CMD_SMP=\t11; //sample rate ,defualt 100msec (1); for 1 second is 10.\r\nconst Int32 CMD_PRESL=\t12; //return from Delay loop when pressure is low (on mBAR) .\r\n\r\nconst Int32\tCMD_END\t=\t13;\t//end loop .\r\n \r\n\r\nInt32[] BuildUp_Table = new int []\r\n{\r\n\tCMD_VALVE,1,\r\n\tCMD_PRESL,200,\r\n\tCMD_DLY,200, \r\n\r\n\tCMD_LOOP_NM,3,\r\n\r\n\tCMD_VALVE,0,\r\n\tCMD_DLY,1, \r\n\tCMD_VALVE,1,\r\n\tCMD_DLY,1, \r\n\tCMD_LOOP,-4,\r\n\r\n\tCMD_VALVE,0,\r\n\tCMD_RUN,1068,\r\n\tCMD_PRESS,1000,\t//mbar --> 1000 = 100% work, 4000 = 200% work, 350 = 20% work\r\n\tCMD_DLY,150, \t\t\r\n\tCMD_LBL,1,\r\n\tCMD_PRESS,2000,\t//mbar --> 2000 = 100% work, 4000 = 200% work, 350 = 20% work\r\n\tCMD_DLY,60, \t\t\r\n\tCMD_LBL,2,\r\n\tCMD_PRESS,3000,\r\n\tCMD_DLY,60, // to limit\r\n\tCMD_STOP,0,\r\n\tCMD_VALVE,1,\r\n\tCMD_END,3,\r\n};\r\n\t\r\n\r\nInt32[] Up_Table = new int []\r\n{\r\n\tCMD_VALVE,1,\r\n\tCMD_PRESL,200,\r\n\tCMD_DLY,200, \r\n\t\r\n\tCMD_PRESS,3000,\t//mbar --> 1000 = 100% work, 4000 = 200% work, 350 = 20% work\r\n\tCMD_RUN,534, // 100%\r\n\tCMD_DLY,120,\r\n\tCMD_STOP,0,\r\n\tCMD_END,3,\r\n};\r\nInt32 Dispenser_sample_rate= 1; \r\n\r\n\tstring path = @\"C:\\Dispenser_setup\\Log\\\"; \t\r\n//----------------------\r\nconst UInt32 I2C_ID \t\t\t= \t4;\t\t\t\t\t//MCU_I2C4 \r\nconst UInt32 TCA9548A_address \t=\t0xE2;\t \t\r\nconst UInt32 I2C_Slave_Low_Add \t= \t0xA0;\t\t\t\t//eeprom address - 64k low \r\nconst UInt32 I2C_Slave_High_Add = \t0xA2;\t\t\t\t//eeprom address - 64k High\r\n//----------------------\r\nbyte [] EEPROM_Data = new byte [128];\r\n\r\n\r\n//---------------------End Command ----------------\r\n\r\nconst Int32\tDispenser_Motor1\t=\t6;\t\t \r\nconst Int32\tDispenser_Motor2\t=\t7;\t\t \r\nconst Int32\tDispenser_Motor3\t=\t8;\t\t \r\nconst Int32\tDispenser_Motor4\t=\t9;\t\t \r\nconst Int32\tDispenser_Motor5\t=\t10;\t\t \r\nconst Int32\tDispenser_Motor6\t=\t11;\t\t \r\nconst Int32\tDispenser_Motor7\t=\t12;\t\t \r\nconst Int32\tDispenser_Motor8\t=\t13;\t\t \r\n\r\nconst Int32 AN_IDS_PRESSENS_1\t=\t2;\r\nconst Int32 AN_IDS_PRESSENS_2\t=\t3;\r\nconst Int32 AN_IDS_PRESSENS_3\t=\t4;\r\nconst Int32 AN_IDS_PRESSENS_4\t=\t5;\r\nconst Int32 AN_IDS_PRESSENS_5\t=\t6;\r\nconst Int32 AN_IDS_PRESSENS_6\t=\t7;\r\nconst Int32 AN_IDS_PRESSENS_7\t=\t8;\r\nconst Int32 AN_IDS_PRESSENS_8\t=\t9;\r\n\r\nconst Int32\tF2_LS_01_Direct\t=\t0x60000420\t;\t//\tReads the direct values that are currently being sent to the fpga.\trsv\t\trsv\t\trsv\t\t\t\t\t\trsv\t\t\t\t\t\tF2_LS_DISPENSER_UP_2\tF2_LS_DISPENSER_25_2\tF2_LS_DISPENSER_75_2\tF2_LS_DISPENSER_DOWN_2 \tF2_LS_DISPENSER_50_2\tF2_LS_DISPENSER_SPARE_2\tF2_LS_DISPENSER_UP_1\tF2_LS_DISPENSER_25_1 \tF2_LS_DISPENSER_75_1\tF2_LS_DISPENSER_DOWN_1\tF2_LS_DISPENSER_50_1\tF2_LS_DISPENSER_SPARE_1\t\t\t\r\nconst Int32\tF2_LS_02_Direct\t=\t0x60000430\t;\t//\tReads the direct values that are currently being sent to the fpga.\trsv\t\trsv\t\trsv\t\t\t\t\t\trsv\t\t\t\t\t\tF2_LS_DISPENSER_UP_4\tF2_LS_DISPENSER_25_4\tF2_LS_DISPENSER_75_4\tF2_LS_DISPENSER_DOWN_4\tF2_LS_DISPENSER_50_4\tF2_LS_DISPENSER_SPARE_4\tF2_LS_DISPENSER_UP_3\tF2_LS_DISPENSER_25_3 \tF2_LS_DISPENSER_75_3\tF2_LS_DISPENSER_DOWN_3\tF2_LS_DISPENSER_50_3\tF2_LS_DISPENSER_SPARE_3\t\t\t\r\nconst Int32\tF2_LS_03_Direct\t=\t0x60000440\t;\t//\tReads the direct values that are currently being sent to the fpga.\trsv\t\trsv\t\trsv\t\t\t\t\t\trsv\t\t\t\t\t\tF2_LS_DISPENSER_UP_6 \tF2_LS_DISPENSER_25_6 \tF2_LS_DISPENSER_75_6 \tF2_LS_DISPENSER_DOWN_6\tF2_LS_DISPENSER_50_6\tF2_LS_DISPENSER_SPARE_6\tF2_LS_DISPENSER_UP_5\tF2_LS_DISPENSER_25_5 \tF2_LS_DISPENSER_75_5\tF2_LS_DISPENSER_DOWN_5\tF2_LS_DISPENSER_50_5\tF2_LS_DISPENSER_SPARE_5\t\t\t\r\nconst Int32\tF2_LS_04_Direct =\t0x60000480\t;\t//\tReads the direct values that are currently being sent to the fpga.\trsv\t\trsv\t\trsv\t\t\t\t\t\trsv\t\t\t\t\t\tF2_LS_DISPENSER_UP_8\tF2_LS_DISPENSER_25_8\tF2_LS_DISPENSER_75_8\tF2_LS_DISPENSER_DOWN_8\tF2_LS_DISPENSER_50_8\tF2_LS_DISPENSER_SPARE_8\tF2_LS_DISPENSER_UP_7\tF2_LS_DISPENSER_25_7 \tF2_LS_DISPENSER_75_7\tF2_LS_DISPENSER_DOWN_7\tF2_LS_DISPENSER_50_7\tF2_LS_DISPENSER_SPARE_7\t\t\t\r\n\r\nconst Int32 Dispenser_Valve1\t=\t0;\r\nconst Int32 Dispenser_Valve2\t=\t1;\r\nconst Int32 Dispenser_Valve3\t=\t2;\r\nconst Int32 Dispenser_Valve4\t=\t3;\r\nconst Int32 Dispenser_Valve5\t=\t4;\r\nconst Int32 Dispenser_Valve6\t=\t5;\r\nconst Int32 Dispenser_Valve7\t=\t6;\r\nconst Int32 Dispenser_Valve8\t=\t7;\r\n\r\nconst ushort MinPress_Mbar_Add =0x5c ;\r\nconst ushort MaxPress_Mbar_Add =0x60 ;\r\n\r\nconst Int32 F3_VALVE_OUT\t= 0x600000e2;\t\t\r\n\r\n//string path = \"C:\\\\Dispenser_setup\\\\Log\\\\\"; \r\n\r\n\r\n//Int32[] Start_Table;\r\n\r\nInt32[] Start_Table = new Int32 [10000];\r\n\r\nUInt32 [] Motor_Dir=new UInt32 [8] {0,0,0,0,0,0,0,0};\r\n\r\nstring Dispenser_Fname ;\r\n\r\nInt32 Dispenser_ptr =-1;\r\n\r\nInt32 [] Dispenser_press= new Int32[8]{0,0,0,0,0,0,0,0};\r\nInt32 max_pressure_level = 20000;\r\nInt32 min_pressure_level = -20000;\r\n\t\r\nInt32 [] A2D_Dispenser= new Int32[8]{0,0,0,0,0,0,0,0};\r\nInt32 Loop_cnt= 1;\r\nInt32 Loop_length=1;\r\n\r\nInt32 PressureSensorType= 1;\t\t//1- new -1up +10 . 0-old 0 to +10\r\nInt32\tTemp_Delay=0;\r\n\r\n\r\nUInt32 RD_LS_01_Direct;\r\nUInt32 RD_LS_02_Direct;\r\nUInt32 RD_LS_03_Direct;\r\nUInt32 RD_LS_04_Direct;\r\n\r\nlong Lebel1_time;\r\nlong Lebel2_time;\r\n\r\nlong time_Table;\r\n\r\nInt32 msec_index=0;\r\n\r\nInt32 MaxPress_Mbar;\r\nInt32 MinPress_Mbar;\r\nstring state;\r\n\r\n\tpublic Int32 OnExecute(IProcedureContext context)\r\n {\r\n\t\tlong Max_PBU;\r\n\t\tInt32 Index=0;\r\n\t\tInt32 speed=0;\r\n\t\tInt32 Dispenser_Nm;\r\n\t\tthis.context = context;\r\n\t\r\n\t\tstring box_msg = \"Make sure Mixer Hot \";\r\n\t\tMessageBox.Show(box_msg);\r\n\t\t\r\n\t\tvar response1 = context.RequestUserInputFor<String>(\"Dispenser Number\", \"Enter Dispenser number to make priming (1-8):\");\r\n\t\tcontext.WriteLine(response1);\r\n\t\tDispenser_Nm = Int32.Parse(response1);\r\n\t\t\r\n\t\tcheck_Min_Max_Mbar(Dispenser_Nm);\r\n\t\r\n\t\tif (Dispenser_Nm==8)\r\n\t\t\tMax_PBU=6000;\r\n\t\telse\r\n\t\t\tMax_PBU=4000;\r\n\t\t\t\r\n\t\r\n\tif (!Directory.Exists(path))\r\n\t\t{\r\n\t\t\tDirectory.CreateDirectory(path);\r\n\t\t}\t\r\n\t\t\tcontext.WriteLine(path);\r\n\t\t\t\r\n\tcontext.Send<ProgressResponse>(\"ProgressRequest\" ,0xe0, 1);\r\n\r\n\tDispenser_Fname=path + \"Dispenser_Nm_\" + Dispenser_Nm+\"_\" + DateTime.Now.ToString(\"MM-dd-yy hh-mm\")+ \".csv\" ;\r\n\r\n\tcontext.WriteLine(Dispenser_Fname);\r\n\r\n\tcontext.WriteToFile(Dispenser_Fname,\"Dispenser Nm,\" + Dispenser_Nm + \"\\n\" );\r\n\tcontext.AppendToFile(Dispenser_Fname,\"Pressure,Command,Value,DateTime,Remark\\n\" ); \r\n\t\tfor(int j=0; j<2;j++)\r\n\t\t{\r\n\t\t\tfor(int i=0; i<4;i++)\r\n\t\t\t{\r\n\t\t\t\tstate=\"PBU No. \"+ (4*j+i+1 );\r\n\t\t\t\tStart_Table=BuildUp_Table;\r\n\t\t\t\tTable_Run(Dispenser_Nm );\r\n\t\t\t\tif (time_Table>300000)\r\n\t\t\t\t{\r\n\t\t\t\t\tcontext.AddResult(ResultType.Failed,\"PBU\", \"PBU No.\"+ (4*j+i+1 ) + \" Fail\");\r\n\t\t\t\t\treturn 0;\r\n\t\t\t\t}\r\n\t\t\t\t context.AddResult(ResultType.Passed,\"PBU\",\"PBU No.\"+ (4*j+i+1 ) + \" Pass\");\r\n\t\t\t\t\t\r\n\t\t\t}\r\n\t\t\tstate=\"Flow No.\"+ (j+1 ) ;\r\n\t\t\tStart_Table=Up_Table;\r\n\t\t\tTable_Run(Dispenser_Nm );\r\n\t\t\tif (time_Table<115000)\r\n\t\t\t\t{\r\n\t\t\t\t\tcontext.WriteLine(\"time_Table= \" +time_Table);\r\n\t\t\t\t\tcontext.AddResult(ResultType.Failed,\"Flow\", \"Flow No.\"+ (j+1) + \" Fail\");\r\n\t\t\t\t\treturn 0;\r\n\t\t\t\t}\r\n\t\t\t\t context.AddResult(ResultType.Passed,\"Flow\",\"Flow No.\"+ (j+1 ) + \" Pass\");\r\n\t\t\t\t\t\t\r\n\t\t}\r\n\t\t\t\t state=\"Last PBU \" ;\r\n\t\t\t\tStart_Table=BuildUp_Table; \r\n\t\t\t\tTable_Run(Dispenser_Nm );\r\n\t\t\t\tlong Time=Lebel2_time-Lebel1_time;\r\n\t\t\t\tif (Time>Max_PBU)\r\n\t\t\t\t { \r\n\t\t\t\t context.AddResult(ResultType.Failed,\"PBU\", \"PBU = \" +Time + \"msec \");\r\n\t\t\t\t state=\"PBU = \" +Time + \"msec \\tFail\";\r\n\t\t\t\t }\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t context.AddResult(ResultType.Passed,\"PBU\", \"PBU = \" +Time + \"msec \");\r\n\t\t\t\t state=\"PBU = \" +Time + \"msec \\tPass\";\r\n\t\t\t\t}\t\r\n\t\treturn 0;\r\n\t\t\r\n }\r\n\r\n/////////////////////////////////////////////\r\nvoid \t\tcheck_Min_Max_Mbar(Int32 i )\r\n{\r\n\tint k;\r\n\tstring s ;\r\n\ti--;\r\n\r\n\t\t\t\t\tcontext.WriteLine(\"-------------- write Enable Channel ------------\");\t//debug\r\n\t\tenable_channel(i); // Chanel 0-7 => Disp0enser 0-7 \r\n\t\t\t\t\tcontext.WriteLine(\"-------------- Read_header ------------\");\t//debug\r\n\r\n\t\t\t\t\tcontext.WriteLine(\"-------------- write_address_eeprom ------------\");\t//debug\r\n\t\twrite_address_eeprom (I2C_Slave_Low_Add,MinPress_Mbar_Add);\r\n\t\t\t\t\tcontext.WriteLine(\"-------------- read_data_from_eeprom ------------\");\t//debug\r\n\t\tread_data_from_eeprom (I2C_Slave_Low_Add,1);\r\n\t\tif \t(EEPROM_Data[0]==0\t)\r\n\t\t{\tPressureSensorType=0;\r\n\t\t\tcontext.WriteLine(\"PressureSensorType=0\" );\t//debug\r\n\t\t}\r\n\t\telse\t\r\n\t\t{\t\r\n\t\t\tPressureSensorType=1;\t\t\t\t\t\r\n\t\t\tcontext.WriteLine(\"PressureSensorType=1\" );\t//debug\r\n\t\t}\r\n\t\r\n}\t\r\n//----------------write address eeprom -------------------------\r\npublic void write_address_eeprom (UInt32 I2C_Add, UInt32 Eeprom_Add)\r\n{\t\r\n\tStubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();\r\n\tstubI2CWriteBytesRequest.I2CId = I2C_ID;\r\n\tstubI2CWriteBytesRequest.SlaveAddress = I2C_Add;\r\n\t\r\n\tUInt32 uInt32 = new UInt32();\r\n\tstubI2CWriteBytesRequest.BytesTWrite.Add(Convert.ToByte( (Eeprom_Add & 0xff00) >>8));\t//Byte High add to write\r\n\tstubI2CWriteBytesRequest.BytesTWrite.Add(Convert.ToByte(Eeprom_Add & 0xff));\t\t\t//Byte Low add to write\r\n\t\t\t\t\tcontext.WriteLine( (Eeprom_Add & 0xff00) >>8) ;\t//debug\r\n\t\t\t\t\tcontext.WriteLine( Eeprom_Add & 0xff);\t//debug\r\n\r\n\tcontext.Send<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);\t\r\n}\r\n//------------------- read Data from EEprom--------------------------\r\n\r\npublic void read_data_from_eeprom ( UInt32 I2C_Add, UInt32 cnt )\r\n{\r\n\tStubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();\r\n\tstubI2CReadBytesRequest.I2CId = I2C_ID;\r\n\tstubI2CReadBytesRequest.SlaveAddress = (I2C_Add + 1);\r\n\tstubI2CReadBytesRequest.NumberOfBytesToRead = cnt; // Number of bytes to read\r\n\r\n\tvar response1 = context.Send<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);\r\n\r\n\tfor(int i=0; i<cnt;i++)\r\n\t\t{\r\n\t\t\tEEPROM_Data[i]=Convert.ToByte(response1.ReadBytes[i]);\r\n\t\t\tcontext.WriteLine(EEPROM_Data[i] );\t//debug\r\n\r\n\t\t}\t\t\r\n}\t\r\n\r\n\r\n///////////////////////////////////////////////\r\n//----------- enable I2c channel --------------\r\npublic int enable_channel(Int32 Channel_ID) \r\n{\r\n\tuint Const_temp = 0x01;\t\r\n\t\r\n\tStubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();\r\n\tstubI2CWriteBytesRequest.I2CId = I2C_ID;\r\n\tstubI2CWriteBytesRequest.SlaveAddress = TCA9548A_address;\r\n\t\r\n\tConst_temp = Const_temp << Channel_ID;\r\n\tstubI2CWriteBytesRequest.BytesTWrite.Add(Const_temp);//enable i2c channel 0 Dispenser 1\r\n\r\n\tvar response = context.Send<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);\r\n\t\r\n\treturn 1;\r\n}\r\n\r\n\r\n////////////////////////////////////////////////////////////// \r\nInt32 Table_Run(Int32 Dispenser )\r\n\r\n{\r\n\tInt32 COMMAND=0;\r\n\tInt32 Data=0;\r\n\tInt32 count=0;\r\n\t\r\n\tDispenser--;\t\t//check from 0-7\r\n\t\r\n\tint j=0;\r\n\tvar stopwatch = new Stopwatch();\r\n\t\tstopwatch.Start();\r\n\t\r\n\t\tlong elapsed_time = stopwatch.ElapsedMilliseconds;\r\n\t\tcontext.WriteLine(elapsed_time);\r\n\t\t\r\n\twhile (count!=-1) \r\n\t{\r\n\tmsec_index=msec_index+1;\r\n\t\t\r\n\t\tif (Dispenser<2) \r\n\t\t\t{\r\n\t\t\t\tvar response1 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_01_Direct);\r\n\t\t\t\tRD_LS_01_Direct=response1.Value\t ;\r\n\t\t\t}\r\n\t\telse if ( (Dispenser<4) )\r\n\t\t\t{\r\n\t\t\t\tvar response1 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_02_Direct);\r\n\t\t\t\tRD_LS_02_Direct=response1.Value\t ;\r\n\t\t\t}\r\n\t\telse if ( (Dispenser<6) )\r\n\t\t\t{\r\n\t\t\t\tvar response1 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_03_Direct);\r\n\t\t\t\tRD_LS_03_Direct=response1.Value\t ;\r\n\t\t\t}\r\n\t\telse\r\n\t\t\t{\r\n\t\t\t\tvar response1 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_04_Direct);\r\n\t\t\t\tRD_LS_04_Direct=response1.Value\t ;\r\n\t\t\t}\r\n\t\tif (Dispenser<4) \r\n\t\t\t{\r\n\t\t\tvar response2 = context.Send<StubIntADCReadResponse>(\"StubIntADCReadRequest\" ,0x8000 + AN_IDS_PRESSENS_1);\r\n\t\t\t\tA2D_Dispenser[0]=(response2.SamplingInBits)>>16;\r\n\t\t\t\tA2D_Dispenser[1] =(response2.SamplingInBits) & 0x0000ffff;\r\n\t\t\t\tA2D_Dispenser[2] =(response2.VoltageSamplingMv)>>16;\r\n\t\t\t\tA2D_Dispenser[3] =(response2.VoltageSamplingMv) & 0x0000ffff;\r\n\t\t\t}\r\n\t\telse\r\n\t\t\t{\r\n\t\t\tvar\tresponse3 = context.Send<StubIntADCReadResponse>(\"StubIntADCReadRequest\" ,0x8000 + AN_IDS_PRESSENS_5);\r\n\t\t\t\tA2D_Dispenser[4] =(response3.SamplingInBits)>>16;\r\n\t\t\t\tA2D_Dispenser[5] =(response3.SamplingInBits)& 0x0000ffff;\r\n\t\t\t\tA2D_Dispenser[6] =(response3.VoltageSamplingMv)>>16;\r\n\t\t\t\tA2D_Dispenser[7] =(response3.VoltageSamplingMv)& 0x0000ffff;\r\n\t\t\t}\r\n\t\t\t\t\r\n\t\t\tCOMMAND=Start_Table[count];\r\n\t\t\tData=Start_Table[(count+1)];\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t//Index=Index+2;\r\n\t\t\tswitch (COMMAND)\r\n\t\t\t\t{\r\n\t\t\t\tcase CMD_RUN:\r\n\t\t\t\t\tMotor_Run(Data,Dispenser);\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_VALVE:\r\n\t\t\t\t\tValve_3W(Data,Dispenser);\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_STOP:\r\n\t\t\t\t\tMotor_Stop(Data,Dispenser);\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_DLY:\r\n\t\t\t\t\tDelay_on_second(Data,Dispenser);\r\n\t\t\t\t\tif (Temp_Delay ==0)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmax_pressure_level=20000;\t\r\n\t\t\t\t\t\tmin_pressure_level=-20000;\t\r\n\t\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_TIME:\r\n\t\t\t\t\tPrint_Time();\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_PRESS:\r\n\t\t\t\t\tmax_pressure_level=Data;\r\n\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",Max_pressure_level is, \" + Data +\",\"+DateTime.Now+\"\\n\");\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_PRESL:\r\n\t\t\t\t\tmin_pressure_level=Data;\r\n\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",Min_pressure_level is, \" + Data +\",\"+DateTime.Now+\"\\n\");\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_LBL:\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",Label,\" + Data+\",\"+DateTime.Now+\"\\n\");\r\n\t\t\t\t\tif(Data==1)\r\n\t\t\t\t\t\tLebel1_time=stopwatch.ElapsedMilliseconds;\r\n\t\t\t\t\tif(Data==2)\r\n\t\t\t\t\t\tLebel2_time=stopwatch.ElapsedMilliseconds;\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_SMP:\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",SampleRate,\" + Data+\",\"+DateTime.Now+\"\\n\");\r\n\t\t\t\t\tDispenser_sample_rate =Data;\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_END:\r\n\t\t\t\t\tcount=-1;\r\n\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",End testing,,\"+DateTime.Now+\"\\n\");\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\r\n\t\t\t\tcase CMD_MTV_OPEN:\r\n\t\t\t\t\topen_midtank_valve(Data,Dispenser);\r\n\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",OPEN MIDTANK, \" + Dispenser+\",\"+DateTime.Now+\"\\n\");\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase CMD_MTV_CLOSE:\r\n\t\t\t\t\tclose_midtank_valve(Data,Dispenser);\r\n\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",CLOSE MIDTANK, \" + Dispenser+\",\"+DateTime.Now+\"\\n\");\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\r\n\t\t\t\tcase CMD_LOOP_NM:\r\n\t\t\t\t\r\n\t\t\t\t\tLoop_cnt=Data-1;\r\n\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",Counter Loop,\"+ Data+\",\"+DateTime.Now +\"\\n\");\r\n\t\t\t\t\tcount = count+2;\t\t\t\t\t\t\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase CMD_LOOP:\r\n\t\t\t\t\r\n\t\t\t\t\tif (Loop_cnt!=0)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\"Counter Loop,\"+ Loop_cnt+\",\"+DateTime.Now+\"\\n\" );\r\n\t\t\t\t\t\tcount = count+2*Data;\r\n\t\t\t\t\t\tLoop_cnt--;\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",End loop,,\"+DateTime.Now +\"\\n\");\r\n\t\t\t\t\t\tcount = count+2;\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t}\t\r\n\t\t\t\r\n\t\t\tlong elapsed_time1 = stopwatch.ElapsedMilliseconds;\r\n\t\t\tlong elapsed_time2= elapsed_time1-elapsed_time;\r\n\t\t\tif (elapsed_time2>95)\r\n\t\t\telapsed_time2=95;\t\t//minimum time\r\n\t\t\t\tThread.Sleep(100-(int )(elapsed_time2));\r\n\r\n\t\t\telapsed_time = stopwatch.ElapsedMilliseconds;\t\t\r\n\r\n\r\n\t\t\tj++;\r\n\t\t\t\tif (j==10)\r\n\t\t\t\t{\r\n\t\t\t\t\tj=0;\r\n\t\t\t\t\tcontext.WriteLine(Dispenser_press[Dispenser]+ \" mBar\\t\"+state + \"\\tTime-\" + (elapsed_time/1000));\r\n\t\t\t\t}\r\n\t}\r\n\ttime_Table=elapsed_time;\r\n\treturn 0;\r\n}\r\n\r\n///////////////////////////////////////////////////////////////////\t\r\nInt32 Motor_Run(Int32 speed,Int32 Dispenser)\r\n\r\n{\r\n\r\n\tswitch (Dispenser)\r\n\t\t{\r\n\t\tcase 0:\r\n\t\t\t\tif ( speed<0)\r\n\t\t\t\t{\r\n\t\t\t\t\tMotor_Dir[0]=2;\r\n\t\t\t\t\tif ((RD_LS_01_Direct & 0x04)!=0x04)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor1, false, (-speed));\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\t\r\n\t\t\t\t\tMotor_Dir[0]=1;\r\n\t\t\t\t\tif ((RD_LS_01_Direct & 0x20)!=0x20)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor1, true, (speed));\r\n\t\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase 1:\r\n\t\t\t\tif ( speed<0)\r\n\t\t\t\t{\r\n\t\t\t\t\tMotor_Dir[1]=2;\r\n\t\t\t\t\tif ((RD_LS_01_Direct & 0x100)!=0x100)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor2, false, (-speed));\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\t\r\n\t\t\t\t\tMotor_Dir[1]=1;\r\n\t\t\t\t\tif ((RD_LS_01_Direct & 0x800)!=0x800)\r\n\t\t\t\t\t{\t\t\t\t\t\t\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor2, true, (speed));\r\n\t\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase 2:\r\n\t\t\t\tif ( speed<0)\r\n\t\t\t\t{\r\n\t\t\t\t\tMotor_Dir[2]=2;\r\n\t\t\t\t\tif ((RD_LS_02_Direct & 0x04)!=0x04)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor3, false, (-speed));\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\t\r\n\t\t\t\t\tMotor_Dir[2]=1;\r\n\t\t\t\t\tif ((RD_LS_02_Direct & 0x20)!=0x20)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now+ \",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor3, true, (speed));\r\n\t\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase 3:\r\n\t\t\t\tif ( speed<0)\r\n\t\t\t\t{\r\n\t\t\t\t\tMotor_Dir[3]=2;\r\n\r\n\t\t\t\t\tif ((RD_LS_02_Direct & 0x100)!=0x100)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now+ \",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor4, false, (-speed));\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\t\r\n\t\t\t\t\tMotor_Dir[3]=1;\r\n\r\n\t\t\t\t\tif ((RD_LS_02_Direct & 0x800)!=0x800)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor4, true, (speed));\r\n\t\t\t\t}\r\n\t\t\tbreak;\r\n\t\t\r\n\t\tcase 4:\r\n\t\t\t\tif ( speed<0)\r\n\t\t\t\t{\r\n\t\t\t\t\tMotor_Dir[4]=2;\r\n\t\t\t\t\tif ((RD_LS_03_Direct & 0x04)!=0x04)\r\n\t\t\t\t\t{ \r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now+ \",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor5, false, (-speed));\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\t\r\n\t\t\t\t\tMotor_Dir[4]=1;\r\n\t\t\t\t\tif ((RD_LS_03_Direct & 0x20)!=0x20)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now+ \",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor5, true, (speed));\r\n\t\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase 5:\r\n\t\t\t\tif ( speed<0)\r\n\t\t\t\t{\r\n\t\t\t\t\tMotor_Dir[5]=2;\r\n\t\t\t\t\tif ((RD_LS_03_Direct & 0x100)!=0x100)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor6, false, (-speed));\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\t\r\n\t\t\t\t\tMotor_Dir[5]=1;\r\n\t\t\t\t\tif ((RD_LS_03_Direct & 0x800)!=0x800)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now+ \",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor6, true, (speed));\r\n\t\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase 6:\r\n\t\t\t\tif ( speed<0)\r\n\t\t\t\t{\r\n\t\t\t\t\tMotor_Dir[6]=2;\r\n\t\t\t\t\tif ((RD_LS_04_Direct & 0x04)!=0x04)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor7, false, (-speed));\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\t\r\n\t\t\t\t\tMotor_Dir[6]=1;\r\n\t\t\t\t\tif ((RD_LS_04_Direct & 0x20)!=0x20)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor7, true, (speed));\r\n\t\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase 7:\r\n\t\t\t\tif ( speed<0)\r\n\t\t\t\t{\r\n\t\t\t\t\tMotor_Dir[7]=2;\r\n\r\n\t\t\t\t\tif ((RD_LS_04_Direct & 0x100)!=0x100)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor8, false, (-speed));\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\t\r\n\t\t\t\t\tMotor_Dir[7]=1;\r\n\r\n\t\t\t\t\tif ((RD_LS_04_Direct & 0x800)!=0x800)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor8, true, (speed));\r\n\t\t\t\t}\r\n\t\t\tbreak;\r\n\t\t\t\r\n\t\tdefault:\r\n\t\t\tbreak;\r\n\r\n\t\t}\r\n \tcontext.AppendToFile(Dispenser_Fname,\",Run,\" +speed+\",\"+DateTime.Now +\"\\n\" ); \r\n\r\n\treturn 1;\r\n} \r\n \r\n \t\r\n Int32 Valve_3W(Int32 Valve_Value,Int32 Dispenser)\r\n{\r\n\tif ( Valve_Value==1)\r\n\t\tcontext.Send<StubValveResponse>(\"StubValveRequest\" ,Dispenser_Valve1+Dispenser, 3, true);\t//3 3Way\r\n\telse\t\r\n\t\tcontext.Send<StubValveResponse>(\"StubValveRequest\" ,Dispenser_Valve1+Dispenser, 3, false); //3 3Way\r\n \r\n\tcontext.AppendToFile(Dispenser_Fname,\",Dispenser Valve position is, \" + Valve_Value+\",\"+DateTime.Now +\"\\n\" );\r\n\r\n\treturn 1;\t\r\n}\t\r\n//--------------------------------------- \r\n\r\n Int32 Motor_Stop(Int32 Stop_Value,Int32 Dispenser )\r\n{\r\n\tcontext.Send<StubMotorStopResponse>(\"StubMotorStopRequest\" ,Dispenser_Motor1+Dispenser, Stop_Value);\r\n\t\r\n\tcontext.AppendToFile(Dispenser_Fname,\",Motor Stop,\" + Stop_Value+\",\"+DateTime.Now +\"\\n\");\r\n\tMotor_Dir[Dispenser]=0;\r\n\treturn 1;\t\r\n}\r\n\r\n//--------------------------------------- \r\n\r\n Int32 Delay_on_second(Int32 Delay,Int32 Dispenser )\r\n{\r\n//Int32 temp1;\r\nInt32 pressure_om_mBAR=0;\r\n\tif \t(Temp_Delay ==0)\r\n\t{\r\n\t\tcontext.AppendToFile(Dispenser_Fname,\",DLY, \" + Delay +\",\"+DateTime.Now+\"\\n\");\r\n\t\tTemp_Delay = Delay *10 -1;\r\n//\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontext.Write(\"A\");\t\t//debug\r\n\t}\r\n\telse\t\r\n\t\t\tTemp_Delay--;\r\n\t\t\t\r\n\tif ( LimitSW_Dispenser(Dispenser)==0)\r\n \t {\t\r\n \t \tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now+\",Warning Motor on Limit\\n\");\r\n\t\t\tMotorStop(Dispenser);\r\n\t\t\tTemp_Delay =0;\t//end delay\r\n//\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontext.Write(\"C\");\t\t//debug\r\n\r\n\t\t\treturn 0 ;\r\n \t }\r\n\t\t\t\t\t\r\n\tpressure_om_mBAR=Calc_mBAR(Dispenser,true);\r\n \tif (pressure_om_mBAR > max_pressure_level)\r\n \t \t{\r\n\t\t//\tMotorStop(Dispenser);\r\n\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Pressure too high\\n\");\r\n\t\t\tTemp_Delay =0;\t//end delay\r\n//\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontext.Write(\"D\");\t\t//debug\r\n\t\t\t\r\n\t\t\treturn 0;\r\n\t\t}\r\n \tif (pressure_om_mBAR < min_pressure_level)\r\n \t \t{\r\n\t\t//\tMotorStop(Dispenser);\r\n\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Pressure too low\\n\");\r\n\t\t\tTemp_Delay =0;\t//end delay\r\n//\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontext.Write(\"D\");\t\t//debug\r\n\t\t\t\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\t\r\n\t\t\r\n \treturn 1;\r\n}\t\r\n \t \t\r\nInt32 LimitSW_Dispenser(Int32 Dispenser) \r\n{\r\n\r\n\tif (Dispenser==0)\r\n\t\t\r\n\t\t{\r\n\t\t\t\r\n//\t\tvar response1 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_01_Direct);\r\n\r\n\t\t\t\tif (((RD_LS_01_Direct & 0x04)!=0x04) && (Motor_Dir[0]==2))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\tif (((RD_LS_01_Direct & 0x20)!=0x20) && (Motor_Dir[0]==1))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\treturn 1;\t\t\r\n\t\t}\r\n\t\t\r\n\tif (Dispenser==1)\r\n\t\t\r\n\t\t{\r\n//\t\tvar response2 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_01_Direct);\r\n\t\t\t\tif (((RD_LS_01_Direct & 0x100)!=0x100) && (Motor_Dir[1]==2))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\tif (((RD_LS_01_Direct & 0x800)!=0x800) && (Motor_Dir[1]==1))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\treturn 1;\t\t\r\n\t\t}\r\n\t\t\r\n\r\n\tif (Dispenser==2)\r\n\t\t\r\n\t\t{\r\n\t\t\t\t\r\n\t\t//var response3 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_02_Direct);\r\n\t\t\t\tif (((RD_LS_02_Direct & 0x04)!=0x04) && (Motor_Dir[2]==2))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\tif (((RD_LS_02_Direct & 0x20)!=0x20) && (Motor_Dir[2]==1))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\treturn 1;\t\t\r\n\t\t\t\r\n\t\t}\r\n\t\t\r\n\tif (Dispenser==3)\r\n\t\t\r\n\t\t{\r\n\t\t\t\tvar response4 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_02_Direct);\r\n\t\t\t\tif (((RD_LS_02_Direct & 0x100)!=0x100) && (Motor_Dir[3]==2))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\tif (((RD_LS_02_Direct & 0x800)!=0x800) && (Motor_Dir[3]==1))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\treturn 1;\t\t\r\n\t\t}\r\n\t\t\r\n\t\t\r\n\t\t\r\n\r\n\tif (Dispenser==4)\r\n\t\t\r\n\t\t{\r\n\t\t\t\r\n//\t\tvar response1 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_01_Direct);\r\n\t\t\t\tif (((RD_LS_03_Direct & 0x04)!=0x04) && (Motor_Dir[4]==2))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\tif (((RD_LS_03_Direct & 0x20)!=0x20) && (Motor_Dir[4]==1))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\treturn 1;\t\t\r\n\t\t}\r\n\t\t\r\n\tif (Dispenser==5)\r\n\t\t\r\n\t\t{\r\n//\t\tvar response2 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_01_Direct);\r\n\t\t\t\tif (((RD_LS_03_Direct & 0x100)!=0x100) && (Motor_Dir[5]==2))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\tif (((RD_LS_03_Direct & 0x800)!=0x800) && (Motor_Dir[5]==1))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\treturn 1;\t\t\r\n\t\t}\r\n\t\t\r\n\r\n\tif (Dispenser==6)\r\n\t\t\r\n\t\t{\r\n\t\t\t\t\r\n\t\t//var response3 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_02_Direct);\r\n\t\t\t\tif (((RD_LS_04_Direct & 0x04)!=0x04) && (Motor_Dir[6]==2))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\tif (((RD_LS_04_Direct & 0x20)!=0x20) && (Motor_Dir[6]==1))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\treturn 1;\t\t\r\n\t\t\t\r\n\t\t}\r\n\t\t\r\n\tif (Dispenser==7)\r\n\t\t\r\n\t\t{\r\n//\t\tvar response4 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_02_Direct);\r\n\t\t\t\tif (((RD_LS_04_Direct & 0x100)!=0x100) && (Motor_Dir[7]==2))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\tif (((RD_LS_04_Direct & 0x800)!=0x800) && (Motor_Dir[7]==1))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\treturn 1;\t\t\r\n\t\t}\r\n\t\t\r\n\t\t\r\n\t\treturn 0;\r\n}\t\t\r\n\t\t\r\n\t \t\r\nInt32 Print_Time() \r\n{\t\r\n\t\tcontext.AppendToFile(Dispenser_Fname,\",Time is\\t,,\"+ DateTime.Now +\"\\n\" ); \r\n\r\n\t\treturn 1;\r\n}\t\r\n\r\n\r\n\r\nInt32 Calc_mBAR(Int32 Dispenser, bool save_press)\r\n{\t\t\r\nInt32 Data;\r\nInt32 Sense1;\r\nInt32 temp=0;\r\n\r\n\t\tData =A2D_Dispenser[Dispenser];\r\n\t\tif (Data<100)\r\n\t\t\ttemp=-1;\r\n\t\tData=Data-710;\r\n\t\tif (Data<0)\r\n\t\tData=0;\r\n\r\n\t\tData=Data*(10000+PressureSensorType*1000)/2840;\t//\tfor -1 to 10 bar Press_Sensor_Type=1 else 0\r\n\t\tData=Data-1000*PressureSensorType; \t\t\t// for -1 to 10 bar\r\n\r\n\t\tif (temp==-1)\t\t\t\t\t\t//if SamplingInBits <100 then No pressure sensor exist\r\n\t\tSense1=-9999\t;\r\n\t\telse\t\r\n\t\tSense1=Data\t;\r\n\t\tif (\t((msec_index) % (Dispenser_sample_rate)) == 0)\r\n\t\t{\r\n\t\t\tcontext.AppendToFile(Dispenser_Fname,\"\" + Sense1+\"\\n\");\r\n\t\t}\r\n\t\tDispenser_press[Dispenser]=Sense1;\r\n\treturn Sense1;\r\n\t\t\t\r\n } \t\r\n\r\n \r\n//--------------------------------\r\nint open_midtank_valve (Int32 valve_type,Int32 valve_nm)\t\t//valve_type=0 is Air ,1 is Ink ; valve_nm 0-7\r\n{\r\n\tSetBit (F3_VALVE_OUT,((valve_type+1)*8)- valve_nm-1, 1);\r\n\treturn 1;\r\n\r\n}\r\n//--------------------------------\t\r\nint close_midtank_valve (Int32 valve_type,Int32 valve_nm)\t\t//valve_type=0 is Air ,1 is Ink ; valve_nm 0-7\r\n{\r\n\tSetBit (F3_VALVE_OUT,((valve_type+1)*8)- valve_nm-1, 0);\r\n\treturn 1;\r\n}\r\n//--------------------------------\r\nInt32 SetBit(Int32 Adr, Int32 BitNo, Int32 Bit)\r\n{\r\n\tInt32 BitMask;\r\n\r\n var response = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" , F3_VALVE_OUT);\r\n\tInt32 RV = (Int32) response.Value & 0xffff;\r\n\t\r\n\t\r\n\tif (Bit == 0x1) \r\n\t{\r\n\t\tBitMask = 0x1 << BitNo;\r\n\t\tRV = RV | BitMask;\r\n\t\tcontext.Send<StubFpgaWriteRegResponse>(\"StubFpgaWriteRegRequest\" ,F3_VALVE_OUT , RV);\r\n\t}\r\n\telse if (Bit == 0x0)\r\n\t{\r\n\t\tBitMask = ~(0x1 << BitNo);\r\n\t\tRV = RV & BitMask;\r\n\t\tcontext.Send<StubFpgaWriteRegResponse>(\"StubFpgaWriteRegRequest\" ,F3_VALVE_OUT , RV);\r\n\t}\r\n\treturn 1;\r\n}\r\n//---------------------------------- \r\n void MotorStop(Int32 i)\r\n{\r\n \r\ncontext.Send<StubMotorStopResponse>(\"StubMotorStopRequest\" ,Dispenser_Motor1+i, 2);\r\nMotor_Dir[i]=0;\t//0 stop 1- up 2-dn\r\n\r\n}\r\n \r\n}","Name":"Program.csx","IsEntryPoint":true},{"$id":"4","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Entities;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}","Name":"Service.csx","IsEntryPoint":false}]},"Inputs":{"$id":"5","$values":[]},"Variables":{"$id":"6","$values":[]},"ReferenceAssemblies":{"$id":"7","$values":[{"$id":"8","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"9","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"10","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"11","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"12","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"13","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"14","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"15","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"16","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"17","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"18","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"Resources":{"$id":"19","$values":[]},"Dialogs":{"$id":"20","$values":[]},"ID":"eb73dbd4-1e1e-4f5d-adc8-5f159edab802","ApartmentState":"STA"} \ No newline at end of file
diff --git a/Software/Stubs Collection/Procedures/Priming1.pproj b/Software/Stubs Collection/Procedures/Priming1.pproj
deleted file mode 100644
index adfed3f3e..000000000
--- a/Software/Stubs Collection/Procedures/Priming1.pproj
+++ /dev/null
@@ -1,1015 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
-using System.ComponentModel;
-using System.Linq;
-using System.Text;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Drawing;
-using Google.Protobuf;
-using Tango.BL.Entities;
-using Tango.BL.Enumerations;
-using Tango.PMR.Stubs;
-using Tango.PMR.Diagnostics;
-using Tango.FSE.Common.Connection;
-using Tango.FSE.Common.Diagnostics;
-using Tango.FSE.Procedures;
-using System.IO;
-using System.Diagnostics;
-using System.Windows.Forms;
-
-
-public class Program
-{
-
-
-private IProcedureContext context;
-
-//---------------------Start Command ----------------
-const Int32 CMD_RUN = 0; //Run on Pulse Per Secound .positive run Up and negative run Down b
-const Int32 CMD_STOP= 1; //0;Hard stop(Defualt);1-Soft stop;2-Hard Hiz;3-Soft Hiz
-const Int32 CMD_VALVE= 2; //0-to Midtank ,1-to head
-const Int32 CMD_DLY = 3; //delay in Seconds .
-const Int32 CMD_TIME= 4; //Print Time .
-const Int32 CMD_PRESS= 5; //return from Delay loop when pressure is high (on mBAR) .
-const Int32 CMD_LOOP_NM=6; //NUMBER OF counter
-const Int32 CMD_LOOP= 7; //jump up(+) or down(-) command u
-const Int32 CMD_MTV_OPEN = 8; //0 Air ; 1 Ink
-const Int32 CMD_MTV_CLOSE= 9; //0 Air ; 1 Ink
-const Int32 CMD_LBL= 10; //label for user
-const Int32 CMD_SMP= 11; //sample rate ,defualt 100msec (1); for 1 second is 10.
-const Int32 CMD_PRESL= 12; //return from Delay loop when pressure is low (on mBAR) .
-
-const Int32 CMD_END = 13; //end loop .
-
-
-Int32[] BuildUp_Table = new int []
-{
- CMD_VALVE,1,
- CMD_PRESL,200,
- CMD_DLY,200,
-
- CMD_LOOP_NM,3,
-
- CMD_VALVE,0,
- CMD_DLY,1,
- CMD_VALVE,1,
- CMD_DLY,1,
- CMD_LOOP,-4,
-
- CMD_VALVE,0,
- CMD_RUN,1068,
- CMD_PRESS,1000, //mbar --> 1000 = 100% work, 4000 = 200% work, 350 = 20% work
- CMD_DLY,150,
- CMD_LBL,1,
- CMD_PRESS,2000, //mbar --> 2000 = 100% work, 4000 = 200% work, 350 = 20% work
- CMD_DLY,60,
- CMD_LBL,2,
- CMD_PRESS,3000,
- CMD_DLY,60, // to limit
- CMD_STOP,0,
- CMD_VALVE,1,
- CMD_END,3,
-};
-
-
-Int32[] Up_Table = new int []
-{
- CMD_VALVE,1,
- CMD_PRESL,200,
- CMD_DLY,200,
-
- CMD_PRESS,3000, //mbar --> 1000 = 100% work, 4000 = 200% work, 350 = 20% work
- CMD_RUN,534, // 100%
- CMD_DLY,120,
- CMD_STOP,0,
- CMD_END,3,
-};
-Int32 Dispenser_sample_rate= 1;
-
- string path = @"C:\Dispenser_setup\Log\";
-//----------------------
-const UInt32 I2C_ID = 4; //MCU_I2C4
-const UInt32 TCA9548A_address = 0xE2;
-const UInt32 I2C_Slave_Low_Add = 0xA0; //eeprom address - 64k low
-const UInt32 I2C_Slave_High_Add = 0xA2; //eeprom address - 64k High
-//----------------------
-byte [] EEPROM_Data = new byte [128];
-
-
-//---------------------End Command ----------------
-
-const Int32 Dispenser_Motor1 = 6;
-const Int32 Dispenser_Motor2 = 7;
-const Int32 Dispenser_Motor3 = 8;
-const Int32 Dispenser_Motor4 = 9;
-const Int32 Dispenser_Motor5 = 10;
-const Int32 Dispenser_Motor6 = 11;
-const Int32 Dispenser_Motor7 = 12;
-const Int32 Dispenser_Motor8 = 13;
-
-const Int32 AN_IDS_PRESSENS_1 = 2;
-const Int32 AN_IDS_PRESSENS_2 = 3;
-const Int32 AN_IDS_PRESSENS_3 = 4;
-const Int32 AN_IDS_PRESSENS_4 = 5;
-const Int32 AN_IDS_PRESSENS_5 = 6;
-const Int32 AN_IDS_PRESSENS_6 = 7;
-const Int32 AN_IDS_PRESSENS_7 = 8;
-const Int32 AN_IDS_PRESSENS_8 = 9;
-
-const Int32 F2_LS_01_Direct = 0x60000420 ; // Reads the direct values that are currently being sent to the fpga. rsv rsv rsv rsv F2_LS_DISPENSER_UP_2 F2_LS_DISPENSER_25_2 F2_LS_DISPENSER_75_2 F2_LS_DISPENSER_DOWN_2 F2_LS_DISPENSER_50_2 F2_LS_DISPENSER_SPARE_2 F2_LS_DISPENSER_UP_1 F2_LS_DISPENSER_25_1 F2_LS_DISPENSER_75_1 F2_LS_DISPENSER_DOWN_1 F2_LS_DISPENSER_50_1 F2_LS_DISPENSER_SPARE_1
-const Int32 F2_LS_02_Direct = 0x60000430 ; // Reads the direct values that are currently being sent to the fpga. rsv rsv rsv rsv F2_LS_DISPENSER_UP_4 F2_LS_DISPENSER_25_4 F2_LS_DISPENSER_75_4 F2_LS_DISPENSER_DOWN_4 F2_LS_DISPENSER_50_4 F2_LS_DISPENSER_SPARE_4 F2_LS_DISPENSER_UP_3 F2_LS_DISPENSER_25_3 F2_LS_DISPENSER_75_3 F2_LS_DISPENSER_DOWN_3 F2_LS_DISPENSER_50_3 F2_LS_DISPENSER_SPARE_3
-const Int32 F2_LS_03_Direct = 0x60000440 ; // Reads the direct values that are currently being sent to the fpga. rsv rsv rsv rsv F2_LS_DISPENSER_UP_6 F2_LS_DISPENSER_25_6 F2_LS_DISPENSER_75_6 F2_LS_DISPENSER_DOWN_6 F2_LS_DISPENSER_50_6 F2_LS_DISPENSER_SPARE_6 F2_LS_DISPENSER_UP_5 F2_LS_DISPENSER_25_5 F2_LS_DISPENSER_75_5 F2_LS_DISPENSER_DOWN_5 F2_LS_DISPENSER_50_5 F2_LS_DISPENSER_SPARE_5
-const Int32 F2_LS_04_Direct = 0x60000480 ; // Reads the direct values that are currently being sent to the fpga. rsv rsv rsv rsv F2_LS_DISPENSER_UP_8 F2_LS_DISPENSER_25_8 F2_LS_DISPENSER_75_8 F2_LS_DISPENSER_DOWN_8 F2_LS_DISPENSER_50_8 F2_LS_DISPENSER_SPARE_8 F2_LS_DISPENSER_UP_7 F2_LS_DISPENSER_25_7 F2_LS_DISPENSER_75_7 F2_LS_DISPENSER_DOWN_7 F2_LS_DISPENSER_50_7 F2_LS_DISPENSER_SPARE_7
-
-const Int32 Dispenser_Valve1 = 0;
-const Int32 Dispenser_Valve2 = 1;
-const Int32 Dispenser_Valve3 = 2;
-const Int32 Dispenser_Valve4 = 3;
-const Int32 Dispenser_Valve5 = 4;
-const Int32 Dispenser_Valve6 = 5;
-const Int32 Dispenser_Valve7 = 6;
-const Int32 Dispenser_Valve8 = 7;
-
-const ushort MinPress_Mbar_Add =0x5c ;
-const ushort MaxPress_Mbar_Add =0x60 ;
-
-const Int32 F3_VALVE_OUT = 0x600000e2;
-
-//string path = "C:\\Dispenser_setup\\Log\\";
-
-
-//Int32[] Start_Table;
-
-Int32[] Start_Table = new Int32 [10000];
-
-UInt32 [] Motor_Dir=new UInt32 [8] {0,0,0,0,0,0,0,0};
-
-string Dispenser_Fname ;
-
-Int32 Dispenser_ptr =-1;
-
-Int32 [] Dispenser_press= new Int32[8]{0,0,0,0,0,0,0,0};
-Int32 max_pressure_level = 20000;
-Int32 min_pressure_level = -20000;
-
-Int32 [] A2D_Dispenser= new Int32[8]{0,0,0,0,0,0,0,0};
-Int32 Loop_cnt= 1;
-Int32 Loop_length=1;
-
-Int32 PressureSensorType= 1; //1- new -1up +10 . 0-old 0 to +10
-Int32 Temp_Delay=0;
-
-
-UInt32 RD_LS_01_Direct;
-UInt32 RD_LS_02_Direct;
-UInt32 RD_LS_03_Direct;
-UInt32 RD_LS_04_Direct;
-
-long Lebel1_time;
-long Lebel2_time;
-
-long time_Table;
-
-Int32 msec_index=0;
-
-Int32 MaxPress_Mbar;
-Int32 MinPress_Mbar;
-string state;
-
- public Int32 OnExecute(IProcedureContext context)
- {
- long Max_PBU;
- Int32 Index=0;
- Int32 speed=0;
- Int32 Dispenser_Nm;
- this.context = context;
-
- string box_msg = "Make sure Mixer Hot ";
- MessageBox.Show(box_msg);
-
- var response1 = context.RequestUserInputFor<String>("Dispenser Number", "Enter Dispenser number to make priming (1-8):");
- context.WriteLine(response1);
- Dispenser_Nm = Int32.Parse(response1);
-
- check_Min_Max_Mbar(Dispenser_Nm);
-
- if (Dispenser_Nm==8)
- Max_PBU=6000;
- else
- Max_PBU=4000;
-
-
- if (!Directory.Exists(path))
- {
- Directory.CreateDirectory(path);
- }
- context.WriteLine(path);
-
- context.Send<ProgressResponse>("ProgressRequest" ,0xe0, 1);
-
- Dispenser_Fname=path + "Dispenser_Nm_" + Dispenser_Nm+"_" + DateTime.Now.ToString("MM-dd-yy hh-mm")+ ".csv" ;
-
- context.WriteLine(Dispenser_Fname);
-
- context.WriteToFile(Dispenser_Fname,"Dispenser Nm," + Dispenser_Nm + "\n" );
- context.AppendToFile(Dispenser_Fname,"Pressure,Command,Value,DateTime,Remark\n" );
- for(int j=0; j<2;j++)
- {
- for(int i=0; i<4;i++)
- {
- state="PBU No. "+ (4*j+i+1 );
- Start_Table=BuildUp_Table;
- Table_Run(Dispenser_Nm );
- if (time_Table>300000)
- {
- context.AddResult(ResultType.Failed,"PBU", "PBU No."+ (4*j+i+1 ) + " Fail");
- return 0;
- }
- context.AddResult(ResultType.Passed,"PBU","PBU No."+ (4*j+i+1 ) + " Pass");
-
- }
- state="Flow No."+ (j+1 ) ;
- Start_Table=Up_Table;
- Table_Run(Dispenser_Nm );
- if (time_Table<115000)
- {
- context.WriteLine("time_Table= " +time_Table);
- context.AddResult(ResultType.Failed,"Flow", "Flow No."+ (j+1) + " Fail");
- return 0;
- }
- context.AddResult(ResultType.Passed,"Flow","Flow No."+ (j+1 ) + " Pass");
-
- }
- state="Last PBU " ;
- Start_Table=BuildUp_Table;
- Table_Run(Dispenser_Nm );
- long Time=Lebel2_time-Lebel1_time;
- if (Time>Max_PBU)
- {
- context.AddResult(ResultType.Failed,"PBU", "PBU = " +Time + "msec ");
- state="PBU = " +Time + "msec \tFail";
- }
- else
- {
- context.AddResult(ResultType.Passed,"PBU", "PBU = " +Time + "msec ");
- state="PBU = " +Time + "msec \tPass";
- }
- return 0;
-
- }
-
-/////////////////////////////////////////////
-void check_Min_Max_Mbar(Int32 i )
-{
- int k;
- string s ;
- i--;
-
- context.WriteLine("-------------- write Enable Channel ------------"); //debug
- enable_channel(i); // Chanel 0-7 => Disp0enser 0-7
- context.WriteLine("-------------- Read_header ------------"); //debug
-
- context.WriteLine("-------------- write_address_eeprom ------------"); //debug
- write_address_eeprom (I2C_Slave_Low_Add,MinPress_Mbar_Add);
- context.WriteLine("-------------- read_data_from_eeprom ------------"); //debug
- read_data_from_eeprom (I2C_Slave_Low_Add,1);
- if (EEPROM_Data[0]==0 )
- { PressureSensorType=0;
- context.WriteLine("PressureSensorType=0" ); //debug
- }
- else
- {
- PressureSensorType=1;
- context.WriteLine("PressureSensorType=1" ); //debug
- }
-
-}
-//----------------write address eeprom -------------------------
-public void write_address_eeprom (UInt32 I2C_Add, UInt32 Eeprom_Add)
-{
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Add;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(Convert.ToByte( (Eeprom_Add & 0xff00) >>8)); //Byte High add to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(Convert.ToByte(Eeprom_Add & 0xff)); //Byte Low add to write
- context.WriteLine( (Eeprom_Add & 0xff00) >>8) ; //debug
- context.WriteLine( Eeprom_Add & 0xff); //debug
-
- context.Send<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-}
-//------------------- read Data from EEprom--------------------------
-
-public void read_data_from_eeprom ( UInt32 I2C_Add, UInt32 cnt )
-{
- StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();
- stubI2CReadBytesRequest.I2CId = I2C_ID;
- stubI2CReadBytesRequest.SlaveAddress = (I2C_Add + 1);
- stubI2CReadBytesRequest.NumberOfBytesToRead = cnt; // Number of bytes to read
-
- var response1 = context.Send<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);
-
- for(int i=0; i<cnt;i++)
- {
- EEPROM_Data[i]=Convert.ToByte(response1.ReadBytes[i]);
- context.WriteLine(EEPROM_Data[i] ); //debug
-
- }
-}
-
-
-///////////////////////////////////////////////
-//----------- enable I2c channel --------------
-public int enable_channel(Int32 Channel_ID)
-{
- uint Const_temp = 0x01;
-
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = TCA9548A_address;
-
- Const_temp = Const_temp << Channel_ID;
- stubI2CWriteBytesRequest.BytesTWrite.Add(Const_temp);//enable i2c channel 0 Dispenser 1
-
- var response = context.Send<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
-}
-
-
-//////////////////////////////////////////////////////////////
-Int32 Table_Run(Int32 Dispenser )
-
-{
- Int32 COMMAND=0;
- Int32 Data=0;
- Int32 count=0;
-
- Dispenser--; //check from 0-7
-
- int j=0;
- var stopwatch = new Stopwatch();
- stopwatch.Start();
-
- long elapsed_time = stopwatch.ElapsedMilliseconds;
- context.WriteLine(elapsed_time);
-
- while (count!=-1)
- {
- msec_index=msec_index+1;
-
- if (Dispenser<2)
- {
- var response1 = context.Send<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F2_LS_01_Direct);
- RD_LS_01_Direct=response1.Value ;
- }
- else if ( (Dispenser<4) )
- {
- var response1 = context.Send<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F2_LS_02_Direct);
- RD_LS_02_Direct=response1.Value ;
- }
- else if ( (Dispenser<6) )
- {
- var response1 = context.Send<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F2_LS_03_Direct);
- RD_LS_03_Direct=response1.Value ;
- }
- else
- {
- var response1 = context.Send<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F2_LS_04_Direct);
- RD_LS_04_Direct=response1.Value ;
- }
- if (Dispenser<4)
- {
- var response2 = context.Send<StubIntADCReadResponse>("StubIntADCReadRequest" ,0x8000 + AN_IDS_PRESSENS_1);
- A2D_Dispenser[0]=(response2.SamplingInBits)>>16;
- A2D_Dispenser[1] =(response2.SamplingInBits) & 0x0000ffff;
- A2D_Dispenser[2] =(response2.VoltageSamplingMv)>>16;
- A2D_Dispenser[3] =(response2.VoltageSamplingMv) & 0x0000ffff;
- }
- else
- {
- var response3 = context.Send<StubIntADCReadResponse>("StubIntADCReadRequest" ,0x8000 + AN_IDS_PRESSENS_5);
- A2D_Dispenser[4] =(response3.SamplingInBits)>>16;
- A2D_Dispenser[5] =(response3.SamplingInBits)& 0x0000ffff;
- A2D_Dispenser[6] =(response3.VoltageSamplingMv)>>16;
- A2D_Dispenser[7] =(response3.VoltageSamplingMv)& 0x0000ffff;
- }
-
- COMMAND=Start_Table[count];
- Data=Start_Table[(count+1)];
- //Index=Index+2;
- switch (COMMAND)
- {
- case CMD_RUN:
- Motor_Run(Data,Dispenser);
- count = count+2;
- break;
-
- case CMD_VALVE:
- Valve_3W(Data,Dispenser);
- count = count+2;
- break;
-
- case CMD_STOP:
- Motor_Stop(Data,Dispenser);
- count = count+2;
- break;
-
- case CMD_DLY:
- Delay_on_second(Data,Dispenser);
- if (Temp_Delay ==0)
- {
- max_pressure_level=20000;
- min_pressure_level=-20000;
- count = count+2;
- }
- break;
-
- case CMD_TIME:
- Print_Time();
- count = count+2;
- break;
-
- case CMD_PRESS:
- max_pressure_level=Data;
- context.AppendToFile(Dispenser_Fname,",Max_pressure_level is, " + Data +","+DateTime.Now+"\n");
- count = count+2;
- break;
-
- case CMD_PRESL:
- min_pressure_level=Data;
- context.AppendToFile(Dispenser_Fname,",Min_pressure_level is, " + Data +","+DateTime.Now+"\n");
- count = count+2;
- break;
-
- case CMD_LBL:
- context.AppendToFile(Dispenser_Fname,",Label," + Data+","+DateTime.Now+"\n");
- if(Data==1)
- Lebel1_time=stopwatch.ElapsedMilliseconds;
- if(Data==2)
- Lebel2_time=stopwatch.ElapsedMilliseconds;
- count = count+2;
- break;
-
-
- case CMD_SMP:
- context.AppendToFile(Dispenser_Fname,",SampleRate," + Data+","+DateTime.Now+"\n");
- Dispenser_sample_rate =Data;
- count = count+2;
- break;
-
- case CMD_END:
- count=-1;
- context.AppendToFile(Dispenser_Fname,",End testing,,"+DateTime.Now+"\n");
- break;
-
- case CMD_MTV_OPEN:
- open_midtank_valve(Data,Dispenser);
- context.AppendToFile(Dispenser_Fname,",OPEN MIDTANK, " + Dispenser+","+DateTime.Now+"\n");
- count = count+2;
- break;
-
- case CMD_MTV_CLOSE:
- close_midtank_valve(Data,Dispenser);
- context.AppendToFile(Dispenser_Fname,",CLOSE MIDTANK, " + Dispenser+","+DateTime.Now+"\n");
- count = count+2;
- break;
-
- case CMD_LOOP_NM:
-
- Loop_cnt=Data-1;
- context.AppendToFile(Dispenser_Fname,",Counter Loop,"+ Data+","+DateTime.Now +"\n");
- count = count+2;
- break;
-
- case CMD_LOOP:
-
- if (Loop_cnt!=0)
- {
- context.AppendToFile(Dispenser_Fname,"Counter Loop,"+ Loop_cnt+","+DateTime.Now+"\n" );
- count = count+2*Data;
- Loop_cnt--;
-
- }
- else
- {
- context.AppendToFile(Dispenser_Fname,",End loop,,"+DateTime.Now +"\n");
- count = count+2;
- }
- break;
-
- default:
- break;
-
- }
-
- long elapsed_time1 = stopwatch.ElapsedMilliseconds;
- long elapsed_time2= elapsed_time1-elapsed_time;
- if (elapsed_time2>95)
- elapsed_time2=95; //minimum time
- Thread.Sleep(100-(int )(elapsed_time2));
-
- elapsed_time = stopwatch.ElapsedMilliseconds;
-
-
- j++;
- if (j==10)
- {
- j=0;
- context.WriteLine(Dispenser_press[Dispenser]+ " mBar\t"+state + "\tTime-" + (elapsed_time/1000));
- }
- }
- time_Table=elapsed_time;
- return 0;
-}
-
-///////////////////////////////////////////////////////////////////
-Int32 Motor_Run(Int32 speed,Int32 Dispenser)
-
-{
-
- switch (Dispenser)
- {
- case 0:
- if ( speed<0)
- {
- Motor_Dir[0]=2;
- if ((RD_LS_01_Direct & 0x04)!=0x04)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now +",Warning Motor on Limit\n");
- return 0;
- }
-
- context.Send<StubMotorRunResponse>("StubMotorRunRequest" ,Dispenser_Motor1, false, (-speed));
- }
- else
- {
- Motor_Dir[0]=1;
- if ((RD_LS_01_Direct & 0x20)!=0x20)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now +",Warning Motor on Limit\n");
- return 0;
- }
- context.Send<StubMotorRunResponse>("StubMotorRunRequest" ,Dispenser_Motor1, true, (speed));
- }
- break;
-
- case 1:
- if ( speed<0)
- {
- Motor_Dir[1]=2;
- if ((RD_LS_01_Direct & 0x100)!=0x100)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now +",Warning Motor on Limit\n");
- return 0;
- }
- context.Send<StubMotorRunResponse>("StubMotorRunRequest" ,Dispenser_Motor2, false, (-speed));
- }
- else
- {
- Motor_Dir[1]=1;
- if ((RD_LS_01_Direct & 0x800)!=0x800)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now +",Warning Motor on Limit\n");
- return 0;
- }
- context.Send<StubMotorRunResponse>("StubMotorRunRequest" ,Dispenser_Motor2, true, (speed));
- }
- break;
-
- case 2:
- if ( speed<0)
- {
- Motor_Dir[2]=2;
- if ((RD_LS_02_Direct & 0x04)!=0x04)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now +",Warning Motor on Limit\n");
- return 0;
- }
- context.Send<StubMotorRunResponse>("StubMotorRunRequest" ,Dispenser_Motor3, false, (-speed));
- }
- else
- {
- Motor_Dir[2]=1;
- if ((RD_LS_02_Direct & 0x20)!=0x20)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now+ ",Warning Motor on Limit\n");
- return 0;
- }
- context.Send<StubMotorRunResponse>("StubMotorRunRequest" ,Dispenser_Motor3, true, (speed));
- }
- break;
-
- case 3:
- if ( speed<0)
- {
- Motor_Dir[3]=2;
-
- if ((RD_LS_02_Direct & 0x100)!=0x100)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now+ ",Warning Motor on Limit\n");
- return 0;
- }
- context.Send<StubMotorRunResponse>("StubMotorRunRequest" ,Dispenser_Motor4, false, (-speed));
- }
- else
- {
- Motor_Dir[3]=1;
-
- if ((RD_LS_02_Direct & 0x800)!=0x800)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now +",Warning Motor on Limit\n");
- return 0;
- }
- context.Send<StubMotorRunResponse>("StubMotorRunRequest" ,Dispenser_Motor4, true, (speed));
- }
- break;
-
- case 4:
- if ( speed<0)
- {
- Motor_Dir[4]=2;
- if ((RD_LS_03_Direct & 0x04)!=0x04)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now+ ",Warning Motor on Limit\n");
- return 0;
- }
-
- context.Send<StubMotorRunResponse>("StubMotorRunRequest" ,Dispenser_Motor5, false, (-speed));
- }
- else
- {
- Motor_Dir[4]=1;
- if ((RD_LS_03_Direct & 0x20)!=0x20)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now+ ",Warning Motor on Limit\n");
- return 0;
- }
- context.Send<StubMotorRunResponse>("StubMotorRunRequest" ,Dispenser_Motor5, true, (speed));
- }
- break;
-
- case 5:
- if ( speed<0)
- {
- Motor_Dir[5]=2;
- if ((RD_LS_03_Direct & 0x100)!=0x100)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now +",Warning Motor on Limit\n");
- return 0;
- }
- context.Send<StubMotorRunResponse>("StubMotorRunRequest" ,Dispenser_Motor6, false, (-speed));
- }
- else
- {
- Motor_Dir[5]=1;
- if ((RD_LS_03_Direct & 0x800)!=0x800)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now+ ",Warning Motor on Limit\n");
- return 0;
- }
- context.Send<StubMotorRunResponse>("StubMotorRunRequest" ,Dispenser_Motor6, true, (speed));
- }
- break;
-
- case 6:
- if ( speed<0)
- {
- Motor_Dir[6]=2;
- if ((RD_LS_04_Direct & 0x04)!=0x04)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now +",Warning Motor on Limit\n");
- return 0;
- }
- context.Send<StubMotorRunResponse>("StubMotorRunRequest" ,Dispenser_Motor7, false, (-speed));
- }
- else
- {
- Motor_Dir[6]=1;
- if ((RD_LS_04_Direct & 0x20)!=0x20)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now +",Warning Motor on Limit\n");
- return 0;
- }
- context.Send<StubMotorRunResponse>("StubMotorRunRequest" ,Dispenser_Motor7, true, (speed));
- }
- break;
-
- case 7:
- if ( speed<0)
- {
- Motor_Dir[7]=2;
-
- if ((RD_LS_04_Direct & 0x100)!=0x100)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now +",Warning Motor on Limit\n");
- return 0;
- }
- context.Send<StubMotorRunResponse>("StubMotorRunRequest" ,Dispenser_Motor8, false, (-speed));
- }
- else
- {
- Motor_Dir[7]=1;
-
- if ((RD_LS_04_Direct & 0x800)!=0x800)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now +",Warning Motor on Limit\n");
- return 0;
- }
- context.Send<StubMotorRunResponse>("StubMotorRunRequest" ,Dispenser_Motor8, true, (speed));
- }
- break;
-
- default:
- break;
-
- }
- context.AppendToFile(Dispenser_Fname,",Run," +speed+","+DateTime.Now +"\n" );
-
- return 1;
-}
-
-
- Int32 Valve_3W(Int32 Valve_Value,Int32 Dispenser)
-{
- if ( Valve_Value==1)
- context.Send<StubValveResponse>("StubValveRequest" ,Dispenser_Valve1+Dispenser, 3, true); //3 3Way
- else
- context.Send<StubValveResponse>("StubValveRequest" ,Dispenser_Valve1+Dispenser, 3, false); //3 3Way
-
- context.AppendToFile(Dispenser_Fname,",Dispenser Valve position is, " + Valve_Value+","+DateTime.Now +"\n" );
-
- return 1;
-}
-//---------------------------------------
-
- Int32 Motor_Stop(Int32 Stop_Value,Int32 Dispenser )
-{
- context.Send<StubMotorStopResponse>("StubMotorStopRequest" ,Dispenser_Motor1+Dispenser, Stop_Value);
-
- context.AppendToFile(Dispenser_Fname,",Motor Stop," + Stop_Value+","+DateTime.Now +"\n");
- Motor_Dir[Dispenser]=0;
- return 1;
-}
-
-//---------------------------------------
-
- Int32 Delay_on_second(Int32 Delay,Int32 Dispenser )
-{
-//Int32 temp1;
-Int32 pressure_om_mBAR=0;
- if (Temp_Delay ==0)
- {
- context.AppendToFile(Dispenser_Fname,",DLY, " + Delay +","+DateTime.Now+"\n");
- Temp_Delay = Delay *10 -1;
-// context.Write("A"); //debug
- }
- else
- Temp_Delay--;
-
- if ( LimitSW_Dispenser(Dispenser)==0)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now+",Warning Motor on Limit\n");
- MotorStop(Dispenser);
- Temp_Delay =0; //end delay
-// context.Write("C"); //debug
-
- return 0 ;
- }
-
- pressure_om_mBAR=Calc_mBAR(Dispenser,true);
- if (pressure_om_mBAR > max_pressure_level)
- {
- // MotorStop(Dispenser);
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now +",Warning Pressure too high\n");
- Temp_Delay =0; //end delay
-// context.Write("D"); //debug
-
- return 0;
- }
- if (pressure_om_mBAR < min_pressure_level)
- {
- // MotorStop(Dispenser);
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now +",Warning Pressure too low\n");
- Temp_Delay =0; //end delay
-// context.Write("D"); //debug
-
- return 0;
- }
-
-
- return 1;
-}
-
-Int32 LimitSW_Dispenser(Int32 Dispenser)
-{
-
- if (Dispenser==0)
-
- {
-
-// var response1 = context.Send<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F2_LS_01_Direct);
-
- if (((RD_LS_01_Direct & 0x04)!=0x04) && (Motor_Dir[0]==2))
- return 0;
- else
- if (((RD_LS_01_Direct & 0x20)!=0x20) && (Motor_Dir[0]==1))
- return 0;
- else
- return 1;
- }
-
- if (Dispenser==1)
-
- {
-// var response2 = context.Send<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F2_LS_01_Direct);
- if (((RD_LS_01_Direct & 0x100)!=0x100) && (Motor_Dir[1]==2))
- return 0;
- else
- if (((RD_LS_01_Direct & 0x800)!=0x800) && (Motor_Dir[1]==1))
- return 0;
- else
- return 1;
- }
-
-
- if (Dispenser==2)
-
- {
-
- //var response3 = context.Send<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F2_LS_02_Direct);
- if (((RD_LS_02_Direct & 0x04)!=0x04) && (Motor_Dir[2]==2))
- return 0;
- else
- if (((RD_LS_02_Direct & 0x20)!=0x20) && (Motor_Dir[2]==1))
- return 0;
- else
- return 1;
-
- }
-
- if (Dispenser==3)
-
- {
- var response4 = context.Send<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F2_LS_02_Direct);
- if (((RD_LS_02_Direct & 0x100)!=0x100) && (Motor_Dir[3]==2))
- return 0;
- else
- if (((RD_LS_02_Direct & 0x800)!=0x800) && (Motor_Dir[3]==1))
- return 0;
- else
- return 1;
- }
-
-
-
-
- if (Dispenser==4)
-
- {
-
-// var response1 = context.Send<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F2_LS_01_Direct);
- if (((RD_LS_03_Direct & 0x04)!=0x04) && (Motor_Dir[4]==2))
- return 0;
- else
- if (((RD_LS_03_Direct & 0x20)!=0x20) && (Motor_Dir[4]==1))
- return 0;
- else
- return 1;
- }
-
- if (Dispenser==5)
-
- {
-// var response2 = context.Send<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F2_LS_01_Direct);
- if (((RD_LS_03_Direct & 0x100)!=0x100) && (Motor_Dir[5]==2))
- return 0;
- else
- if (((RD_LS_03_Direct & 0x800)!=0x800) && (Motor_Dir[5]==1))
- return 0;
- else
- return 1;
- }
-
-
- if (Dispenser==6)
-
- {
-
- //var response3 = context.Send<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F2_LS_02_Direct);
- if (((RD_LS_04_Direct & 0x04)!=0x04) && (Motor_Dir[6]==2))
- return 0;
- else
- if (((RD_LS_04_Direct & 0x20)!=0x20) && (Motor_Dir[6]==1))
- return 0;
- else
- return 1;
-
- }
-
- if (Dispenser==7)
-
- {
-// var response4 = context.Send<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F2_LS_02_Direct);
- if (((RD_LS_04_Direct & 0x100)!=0x100) && (Motor_Dir[7]==2))
- return 0;
- else
- if (((RD_LS_04_Direct & 0x800)!=0x800) && (Motor_Dir[7]==1))
- return 0;
- else
- return 1;
- }
-
-
- return 0;
-}
-
-
-Int32 Print_Time()
-{
- context.AppendToFile(Dispenser_Fname,",Time is\t,,"+ DateTime.Now +"\n" );
-
- return 1;
-}
-
-
-
-Int32 Calc_mBAR(Int32 Dispenser, bool save_press)
-{
-Int32 Data;
-Int32 Sense1;
-Int32 temp=0;
-
- Data =A2D_Dispenser[Dispenser];
- if (Data<100)
- temp=-1;
- Data=Data-710;
- if (Data<0)
- Data=0;
-
- Data=Data*(10000+PressureSensorType*1000)/2840; // for -1 to 10 bar Press_Sensor_Type=1 else 0
- Data=Data-1000*PressureSensorType; // for -1 to 10 bar
-
- if (temp==-1) //if SamplingInBits <100 then No pressure sensor exist
- Sense1=-9999 ;
- else
- Sense1=Data ;
- if ( ((msec_index) % (Dispenser_sample_rate)) == 0)
- {
- context.AppendToFile(Dispenser_Fname,"" + Sense1+"\n");
- }
- Dispenser_press[Dispenser]=Sense1;
- return Sense1;
-
- }
-
-
-//--------------------------------
-int open_midtank_valve (Int32 valve_type,Int32 valve_nm) //valve_type=0 is Air ,1 is Ink ; valve_nm 0-7
-{
- SetBit (F3_VALVE_OUT,((valve_type+1)*8)- valve_nm-1, 1);
- return 1;
-
-}
-//--------------------------------
-int close_midtank_valve (Int32 valve_type,Int32 valve_nm) //valve_type=0 is Air ,1 is Ink ; valve_nm 0-7
-{
- SetBit (F3_VALVE_OUT,((valve_type+1)*8)- valve_nm-1, 0);
- return 1;
-}
-//--------------------------------
-Int32 SetBit(Int32 Adr, Int32 BitNo, Int32 Bit)
-{
- Int32 BitMask;
-
- var response = context.Send<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" , F3_VALVE_OUT);
- Int32 RV = (Int32) response.Value & 0xffff;
-
-
- if (Bit == 0x1)
- {
- BitMask = 0x1 << BitNo;
- RV = RV | BitMask;
- context.Send<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_VALVE_OUT , RV);
- }
- else if (Bit == 0x0)
- {
- BitMask = ~(0x1 << BitNo);
- RV = RV & BitMask;
- context.Send<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_VALVE_OUT , RV);
- }
- return 1;
-}
-//----------------------------------
- void MotorStop(Int32 i)
-{
-
-context.Send<StubMotorStopResponse>("StubMotorStopRequest" ,Dispenser_Motor1+i, 2);
-Motor_Dir[i]=0; //0 stop 1- up 2-dn
-
-}
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/Procedures/Priming1.txt b/Software/Stubs Collection/Procedures/Priming1.txt
deleted file mode 100644
index adfed3f3e..000000000
--- a/Software/Stubs Collection/Procedures/Priming1.txt
+++ /dev/null
@@ -1,1015 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
-using System.ComponentModel;
-using System.Linq;
-using System.Text;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Drawing;
-using Google.Protobuf;
-using Tango.BL.Entities;
-using Tango.BL.Enumerations;
-using Tango.PMR.Stubs;
-using Tango.PMR.Diagnostics;
-using Tango.FSE.Common.Connection;
-using Tango.FSE.Common.Diagnostics;
-using Tango.FSE.Procedures;
-using System.IO;
-using System.Diagnostics;
-using System.Windows.Forms;
-
-
-public class Program
-{
-
-
-private IProcedureContext context;
-
-//---------------------Start Command ----------------
-const Int32 CMD_RUN = 0; //Run on Pulse Per Secound .positive run Up and negative run Down b
-const Int32 CMD_STOP= 1; //0;Hard stop(Defualt);1-Soft stop;2-Hard Hiz;3-Soft Hiz
-const Int32 CMD_VALVE= 2; //0-to Midtank ,1-to head
-const Int32 CMD_DLY = 3; //delay in Seconds .
-const Int32 CMD_TIME= 4; //Print Time .
-const Int32 CMD_PRESS= 5; //return from Delay loop when pressure is high (on mBAR) .
-const Int32 CMD_LOOP_NM=6; //NUMBER OF counter
-const Int32 CMD_LOOP= 7; //jump up(+) or down(-) command u
-const Int32 CMD_MTV_OPEN = 8; //0 Air ; 1 Ink
-const Int32 CMD_MTV_CLOSE= 9; //0 Air ; 1 Ink
-const Int32 CMD_LBL= 10; //label for user
-const Int32 CMD_SMP= 11; //sample rate ,defualt 100msec (1); for 1 second is 10.
-const Int32 CMD_PRESL= 12; //return from Delay loop when pressure is low (on mBAR) .
-
-const Int32 CMD_END = 13; //end loop .
-
-
-Int32[] BuildUp_Table = new int []
-{
- CMD_VALVE,1,
- CMD_PRESL,200,
- CMD_DLY,200,
-
- CMD_LOOP_NM,3,
-
- CMD_VALVE,0,
- CMD_DLY,1,
- CMD_VALVE,1,
- CMD_DLY,1,
- CMD_LOOP,-4,
-
- CMD_VALVE,0,
- CMD_RUN,1068,
- CMD_PRESS,1000, //mbar --> 1000 = 100% work, 4000 = 200% work, 350 = 20% work
- CMD_DLY,150,
- CMD_LBL,1,
- CMD_PRESS,2000, //mbar --> 2000 = 100% work, 4000 = 200% work, 350 = 20% work
- CMD_DLY,60,
- CMD_LBL,2,
- CMD_PRESS,3000,
- CMD_DLY,60, // to limit
- CMD_STOP,0,
- CMD_VALVE,1,
- CMD_END,3,
-};
-
-
-Int32[] Up_Table = new int []
-{
- CMD_VALVE,1,
- CMD_PRESL,200,
- CMD_DLY,200,
-
- CMD_PRESS,3000, //mbar --> 1000 = 100% work, 4000 = 200% work, 350 = 20% work
- CMD_RUN,534, // 100%
- CMD_DLY,120,
- CMD_STOP,0,
- CMD_END,3,
-};
-Int32 Dispenser_sample_rate= 1;
-
- string path = @"C:\Dispenser_setup\Log\";
-//----------------------
-const UInt32 I2C_ID = 4; //MCU_I2C4
-const UInt32 TCA9548A_address = 0xE2;
-const UInt32 I2C_Slave_Low_Add = 0xA0; //eeprom address - 64k low
-const UInt32 I2C_Slave_High_Add = 0xA2; //eeprom address - 64k High
-//----------------------
-byte [] EEPROM_Data = new byte [128];
-
-
-//---------------------End Command ----------------
-
-const Int32 Dispenser_Motor1 = 6;
-const Int32 Dispenser_Motor2 = 7;
-const Int32 Dispenser_Motor3 = 8;
-const Int32 Dispenser_Motor4 = 9;
-const Int32 Dispenser_Motor5 = 10;
-const Int32 Dispenser_Motor6 = 11;
-const Int32 Dispenser_Motor7 = 12;
-const Int32 Dispenser_Motor8 = 13;
-
-const Int32 AN_IDS_PRESSENS_1 = 2;
-const Int32 AN_IDS_PRESSENS_2 = 3;
-const Int32 AN_IDS_PRESSENS_3 = 4;
-const Int32 AN_IDS_PRESSENS_4 = 5;
-const Int32 AN_IDS_PRESSENS_5 = 6;
-const Int32 AN_IDS_PRESSENS_6 = 7;
-const Int32 AN_IDS_PRESSENS_7 = 8;
-const Int32 AN_IDS_PRESSENS_8 = 9;
-
-const Int32 F2_LS_01_Direct = 0x60000420 ; // Reads the direct values that are currently being sent to the fpga. rsv rsv rsv rsv F2_LS_DISPENSER_UP_2 F2_LS_DISPENSER_25_2 F2_LS_DISPENSER_75_2 F2_LS_DISPENSER_DOWN_2 F2_LS_DISPENSER_50_2 F2_LS_DISPENSER_SPARE_2 F2_LS_DISPENSER_UP_1 F2_LS_DISPENSER_25_1 F2_LS_DISPENSER_75_1 F2_LS_DISPENSER_DOWN_1 F2_LS_DISPENSER_50_1 F2_LS_DISPENSER_SPARE_1
-const Int32 F2_LS_02_Direct = 0x60000430 ; // Reads the direct values that are currently being sent to the fpga. rsv rsv rsv rsv F2_LS_DISPENSER_UP_4 F2_LS_DISPENSER_25_4 F2_LS_DISPENSER_75_4 F2_LS_DISPENSER_DOWN_4 F2_LS_DISPENSER_50_4 F2_LS_DISPENSER_SPARE_4 F2_LS_DISPENSER_UP_3 F2_LS_DISPENSER_25_3 F2_LS_DISPENSER_75_3 F2_LS_DISPENSER_DOWN_3 F2_LS_DISPENSER_50_3 F2_LS_DISPENSER_SPARE_3
-const Int32 F2_LS_03_Direct = 0x60000440 ; // Reads the direct values that are currently being sent to the fpga. rsv rsv rsv rsv F2_LS_DISPENSER_UP_6 F2_LS_DISPENSER_25_6 F2_LS_DISPENSER_75_6 F2_LS_DISPENSER_DOWN_6 F2_LS_DISPENSER_50_6 F2_LS_DISPENSER_SPARE_6 F2_LS_DISPENSER_UP_5 F2_LS_DISPENSER_25_5 F2_LS_DISPENSER_75_5 F2_LS_DISPENSER_DOWN_5 F2_LS_DISPENSER_50_5 F2_LS_DISPENSER_SPARE_5
-const Int32 F2_LS_04_Direct = 0x60000480 ; // Reads the direct values that are currently being sent to the fpga. rsv rsv rsv rsv F2_LS_DISPENSER_UP_8 F2_LS_DISPENSER_25_8 F2_LS_DISPENSER_75_8 F2_LS_DISPENSER_DOWN_8 F2_LS_DISPENSER_50_8 F2_LS_DISPENSER_SPARE_8 F2_LS_DISPENSER_UP_7 F2_LS_DISPENSER_25_7 F2_LS_DISPENSER_75_7 F2_LS_DISPENSER_DOWN_7 F2_LS_DISPENSER_50_7 F2_LS_DISPENSER_SPARE_7
-
-const Int32 Dispenser_Valve1 = 0;
-const Int32 Dispenser_Valve2 = 1;
-const Int32 Dispenser_Valve3 = 2;
-const Int32 Dispenser_Valve4 = 3;
-const Int32 Dispenser_Valve5 = 4;
-const Int32 Dispenser_Valve6 = 5;
-const Int32 Dispenser_Valve7 = 6;
-const Int32 Dispenser_Valve8 = 7;
-
-const ushort MinPress_Mbar_Add =0x5c ;
-const ushort MaxPress_Mbar_Add =0x60 ;
-
-const Int32 F3_VALVE_OUT = 0x600000e2;
-
-//string path = "C:\\Dispenser_setup\\Log\\";
-
-
-//Int32[] Start_Table;
-
-Int32[] Start_Table = new Int32 [10000];
-
-UInt32 [] Motor_Dir=new UInt32 [8] {0,0,0,0,0,0,0,0};
-
-string Dispenser_Fname ;
-
-Int32 Dispenser_ptr =-1;
-
-Int32 [] Dispenser_press= new Int32[8]{0,0,0,0,0,0,0,0};
-Int32 max_pressure_level = 20000;
-Int32 min_pressure_level = -20000;
-
-Int32 [] A2D_Dispenser= new Int32[8]{0,0,0,0,0,0,0,0};
-Int32 Loop_cnt= 1;
-Int32 Loop_length=1;
-
-Int32 PressureSensorType= 1; //1- new -1up +10 . 0-old 0 to +10
-Int32 Temp_Delay=0;
-
-
-UInt32 RD_LS_01_Direct;
-UInt32 RD_LS_02_Direct;
-UInt32 RD_LS_03_Direct;
-UInt32 RD_LS_04_Direct;
-
-long Lebel1_time;
-long Lebel2_time;
-
-long time_Table;
-
-Int32 msec_index=0;
-
-Int32 MaxPress_Mbar;
-Int32 MinPress_Mbar;
-string state;
-
- public Int32 OnExecute(IProcedureContext context)
- {
- long Max_PBU;
- Int32 Index=0;
- Int32 speed=0;
- Int32 Dispenser_Nm;
- this.context = context;
-
- string box_msg = "Make sure Mixer Hot ";
- MessageBox.Show(box_msg);
-
- var response1 = context.RequestUserInputFor<String>("Dispenser Number", "Enter Dispenser number to make priming (1-8):");
- context.WriteLine(response1);
- Dispenser_Nm = Int32.Parse(response1);
-
- check_Min_Max_Mbar(Dispenser_Nm);
-
- if (Dispenser_Nm==8)
- Max_PBU=6000;
- else
- Max_PBU=4000;
-
-
- if (!Directory.Exists(path))
- {
- Directory.CreateDirectory(path);
- }
- context.WriteLine(path);
-
- context.Send<ProgressResponse>("ProgressRequest" ,0xe0, 1);
-
- Dispenser_Fname=path + "Dispenser_Nm_" + Dispenser_Nm+"_" + DateTime.Now.ToString("MM-dd-yy hh-mm")+ ".csv" ;
-
- context.WriteLine(Dispenser_Fname);
-
- context.WriteToFile(Dispenser_Fname,"Dispenser Nm," + Dispenser_Nm + "\n" );
- context.AppendToFile(Dispenser_Fname,"Pressure,Command,Value,DateTime,Remark\n" );
- for(int j=0; j<2;j++)
- {
- for(int i=0; i<4;i++)
- {
- state="PBU No. "+ (4*j+i+1 );
- Start_Table=BuildUp_Table;
- Table_Run(Dispenser_Nm );
- if (time_Table>300000)
- {
- context.AddResult(ResultType.Failed,"PBU", "PBU No."+ (4*j+i+1 ) + " Fail");
- return 0;
- }
- context.AddResult(ResultType.Passed,"PBU","PBU No."+ (4*j+i+1 ) + " Pass");
-
- }
- state="Flow No."+ (j+1 ) ;
- Start_Table=Up_Table;
- Table_Run(Dispenser_Nm );
- if (time_Table<115000)
- {
- context.WriteLine("time_Table= " +time_Table);
- context.AddResult(ResultType.Failed,"Flow", "Flow No."+ (j+1) + " Fail");
- return 0;
- }
- context.AddResult(ResultType.Passed,"Flow","Flow No."+ (j+1 ) + " Pass");
-
- }
- state="Last PBU " ;
- Start_Table=BuildUp_Table;
- Table_Run(Dispenser_Nm );
- long Time=Lebel2_time-Lebel1_time;
- if (Time>Max_PBU)
- {
- context.AddResult(ResultType.Failed,"PBU", "PBU = " +Time + "msec ");
- state="PBU = " +Time + "msec \tFail";
- }
- else
- {
- context.AddResult(ResultType.Passed,"PBU", "PBU = " +Time + "msec ");
- state="PBU = " +Time + "msec \tPass";
- }
- return 0;
-
- }
-
-/////////////////////////////////////////////
-void check_Min_Max_Mbar(Int32 i )
-{
- int k;
- string s ;
- i--;
-
- context.WriteLine("-------------- write Enable Channel ------------"); //debug
- enable_channel(i); // Chanel 0-7 => Disp0enser 0-7
- context.WriteLine("-------------- Read_header ------------"); //debug
-
- context.WriteLine("-------------- write_address_eeprom ------------"); //debug
- write_address_eeprom (I2C_Slave_Low_Add,MinPress_Mbar_Add);
- context.WriteLine("-------------- read_data_from_eeprom ------------"); //debug
- read_data_from_eeprom (I2C_Slave_Low_Add,1);
- if (EEPROM_Data[0]==0 )
- { PressureSensorType=0;
- context.WriteLine("PressureSensorType=0" ); //debug
- }
- else
- {
- PressureSensorType=1;
- context.WriteLine("PressureSensorType=1" ); //debug
- }
-
-}
-//----------------write address eeprom -------------------------
-public void write_address_eeprom (UInt32 I2C_Add, UInt32 Eeprom_Add)
-{
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Add;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(Convert.ToByte( (Eeprom_Add & 0xff00) >>8)); //Byte High add to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(Convert.ToByte(Eeprom_Add & 0xff)); //Byte Low add to write
- context.WriteLine( (Eeprom_Add & 0xff00) >>8) ; //debug
- context.WriteLine( Eeprom_Add & 0xff); //debug
-
- context.Send<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-}
-//------------------- read Data from EEprom--------------------------
-
-public void read_data_from_eeprom ( UInt32 I2C_Add, UInt32 cnt )
-{
- StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();
- stubI2CReadBytesRequest.I2CId = I2C_ID;
- stubI2CReadBytesRequest.SlaveAddress = (I2C_Add + 1);
- stubI2CReadBytesRequest.NumberOfBytesToRead = cnt; // Number of bytes to read
-
- var response1 = context.Send<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);
-
- for(int i=0; i<cnt;i++)
- {
- EEPROM_Data[i]=Convert.ToByte(response1.ReadBytes[i]);
- context.WriteLine(EEPROM_Data[i] ); //debug
-
- }
-}
-
-
-///////////////////////////////////////////////
-//----------- enable I2c channel --------------
-public int enable_channel(Int32 Channel_ID)
-{
- uint Const_temp = 0x01;
-
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = TCA9548A_address;
-
- Const_temp = Const_temp << Channel_ID;
- stubI2CWriteBytesRequest.BytesTWrite.Add(Const_temp);//enable i2c channel 0 Dispenser 1
-
- var response = context.Send<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
-}
-
-
-//////////////////////////////////////////////////////////////
-Int32 Table_Run(Int32 Dispenser )
-
-{
- Int32 COMMAND=0;
- Int32 Data=0;
- Int32 count=0;
-
- Dispenser--; //check from 0-7
-
- int j=0;
- var stopwatch = new Stopwatch();
- stopwatch.Start();
-
- long elapsed_time = stopwatch.ElapsedMilliseconds;
- context.WriteLine(elapsed_time);
-
- while (count!=-1)
- {
- msec_index=msec_index+1;
-
- if (Dispenser<2)
- {
- var response1 = context.Send<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F2_LS_01_Direct);
- RD_LS_01_Direct=response1.Value ;
- }
- else if ( (Dispenser<4) )
- {
- var response1 = context.Send<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F2_LS_02_Direct);
- RD_LS_02_Direct=response1.Value ;
- }
- else if ( (Dispenser<6) )
- {
- var response1 = context.Send<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F2_LS_03_Direct);
- RD_LS_03_Direct=response1.Value ;
- }
- else
- {
- var response1 = context.Send<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F2_LS_04_Direct);
- RD_LS_04_Direct=response1.Value ;
- }
- if (Dispenser<4)
- {
- var response2 = context.Send<StubIntADCReadResponse>("StubIntADCReadRequest" ,0x8000 + AN_IDS_PRESSENS_1);
- A2D_Dispenser[0]=(response2.SamplingInBits)>>16;
- A2D_Dispenser[1] =(response2.SamplingInBits) & 0x0000ffff;
- A2D_Dispenser[2] =(response2.VoltageSamplingMv)>>16;
- A2D_Dispenser[3] =(response2.VoltageSamplingMv) & 0x0000ffff;
- }
- else
- {
- var response3 = context.Send<StubIntADCReadResponse>("StubIntADCReadRequest" ,0x8000 + AN_IDS_PRESSENS_5);
- A2D_Dispenser[4] =(response3.SamplingInBits)>>16;
- A2D_Dispenser[5] =(response3.SamplingInBits)& 0x0000ffff;
- A2D_Dispenser[6] =(response3.VoltageSamplingMv)>>16;
- A2D_Dispenser[7] =(response3.VoltageSamplingMv)& 0x0000ffff;
- }
-
- COMMAND=Start_Table[count];
- Data=Start_Table[(count+1)];
- //Index=Index+2;
- switch (COMMAND)
- {
- case CMD_RUN:
- Motor_Run(Data,Dispenser);
- count = count+2;
- break;
-
- case CMD_VALVE:
- Valve_3W(Data,Dispenser);
- count = count+2;
- break;
-
- case CMD_STOP:
- Motor_Stop(Data,Dispenser);
- count = count+2;
- break;
-
- case CMD_DLY:
- Delay_on_second(Data,Dispenser);
- if (Temp_Delay ==0)
- {
- max_pressure_level=20000;
- min_pressure_level=-20000;
- count = count+2;
- }
- break;
-
- case CMD_TIME:
- Print_Time();
- count = count+2;
- break;
-
- case CMD_PRESS:
- max_pressure_level=Data;
- context.AppendToFile(Dispenser_Fname,",Max_pressure_level is, " + Data +","+DateTime.Now+"\n");
- count = count+2;
- break;
-
- case CMD_PRESL:
- min_pressure_level=Data;
- context.AppendToFile(Dispenser_Fname,",Min_pressure_level is, " + Data +","+DateTime.Now+"\n");
- count = count+2;
- break;
-
- case CMD_LBL:
- context.AppendToFile(Dispenser_Fname,",Label," + Data+","+DateTime.Now+"\n");
- if(Data==1)
- Lebel1_time=stopwatch.ElapsedMilliseconds;
- if(Data==2)
- Lebel2_time=stopwatch.ElapsedMilliseconds;
- count = count+2;
- break;
-
-
- case CMD_SMP:
- context.AppendToFile(Dispenser_Fname,",SampleRate," + Data+","+DateTime.Now+"\n");
- Dispenser_sample_rate =Data;
- count = count+2;
- break;
-
- case CMD_END:
- count=-1;
- context.AppendToFile(Dispenser_Fname,",End testing,,"+DateTime.Now+"\n");
- break;
-
- case CMD_MTV_OPEN:
- open_midtank_valve(Data,Dispenser);
- context.AppendToFile(Dispenser_Fname,",OPEN MIDTANK, " + Dispenser+","+DateTime.Now+"\n");
- count = count+2;
- break;
-
- case CMD_MTV_CLOSE:
- close_midtank_valve(Data,Dispenser);
- context.AppendToFile(Dispenser_Fname,",CLOSE MIDTANK, " + Dispenser+","+DateTime.Now+"\n");
- count = count+2;
- break;
-
- case CMD_LOOP_NM:
-
- Loop_cnt=Data-1;
- context.AppendToFile(Dispenser_Fname,",Counter Loop,"+ Data+","+DateTime.Now +"\n");
- count = count+2;
- break;
-
- case CMD_LOOP:
-
- if (Loop_cnt!=0)
- {
- context.AppendToFile(Dispenser_Fname,"Counter Loop,"+ Loop_cnt+","+DateTime.Now+"\n" );
- count = count+2*Data;
- Loop_cnt--;
-
- }
- else
- {
- context.AppendToFile(Dispenser_Fname,",End loop,,"+DateTime.Now +"\n");
- count = count+2;
- }
- break;
-
- default:
- break;
-
- }
-
- long elapsed_time1 = stopwatch.ElapsedMilliseconds;
- long elapsed_time2= elapsed_time1-elapsed_time;
- if (elapsed_time2>95)
- elapsed_time2=95; //minimum time
- Thread.Sleep(100-(int )(elapsed_time2));
-
- elapsed_time = stopwatch.ElapsedMilliseconds;
-
-
- j++;
- if (j==10)
- {
- j=0;
- context.WriteLine(Dispenser_press[Dispenser]+ " mBar\t"+state + "\tTime-" + (elapsed_time/1000));
- }
- }
- time_Table=elapsed_time;
- return 0;
-}
-
-///////////////////////////////////////////////////////////////////
-Int32 Motor_Run(Int32 speed,Int32 Dispenser)
-
-{
-
- switch (Dispenser)
- {
- case 0:
- if ( speed<0)
- {
- Motor_Dir[0]=2;
- if ((RD_LS_01_Direct & 0x04)!=0x04)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now +",Warning Motor on Limit\n");
- return 0;
- }
-
- context.Send<StubMotorRunResponse>("StubMotorRunRequest" ,Dispenser_Motor1, false, (-speed));
- }
- else
- {
- Motor_Dir[0]=1;
- if ((RD_LS_01_Direct & 0x20)!=0x20)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now +",Warning Motor on Limit\n");
- return 0;
- }
- context.Send<StubMotorRunResponse>("StubMotorRunRequest" ,Dispenser_Motor1, true, (speed));
- }
- break;
-
- case 1:
- if ( speed<0)
- {
- Motor_Dir[1]=2;
- if ((RD_LS_01_Direct & 0x100)!=0x100)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now +",Warning Motor on Limit\n");
- return 0;
- }
- context.Send<StubMotorRunResponse>("StubMotorRunRequest" ,Dispenser_Motor2, false, (-speed));
- }
- else
- {
- Motor_Dir[1]=1;
- if ((RD_LS_01_Direct & 0x800)!=0x800)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now +",Warning Motor on Limit\n");
- return 0;
- }
- context.Send<StubMotorRunResponse>("StubMotorRunRequest" ,Dispenser_Motor2, true, (speed));
- }
- break;
-
- case 2:
- if ( speed<0)
- {
- Motor_Dir[2]=2;
- if ((RD_LS_02_Direct & 0x04)!=0x04)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now +",Warning Motor on Limit\n");
- return 0;
- }
- context.Send<StubMotorRunResponse>("StubMotorRunRequest" ,Dispenser_Motor3, false, (-speed));
- }
- else
- {
- Motor_Dir[2]=1;
- if ((RD_LS_02_Direct & 0x20)!=0x20)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now+ ",Warning Motor on Limit\n");
- return 0;
- }
- context.Send<StubMotorRunResponse>("StubMotorRunRequest" ,Dispenser_Motor3, true, (speed));
- }
- break;
-
- case 3:
- if ( speed<0)
- {
- Motor_Dir[3]=2;
-
- if ((RD_LS_02_Direct & 0x100)!=0x100)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now+ ",Warning Motor on Limit\n");
- return 0;
- }
- context.Send<StubMotorRunResponse>("StubMotorRunRequest" ,Dispenser_Motor4, false, (-speed));
- }
- else
- {
- Motor_Dir[3]=1;
-
- if ((RD_LS_02_Direct & 0x800)!=0x800)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now +",Warning Motor on Limit\n");
- return 0;
- }
- context.Send<StubMotorRunResponse>("StubMotorRunRequest" ,Dispenser_Motor4, true, (speed));
- }
- break;
-
- case 4:
- if ( speed<0)
- {
- Motor_Dir[4]=2;
- if ((RD_LS_03_Direct & 0x04)!=0x04)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now+ ",Warning Motor on Limit\n");
- return 0;
- }
-
- context.Send<StubMotorRunResponse>("StubMotorRunRequest" ,Dispenser_Motor5, false, (-speed));
- }
- else
- {
- Motor_Dir[4]=1;
- if ((RD_LS_03_Direct & 0x20)!=0x20)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now+ ",Warning Motor on Limit\n");
- return 0;
- }
- context.Send<StubMotorRunResponse>("StubMotorRunRequest" ,Dispenser_Motor5, true, (speed));
- }
- break;
-
- case 5:
- if ( speed<0)
- {
- Motor_Dir[5]=2;
- if ((RD_LS_03_Direct & 0x100)!=0x100)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now +",Warning Motor on Limit\n");
- return 0;
- }
- context.Send<StubMotorRunResponse>("StubMotorRunRequest" ,Dispenser_Motor6, false, (-speed));
- }
- else
- {
- Motor_Dir[5]=1;
- if ((RD_LS_03_Direct & 0x800)!=0x800)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now+ ",Warning Motor on Limit\n");
- return 0;
- }
- context.Send<StubMotorRunResponse>("StubMotorRunRequest" ,Dispenser_Motor6, true, (speed));
- }
- break;
-
- case 6:
- if ( speed<0)
- {
- Motor_Dir[6]=2;
- if ((RD_LS_04_Direct & 0x04)!=0x04)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now +",Warning Motor on Limit\n");
- return 0;
- }
- context.Send<StubMotorRunResponse>("StubMotorRunRequest" ,Dispenser_Motor7, false, (-speed));
- }
- else
- {
- Motor_Dir[6]=1;
- if ((RD_LS_04_Direct & 0x20)!=0x20)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now +",Warning Motor on Limit\n");
- return 0;
- }
- context.Send<StubMotorRunResponse>("StubMotorRunRequest" ,Dispenser_Motor7, true, (speed));
- }
- break;
-
- case 7:
- if ( speed<0)
- {
- Motor_Dir[7]=2;
-
- if ((RD_LS_04_Direct & 0x100)!=0x100)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now +",Warning Motor on Limit\n");
- return 0;
- }
- context.Send<StubMotorRunResponse>("StubMotorRunRequest" ,Dispenser_Motor8, false, (-speed));
- }
- else
- {
- Motor_Dir[7]=1;
-
- if ((RD_LS_04_Direct & 0x800)!=0x800)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now +",Warning Motor on Limit\n");
- return 0;
- }
- context.Send<StubMotorRunResponse>("StubMotorRunRequest" ,Dispenser_Motor8, true, (speed));
- }
- break;
-
- default:
- break;
-
- }
- context.AppendToFile(Dispenser_Fname,",Run," +speed+","+DateTime.Now +"\n" );
-
- return 1;
-}
-
-
- Int32 Valve_3W(Int32 Valve_Value,Int32 Dispenser)
-{
- if ( Valve_Value==1)
- context.Send<StubValveResponse>("StubValveRequest" ,Dispenser_Valve1+Dispenser, 3, true); //3 3Way
- else
- context.Send<StubValveResponse>("StubValveRequest" ,Dispenser_Valve1+Dispenser, 3, false); //3 3Way
-
- context.AppendToFile(Dispenser_Fname,",Dispenser Valve position is, " + Valve_Value+","+DateTime.Now +"\n" );
-
- return 1;
-}
-//---------------------------------------
-
- Int32 Motor_Stop(Int32 Stop_Value,Int32 Dispenser )
-{
- context.Send<StubMotorStopResponse>("StubMotorStopRequest" ,Dispenser_Motor1+Dispenser, Stop_Value);
-
- context.AppendToFile(Dispenser_Fname,",Motor Stop," + Stop_Value+","+DateTime.Now +"\n");
- Motor_Dir[Dispenser]=0;
- return 1;
-}
-
-//---------------------------------------
-
- Int32 Delay_on_second(Int32 Delay,Int32 Dispenser )
-{
-//Int32 temp1;
-Int32 pressure_om_mBAR=0;
- if (Temp_Delay ==0)
- {
- context.AppendToFile(Dispenser_Fname,",DLY, " + Delay +","+DateTime.Now+"\n");
- Temp_Delay = Delay *10 -1;
-// context.Write("A"); //debug
- }
- else
- Temp_Delay--;
-
- if ( LimitSW_Dispenser(Dispenser)==0)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now+",Warning Motor on Limit\n");
- MotorStop(Dispenser);
- Temp_Delay =0; //end delay
-// context.Write("C"); //debug
-
- return 0 ;
- }
-
- pressure_om_mBAR=Calc_mBAR(Dispenser,true);
- if (pressure_om_mBAR > max_pressure_level)
- {
- // MotorStop(Dispenser);
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now +",Warning Pressure too high\n");
- Temp_Delay =0; //end delay
-// context.Write("D"); //debug
-
- return 0;
- }
- if (pressure_om_mBAR < min_pressure_level)
- {
- // MotorStop(Dispenser);
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now +",Warning Pressure too low\n");
- Temp_Delay =0; //end delay
-// context.Write("D"); //debug
-
- return 0;
- }
-
-
- return 1;
-}
-
-Int32 LimitSW_Dispenser(Int32 Dispenser)
-{
-
- if (Dispenser==0)
-
- {
-
-// var response1 = context.Send<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F2_LS_01_Direct);
-
- if (((RD_LS_01_Direct & 0x04)!=0x04) && (Motor_Dir[0]==2))
- return 0;
- else
- if (((RD_LS_01_Direct & 0x20)!=0x20) && (Motor_Dir[0]==1))
- return 0;
- else
- return 1;
- }
-
- if (Dispenser==1)
-
- {
-// var response2 = context.Send<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F2_LS_01_Direct);
- if (((RD_LS_01_Direct & 0x100)!=0x100) && (Motor_Dir[1]==2))
- return 0;
- else
- if (((RD_LS_01_Direct & 0x800)!=0x800) && (Motor_Dir[1]==1))
- return 0;
- else
- return 1;
- }
-
-
- if (Dispenser==2)
-
- {
-
- //var response3 = context.Send<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F2_LS_02_Direct);
- if (((RD_LS_02_Direct & 0x04)!=0x04) && (Motor_Dir[2]==2))
- return 0;
- else
- if (((RD_LS_02_Direct & 0x20)!=0x20) && (Motor_Dir[2]==1))
- return 0;
- else
- return 1;
-
- }
-
- if (Dispenser==3)
-
- {
- var response4 = context.Send<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F2_LS_02_Direct);
- if (((RD_LS_02_Direct & 0x100)!=0x100) && (Motor_Dir[3]==2))
- return 0;
- else
- if (((RD_LS_02_Direct & 0x800)!=0x800) && (Motor_Dir[3]==1))
- return 0;
- else
- return 1;
- }
-
-
-
-
- if (Dispenser==4)
-
- {
-
-// var response1 = context.Send<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F2_LS_01_Direct);
- if (((RD_LS_03_Direct & 0x04)!=0x04) && (Motor_Dir[4]==2))
- return 0;
- else
- if (((RD_LS_03_Direct & 0x20)!=0x20) && (Motor_Dir[4]==1))
- return 0;
- else
- return 1;
- }
-
- if (Dispenser==5)
-
- {
-// var response2 = context.Send<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F2_LS_01_Direct);
- if (((RD_LS_03_Direct & 0x100)!=0x100) && (Motor_Dir[5]==2))
- return 0;
- else
- if (((RD_LS_03_Direct & 0x800)!=0x800) && (Motor_Dir[5]==1))
- return 0;
- else
- return 1;
- }
-
-
- if (Dispenser==6)
-
- {
-
- //var response3 = context.Send<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F2_LS_02_Direct);
- if (((RD_LS_04_Direct & 0x04)!=0x04) && (Motor_Dir[6]==2))
- return 0;
- else
- if (((RD_LS_04_Direct & 0x20)!=0x20) && (Motor_Dir[6]==1))
- return 0;
- else
- return 1;
-
- }
-
- if (Dispenser==7)
-
- {
-// var response4 = context.Send<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F2_LS_02_Direct);
- if (((RD_LS_04_Direct & 0x100)!=0x100) && (Motor_Dir[7]==2))
- return 0;
- else
- if (((RD_LS_04_Direct & 0x800)!=0x800) && (Motor_Dir[7]==1))
- return 0;
- else
- return 1;
- }
-
-
- return 0;
-}
-
-
-Int32 Print_Time()
-{
- context.AppendToFile(Dispenser_Fname,",Time is\t,,"+ DateTime.Now +"\n" );
-
- return 1;
-}
-
-
-
-Int32 Calc_mBAR(Int32 Dispenser, bool save_press)
-{
-Int32 Data;
-Int32 Sense1;
-Int32 temp=0;
-
- Data =A2D_Dispenser[Dispenser];
- if (Data<100)
- temp=-1;
- Data=Data-710;
- if (Data<0)
- Data=0;
-
- Data=Data*(10000+PressureSensorType*1000)/2840; // for -1 to 10 bar Press_Sensor_Type=1 else 0
- Data=Data-1000*PressureSensorType; // for -1 to 10 bar
-
- if (temp==-1) //if SamplingInBits <100 then No pressure sensor exist
- Sense1=-9999 ;
- else
- Sense1=Data ;
- if ( ((msec_index) % (Dispenser_sample_rate)) == 0)
- {
- context.AppendToFile(Dispenser_Fname,"" + Sense1+"\n");
- }
- Dispenser_press[Dispenser]=Sense1;
- return Sense1;
-
- }
-
-
-//--------------------------------
-int open_midtank_valve (Int32 valve_type,Int32 valve_nm) //valve_type=0 is Air ,1 is Ink ; valve_nm 0-7
-{
- SetBit (F3_VALVE_OUT,((valve_type+1)*8)- valve_nm-1, 1);
- return 1;
-
-}
-//--------------------------------
-int close_midtank_valve (Int32 valve_type,Int32 valve_nm) //valve_type=0 is Air ,1 is Ink ; valve_nm 0-7
-{
- SetBit (F3_VALVE_OUT,((valve_type+1)*8)- valve_nm-1, 0);
- return 1;
-}
-//--------------------------------
-Int32 SetBit(Int32 Adr, Int32 BitNo, Int32 Bit)
-{
- Int32 BitMask;
-
- var response = context.Send<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" , F3_VALVE_OUT);
- Int32 RV = (Int32) response.Value & 0xffff;
-
-
- if (Bit == 0x1)
- {
- BitMask = 0x1 << BitNo;
- RV = RV | BitMask;
- context.Send<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_VALVE_OUT , RV);
- }
- else if (Bit == 0x0)
- {
- BitMask = ~(0x1 << BitNo);
- RV = RV & BitMask;
- context.Send<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_VALVE_OUT , RV);
- }
- return 1;
-}
-//----------------------------------
- void MotorStop(Int32 i)
-{
-
-context.Send<StubMotorStopResponse>("StubMotorStopRequest" ,Dispenser_Motor1+i, 2);
-Motor_Dir[i]=0; //0 stop 1- up 2-dn
-
-}
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/Procedures/Loading arm calibration.pproj b/Software/Stubs Collection/Procedures/Read main card EEPROM.pproj
index e1aacdf5d..75baebae5 100644
--- a/Software/Stubs Collection/Procedures/Loading arm calibration.pproj
+++ b/Software/Stubs Collection/Procedures/Read main card EEPROM.pproj
@@ -1 +1 @@
-{"$id":"1","Name":"Loading arm calibration","Description":"This procedure stores the loading arm center according to the current hardware read. it also stores 0 as the number of cycles.","Scripts":{"$id":"2","$values":[{"$id":"3","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Entities;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Program\r\n{\r\n public void OnExecute(IProcedureContext context)\r\n {\r\n\r\n\r\n\t\tProgressRequest progressRequest = new ProgressRequest();\r\n\t\tprogressRequest.Amount = 0xB1;\r\n\t\t//progressRequest.Delay = 1;\r\n\t\r\n\t\tvar response = context.Send<ProgressResponse>(progressRequest);\r\n\t\r\n\t\tprogressRequest.Amount = 0xB2;\r\n\t\tprogressRequest.Delay = 0;\r\n\t\r\n\t\tresponse = context.Send<ProgressResponse>(progressRequest);\r\n\r\n context.AddResult(ResultType.Passed, \"Loading Arm Calibrated\", \"OK\");\r\n\r\n }\r\n}","Name":"Program.csx","IsEntryPoint":true},{"$id":"4","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Entities;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}","Name":"Service.csx","IsEntryPoint":false}]},"Inputs":{"$id":"5","$values":[]},"Variables":{"$id":"6","$values":[]},"ReferenceAssemblies":{"$id":"7","$values":[{"$id":"8","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"9","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"10","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"11","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"12","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"13","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"14","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"15","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"16","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"17","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"18","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"Resources":{"$id":"19","$values":[]},"Dialogs":{"$id":"20","$values":[]},"ID":"68fd5a49-b7ad-4d85-a305-75dc06b35f2f","ApartmentState":"STA"} \ No newline at end of file
+{"$id":"1","Name":"Read main card EEPROM","Visibility":"Public","Description":"Reads the calibration data stored in the main card for backup.","Scripts":{"$id":"2","$values":[{"$id":"3","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Entities;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.PMR.EmbeddedParameters;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\n\r\npublic class Program\r\n{\r\n\tstring[] Main_Card_EEpromAddress = {\r\n\t\"DATA_SIZE\",\r\n\t\"DANCER_0\",\r\n\t\"DANCER_1\",\r\n\t\"DANCER_2\",\r\n\t\"DRYER_CENTER\",\r\n\t\"DRYER_CYCLES\",\r\n\t\"MIDTANK_1_A\",\r\n\t\"MIDTANK_1_B\",\r\n\t\"MIDTANK_2_A\",\r\n\t\"MIDTANK_2_B\",\r\n\t\"MIDTANK_3_A\",\r\n\t\"MIDTANK_3_B\",\r\n\t\"MIDTANK_4_A\",\r\n\t\"MIDTANK_4_B\",\r\n\t\"MIDTANK_5_A\",\r\n\t\"MIDTANK_5_B\",\r\n\t\"MIDTANK_6_A\",\r\n\t\"MIDTANK_6_B\",\r\n\t\"MIDTANK_7_A\",\r\n\t\"MIDTANK_7_B\",\r\n\t\"MIDTANK_8_A\",\r\n\t\"MIDTANK_8_B\",\r\n\t\"WINDER_CALIBRATION\",\r\n\t\"EMBEDDED_VERSION\",\r\n\t\"EEPROM_ALARM_SUPPORT\",\r\n\t\"EEPROM_ORIFICE1_ZERO_VALUE\",\r\n\t\"EEPROM_ORIFICE3_ZERO_VALUE\",\r\n\t\"EEPROM_WASTE_TANK_ZERO_VALUE\",\r\n\t\"EEPROM_PULLER_TENSION_POSITION\",\r\n\t\"EEPROM_WINDER_TENSION_POSITION\",\r\n\t\"EEPROM_INIT_FAILURE_COUNTER\",\r\n\t\"DANCER_3\",\r\n\t\"DANCER_4\",\r\n\t\"EEPROM_PRESSURE_SENSOR_V0_0\",\r\n\t\"EEPROM_PRESSURE_SENSOR_V0_1\",\r\n\t\"EEPROM_DRIER_LOADING_ARM_ANGLE\"};\r\n public void OnExecute(IProcedureContext context)\r\n {\r\n\tstring FileName;\r\n\t\tStubReadEmbeddedVersionRequest stubReadEmbeddedVersionRequest = new StubReadEmbeddedVersionRequest();\r\n\t\tvar response2 = context.Send<StubReadEmbeddedVersionResponse>(stubReadEmbeddedVersionRequest);\r\n\t\r\n\t\tFileName = \"C:/temp/mainEEProm\"+context.ConnectedMachine.SerialNumber+\".csv\";\r\n\t\tcontext.AppendToFile(FileName, \"Address,Name,Data\");\r\n\t for (int i = 1; i < 36; i++)\r\n\t {\r\n\t\t\tStubMainCardEEpromReadRequest stubMainCardEEpromReadRequest = new StubMainCardEEpromReadRequest();\r\n\t\t\tstubMainCardEEpromReadRequest.Address = i;\r\n\t\t\tstubMainCardEEpromReadRequest.Data = 0;\r\n\t\r\n\t\t\tvar response = context.Send<StubMainCardEEpromReadResponse>(stubMainCardEEpromReadRequest);\r\n\t\t\tcontext.AppendToFile(FileName, \"\\r\\n\"+response.Address + \",\" + Main_Card_EEpromAddress[i] +\",\" + response.Data);\r\n\t\t}\t\t\r\n context.AddResult(ResultType.Passed, \"Successfuly read the Main card information\", \"Test passed.\");\r\n }\r\n}","Name":"Program.csx","IsEntryPoint":true},{"$id":"4","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Entities;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}","Name":"Service.csx","IsEntryPoint":false}]},"Inputs":{"$id":"5","$values":[]},"Variables":{"$id":"6","$values":[]},"ReferenceAssemblies":{"$id":"7","$values":[{"$id":"8","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"9","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"10","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"11","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"12","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"13","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"14","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"15","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"16","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"17","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"18","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"Resources":{"$id":"19","$values":[]},"Dialogs":{"$id":"20","$values":[]},"ID":"8f58fb28-4fd5-40c0-a048-fc8b89ace4a9","ApartmentState":"STA"} \ No newline at end of file
diff --git a/Software/Stubs Collection/Procedures/Read main card informatiom.txt b/Software/Stubs Collection/Procedures/Read main card informatiom.txt
deleted file mode 100644
index 1252779df..000000000
--- a/Software/Stubs Collection/Procedures/Read main card informatiom.txt
+++ /dev/null
@@ -1,91 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
-using System.ComponentModel;
-using System.Linq;
-using System.Text;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Drawing;
-using Google.Protobuf;
-using Tango.BL.Entities;
-using Tango.BL.Enumerations;
-using Tango.PMR.Stubs;
-using Tango.PMR.Diagnostics;
-using Tango.PMR.EmbeddedParameters;
-using Tango.FSE.Common.Connection;
-using Tango.FSE.Common.Diagnostics;
-using Tango.FSE.Procedures;
-
-
-private const string JSON_FILE_PATH = "C:/temp/maineeprom.json";
-private const string CSV_FILE_PATH = "C:/temp/maineeprom.csv";
-public class Program
-{
- string[] Main_Card_EEpromAddress = {
- "DATA_SIZE",
- "DANCER_0",
- "DANCER_1",
- "DANCER_2",
- "DRYER_CENTER",
- "DRYER_CYCLES",
- "MIDTANK_1_A",
- "MIDTANK_1_B",
- "MIDTANK_2_A",
- "MIDTANK_2_B",
- "MIDTANK_3_A",
- "MIDTANK_3_B",
- "MIDTANK_4_A",
- "MIDTANK_4_B",
- "MIDTANK_5_A",
- "MIDTANK_5_B",
- "MIDTANK_6_A",
- "MIDTANK_6_B",
- "MIDTANK_7_A",
- "MIDTANK_7_B",
- "MIDTANK_8_A",
- "MIDTANK_8_B",
- "WINDER_CALIBRATION",
- "EMBEDDED_VERSION",
- "EEPROM_ALARM_SUPPORT",
- "EEPROM_ORIFICE1_ZERO_VALUE",
- "EEPROM_ORIFICE3_ZERO_VALUE",
- "EEPROM_WASTE_TANK_ZERO_VALUE",
- "EEPROM_PULLER_TENSION_POSITION",
- "EEPROM_WINDER_TENSION_POSITION",
- "EEPROM_INIT_FAILURE_COUNTER",
- "DANCER_3",
- "DANCER_4",
- "EEPROM_PRESSURE_SENSOR_V0_0",
- "EEPROM_PRESSURE_SENSOR_V0_1",
- "EEPROM_DRIER_LOADING_ARM_ANGLE"};
- public void OnExecute(IProcedureContext context)
- {
- string FileName;
- StubReadEmbeddedVersionRequest stubReadEmbeddedVersionRequest = new StubReadEmbeddedVersionRequest();
- var response2 = context.Send<StubReadEmbeddedVersionResponse>(stubReadEmbeddedVersionRequest);
-
- if ((response2.VerMajor>=1)&&(response2.VerMinor>=5)&&(response2.VerPatch>=2)&&(response2.VerBuild>=2))
- {
- MainCardStoredDataRequest mainCardStoredDataRequest = new MainCardStoredDataRequest();
- var response3 = context.Send<MainCardStoredDataResponse>(mainCardStoredDataRequest);
- FileName - "C:/temp/mainEEProm"+context.ConnectedMachine.SerialNumber+".json";
-
- context.AppendToFile(FileName, "MainCardStoredData: "+ response3);
- }
- else
- {
- context.AppendToFile(CSV_FILE_PATH, "Address,Name,Data");
- for (int i = 1; i < 36; i++)
- {
- StubMainCardEEpromReadRequest stubMainCardEEpromReadRequest = new StubMainCardEEpromReadRequest();
- stubMainCardEEpromReadRequest.Address = i;
- stubMainCardEEpromReadRequest.Data = 0;
-
- var response = context.Send<StubMainCardEEpromReadResponse>(stubMainCardEEpromReadRequest);
- context.AppendToFile(CSV_FILE_PATH, response.Address + "," + Main_Card_EEpromAddress[i] +"," + response.Data);
- }
- }
- context.AddResult(ResultType.Passed, "Successfuly read the Main card information", "Test passed.");
- }
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/Procedures/Read main card information.pproj b/Software/Stubs Collection/Procedures/Read main card information.pproj
deleted file mode 100644
index f17f47e80..000000000
--- a/Software/Stubs Collection/Procedures/Read main card information.pproj
+++ /dev/null
@@ -1 +0,0 @@
-{"$id":"1","Name":"Read main card information","Visibility":"Public","Description":"This procedure reads the stored main card information and put it in a file in C:/temp/maineeprom.* for future use","Scripts":{"$id":"2","$values":[{"$id":"3","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Entities;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.PMR.EmbeddedParameters;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\n\r\nprivate const string JSON_FILE_PATH = \"C:/temp/maineeprom.json\";\r\nprivate const string CSV_FILE_PATH = \"C:/temp/maineeprom.csv\";\r\npublic class Program\r\n{\r\n\tstring[] Main_Card_EEpromAddress = {\r\n\t\"DATA_SIZE\",\r\n\t\"DANCER_0\",\r\n\t\"DANCER_1\",\r\n\t\"DANCER_2\",\r\n\t\"DRYER_CENTER\",\r\n\t\"DRYER_CYCLES\",\r\n\t\"MIDTANK_1_A\",\r\n\t\"MIDTANK_1_B\",\r\n\t\"MIDTANK_2_A\",\r\n\t\"MIDTANK_2_B\",\r\n\t\"MIDTANK_3_A\",\r\n\t\"MIDTANK_3_B\",\r\n\t\"MIDTANK_4_A\",\r\n\t\"MIDTANK_4_B\",\r\n\t\"MIDTANK_5_A\",\r\n\t\"MIDTANK_5_B\",\r\n\t\"MIDTANK_6_A\",\r\n\t\"MIDTANK_6_B\",\r\n\t\"MIDTANK_7_A\",\r\n\t\"MIDTANK_7_B\",\r\n\t\"MIDTANK_8_A\",\r\n\t\"MIDTANK_8_B\",\r\n\t\"WINDER_CALIBRATION\",\r\n\t\"EMBEDDED_VERSION\",\r\n\t\"EEPROM_ALARM_SUPPORT\",\r\n\t\"EEPROM_ORIFICE1_ZERO_VALUE\",\r\n\t\"EEPROM_ORIFICE3_ZERO_VALUE\",\r\n\t\"EEPROM_WASTE_TANK_ZERO_VALUE\",\r\n\t\"EEPROM_PULLER_TENSION_POSITION\",\r\n\t\"EEPROM_WINDER_TENSION_POSITION\",\r\n\t\"EEPROM_INIT_FAILURE_COUNTER\",\r\n\t\"DANCER_3\",\r\n\t\"DANCER_4\",\r\n\t\"EEPROM_PRESSURE_SENSOR_V0_0\",\r\n\t\"EEPROM_PRESSURE_SENSOR_V0_1\",\r\n\t\"EEPROM_DRIER_LOADING_ARM_ANGLE\"};\r\n public void OnExecute(IProcedureContext context)\r\n {\r\n \tstring FileName;\r\n\r\n\t\tStubReadEmbeddedVersionRequest stubReadEmbeddedVersionRequest = new StubReadEmbeddedVersionRequest();\r\n\t\tvar response2 = context.Send<StubReadEmbeddedVersionResponse>(stubReadEmbeddedVersionRequest);\r\n\t\r\n\t\tif ((response2.VerMajor>=1)&&(response2.VerMinor>=5)&&(response2.VerPatch>=2)&&(response2.VerBuild>=2))\r\n\t\t{\r\n\t\t\tMainCardStoredDataRequest mainCardStoredDataRequest = new MainCardStoredDataRequest();\r\n\t\t\tvar response3 = context.Send<MainCardStoredDataResponse>(mainCardStoredDataRequest);\r\n\t\t\t//context.AppendToFile(JSON_FILE_PATH, \"MainCardStoredData: \"+ response3);\r\n\t\t\tFileName = \"C:/temp/mainEEProm_\"+context.ConnectedMachine.SerialNumber+\".json\";\r\n\r\n\t\t\tcontext.AppendToFile(FileName, \"MainCardStoredData: \"+ response3);\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tFileName = \"C:/temp/mainEEProm_\"+context.ConnectedMachine.SerialNumber+\".csv\";\r\n\r\n\t\t\tcontext.AppendToFile(FileName, \"Address,Name,Data\");\r\n\t\t for (int i = 1; i <= 30; i++)\r\n\t\t {\r\n\t\t\t\tStubMainCardEEpromReadRequest stubMainCardEEpromReadRequest = new StubMainCardEEpromReadRequest();\r\n\t\t\t\tstubMainCardEEpromReadRequest.Address = i;\r\n\t\t\t\tstubMainCardEEpromReadRequest.Data = 0;\r\n\t\t\r\n\t\t\t\tvar response = context.Send<StubMainCardEEpromReadResponse>(stubMainCardEEpromReadRequest);\r\n\t\t\t\tcontext.AppendToFile(FileName, \"\\r\\n\"+response.Address + \",\" + Main_Card_EEpromAddress[i] +\",\" + response.Data);\r\n\t\t\t}\t\t\r\n\t\t} \r\n context.AddResult(ResultType.Passed, \"Successfuly read the Main card information\", \"Test passed.\");\r\n }\r\n}","Name":"Program.csx","IsEntryPoint":true},{"$id":"4","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Entities;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}","Name":"Service.csx","IsEntryPoint":false}]},"Inputs":{"$id":"5","$values":[]},"Variables":{"$id":"6","$values":[]},"ReferenceAssemblies":{"$id":"7","$values":[{"$id":"8","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"9","File":"C:\\Windows\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"10","File":"C:\\Windows\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"11","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"12","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"13","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"14","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"15","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"16","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"17","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"18","File":"C:\\Windows\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"},{"$id":"19","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.DataStore.dll","HintType":"Tango.DataStore.IDataStoreItem, Tango.DataStore, Version=2.0.4.1608, Culture=neutral, PublicKeyToken=null"}]},"Resources":{"$id":"20","$values":[]},"Dialogs":{"$id":"21","$values":[]},"ID":"fa8293e8-0db3-4461-a0ed-6d9406d80df1","ApartmentState":"STA"} \ No newline at end of file
diff --git a/Software/Stubs Collection/Procedures/Selection Input.pproj b/Software/Stubs Collection/Procedures/Selection Input.pproj
deleted file mode 100644
index dfe8b2553..000000000
--- a/Software/Stubs Collection/Procedures/Selection Input.pproj
+++ /dev/null
@@ -1 +0,0 @@
-{"$id":"1","Name":"Selection Input","Description":"Selection Input Demonstration","Scripts":{"$id":"2","$values":[{"$id":"3","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Program\r\n{\r\n public void OnExecute(IProcedureContext context)\r\n {\r\n\r\n context.AddResult(ResultType.Passed, \"Selection\", context.GetInput(\"select\"));\r\n\r\n }\r\n}","Name":"Program.csx","IsEntryPoint":true},{"$id":"4","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}","Name":"Service.csx","IsEntryPoint":false}]},"Inputs":{"$id":"5","$values":[{"$id":"6","Key":"select","Type":"Selection","DisplayName":"Parameter 1","Description":"Controls the 1 parameter.","Value":"Value1","SelectionInputs":{"$id":"7","$values":[{"$id":"8","Name":"Value 1 Name","Value":"Value1"},{"$id":"9","Name":"Value 2 Name","Value":"Value2"}]}},{"$id":"10","Key":"param2","Type":"Default","DisplayName":"Parameter 2","Description":"Controls the 2 parameter.","Value":"0","SelectionInputs":{"$id":"11","$values":[]}}]},"ReferenceAssemblies":{"$id":"12","$values":[{"$id":"13","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"14","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"15","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"16","File":"C:\\DATA\\Development\\Tango\\Software\\Visual_Studio\\Build\\FSE\\Debug\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"17","File":"C:\\DATA\\Development\\Tango\\Software\\Visual_Studio\\Build\\FSE\\Debug\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"18","File":"C:\\DATA\\Development\\Tango\\Software\\Visual_Studio\\Build\\FSE\\Debug\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"19","File":"C:\\DATA\\Development\\Tango\\Software\\Visual_Studio\\Build\\FSE\\Debug\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"20","File":"C:\\DATA\\Development\\Tango\\Software\\Visual_Studio\\Build\\FSE\\Debug\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"21","File":"C:\\DATA\\Development\\Tango\\Software\\Visual_Studio\\Build\\FSE\\Debug\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"22","File":"C:\\DATA\\Development\\Tango\\Software\\Visual_Studio\\Build\\FSE\\Debug\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"23","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"Dialogs":{"$id":"24","$values":[]},"ID":"9c8ea90a-47ea-45d8-a5b6-06da13e8ddde","ApartmentState":"STA"} \ No newline at end of file
diff --git a/Software/Stubs Collection/Procedures/Set_Head_Type_With_DB.pproj b/Software/Stubs Collection/Procedures/Set_Head_Type_With_DB.pproj
deleted file mode 100644
index 2a8d146ca..000000000
--- a/Software/Stubs Collection/Procedures/Set_Head_Type_With_DB.pproj
+++ /dev/null
@@ -1 +0,0 @@
-{"$id":"1","Name":"Set_Head_Type","Visibility":"Public","Description":null,"Scripts":{"$id":"2","$values":[{"$id":"3","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Entities;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\nusing System.IO;\r\nusing Tango.FSE.Common.SQL;\r\nusing Tango.PPC.Shared.SQL;\r\nusing Tango.FSE.Common.RemoteActions;\r\n\r\n\r\npublic class Program\r\n{\r\n private IProcedureContext context;\r\n private const Int32 I2C_ID = 3; //MCU_I2C3 \r\n private const Int32 TCA9548A_address = 0xE2;\r\n private const Int32 I2C_Slave_Add = 0xA0; //eeprom address - 32kByte \r\n private int Head_Mux_Channel_ID = 4; //Head MUX channel\r\n private const Int32 SerialNum = 0x01;\r\n\r\n public void OnExecute(IProcedureContext context)\r\n {\r\n this.context = context;\r\n\r\n int headType = context.GetInput<int>(\"headType\"); //0 flate ; 1 Arc\r\n Byte HeadTtpe = (byte)(headType == 0 ? 3 : 4); //3 flate ; 4 Arc\r\n context.WriteLine(HeadTtpe);\r\n\r\n\t\t//Firmware -------------------------------------------------------------------------------------------------------------\r\n context.UpdateProgress(\"Updating machine EEPROM entry...\");\r\n\r\n //enable_all_channel();\r\n enable_channel(Head_Mux_Channel_ID); // Chanel 0-7 => Disp0enser 0-7 \r\n\r\n\r\n adc_write(I2C_Slave_Add, 0x00, HeadTtpe);\r\n context.Sleep(10); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet )\r\n\r\n context.Write(\"\\nPage 0x00 #\");\r\n context.Write(0);\r\n context.Write(\"\\t- The Buffer is: \");\r\n adc_set_for_read_ch(I2C_Slave_Add, 0x00);\r\n //Thread.Sleep(1); //Sleep for 10 milli.\r\n adc_read_ch(I2C_Slave_Add);\r\n\r\n context.Sleep(1000);\r\n\r\n\r\n\t\t//Software -------------------------------------------------------------------------------------------------------------\r\n context.UpdateProgress(\"Updating machine global and local database entries...\");\r\n\r\n //Create the SQL command and direct it to affect both the local machine's database and the global Twine's database.\r\n IRemoteSqlProvider sql = context.GetService<IRemoteSqlProvider>();\r\n RemoteSqlCommand command = new RemoteSqlCommand();\r\n command.Mode = RemoteSqlCommandMode.Both;\r\n command.SQL = \"UPDATE MACHINES SET HEAD_TYPE = \" + headType + \" WHERE SERIAL_NUMBER = '\" + context.ConnectedMachine.SerialNumber + \"'\";\r\n RemoteSqlCommandResult result = sql.ExecuteSqlCommand(command);\r\n\r\n if (result.HasGlobalError || result.HasLocalError)\r\n {\r\n context.Fail(\"Could not update the machine's global or local entry.\\n\" + result.GlobalError + \"\\n\" + result.LocalError);\r\n }\r\n\r\n context.ShowInfo(\"The machine head type was updated successfully. Changes will take effect after system restart.\");\r\n }\r\n\r\n private int enable_channel(int Channel_ID)\r\n {\r\n uint Const_temp = 0x01;\r\n\r\n StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();\r\n stubI2CWriteBytesRequest.I2CId = I2C_ID;\r\n stubI2CWriteBytesRequest.SlaveAddress = TCA9548A_address;\r\n\r\n Const_temp = Const_temp << Channel_ID;\r\n stubI2CWriteBytesRequest.BytesTWrite.Add(Const_temp);\r\n\r\n var response = context.Send<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);\r\n\r\n return 1;\r\n }\r\n\r\n\r\n private int adc_write(uint I2C_Slave_Add, uint Page, Byte HeadTtpe)\r\n {\r\n StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();\r\n stubI2CWriteBytesRequest.I2CId = I2C_ID;\r\n stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;\r\n\r\n UInt32 uInt32 = new UInt32();\r\n stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write\r\n stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write\r\n //--------------------------------------------------------------\r\n\r\n stubI2CWriteBytesRequest.BytesTWrite.Add(SerialNum);//S/N\r\n //stubI2CWriteBytesRequest.BytesTWrite.Add(0x03);//HEAD_TYPE_FLAT\r\n stubI2CWriteBytesRequest.BytesTWrite.Add(HeadTtpe);//HEAD_TYPE_ARC\r\n\r\n var response = context.Send<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);\r\n\r\n return 1;\r\n }\r\n\r\n private int adc_set_for_read_ch(uint I2C_Slave_Add, uint Page)\r\n {\r\n StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();\r\n stubI2CWriteBytesRequest.I2CId = I2C_ID;\r\n stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;\r\n\r\n\r\n UInt32 uInt32 = new UInt32();\r\n stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write\r\n stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write\r\n\r\n var response = context.Send<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);\r\n\r\n return 1;\r\n }\r\n\r\n private int adc_read_ch(uint I2C_Slave_Add)\r\n {\r\n StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();\r\n stubI2CReadBytesRequest.I2CId = I2C_ID;\r\n stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add + 1;\r\n stubI2CReadBytesRequest.NumberOfBytesToRead = 10; // Number of bytes to read\r\n\r\n var response1 = context.Send<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);\r\n uint temph = 0;\r\n\r\n for (int i = 0; i < stubI2CReadBytesRequest.NumberOfBytesToRead; i++)\r\n {\r\n temph = response1.ReadBytes[i];\r\n context.WriteHex(temph, 2);\r\n }\r\n\r\n return 1;\r\n }\r\n\r\n}\r\n","Name":"Program.csx","IsEntryPoint":true},{"$id":"4","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Entities;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}","Name":"Service.csx","IsEntryPoint":false}]},"Inputs":{"$id":"5","$values":[{"$id":"6","Type":"Selection","SelectionInputs":{"$id":"7","$values":[{"$id":"8","Name":"Flat","Value":"0"},{"$id":"9","Name":"Arc","Value":"1"}]},"DisplayName":"Head Type","Description":"Select the new machine head type","Key":"headType","Value":"0"}]},"Variables":{"$id":"10","$values":[]},"ReferenceAssemblies":{"$id":"11","$values":[{"$id":"12","File":"Tango.BL.dll","HintType":null},{"$id":"13","File":"Tango.FSE.Common.dll","HintType":null},{"$id":"14","File":"Tango.FSE.Procedures.dll","HintType":null},{"$id":"15","File":"Tango.Integration.dll","HintType":null},{"$id":"16","File":"Tango.PMR.dll","HintType":null},{"$id":"17","File":"Tango.Transport.dll","HintType":null},{"$id":"18","File":"mscorlib.dll","HintType":null},{"$id":"19","File":"System.Core.dll","HintType":null},{"$id":"20","File":"System.Drawing.dll","HintType":null},{"$id":"21","File":"System.Windows.Forms.dll","HintType":null},{"$id":"22","File":"Tango.PPC.Shared.dll","HintType":null}]},"Resources":{"$id":"23","$values":[]},"Dialogs":{"$id":"24","$values":[]},"ID":"85cac11e-4694-43f9-adfb-b010967ff32b","ApartmentState":"STA"} \ No newline at end of file
diff --git a/Software/Stubs Collection/Procedures/WHS Loop Disable.pproj b/Software/Stubs Collection/Procedures/WHS Loop Disable.pproj
deleted file mode 100644
index 8632288f2..000000000
--- a/Software/Stubs Collection/Procedures/WHS Loop Disable.pproj
+++ /dev/null
@@ -1 +0,0 @@
-{"$id":"1","Name":"WHS Loop Disable","Description":"This procedure controls the waste head flow control loop. Set the loop parameter to false to disable, to true to enable.","Scripts":{"$id":"2","$values":[{"$id":"3","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Program\r\n{\r\n public void OnExecute(IProcedureContext context)\r\n {\r\n\r\n\t\tint ControlLoopEnable = context.GetInput<int>(\"WasteControlLoop\");\r\n\t\t\r\n\t\tProgressRequest progressRequest = new ProgressRequest();\r\n\t\tprogressRequest.Amount = 0x3e8;\r\n\t\tprogressRequest.Delay = ControlLoopEnable*0x1000+2700;\r\n\r\n\t\tvar response = context.Send<ProgressResponse>(progressRequest);\r\n context.AddResult(ResultType.Passed, \"Success\", response.Progress);\r\n\r\n }\r\n}","Name":"Program.csx","IsEntryPoint":true},{"$id":"4","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}","Name":"Service.csx","IsEntryPoint":false}]},"Inputs":{"$id":"5","$values":[{"$id":"6","Type":"Selection","SelectionInputs":{"$id":"7","$values":[{"$id":"8","Name":"Enable WHS Control","Value":"1"},{"$id":"9","Name":"Disable WHS Control","Value":"0"}]},"DisplayName":"Waste Control Loop Enable","Description":"Waste Control Loop Enable/Disable","Key":"WasteControlLoop","Value":"0"}]},"Variables":{"$id":"10","$values":[]},"ReferenceAssemblies":{"$id":"11","$values":[{"$id":"12","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"13","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"14","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"15","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"16","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"17","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"18","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"19","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"20","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"21","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"22","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"Resources":{"$id":"23","$values":[]},"Dialogs":{"$id":"24","$values":[]},"ID":"eb9234b2-2aa0-4bf2-bfe4-dcc8de49bda6","ApartmentState":"MTA"} \ No newline at end of file
diff --git a/Software/Stubs Collection/Procedures/WHS loopp control.txt b/Software/Stubs Collection/Procedures/WHS loopp control.txt
deleted file mode 100644
index 3638af2a5..000000000
--- a/Software/Stubs Collection/Procedures/WHS loopp control.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
-using System.ComponentModel;
-using System.Linq;
-using System.Text;
-using System.Threading;
-using System.Threading.Tasks;
-using Google.Protobuf;
-using Tango.BL.Enumerations;
-using Tango.PMR.Stubs;
-using Tango.PMR.Diagnostics;
-using Tango.FSE.Common.Diagnostics;
-using Tango.FSE.Procedures;
-
-public class Program
-{
- public void OnExecute(IProcedureContext context)
- {
-
- int ControlLoopEnable = context.GetInput<int>("WasteControlLoop");
-
- ProgressRequest progressRequest = new ProgressRequest();
- progressRequest.Amount = 0x3e8;
- progressRequest.Delay = ControlLoopEnable*0x1000+2700;
-
- var response = context.Send<ProgressResponse>(progressRequest);
- context.AddResult(ResultType.Passed, "Success", response.Progress);
-
- }
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/Procedures/WHS_waste_Tank_Calibration_Save_V0.pproj b/Software/Stubs Collection/Procedures/WHS_waste_Tank_Calibration_Save_V0.pproj
deleted file mode 100644
index 3bd4b1f84..000000000
--- a/Software/Stubs Collection/Procedures/WHS_waste_Tank_Calibration_Save_V0.pproj
+++ /dev/null
@@ -1,107 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
-using System.ComponentModel;
-using System.Linq;
-using System.Text;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Drawing;
-using Google.Protobuf;
-using Tango.BL.Entities;
-using Tango.BL.Enumerations;
-using Tango.PMR.Stubs;
-using Tango.PMR.Diagnostics;
-using Tango.FSE.Common.Connection;
-using Tango.FSE.Common.Diagnostics;
-using Tango.FSE.Procedures;
-
-
-public class Program
-{
- double V0_default_ml = 8.7433;
-
- public void OnExecute(IProcedureContext context)
- {
-
- var response1 = context.RequestUserInputFor<String>("Warning - you are going to change the value of Vo in the eeprom !!!\nPlease Enter Password to confirme:","");
- if (response1=="Aa123456")
- {
- context.WriteLine(response1);
-
- //Write_0_Vo_in_ml_to_eeprom
- context.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 = context.Send<StubWhsEEpromResponse>(stubWhsEEpromRequest);
-
- //wait_10mSec
- context.WriteLine("\nwait_10mSec");
- Thread.Sleep(100); //Sleep for 10 milli.
-
- //Read_Vo_in_ml_from_eeprom & verify it is 0
- context.WriteLine("\nRead_Vo_in_ml_from_eeprom & verify it is 0");
- stubWhsEEpromRequest.BurnRequest = false; //write
- stubWhsEEpromRequest.WhsEEprom = stubWhsEEpromData;
- var response2 = context.Send<StubWhsEEpromResponse>(stubWhsEEpromRequest);
-
- //Read_Vo_in_mV
- context.WriteLine("\nRead_Vo_in_mV");
- var response3 = context.Send<ProgressResponse>("ProgressRequest" ,0x3EC, 0x01);
- //Print_Vo_in_mV
- context.WriteLine(response3.Progress);
-
- //check validity
- context.WriteLine("\ncheck validity");
- if((response3.Progress <= 800) || (response3.Progress >=1200))
- {
- response3.Progress = 1076; //default
- context.Write("\nERROR ------ Vreading value outside the defined range !!! ------");
- context.AddResult(ResultType.Failed , "Error", "ERROR ------ Vreading value outside the defined range !!! ------");
- }
- else
- {
- //calculate_V0_in_ml
- context.WriteLine("\ncalculate_V0_in_ml");
- V0_default_ml = V0_default_ml * response3.Progress;
-
- //print_Vo_in_ml
- context.WriteLine("\nprint_Vo_in_ml");
- context.WriteLine(V0_default_ml);
- context.WriteLine("");
-
- //Write_Vo_in_ml_to_eeprom
- context.WriteLine("\nWrite_Vo_in_ml_to_eeprom");
- stubWhsEEpromRequest.BurnRequest = true; //write
-
- stubWhsEEpromData.Orifice1Flow = V0_default_ml;
- stubWhsEEpromRequest.WhsEEprom = stubWhsEEpromData;
- var response4 = context.Send<StubWhsEEpromResponse>(stubWhsEEpromRequest);
-
- //wait_10mSec
- context.WriteLine("\nwait_10mSec");
- Thread.Sleep(100); //Sleep for 10 milli.
-
- //Read_Vo_in_ml_from_eeprom
- context.WriteLine("\nRead_Vo_in_ml_from_eeprom");
- stubWhsEEpromRequest.BurnRequest = false; //write
- stubWhsEEpromRequest.WhsEEprom = stubWhsEEpromData;
- var response5 = context.Send<StubWhsEEpromResponse>(stubWhsEEpromRequest);
-
- //Check if we read the correct value
- context.WriteLine("\nVerify that we read the correct value of Orifice1Flow!!");
- context.AddResult(ResultType.Passed , "Pass", "Calibration Pass.");
-
- }
- }
- else
- {
- context.AddResult(ResultType.Failed , "Error", "Password Fail.");
- }
- context.WriteLine("\n -- END OF SCRIPT -- ");
- }
-}
-
diff --git a/Software/Stubs Collection/Procedures/WHS_waste_Tank_Calibration_Save_V0.txt b/Software/Stubs Collection/Procedures/WHS_waste_Tank_Calibration_Save_V0.txt
deleted file mode 100644
index 3bd4b1f84..000000000
--- a/Software/Stubs Collection/Procedures/WHS_waste_Tank_Calibration_Save_V0.txt
+++ /dev/null
@@ -1,107 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
-using System.ComponentModel;
-using System.Linq;
-using System.Text;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Drawing;
-using Google.Protobuf;
-using Tango.BL.Entities;
-using Tango.BL.Enumerations;
-using Tango.PMR.Stubs;
-using Tango.PMR.Diagnostics;
-using Tango.FSE.Common.Connection;
-using Tango.FSE.Common.Diagnostics;
-using Tango.FSE.Procedures;
-
-
-public class Program
-{
- double V0_default_ml = 8.7433;
-
- public void OnExecute(IProcedureContext context)
- {
-
- var response1 = context.RequestUserInputFor<String>("Warning - you are going to change the value of Vo in the eeprom !!!\nPlease Enter Password to confirme:","");
- if (response1=="Aa123456")
- {
- context.WriteLine(response1);
-
- //Write_0_Vo_in_ml_to_eeprom
- context.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 = context.Send<StubWhsEEpromResponse>(stubWhsEEpromRequest);
-
- //wait_10mSec
- context.WriteLine("\nwait_10mSec");
- Thread.Sleep(100); //Sleep for 10 milli.
-
- //Read_Vo_in_ml_from_eeprom & verify it is 0
- context.WriteLine("\nRead_Vo_in_ml_from_eeprom & verify it is 0");
- stubWhsEEpromRequest.BurnRequest = false; //write
- stubWhsEEpromRequest.WhsEEprom = stubWhsEEpromData;
- var response2 = context.Send<StubWhsEEpromResponse>(stubWhsEEpromRequest);
-
- //Read_Vo_in_mV
- context.WriteLine("\nRead_Vo_in_mV");
- var response3 = context.Send<ProgressResponse>("ProgressRequest" ,0x3EC, 0x01);
- //Print_Vo_in_mV
- context.WriteLine(response3.Progress);
-
- //check validity
- context.WriteLine("\ncheck validity");
- if((response3.Progress <= 800) || (response3.Progress >=1200))
- {
- response3.Progress = 1076; //default
- context.Write("\nERROR ------ Vreading value outside the defined range !!! ------");
- context.AddResult(ResultType.Failed , "Error", "ERROR ------ Vreading value outside the defined range !!! ------");
- }
- else
- {
- //calculate_V0_in_ml
- context.WriteLine("\ncalculate_V0_in_ml");
- V0_default_ml = V0_default_ml * response3.Progress;
-
- //print_Vo_in_ml
- context.WriteLine("\nprint_Vo_in_ml");
- context.WriteLine(V0_default_ml);
- context.WriteLine("");
-
- //Write_Vo_in_ml_to_eeprom
- context.WriteLine("\nWrite_Vo_in_ml_to_eeprom");
- stubWhsEEpromRequest.BurnRequest = true; //write
-
- stubWhsEEpromData.Orifice1Flow = V0_default_ml;
- stubWhsEEpromRequest.WhsEEprom = stubWhsEEpromData;
- var response4 = context.Send<StubWhsEEpromResponse>(stubWhsEEpromRequest);
-
- //wait_10mSec
- context.WriteLine("\nwait_10mSec");
- Thread.Sleep(100); //Sleep for 10 milli.
-
- //Read_Vo_in_ml_from_eeprom
- context.WriteLine("\nRead_Vo_in_ml_from_eeprom");
- stubWhsEEpromRequest.BurnRequest = false; //write
- stubWhsEEpromRequest.WhsEEprom = stubWhsEEpromData;
- var response5 = context.Send<StubWhsEEpromResponse>(stubWhsEEpromRequest);
-
- //Check if we read the correct value
- context.WriteLine("\nVerify that we read the correct value of Orifice1Flow!!");
- context.AddResult(ResultType.Passed , "Pass", "Calibration Pass.");
-
- }
- }
- else
- {
- context.AddResult(ResultType.Failed , "Error", "Password Fail.");
- }
- context.WriteLine("\n -- END OF SCRIPT -- ");
- }
-}
-
diff --git a/Software/Stubs Collection/Procedures/Waste Tank Calibration.pproj b/Software/Stubs Collection/Procedures/Waste Tank Calibration.pproj
deleted file mode 100644
index 6667cdf67..000000000
--- a/Software/Stubs Collection/Procedures/Waste Tank Calibration.pproj
+++ /dev/null
@@ -1 +0,0 @@
-{"$id":"1","Name":"Waste Tank Calibration","Description":"This procedure reads the values of waste tank volume when the tank is empty, and stores it in the WHS card EEPROM","Scripts":{"$id":"2","$values":[{"$id":"3","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Entities;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\n\r\npublic class Program\r\n{\r\n\tdouble V0_default_ml = 8.7433;\r\n\r\n public void OnExecute(IProcedureContext context)\r\n {\r\n \r\n\tvar response1 = context.RequestUserInputFor<String>(\"Warning - you are going to change the value of Vo in the eeprom !!!\\nPlease Enter Password to confirme:\",\"\");\r\n\tif (response1==\"Aa123456\")\r\n\t{\r\n\t\tcontext.WriteLine(response1);\r\n\t\t\r\n\t\t//Write_0_Vo_in_ml_to_eeprom\r\n\t\tcontext.WriteLine(\"\\nWrite_0_Vo_in_ml_to_eeprom\");\t\r\n\t\tStubWhsEEpromRequest stubWhsEEpromRequest = new StubWhsEEpromRequest();\r\n\t\tstubWhsEEpromRequest.BurnRequest = true; //write\r\n\t\tStubWhsEEpromData stubWhsEEpromData = new StubWhsEEpromData();\r\n\t\tstubWhsEEpromData.Orifice1Flow = 0;\r\n\t\tstubWhsEEpromRequest.WhsEEprom = stubWhsEEpromData;\r\n\t\tvar response = context.Send<StubWhsEEpromResponse>(stubWhsEEpromRequest);\r\n\t\t\t\t\r\n\t\t//wait_10mSec\r\n\t\tcontext.WriteLine(\"\\nwait_10mSec\");\t\r\n\t\tThread.Sleep(100); //Sleep for 10 milli.\r\n\t\t\r\n\t\t//Read_Vo_in_ml_from_eeprom\t& verify it is 0\r\n\t\tcontext.WriteLine(\"\\nRead_Vo_in_ml_from_eeprom\t& verify it is 0\");\r\n\t\tstubWhsEEpromRequest.BurnRequest = false; //write\r\n\t\tstubWhsEEpromRequest.WhsEEprom = stubWhsEEpromData;\r\n\t\tvar response2 = context.Send<StubWhsEEpromResponse>(stubWhsEEpromRequest);\r\n\t\t\r\n\t\t//Read_Vo_in_mV\r\n\t\tcontext.WriteLine(\"\\nRead_Vo_in_mV\");\r\n\t\tvar response3 = context.Send<ProgressResponse>(\"ProgressRequest\" ,0x3EC, 0x01);\r\n\t\t//Print_Vo_in_mV\r\n\t\tcontext.WriteLine(response3.Progress);\r\n\t\t\r\n\t\t//check validity\r\n\t\tcontext.WriteLine(\"\\ncheck validity\");\r\n\t\t if((response3.Progress <= 800) || (response3.Progress >=1200))\r\n\t\t {\r\n\t\t \tresponse3.Progress = 1076; //default\r\n\t\t \tcontext.Write(\"\\nERROR ------ Vreading value outside the defined range !!! ------\");\r\n\t\t \t context.AddResult(ResultType.Failed , \"Error\", \"ERROR ------ Vreading value outside the defined range !!! ------\");\r\n\t\t }\r\n\t\telse\r\n\t\t{\t\t\t\r\n\t\t\t//calculate_V0_in_ml\r\n\t\t\tcontext.WriteLine(\"\\ncalculate_V0_in_ml\");\r\n\t\t\tV0_default_ml = V0_default_ml * response3.Progress;\r\n\t\t\t\r\n\t\t\t//print_Vo_in_ml\r\n\t\t\tcontext.WriteLine(\"\\nprint_Vo_in_ml\");\r\n\t\t\tcontext.WriteLine(V0_default_ml);\r\n\t\t\tcontext.WriteLine(\"\");\r\n\t\t\t\r\n\t\t\t//Write_Vo_in_ml_to_eeprom\r\n\t\t\tcontext.WriteLine(\"\\nWrite_Vo_in_ml_to_eeprom\");\r\n\t\t\tstubWhsEEpromRequest.BurnRequest = true; //write\r\n\t\r\n\t\t\tstubWhsEEpromData.Orifice1Flow = V0_default_ml;\r\n\t\t\tstubWhsEEpromRequest.WhsEEprom = stubWhsEEpromData;\r\n\t\t\tvar response4 = context.Send<StubWhsEEpromResponse>(stubWhsEEpromRequest);\r\n\t\t\t\t\r\n\t\t\t//wait_10mSec\r\n\t\t\tcontext.WriteLine(\"\\nwait_10mSec\");\t\r\n\t\t\t Thread.Sleep(100); //Sleep for 10 milli.\r\n\t\t\t \t\t\r\n\t\t\t //Read_Vo_in_ml_from_eeprom\r\n\t\t\tcontext.WriteLine(\"\\nRead_Vo_in_ml_from_eeprom\");\r\n\t\t\tstubWhsEEpromRequest.BurnRequest = false; //write\r\n\t\t\tstubWhsEEpromRequest.WhsEEprom = stubWhsEEpromData;\r\n\t\t\tvar response5 = context.Send<StubWhsEEpromResponse>(stubWhsEEpromRequest);\r\n\t\t\t\r\n\t\t\t//Check if we read the correct value\r\n\t\t\tcontext.WriteLine(\"\\nVerify that we read the correct value of Orifice1Flow!!\");\r\n\t\t\t context.AddResult(ResultType.Passed , \"Pass\", \"Calibration Pass.\");\r\n\r\n\t\t\t}\r\n\t}\r\n\t\telse\r\n \t{\r\n\t\t\tcontext.AddResult(ResultType.Failed , \"Error\", \"Password Fail.\");\r\n\t\t}\r\n\t\tcontext.WriteLine(\"\\n -- END OF SCRIPT -- \");\r\n }\r\n}\r\n\r\n","Name":"Program.csx","IsEntryPoint":true},{"$id":"4","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Entities;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}","Name":"Service.csx","IsEntryPoint":false}]},"Inputs":{"$id":"5","$values":[]},"Variables":{"$id":"6","$values":[]},"ReferenceAssemblies":{"$id":"7","$values":[{"$id":"8","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"9","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"10","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"11","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"12","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"13","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"14","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"15","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"16","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"17","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"18","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"Resources":{"$id":"19","$values":[]},"Dialogs":{"$id":"20","$values":[]},"ID":"a0ac651d-3e18-4b62-a761-f55425b4129f","ApartmentState":"STA"} \ No newline at end of file
diff --git a/Software/Stubs Collection/Procedures/Winder Calibration.pproj b/Software/Stubs Collection/Procedures/Winder Calibration.pproj
deleted file mode 100644
index 88b3a0cd1..000000000
--- a/Software/Stubs Collection/Procedures/Winder Calibration.pproj
+++ /dev/null
@@ -1 +0,0 @@
-{"$id":"1","Name":"Winder Calibration","Visibility":"Public","Description":"This procedure lets the FSE to set the correct location for the winder arm.","Scripts":{"$id":"2","$values":[{"$id":"3","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.IO;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.PMR.IO;\r\nusing Tango.FSE.Procedures;\r\nusing System.IO;\r\nusing System.Windows.Forms;\r\n\r\n\r\n\r\npublic class Program\r\n{\r\n public void OnExecute(IProcedureContext context)\r\n {\r\n\t\tuint SCREW_MOTOR = 14;\r\n\t\tint offset = 200;\r\n\t\tint Calibration_Offset = 0;\r\n\t\tbool Located = false;\r\n\t\tstring box_msg = \"Keep your hands away from the winder\";\r\n\t\tMessageBox.Show(box_msg);\r\n\t\t\r\n\t\tMotorHomingRequest motorHomingRequest = new MotorHomingRequest();\r\n\t\tmotorHomingRequest.MotorType = Tango.PMR.Hardware.HardwareMotorType.MotoScrew;\r\n\t\tmotorHomingRequest.Speed = 800;\r\n\t\tmotorHomingRequest.Direction = Tango.PMR.Diagnostics.MotorDirection.Forward;\r\n\r\n\t\tProgressRequest progressRequest = new ProgressRequest();\r\n\t\tprogressRequest.Amount = 0xB21;\r\n\t\tprogressRequest.Delay = 500;\r\n\t\tcontext.Send<ProgressResponse>(progressRequest);\r\n\t\t\r\n \toffset = 200;//context.GetInput<int>(\"Initial Offset\");\r\n\r\n\t\tStubMotorMovRequest stubMotorMovRequest = new StubMotorMovRequest();\r\n\t\tstubMotorMovRequest.MotorID = SCREW_MOTOR;\r\n\t\tstubMotorMovRequest.Direction = false;\r\n\t\twhile (Located == false)\r\n\t\t{\r\n\t\t\tcontext.Send<MotorHomingResponse>(motorHomingRequest);\r\n\t\t\tThread.Sleep(1000);\r\n\t\t\tstubMotorMovRequest.Position = (uint)((offset + Calibration_Offset)*16);\r\n\t\t\t//stubMotorMovRequest.Direction = \r\n\t\t\tcontext.Send<StubMotorMovResponse>(stubMotorMovRequest);\r\n\t\t\tThread.Sleep(1000);\r\n\r\n \tLocated =\tcontext.RequestUserInputFor<bool>(Located,\"Is Winder located well?\",\"Please fill in the form\");\r\n\r\n\t\t\t\r\n\t\t\tif (Located == false)\r\n\t\t\t{\r\n\t\t\t\tCalibration_Offset = context.RequestUserInputFor<int>(Calibration_Offset,\"Enter new value for calibration offset\",\" (15 steps = 1mm. minus - toward the machine\");\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tprogressRequest.Amount = 0xB20;\r\n\t\tprogressRequest.Delay = Calibration_Offset;\r\n\t\tcontext.Send<ProgressResponse>(progressRequest);\r\n\t\tbox_msg = \"Writing new winder offset \" + Calibration_Offset+ \" to the main card EEPROM\";\r\n\t\t\r\n\t\tprogressRequest.Amount = 0xB21;\r\n\t\tprogressRequest.Delay = 1000000;\r\n\t\tcontext.Send<ProgressResponse>(progressRequest);\r\n\r\n\t\tMessageBox.Show(box_msg);\r\n\r\n }\r\n}","Name":"Program.csx","IsEntryPoint":true},{"$id":"4","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}","Name":"Service.csx","IsEntryPoint":false}]},"Inputs":{"$id":"5","$values":[]},"Variables":{"$id":"6","$values":[]},"ReferenceAssemblies":{"$id":"7","$values":[{"$id":"8","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"9","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"10","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"11","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"12","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"13","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"14","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"15","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"16","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"17","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"18","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"Resources":{"$id":"19","$values":[]},"Dialogs":{"$id":"20","$values":[]},"ID":"2bd29884-5eb9-4d27-be4e-6cfa31dc9f66","ApartmentState":"MTA"} \ No newline at end of file
diff --git a/Software/Stubs Collection/Procedures/Winder Calibration.txt b/Software/Stubs Collection/Procedures/Winder Calibration.txt
deleted file mode 100644
index b73f25e1e..000000000
--- a/Software/Stubs Collection/Procedures/Winder Calibration.txt
+++ /dev/null
@@ -1,78 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
-using System.ComponentModel;
-using System.Linq;
-using System.Text;
-using System.Threading;
-using System.Threading.Tasks;
-using System.IO;
-using Google.Protobuf;
-using Tango.BL.Enumerations;
-using Tango.PMR.Stubs;
-using Tango.PMR.Diagnostics;
-using Tango.FSE.Common.Diagnostics;
-using Tango.PMR.IO;
-using Tango.FSE.Procedures;
-using System.IO;
-using System.Windows.Forms;
-
-
-
-public class Program
-{
- public void OnExecute(IProcedureContext context)
- {
- uint SCREW_MOTOR = 14;
- int offset = 200;
- int Calibration_Offset = 0;
- bool Located = false;
- string box_msg = "Keep your hands away from the winder";
- MessageBox.Show(box_msg);
-
- MotorHomingRequest motorHomingRequest = new MotorHomingRequest();
- motorHomingRequest.MotorType = Tango.PMR.Hardware.HardwareMotorType.MotoScrew;
- motorHomingRequest.Speed = 800;
- motorHomingRequest.Direction = Tango.PMR.Diagnostics.MotorDirection.Forward;
-
- ProgressRequest progressRequest = new ProgressRequest();
- progressRequest.Amount = 0xB21;
- progressRequest.Delay = 500;
- context.Send<ProgressResponse>(progressRequest);
-
- offset = 200;//context.GetInput<int>("Initial Offset");
-
- StubMotorMovRequest stubMotorMovRequest = new StubMotorMovRequest();
- stubMotorMovRequest.MotorID = SCREW_MOTOR;
- stubMotorMovRequest.Direction = false;
- while (Located == false)
- {
- context.Send<MotorHomingResponse>(motorHomingRequest);
- Thread.Sleep(2000);
- stubMotorMovRequest.Position = (uint)((offset + Calibration_Offset)*16);
- //stubMotorMovRequest.Direction =
- context.Send<StubMotorMovResponse>(stubMotorMovRequest);
- Thread.Sleep(1000);
-
- Located = context.RequestUserInputFor<bool>(Located,"Is Winder located well?","Please fill in the form");
-
-
- if (Located == false)
- {
- Calibration_Offset = context.RequestUserInputFor<int>(Calibration_Offset,"Enter new value for calibration offset"," (15 steps = 1mm. minus - toward the machine");
- }
- }
-
- progressRequest.Amount = 0xB20;
- progressRequest.Delay = Calibration_Offset;
- context.Send<ProgressResponse>(progressRequest);
- box_msg = "Writing new winder offset " + Calibration_Offset+ " to the main card EEPROM";
-
- progressRequest.Amount = 0xB21;
- progressRequest.Delay = 1000000;
- context.Send<ProgressResponse>(progressRequest);
-
- MessageBox.Show(box_msg);
-
- }
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/Procedures/Write main card information.pproj b/Software/Stubs Collection/Procedures/Write main card information.pproj
deleted file mode 100644
index 915d47e27..000000000
--- a/Software/Stubs Collection/Procedures/Write main card information.pproj
+++ /dev/null
@@ -1 +0,0 @@
-{"$id":"1","Name":"Write main card information","Visibility":"Public","Description":"This procedure reads the stored main card information and put it in a file in C:/temp/maineeprom.* for future use","Scripts":{"$id":"2","$values":[{"$id":"3","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Entities;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.PMR.EmbeddedParameters;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\n\r\npublic class Program\r\n{\r\n\tpublic void OnExecute(IProcedureContext context)\r\n {\r\n \tstring FileName;\r\n\r\n\t\tStubReadEmbeddedVersionRequest stubReadEmbeddedVersionRequest = new StubReadEmbeddedVersionRequest();\r\n\t\tvar response2 = context.Send<StubReadEmbeddedVersionResponse>(stubReadEmbeddedVersionRequest);\r\n\t\r\n\t\tif ((response2.VerMajor>=1)&&(response2.VerMinor>=5)&&(response2.VerPatch>=2)&&(response2.VerBuild>=2))\r\n\t\t{\r\n\t\t\t/*MainCardStoredDataRequest mainCardStoredDataRequest = new MainCardStoredDataRequest();\r\n\t\t\tvar response3 = context.Send<MainCardStoredDataResponse>(mainCardStoredDataRequest);\r\n\t\t\t//context.AppendToFile(JSON_FILE_PATH, \"MainCardStoredData: \"+ response3);\r\n\t\t\tFileName = \"C:/temp/mainEEProm_\"+context.ConnectedMachine.SerialNumber+\".json\";\r\n\r\n\t\t\tcontext.AppendToFile(FileName, \"MainCardStoredData: \"+ response3);*/\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tFileName = \"c:\\\\temp\\\\mainEEProm10104.csv\";//\"C:/temp/mainEEProm_\"+context.ConnectedMachine.SerialNumber+\".csv\";\r\n\t\t\tstring line; \r\n\t\t\tstring[] Table1 = new string [4];\r\n\t\t\tint i;\r\n\t\t\t\r\n\t\t\t// Read the file and display it line by line. \r\n\t\t\r\n\t\t\tcontext.Write(\"\\r\\nfile name \" + FileName);\t\r\n\t\t\tSystem.IO.StreamReader file = \t\tnew System.IO.StreamReader(FileName);\r\n\t\t\r\n\t\t\tline = file.ReadLine();\r\n\t\t\tcontext.Write(\"\\r\\n line \" + line);\t\r\n\t\t\tline = file.ReadLine();\r\n\t\t\tcontext.Write(\"\\r\\n line \" + line);\t\r\n\t\t\tint j=0;\r\n\t\t\twhile(line != null) \r\n\t\t\t{ \r\n\t\t\t\tj++;\r\n\t\t\t\t//stubManager.Write(\"\\r\\n line \" + line + \" null? \" + (line==null));\t\r\n\t\t\t\tstring[] words = line.Split(',');\r\n\t\t\t\ti=0;\r\n\t\t\t\tforeach (var word in words)\r\n\t\t\t\t{\r\n\t\t\t\t\tTable1[i]=word;\r\n\t\t\t\t\ti=i+1;\r\n\t\t\t\t}\r\n\t\t\t\t//stubManager.Write(\"\\r\\nfile read\\t\"+ (i) + \" \" + Table1[1] + \" \"+ Table1[2] + \" \"+ Table1[3] + \" \");\t\r\n\t\t\t\tint Address = Convert.ToInt32(Table1[0]);\r\n\t\t\t\tint Data = Convert.ToInt32(Table1[2]);\r\n\t\t\t\tstring name = Table1[1];\r\n\t\t\t\t//stubManager.Write(\"\\r\\nfile read\\t\"+ (i) + \" \" + j + \" \"+ Table1[2] + \" \"+ Data + \" \");\t\r\n\t\t\t\tif (Address>0)\r\n\t\t\t\t{\r\n\t\t\t\t\tStubMainCardEEpromWriteRequest stubMainCardEEpromWriteRequest = new StubMainCardEEpromWriteRequest();\r\n\t\t\t\t\tstubMainCardEEpromWriteRequest.Address = j;\r\n\t\t\t\t\tstubMainCardEEpromWriteRequest.Data = Data;\r\n\t\t\t\r\n\t\t\t\t\tvar response = context.Send<StubMainCardEEpromWriteResponse>(stubMainCardEEpromWriteRequest);\r\n\t\t\t\t\tcontext.Write(\"\\r\\nMain_Card_Data write \\t\"+ j + \" \" +Table1[1] + \" address \\t \"+ j+\" data: \\t\" + Data);\t\r\n\t\t\t\t}\r\n\t\t\t\tline = file.ReadLine();\r\n\t\t\t}\r\n\t\t\tcontext.Write(\"\\r\\n last line \" + line + \"null? \" + (line==null));\t\t\r\n\t\t} \r\n context.AddResult(ResultType.Passed, \"Successfuly write the Main card information\", \"Test passed.\");\r\n\t}\r\n}","Name":"Program.csx","IsEntryPoint":true},{"$id":"4","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Entities;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}","Name":"Service.csx","IsEntryPoint":false}]},"Inputs":{"$id":"5","$values":[]},"Variables":{"$id":"6","$values":[]},"ReferenceAssemblies":{"$id":"7","$values":[{"$id":"8","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"9","File":"C:\\Windows\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"10","File":"C:\\Windows\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"11","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"12","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"13","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"14","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"15","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"16","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"17","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"18","File":"C:\\Windows\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"},{"$id":"19","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.DataStore.dll","HintType":"Tango.DataStore.IDataStoreItem, Tango.DataStore, Version=2.0.4.1608, Culture=neutral, PublicKeyToken=null"}]},"Resources":{"$id":"20","$values":[]},"Dialogs":{"$id":"21","$values":[]},"ID":"fa8293e8-0db3-4461-a0ed-6d9406d80df1","ApartmentState":"STA"} \ No newline at end of file
diff --git a/Software/Stubs Collection/Procedures/demo.pproj b/Software/Stubs Collection/Procedures/demo.pproj
deleted file mode 100644
index b5be39462..000000000
--- a/Software/Stubs Collection/Procedures/demo.pproj
+++ /dev/null
@@ -1 +0,0 @@
-{"$id":"1","Name":"demo","Description":"Demo project for developers.","Scripts":{"$id":"2","$values":[{"$id":"3","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Program\r\n{\r\n public void OnExecute(IProcedureContext context)\r\n {\r\n\r\n context.WriteLine(\"Calculating...\");\r\n context.Sleep(2000);\r\n\r\n double a = context.GetInput<double>(\"n1\");\r\n double b = context.GetInput<double>(\"n2\");\r\n\r\n\r\n double d = context.RequestUserInputFor<double>(20, \"Additional Number\", \"Please provide another value\");\r\n \r\n Person pp = context.RequestUserInputFor<Person>(\"Person Input Required\",\"Please fill in the form\");\r\n \r\n if (pp.Name == \"Roy\")\r\n {\r\n \tif (context.ShowWarningQuestion(\"The name Roy is invalid are you sure?\"))\r\n \t{\r\n \t\tcontext.Fail(\"Name Roy is invalid!\");\r\n \t}\r\n }\r\n \r\n\r\n double c = a + b + d;\r\n\r\n\r\n\r\n context.AddResult(ResultType.Passed, \"Calc Result\", c);\r\n context.AddResult(ResultType.Warning, \"Other Value\", \"Some Value\");\r\n\r\n List<double> list = new List<double>();\r\n List<Person> persons = new List<Person>();\r\n\r\n for (int i = 0; i < 100; i++)\r\n {\r\n list.Add(i);\r\n\r\n Person p = new Person();\r\n p.Age = i;\r\n p.Name = \"Roy \" + i;\r\n persons.Add(p);\r\n }\r\n\r\n double sum = list.Sum();\r\n\r\n context.AddResult(ResultType.Passed, \"Array Result\", list);\r\n context.AddGraphResult(ResultType.Passed, \"Graph Result\", list);\r\n\r\n context.AddResult(ResultType.Passed, \"Persons\", persons);\r\n\r\n Bitmap bitmap = context.CreateBitmap(400, 200);\r\n Graphics g = context.GetDrawingContext(bitmap);\r\n\r\n g.Clear(Color.Blue);\r\n g.FillRectangle(Brushes.Red, 10, 10, 50, 50);\r\n\r\n context.AddBitmapResult(ResultType.Passed, \"Bitmap Demo\", bitmap);\r\n\r\n g.Dispose();\r\n\r\n List<double> dancerValues = new List<double>();\r\n\r\n context.WriteLine(\"Collecting dancer angle...\");\r\n\r\n for (int i = 0; i < 100; i++)\r\n {\r\n DiagnosticsPackage package = context.GetDiagnosticsPackage(true);\r\n double dancerAngle = package.GetMonitorLastValue(TechMonitors.Dancer2Angle);\r\n\r\n dancerValues.Add(dancerAngle);\r\n\r\n context.UpdateProgress(\"Collecting dancer position...\", false, i, 50);\r\n }\r\n\r\n context.AddGraphResult(ResultType.Passed, \"Dancer Angle\", dancerValues);\r\n }\r\n}","Name":"Program.csx","IsEntryPoint":true},{"$id":"4","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n\tpublic const String WORD = \"123\";\r\n\tpublic const int NUM = 1;\r\n}","Name":"Service.csx","IsEntryPoint":false},{"$id":"5","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Person\r\n{\r\n\tpublic int Age;\r\n\t[Description(\"First Name\")]\r\n\tpublic String Name;\r\n}","Name":"Person.csx","IsEntryPoint":false}]},"Inputs":{"$id":"6","$values":[{"$id":"7","DisplayName":"Number A","Description":"First number for calc","Key":"n1","Value":"10"},{"$id":"8","DisplayName":"Number B","Description":"Second number for calc","Key":"n2","Value":"15"}]},"ReferenceAssemblies":{"$id":"9","$values":[{"$id":"10","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"11","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"12","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"13","File":"C:\\DATA\\Development\\Tango\\Software\\Visual_Studio\\Build\\FSE\\Debug\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"14","File":"C:\\DATA\\Development\\Tango\\Software\\Visual_Studio\\Build\\FSE\\Debug\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"15","File":"C:\\DATA\\Development\\Tango\\Software\\Visual_Studio\\Build\\FSE\\Debug\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"16","File":"C:\\DATA\\Development\\Tango\\Software\\Visual_Studio\\Build\\FSE\\Debug\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"17","File":"C:\\DATA\\Development\\Tango\\Software\\Visual_Studio\\Build\\FSE\\Debug\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"18","File":"C:\\DATA\\Development\\Tango\\Software\\Visual_Studio\\Build\\FSE\\Debug\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"19","File":"C:\\DATA\\Development\\Tango\\Software\\Visual_Studio\\Build\\FSE\\Debug\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"20","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"Dialogs":{"$id":"21","$values":[]},"ID":"4d95f6b1-ee07-4bc8-85af-18bc12326f29","ApartmentState":"STA"} \ No newline at end of file
diff --git a/Software/Stubs Collection/Procedures/diagnostics shlomo.tdp b/Software/Stubs Collection/Procedures/diagnostics shlomo.tdp
deleted file mode 100644
index f6f7b53fc..000000000
--- a/Software/Stubs Collection/Procedures/diagnostics shlomo.tdp
+++ /dev/null
@@ -1,2613 +0,0 @@
-{
- "Name": "Diagnostics Project",
- "Tabs": [
- {
- "Name": "Temperatures",
- "Columns": [
- {
- "Width": "86.1904761904762"
- },
- {
- "Width": "86.1904761904763"
- },
- {
- "Width": "86.1904761904763"
- },
- {
- "Width": "86.1904761904763"
- },
- {
- "Width": "86.1904761904762"
- },
- {
- "Width": "86.1904761904761"
- },
- {
- "Width": "86.1904761904761"
- },
- {
- "Width": "86.1904761904761"
- },
- {
- "Width": "86.1904761904761"
- },
- {
- "Width": "86.1904761904763"
- },
- {
- "Width": "86.1904761904763"
- },
- {
- "Width": "86.1904761904761"
- },
- {
- "Width": "86.1904761904761"
- },
- {
- "Width": "83.1904761904761"
- },
- {
- "Width": "89.1904761904761"
- },
- {
- "Width": "86.1904761904761"
- },
- {
- "Width": "86.1904761904761"
- },
- {
- "Width": "86.1904761904761"
- },
- {
- "Width": "86.1904761904761"
- },
- {
- "Width": "86.1904761904761"
- },
- {
- "Width": "86.1904761904761"
- }
- ],
- "Rows": [
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- }
- ],
- "Widgets": [
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Heater.HeaterWidget, Tango.FSE.Diagnostics",
- "Heater": "DryerSecondaryHeater",
- "SetPoint": 0.0,
- "EnableComponentSelection": false,
- "ID": "4e1f30d3-0f63-403a-94b1-87d474bf8dbf",
- "Column": 0,
- "Row": 1,
- "ColumnSpan": 2,
- "RowSpan": 6,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Heater.HeaterWidget, Tango.FSE.Diagnostics",
- "Heater": "DryerMainHeater",
- "SetPoint": 39.0,
- "EnableComponentSelection": false,
- "ID": "972df749-0f5f-4b11-8225-b7e0a4fed444",
- "Column": 2,
- "Row": 1,
- "ColumnSpan": 2,
- "RowSpan": 6,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Heater.HeaterWidget, Tango.FSE.Diagnostics",
- "Heater": "DryerAirHeater",
- "SetPoint": 180.0,
- "EnableComponentSelection": false,
- "ID": "b089f312-1f35-4d3d-9bd6-0e6dae7f7014",
- "Column": 4,
- "Row": 1,
- "ColumnSpan": 2,
- "RowSpan": 6,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Heater.HeaterWidget, Tango.FSE.Diagnostics",
- "Heater": "MixerHeater",
- "SetPoint": 80.0,
- "EnableComponentSelection": false,
- "ID": "b63ec13e-b4e3-4d2c-9743-b25c2206a2d2",
- "Column": 6,
- "Row": 1,
- "ColumnSpan": 2,
- "RowSpan": 6,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Text.TextWidget, Tango.FSE.Diagnostics",
- "Text": "dryer & mixer",
- "Color": "#FFD3D3D3",
- "Settings": {},
- "ID": "5fa35015-5641-48d8-8e70-519780cfd990",
- "Column": 0,
- "Row": 0,
- "ColumnSpan": 8,
- "RowSpan": 1,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": false,
- "ComponentNameAlignment": "Top",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Heater.HeaterWidget, Tango.FSE.Diagnostics",
- "Heater": "HeaterZone6",
- "SetPoint": 135.0,
- "EnableComponentSelection": false,
- "ID": "e966098e-ce3f-4f59-898e-2adc99fe5ded",
- "Column": 0,
- "Row": 9,
- "ColumnSpan": 2,
- "RowSpan": 6,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Heater.HeaterWidget, Tango.FSE.Diagnostics",
- "Heater": "HeaterZone12",
- "SetPoint": 145.0,
- "EnableComponentSelection": false,
- "ID": "51c18d1c-2b21-46d2-9500-ffc96eb7f53f",
- "Column": 0,
- "Row": 15,
- "ColumnSpan": 2,
- "RowSpan": 6,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Heater.HeaterWidget, Tango.FSE.Diagnostics",
- "Heater": "HeaterZone5",
- "SetPoint": 135.0,
- "EnableComponentSelection": false,
- "ID": "0161829b-08d4-482c-ad02-5a8406a7d4f3",
- "Column": 2,
- "Row": 9,
- "ColumnSpan": 2,
- "RowSpan": 6,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Heater.HeaterWidget, Tango.FSE.Diagnostics",
- "Heater": "HeaterZone4",
- "SetPoint": 120.0,
- "EnableComponentSelection": false,
- "ID": "4b0a8a4f-8391-4ab4-9e7f-0a5ac779901d",
- "Column": 4,
- "Row": 9,
- "ColumnSpan": 2,
- "RowSpan": 6,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Heater.HeaterWidget, Tango.FSE.Diagnostics",
- "Heater": "HeaterZone3",
- "SetPoint": 120.0,
- "EnableComponentSelection": false,
- "ID": "a267bc1c-d67a-45f9-93fd-3f20158ce27b",
- "Column": 6,
- "Row": 9,
- "ColumnSpan": 2,
- "RowSpan": 6,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Heater.HeaterWidget, Tango.FSE.Diagnostics",
- "Heater": "HeaterZone2",
- "SetPoint": 100.0,
- "EnableComponentSelection": false,
- "ID": "60dba38a-d852-417c-b587-f921e900ad82",
- "Column": 8,
- "Row": 9,
- "ColumnSpan": 2,
- "RowSpan": 6,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Heater.HeaterWidget, Tango.FSE.Diagnostics",
- "Heater": "HeaterZone1",
- "SetPoint": 80.0,
- "EnableComponentSelection": false,
- "ID": "b155d1d5-c32d-42b4-b08c-bdd03689d523",
- "Column": 10,
- "Row": 9,
- "ColumnSpan": 2,
- "RowSpan": 6,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Heater.HeaterWidget, Tango.FSE.Diagnostics",
- "Heater": "HeaterZone11",
- "SetPoint": 140.0,
- "EnableComponentSelection": false,
- "ID": "d013ea3a-cd95-457b-bebe-51675260a04f",
- "Column": 2,
- "Row": 15,
- "ColumnSpan": 2,
- "RowSpan": 6,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Heater.HeaterWidget, Tango.FSE.Diagnostics",
- "Heater": "HeaterZone10",
- "SetPoint": 140.0,
- "EnableComponentSelection": false,
- "ID": "73ef24de-d45e-421a-a1ce-c9ddfc556444",
- "Column": 4,
- "Row": 15,
- "ColumnSpan": 2,
- "RowSpan": 6,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Heater.HeaterWidget, Tango.FSE.Diagnostics",
- "Heater": "HeaterZone9",
- "SetPoint": 140.0,
- "EnableComponentSelection": false,
- "ID": "d538b7bb-9f43-4d1a-9180-1506b13172ac",
- "Column": 6,
- "Row": 15,
- "ColumnSpan": 2,
- "RowSpan": 6,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Heater.HeaterWidget, Tango.FSE.Diagnostics",
- "Heater": "HeaterZone8",
- "SetPoint": 140.0,
- "EnableComponentSelection": false,
- "ID": "085aafbd-8934-4388-bdc5-87931f0cb692",
- "Column": 8,
- "Row": 15,
- "ColumnSpan": 2,
- "RowSpan": 6,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Heater.HeaterWidget, Tango.FSE.Diagnostics",
- "Heater": "HeaterZone7",
- "SetPoint": 135.0,
- "EnableComponentSelection": false,
- "ID": "f4a44bb8-47f7-4c23-90a1-0f625a8af955",
- "Column": 10,
- "Row": 15,
- "ColumnSpan": 2,
- "RowSpan": 6,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Text.TextWidget, Tango.FSE.Diagnostics",
- "Text": "Flat Head",
- "Color": "#FFD3D3D3",
- "Settings": {},
- "ID": "1e6f3722-d4cf-41b6-bd3d-a64a57e0b9fe",
- "Column": 0,
- "Row": 8,
- "ColumnSpan": 8,
- "RowSpan": 1,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": false,
- "ComponentNameAlignment": "Top",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "OverallTemperature",
- "EnableComponentSelection": true,
- "Settings": {
- "DecimalPlaces": 0,
- "Color": "#FFDCDCDC"
- },
- "ID": "1247f28e-fff9-4605-8bd8-91300e49e385",
- "Column": 9,
- "Row": 1,
- "ColumnSpan": 3,
- "RowSpan": 4,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": "Machine Temp."
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Text.TextWidget, Tango.FSE.Diagnostics",
- "Text": "ambient",
- "Color": "#FFD3D3D3",
- "Settings": {},
- "ID": "7d9d39f8-97de-4790-a8fa-77d30eeb783d",
- "Column": 9,
- "Row": 0,
- "ColumnSpan": 3,
- "RowSpan": 1,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": false,
- "ComponentNameAlignment": "Top",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Heater.HeaterWidget, Tango.FSE.Diagnostics",
- "Heater": "HeaterZone3",
- "SetPoint": 135.0,
- "EnableComponentSelection": true,
- "ID": "4cc384a5-58b8-40b8-bd7c-da77fff2ab4a",
- "Column": 13,
- "Row": 15,
- "ColumnSpan": 2,
- "RowSpan": 6,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Heater.HeaterWidget, Tango.FSE.Diagnostics",
- "Heater": "HeaterZone2",
- "SetPoint": 135.0,
- "EnableComponentSelection": false,
- "ID": "2c2d9abf-06fb-4b05-ab24-bad87fdd1dc1",
- "Column": 15,
- "Row": 15,
- "ColumnSpan": 2,
- "RowSpan": 6,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Heater.HeaterWidget, Tango.FSE.Diagnostics",
- "Heater": "HeaterZone1",
- "SetPoint": 120.0,
- "EnableComponentSelection": false,
- "ID": "d2c56d11-4048-428d-9639-a7861b7610dc",
- "Column": 17,
- "Row": 15,
- "ColumnSpan": 2,
- "RowSpan": 6,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Text.TextWidget, Tango.FSE.Diagnostics",
- "Text": "arc head temp.",
- "Color": "#FFD3D3D3",
- "Settings": {},
- "ID": "4a6bb5ee-602f-4f78-91d9-c97356d5ffea",
- "Column": 14,
- "Row": 14,
- "ColumnSpan": 6,
- "RowSpan": 1,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": false,
- "ComponentNameAlignment": "Top",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Blower.BlowerWidget, Tango.FSE.Diagnostics",
- "Blower": "HeadBlower2",
- "SetPoint": 0.0,
- "EnableComponentSelection": false,
- "ID": "be0a08fe-87ee-4751-b8c0-434495a7faf0",
- "Column": 15,
- "Row": 4,
- "ColumnSpan": 2,
- "RowSpan": 3,
- "Width": 87.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Text.TextWidget, Tango.FSE.Diagnostics",
- "Text": "arc blowers air flow",
- "Color": "#FFD3D3D3",
- "Settings": {},
- "ID": "6fbf6983-92e6-4d6a-8696-aff46e5b0fc0",
- "Column": 13,
- "Row": 0,
- "ColumnSpan": 8,
- "RowSpan": 1,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": false,
- "ComponentNameAlignment": "Top",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Blower.BlowerWidget, Tango.FSE.Diagnostics",
- "Blower": "HeadBlower1",
- "SetPoint": 0.0,
- "EnableComponentSelection": false,
- "ID": "85ee4ecf-ddb1-47f4-8065-a8d85f258ed0",
- "Column": 15,
- "Row": 1,
- "ColumnSpan": 2,
- "RowSpan": 3,
- "Width": 87.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "HeadBlowerVoltage2",
- "EnableComponentSelection": true,
- "Settings": {
- "DecimalPlaces": 0,
- "Color": "#FFDCDCDC"
- },
- "ID": "4feb8076-1c1f-4c4c-9dc6-b79f41abcdeb",
- "Column": 13,
- "Row": 11,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "HeadBlowerVoltage1",
- "EnableComponentSelection": true,
- "Settings": {
- "DecimalPlaces": 0,
- "Color": "#FFDCDCDC"
- },
- "ID": "59df100b-f1d9-4d93-8360-519f158d06c9",
- "Column": 16,
- "Row": 11,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Heater.HeaterWidget, Tango.FSE.Diagnostics",
- "Heater": "HeadCoverHeater2",
- "SetPoint": 135.0,
- "EnableComponentSelection": true,
- "ID": "85458771-e464-4f50-899c-8ac4ec908c44",
- "Column": 13,
- "Row": 1,
- "ColumnSpan": 2,
- "RowSpan": 6,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Heater.HeaterWidget, Tango.FSE.Diagnostics",
- "Heater": "HeadCoverHeater1",
- "SetPoint": 135.0,
- "EnableComponentSelection": true,
- "ID": "fbd44490-0310-4338-9e17-a5169b3b9714",
- "Column": 17,
- "Row": 1,
- "ColumnSpan": 2,
- "RowSpan": 6,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "HeadBlower2AirFlow",
- "EnableComponentSelection": true,
- "Settings": {
- "DecimalPlaces": 0,
- "Color": "#FFDCDCDC"
- },
- "ID": "b74ab243-1ed3-4972-8f7f-cd15b6b21426",
- "Column": 13,
- "Row": 8,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "HeadBlower1AirFlow",
- "EnableComponentSelection": true,
- "Settings": {
- "DecimalPlaces": 0,
- "Color": "#FFDCDCDC"
- },
- "ID": "89fcdbce-40d4-4ee1-a057-bf3f0f23fd33",
- "Column": 16,
- "Row": 8,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- }
- ]
- },
- {
- "Name": "Dispensers",
- "Columns": [
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- }
- ],
- "Rows": [
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- }
- ],
- "Widgets": [
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "Dispenser8Pressure",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 2,
- "Color": "#FFDEA437"
- },
- "ID": "99496cd2-adb1-4fe9-8944-6f1785530095",
- "Column": 0,
- "Row": 0,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Dispenser.DispenserWidget, Tango.FSE.Diagnostics",
- "Dispenser": "Dispenser8",
- "EnableComponentSelection": false,
- "Settings": {
- "Speed": 400,
- "Color": "#FF141414"
- },
- "ID": "3f83107f-ec56-4986-b7c8-22b270f650ec",
- "Column": 0,
- "Row": 5,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": false,
- "ComponentNameAlignment": "Top",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "Dispenser8MotorFrequency",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 0,
- "Color": "#FFDCDCDC"
- },
- "ID": "7332455a-9cc3-4f39-b8f0-57a31eb1f78f",
- "Column": 0,
- "Row": 10,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "Dispenser7Pressure",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 2,
- "Color": "#FF7FF372"
- },
- "ID": "a0ebd9d7-b01c-4ca3-b62e-824b02a66c3c",
- "Column": 3,
- "Row": 0,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Dispenser.DispenserWidget, Tango.FSE.Diagnostics",
- "Dispenser": "Dispenser7",
- "EnableComponentSelection": false,
- "Settings": {
- "Speed": 400,
- "Color": "#FF141414"
- },
- "ID": "6a22335a-50f3-482b-99a9-be846e8c084b",
- "Column": 3,
- "Row": 5,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": false,
- "ComponentNameAlignment": "Top",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "Dispenser7MotorFrequency",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 0,
- "Color": "#FFDCDCDC"
- },
- "ID": "ef968e12-525e-4923-b36d-a04aa8b32a4f",
- "Column": 3,
- "Row": 10,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "Dispenser6Pressure",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 2,
- "Color": "#FFDCDCDC"
- },
- "ID": "52260052-843a-4fc1-88ec-64ef9dd13657",
- "Column": 6,
- "Row": 0,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Dispenser.DispenserWidget, Tango.FSE.Diagnostics",
- "Dispenser": "Dispenser6",
- "EnableComponentSelection": false,
- "Settings": {
- "Speed": 400,
- "Color": "#FF141414"
- },
- "ID": "d770f52d-6722-4118-b156-061e69d821a8",
- "Column": 6,
- "Row": 5,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": false,
- "ComponentNameAlignment": "Top",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "Dispenser6MotorFrequency",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 0,
- "Color": "#FFDCDCDC"
- },
- "ID": "2b65a99b-fcc6-448a-b53d-9e1a3adf2077",
- "Column": 6,
- "Row": 10,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "Dispenser5Pressure",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 2,
- "Color": "#FF898A4B"
- },
- "ID": "dd286e34-4441-4814-8aec-ffff471e1be8",
- "Column": 9,
- "Row": 0,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Dispenser.DispenserWidget, Tango.FSE.Diagnostics",
- "Dispenser": "Dispenser5",
- "EnableComponentSelection": false,
- "Settings": {
- "Speed": 400,
- "Color": "#FF141414"
- },
- "ID": "d2a47d28-35f5-4974-b62d-f5f70dc91e04",
- "Column": 9,
- "Row": 5,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": false,
- "ComponentNameAlignment": "Top",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "Dispenser5MotorFrequency",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 0,
- "Color": "#FFDCDCDC"
- },
- "ID": "b039b3fc-6c93-4d70-a92a-c72d718444d9",
- "Column": 9,
- "Row": 10,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "Dispenser4Pressure",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 2,
- "Color": "#FFEAF309"
- },
- "ID": "b8c9e3f6-5f4d-44cd-8b6e-c7d16489e573",
- "Column": 12,
- "Row": 0,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Dispenser.DispenserWidget, Tango.FSE.Diagnostics",
- "Dispenser": "Dispenser4",
- "EnableComponentSelection": false,
- "Settings": {
- "Speed": 400,
- "Color": "#FF141414"
- },
- "ID": "3898cc2c-8177-450a-8255-62d6f7df0fbb",
- "Column": 12,
- "Row": 5,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": false,
- "ComponentNameAlignment": "Top",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "Dispenser4MotorFrequency",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 0,
- "Color": "#FFDCDCDC"
- },
- "ID": "49308835-57c5-45ca-807f-34fc2ff7a86f",
- "Column": 12,
- "Row": 10,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "Dispenser3Pressure",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 2,
- "Color": "#FFE807D7"
- },
- "ID": "82c2ee42-9b28-44ec-9ec2-ca69d9319ecc",
- "Column": 15,
- "Row": 0,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Dispenser.DispenserWidget, Tango.FSE.Diagnostics",
- "Dispenser": "Dispenser3",
- "EnableComponentSelection": false,
- "Settings": {
- "Speed": 400,
- "Color": "#FF141414"
- },
- "ID": "73ebff65-537d-42ae-b364-2b5ad5452e1e",
- "Column": 15,
- "Row": 5,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": false,
- "ComponentNameAlignment": "Top",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "Dispenser3MotorFrequency",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 0,
- "Color": "#FFDCDCDC"
- },
- "ID": "b8bdd5e1-3441-49db-8573-d8efbfb1b64d",
- "Column": 15,
- "Row": 10,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "Dispenser2Pressure",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 2,
- "Color": "#FF16A3E2"
- },
- "ID": "99901934-8bad-4e99-b35f-591be4d32d49",
- "Column": 18,
- "Row": 0,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Dispenser.DispenserWidget, Tango.FSE.Diagnostics",
- "Dispenser": "Dispenser2",
- "EnableComponentSelection": false,
- "Settings": {
- "Speed": 400,
- "Color": "#FF141414"
- },
- "ID": "a9cae28b-f141-4522-ae88-5294634d7471",
- "Column": 18,
- "Row": 5,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": false,
- "ComponentNameAlignment": "Top",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "Dispenser2MotorFrequency",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 0,
- "Color": "#FFDCDCDC"
- },
- "ID": "42b8fc1f-f8ba-4201-85d2-66eeb739d766",
- "Column": 18,
- "Row": 10,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "Dispenser1Pressure",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 2,
- "Color": "#FF0E0E0E"
- },
- "ID": "65b945dd-30bb-4f59-a336-d36d22aac6bc",
- "Column": 21,
- "Row": 0,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Dispenser.DispenserWidget, Tango.FSE.Diagnostics",
- "Dispenser": "Dispenser1",
- "EnableComponentSelection": false,
- "Settings": {
- "Speed": 400,
- "Color": "#FF141414"
- },
- "ID": "aaa1a635-469f-4d43-8070-cebb7bc82424",
- "Column": 21,
- "Row": 5,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": false,
- "ComponentNameAlignment": "Top",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "Dispenser1MotorFrequency",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 0,
- "Color": "#FFDCDCDC"
- },
- "ID": "32356cb9-37bc-4191-a7f9-8f24fb1d8543",
- "Column": 21,
- "Row": 10,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Valve.ValveWidget, Tango.FSE.Diagnostics",
- "Valve": "MixerWasteValve",
- "EnableComponentSelection": false,
- "ID": "93fc15ce-6c61-4458-914b-3133727c730a",
- "Column": 9,
- "Row": 20,
- "ColumnSpan": 6,
- "RowSpan": 4,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Top",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Valve.ValveWidget, Tango.FSE.Diagnostics",
- "Valve": "DispenserValve8",
- "EnableComponentSelection": true,
- "ID": "834b7125-8740-400f-9378-ec606bca7afb",
- "Column": 0,
- "Row": 16,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Valve.ValveWidget, Tango.FSE.Diagnostics",
- "Valve": "MidTankAirValve7",
- "EnableComponentSelection": true,
- "ID": "d76ba317-0f8c-41e2-974c-3c29e4a1aecd",
- "Column": 3,
- "Row": 16,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Valve.ValveWidget, Tango.FSE.Diagnostics",
- "Valve": "DispenserValve5",
- "EnableComponentSelection": true,
- "ID": "83c7739e-120d-4d60-ab6d-6da021426ba5",
- "Column": 9,
- "Row": 16,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Valve.ValveWidget, Tango.FSE.Diagnostics",
- "Valve": "DispenserValve4",
- "EnableComponentSelection": true,
- "ID": "8abc1879-9041-4a51-9aa1-6ad9cdba6944",
- "Column": 12,
- "Row": 16,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Valve.ValveWidget, Tango.FSE.Diagnostics",
- "Valve": "DispenserValve3",
- "EnableComponentSelection": true,
- "ID": "c3e0304a-9154-46b8-b61c-c872d38a4015",
- "Column": 15,
- "Row": 16,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Valve.ValveWidget, Tango.FSE.Diagnostics",
- "Valve": "DispenserValve2",
- "EnableComponentSelection": true,
- "ID": "b66ffd1d-96eb-4a6d-89b7-67e966773987",
- "Column": 18,
- "Row": 16,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Valve.ValveWidget, Tango.FSE.Diagnostics",
- "Valve": "DispenserValve1",
- "EnableComponentSelection": true,
- "ID": "ca836926-17e6-416c-9357-1f82a15e74e0",
- "Column": 21,
- "Row": 16,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- }
- ]
- },
- {
- "Name": "Waste",
- "Columns": [
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- }
- ],
- "Rows": [
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- }
- ],
- "Widgets": [
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "MidTank1Level",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 2,
- "Color": "#FF0E0E0E"
- },
- "ID": "50542753-1128-4c4a-b13f-397be9377fdd",
- "Column": 21,
- "Row": 0,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "MidTank2Level",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 2,
- "Color": "#FF16A3E2"
- },
- "ID": "07904972-8ffe-4a4a-b372-c91e87d72371",
- "Column": 18,
- "Row": 0,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "MidTank3Level",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 2,
- "Color": "#FFE807D7"
- },
- "ID": "b1da7145-a8dd-4c26-9585-7d481850a91b",
- "Column": 15,
- "Row": 0,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "MidTank4Level",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 2,
- "Color": "#FFDFEC10"
- },
- "ID": "168a83a0-a99b-4c66-ba4a-9ab1a49703bd",
- "Column": 12,
- "Row": -10,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "MidTank5Level",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 2,
- "Color": "#FFDCDCDC"
- },
- "ID": "80a362cf-52e8-4e1c-b032-bbd5162bf843",
- "Column": 9,
- "Row": 0,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "MidTank6Level",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 2,
- "Color": "#FFDCDCDC"
- },
- "ID": "f00c9ac5-0f3e-4a93-aca0-0e792dd1d551",
- "Column": 6,
- "Row": 0,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "MidTank7Level",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 2,
- "Color": "#FF4EE724"
- },
- "ID": "63b22b2c-11ce-4f29-90f9-7c24bbfdd305",
- "Column": 3,
- "Row": 0,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "MidTank8Level",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 2,
- "Color": "#FFDEA437"
- },
- "ID": "cfcdf30f-29c9-4ad4-8eb8-5af1c6853501",
- "Column": 0,
- "Row": 0,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "BlowerVoltage",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 0,
- "Color": "#FFDCDCDC"
- },
- "ID": "89b6640f-ca6e-48d4-82f0-7edb1191986b",
- "Column": 0,
- "Row": 12,
- "ColumnSpan": 2,
- "RowSpan": 4,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "HeadAirFlow",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 2,
- "Color": "#FFDCDCDC"
- },
- "ID": "ba94949e-6371-4041-906f-ccbcc1953254",
- "Column": 2,
- "Row": 12,
- "ColumnSpan": 2,
- "RowSpan": 4,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "DryerAirFlow",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 2,
- "Color": "#FFDCDCDC"
- },
- "ID": "0763fb88-e1c1-40db-b883-04d25ce52a78",
- "Column": 4,
- "Row": 12,
- "ColumnSpan": 2,
- "RowSpan": 4,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Blower.BlowerWidget, Tango.FSE.Diagnostics",
- "Blower": "DefaultBlower",
- "SetPoint": 0.0,
- "EnableComponentSelection": false,
- "ID": "8e027edd-10a5-42e5-be6a-1a3eb6c01b21",
- "Column": 1,
- "Row": 17,
- "ColumnSpan": 4,
- "RowSpan": 4,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": false,
- "ComponentNameAlignment": "Top",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Text.TextWidget, Tango.FSE.Diagnostics",
- "Text": "cartridge",
- "Color": "#FFD3D3D3",
- "Settings": {},
- "ID": "068fbd16-93ce-440c-a6c0-7604573565f5",
- "Column": 18,
- "Row": 6,
- "ColumnSpan": 4,
- "RowSpan": 1,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": false,
- "ComponentNameAlignment": "Top",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Input.InputWidget, Tango.FSE.Diagnostics",
- "IO": "GPI_TFEED_BREAK_1",
- "EnableComponentSelection": true,
- "ID": "d6706cbe-fa75-4b2f-b343-eff3b3f766e7",
- "Column": 18,
- "Row": 12,
- "ColumnSpan": 2,
- "RowSpan": 3,
- "Width": 80.0,
- "Height": 80.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": "Ink "
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Input.InputWidget, Tango.FSE.Diagnostics",
- "IO": "LS_DISPENSER_25_1",
- "EnableComponentSelection": true,
- "ID": "d5a84216-a8ca-4676-87b0-6c399aded459",
- "Column": 18,
- "Row": 15,
- "ColumnSpan": 2,
- "RowSpan": 3,
- "Width": 80.0,
- "Height": 80.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": "Waste High"
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Input.InputWidget, Tango.FSE.Diagnostics",
- "IO": "LS_DH_CLEAN_DOWN",
- "EnableComponentSelection": true,
- "ID": "aadf643f-7652-484a-bee3-7957feff3638",
- "Column": 18,
- "Row": 18,
- "ColumnSpan": 2,
- "RowSpan": 3,
- "Width": 80.0,
- "Height": 80.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": "Waste Low"
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "WasteLevel",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 2,
- "Color": "#FFDCDCDC"
- },
- "ID": "d3844b51-1842-4f96-a3f9-204fa3257391",
- "Column": 16,
- "Row": 12,
- "ColumnSpan": 2,
- "RowSpan": 4,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Output.OutputWidget, Tango.FSE.Diagnostics",
- "IO": "GPO_WHS_WTANKPUMP2",
- "EnableComponentSelection": true,
- "ID": "c87815f5-b563-472b-b1e5-cd0ba750280d",
- "Column": 16,
- "Row": 18,
- "ColumnSpan": 2,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": "Waste Valve"
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Output.OutputWidget, Tango.FSE.Diagnostics",
- "IO": "GPO_WASTECH_PUMP2",
- "EnableComponentSelection": false,
- "ID": "a36513f1-3038-4820-b7f4-033ae81749cc",
- "Column": 14,
- "Row": 18,
- "ColumnSpan": 2,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": "Waste Pump"
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Valve.ValveWidget, Tango.FSE.Diagnostics",
- "Valve": "MidTankInkValve8",
- "EnableComponentSelection": true,
- "ID": "47805db1-34e9-4190-8bd7-8102bd213957",
- "Column": 0,
- "Row": 5,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": "Ink Valve 8"
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Valve.ValveWidget, Tango.FSE.Diagnostics",
- "Valve": "MidTankInkValve7",
- "EnableComponentSelection": true,
- "ID": "376973fb-b249-4f31-ba6d-d207f692f246",
- "Column": 3,
- "Row": 5,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": "Ink Valve 7"
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Valve.ValveWidget, Tango.FSE.Diagnostics",
- "Valve": "MidTankInkValve5",
- "EnableComponentSelection": true,
- "ID": "aae3c107-4f3b-4e3b-b534-961a1c2d156b",
- "Column": 9,
- "Row": 5,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": "Ink Valve 5"
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Valve.ValveWidget, Tango.FSE.Diagnostics",
- "Valve": "MidTankInkValve4",
- "EnableComponentSelection": true,
- "ID": "f31899df-105e-4b2c-a9b1-11e27cab6813",
- "Column": 12,
- "Row": 5,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": "Ink Valve 4"
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Valve.ValveWidget, Tango.FSE.Diagnostics",
- "Valve": "MidTankInkValve3",
- "EnableComponentSelection": true,
- "ID": "a5da1fdf-74dd-4870-9cf6-95b11c44fc42",
- "Column": 15,
- "Row": 5,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": "Ink Valve 3"
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Valve.ValveWidget, Tango.FSE.Diagnostics",
- "Valve": "MidTankInkValve3",
- "EnableComponentSelection": true,
- "ID": "ff292bee-e448-4e0e-a467-3f3c32f103ff",
- "Column": 21,
- "Row": 5,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": "Ink Valve 1"
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Valve.ValveWidget, Tango.FSE.Diagnostics",
- "Valve": "MidTankInkValve2",
- "EnableComponentSelection": true,
- "ID": "7ee9d1b1-0449-4aab-a777-4cf00868efb7",
- "Column": 18,
- "Row": 5,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": "Ink Valve 2"
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Valve.ValveWidget, Tango.FSE.Diagnostics",
- "Valve": "MidTankAirValve8",
- "EnableComponentSelection": true,
- "ID": "7cf0e6f5-a76c-4618-8c5d-0ead628716bf",
- "Column": 0,
- "Row": 8,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": "Air Valve 8"
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Valve.ValveWidget, Tango.FSE.Diagnostics",
- "Valve": "MidTankAirValve7",
- "EnableComponentSelection": true,
- "ID": "e9e160ac-0e97-465f-ae5e-6fa405976682",
- "Column": 3,
- "Row": 8,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": "Air Valve 7"
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Valve.ValveWidget, Tango.FSE.Diagnostics",
- "Valve": "MidTankAirValve5",
- "EnableComponentSelection": true,
- "ID": "943a16e3-b67e-4699-9cfb-4d561acc2701",
- "Column": 9,
- "Row": 8,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": "Air Valve 5"
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Valve.ValveWidget, Tango.FSE.Diagnostics",
- "Valve": "MidTankAirValve4",
- "EnableComponentSelection": true,
- "ID": "0660f5cf-2137-4321-b50a-578d3609d046",
- "Column": 12,
- "Row": 8,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": "Air Valve 4"
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Valve.ValveWidget, Tango.FSE.Diagnostics",
- "Valve": "MidTankAirValve3",
- "EnableComponentSelection": true,
- "ID": "92fb19fc-97be-491a-ab85-1692cf67edc7",
- "Column": 15,
- "Row": 8,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": "Air Valve 3"
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Valve.ValveWidget, Tango.FSE.Diagnostics",
- "Valve": "MidTankAirValve2",
- "EnableComponentSelection": true,
- "ID": "5d68408a-78bd-4a34-bdeb-102bc1162b66",
- "Column": 18,
- "Row": 8,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": "Air Valve 2"
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Valve.ValveWidget, Tango.FSE.Diagnostics",
- "Valve": "MidTankAirValve1",
- "EnableComponentSelection": true,
- "ID": "a8cf65e0-6f04-4d2d-9871-72ea03d32785",
- "Column": 21,
- "Row": 8,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": "Air Valve 1"
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "GasSensor",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 2,
- "Color": "#FFDCDCDC"
- },
- "ID": "7bd54a0f-edf0-49b2-93db-e5a8b03011cb",
- "Column": 14,
- "Row": 12,
- "ColumnSpan": 2,
- "RowSpan": 4,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": "Gas Sensor"
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Heater.HeaterWidget, Tango.FSE.Diagnostics",
- "Heater": "HeaterZone12",
- "SetPoint": 80.0,
- "EnableComponentSelection": false,
- "ID": "758645c5-5aca-4155-9dcb-7d665d192cdb",
- "Column": 22,
- "Row": 15,
- "ColumnSpan": 2,
- "RowSpan": 6,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": "Cooler"
- }
- ]
- },
- {
- "Name": "Thread Insertion",
- "Columns": [
- {
- "Width": "90.5"
- },
- {
- "Width": "90.5"
- },
- {
- "Width": "90.5"
- },
- {
- "Width": "90.5"
- },
- {
- "Width": "90.5"
- },
- {
- "Width": "90.5"
- },
- {
- "Width": "64.0847665847665"
- },
- {
- "Width": "147.394348894349"
- },
- {
- "Width": "60.0208845208844"
- },
- {
- "Width": "64.0847665847665"
- },
- {
- "Width": "144.346437346437"
- },
- {
- "Width": "63.0687960687962"
- },
- {
- "Width": "90.5"
- },
- {
- "Width": "90.5"
- },
- {
- "Width": "90.5"
- },
- {
- "Width": "90.5"
- },
- {
- "Width": "90.5"
- },
- {
- "Width": "90.5"
- },
- {
- "Width": "90.5"
- },
- {
- "Width": "90.5"
- }
- ],
- "Rows": [
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- }
- ],
- "Widgets": [
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Motor.MotorWidget, Tango.FSE.Diagnostics",
- "Motor": "MOTO_SCREW",
- "EnableComponentSelection": false,
- "Settings": {
- "Speed": 500,
- "Color": "#FF141414"
- },
- "ID": "85a82dd4-acdb-4c4e-a3c9-695867f653eb",
- "Column": 0,
- "Row": 0,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Motor.MotorWidget, Tango.FSE.Diagnostics",
- "Motor": "MOTO_LDRIVING",
- "EnableComponentSelection": false,
- "Settings": {
- "Speed": 1000,
- "Color": "#FF141414"
- },
- "ID": "115d0399-3aef-4b22-8ca0-e6d45fe668d7",
- "Column": 3,
- "Row": 0,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Motor.MotorWidget, Tango.FSE.Diagnostics",
- "Motor": "MOTO_DRYER_DRIVING",
- "EnableComponentSelection": false,
- "Settings": {
- "Speed": 1000,
- "Color": "#FF141414"
- },
- "ID": "e855ba30-b217-4597-9f0f-6cc146b70219",
- "Column": 6,
- "Row": 0,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Motor.MotorWidget, Tango.FSE.Diagnostics",
- "Motor": "MOTO_RDRIVING",
- "EnableComponentSelection": false,
- "Settings": {
- "Speed": 500,
- "Color": "#FF141414"
- },
- "ID": "00f25fe2-7d74-4f79-ba1b-24413e5c95c3",
- "Column": 12,
- "Row": 0,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Motor.MotorWidget, Tango.FSE.Diagnostics",
- "Motor": "MOTO_WINDER",
- "EnableComponentSelection": false,
- "Settings": {
- "Speed": 1000,
- "Color": "#FF141414"
- },
- "ID": "199de96d-42c5-4149-a38e-d164083ca386",
- "Column": 0,
- "Row": 5,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Motor.MotorWidget, Tango.FSE.Diagnostics",
- "Motor": "MOTO_LLOADING",
- "EnableComponentSelection": false,
- "Settings": {
- "Speed": 350,
- "Color": "#FF141414"
- },
- "ID": "9277c669-26be-4997-8bea-f3c7ca3bc209",
- "Column": 3,
- "Row": 5,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Motor.MotorWidget, Tango.FSE.Diagnostics",
- "Motor": "MOTO_DRYER_LID",
- "EnableComponentSelection": false,
- "Settings": {
- "Speed": 10,
- "Color": "#FF141414"
- },
- "ID": "487cfead-4c4e-4770-a5b5-6d6e023e4ec7",
- "Column": 6,
- "Row": 5,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Motor.MotorWidget, Tango.FSE.Diagnostics",
- "Motor": "MOTO_DH_LID",
- "EnableComponentSelection": false,
- "Settings": {
- "Speed": 350,
- "Color": "#FF141414"
- },
- "ID": "315bcacc-f4ce-43b7-b4fe-226b5239ea1c",
- "Column": 9,
- "Row": 5,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Motor.MotorWidget, Tango.FSE.Diagnostics",
- "Motor": "MOTO_RLOADING",
- "EnableComponentSelection": false,
- "Settings": {
- "Speed": 500,
- "Color": "#FF141414"
- },
- "ID": "8cb7f490-0ccc-45e7-ab35-7f7737e84181",
- "Column": 12,
- "Row": 5,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Motor.MotorWidget, Tango.FSE.Diagnostics",
- "Motor": "MOTO_LDANCER2",
- "EnableComponentSelection": false,
- "Settings": {
- "Speed": 500,
- "Color": "#FF141414"
- },
- "ID": "3b1ea0eb-8879-47c8-beee-bc677e39ffef",
- "Column": 0,
- "Row": 10,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Motor.MotorWidget, Tango.FSE.Diagnostics",
- "Motor": "MOTO_LDANCER1",
- "EnableComponentSelection": false,
- "Settings": {
- "Speed": 500,
- "Color": "#FF141414"
- },
- "ID": "a1fc3115-5145-4782-86fc-27e3d8160292",
- "Column": 3,
- "Row": 10,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Motor.MotorWidget, Tango.FSE.Diagnostics",
- "Motor": "MOTO_DRYER_LOADARM",
- "EnableComponentSelection": false,
- "Settings": {
- "Speed": 200,
- "Color": "#FF141414"
- },
- "ID": "d3d05e7b-15c8-4e0e-84d4-1199b53c4718",
- "Column": 6,
- "Row": 10,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Motor.MotorWidget, Tango.FSE.Diagnostics",
- "Motor": "MOTO_RDANCER",
- "EnableComponentSelection": false,
- "Settings": {
- "Speed": 20,
- "Color": "#FF141414"
- },
- "ID": "b31aa0c3-663f-4739-904a-92991c292698",
- "Column": 12,
- "Row": 10,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Output.OutputWidget, Tango.FSE.Diagnostics",
- "IO": "GPO_LED3",
- "EnableComponentSelection": true,
- "ID": "ea062fba-5dbe-4b92-b641-f6b18fb38e3f",
- "Column": 10,
- "Row": 2,
- "ColumnSpan": 1,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": false,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Output.OutputWidget, Tango.FSE.Diagnostics",
- "IO": "GPO_TFEED_BREAK_1",
- "EnableComponentSelection": true,
- "ID": "419fa0da-9c51-49fc-82cf-83707c03a44a",
- "Column": 10,
- "Row": 12,
- "ColumnSpan": 1,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": false,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Output.OutputWidget, Tango.FSE.Diagnostics",
- "IO": "GPO_BLOWER_PWM",
- "EnableComponentSelection": true,
- "ID": "1140ad8f-ac3c-449e-8d00-cf6cb6363d6c",
- "Column": 7,
- "Row": 17,
- "ColumnSpan": 1,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Top",
- "CustomComponentName": "Dryer Blower"
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Text.TextWidget, Tango.FSE.Diagnostics",
- "Text": "Right Dye Head Actuator",
- "Color": "#FFD3D3D3",
- "Settings": {},
- "ID": "3dc2a4c2-c7a8-40b6-94dc-2c535b5fc814",
- "Column": 9,
- "Row": 0,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 72.0,
- "Height": 100.0,
- "DisplayComponentName": false,
- "ComponentNameAlignment": "Top",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Text.TextWidget, Tango.FSE.Diagnostics",
- "Text": "Left Dye Head Actuator",
- "Color": "#FFD3D3D3",
- "Settings": {},
- "ID": "ee9bd6ae-4567-4cd7-a4fa-bb18814fb831",
- "Column": 9,
- "Row": 10,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 72.0,
- "Height": 100.0,
- "DisplayComponentName": false,
- "ComponentNameAlignment": "Top",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Output.OutputWidget, Tango.FSE.Diagnostics",
- "IO": "GPO_SPARE_SSR13_CTRL",
- "EnableComponentSelection": true,
- "ID": "9809c577-baea-4c34-94cb-9c7df7e23943",
- "Column": 10,
- "Row": 17,
- "ColumnSpan": 1,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Top",
- "CustomComponentName": "Dye Head Magnet"
- }
- ]
- }
- ]
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/Procedures/diagnostics.tdp b/Software/Stubs Collection/Procedures/diagnostics.tdp
deleted file mode 100644
index d013b6521..000000000
--- a/Software/Stubs Collection/Procedures/diagnostics.tdp
+++ /dev/null
@@ -1,2597 +0,0 @@
-{
- "Name": "Diagnostics Project",
- "Tabs": [
- {
- "Name": "Temperatures",
- "Columns": [
- {
- "Width": "86.1904761904762"
- },
- {
- "Width": "86.1904761904763"
- },
- {
- "Width": "86.1904761904763"
- },
- {
- "Width": "86.1904761904763"
- },
- {
- "Width": "86.1904761904762"
- },
- {
- "Width": "86.1904761904761"
- },
- {
- "Width": "86.1904761904761"
- },
- {
- "Width": "86.1904761904761"
- },
- {
- "Width": "86.1904761904761"
- },
- {
- "Width": "86.1904761904763"
- },
- {
- "Width": "86.1904761904763"
- },
- {
- "Width": "86.1904761904761"
- },
- {
- "Width": "86.1904761904761"
- },
- {
- "Width": "83.1904761904761"
- },
- {
- "Width": "89.1904761904761"
- },
- {
- "Width": "86.1904761904761"
- },
- {
- "Width": "86.1904761904761"
- },
- {
- "Width": "86.1904761904761"
- },
- {
- "Width": "86.1904761904761"
- },
- {
- "Width": "86.1904761904761"
- },
- {
- "Width": "86.1904761904761"
- }
- ],
- "Rows": [
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- }
- ],
- "Widgets": [
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Heater.HeaterWidget, Tango.FSE.Diagnostics",
- "Heater": "DryerSecondaryHeater",
- "SetPoint": 0.0,
- "EnableComponentSelection": false,
- "ID": "4e1f30d3-0f63-403a-94b1-87d474bf8dbf",
- "Column": 0,
- "Row": 1,
- "ColumnSpan": 2,
- "RowSpan": 6,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Heater.HeaterWidget, Tango.FSE.Diagnostics",
- "Heater": "DryerMainHeater",
- "SetPoint": 44.0,
- "EnableComponentSelection": false,
- "ID": "972df749-0f5f-4b11-8225-b7e0a4fed444",
- "Column": 2,
- "Row": 1,
- "ColumnSpan": 2,
- "RowSpan": 6,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Heater.HeaterWidget, Tango.FSE.Diagnostics",
- "Heater": "DryerAirHeater",
- "SetPoint": 180.0,
- "EnableComponentSelection": false,
- "ID": "b089f312-1f35-4d3d-9bd6-0e6dae7f7014",
- "Column": 4,
- "Row": 1,
- "ColumnSpan": 2,
- "RowSpan": 6,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Heater.HeaterWidget, Tango.FSE.Diagnostics",
- "Heater": "MixerHeater",
- "SetPoint": 80.0,
- "EnableComponentSelection": false,
- "ID": "b63ec13e-b4e3-4d2c-9743-b25c2206a2d2",
- "Column": 6,
- "Row": 1,
- "ColumnSpan": 2,
- "RowSpan": 6,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Text.TextWidget, Tango.FSE.Diagnostics",
- "Text": "dryer & mixer",
- "Color": "#FFD3D3D3",
- "Settings": {},
- "ID": "5fa35015-5641-48d8-8e70-519780cfd990",
- "Column": 0,
- "Row": 0,
- "ColumnSpan": 8,
- "RowSpan": 1,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": false,
- "ComponentNameAlignment": "Top",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Heater.HeaterWidget, Tango.FSE.Diagnostics",
- "Heater": "HeaterZone6",
- "SetPoint": 140.0,
- "EnableComponentSelection": false,
- "ID": "e966098e-ce3f-4f59-898e-2adc99fe5ded",
- "Column": 0,
- "Row": 9,
- "ColumnSpan": 2,
- "RowSpan": 6,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Heater.HeaterWidget, Tango.FSE.Diagnostics",
- "Heater": "HeaterZone12",
- "SetPoint": 145.0,
- "EnableComponentSelection": false,
- "ID": "51c18d1c-2b21-46d2-9500-ffc96eb7f53f",
- "Column": 0,
- "Row": 15,
- "ColumnSpan": 2,
- "RowSpan": 6,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Heater.HeaterWidget, Tango.FSE.Diagnostics",
- "Heater": "HeaterZone5",
- "SetPoint": 135.0,
- "EnableComponentSelection": false,
- "ID": "0161829b-08d4-482c-ad02-5a8406a7d4f3",
- "Column": 2,
- "Row": 9,
- "ColumnSpan": 2,
- "RowSpan": 6,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Heater.HeaterWidget, Tango.FSE.Diagnostics",
- "Heater": "HeaterZone4",
- "SetPoint": 120.0,
- "EnableComponentSelection": false,
- "ID": "4b0a8a4f-8391-4ab4-9e7f-0a5ac779901d",
- "Column": 4,
- "Row": 9,
- "ColumnSpan": 2,
- "RowSpan": 6,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Heater.HeaterWidget, Tango.FSE.Diagnostics",
- "Heater": "HeaterZone3",
- "SetPoint": 120.0,
- "EnableComponentSelection": false,
- "ID": "a267bc1c-d67a-45f9-93fd-3f20158ce27b",
- "Column": 6,
- "Row": 9,
- "ColumnSpan": 2,
- "RowSpan": 6,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Heater.HeaterWidget, Tango.FSE.Diagnostics",
- "Heater": "HeaterZone2",
- "SetPoint": 100.0,
- "EnableComponentSelection": false,
- "ID": "60dba38a-d852-417c-b587-f921e900ad82",
- "Column": 8,
- "Row": 9,
- "ColumnSpan": 2,
- "RowSpan": 6,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Heater.HeaterWidget, Tango.FSE.Diagnostics",
- "Heater": "HeaterZone1",
- "SetPoint": 80.0,
- "EnableComponentSelection": false,
- "ID": "b155d1d5-c32d-42b4-b08c-bdd03689d523",
- "Column": 10,
- "Row": 9,
- "ColumnSpan": 2,
- "RowSpan": 6,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Heater.HeaterWidget, Tango.FSE.Diagnostics",
- "Heater": "HeaterZone11",
- "SetPoint": 140.0,
- "EnableComponentSelection": false,
- "ID": "d013ea3a-cd95-457b-bebe-51675260a04f",
- "Column": 2,
- "Row": 15,
- "ColumnSpan": 2,
- "RowSpan": 6,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Heater.HeaterWidget, Tango.FSE.Diagnostics",
- "Heater": "HeaterZone10",
- "SetPoint": 140.0,
- "EnableComponentSelection": false,
- "ID": "73ef24de-d45e-421a-a1ce-c9ddfc556444",
- "Column": 4,
- "Row": 15,
- "ColumnSpan": 2,
- "RowSpan": 6,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Heater.HeaterWidget, Tango.FSE.Diagnostics",
- "Heater": "HeaterZone9",
- "SetPoint": 140.0,
- "EnableComponentSelection": false,
- "ID": "d538b7bb-9f43-4d1a-9180-1506b13172ac",
- "Column": 6,
- "Row": 15,
- "ColumnSpan": 2,
- "RowSpan": 6,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Heater.HeaterWidget, Tango.FSE.Diagnostics",
- "Heater": "HeaterZone8",
- "SetPoint": 140.0,
- "EnableComponentSelection": false,
- "ID": "085aafbd-8934-4388-bdc5-87931f0cb692",
- "Column": 8,
- "Row": 15,
- "ColumnSpan": 2,
- "RowSpan": 6,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Heater.HeaterWidget, Tango.FSE.Diagnostics",
- "Heater": "HeaterZone7",
- "SetPoint": 140.0,
- "EnableComponentSelection": false,
- "ID": "f4a44bb8-47f7-4c23-90a1-0f625a8af955",
- "Column": 10,
- "Row": 15,
- "ColumnSpan": 2,
- "RowSpan": 6,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Text.TextWidget, Tango.FSE.Diagnostics",
- "Text": "Flat Head",
- "Color": "#FFD3D3D3",
- "Settings": {},
- "ID": "1e6f3722-d4cf-41b6-bd3d-a64a57e0b9fe",
- "Column": 0,
- "Row": 8,
- "ColumnSpan": 8,
- "RowSpan": 1,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": false,
- "ComponentNameAlignment": "Top",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "OverallTemperature",
- "EnableComponentSelection": true,
- "Settings": {
- "DecimalPlaces": 0,
- "Color": "#FFDCDCDC"
- },
- "ID": "1247f28e-fff9-4605-8bd8-91300e49e385",
- "Column": 9,
- "Row": 1,
- "ColumnSpan": 3,
- "RowSpan": 4,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": "Machine Temp."
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Text.TextWidget, Tango.FSE.Diagnostics",
- "Text": "ambient",
- "Color": "#FFD3D3D3",
- "Settings": {},
- "ID": "7d9d39f8-97de-4790-a8fa-77d30eeb783d",
- "Column": 9,
- "Row": 0,
- "ColumnSpan": 3,
- "RowSpan": 1,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": false,
- "ComponentNameAlignment": "Top",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Heater.HeaterWidget, Tango.FSE.Diagnostics",
- "Heater": "HeaterZone3",
- "SetPoint": 120.0,
- "EnableComponentSelection": true,
- "ID": "4cc384a5-58b8-40b8-bd7c-da77fff2ab4a",
- "Column": 13,
- "Row": 15,
- "ColumnSpan": 2,
- "RowSpan": 6,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Heater.HeaterWidget, Tango.FSE.Diagnostics",
- "Heater": "HeaterZone2",
- "SetPoint": 100.0,
- "EnableComponentSelection": false,
- "ID": "2c2d9abf-06fb-4b05-ab24-bad87fdd1dc1",
- "Column": 15,
- "Row": 15,
- "ColumnSpan": 2,
- "RowSpan": 6,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Heater.HeaterWidget, Tango.FSE.Diagnostics",
- "Heater": "HeaterZone1",
- "SetPoint": 80.0,
- "EnableComponentSelection": false,
- "ID": "d2c56d11-4048-428d-9639-a7861b7610dc",
- "Column": 17,
- "Row": 15,
- "ColumnSpan": 2,
- "RowSpan": 6,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Text.TextWidget, Tango.FSE.Diagnostics",
- "Text": "arc head temp.",
- "Color": "#FFD3D3D3",
- "Settings": {},
- "ID": "4a6bb5ee-602f-4f78-91d9-c97356d5ffea",
- "Column": 14,
- "Row": 14,
- "ColumnSpan": 6,
- "RowSpan": 1,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": false,
- "ComponentNameAlignment": "Top",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Blower.BlowerWidget, Tango.FSE.Diagnostics",
- "Blower": "HeadBlower2",
- "SetPoint": 0.0,
- "EnableComponentSelection": false,
- "ID": "be0a08fe-87ee-4751-b8c0-434495a7faf0",
- "Column": 15,
- "Row": 4,
- "ColumnSpan": 2,
- "RowSpan": 3,
- "Width": 87.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Text.TextWidget, Tango.FSE.Diagnostics",
- "Text": "arc blowers air flow",
- "Color": "#FFD3D3D3",
- "Settings": {},
- "ID": "6fbf6983-92e6-4d6a-8696-aff46e5b0fc0",
- "Column": 13,
- "Row": 0,
- "ColumnSpan": 8,
- "RowSpan": 1,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": false,
- "ComponentNameAlignment": "Top",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Blower.BlowerWidget, Tango.FSE.Diagnostics",
- "Blower": "HeadBlower1",
- "SetPoint": 0.0,
- "EnableComponentSelection": false,
- "ID": "85ee4ecf-ddb1-47f4-8065-a8d85f258ed0",
- "Column": 15,
- "Row": 1,
- "ColumnSpan": 2,
- "RowSpan": 3,
- "Width": 87.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "HeadBlowerVoltage2",
- "EnableComponentSelection": true,
- "Settings": {
- "DecimalPlaces": 0,
- "Color": "#FFDCDCDC"
- },
- "ID": "4feb8076-1c1f-4c4c-9dc6-b79f41abcdeb",
- "Column": 13,
- "Row": 11,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "HeadBlowerVoltage1",
- "EnableComponentSelection": true,
- "Settings": {
- "DecimalPlaces": 0,
- "Color": "#FFDCDCDC"
- },
- "ID": "59df100b-f1d9-4d93-8360-519f158d06c9",
- "Column": 16,
- "Row": 11,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Heater.HeaterWidget, Tango.FSE.Diagnostics",
- "Heater": "HeadCoverHeater2",
- "SetPoint": 250.0,
- "EnableComponentSelection": true,
- "ID": "85458771-e464-4f50-899c-8ac4ec908c44",
- "Column": 13,
- "Row": 1,
- "ColumnSpan": 2,
- "RowSpan": 6,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Heater.HeaterWidget, Tango.FSE.Diagnostics",
- "Heater": "HeadCoverHeater1",
- "SetPoint": 15.0,
- "EnableComponentSelection": true,
- "ID": "fbd44490-0310-4338-9e17-a5169b3b9714",
- "Column": 17,
- "Row": 1,
- "ColumnSpan": 2,
- "RowSpan": 6,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "HeadBlower2AirFlow",
- "EnableComponentSelection": true,
- "Settings": {
- "DecimalPlaces": 2,
- "Color": "#FFDCDCDC"
- },
- "ID": "b74ab243-1ed3-4972-8f7f-cd15b6b21426",
- "Column": 13,
- "Row": 8,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "HeadBlower1AirFlow",
- "EnableComponentSelection": true,
- "Settings": {
- "DecimalPlaces": 2,
- "Color": "#FFDCDCDC"
- },
- "ID": "89fcdbce-40d4-4ee1-a057-bf3f0f23fd33",
- "Column": 16,
- "Row": 8,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "GasSensor",
- "EnableComponentSelection": true,
- "Settings": {
- "DecimalPlaces": 2,
- "Color": "#FFDCDCDC"
- },
- "ID": "c196fc54-627e-47d7-a736-e8db7279b94e",
- "Column": 9,
- "Row": 5,
- "ColumnSpan": 3,
- "RowSpan": 4,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": "VOC - Gas Sensor"
- }
- ]
- },
- {
- "Name": "Dispensers",
- "Columns": [
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- }
- ],
- "Rows": [
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- }
- ],
- "Widgets": [
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "Dispenser8Pressure",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 0,
- "Color": "#FFDCDCDC"
- },
- "ID": "99496cd2-adb1-4fe9-8944-6f1785530095",
- "Column": 0,
- "Row": 0,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Dispenser.DispenserWidget, Tango.FSE.Diagnostics",
- "Dispenser": "Dispenser8",
- "EnableComponentSelection": false,
- "Settings": {
- "Speed": 400,
- "Color": "#FF141414"
- },
- "ID": "3f83107f-ec56-4986-b7c8-22b270f650ec",
- "Column": 0,
- "Row": 5,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": false,
- "ComponentNameAlignment": "Top",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "Dispenser8MotorFrequency",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 0,
- "Color": "#FFDCDCDC"
- },
- "ID": "7332455a-9cc3-4f39-b8f0-57a31eb1f78f",
- "Column": 0,
- "Row": 10,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "Dispenser7Pressure",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 0,
- "Color": "#FFDCDCDC"
- },
- "ID": "a0ebd9d7-b01c-4ca3-b62e-824b02a66c3c",
- "Column": 3,
- "Row": 0,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Dispenser.DispenserWidget, Tango.FSE.Diagnostics",
- "Dispenser": "Dispenser7",
- "EnableComponentSelection": false,
- "Settings": {
- "Speed": 400,
- "Color": "#FF141414"
- },
- "ID": "6a22335a-50f3-482b-99a9-be846e8c084b",
- "Column": 3,
- "Row": 5,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": false,
- "ComponentNameAlignment": "Top",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "Dispenser7MotorFrequency",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 0,
- "Color": "#FFDCDCDC"
- },
- "ID": "ef968e12-525e-4923-b36d-a04aa8b32a4f",
- "Column": 3,
- "Row": 10,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "Dispenser6Pressure",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 0,
- "Color": "#FFDCDCDC"
- },
- "ID": "52260052-843a-4fc1-88ec-64ef9dd13657",
- "Column": 6,
- "Row": 0,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Dispenser.DispenserWidget, Tango.FSE.Diagnostics",
- "Dispenser": "Dispenser6",
- "EnableComponentSelection": false,
- "Settings": {
- "Speed": 400,
- "Color": "#FF141414"
- },
- "ID": "d770f52d-6722-4118-b156-061e69d821a8",
- "Column": 6,
- "Row": 5,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": false,
- "ComponentNameAlignment": "Top",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "Dispenser6MotorFrequency",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 0,
- "Color": "#FFDCDCDC"
- },
- "ID": "2b65a99b-fcc6-448a-b53d-9e1a3adf2077",
- "Column": 6,
- "Row": 10,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "Dispenser5Pressure",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 0,
- "Color": "#FFDCDCDC"
- },
- "ID": "dd286e34-4441-4814-8aec-ffff471e1be8",
- "Column": 9,
- "Row": 0,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Dispenser.DispenserWidget, Tango.FSE.Diagnostics",
- "Dispenser": "Dispenser5",
- "EnableComponentSelection": false,
- "Settings": {
- "Speed": 400,
- "Color": "#FF141414"
- },
- "ID": "d2a47d28-35f5-4974-b62d-f5f70dc91e04",
- "Column": 9,
- "Row": 5,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": false,
- "ComponentNameAlignment": "Top",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "Dispenser5MotorFrequency",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 0,
- "Color": "#FFDCDCDC"
- },
- "ID": "b039b3fc-6c93-4d70-a92a-c72d718444d9",
- "Column": 9,
- "Row": 10,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "Dispenser4Pressure",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 0,
- "Color": "#FFDCDCDC"
- },
- "ID": "b8c9e3f6-5f4d-44cd-8b6e-c7d16489e573",
- "Column": 12,
- "Row": 0,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Dispenser.DispenserWidget, Tango.FSE.Diagnostics",
- "Dispenser": "Dispenser4",
- "EnableComponentSelection": false,
- "Settings": {
- "Speed": 400,
- "Color": "#FF141414"
- },
- "ID": "3898cc2c-8177-450a-8255-62d6f7df0fbb",
- "Column": 12,
- "Row": 5,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": false,
- "ComponentNameAlignment": "Top",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "Dispenser4MotorFrequency",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 0,
- "Color": "#FFDCDCDC"
- },
- "ID": "49308835-57c5-45ca-807f-34fc2ff7a86f",
- "Column": 12,
- "Row": 10,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "Dispenser3Pressure",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 0,
- "Color": "#FFDCDCDC"
- },
- "ID": "82c2ee42-9b28-44ec-9ec2-ca69d9319ecc",
- "Column": 15,
- "Row": 0,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Dispenser.DispenserWidget, Tango.FSE.Diagnostics",
- "Dispenser": "Dispenser3",
- "EnableComponentSelection": false,
- "Settings": {
- "Speed": 400,
- "Color": "#FF141414"
- },
- "ID": "73ebff65-537d-42ae-b364-2b5ad5452e1e",
- "Column": 15,
- "Row": 5,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": false,
- "ComponentNameAlignment": "Top",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "Dispenser3MotorFrequency",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 0,
- "Color": "#FFDCDCDC"
- },
- "ID": "b8bdd5e1-3441-49db-8573-d8efbfb1b64d",
- "Column": 15,
- "Row": 10,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "Dispenser2Pressure",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 0,
- "Color": "#FFDCDCDC"
- },
- "ID": "99901934-8bad-4e99-b35f-591be4d32d49",
- "Column": 18,
- "Row": 0,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Dispenser.DispenserWidget, Tango.FSE.Diagnostics",
- "Dispenser": "Dispenser2",
- "EnableComponentSelection": false,
- "Settings": {
- "Speed": 400,
- "Color": "#FF141414"
- },
- "ID": "a9cae28b-f141-4522-ae88-5294634d7471",
- "Column": 18,
- "Row": 5,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": false,
- "ComponentNameAlignment": "Top",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "Dispenser2MotorFrequency",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 0,
- "Color": "#FFDCDCDC"
- },
- "ID": "42b8fc1f-f8ba-4201-85d2-66eeb739d766",
- "Column": 18,
- "Row": 10,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "Dispenser1Pressure",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 0,
- "Color": "#FFDCDCDC"
- },
- "ID": "65b945dd-30bb-4f59-a336-d36d22aac6bc",
- "Column": 21,
- "Row": 0,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Dispenser.DispenserWidget, Tango.FSE.Diagnostics",
- "Dispenser": "Dispenser1",
- "EnableComponentSelection": false,
- "Settings": {
- "Speed": 400,
- "Color": "#FF141414"
- },
- "ID": "aaa1a635-469f-4d43-8070-cebb7bc82424",
- "Column": 21,
- "Row": 5,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": false,
- "ComponentNameAlignment": "Top",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "Dispenser1MotorFrequency",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 0,
- "Color": "#FFDCDCDC"
- },
- "ID": "32356cb9-37bc-4191-a7f9-8f24fb1d8543",
- "Column": 21,
- "Row": 10,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Valve.ValveWidget, Tango.FSE.Diagnostics",
- "Valve": "MixerWasteValve",
- "EnableComponentSelection": false,
- "ID": "93fc15ce-6c61-4458-914b-3133727c730a",
- "Column": 9,
- "Row": 20,
- "ColumnSpan": 6,
- "RowSpan": 4,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Top",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Valve.ValveWidget, Tango.FSE.Diagnostics",
- "Valve": "DispenserValve8",
- "EnableComponentSelection": true,
- "ID": "834b7125-8740-400f-9378-ec606bca7afb",
- "Column": 0,
- "Row": 16,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Valve.ValveWidget, Tango.FSE.Diagnostics",
- "Valve": "MidTankAirValve7",
- "EnableComponentSelection": true,
- "ID": "d76ba317-0f8c-41e2-974c-3c29e4a1aecd",
- "Column": 3,
- "Row": 16,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Valve.ValveWidget, Tango.FSE.Diagnostics",
- "Valve": "DispenserValve5",
- "EnableComponentSelection": true,
- "ID": "83c7739e-120d-4d60-ab6d-6da021426ba5",
- "Column": 9,
- "Row": 16,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Valve.ValveWidget, Tango.FSE.Diagnostics",
- "Valve": "DispenserValve4",
- "EnableComponentSelection": true,
- "ID": "8abc1879-9041-4a51-9aa1-6ad9cdba6944",
- "Column": 12,
- "Row": 16,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Valve.ValveWidget, Tango.FSE.Diagnostics",
- "Valve": "DispenserValve3",
- "EnableComponentSelection": true,
- "ID": "c3e0304a-9154-46b8-b61c-c872d38a4015",
- "Column": 15,
- "Row": 16,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Valve.ValveWidget, Tango.FSE.Diagnostics",
- "Valve": "DispenserValve2",
- "EnableComponentSelection": true,
- "ID": "b66ffd1d-96eb-4a6d-89b7-67e966773987",
- "Column": 18,
- "Row": 16,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Valve.ValveWidget, Tango.FSE.Diagnostics",
- "Valve": "DispenserValve1",
- "EnableComponentSelection": true,
- "ID": "ca836926-17e6-416c-9357-1f82a15e74e0",
- "Column": 21,
- "Row": 16,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- }
- ]
- },
- {
- "Name": "Waste",
- "Columns": [
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- },
- {
- "Width": "*"
- }
- ],
- "Rows": [
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- }
- ],
- "Widgets": [
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "MidTank1Level",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 0,
- "Color": "#FFDCDCDC"
- },
- "ID": "50542753-1128-4c4a-b13f-397be9377fdd",
- "Column": 21,
- "Row": 0,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "MidTank2Level",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 2,
- "Color": "#FFDCDCDC"
- },
- "ID": "07904972-8ffe-4a4a-b372-c91e87d72371",
- "Column": 18,
- "Row": 0,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "MidTank3Level",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 2,
- "Color": "#FFDCDCDC"
- },
- "ID": "b1da7145-a8dd-4c26-9585-7d481850a91b",
- "Column": 15,
- "Row": 0,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "MidTank4Level",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 2,
- "Color": "#FFDCDCDC"
- },
- "ID": "168a83a0-a99b-4c66-ba4a-9ab1a49703bd",
- "Column": 12,
- "Row": -10,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "MidTank5Level",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 2,
- "Color": "#FFDCDCDC"
- },
- "ID": "80a362cf-52e8-4e1c-b032-bbd5162bf843",
- "Column": 9,
- "Row": 0,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "MidTank6Level",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 0,
- "Color": "#FFDCDCDC"
- },
- "ID": "f00c9ac5-0f3e-4a93-aca0-0e792dd1d551",
- "Column": 6,
- "Row": 0,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "MidTank7Level",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 2,
- "Color": "#FFDCDCDC"
- },
- "ID": "63b22b2c-11ce-4f29-90f9-7c24bbfdd305",
- "Column": 3,
- "Row": 0,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "MidTank8Level",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 2,
- "Color": "#FFDCDCDC"
- },
- "ID": "cfcdf30f-29c9-4ad4-8eb8-5af1c6853501",
- "Column": 0,
- "Row": 0,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "BlowerVoltage",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 0,
- "Color": "#FFDCDCDC"
- },
- "ID": "89b6640f-ca6e-48d4-82f0-7edb1191986b",
- "Column": 0,
- "Row": 12,
- "ColumnSpan": 2,
- "RowSpan": 4,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "HeadAirFlow",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 2,
- "Color": "#FFDCDCDC"
- },
- "ID": "ba94949e-6371-4041-906f-ccbcc1953254",
- "Column": 2,
- "Row": 12,
- "ColumnSpan": 2,
- "RowSpan": 4,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "DryerAirFlow",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 2,
- "Color": "#FFDCDCDC"
- },
- "ID": "0763fb88-e1c1-40db-b883-04d25ce52a78",
- "Column": 4,
- "Row": 12,
- "ColumnSpan": 2,
- "RowSpan": 4,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Blower.BlowerWidget, Tango.FSE.Diagnostics",
- "Blower": "DefaultBlower",
- "SetPoint": 0.0,
- "EnableComponentSelection": false,
- "ID": "8e027edd-10a5-42e5-be6a-1a3eb6c01b21",
- "Column": 1,
- "Row": 17,
- "ColumnSpan": 4,
- "RowSpan": 4,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": false,
- "ComponentNameAlignment": "Top",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Text.TextWidget, Tango.FSE.Diagnostics",
- "Text": "cartridge",
- "Color": "#FFD3D3D3",
- "Settings": {},
- "ID": "068fbd16-93ce-440c-a6c0-7604573565f5",
- "Column": 18,
- "Row": 6,
- "ColumnSpan": 4,
- "RowSpan": 1,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": false,
- "ComponentNameAlignment": "Top",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Input.InputWidget, Tango.FSE.Diagnostics",
- "IO": "GPI_TFEED_BREAK_1",
- "EnableComponentSelection": true,
- "ID": "d6706cbe-fa75-4b2f-b343-eff3b3f766e7",
- "Column": 18,
- "Row": 12,
- "ColumnSpan": 2,
- "RowSpan": 3,
- "Width": 80.0,
- "Height": 80.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": "Ink "
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Input.InputWidget, Tango.FSE.Diagnostics",
- "IO": "LS_DISPENSER_25_1",
- "EnableComponentSelection": true,
- "ID": "d5a84216-a8ca-4676-87b0-6c399aded459",
- "Column": 18,
- "Row": 15,
- "ColumnSpan": 2,
- "RowSpan": 3,
- "Width": 80.0,
- "Height": 80.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": "Waste High"
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Input.InputWidget, Tango.FSE.Diagnostics",
- "IO": "LS_DH_CLEAN_DOWN",
- "EnableComponentSelection": true,
- "ID": "aadf643f-7652-484a-bee3-7957feff3638",
- "Column": 18,
- "Row": 18,
- "ColumnSpan": 2,
- "RowSpan": 3,
- "Width": 80.0,
- "Height": 80.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": "Waste Low"
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Monitor.MonitorWidget, Tango.FSE.Diagnostics",
- "Monitor": "WasteLevel",
- "EnableComponentSelection": false,
- "Settings": {
- "DecimalPlaces": 2,
- "Color": "#FFDCDCDC"
- },
- "ID": "d3844b51-1842-4f96-a3f9-204fa3257391",
- "Column": 14,
- "Row": 12,
- "ColumnSpan": 2,
- "RowSpan": 4,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Output.OutputWidget, Tango.FSE.Diagnostics",
- "IO": "GPO_WHS_WTANKPUMP2",
- "EnableComponentSelection": true,
- "ID": "c87815f5-b563-472b-b1e5-cd0ba750280d",
- "Column": 16,
- "Row": 18,
- "ColumnSpan": 2,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": "Waste Valve"
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Output.OutputWidget, Tango.FSE.Diagnostics",
- "IO": "GPO_WASTECH_PUMP2",
- "EnableComponentSelection": false,
- "ID": "a36513f1-3038-4820-b7f4-033ae81749cc",
- "Column": 14,
- "Row": 18,
- "ColumnSpan": 2,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": "Waste Pump"
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Valve.ValveWidget, Tango.FSE.Diagnostics",
- "Valve": "MidTankInkValve8",
- "EnableComponentSelection": true,
- "ID": "47805db1-34e9-4190-8bd7-8102bd213957",
- "Column": 0,
- "Row": 5,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": "Ink Valve 8"
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Valve.ValveWidget, Tango.FSE.Diagnostics",
- "Valve": "MidTankInkValve7",
- "EnableComponentSelection": true,
- "ID": "376973fb-b249-4f31-ba6d-d207f692f246",
- "Column": 3,
- "Row": 5,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": "Ink Valve 7"
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Valve.ValveWidget, Tango.FSE.Diagnostics",
- "Valve": "MidTankInkValve5",
- "EnableComponentSelection": true,
- "ID": "aae3c107-4f3b-4e3b-b534-961a1c2d156b",
- "Column": 9,
- "Row": 5,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": "Ink Valve 5"
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Valve.ValveWidget, Tango.FSE.Diagnostics",
- "Valve": "MidTankInkValve4",
- "EnableComponentSelection": true,
- "ID": "f31899df-105e-4b2c-a9b1-11e27cab6813",
- "Column": 12,
- "Row": 5,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": "Ink Valve 4"
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Valve.ValveWidget, Tango.FSE.Diagnostics",
- "Valve": "MidTankInkValve3",
- "EnableComponentSelection": true,
- "ID": "a5da1fdf-74dd-4870-9cf6-95b11c44fc42",
- "Column": 15,
- "Row": 5,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": "Ink Valve 3"
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Valve.ValveWidget, Tango.FSE.Diagnostics",
- "Valve": "MidTankInkValve3",
- "EnableComponentSelection": true,
- "ID": "ff292bee-e448-4e0e-a467-3f3c32f103ff",
- "Column": 21,
- "Row": 5,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": "Ink Valve 1"
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Valve.ValveWidget, Tango.FSE.Diagnostics",
- "Valve": "MidTankInkValve2",
- "EnableComponentSelection": true,
- "ID": "7ee9d1b1-0449-4aab-a777-4cf00868efb7",
- "Column": 18,
- "Row": 5,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": "Ink Valve 2"
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Valve.ValveWidget, Tango.FSE.Diagnostics",
- "Valve": "MidTankAirValve8",
- "EnableComponentSelection": true,
- "ID": "7cf0e6f5-a76c-4618-8c5d-0ead628716bf",
- "Column": 0,
- "Row": 8,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": "Air Valve 8"
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Valve.ValveWidget, Tango.FSE.Diagnostics",
- "Valve": "MidTankAirValve7",
- "EnableComponentSelection": true,
- "ID": "e9e160ac-0e97-465f-ae5e-6fa405976682",
- "Column": 3,
- "Row": 8,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": "Air Valve 7"
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Valve.ValveWidget, Tango.FSE.Diagnostics",
- "Valve": "MidTankAirValve5",
- "EnableComponentSelection": true,
- "ID": "943a16e3-b67e-4699-9cfb-4d561acc2701",
- "Column": 9,
- "Row": 8,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": "Air Valve 5"
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Valve.ValveWidget, Tango.FSE.Diagnostics",
- "Valve": "MidTankAirValve4",
- "EnableComponentSelection": true,
- "ID": "0660f5cf-2137-4321-b50a-578d3609d046",
- "Column": 12,
- "Row": 8,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": "Air Valve 4"
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Valve.ValveWidget, Tango.FSE.Diagnostics",
- "Valve": "MidTankAirValve3",
- "EnableComponentSelection": true,
- "ID": "92fb19fc-97be-491a-ab85-1692cf67edc7",
- "Column": 15,
- "Row": 8,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": "Air Valve 3"
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Valve.ValveWidget, Tango.FSE.Diagnostics",
- "Valve": "MidTankAirValve2",
- "EnableComponentSelection": true,
- "ID": "5d68408a-78bd-4a34-bdeb-102bc1162b66",
- "Column": 18,
- "Row": 8,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": "Air Valve 2"
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Valve.ValveWidget, Tango.FSE.Diagnostics",
- "Valve": "MidTankAirValve1",
- "EnableComponentSelection": true,
- "ID": "a8cf65e0-6f04-4d2d-9871-72ea03d32785",
- "Column": 21,
- "Row": 8,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": "Air Valve 1"
- }
- ]
- },
- {
- "Name": "Thread Insertion",
- "Columns": [
- {
- "Width": "90.5"
- },
- {
- "Width": "90.5"
- },
- {
- "Width": "90.5"
- },
- {
- "Width": "90.5"
- },
- {
- "Width": "90.5"
- },
- {
- "Width": "90.5"
- },
- {
- "Width": "64.0847665847665"
- },
- {
- "Width": "147.394348894349"
- },
- {
- "Width": "60.0208845208844"
- },
- {
- "Width": "64.0847665847665"
- },
- {
- "Width": "144.346437346437"
- },
- {
- "Width": "63.0687960687962"
- },
- {
- "Width": "90.5"
- },
- {
- "Width": "90.5"
- },
- {
- "Width": "90.5"
- },
- {
- "Width": "90.5"
- },
- {
- "Width": "90.5"
- },
- {
- "Width": "90.5"
- },
- {
- "Width": "90.5"
- },
- {
- "Width": "90.5"
- }
- ],
- "Rows": [
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- },
- {
- "Height": "*"
- }
- ],
- "Widgets": [
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Motor.MotorWidget, Tango.FSE.Diagnostics",
- "Motor": "MOTO_SCREW",
- "EnableComponentSelection": false,
- "Settings": {
- "Speed": 500,
- "Color": "#FF141414"
- },
- "ID": "85a82dd4-acdb-4c4e-a3c9-695867f653eb",
- "Column": 0,
- "Row": 0,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Motor.MotorWidget, Tango.FSE.Diagnostics",
- "Motor": "MOTO_LDRIVING",
- "EnableComponentSelection": false,
- "Settings": {
- "Speed": 1000,
- "Color": "#FF141414"
- },
- "ID": "115d0399-3aef-4b22-8ca0-e6d45fe668d7",
- "Column": 3,
- "Row": 0,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Motor.MotorWidget, Tango.FSE.Diagnostics",
- "Motor": "MOTO_DRYER_DRIVING",
- "EnableComponentSelection": false,
- "Settings": {
- "Speed": 1000,
- "Color": "#FF141414"
- },
- "ID": "e855ba30-b217-4597-9f0f-6cc146b70219",
- "Column": 6,
- "Row": 0,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Motor.MotorWidget, Tango.FSE.Diagnostics",
- "Motor": "MOTO_RDRIVING",
- "EnableComponentSelection": false,
- "Settings": {
- "Speed": 500,
- "Color": "#FF141414"
- },
- "ID": "00f25fe2-7d74-4f79-ba1b-24413e5c95c3",
- "Column": 12,
- "Row": 0,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Motor.MotorWidget, Tango.FSE.Diagnostics",
- "Motor": "MOTO_WINDER",
- "EnableComponentSelection": false,
- "Settings": {
- "Speed": 1000,
- "Color": "#FF141414"
- },
- "ID": "199de96d-42c5-4149-a38e-d164083ca386",
- "Column": 0,
- "Row": 5,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Motor.MotorWidget, Tango.FSE.Diagnostics",
- "Motor": "MOTO_LLOADING",
- "EnableComponentSelection": false,
- "Settings": {
- "Speed": 350,
- "Color": "#FF141414"
- },
- "ID": "9277c669-26be-4997-8bea-f3c7ca3bc209",
- "Column": 3,
- "Row": 5,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Motor.MotorWidget, Tango.FSE.Diagnostics",
- "Motor": "MOTO_DRYER_LID",
- "EnableComponentSelection": false,
- "Settings": {
- "Speed": 10,
- "Color": "#FF141414"
- },
- "ID": "487cfead-4c4e-4770-a5b5-6d6e023e4ec7",
- "Column": 6,
- "Row": 5,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Motor.MotorWidget, Tango.FSE.Diagnostics",
- "Motor": "MOTO_DH_LID",
- "EnableComponentSelection": false,
- "Settings": {
- "Speed": 350,
- "Color": "#FF141414"
- },
- "ID": "315bcacc-f4ce-43b7-b4fe-226b5239ea1c",
- "Column": 9,
- "Row": 5,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Motor.MotorWidget, Tango.FSE.Diagnostics",
- "Motor": "MOTO_RLOADING",
- "EnableComponentSelection": false,
- "Settings": {
- "Speed": 500,
- "Color": "#FF141414"
- },
- "ID": "8cb7f490-0ccc-45e7-ab35-7f7737e84181",
- "Column": 12,
- "Row": 5,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Motor.MotorWidget, Tango.FSE.Diagnostics",
- "Motor": "MOTO_LDANCER2",
- "EnableComponentSelection": false,
- "Settings": {
- "Speed": 500,
- "Color": "#FF141414"
- },
- "ID": "3b1ea0eb-8879-47c8-beee-bc677e39ffef",
- "Column": 0,
- "Row": 10,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Motor.MotorWidget, Tango.FSE.Diagnostics",
- "Motor": "MOTO_LDANCER1",
- "EnableComponentSelection": false,
- "Settings": {
- "Speed": 500,
- "Color": "#FF141414"
- },
- "ID": "a1fc3115-5145-4782-86fc-27e3d8160292",
- "Column": 3,
- "Row": 10,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Motor.MotorWidget, Tango.FSE.Diagnostics",
- "Motor": "MOTO_DRYER_LOADARM",
- "EnableComponentSelection": false,
- "Settings": {
- "Speed": 200,
- "Color": "#FF141414"
- },
- "ID": "d3d05e7b-15c8-4e0e-84d4-1199b53c4718",
- "Column": 6,
- "Row": 10,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Motor.MotorWidget, Tango.FSE.Diagnostics",
- "Motor": "MOTO_RDANCER",
- "EnableComponentSelection": false,
- "Settings": {
- "Speed": 20,
- "Color": "#FF141414"
- },
- "ID": "b31aa0c3-663f-4739-904a-92991c292698",
- "Column": 12,
- "Row": 10,
- "ColumnSpan": 3,
- "RowSpan": 5,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Output.OutputWidget, Tango.FSE.Diagnostics",
- "IO": "GPO_LED3",
- "EnableComponentSelection": true,
- "ID": "ea062fba-5dbe-4b92-b641-f6b18fb38e3f",
- "Column": 10,
- "Row": 2,
- "ColumnSpan": 1,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": false,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Output.OutputWidget, Tango.FSE.Diagnostics",
- "IO": "GPO_TFEED_BREAK_1",
- "EnableComponentSelection": true,
- "ID": "419fa0da-9c51-49fc-82cf-83707c03a44a",
- "Column": 10,
- "Row": 12,
- "ColumnSpan": 1,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": false,
- "ComponentNameAlignment": "Bottom",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Output.OutputWidget, Tango.FSE.Diagnostics",
- "IO": "GPO_BLOWER_PWM",
- "EnableComponentSelection": true,
- "ID": "1140ad8f-ac3c-449e-8d00-cf6cb6363d6c",
- "Column": 7,
- "Row": 17,
- "ColumnSpan": 1,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Top",
- "CustomComponentName": "Blower Control"
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Text.TextWidget, Tango.FSE.Diagnostics",
- "Text": "Right Dye Head Actuator",
- "Color": "#FFD3D3D3",
- "Settings": {},
- "ID": "3dc2a4c2-c7a8-40b6-94dc-2c535b5fc814",
- "Column": 9,
- "Row": 0,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 72.0,
- "Height": 100.0,
- "DisplayComponentName": false,
- "ComponentNameAlignment": "Top",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Text.TextWidget, Tango.FSE.Diagnostics",
- "Text": "Left Dye Head Actuator",
- "Color": "#FFD3D3D3",
- "Settings": {},
- "ID": "ee9bd6ae-4567-4cd7-a4fa-bb18814fb831",
- "Column": 9,
- "Row": 10,
- "ColumnSpan": 3,
- "RowSpan": 3,
- "Width": 72.0,
- "Height": 100.0,
- "DisplayComponentName": false,
- "ComponentNameAlignment": "Top",
- "CustomComponentName": null
- },
- {
- "$type": "Tango.FSE.Diagnostics.Project.Widgets.Output.OutputWidget, Tango.FSE.Diagnostics",
- "IO": "GPO_SPARE_SSR13_CTRL",
- "EnableComponentSelection": true,
- "ID": "9809c577-baea-4c34-94cb-9c7df7e23943",
- "Column": 10,
- "Row": 17,
- "ColumnSpan": 1,
- "RowSpan": 3,
- "Width": 100.0,
- "Height": 100.0,
- "DisplayComponentName": true,
- "ComponentNameAlignment": "Top",
- "CustomComponentName": "Dye Head Magnet"
- }
- ]
- }
- ]
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/alarm generator/alarm_gen.exe b/Software/Stubs Collection/alarm generator/alarm_gen.exe
deleted file mode 100644
index 58979127c..000000000
--- a/Software/Stubs Collection/alarm generator/alarm_gen.exe
+++ /dev/null
Binary files differ
diff --git a/Software/Stubs Collection/stubs/Autohome_Control.cs b/Software/Stubs Collection/stubs/Autohome_Control.cs
deleted file mode 100644
index 597a70893..000000000
--- a/Software/Stubs Collection/stubs/Autohome_Control.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-
-
-ProgressRequest progressRequest = new ProgressRequest();
-progressRequest.Amount = 0xAD;
-/*
- AutoHoming_off = 0
- AutoHoming_PowerOff = 1
- AutoHoming_PowerOn_off = 2
- AutoHoming_JobEnd_PowerOn_off = 3
-*/
-//USE 0 TO TURN OFF, 3 TO TURN ON
-progressRequest.Delay = 0;
-
- var response = stubManager.Run<ProgressResponse>(progressRequest);
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/ChangePidDuringRun.cs b/Software/Stubs Collection/stubs/ChangePidDuringRun.cs
deleted file mode 100644
index 9422e2cdc..000000000
--- a/Software/Stubs Collection/stubs/ChangePidDuringRun.cs
+++ /dev/null
@@ -1,52 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.PMR.Hardware;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-StubHeatingTestRequest stubHeatingTestRequest = new StubHeatingTestRequest();
-
-stubHeatingTestRequest.DryerZone1Temp = 0;
-stubHeatingTestRequest.DryerZone2Temp = 0;
-
-HardwarePidControl hardwarePidControl = new HardwarePidControl();
-hardwarePidControl.OutputProportionalPowerLimit = 0.5; //Maximal additional power
-hardwarePidControl.OutputProportionalBand = 5;
-hardwarePidControl.DerivativeTime = 0; //Kd
-hardwarePidControl.SensorCorrectionAdjustment = 0;
-hardwarePidControl.SensorMinValue = 0;
-hardwarePidControl.SensorMaxValue = 0;
-hardwarePidControl.SetPointRampRateorSoftStartRamp = 100; //Ki divider
-hardwarePidControl.SetPointControlOutputRate = 0;
-hardwarePidControl.ControlOutputType = 0.001; ////Dt
-hardwarePidControl.SsrControlOutputType = 0;
-hardwarePidControl.OutputOnOffHysteresisValue = 100; //Kp divider
-hardwarePidControl.ProcessVariableSamplingRate = 10;
-hardwarePidControl.PvInputFilterFactorMode = 4; //averaging the readouts / number of samples
-hardwarePidControl.OutputProportionalCycleTime = 0;
-hardwarePidControl.AcHeatersHalfCycleTime = 0;
-hardwarePidControl.PidActive = false;
-hardwarePidControl.Epsilon = 0;
-hardwarePidControl.OutputOnOffHysteresisValue = 100;
-
-hardwarePidControl.HardwarePidControlType = Tango.PMR.Hardware.HardwarePidControlType.MotorWinder;
-hardwarePidControl.IntegralTime = 8000; //Ki
-hardwarePidControl.ProportionalGain = 7000; //Kp
-
-stubHeatingTestRequest.HardwarePidControl1 = hardwarePidControl;
-
-StubHeatingTestPollRequest stubHeatingTestPollRequest = new StubHeatingTestPollRequest();
-
-var response = stubManager.Run<StubHeatingTestResponse>(stubHeatingTestRequest);
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/ConvertFloat2Bytes.cs b/Software/Stubs Collection/stubs/ConvertFloat2Bytes.cs
deleted file mode 100644
index dc980e438..000000000
--- a/Software/Stubs Collection/stubs/ConvertFloat2Bytes.cs
+++ /dev/null
@@ -1,54 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-
-
-public void OnExecute(StubManager stubManager)
-{
- //see online Floating Point to Hex Converter (with Swap endianness) :https://gregstoll.com/~gregstoll/floattohex/
- // ----------------- option 1 -------------------------------
- stubManager.WriteLine("--- option 1 ---");
- float value = 5.2F;
- var byteArray1 = new byte[4];// a single float is 4 bytes/32 bits
- byteArray1 = BitConverter.GetBytes(value);
-
- //print
- for(int i =0;i<4;i++)
- {
- stubManager.WriteHex(byteArray1[i],2);
- stubManager.Write(" ");
- }
- stubManager.WriteLine("");
- stubManager.WriteLine("");
-
- // ----------------- option 2 for buffer -------------------------------
- stubManager.WriteLine("--- option 2 ---");
- var floatArray1 = new float[] {5.2f, 1.2f, 3.7f};
-
-
- // create a byte array and copy the floats into it...
- var byteArray = new byte[floatArray1.Length * 4];// a single float is 4 bytes/32 bits
- Buffer.BlockCopy(floatArray1, 0, byteArray, 0, byteArray.Length);
-
- //print
- for(int j =0;j<floatArray1.Length;j++)
- {
- for(int i =0;i<4;i++)
- {
- stubManager.WriteHex(byteArray[j+i],2);
- stubManager.Write(" ");
- }
- stubManager.WriteLine("");
- }
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Create File System on the Drive - reset flash.cs b/Software/Stubs Collection/stubs/Create File System on the Drive - reset flash.cs
deleted file mode 100644
index d8b763ddd..000000000
--- a/Software/Stubs Collection/stubs/Create File System on the Drive - reset flash.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-
- var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xCF, 0xCF);//Create File System on the Drive
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Delete alarm file.cs b/Software/Stubs Collection/stubs/Delete alarm file.cs
deleted file mode 100644
index 31ed76216..000000000
--- a/Software/Stubs Collection/stubs/Delete alarm file.cs
+++ /dev/null
@@ -1,23 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Hardware;
-using Tango.PMR.Stubs;
-using Tango.PMR.IO;
-using Google.Protobuf;
-using System.IO;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
- DeleteRequest deleteRequest = new DeleteRequest();
- deleteRequest.Path = "0://SysInfo//Alarm.cfg";;
- deleteRequest.Attribute = Tango.PMR.IO.FileAttribute.Unspecified;
- DeleteResponse response2 = stubManager.Run<DeleteResponse>(deleteRequest);
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Dispenser ByPass - getout from loewer safety.cs b/Software/Stubs Collection/stubs/Dispenser ByPass - getout from loewer safety.cs
deleted file mode 100644
index 34dce79fe..000000000
--- a/Software/Stubs Collection/stubs/Dispenser ByPass - getout from loewer safety.cs
+++ /dev/null
@@ -1,46 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
- UInt32 Dispenser_ID = 3; //Software Dispensers 0..7, BP Dispensers 1..8 (4 for bp disp 5)
-
- stubManager.Write("ByPass + TestRelay + read inputs ");
- stubManager.WriteLine("");
- var response = stubManager.Run<StubDispenserResponse>("StubDispenserRequest" ,Dispenser_ID, true, false, 0, 0);//ByPass + read inputs
- stubManager.Write("MSB for Disp_UP, LSB for Disp_Down ");
- stubManager.WriteHex((response.DispenserPosition),4);
- stubManager.WriteLine("");
- stubManager.Write("MSB for Realy_On, LSB for Over_Press ");
- stubManager.WriteHex((response.InkWorningLevel),4);
- stubManager.WriteLine("");
- stubManager.WriteLine("----");
- stubManager.WriteLine("");
-
- stubManager.Run("StubMotorRunRequest" ,(Dispenser_ID + 6), true, 1200 );//Dispenser ID -> motor ID
-
- Thread.Sleep(30000); //Sleep
- stubManager.Run("StubMotorStopRequest" ,15, 3);
-
- stubManager.Write("Remove ByPass ( + read inputs) ");
- stubManager.WriteLine("");
- response = stubManager.Run<StubDispenserResponse>("StubDispenserRequest" ,Dispenser_ID, false, false, 0, 0);// read inputs
- stubManager.Write("MSB for Disp_UP, LSB for Disp_Down ");
- stubManager.WriteHex((response.DispenserPosition),4);
- stubManager.WriteLine("");
- stubManager.Write("MSB for Realy_On, LSB for Over_Press ");
- stubManager.WriteHex((response.InkWorningLevel),4);
- stubManager.WriteLine("");
- stubManager.WriteLine("----");
- stubManager.WriteLine("");
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Dispenser ByPass - getout from upper safety.cs b/Software/Stubs Collection/stubs/Dispenser ByPass - getout from upper safety.cs
deleted file mode 100644
index 1887d433c..000000000
--- a/Software/Stubs Collection/stubs/Dispenser ByPass - getout from upper safety.cs
+++ /dev/null
@@ -1,46 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
- UInt32 Dispenser_ID = 1; //Software Dispensers 0..7, BP Dispensers 1..8 (4 for bp disp 5)
-
- stubManager.Write("ByPass + TestRelay + read inputs ");
- stubManager.WriteLine("");
- var response = stubManager.Run<StubDispenserResponse>("StubDispenserRequest" ,Dispenser_ID, true, false, 0, 0);//ByPass + read inputs
- stubManager.Write("MSB for Disp_UP, LSB for Disp_Down ");
- stubManager.WriteHex((response.DispenserPosition),4);
- stubManager.WriteLine("");
- stubManager.Write("MSB for Realy_On, LSB for Over_Press ");
- stubManager.WriteHex((response.InkWorningLevel),4);
- stubManager.WriteLine("");
- stubManager.WriteLine("----");
- stubManager.WriteLine("");
-
- stubManager.Run("StubMotorRunRequest" ,(Dispenser_ID + 6), false, 1200 );//Dispenser ID -> motor ID
-
- Thread.Sleep(30000); //Sleep
- stubManager.Run("StubMotorStopRequest" ,15, 3);
-
- stubManager.Write("Remove ByPass ( + read inputs) ");
- stubManager.WriteLine("");
- response = stubManager.Run<StubDispenserResponse>("StubDispenserRequest" ,Dispenser_ID, false, false, 0, 0);// read inputs
- stubManager.Write("MSB for Disp_UP, LSB for Disp_Down ");
- stubManager.WriteHex((response.DispenserPosition),4);
- stubManager.WriteLine("");
- stubManager.Write("MSB for Realy_On, LSB for Over_Press ");
- stubManager.WriteHex((response.InkWorningLevel),4);
- stubManager.WriteLine("");
- stubManager.WriteLine("----");
- stubManager.WriteLine("");
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/DispenserEEpromRead.cs b/Software/Stubs Collection/stubs/DispenserEEpromRead.cs
deleted file mode 100644
index 650cb2c80..000000000
--- a/Software/Stubs Collection/stubs/DispenserEEpromRead.cs
+++ /dev/null
@@ -1,27 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
- uint i;
-
- StubDispenserEEpromRequest dispenserEEpromRequest = new StubDispenserEEpromRequest();
- for (i = 0; i<8;i++)
- {
- dispenserEEpromRequest.DispenserId = i;
- dispenserEEpromRequest.BurnRequest = false;
- var response = stubManager.Run<StubDispenserEEpromResponse>(dispenserEEpromRequest);
- stubManager.Write( dispenserEEpromRequest);
-
- }
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/DispenserEEpromWrite.cs b/Software/Stubs Collection/stubs/DispenserEEpromWrite.cs
deleted file mode 100644
index 8fdbbc3f8..000000000
--- a/Software/Stubs Collection/stubs/DispenserEEpromWrite.cs
+++ /dev/null
@@ -1,59 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Diagnostics;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-
-DispenserEEpromRequest dispenserEEpromRequest = new DispenserEEpromRequest();
-dispenserEEpromRequest.DispenserId = 4;
-dispenserEEpromRequest.BurnRequest = true;
-
-DispenserEEprom dispenserEEprom = new DispenserEEprom();
-dispenserEEprom.Header = 1;
-dispenserEEprom.TableLength = 2;
-dispenserEEprom.Tableversion = 3;
-dispenserEEprom.DispenserPN = "Hello World 11";
-dispenserEEprom.PCBSN = "Hello World 22";
-dispenserEEprom.PCBPartNumber = "Hello World 33";
-dispenserEEprom.DispenserSN = "Hello World 44"
-dispenserEEprom.MinimalPressure = 4;
-dispenserEEprom.MaximalPressure = 5;
-dispenserEEprom.MinimalMV = 6;
-dispenserEEprom.MaximalMV = 7;
-dispenserEEprom.TotalCycles = 8;
-dispenserEEprom.BubbleSize = 9;
-dispenserEEprom.AVGNlStepValue14 = 10;
-dispenserEEprom.AVGNlStepValue24 = 11;
-dispenserEEprom.AVGNlStepValue34 = 12;
-dispenserEEprom.AVGNlStepValue44 = 13;
-dispenserEEprom.SWReserve = 14;
-dispenserEEprom.Spare1Pressure = 15;
-dispenserEEprom.Spare2Pressure = 16;
-dispenserEEprom.MotorPulsesPerCycle = 17;
-dispenserEEprom.Color = 18;
-dispenserEEprom.PressureSlope = 19;
-dispenserEEprom.ProductionDate = "11121970";
-dispenserEEprom.ATSlocation = 20;
-dispenserEEprom.Spare1 = 21;
-dispenserEEprom.Spare2 = 22;
-dispenserEEprom.ATSChannel = 23;
-dispenserEEprom.UnitEmpty = true;
-dispenserEEprom.DryRunPassFail = true;
-dispenserEEprom.FlowPassFail = true;
-dispenserEEprom.CheckSum = true;
-
-dispenserEEpromRequest.DispenserEEprom = dispenserEEprom;
-
-
- var response = stubManager.Run<DispenserEEpromResponse>(dispenserEEpromRequest);
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/EmbParam.cfg b/Software/Stubs Collection/stubs/EmbParam.cfg
deleted file mode 100644
index 6482fc82b..000000000
--- a/Software/Stubs Collection/stubs/EmbParam.cfg
+++ /dev/null
Binary files differ
diff --git a/Software/Stubs Collection/stubs/Get_PowerStep01_Parameters.cs b/Software/Stubs Collection/stubs/Get_PowerStep01_Parameters.cs
deleted file mode 100644
index e6ced17eb..000000000
--- a/Software/Stubs Collection/stubs/Get_PowerStep01_Parameters.cs
+++ /dev/null
@@ -1,227 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-//unmark Auto logging !
-
-const Int32 x_POWERSTEP01_CONFIG = 0x1A;
-const Int32 x_POWERSTEP01_STATUS = 0x1B;
-const Int32 x_POWERSTEP01_GATECFG1 = 0x18;
-const Int32 x_POWERSTEP01_GATECFG2 = 0x19;
-
-const Int32 x_ABS_POS = 0x01;
-const Int32 x_EL_POS = 0x02;
-const Int32 x_MARK = 0x03;
-const Int32 x_SPEED = 0x04;
-const Int32 x_ACC = 0x05;
-const Int32 x_DEC = 0x06;
-const Int32 x_MAX_SPEED = 0x07;
-const Int32 x_MIN_SPEED = 0x08;
-const Int32 x_FS_SPD = 0x15;
-const Int32 x_KVAL_HOLD = 0x09;
-const Int32 x_KVAL_RUN = 0x0A;
-const Int32 x_KVAL_ACC = 0x0B;
-const Int32 x_KVAL_DEC = 0x0C;
-const Int32 x_INT_SPD = 0x0D;
-const Int32 x_ST_SLP = 0x0E;
-const Int32 x_FN_SLP_ACC = 0x0F;
-const Int32 x_FN_SLP_DEC = 0x10;
-const Int32 x_K_THERM = 0x11;
-const Int32 x_ADC_OUT = 0x12;
-const Int32 x_OCD_TH = 0x13;
-const Int32 x_STALL_TH = 0x14;
-const Int32 x_STEP_MODE = 0x16;
-const Int32 x_ALARM_EN = 0x17;
-const Int32 x_CONFIG = 0x18;
-const Int32 x_STATUS = 0x19;
-//-------------------------------
-const Int32 x_GET_PARAM = 0x20;
-//-------------------------------
-const Int32 Max_Motor_ID = 25;
-
-string[] Motor_ID = new string[30];
-
-
-Motor_ID[0] ="DH_CLEANHEAD ";
-Motor_ID[1] ="DH_CLEANMECH ";
-Motor_ID[2] ="DH_LID ";
-Motor_ID[3] ="DRYER_DRIVING";
-Motor_ID[4] ="DRYER_LID ";
-Motor_ID[5] ="DRYER_LOADARM";
-Motor_ID[6] ="DISPENCER_1 ";
-Motor_ID[7] ="DISPENCER_2 ";
-Motor_ID[8] ="DISPENCER_3 ";
-Motor_ID[9] ="DISPENCER_4 ";
-Motor_ID[10]="DISPENCER_5 ";
-Motor_ID[11]="DISPENCER_6 ";
-Motor_ID[12]="DISPENCER_7 ";
-Motor_ID[13]="DISPENCER_8 ";
-Motor_ID[14]="SCREW ";
-Motor_ID[15]="WINDER ";
-Motor_ID[16]="LDANCER1 ";
-Motor_ID[17]="LDANCER2 ";
-Motor_ID[18]="LDRIVING ";
-Motor_ID[19]="LLODING ";
-Motor_ID[20]="LPIVOT ";
-Motor_ID[21]="RDANCER ";
-Motor_ID[22]="RDRIVING ";
-Motor_ID[23]="RLOADARM ";
-Motor_ID[24]="RLODING ";
-Motor_ID[25]="SPARE1_1 ";
-Motor_ID[26]="SPARE1_2 ";
-Motor_ID[27]="SPARE2_1 ";
-Motor_ID[28]="SPARE2_2 ";
-Motor_ID[29]="SPARE3 ";
-
-public void OnExecute(StubManager stubManager)
-{
-
- var i = stubManager.ShowResponseWindow("Please Enter Motor ID:");
-
- stubManager.Write("Motor_ID:\t\t ");
- stubManager.Write(i);
- stubManager.Write("\n");
-
- stubManager.Write("ABS_POS:\t\t");
- var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ABS_POS)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("EL_POS:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_EL_POS)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("MARK:\t\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MARK)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("SPEED:\t\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_SPEED)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("ACC:\t\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ACC)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("DEC:\t\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_DEC)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("MAX_SPEED:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MAX_SPEED)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("MIN_SPEED:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MIN_SPEED)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("FS_SPD:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FS_SPD)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("KVAL\\TVAL_HOLD:\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_HOLD)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("KVAL\\TVAL_RUN:\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_RUN)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("KVAL\\TVAL_ACC:\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_ACC)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("KVAL\\TVAL_DEC:\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_DEC)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("INT_SPEED:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_INT_SPD)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("ST_SLP\\T_FAST:\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ST_SLP)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("FN_SLP_ACC\\TON_MIN:\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_ACC)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("FN_SLP_DEC\\TOFF_MIN:");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_DEC)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("K_THERM:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_K_THERM)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("ADC_OUT:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ADC_OUT)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("OCD_TH:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_OCD_TH)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("STALL_TH:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STALL_TH)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("STEP_MODE:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("ALARM_EN:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ALARM_EN)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("GATECFG1:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG1)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("GATECFG2:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG2)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("CONFIG:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_CONFIG)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("STATUS:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_STATUS)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Head LS.cs b/Software/Stubs Collection/stubs/Head LS.cs
deleted file mode 100644
index b5c646649..000000000
--- a/Software/Stubs Collection/stubs/Head LS.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-/*HEAD CARD I/O
-
-Slave address 0x40 / 0x42 / 0x44 / 0x46
-
--------------------------
-| Byte | WR | RD | CFG |
--------------------------
-| Low | 02 | 00 | 06 |
-| High | 03 | 01 | 07 |
--------------------------
-Example (42 Slave Address, 03 Write High Byte, D8 Set value (NA on read))
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD, 0x4203D8);
-*/
-public void OnExecute(StubManager stubManager)
-{
- //Head LS
- var response7 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD, 0x460100);
- stubManager.WriteLineHex(response7.Progress,2);
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/HeadCard_ADC.cs b/Software/Stubs Collection/stubs/HeadCard_ADC.cs
deleted file mode 100644
index e1e18089c..000000000
--- a/Software/Stubs Collection/stubs/HeadCard_ADC.cs
+++ /dev/null
@@ -1,64 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-
-//----------------------------------------- HEAD_ADC1_0x50
-//Maximum value: 1.3V, 1 LSB: 2500/4096 mA
-const UInt32 HEAD_CURRENT_ZONE_1 = 0;
-const UInt32 HEAD_CURRENT_ZONE_2 = 1;
-const UInt32 HEAD_CURRENT_ZONE_3 = 2;
-const UInt32 HEAD_CURRENT_ZONE_4 = 3;
-const UInt32 HEAD_CURRENT_ZONE_5 = 4;
-const UInt32 HEAD_CURRENT_ZONE_6 = 5;
-const UInt32 HEAD_CURRENT_ZONE_7 = 6;
-const UInt32 HEAD_CURRENT_ZONE_8 = 7;
-
-//----------------------------------------- HEAD_ADC2_0x54
-//Maximum value: 1.3V, 1 LSB: 2500/4096 mA
-const UInt32 HEAD_CURRENT_ZONE_9 = 8 ;
-const UInt32 HEAD_CURRENT_ZONE_10 = 9 ;
-const UInt32 HEAD_CURRENT_ZONE_11 = 10;
-const UInt32 HEAD_CURRENT_ZONE_12 = 11;
-
-//Maximum value: 2.1V, 1 LSB: 5000/4096 mA
-const UInt32 HEAD_CURRENT_HTIN_1 = 12;
-const UInt32 HEAD_CURRENT_HTIN_2 = 13;
-const UInt32 HEAD_CURRENT_HTIN_3 = 14;
-const UInt32 HEAD_CURRENT_HTIN_4 = 15;
-
-//----------------------------------------- HEAD_ADC3_0x56
-//Maximum value: 2.1V, 1 LSB: 5000/4096 mA
-const UInt32 HEAD_CURRENT_HTOT_1 = 16;
-const UInt32 HEAD_CURRENT_HTOT_2 = 17;
-const UInt32 HEAD_CURRENT_HTOT_3 = 18;
-const UInt32 HEAD_CURRENT_HTOT_4 = 19;
-
-//Maximum value: 1.7V, 1 LSB: 2500/4096 mA
-const UInt32 HEAD_CURRENT_MIXER = 20;
-
-//Maximum value: 2.34V, 1 LSB: 4.9 mA
-const UInt32 HEAD_CURRENT_HT_TOTAL = 21;
-
-//Maximum value: 0.5V, 1 LSB: 2500/4096 mA
-const UInt32 HEAD_CURRENT_VALUE = 22;
-
-//Maximum value: (2.05 -2.3) V, 1 LSB: 27500/4096 mV
-const UInt32 HEAD_CURRENT_24V = 23;
-
-
-public void OnExecute(StubManager stubManager)
-{
-
- var response = stubManager.Run<StubMidTankPressureSensorResponse>("StubMidTankPressureSensorRequest" ,0x8000 + HEAD_CURRENT_24V); // 0x8000 + Head ADC ID
- stubManager.WriteLine(response.Pressure);
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Head_Card_I2C.cs b/Software/Stubs Collection/stubs/Head_Card_I2C.cs
deleted file mode 100644
index 6f49eeb51..000000000
--- a/Software/Stubs Collection/stubs/Head_Card_I2C.cs
+++ /dev/null
@@ -1,66 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-/*HEAD CARD I/O
-
-Slave address 0x40 / 0x42 / 0x44 / 0x46
-
--------------------------
-| Byte | WR | RD | CFG |
--------------------------
-| Low | 02 | 00 | 06 |
-| High | 03 | 01 | 07 |
--------------------------
-
-Example (42 Slave Address, 03 Write High Byte, D8 Set value (NA on read))
-stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD, 0x4203D8);
-*/
-
-public void OnExecute(StubManager stubManager)
-{
-
-//ZN_Latch_RST off
-var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD, 0x4203D8);
-stubManager.WriteLineHex(response.Progress,2);
-
-//Turn ON mixer
-var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD, 0x420210);
-stubManager.WriteLineHex(response1.Progress,2);
-
-//Turn ON 12 (0..7)
-var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD, 0x4002FF);
-stubManager.WriteLineHex(response4.Progress,2);
-
-//Turn ON 12 (8..11)
-var response5 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD, 0x40030F);
-stubManager.WriteLineHex(response5.Progress,2);
-
-//ZN_Latch_RST ON
-var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD, 0x4203F8);
-stubManager.WriteLineHex(response2.Progress,2);
-
-Thread.Sleep(5000);
-
-//Turn OFF mixer
-var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD, 0x420200);
-stubManager.WriteLineHex(response3.Progress,2);
-
-//Turn OFF 12 (0..7)
-var response6 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD, 0x400200);
-stubManager.WriteLineHex(response6.Progress,2);
-
-//Turn OFF 12 (8..11)
-var response7 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD, 0x400300);
-stubManager.WriteLineHex(response7.Progress,2);
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Head_Card_IO.cs b/Software/Stubs Collection/stubs/Head_Card_IO.cs
deleted file mode 100644
index 161b622f2..000000000
--- a/Software/Stubs Collection/stubs/Head_Card_IO.cs
+++ /dev/null
@@ -1,160 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-//----------------------
-const Int32 I2C_ID = 3; //MCU_I2C3
-const Int32 TCA9548A_address = 0xE2; // Main Mux
-Int32 I2C_Slave_Add ; // //eeprom address - 32kByte
-int Head_Mux_Channel_ID = 4; //Head MUX channel
-//----------------------
-
-uint[] write_Buf = new uint[5];
-
-
-int enable_channel(int Channel_ID)
-{
- uint Const_temp = 0x01;
-
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = TCA9548A_address;
-
- Const_temp = Const_temp << Channel_ID;
- stubI2CWriteBytesRequest.BytesTWrite.Add(Const_temp);
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
-}
-
-
-int adc_write(uint I2C_Slave_Add, uint No_Bytes)
-{
-uint i = 0;
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
- UInt32 uInt32 = new UInt32();
-
- //--------------------------------------------------------------
- for(i=0;i<No_Bytes;i++)
- stubI2CWriteBytesRequest.BytesTWrite.Add(write_Buf[i]);//Data to write
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
-}
-
-int adc_set_for_read_ch(uint I2C_Slave_Add)
-{
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
-}
-
-int adc_read_ch(uint I2C_Slave_Add, uint No_Bytes)
-{
- adc_set_for_read_ch(I2C_Slave_Add );
-
- StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();
- stubI2CReadBytesRequest.I2CId = I2C_ID;
- stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add + 1;
- stubI2CReadBytesRequest.NumberOfBytesToRead = No_Bytes; // Number of bytes to read
-
- var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);
- uint temph=0;
-
- for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++)
- {
- temph=response1.ReadBytes[i];
- stubManager.WriteLineHex(temph,2);
- }
-
- return 1;
-}
-
-
-public void OnExecute(StubManager stubManager)
-{
-
- enable_channel(Head_Mux_Channel_ID);
-
- //ZN_Latch_RST off
- write_Buf[0] = 0x03;
- write_Buf[1] = 0xD8;
- adc_write(0x42, 2);
- adc_read_ch(0x42, 2);
-
-
- //Turn ON mixer
- write_Buf[0] = 0x02;
- write_Buf[1] = 0x10;
- adc_write(0x42, 2);
- adc_read_ch(0x42, 2);
- stubManager.WriteLine("");
-
- //Turn ON 12 (0..7)
- write_Buf[0] = 0x02;
- write_Buf[1] = 0xFF;
- adc_write(0x40, 2);
- adc_read_ch(0x40, 2);
- stubManager.WriteLine("");
-
- //Turn ON 12 (8..11)
- write_Buf[0] = 0x03;
- write_Buf[1] = 0x0F;
- adc_write(0x40, 2);
- adc_read_ch(0x40, 2);
- stubManager.WriteLine("");
-
- //ZN_Latch_RST ON
- write_Buf[0] = 0x03;
- write_Buf[1] = 0xF8;
- adc_write(0x42, 2);
- adc_read_ch(0x42, 2);
-
- Thread.Sleep(5000);
- stubManager.WriteLine("-------------");
-
- //Turn OFF mixer
- write_Buf[0] = 0x02;
- write_Buf[1] = 0x00;
- adc_write(0x42, 2);
- adc_read_ch(0x42, 2);
- stubManager.WriteLine("");
-
- //Turn OFF 12 (0..7)
- write_Buf[0] = 0x02;
- write_Buf[1] = 0x00;
- adc_write(0x40, 2);
- adc_read_ch(0x40, 2);
- stubManager.WriteLine("");
-
- //Turn OFF 12 (8..11)
- write_Buf[0] = 0x03;
- write_Buf[1] = 0x00;
- adc_write(0x40, 2);
- adc_read_ch(0x40, 2);
- stubManager.WriteLine("");
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Head_EEPROM.cs b/Software/Stubs Collection/stubs/Head_EEPROM.cs
deleted file mode 100644
index 1b3ab7213..000000000
--- a/Software/Stubs Collection/stubs/Head_EEPROM.cs
+++ /dev/null
@@ -1,135 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-//----------------------
-const Int32 I2C_ID = 3; //MCU_I2C3
-const Int32 TCA9548A_address = 0xE2;
-const Int32 I2C_Slave_Add = 0xA0; // //eeprom address - 32kByte
-int Head_Mux_Channel_ID = 4; //Head MUX channel
-//----------------------
-
-
-int enable_channel(int Channel_ID)
-{
- uint Const_temp = 0x01;
-
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = TCA9548A_address;
-
- Const_temp = Const_temp << Channel_ID;
- stubI2CWriteBytesRequest.BytesTWrite.Add(Const_temp);
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
-}
-
-
-int adc_write(uint I2C_Slave_Add, uint Page)
-{
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write
- //--------------------------------------------------------------
-
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x12 + Page);//Data 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x34 + Page);//Data 1 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x56 + Page);//Data 2 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x78 + Page);//Data 3 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x90 + Page);//Data 4 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(0xAB + Page);//Data 5 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(0xCD + Page);//Data 6 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(0xEF + Page);//Data 7 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x01 + Page);//Data 8 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x02 + Page);//Data 9 to write
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
-}
-
-int adc_set_for_read_ch(uint I2C_Slave_Add, uint Page)
-{
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
-}
-
-int adc_read_ch(uint I2C_Slave_Add)
-{
- StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();
- stubI2CReadBytesRequest.I2CId = I2C_ID;
- stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add + 1;
- stubI2CReadBytesRequest.NumberOfBytesToRead = 10; // Number of bytes to read
-
- var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);
- uint temph=0;
-
- for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++)
- {
- temph=response1.ReadBytes[i];
- stubManager.WriteHex(temph,2);
- }
-
- return 1;
-}
-
-
-public void OnExecute(StubManager stubManager)
-{
-
- //enable_all_channel();
- enable_channel(Head_Mux_Channel_ID); // Chanel 0-7 => Disp0enser 0-7
-
- for (int i = 0; i<1; i++)
- {
-
- adc_write(I2C_Slave_Add,0x10);
- Thread.Sleep(10); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet )
-
- adc_write(I2C_Slave_Add,0x00);
- Thread.Sleep(10); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet )
-
- stubManager.Write("\nPage 0x10 #");
- stubManager.Write(i);
- stubManager.Write("\t- The Buffer is: ");
- adc_set_for_read_ch(I2C_Slave_Add,0x10);
- //Thread.Sleep(1); //Sleep for 10 milli.
- adc_read_ch(I2C_Slave_Add);
-
- Thread.Sleep(10);
-
- stubManager.Write("\nPage 0x00 #");
- stubManager.Write(i);
- stubManager.Write("\t- The Buffer is: ");
- adc_set_for_read_ch(I2C_Slave_Add, 0x00);
- //Thread.Sleep(1); //Sleep for 10 milli.
- adc_read_ch(I2C_Slave_Add);
-
- Thread.Sleep(1000);
-
- }
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Head_card_PT100__Horizontal_Printing.cs b/Software/Stubs Collection/stubs/Head_card_PT100__Horizontal_Printing.cs
deleted file mode 100644
index 6c6bbac05..000000000
--- a/Software/Stubs Collection/stubs/Head_card_PT100__Horizontal_Printing.cs
+++ /dev/null
@@ -1,59 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-//using Tango.Stubs.UI;
-using Tango.Stubs;//
-using Tango.PMR.Printing;
-using Tango.PMR.Hardware;
-
-
-public void OnExecute(StubManager stubManager)
-{
- /*
-ProcessParameters processParameters = new ProcessParameters();
-processParameters.DyeingSpeed = 30;
-processParameters.DryerBufferLength = 0;
-processParameters.MinInkUptake = 0;
-processParameters.DryerZone1Temp = 120;
-processParameters.DryerZone2Temp = 0;
-processParameters.DryerZone3Temp = 0;
-processParameters.HeadZone1Temp = 120;
-processParameters.HeadZone2Temp = 150;
-processParameters.HeadZone3Temp = 150;
-processParameters.HeadZone4Temp = 150;
-processParameters.HeadZone5Temp = 0;
-
-UploadProcessParametersRequest uploadProcessParametersRequest = new UploadProcessParametersRequest();
-
-uploadProcessParametersRequest.ProcessParameters = processParameters;
-var response1 = stubManager.Run<UploadProcessParametersResponse>(uploadProcessParametersRequest);
-*/
-
- stubManager.Write("\n");
- stubManager.Write("HZone_1 \tHZone_3 \tHZone_5 \tHZone_7 \tHZone_9 \tHZone_11\tHAir_1 \tMixer \tHZone_2 \tHZone_4 \tHZone_6 \tHZone_8 \tHZone_10 \tHZone_12 \n");
- stubManager.Write("------- \t---------\t---------\t---------\t---------\t---------\t------- \t------- \t------- \t-----------\t-----------\t-----------\t-----------\t-----------\n");
-
- for (int j = 0; j < 1000; j++)
- {
- for (int i = 12; i < 26; i++)//12
- {
-
- var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,0x100 + i); //Add 0x100 for internal temperature
- float ftemp = (float)response.TemperatureCMultBy100;
- ftemp = ftemp / 100;
-
- stubManager.Write(ftemp.ToString("F2"));
- stubManager.Write("°C\t");
-
- }
- stubManager.Write("\n");
- Thread.Sleep(1000);
- }
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Head_card_PT100__Horizontal_Printing_new.cs b/Software/Stubs Collection/stubs/Head_card_PT100__Horizontal_Printing_new.cs
deleted file mode 100644
index 4d877e3d0..000000000
--- a/Software/Stubs Collection/stubs/Head_card_PT100__Horizontal_Printing_new.cs
+++ /dev/null
@@ -1,87 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-//using Tango.Stubs.UI;
-using Tango.Stubs;//
-using Tango.PMR.Printing;
-using Tango.PMR.Hardware;
-
-
-public void OnExecute(StubManager stubManager)
-{
-
- Int32 command = 0;
-
- /*
-ProcessParameters processParameters = new ProcessParameters();
-processParameters.DyeingSpeed = 30;
-processParameters.DryerBufferLength = 0;
-processParameters.MinInkUptake = 0;
-processParameters.DryerZone1Temp = 120;
-processParameters.DryerZone2Temp = 0;
-processParameters.DryerZone3Temp = 0;
-processParameters.HeadZone1Temp = 120;
-processParameters.HeadZone2Temp = 150;
-processParameters.HeadZone3Temp = 150;
-processParameters.HeadZone4Temp = 150;
-processParameters.HeadZone5Temp = 0;
-
-UploadProcessParametersRequest uploadProcessParametersRequest = new UploadProcessParametersRequest();
-
-uploadProcessParametersRequest.ProcessParameters = processParameters;
-var response1 = stubManager.Run<UploadProcessParametersResponse>(uploadProcessParametersRequest);
-*/
-
- stubManager.Write("\n");
- stubManager.Write("HZone_1 \tHZone_3 \tHZone_5 \tHZone_7 \tHZone_9 \tHZone_11\tHAir_1 \tMixer \tHZone_2 \tHZone_4 \tHZone_6 \tHZone_8 \tHZone_10 \tHZone_12 \n");
- stubManager.Write("------- \t---------\t---------\t---------\t---------\t---------\t------- \t------- \t------- \t-----------\t-----------\t-----------\t-----------\t-----------\n");
-
- for (int j = 0; j < 1; j++)
- {
- for (int i = 12; i < 26; i++)//12
- {
-
- //if(((i ==12) || (i ==26 ) ) && (j==0))
-
-
-
- var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" , i);// not in use only for compilation
- /*
- //-----------------------------------------------------------------
- if(((i == 12) || (i == 20)) && (j == 0) )
- {
-
- command = 0x8000 + i;
- }
- else
- {
-
- command = i;
- }
- var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" , command);
- Thread.Sleep(50);
- //----------------------------------------------------------------------------
- */
- //var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,/*0x100 +*/ i); //Add 0x100 for internal temperature
-
- float ftemp = (float)response.TemperatureCMultBy100;
- ftemp = ftemp / 100;
-
- stubManager.Write(ftemp.ToString("F2"));
- stubManager.Write("°C\t");
-
-/*
-stubManager.WriteHex(response.TemperatureCMultBy100,6);
- stubManager.Write("\t");*/
- }
- stubManager.Write("\n");
- Thread.Sleep(1000);
- }
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Head_card_PT100__Horizontal_Printing_new2.cs b/Software/Stubs Collection/stubs/Head_card_PT100__Horizontal_Printing_new2.cs
deleted file mode 100644
index 400a0d421..000000000
--- a/Software/Stubs Collection/stubs/Head_card_PT100__Horizontal_Printing_new2.cs
+++ /dev/null
@@ -1,49 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-
-using Tango.Stubs;
-using Tango.PMR.Printing;
-using Tango.PMR.Hardware;
-
-
-public void OnExecute(StubManager stubManager)
-{
-
- stubManager.Write("\n");
- stubManager.Write("HZone_1 \tHZone_3 \tHZone_5 \tHZone_7 \tHZone_9 \tHZone_11\tHAir_1 \tMixer \tHZone_2 \tHZone_4 \tHZone_6 \tHZone_8 \tHZone_10 \tHZone_12 \n");
- stubManager.Write("------- \t---------\t---------\t---------\t---------\t---------\t------- \t------- \t------- \t-----------\t-----------\t-----------\t-----------\t-----------\n");
-
- for (int j = 0; j < 1; j++)
- {
- for (int i = 12; i < 26; i++)
- {
-
- if(((i == 12) || (i == 20)) && (j == 0) )
- {
- stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" , 0x8000 + i);//read odd (12+) and even (20+)
- }
- var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" , i);//get from the buffer
-
-
- float ftemp = (float)response.TemperatureCMultBy100;
- ftemp = ftemp / 100;
-
- stubManager.Write(ftemp.ToString("F2"));
- stubManager.Write("°C\t");
-
- /* to display the data in hex - need also to unmark the lines in the embedded code
- stubManager.WriteHex(response.TemperatureCMultBy100,6);
- stubManager.Write("\t");*/
- }
- stubManager.Write("\n");
- Thread.Sleep(1000);
- }
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Head_i2c_functions.cs b/Software/Stubs Collection/stubs/Head_i2c_functions.cs
deleted file mode 100644
index f676ba592..000000000
--- a/Software/Stubs Collection/stubs/Head_i2c_functions.cs
+++ /dev/null
@@ -1,27 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
- // Request ----
- // Int32 : Amount
- // Int32 : Delay
-
- // Response ----
- // Double : Progress
- var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFEAD, 0xCA1401);//Turn on mixer (hrater ID on/off)
-
- Thread.Sleep(5000);
-
- var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFEAD, 0xCA1400);//Turn OFF mixer
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Heat I2C ACT test.cs b/Software/Stubs Collection/stubs/Heat I2C ACT test.cs
deleted file mode 100644
index 1ad3a8f74..000000000
--- a/Software/Stubs Collection/stubs/Heat I2C ACT test.cs
+++ /dev/null
@@ -1,33 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-
-
- var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFEAD, 0xCAF101);//Actuators: ID, power, Direction
- Thread.Sleep(100);
- var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFEAD, 0xCAF111);//Actuators: ID, power, Direction
- Thread.Sleep(3000);
- var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFEAD, 0xCAF100);//Actuators: ID, power, Direction
- Thread.Sleep(100);
- var response5 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFEAD, 0xCAF110);//Actuators: ID, power, Direction
- Thread.Sleep(3000);
- var response6 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFEAD, 0xCAF001);//Actuators: ID, power, Direction
- Thread.Sleep(100);
- var response7 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFEAD, 0xCAF011);//Actuators: ID, power, Direction
- Thread.Sleep(3000);
- var response8 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFEAD, 0xCAF000);//Actuators: ID, power, Direction
- Thread.Sleep(100);
- var response9 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFEAD, 0xCAF010);//Actuators: ID, power, Direction
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/I2C_RW_Main_Card_EEPROM_Save_Main_SN.cs b/Software/Stubs Collection/stubs/I2C_RW_Main_Card_EEPROM_Save_Main_SN.cs
deleted file mode 100644
index 6ec538758..000000000
--- a/Software/Stubs Collection/stubs/I2C_RW_Main_Card_EEPROM_Save_Main_SN.cs
+++ /dev/null
@@ -1,98 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-//----------------------
-const Int32 I2C_ID = 2; //MCU_I2C2
-
-const Int32 I2C_Slave_Add = 0xA0; //Slave (EEPROM) address
-
-string str = "UM181700004";//main card S/N
-
-uint length = 11;
-int i = 0;
-
-//----------------------
-
-int adc_write(uint I2C_Slave_Add)
-{
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
- //--------------------------------------------------------------
-
- for(i=0;i<length;i++)
- stubI2CWriteBytesRequest.BytesTWrite.Add(str[i]);//Data 0 to write
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
-}
-
-int adc_set_for_read_ch(uint I2C_Slave_Add)
-{
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
-}
-
-int adc_read_ch(uint I2C_Slave_Add)
-{
- StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();
- stubI2CReadBytesRequest.I2CId = I2C_ID;
- stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add + 1;
- stubI2CReadBytesRequest.NumberOfBytesToRead = length; // Number of bytes to read
-
- var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);
- uint temph=0;
-
- for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++)
- {
- temph=response1.ReadBytes[i];
- stubManager.Write((char) temph);
- }
-
- return 1;
-}
-
-
-public void OnExecute(StubManager stubManager)
-{
-
- for (int i = 0; i<1; i++)
- {
-
- adc_write(I2C_Slave_Add);
- Thread.Sleep(5); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet )
- stubManager.Write("\n");
-
- stubManager.Write("The eeprom data: ");
- adc_set_for_read_ch(I2C_Slave_Add);
-
- adc_read_ch(I2C_Slave_Add);
-
- Thread.Sleep(1000);
-
- }
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/I2C_RW_Main_EEPROM_AVI _support_string.cs b/Software/Stubs Collection/stubs/I2C_RW_Main_EEPROM_AVI _support_string.cs
deleted file mode 100644
index 00064ec7f..000000000
--- a/Software/Stubs Collection/stubs/I2C_RW_Main_EEPROM_AVI _support_string.cs
+++ /dev/null
@@ -1,109 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-//----------------------
-const Int32 I2C_ID = 2; //MCU_I2C2
-
-const Int32 I2C_Slave_Add = 0xA0; // /Slave (EEPROM) address
-
-//----------------------
-
-int adc_write(uint I2C_Slave_Add)
-{
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
- //--------------------------------------------------------------
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x12);//Data 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add('B');//Data 1 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add('C');//Data 2 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add('D');//Data 3 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add('E');//Data 4 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add('F');//Data 5 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add('G');//Data 6 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add('H');//Data 7 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add('I');//Data 8 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add('J');//Data 9 to write
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
-}
-
-int adc_set_for_read_ch(uint I2C_Slave_Add)
-{
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
-}
-
-int adc_read_ch(uint I2C_Slave_Add)
-{
- StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();
- stubI2CReadBytesRequest.I2CId = I2C_ID;
- stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add + 1;
- stubI2CReadBytesRequest.NumberOfBytesToRead = 10; // Number of bytes to read
-
- var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);
- uint temph=0;
-
- for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++)
- {
- temph=response1.ReadBytes[i];
- //stubManager.WriteHex(temph,2);
- if(((temph>='A') && (temph<='Z')) || ((temph>='a') && (temph<='z')))
- {
- stubManager.Write((char) temph);
- }
- else
- {
- stubManager.WriteHex(temph,2);
- }
- stubManager.Write(" ");
- }
-
- return 1;
-}
-
-
-public void OnExecute(StubManager stubManager)
-{
-
- for (int i = 0; i<1; i++)
- {
-
- adc_write(I2C_Slave_Add);
- Thread.Sleep(5); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet )
- stubManager.Write("\n");
- //stubManager.Write(i);
- stubManager.Write("The Buffer is: ");
- adc_set_for_read_ch(I2C_Slave_Add);
- //Thread.Sleep(1); //Sleep for 10 milli.
- adc_read_ch(I2C_Slave_Add);
-
- Thread.Sleep(1000);
-
- }
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/LoadingArm5Rounds.cs b/Software/Stubs Collection/stubs/LoadingArm5Rounds.cs
deleted file mode 100644
index f5cacba1b..000000000
--- a/Software/Stubs Collection/stubs/LoadingArm5Rounds.cs
+++ /dev/null
@@ -1,23 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-//Loading Arm Calibration - this command writes the arm position to a non-volatile memory
-
-ProgressRequest progressRequest = new ProgressRequest();
-progressRequest.Amount = 0xB2;
-progressRequest.Delay = 5;
-
- var response = stubManager.Run<ProgressResponse>(progressRequest);
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/LoadingArmCalibration.cs b/Software/Stubs Collection/stubs/LoadingArmCalibration.cs
deleted file mode 100644
index 73aba2aef..000000000
--- a/Software/Stubs Collection/stubs/LoadingArmCalibration.cs
+++ /dev/null
@@ -1,23 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-//Loading Arm Calibration - this command writes the arm position to a non-volatile memory
-
-ProgressRequest progressRequest = new ProgressRequest();
-progressRequest.Amount = 0xB1;
-progressRequest.Delay = 1;
-
- var response = stubManager.Run<ProgressResponse>(progressRequest);
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/LoadingArmandCenterCalibration.cs b/Software/Stubs Collection/stubs/LoadingArmandCenterCalibration.cs
deleted file mode 100644
index b11f900ad..000000000
--- a/Software/Stubs Collection/stubs/LoadingArmandCenterCalibration.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-//Loading Arm Calibration - this command writes the arm position to a non-volatile memory
-
-ProgressRequest progressRequest = new ProgressRequest();
-progressRequest.Amount = 0xB1;
-//progressRequest.Delay = 1;
-
- var response = stubManager.Run<ProgressResponse>(progressRequest);
-
- progressRequest.Amount = 0xB2;
- progressRequest.Delay = 0;
-
- response = stubManager.Run<ProgressResponse>(progressRequest);
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Main card Watchdog test.cs b/Software/Stubs Collection/stubs/Main card Watchdog test.cs
deleted file mode 100644
index 3db075678..000000000
--- a/Software/Stubs Collection/stubs/Main card Watchdog test.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-
-//"Set WFCF Value
-ProgressRequest progressRequest = new ProgressRequest();
-progressRequest.Amount = 0xAD9;
-progressRequest.Delay = 0;
-
-var response = stubManager.Run<ProgressResponse>(progressRequest);
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Motor_GMotor_Get_Param_Powerstep01_rev2.cs b/Software/Stubs Collection/stubs/Motor_GMotor_Get_Param_Powerstep01_rev2.cs
deleted file mode 100644
index 505444080..000000000
--- a/Software/Stubs Collection/stubs/Motor_GMotor_Get_Param_Powerstep01_rev2.cs
+++ /dev/null
@@ -1,292 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-//unmark Auto logging !
-
-//General Configuration
-const Int32 x_ABS_POS = 0x01;
-const Int32 x_EL_POS = 0x02;
-const Int32 x_MARK = 0x03;
-const Int32 x_SPEED = 0x04;
-const Int32 x_ACC = 0x05;
-const Int32 x_DEC = 0x06;
-const Int32 x_MAX_SPEED = 0x07;
-const Int32 x_MIN_SPEED = 0x08;
-const Int32 x_ADC_OUT = 0x12;
-const Int32 x_OCD_TH = 0x13;
-const Int32 x_FS_SPD = 0x15;
-const Int32 x_STEP_MODE = 0x16;
-const Int32 x_ALARM_EN = 0x17;
-const Int32 x_POWERSTEP01_GATECFG1 = 0x18;
-const Int32 x_POWERSTEP01_GATECFG2 = 0x19;
-const Int32 x_POWERSTEP01_CONFIG = 0x1A;
-const Int32 x_POWERSTEP01_STATUS = 0x1B;
-//VOLTAGE / CURRENT
-const Int32 x_KTVAL_HOLD = 0x09;
-const Int32 x_KTVAL_RUN = 0x0A;
-const Int32 x_KTVAL_ACC = 0x0B;
-const Int32 x_KTVAL_DEC = 0x0C;
-const Int32 x_ST_SLP_T_FAST = 0x0E;
-const Int32 x_FN_SLP_ACC_TON_MIN = 0x0F;
-const Int32 x_FN_SLP_DEC_TOFF_MIN = 0x10;
-
-const Int32 x_INT_SPD = 0x0D;//voltage
-const Int32 x_K_THERM = 0x11;//VOLTAGE
-const Int32 x_STALL_TH = 0x14;//VOLTAGE
-
-//-------------------------------
-const Int32 x_GET_PARAM = 0x20;
-//-------------------------------
-Int32 Start_index = 0; // start from motor
-
-const Int32 Max_Motor_ID = 25;
-
-string[] Motor_ID = new string[30];
-
-
-Motor_ID[0] ="DH_CLEANHEAD ";
-Motor_ID[1] ="DH_CLEANMECH ";
-Motor_ID[2] ="DH_LID ";
-Motor_ID[3] ="DRYER_DRIVING";
-Motor_ID[4] ="DRYER_LID ";
-Motor_ID[5] ="DRYER_LOADARM";
-Motor_ID[6] ="DISPENCER_1 ";
-Motor_ID[7] ="DISPENCER_2 ";
-Motor_ID[8] ="DISPENCER_3 ";
-Motor_ID[9] ="DISPENCER_4 ";
-Motor_ID[10]="DISPENCER_5 ";
-Motor_ID[11]="DISPENCER_6 ";
-Motor_ID[12]="DISPENCER_7 ";
-Motor_ID[13]="DISPENCER_8 ";
-Motor_ID[14]="SCREW ";
-Motor_ID[15]="WINDER ";
-Motor_ID[16]="LDANCER1 ";
-Motor_ID[17]="LDANCER2 ";
-Motor_ID[18]="LDRIVING ";
-Motor_ID[19]="LLODING ";
-Motor_ID[20]="LPIVOT ";
-Motor_ID[21]="RDANCER ";
-Motor_ID[22]="RDRIVING ";
-Motor_ID[23]="RLOADARM ";
-Motor_ID[24]="RLODING ";
-Motor_ID[25]="SPARE1_1 ";
-Motor_ID[26]="SPARE1_2 ";
-Motor_ID[27]="SPARE2_1 ";
-Motor_ID[28]="SPARE2_2 ";
-Motor_ID[29]="SPARE3 ";
-
-
-
-
-public void OnExecute(StubManager stubManager)
-{
- Int32 i = 0;
-
- Int32 motname = 0;
-//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000380 , 0x06b9); //7ff mati
-//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000390 , 0x003f);
-//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000550 , 0x0003); //ff mati
-//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000b80 , 0x001f);
-
- for (i = Start_index; i < Max_Motor_ID; i++)
- {
-
- if((i%8 ==0) )
- {
- stubManager.Write("\n\n");
- stubManager.Write("MoTor\t\t\tMIN_SPEED\tMAX_SPEED\tSTEP_MODE\tACC\t\tDEC\t\tKTVAL_HOLD\tKTVAL_RUN\tTKVAL_ACC\tTKVAL_DEC\tOCD_TH\t\tSTALL_TH\tFS_SPD\n");
- stubManager.Write("------\t\t\t--------\t--------\t----------\t---\t\t---\t\t----------\t---------\t---------\t---------\t------\t\t--------\t------\n");
- }
- //stubManager.Write(i);
-
- stubManager.Write(Motor_ID[i]);
- stubManager.Write("\t\t");
-
- var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MIN_SPEED)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MAX_SPEED)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ACC)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_DEC)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KTVAL_HOLD)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KTVAL_RUN)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KTVAL_ACC)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KTVAL_DEC)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_OCD_TH)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STALL_TH)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FS_SPD)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- stubManager.Write("\n\n");
-
- }
-
-
-
- for (i = Start_index; i < Max_Motor_ID; i++)
- {
-
- if((i%8 ==0) )
- {
- stubManager.Write("\n\n");
-
- stubManager.Write("MoTor\t\t\tINT_SPD\tST_SLP\t\tSLP_ACC_TON_MIN\tSLP_DEC_TOFF_MIN\n");
- stubManager.Write("-----\t\t\t-------\t------\t\t---------------\t----------------\n");
- }
-
- stubManager.Write(Motor_ID[i]);
-
-// stubManager.Write(i);
- stubManager.Write("\t\t");
-
- var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_INT_SPD)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ST_SLP_T_FAST)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_ACC_TON_MIN)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_DEC_TOFF_MIN)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- stubManager.Write("\n\n");
-
- }
-
-
- for (i = Start_index; i < Max_Motor_ID; i++)
- {
-
- if((i%8 ==0) )
- {
- stubManager.Write("\n\n");
-
- stubManager.Write("MoTor\t\t\tPS01_CONFIG\t\tPS01_STATUS\t\tPS01_GATECFG1\t\tPS01_GATECFG2\n");
- stubManager.Write("-----\t\t\t------------\t\t-----------\t\t-------------\t\t------------\n");
- }
-
- stubManager.Write(Motor_ID[i]);
- stubManager.Write("\t\t");
-
- var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_CONFIG)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_STATUS)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG1)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG2)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n\n");
-
-
- }
-
- for (i = Start_index; i < Max_Motor_ID; i++)
- {
-
- if((i%8 ==0) )
- {
- stubManager.Write("\n\n");
-
- stubManager.Write("MoTor\t\t\tABS_POS\tEL_POS\t\tMARK\t\tSPEED\t\tALARM_EN\tK_THERM\tADC_OUT\tDriver_Type\n");
- stubManager.Write("-----\t\t\t-------\t------\t\t----\t\t-----\t\t--------\t--------\t------\t\t---------\n");
- }
-
- stubManager.Write(Motor_ID[i]);
-
- stubManager.Write("\t\t");
-
- var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ABS_POS)<<24, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_EL_POS)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MARK)<<24, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_SPEED)<<24, 0, 0);
- stubManager.WriteHex((response.RecivedData * 1000.0 / 67108.0),4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ALARM_EN)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_K_THERM)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ADC_OUT)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- if( response.RecivedData > 0x15 && response.RecivedData < 0x1c )
- stubManager.Write("\t\tDual_Driver");
- else if ( response.RecivedData > 0x0b && response.RecivedData < 0x12 )
- stubManager.Write("\t\tVolage_Driver");
- else if ( response.RecivedData > 8 && response.RecivedData < 0x0a)
- stubManager.Write("\t\tCurrent_Driver");
- else
- stubManager.Write("\t\tNo_Driver");
-
- stubManager.Write("\n\n");
-
- }
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Motor_Get_Param_Horizontal_Printing2.cs b/Software/Stubs Collection/stubs/Motor_Get_Param_Horizontal_Printing2.cs
index 09d22dea9..763288603 100644
--- a/Software/Stubs Collection/stubs/Motor_Get_Param_Horizontal_Printing2.cs
+++ b/Software/Stubs Collection/stubs/Motor_Get_Param_Horizontal_Printing2.cs
@@ -40,7 +40,7 @@ const Int32 x_STATUS = 0x19;
//-------------------------------
const Int32 x_GET_PARAM = 0x20;
//-------------------------------
-const Int32 Max_Motor_ID = 25;
+const Int32 Max_Motor_ID = 30;
@@ -98,22 +98,6 @@ Int32 i = 12; // to run only for specific motor
public void OnExecute(StubManager stubManager)
{
-
-stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000380 , 0x06b9);
-stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000390 , 0x003f);
-stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000550 , 0x0003);
-stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000b80 , 0x001f);
-
-
-
-
-
-
-
-
-
-
-
for (i = 0; i < Max_Motor_ID; i++)
{
@@ -182,9 +166,7 @@ stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000b80
response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ADC_OUT)<<8, 0, 0);
stubManager.WriteHex(response.RecivedData,4);
- if( response.RecivedData > 0x15 )
- stubManager.Write("\t\tDual_Driver");
- else if ( response.RecivedData > 0x0b)
+ if( response.RecivedData > 12 )
stubManager.Write("\t\tVolage_Driver");
else if ( response.RecivedData > 8 )
stubManager.Write("\t\tCurrent_Driver");
diff --git a/Software/Stubs Collection/stubs/Motor_Get_Param_Horizontal_Printing5.cs b/Software/Stubs Collection/stubs/Motor_Get_Param_Horizontal_Printing5.cs
deleted file mode 100644
index e84562c11..000000000
--- a/Software/Stubs Collection/stubs/Motor_Get_Param_Horizontal_Printing5.cs
+++ /dev/null
@@ -1,265 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-//unmark Auto logging !
-const Int32 x_POWERSTEP01_CONFIG = 0x1A;
-const Int32 x_POWERSTEP01_STATUS = 0x1B;
-const Int32 x_POWERSTEP01_GATECFG1 = 0x18;
-const Int32 x_POWERSTEP01_GATECFG2 = 0x19;
-
-const Int32 x_ABS_POS = 0x01;
-const Int32 x_EL_POS = 0x02;
-const Int32 x_MARK = 0x03;
-const Int32 x_SPEED = 0x04;
-const Int32 x_ACC = 0x05;
-const Int32 x_DEC = 0x06;
-const Int32 x_MAX_SPEED = 0x07;
-const Int32 x_MIN_SPEED = 0x08;
-const Int32 x_FS_SPD = 0x15;
-const Int32 x_KVAL_HOLD = 0x09;
-const Int32 x_KVAL_RUN = 0x0A;
-const Int32 x_KVAL_ACC = 0x0B;
-const Int32 x_KVAL_DEC = 0x0C;
-const Int32 x_INT_SPD = 0x0D;
-const Int32 x_ST_SLP = 0x0E;
-const Int32 x_FN_SLP_ACC = 0x0F;
-const Int32 x_FN_SLP_DEC = 0x10;
-const Int32 x_K_THERM = 0x11;
-const Int32 x_ADC_OUT = 0x12;
-const Int32 x_OCD_TH = 0x13;
-const Int32 x_STALL_TH = 0x14;
-const Int32 x_STEP_MODE = 0x16;
-const Int32 x_ALARM_EN = 0x17;
-const Int32 x_CONFIG = 0x18;
-const Int32 x_STATUS = 0x19;
-//-------------------------------
-const Int32 x_GET_PARAM = 0x20;
-//-------------------------------
-const Int32 Max_Motor_ID = 25;
-
-
-
-string[] Motor_ID = new string[30];
-
-
-Motor_ID[0] ="DH_CLEANHEAD ";
-Motor_ID[1] ="DH_CLEANMECH ";
-Motor_ID[2] ="DH_LID ";
-Motor_ID[3] ="DRYER_DRIVING";
-Motor_ID[4] ="DRYER_LID ";
-Motor_ID[5] ="DRYER_LOADARM";
-Motor_ID[6] ="DISPENSER_1 ";
-Motor_ID[7] ="DISPENSER_2 ";
-Motor_ID[8] ="DISPENSER_3 ";
-Motor_ID[9] ="DISPENSER_4 ";
-Motor_ID[10]="DISPENSER_5 ";
-Motor_ID[11]="DISPENSER_6 ";
-Motor_ID[12]="DISPENSER_7 ";
-Motor_ID[13]="DISPENSER_8 ";
-Motor_ID[14]="SCREW ";
-Motor_ID[15]="WINDER ";
-Motor_ID[16]="LDANCER1 ";
-Motor_ID[17]="LDANCER2 ";
-Motor_ID[18]="LDRIVING ";
-Motor_ID[19]="LLODING ";
-Motor_ID[20]="LPIVOT ";
-Motor_ID[21]="RDANCER ";
-Motor_ID[22]="RDRIVING ";
-Motor_ID[23]="RLOADARM ";
-Motor_ID[24]="RLOADING ";
-Motor_ID[25]="SPARE1_1 ";
-Motor_ID[26]="SPARE1_2 ";
-Motor_ID[27]="SPARE2_1 ";
-Motor_ID[28]="SPARE2_2 ";
-Motor_ID[29]="SPARE3 ";
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Int32 i = 12; // to run only for specific motor
-
-public void OnExecute(StubManager stubManager)
-{
-
-stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000380 , 0x06b9);
-stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000390 , 0x003f);
-stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000550 , 0x0003);
-stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000b80 , 0x001f);
-
-
-
-
-
-
-
-
-
-
-
- for (i = 0; i < Max_Motor_ID; i++)
- {
-
- if((i%8 ==0) )
- {
- stubManager.Write("\n\n");
- stubManager.Write("MoTor\t\t\tMIN_SPEED\tMAX_SPEED\tSTEP_MODE\tACC\t\tDEC\t\tKVAL_HOLD\tKVAL_RUN\tKVAL_ACC\tKVAL_DEC\tOCD_TH\t\tSTALL_TH\tCONFIG\t\tFS_SPD\t\tADC_OUT\tDriver_Type\n");
- stubManager.Write("------\t\t\t--------\t--------\t----------\t---\t\t---\t\t---------\t--------\t--------\t--------\t------\t\t--------\t------\t\t------\t\t------\t\t------\n");
- }
- //stubManager.Write(i);
-
- stubManager.Write(Motor_ID[i]);
- stubManager.Write("\t\t");
-
- var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MIN_SPEED)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MAX_SPEED)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4); stubManager.Write("\t");
- stubManager.Write("\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ACC)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_DEC)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_HOLD)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_RUN)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_ACC)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_DEC)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_OCD_TH)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STALL_TH)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_CONFIG)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FS_SPD)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ADC_OUT)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- if( response.RecivedData > 0x15 )
- stubManager.Write("\t\tDual_Driver");
- else if ( response.RecivedData > 0x0b)
- stubManager.Write("\t\tVolage_Driver");
- else if ( response.RecivedData > 8 )
- stubManager.Write("\t\tCurrent_Driver");
- else
- stubManager.Write("\t\tNo_Driver");
-
-
- stubManager.Write("\n\n");
-
- }
-
- stubManager.Write("MoTor\t\t\tINT_SPD\tST_SLP\t\tSLP_ACC\tSLP_DEC\tSTATUS\n");
- stubManager.Write("-----\t\t\t-------\t------\t\t-------\t--------\t-----\n");
-
- for (i = 0; i < Max_Motor_ID; i++)
- {
- stubManager.Write(Motor_ID[i]);
-
-// stubManager.Write(i);
- stubManager.Write("\t\t");
-
- var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_INT_SPD)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ST_SLP)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_ACC)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_DEC)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STATUS)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n\n");
-
-
-
- }
-
- stubManager.Write("--------------- New Driver POWERSTEP01 ---------------\n\n");
- stubManager.Write("MoTor\tPS01_CONFIG\t\tPS01_STATUS\t\tPS01_GATECFG1\t\tPS01_GATECFG2\n");
- stubManager.Write("-----\t------------\t\t-----------\t\t-------------\t\t------------\n");
-
- for (i = 6; i < 14; i++)//Dispensers only
- //for (i = 25; i < 29; i++)//Dispensers only
- {
- stubManager.Write(i);
- stubManager.Write("\t");
-
- var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_CONFIG)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_STATUS)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG1)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG2)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n\n");
- }
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Progress_SetRapid.cs b/Software/Stubs Collection/stubs/Progress_SetRapid.cs
deleted file mode 100644
index fbe559378..000000000
--- a/Software/Stubs Collection/stubs/Progress_SetRapid.cs
+++ /dev/null
@@ -1,23 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-
-
-ProgressRequest progressRequest = new ProgressRequest();
-progressRequest.Amount = 0xE0;
-progressRequest.Delay = 0x1;
-
- var response = stubManager.Run<ProgressResponse>(progressRequest);
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Read Dancer.cs b/Software/Stubs Collection/stubs/Read Dancer.cs
index 8fcfc94b0..58f302d53 100644
--- a/Software/Stubs Collection/stubs/Read Dancer.cs
+++ b/Software/Stubs Collection/stubs/Read Dancer.cs
@@ -12,21 +12,27 @@ using Tango.Stubs;
public void OnExecute(StubManager stubManager)
{
- var response1 = stubManager.ShowResponseWindow("Please Enter Password:");
- if (response1=="Aa123456")
- {
- stubManager.WriteLine(response1);
-
+ stubManager.RequestTimeout = 2000;
+ //for (int i = 0; i < 100; i++)
+ {
+// Request ----
+// UInt32 : DancerID
+
+// Response ----
+// UInt32 : DancerID
+// UInt32 : Position
+// UInt32 : GeneralStatus
+// UInt32 : DetailedStatus
+ //var response = stubManager.Run<StubDancerPositionResponse>("StubDancerPositionRequest" ,1);
- stubManager.RequestTimeout = 2000;
- //for (int i = 0; i < 100; i++)
- {
- var response = stubManager.Run<StubDancerPositionResponse>("StubDancerPositionRequest" ,0);
- Thread.Sleep(1000);
- response = stubManager.Run<StubDancerPositionResponse>("StubDancerPositionRequest" ,1);
- Thread.Sleep(1000);
- response = stubManager.Run<StubDancerPositionResponse>("StubDancerPositionRequest" ,2);
- Thread.Sleep(1000);
- }
+//var response = stubManager.Run<StubMotorSpeedResponse>("StubMotorSpeedRequest" ,22);
+//var response;
+//var response = stubManager.Run<StubMotorStatusResponse>("StubMotorStatusRequest" ,18, true);
+ var response = stubManager.Run<StubDancerPositionResponse>("StubDancerPositionRequest" ,0);
+ Thread.Sleep(1000);
+ response = stubManager.Run<StubDancerPositionResponse>("StubDancerPositionRequest" ,1);
+ Thread.Sleep(1000);
+ response = stubManager.Run<StubDancerPositionResponse>("StubDancerPositionRequest" ,2);
+ Thread.Sleep(1000);
}
} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Read Dispensers Serial Num.cs b/Software/Stubs Collection/stubs/Read Dispensers Serial Num.cs
deleted file mode 100644
index 934371725..000000000
--- a/Software/Stubs Collection/stubs/Read Dispensers Serial Num.cs
+++ /dev/null
@@ -1,27 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
- uint i;
- string serialnum;
-
- StubDispenserEEpromRequest dispenserEEpromRequest = new StubDispenserEEpromRequest();
- for (i = 0; i<8;i++)
- {
- dispenserEEpromRequest.DispenserId = i;
- dispenserEEpromRequest.BurnRequest = false;
- var response = stubManager.Run<StubDispenserEEpromResponse>(dispenserEEpromRequest);
- stubManager.Write("Dispenser Serial # read \t"+ (i+1) + " serial number "+ response.DispenserEEprom.DispenserSN +"\n");
- }
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/11.cs b/Software/Stubs Collection/stubs/Scripts/11.cs
deleted file mode 100644
index 9b7b1097e..000000000
--- a/Software/Stubs Collection/stubs/Scripts/11.cs
+++ /dev/null
@@ -1,42 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-
-const Int32 x_ABS_POS = 0x01;
-const Int32 x_EL_POS = 0x02;
-const Int32 x_MARK = 0x03;
-const Int32 x_SPEED = 0x04;
-const Int32 x_GET_PARAM = 0x20;
-const Int32 x_MOVE_PARAM = 0x40;
-
-const Int32 F1_MOTO_DRYER_LOADARM_A1_TX_00 = 0x60000240 ;
-const Int32 F1_MOTO_DRYER_LOADARM_A1_TX_01 = 0x60000242 ;
-const Int32 F1_MOTO_DRYER_LOADARM_A1_RX_00 = 0x60000244 ;
-const Int32 F1_MOTO_DRYER_LOADARM_A1_RX_01 = 0x60000246 ;
-
-public void OnExecute(StubManager stubManager)
-{
-
-
-
-stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F1_MOTO_DRYER_LOADARM_A1_TX_01,0X4100);
-stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F1_MOTO_DRYER_LOADARM_A1_TX_00,32000);
-
-
-
-
-
-
-
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/12345.cs b/Software/Stubs Collection/stubs/Scripts/12345.cs
deleted file mode 100644
index 354c349cc..000000000
--- a/Software/Stubs Collection/stubs/Scripts/12345.cs
+++ /dev/null
@@ -1,63 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-
-/*** Dryer Motors ***/
-const Int32 F1_MOTO_DRYER_LOADARM_A1_TX_00 = 0x60000240 ;
-const Int32 F1_MOTO_DRYER_LOADARM_A1_TX_01 = 0x60000242 ;
-const Int32 F1_MOTO_DRYER_LOADARM_A1_RX_00 = 0x60000244 ;
-const Int32 F1_MOTO_DRYER_LOADARM_A1_RX_01 = 0x60000246 ;
-
-
-const Int32 x_ABS_POS = 0x01;
-const Int32 x_EL_POS = 0x02;
-const Int32 x_MARK = 0x03;
-const Int32 x_SPEED = 0x04;
-const Int32 x_GET_PARAM = 0x20;
-const Int32 x_MOVE_PARAM = 0x40;
-
-
-
-
-public void OnExecute(StubManager stubManager)
-{
-
-// Request ----
-// UInt32 : Address
-// UInt32 : Value
-
-// Response ----
-// String : Status
-// UInt32 : StatusWord
-
-stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F1_MOTO_DRYER_LOADARM_A1_TX_01,0);
-stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F1_MOTO_DRYER_LOADARM_A1_TX_00,(x_GET_PARAM | x_ABS_POS)<<8);
-
-
-
-var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_MOTO_DRYER_LOADARM_A1_RX_00);
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_MOTO_DRYER_LOADARM_A1_RX_01);
-
-stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F1_MOTO_DRYER_LOADARM_A1_TX_01,0);
-stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F1_MOTO_DRYER_LOADARM_A1_TX_00,0);
-
-
-
-response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_MOTO_DRYER_LOADARM_A1_RX_00);
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_MOTO_DRYER_LOADARM_A1_RX_01);
-
-
-
-
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/ArcHead/Write Arc head eeprom.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/ArcHead/Write Arc head eeprom.cs
deleted file mode 100644
index 8d0056de2..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/ArcHead/Write Arc head eeprom.cs
+++ /dev/null
@@ -1,146 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-//----------------------
-const Int32 I2C_ID = 3; //MCU_I2C3
-const Int32 TCA9548A_address = 0xE2;
-const Int32 I2C_Slave_Add = 0xA0; // //eeprom address - 32kByte
-int Head_Mux_Channel_ID = 4; //Head MUX channel
-//----------------------
-
-const Int32 SerialNum = 0x01;
-
-
-int enable_channel(int Channel_ID)
-{
- uint Const_temp = 0x01;
-
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = TCA9548A_address;
-
- Const_temp = Const_temp << Channel_ID;
- stubI2CWriteBytesRequest.BytesTWrite.Add(Const_temp);
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
-}
-
-
-int WriteFlatEpprom(uint I2C_Slave_Add)
-{
- uint Page=0;
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write
- //--------------------------------------------------------------
-
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x33); //header
- stubI2CWriteBytesRequest.BytesTWrite.Add(0xcc);
- stubI2CWriteBytesRequest.BytesTWrite.Add(0xaa);
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x55);
-
- //stubI2CWriteBytesRequest.BytesTWrite.Add(0x04);//HEAD_TYPE_STAPLE_SPUN
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
- Thread.Sleep(100);
-
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(92);//Byte 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write
- //--------------------------------------------------------------
-
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x20); //flat
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x00);
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x00);
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x00);
-
- //stubI2CWriteBytesRequest.BytesTWrite.Add(0x04);//HEAD_TYPE_STAPLE_SPUN
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
- Thread.Sleep(100);
-
-
-
-
-
- return 1;
-}
-
-int adc_set_for_read_ch(uint I2C_Slave_Add, uint Page)
-{
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
-}
-
-int adc_read_ch(uint I2C_Slave_Add)
-{
- StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();
- stubI2CReadBytesRequest.I2CId = I2C_ID;
- stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add + 1;
- stubI2CReadBytesRequest.NumberOfBytesToRead = 10; // Number of bytes to read
-
- var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);
- uint temph=0;
-
- for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++)
- {
- temph=response1.ReadBytes[i];
- stubManager.WriteHex(temph,2);
- }
-
- return 1;
-}
-
-
-public void OnExecute(StubManager stubManager)
-{
-
- //enable_all_channel();
- enable_channel(Head_Mux_Channel_ID); // Chanel 0-7 => Disp0enser 0-7
-
- for (int i = 0; i<1; i++)
- {
-
- WriteFlatEpprom(I2C_Slave_Add);
- Thread.Sleep(10); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet )
-
- stubManager.Write("\nPage 0x00 #");
- stubManager.Write(i);
- stubManager.Write("\t- The Buffer is: ");
- adc_set_for_read_ch(I2C_Slave_Add, 0x00);
- //Thread.Sleep(1); //Sleep for 10 milli.
- adc_read_ch(I2C_Slave_Add);
-
- Thread.Sleep(1000);
-
- }
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/ArcHead/clean_motor_ls.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/ArcHead/clean_motor_ls.cs
deleted file mode 100644
index 2a0fc12cf..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/ArcHead/clean_motor_ls.cs
+++ /dev/null
@@ -1,278 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-
-const Int32 LS_FRONT=0X460110;
-const Int32 LS_REAR=0X460120;
-const Int32 LS_UPPER=0X460140;
-const Int32 LS_SPARE=0X460180;
-
-const Int32 DyeingHeadLid_Motor = 2;
-
-const Int32 F1_MOTO_DH_LID_A1_TX_00 = 0x600002F0 ;
-const Int32 F1_MOTO_DH_LID_A1_TX_01 = 0x600002F2 ;
-const Int32 F1_MOTO_DH_LID_A1_RX_00 = 0x600002F4 ;
-const Int32 F1_MOTO_DH_LID_A1_RX_01 = 0x600002F6 ;
-
-//---------------------Start Command ----------------
-const Int32 CMD_RUN = 0; //Run on Pulse Per Secound .positive run Up and negative run Down
-const Int32 CMD_STOP= 1; //0;Hard stop(Defualt);1-Soft stop;2-Hard Hiz;3-Soft Hiz
-const Int32 CMD_HOME= 2; //Run until home .positive run Up and negative run Down
-const Int32 CMD_DLY = 3; //delay in Seconds .
-const Int32 CMD_MOVE= 4; //Move step. positive move Up and negative move Down
-const Int32 CMD_MAX_SPEED = 5; //set Maximum speed.motor will stop before that command
-
-const Int32 CMD_LOOP_NM=6; //NUMBER OF counter
-const Int32 CMD_LOOP= 7; //jump up(+) or down(-) command u
-const Int32 CMD_END = 13; //end loop .
-
-
-const Int32 x_STEP_MODE = 0x16;
-const Int32 x_STATUS = 0x19;
-const Int32 x_GET_PARAM = 0x20;
-const Int32 x_POWERSTEP01_STATUS = 0x1B;
-
-
-//-------------------------------------------- Flow Test Double PBU ------------------------------------------------
-
-Int32[] Start_Table = new int []
-{
- CMD_RUN,-40,
- CMD_DLY,200,
- CMD_STOP,0,
- CMD_DLY,10,
- CMD_HOME,40,
- CMD_END,3,
-};
-
-////////////////////////////////////
-
-public void OnExecute(StubManager stubManager)
-{
-Int32 COMMAND=0;
-Int32 Data=0;
-Int32 Index=0;
-Int32 speed=0;
-Int32 Loop_cnt=1;
-Int32 j=0;
-
-
-
- var stopwatch = new Stopwatch();
- stopwatch.Start();
-
- long elapsed_time = stopwatch.ElapsedMilliseconds;
- stubManager.WriteLine(elapsed_time);
-
- while (j!=-1)
- {
- {
- COMMAND=Start_Table[j];
- Data=Start_Table[j+1];
-
- switch (COMMAND)
- {
- case CMD_RUN:
- stubManager.WriteLine("CMD_RUN");
- Motor_Run(Data);
- break;
-
- case CMD_STOP:
- stubManager.WriteLine("CMD_stop");
- Motor_Stop(Data);
- break;
-
- case CMD_DLY:
- stubManager.WriteLine("CMD_delay");
-
- for (;Data>0;Data--)
- {
- Thread.Sleep(100); //100msec delay
- stubManager.WriteLine("CMD_delay " + Data );
- }
- break;
-
-
- case CMD_MOVE:
- stubManager.WriteLine("CMD_move");
-
- Motor_Move(Data);
- break;
-
- case CMD_END:
- stubManager.WriteLine("CMD_end");
-
- j=-3;
- break;
-
- case CMD_MAX_SPEED:
- stubManager.WriteLine("CMD_MAX_SPEED");
-
- Motor_Max_speed(Data);
- break;
-
- case CMD_HOME:
- stubManager.WriteLine("CMD_home");
-
- Move_Home(Data);
- break;
-
-
- case CMD_LOOP_NM:
- stubManager.WriteLine("LOOP_NM" + Data );
-
- Loop_cnt=Data-1;
- break;
-
- case CMD_LOOP:
- stubManager.WriteLine("CMD_loop");
-
- if (Loop_cnt!=0)
- {
- j = j+2*Data;
- Loop_cnt-- ;
- }
- break;
-
- default:
- break;
-
- }
-
- j = j + 2;
-
-
- }
-
- }
-
-}
-Int32 Motor_Max_speed(Int32 speed)
-{
- UInt32 i=Convert.ToUInt32((speed *4/61)*256*256 ) ;
- stubManager.WriteHex(i,8);
-
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor,0); //hold motor
-
-
- Motor_SetParam(F1_MOTO_DH_LID_A1_TX_01,F1_MOTO_DH_LID_A1_TX_00,0x07,i); //set max speed
-
- return 1;
-}
-
-
-int Motor_SetParam(Int32 HighAdr, Int32 LowAdr, Int32 ParaAddr, uint ParaData1)
-{
-
- Int32 Temp = 0;
- Temp = (ParaAddr << 8 ) + ( (Int32) ParaData1 >> 24);
-
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,HighAdr, (Temp & 0xffff));
- Temp = ((Int32)ParaData1 >> 8) & 0xffff;
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,LowAdr, (Temp));
-
- return 1;
-}
-
-Int32 Move_Home(Int32 speed)
-{
- Int32 Bit = 1;
- if (speed <0 )
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DyeingHeadLid_Motor, false, (-speed) );
- else
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DyeingHeadLid_Motor, true, speed);
- int i=0;
- while ((Bit != 0x0)&& (i<20000) ) //wait until Limit Switch or timeout 200*50msec=10sec
- {
- Bit=read_pio (LS_FRONT); // read LS_FRONT
- Thread.Sleep(20);
- i++;
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor,0); //hold motor
- return 0;
-}
-
-Int32 read_pio(Int32 i2c_input)
-{
- Int32 temp=0;
- var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,i2c_input); // read break
-
- temp = (Int32) (response.Progress);
- stubManager.WriteHex(temp, 4);
- stubManager.WriteLine(" ");
- temp =temp & (i2c_input& 0xff); //if break ok
-
- return temp;
-}
-
-
-
-//////////////////////////////////////////////////////////////
-Int32 Motor_Move (Int32 position)
-
- {
- Int32 x=16;
- var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,DyeingHeadLid_Motor, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0);
-
- response.RecivedData=response.RecivedData & 0x0007;
- if (response.RecivedData == 0)
- x=1;
- if (response.RecivedData == 1)
- x=2;
- if (response.RecivedData == 2)
- x=4;
- if (response.RecivedData == 3)
- x=8;
-
-
- int i=0;
- if (position<0 )
- stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,DyeingHeadLid_Motor, false, (-position * x) );
- else
- stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,DyeingHeadLid_Motor, true, position * x);
-
- Thread.Sleep(100); //100msec delay
-
- while (i==0)
- {
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,DyeingHeadLid_Motor, (x_GET_PARAM | x_POWERSTEP01_STATUS)<<16, 0, 0);
-
- stubManager.WriteHex(response.RecivedData,4);
- response.RecivedData=response.RecivedData & 0x0002;
- if (response.RecivedData==0x0002)
- i=1;
- Thread.Sleep(100); //100msec delay
-
-
- }
- return 0;
- }
-
-//////////////////////////////////////////////////////////////
-Int32 Motor_Run (Int32 speed)
-
- {
- if (speed<0 )
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DyeingHeadLid_Motor, false, (-speed) );
- else
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DyeingHeadLid_Motor, true, speed);
- return 0;
- }
-
-//---------------------------------------
-
- Int32 Motor_Stop(Int32 Stop_Value )
-{
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor, Stop_Value);
- return 1;
-}
-
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser ByPass - getout from loewer safety.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser ByPass - getout from loewer safety.cs
deleted file mode 100644
index 34dce79fe..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser ByPass - getout from loewer safety.cs
+++ /dev/null
@@ -1,46 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
- UInt32 Dispenser_ID = 3; //Software Dispensers 0..7, BP Dispensers 1..8 (4 for bp disp 5)
-
- stubManager.Write("ByPass + TestRelay + read inputs ");
- stubManager.WriteLine("");
- var response = stubManager.Run<StubDispenserResponse>("StubDispenserRequest" ,Dispenser_ID, true, false, 0, 0);//ByPass + read inputs
- stubManager.Write("MSB for Disp_UP, LSB for Disp_Down ");
- stubManager.WriteHex((response.DispenserPosition),4);
- stubManager.WriteLine("");
- stubManager.Write("MSB for Realy_On, LSB for Over_Press ");
- stubManager.WriteHex((response.InkWorningLevel),4);
- stubManager.WriteLine("");
- stubManager.WriteLine("----");
- stubManager.WriteLine("");
-
- stubManager.Run("StubMotorRunRequest" ,(Dispenser_ID + 6), true, 1200 );//Dispenser ID -> motor ID
-
- Thread.Sleep(30000); //Sleep
- stubManager.Run("StubMotorStopRequest" ,15, 3);
-
- stubManager.Write("Remove ByPass ( + read inputs) ");
- stubManager.WriteLine("");
- response = stubManager.Run<StubDispenserResponse>("StubDispenserRequest" ,Dispenser_ID, false, false, 0, 0);// read inputs
- stubManager.Write("MSB for Disp_UP, LSB for Disp_Down ");
- stubManager.WriteHex((response.DispenserPosition),4);
- stubManager.WriteLine("");
- stubManager.Write("MSB for Realy_On, LSB for Over_Press ");
- stubManager.WriteHex((response.InkWorningLevel),4);
- stubManager.WriteLine("");
- stubManager.WriteLine("----");
- stubManager.WriteLine("");
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser ByPass - getout from upper safety.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser ByPass - getout from upper safety.cs
deleted file mode 100644
index 1887d433c..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser ByPass - getout from upper safety.cs
+++ /dev/null
@@ -1,46 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
- UInt32 Dispenser_ID = 1; //Software Dispensers 0..7, BP Dispensers 1..8 (4 for bp disp 5)
-
- stubManager.Write("ByPass + TestRelay + read inputs ");
- stubManager.WriteLine("");
- var response = stubManager.Run<StubDispenserResponse>("StubDispenserRequest" ,Dispenser_ID, true, false, 0, 0);//ByPass + read inputs
- stubManager.Write("MSB for Disp_UP, LSB for Disp_Down ");
- stubManager.WriteHex((response.DispenserPosition),4);
- stubManager.WriteLine("");
- stubManager.Write("MSB for Realy_On, LSB for Over_Press ");
- stubManager.WriteHex((response.InkWorningLevel),4);
- stubManager.WriteLine("");
- stubManager.WriteLine("----");
- stubManager.WriteLine("");
-
- stubManager.Run("StubMotorRunRequest" ,(Dispenser_ID + 6), false, 1200 );//Dispenser ID -> motor ID
-
- Thread.Sleep(30000); //Sleep
- stubManager.Run("StubMotorStopRequest" ,15, 3);
-
- stubManager.Write("Remove ByPass ( + read inputs) ");
- stubManager.WriteLine("");
- response = stubManager.Run<StubDispenserResponse>("StubDispenserRequest" ,Dispenser_ID, false, false, 0, 0);// read inputs
- stubManager.Write("MSB for Disp_UP, LSB for Disp_Down ");
- stubManager.WriteHex((response.DispenserPosition),4);
- stubManager.WriteLine("");
- stubManager.Write("MSB for Realy_On, LSB for Over_Press ");
- stubManager.WriteHex((response.InkWorningLevel),4);
- stubManager.WriteLine("");
- stubManager.WriteLine("----");
- stubManager.WriteLine("");
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser_LimitSwitch.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser_LimitSwitch.cs
index 7eb048556..90ad540f9 100644
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser_LimitSwitch.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser_LimitSwitch.cs
@@ -37,8 +37,6 @@ int LimitSW_Dispenser(Int32 Fpga, Int32 Adr, int DispenserNo)
counter = counter + 1;
}
Thread.Sleep(100);
- Temp = RetVal.Value;
-
}
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser_PressureSensor.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser_PressureSensor.cs
index 342d2fdb2..11a419576 100644
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser_PressureSensor.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser_PressureSensor.cs
@@ -27,7 +27,7 @@ public void OnExecute(StubManager stubManager)
for (int i=2; i<10; i++)
{
- Thread.Sleep(100);
+ Thread.Sleep(1000);
var response = stubManager.Run<StubIntADCReadResponse>("StubIntADCReadRequest" ,i);
stubManager.Write("\nADC VALUE, DISPENSER "); stubManager.Write(i-1); stubManager.Write("\t"); stubManager.WriteHex(response.SamplingInBits, 4); stubManager.Write("\t"); stubManager.Write(response.VoltageSamplingMv); stubManager.Write(" mV");
}
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Blowe_RMO_LOG.CSV b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Blowe_RMO_LOG.CSV
deleted file mode 100644
index c91b21308..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Blowe_RMO_LOG.CSV
+++ /dev/null
@@ -1,4 +0,0 @@
-,RPM
-0,2675
-1,2688
-2,2688
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test.cs
deleted file mode 100644
index c88a17313..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test.cs
+++ /dev/null
@@ -1,204 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-Int32 position_32bit=0;
-Int32 last_14bit_position;
-
-const Int32 HomeStart=1024;
-const Int32 DrierLoadingArm_Motor = 5;
-const Int32 NM_ROUND =30;
-public void OnExecute(StubManager stubManager)
-{
- Test_Load_Arm();
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3);
-
-
-}
-
-bool Encoder_Dryer_Exist()
-{
- Int32 temp;
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190);
- var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192);
-
- temp = Convert.ToInt32 (response.Value & 0x0300);
- if (temp==0)
- return true;
- else
- return false;
-}
-
-
-
-void ReadEncoder_Dryer()
-{
- Int32 temp;
- Int32 temp1;
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190);
- var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192);
-
- temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff));
- if (temp>last_14bit_position)
- {
- temp1=temp-last_14bit_position;
- position_32bit=position_32bit+temp1;
- if (temp1>0x2000)
- position_32bit=position_32bit-0x4000;
- }
- else if (temp<last_14bit_position)
-
- {
- temp1=last_14bit_position-temp;
- position_32bit=position_32bit-temp1;
- if (temp1>0x2000)
- position_32bit=position_32bit+0x4000;
- }
-
- last_14bit_position=temp;
-
- return ;
-}
-
-int Test_Load_Arm()
-{
- int Loop_Nm = 1;
-
- Int32 temp3=0;
- Int32 j=0;
- Int32 i=0;
-
- if (!Encoder_Dryer_Exist())
- {
-
- stubManager.Write("Encoder of Dryer Fail \n");
- return 0;
-
- }
-
- var response = stubManager.ShowResponseWindow("Enter Loop Number for Dryer.", "");
- //stubManager.WriteLine(response);
- Loop_Nm = int.Parse(response);
-
- ReadEncoder_Dryer();
- position_32bit=0;
- ReadEncoder_Dryer();
- Int32 temp=position_32bit;
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, false, 100);//40
- Thread.Sleep(50);
-// temp=ReadEncoder_Dryer();
- while ((temp3<2)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min
- {
- i++;
- Thread.Sleep(50);
- ReadEncoder_Dryer();
-// stubManager.Write("position_32bit " + position_32bit +"\t");
-
- if (Math.Abs(position_32bit)> (50*0x4000))
- temp3=3;
- if ((position_32bit-temp)>20)
- temp3++;
-// stubManager.Write("Temp " + temp +"\n");
- temp=position_32bit;
-// stubManager.Write("Temp3 " + temp3 +"\n");
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3);
-
- DialogResult result1 = MessageBox.Show("Arm Motor rotate ?", "Warning",MessageBoxButtons.YesNo);
- if(result1 == DialogResult.No)
- {
-
- stubManager.Write("Arm Motor Not rotate\n");
- return 0;
- }
-
- DialogResult result2 = MessageBox.Show("Did Arm Motor arrive to mechanical stopper?", "Warning",MessageBoxButtons.YesNo);
- if(result2 == DialogResult.No)
- {
-
- stubManager.Write("Arm Motor Not arrive to mecahnicl stopper \n");
- return 0;
- }
- position_32bit=0;
-
-for (int loop=0;i<Loop_Nm;i++)
-
- {
- stubManager.Write("Loop Nm " + (loop+1) +" strat up posision \n");
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, true, 200);
-// Thread.Sleep(50);
- i=0;
- temp3=0;
-
-
- while ((temp3<3)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min
- {
- Thread.Sleep(50);
- i++;
- ReadEncoder_Dryer();
-
- if (Math.Abs(position_32bit)> (NM_ROUND*0x4000))
- temp3=3;
- if ((temp-position_32bit)>20)
- temp3++;
- temp=position_32bit;
-
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3);
-
- DialogResult result5 = MessageBox.Show("Did Arm Motor make 30 rounds? See picture on document", "Warning",MessageBoxButtons.YesNo);
- if(temp3 >2 )
- {
- stubManager.Write("Arm Motor not make 30 rounds\n");
- return 0;
- }
-
- Thread.Sleep(50);
- stubManager.Write("Loop Nm " + (loop+1) +" strat down posision \n");
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, false, 200);
- i=0;
- temp3=0;
-
- while ((temp3<3)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min
- {
- Thread.Sleep(50);
- i++;
- ReadEncoder_Dryer();
-
- if (Math.Abs(position_32bit)< HomeStart)
- temp3=3;
- if ((position_32bit-temp)>20)
- temp3++;
- temp=position_32bit;
-
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3);
-
- DialogResult result3 = MessageBox.Show("Did Arm Motor make 30 rounds? See picture on document", "Warning",MessageBoxButtons.YesNo);
- if(temp3 >2 )
- {
- stubManager.Write("Arm Motor not make 30 rounds\n");
- return 0;
- }
- Thread.Sleep(50);
-
-
-
-
- }
- return 0;
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test1.cs
deleted file mode 100644
index c4c3f13f4..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test1.cs
+++ /dev/null
@@ -1,217 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-Int32 position_32bit=0;
-Int32 last_14bit_position;
-
-const Int32 HomeStart=2048;
-const Int32 DrierLoadingArm_Motor = 5;
-const Int32 NM_ROUND =30;
-public void OnExecute(StubManager stubManager)
-{
- Test_Load_Arm();
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3);
-
-
-}
-
-bool Encoder_Dryer_Exist()
-{
- Int32 temp;
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190);
- var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192);
-
- temp = Convert.ToInt32 (response.Value & 0x0300);
- if (temp==0)
- return true;
- else
- return false;
-}
-
-
-
-void ReadEncoder_Dryer()
-{
- Int32 temp;
- Int32 temp1;
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190);
- var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192);
-
- temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff));
- if (temp>last_14bit_position)
- {
- temp1=temp-last_14bit_position;
- position_32bit=position_32bit+temp1;
- if (temp1>0x2000)
- position_32bit=position_32bit-0x4000;
- }
- else if (temp<last_14bit_position)
-
- {
- temp1=last_14bit_position-temp;
- position_32bit=position_32bit-temp1;
- if (temp1>0x2000)
- position_32bit=position_32bit+0x4000;
- }
-
- last_14bit_position=temp;
-
- return ;
-}
-
-int Test_Load_Arm()
-{
- int Loop_Nm = 1;
-
- Int32 temp3=0;
- Int32 j=0;
- Int32 i=0;
-
- if (!Encoder_Dryer_Exist())
- {
-
- stubManager.Write("Encoder of Dryer Fail \n");
- return 0;
-
- }
-
- var response = stubManager.ShowResponseWindow("Enter Loop Number for Dryer.", "");
- //stubManager.WriteLine(response);
- Loop_Nm = int.Parse(response);
-
- ReadEncoder_Dryer();
- position_32bit=0;
- ReadEncoder_Dryer();
- Int32 temp=position_32bit;
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, false, 100);//40
- Thread.Sleep(50);
-// temp=ReadEncoder_Dryer();
- while ((temp3<2)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min
- {
- i++;
- Thread.Sleep(30);
- ReadEncoder_Dryer();
-// stubManager.Write("position_32bit " + position_32bit +"\t");
-
- if (Math.Abs(position_32bit)> (50*0x4000))
- temp3=3;
- if ((position_32bit-temp)>20)
- temp3++;
-// stubManager.Write("Temp " + temp +"\n");
- temp=position_32bit;
-// stubManager.Write("Temp3 " + temp3 +"\n");
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3);
-
- DialogResult result1 = MessageBox.Show("Arm Motor rotate ?", "Warning",MessageBoxButtons.YesNo);
- if(result1 == DialogResult.No)
- {
-
- stubManager.Write("Arm Motor Not rotate\n");
- return 0;
- }
-
- DialogResult result2 = MessageBox.Show("Did Arm Motor arrive to mechanical stopper?", "Warning",MessageBoxButtons.YesNo);
- if(result2 == DialogResult.No)
- {
-
- stubManager.Write("Arm Motor Not arrive to mecahnicl stopper \n");
- return 0;
- }
-
- Thread.Sleep(1000);
-
- ReadEncoder_Dryer();
- position_32bit=0;
- ReadEncoder_Dryer();
- position_32bit=0;
-for (int loop=0;loop<Loop_Nm;loop++)
-
- {
- stubManager.Write("Loop Nm " + (loop+1) +" strat up posision \n");
- temp=position_32bit;
- stubManager.Write("position_32bit = " + position_32bit +"\n");
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, true, 200);
-// Thread.Sleep(50);
- i=0;
- temp3=-2;
-
-
- while ((temp3<2)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min
- {
- Thread.Sleep(30);
- i++;
- ReadEncoder_Dryer();
-
- if (Math.Abs(position_32bit)> (NM_ROUND*0x4000))
- temp3=3;
- if ((temp-position_32bit)>20)
- temp3++;
- temp=position_32bit;
-
-// stubManager.Write("position_32bit = " +position_32bit +"\ttemp3 = " + temp3 +"\n");
-
-
-
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 0);
-
- if(temp3 !=3 )
- {
- stubManager.Write("Arm Motor not make 30 rounds\n");
- return 0;
- }
-
- Thread.Sleep(1000);
- stubManager.Write("Loop Nm " + (loop+1) +" strat down posision \n");
- stubManager.Write("position_32bit = " + position_32bit +"\n");
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, false, 200);
- i=0;
- temp3=-2;
- temp=position_32bit;
-
- while ((temp3<2)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min
- {
- Thread.Sleep(50);
- i++;
- ReadEncoder_Dryer();
-
- if (Math.Abs(position_32bit)< HomeStart)
- temp3=3;
- if ((position_32bit-temp)>20)
- temp3++;
- temp=position_32bit;
-// stubManager.Write("position_32bit = " +position_32bit +"\ttemp3 = " + temp3 +"\n");
-
-
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 0);
-
- if(temp3 !=3 )
- {
- stubManager.Write("Arm Motor not make 30 rounds\n");
- return 0;
- }
- Thread.Sleep(1000);
-
-
-
-
- }
- return 0;
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test2.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test2.cs
deleted file mode 100644
index 7670a8708..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test2.cs
+++ /dev/null
@@ -1,227 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-Int32 position_32bit=0;
-Int32 last_14bit_position;
-
-const Int32 HomeStart=2048;
-const Int32 DrierLoadingArm_Motor = 5;
-const Int32 NM_ROUND =30;
-public void OnExecute(StubManager stubManager)
-{
- Test_Load_Arm();
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3);
-
-
-}
-
-bool Encoder_Dryer_Exist()
-{
- Int32 temp;
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190);
- var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192);
-
- temp = Convert.ToInt32 (response.Value & 0x0300);
- if (temp==0)
- return true;
- else
- return false;
-}
-
-
-
-void ReadEncoder_Dryer()
-{
- Int32 temp;
- Int32 temp1;
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190);
- var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192);
-
- temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff));
- if (temp>last_14bit_position)
- {
- temp1=temp-last_14bit_position;
- position_32bit=position_32bit+temp1;
- if (temp1>0x2000)
- position_32bit=position_32bit-0x4000;
- }
- else if (temp<last_14bit_position)
-
- {
- temp1=last_14bit_position-temp;
- position_32bit=position_32bit-temp1;
- if (temp1>0x2000)
- position_32bit=position_32bit+0x4000;
- }
-
- last_14bit_position=temp;
-
- return ;
-}
-
-int Test_Load_Arm()
-{
- int Loop_Nm = 1;
-
- Int32 temp3=0;
- Int32 j=0;
- Int32 i=0;
-
- if (!Encoder_Dryer_Exist())
- {
-
- stubManager.Write("Encoder of Dryer Fail \n");
- return 0;
-
- }
-
- var response = stubManager.ShowResponseWindow("Enter Loop Number for Dryer.", "");
- //stubManager.WriteLine(response);
- Loop_Nm = int.Parse(response);
-
- ReadEncoder_Dryer();
- position_32bit=0;
- ReadEncoder_Dryer();
- Int32 temp=position_32bit;
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, false, 100);//40
- Thread.Sleep(50);
-// temp=ReadEncoder_Dryer();
- while ((temp3<2)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min
- {
- i++;
- Thread.Sleep(30);
- ReadEncoder_Dryer();
-// stubManager.Write("position_32bit " + position_32bit +"\t");
-
- if (Math.Abs(position_32bit)> (50*0x4000))
- temp3=3;
- if ((position_32bit-temp)>20)
- temp3++;
-// stubManager.Write("Temp " + temp +"\n");
- temp=position_32bit;
-// stubManager.Write("Temp3 " + temp3 +"\n");
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3);
-
- DialogResult result1 = MessageBox.Show("Arm Motor rotate ?", "Warning",MessageBoxButtons.YesNo);
- if(result1 == DialogResult.No)
- {
-
- stubManager.Write("Arm Motor Not rotate\n");
- return 0;
- }
-
- DialogResult result2 = MessageBox.Show("Did Arm Motor arrive to mechanical stopper?", "Warning",MessageBoxButtons.YesNo);
- if(result2 == DialogResult.No)
- {
-
- stubManager.Write("Arm Motor Not arrive to mecahnicl stopper \n");
- return 0;
- }
-
- Thread.Sleep(1000);
- stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,5, true, 50);
- Thread.Sleep(1000);
-
- ReadEncoder_Dryer();
- position_32bit=0;
- ReadEncoder_Dryer();
- position_32bit=0;
-for (int loop=0;loop<Loop_Nm;loop++)
-
- {
- stubManager.Write("Loop Nm " + (loop+1) +" strat up posision \n");
- temp=position_32bit;
- stubManager.Write("position_32bit = " + position_32bit +"\n");
-
-// stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, true, 200);
- stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,5, true, 7680 * NM_ROUND);
-
-// Thread.Sleep(50);
- i=0;
- temp3=-2;
-
-
- while ((temp3<2)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min
- {
- Thread.Sleep(30);
- i++;
- ReadEncoder_Dryer();
-
-// if (Math.Abs(position_32bit)> (NM_ROUND*0x4000))
-// temp3=3;
- if (temp==position_32bit)
- temp3++;
- temp=position_32bit;
-
-// stubManager.Write("position_32bit = " +position_32bit +"\ttemp3 = " + temp3 +"\n");
-
-
-
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3);
-
- if (Math.Abs(position_32bit - NM_ROUND*0x4000 )> 500)
-
- {
- stubManager.Write("Arm Motor not make 30 rounds\n");
- return 0;
- }
-
-
- Thread.Sleep(1000);
- stubManager.Write("Loop Nm " + (loop+1) +" strat down posision \n");
- stubManager.Write("position_32bit = " + position_32bit +"\n");
-
-// stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, false, 200);
- stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,5, false, 7680 * NM_ROUND);
- i=0;
- temp3=-2;
- temp=position_32bit;
-
- while ((temp3<2)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min
- {
- Thread.Sleep(50);
- i++;
- ReadEncoder_Dryer();
-
- // if (Math.Abs(position_32bit)< HomeStart)
- // temp3=3;
- if (position_32bit==temp)
- temp3++;
- temp=position_32bit;
-// stubManager.Write("position_32bit = " +position_32bit +"\ttemp3 = " + temp3 +"\n");
-
-
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3);
-
-
- if (Math.Abs(position_32bit )> 500)
-
- {
- stubManager.Write("Arm Motor not make 30 rounds\n");
- return 0;
- }
-
- Thread.Sleep(1000);
-
-
-
-
- }
- return 0;
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test3.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test3.cs
deleted file mode 100644
index 7a7542ab7..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test3.cs
+++ /dev/null
@@ -1,229 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-Int32 position_32bit=0;
-Int32 last_14bit_position;
-
-const Int32 HomeStart=2048;
-const Int32 DrierLoadingArm_Motor = 5;
-const Int32 NM_ROUND =30;
-public void OnExecute(StubManager stubManager)
-{
- Test_Load_Arm();
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 1);
-
-
-}
-
-bool Encoder_Dryer_Exist()
-{
- Int32 temp;
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190);
- var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192);
-
- temp = Convert.ToInt32 (response.Value & 0x0300);
- if (temp==0)
- return true;
- else
- return false;
-}
-
-
-
-void ReadEncoder_Dryer()
-{
- Int32 temp;
- Int32 temp1;
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190);
- var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192);
-
- temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff));
- if (temp>last_14bit_position)
- {
- temp1=temp-last_14bit_position;
- position_32bit=position_32bit+temp1;
- if (temp1>0x2000)
- position_32bit=position_32bit-0x4000;
- }
- else if (temp<last_14bit_position)
-
- {
- temp1=last_14bit_position-temp;
- position_32bit=position_32bit-temp1;
- if (temp1>0x2000)
- position_32bit=position_32bit+0x4000;
- }
-
- last_14bit_position=temp;
-
- return ;
-}
-
-int Test_Load_Arm()
-{
- int Loop_Nm = 1;
-
- Int32 temp3=0;
- Int32 j=0;
- Int32 i=0;
-
- if (!Encoder_Dryer_Exist())
- {
-
- stubManager.Write("Encoder of Dryer Fail \n");
- return 0;
-
- }
-
- var response = stubManager.ShowResponseWindow("Enter Loop Number for Dryer.", "");
- //stubManager.WriteLine(response);
- Loop_Nm = int.Parse(response);
-
- ReadEncoder_Dryer();
- position_32bit=0;
- ReadEncoder_Dryer();
- Int32 temp=position_32bit;
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, false, 100);//40
- Thread.Sleep(50);
-// temp=ReadEncoder_Dryer();
- while ((temp3<2)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min
- {
- i++;
- Thread.Sleep(30);
- ReadEncoder_Dryer();
-// stubManager.Write("position_32bit " + position_32bit +"\t");
-
- if (Math.Abs(position_32bit)> (50*0x4000))
- temp3=3;
- if ((position_32bit-temp)>20)
- temp3++;
-// stubManager.Write("Temp " + temp +"\n");
- temp=position_32bit;
-// stubManager.Write("Temp3 " + temp3 +"\n");
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3);
-
- DialogResult result1 = MessageBox.Show("Arm Motor rotate ?", "Warning",MessageBoxButtons.YesNo);
- if(result1 == DialogResult.No)
- {
-
- stubManager.Write("Arm Motor Not rotate\n");
- return 0;
- }
-
- DialogResult result2 = MessageBox.Show("Did Arm Motor arrive to mechanical stopper?", "Warning",MessageBoxButtons.YesNo);
- if(result2 == DialogResult.No)
- {
-
- stubManager.Write("Arm Motor Not arrive to mecahnicl stopper \n");
- return 0;
- }
-
- Thread.Sleep(1000);
- stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,5, true, 50);
- Thread.Sleep(1000);
-
- ReadEncoder_Dryer();
- position_32bit=0;
- ReadEncoder_Dryer();
- position_32bit=0;
-for (int loop=0;loop<Loop_Nm;loop++)
-
- {
- stubManager.Write("Loop Nm " + (loop+1) +" strat up posision \n");
- temp=position_32bit;
- stubManager.Write("position_32bit = " + position_32bit +"\n");
-
-// stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, true, 200);
- stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,5, true, 7680 * NM_ROUND);
-
-// Thread.Sleep(50);
- i=0;
- temp3=-2;
-
-
- while ((temp3<2)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min
- {
- Thread.Sleep(30);
- i++;
- ReadEncoder_Dryer();
-
-// if (Math.Abs(position_32bit)> (NM_ROUND*0x4000))
-// temp3=3;
- if (temp==position_32bit)
- temp3++;
- temp=position_32bit;
-
-// stubManager.Write("position_32bit = " +position_32bit +"\ttemp3 = " + temp3 +"\n");
-
-
-
- }
- Thread.Sleep(1000);
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 1);
-
- if (Math.Abs(position_32bit - NM_ROUND*0x4000 )> 500)
-
- {
- stubManager.Write("Arm Motor not make 30 rounds\n");
- return 0;
- }
-
-
- Thread.Sleep(1000);
- stubManager.Write("Loop Nm " + (loop+1) +" strat down posision \n");
- stubManager.Write("position_32bit = " + position_32bit +"\n");
-
-// stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, false, 200);
- stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,5, false, 7680 * NM_ROUND);
- i=0;
- temp3=-2;
- temp=position_32bit;
-
- while ((temp3<2)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min
- {
- Thread.Sleep(50);
- i++;
- ReadEncoder_Dryer();
-
- // if (Math.Abs(position_32bit)< HomeStart)
- // temp3=3;
- if (position_32bit==temp)
- temp3++;
- temp=position_32bit;
-// stubManager.Write("position_32bit = " +position_32bit +"\ttemp3 = " + temp3 +"\n");
-
-
- }
- Thread.Sleep(1000);
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 1);
-
-
- if (Math.Abs(position_32bit )> 500)
-
- {
- stubManager.Write("Arm Motor not make 30 rounds\n");
- return 0;
- }
-
- Thread.Sleep(1000);
-
-
-
-
- }
- return 0;
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Jig.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Jig.cs
deleted file mode 100644
index 42f35b8ef..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Jig.cs
+++ /dev/null
@@ -1,542 +0,0 @@
-using System;
-using System.Text;
-using System.IO;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-
-include "..\..\Defines\Tango_Defines_Basic.cs"
-include "Tango_Defines_LimitSwitch.cs"
-include "Tango_Defines_SSR.cs"
-include "Tango_Defines_Tacho.cs"
-
-
-const int UNIT_UNDER_TEST=3+1+2+6;
-//--------------------------------------------------------------------------------
-string path1="P:\\Scripts\\Assemblies\\Dryer\\DryerLog\\";
-string path2="C:\\DryerLog\\";
-
-string File_Name1 ;
-string Status;
-//---------------------------
-Int32 last_14bit_position;
-Int32 position_32bit=0;
-float [] DryerTemp = new float[3] ;
-
-
-string [,] Units_status = new string[UNIT_UNDER_TEST,2] {
- {"Lid_Motor","Not Test"},
- {"LS_Lid_Open","Not Test"},
- {"LS_Lid_Close","Not Test"},
- {"DRIVING_Motor","Not Test"},
- {"SSI_Encoder","Not Test"},
- {"LoadArm_Motor","Not Test"},
- {"Blower_test","Not Test"},
- {"Air_PT100_test","Not Test"},
- {"Main_PT100_test","Not Test"},
- {"Sec.PT100","Not Test"},
- {"SSR1_heater","Not Test"},
- {"SSR2_heater","Not Test"},
- };
-
-
-
-//-----------------------------------------------------
-string Dryer_Sn;
-//--------------------------------------------------------------------------------
-
-public void OnExecute(StubManager stubManager)
-{
-string path="";
- Form form1 = new Form();
-
-// Set the caption bar text of the form.
- form1.TopMost = true;
- form1.Text = "Dryer Test";
- form1.FormBorderStyle = FormBorderStyle.FixedDialog;
- form1.MaximizeBox = false;
- form1.MinimizeBox = false;
- form1.StartPosition = FormStartPosition.CenterScreen;
- form1.AutoSize = true;
- form1.AutoSizeMode = AutoSizeMode.GrowAndShrink;
-// Create buttons to Run.
- Button button1 = new Button ()
- {
- Width = 100,
- Height = 100,
- };
- button1.Text = "Run";
- button1.Location = new Point (40, 100);
- form1.Controls.Add(button1);
-//-----Dryer Serial Number -----------
-
- Label Label1 = new Label ()
- {
- Width = 150,
- Height = 20,
- Text =" Dryer S/N"
- };
- Label1.Location = new Point (30, 10);
- form1.Controls.Add(Label1);
- TextBox TextBox1 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text =""
- };
- TextBox1.Location = new Point (40, 40);
- form1.Controls.Add(TextBox1);
- //----------LOCATION----------
-
- Label Label3 = new Label ()
- {
- Width = 150,
- Height = 20,
- Text ="LOCATION"
- };
-Label3.Location = new Point (350, 10);
- form1.Controls.Add(Label3);
-
-
-
-TextBox TextBox3 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text =""
- };
-TextBox3.Location = new Point (360, 40);
- form1.Controls.Add(TextBox3);
-
-//--------------------------------------------------------------------------------
-
- stubManager.Write("Counter is 2 \n");
-
- button1.Click += (_,__) =>
-
- {
-if (!Directory.Exists(path1))
- {
- path=path2;
- if (!Directory.Exists(path2))
- Directory.CreateDirectory(path2);
- }
-else
-path=path1;
-
-
-File_Name1=path + TextBox1.Text +"_Dryer_" + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".log" ;
-
-
-stubManager.Write(File_Name1 +"\n");
-stubManager.WriteToFile(File_Name1,DateTime.Now +" " );
-stubManager.Write(DateTime.Now +"\n" );
-
-stubManager.AppendToFile(File_Name1,"Dryer Test Report" );
-stubManager.Write("Dryer Test Report\n" );
-
-stubManager.AppendToFile(File_Name1,"Dryer S/N: \t" + TextBox1.Text );
-stubManager.Write("Dryer S/N:" + TextBox1.Text +"\n" );
-
-
-stubManager.AppendToFile(File_Name1,"Location:\t" + TextBox3.Text );
-stubManager.Write("Location:" + TextBox3.Text +"\n" );
-
-
-
-Label Label5 = new Label ()
- {
- Width = 120,
- Height =100,
- Text = ""
- };
-Label5.Location = new Point (300, 100);
-Label5.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
-
-Label5.Text="Pros";
-Label5.Font = new Font("Arial", 24,FontStyle.Bold);
-form1.Controls.Add(Label5);
-
-
-//------------------------------- start test -----------
-// Test_LId();
-// Test_motor_driving();
-// Test_Load_Arm ();
- Test_Blower_heaters_pt100();
- Status=write_to_file();
-
- Label5.Text=Status;
- TextBox1.Text="";
-};
-
- form1.ShowDialog();
-
- return ;
- }
-//------------------------------------------
-int Test_Blower_heaters_pt100()
-{
-
- float ftemp=0;
- float ftemp1=0;
-
- SetBit(FPGA1,0x3d2,5,1); //turn off Blower
- Thread.Sleep(500);
-
- var RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg8, 0);
-
- DialogResult result = MessageBox.Show("Close Dryer Door", "Warning");
- RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg8, 0);
- if(RetVal.Value>20)
- {
- Units_status[6,1]="Fail";
- stubManager.Write("Error,Fan rotate\n");
- return 0;
- }
-
- SetBit(FPGA1,0x3d2,4,1); //Dir
- SetBit(FPGA1,0x3d2,3,1); //Torqer High
- SetBit(FPGA1,0x3d2,5,0); //turn on Blower
-
- const int LOW = 70;//0 - 100%
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000400 | 0x112, 0xFF);//Freq 8 bit
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000400 | 0x3EC, LOW+1);//Low 8 bit
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000400 | 0x3EE, 101 - LOW);//High 8 bit
-
- Thread.Sleep(1000);
- RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg8, 0);
- stubManager.Write("blower Speed- " + RetVal.Value + "\n");
- if ((RetVal.Value<150)||(RetVal.Value>250) )
- {
- Units_status[6,1]="Fail";
- stubManager.Write("Error,Fan rotate\n");
- return 0;
- }
- Units_status[6,1]="Pass";
-
-
- stubManager.Write("Temp Befor heating \n");
- if (test_pt100()!=0)
- return 0;
-
-float temp=0;
-float temp1=4096*95*5;
-
- //Write GPO_DRYER_SSR1_CTRL SSR/SSR no. 1
- SetBit (FPGA2, F2_CTRL, 10, 1); //turn SSR1 on
- stubManager.Write("\tTesting SSR no. 1\t");
- Thread.Sleep(1000);
-var response1 = stubManager.Run<StubIntADCReadResponse>("StubIntADCReadRequest" ,16);
- temp=Convert.ToUInt32 (response1.SamplingInBits);
- temp=temp*800*3*100;
- temp=temp/(4096*95*50);
- stubManager.Write("Current = "+ temp + "A\n");
- if ((temp>6) || (temp<3))
- Units_status[10,1]="Fail";
- else
- Units_status[10,1]="Pass";
-
- //Write GPO_DRYER_SSR2_CTRL SSR/SSR no. 2
- SetBit (FPGA2, F2_CTRL, 9, 1);
- stubManager.Write("\tTesting SSR no. 2\t");
- Thread.Sleep(1000);
- response1 = stubManager.Run<StubIntADCReadResponse>("StubIntADCReadRequest" ,17);
- temp=Convert.ToUInt32 (response1.SamplingInBits);
- stubManager.WriteLine(temp);
- temp=temp*800*3*100;
- temp=temp/(4096*95*120);
- stubManager.Write("Current = "+ temp + "A\n");
- if ((temp>3) || (temp<1))
- Units_status[11,1]="Fail";
- else
- Units_status[11,1]="Pass";
-
- Thread.Sleep(50000);
-
-//check air temp
- ftemp=Read_pt100(0);
- stubManager.Write("After heating air temp is " + ftemp + "\n");
- ftemp = ftemp - DryerTemp[0];
- if ((ftemp<5)||(ftemp>25))
- Units_status[7,1]="Fail";
- else
- Units_status[7,1]="Pass";
-
-
-
-//check Main temp
- ftemp=Read_pt100(1);
- stubManager.Write("After heating Main temp is " + ftemp + "\n");
- ftemp = ftemp - DryerTemp[1];
- if ((ftemp<5)||(ftemp>40))
- Units_status[8,1]="Fail";
- else
- Units_status[8,1]="Pass";
-
-//check Sec. temp
- ftemp=Read_pt100(2);
- stubManager.Write("After heating Sec. temp is " + ftemp + "\n");
- ftemp = ftemp - DryerTemp[2];
- if ((ftemp<5)||(ftemp>40))
- Units_status[9,1]="Fail";
- else
- Units_status[9,1]="Pass";
-
- SetBit (FPGA2, F2_CTRL, 10, 0); //turn SSR1 off
- SetBit (FPGA2, F2_CTRL, 9, 0); //turn SSR2 off
-
- SetBit(FPGA1,0x3d2,5,1); //turn off Blower
- return 1;
-
-}
-
- int test_pt100()
- {
- float ftemp=0;
- int temp=0;
- int j=0;
- for (int i = 0; i < 3; i++)
- {
- DryerTemp[i]=Read_pt100(i);
- ftemp=DryerTemp[i];
- if ((ftemp>100)|| (ftemp<10))
- {
- Units_status[i+7,1]="Fail";
- }
- else
- {
- Units_status[i+7,1]="Pass";
- }
- stubManager.Write(Units_status[i+7,0] +"\t"+ ftemp.ToString("F2"));
- stubManager.Write("°C\n");
-
- }
- return 0;
- }
-//------------------------------------------------
-float Read_pt100(int i)
-{
- int j=i+6;
- var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,j); //
- float ftemp = (float)response.TemperatureCMultBy100;
- ftemp = ftemp / 100;
- return (ftemp);
-}
-
-
-//------------------------------------------
-int Test_motor_driving ()
-
-{
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,3, true, 500); //rotate Dryer Motor.
- stubManager.Write("Dryer Motor rotate \n ");
- DialogResult result = MessageBox.Show("Are Dryer Motor rotate?", "Warning",MessageBoxButtons.YesNo);
- if(result == DialogResult.No)
- {
- Units_status[3,1]="Fail";
- stubManager.Write("Dryer Motor not rotate\n");
- }
- else
- {
- Units_status[3,1]="Pass";
- stubManager.Write("Dryer Motor rotate\n");
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,3,3); //stop motor
-
- return 0;
-}
-//----------------------------------
-int Test_Load_Arm()
-{
-
- Int32 temp3=0;
- Int32 j=0;
- Int32 i=0;
- position_32bit=0;
- Int32 temp=position_32bit;
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,5, false, 60);//40
- Thread.Sleep(50);
- temp=ReadEncoder();
- while ((temp3==0)&& (i<600) ) //wait until Limit Switch or timeout 200*50msec=10sec
- {
- Thread.Sleep(50);
- ReadEncoder();
-// stubManager.Write("position_32bit " + position_32bit +"\t");
-
- if (Math.Abs(position_32bit)> (50*0x4000))
- temp3=1;
- if ((position_32bit-temp)>20)
- temp3=2;
-// stubManager.Write("Temp " + temp +"\n");
- temp=position_32bit;
-// stubManager.Write("Temp3 " + temp3 +"\n");
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,5, 3);
-
- DialogResult result1 = MessageBox.Show("Arm Motor rotate ?", "Warning",MessageBoxButtons.YesNo);
- if(result1 == DialogResult.No)
- {
- Units_status[5,1]="Fail";
- stubManager.Write("Arm Motor Not rotate\n");
- return 0;
- }
- Units_status[5,1]="Pass";
-
- DialogResult result2 = MessageBox.Show("Did Arm Motor arrive to mecahnicl stopper ?", "Warning",MessageBoxButtons.YesNo);
- if(result2 == DialogResult.No)
- {
- Units_status[4,1]="Fail";
- stubManager.Write("Arm Motor arrive to mecahnicl stopper \n");
- return 0;
- }
-
- position_32bit=0;
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,5, true, 60);
- Thread.Sleep(50);
- i=0;
- while ((Math.Abs(ReadEncoder())< (30*0x4000))&& (i<4500))
-
- {
- Thread.Sleep(50);
- i++;
-// stubManager.Write("position_32bit " + position_32bit +"\t" + i + "\n" );
-
-
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,5, 3);
-
- DialogResult result3 = MessageBox.Show("Did Arm Motor make 30 rounds?", "Warning",MessageBoxButtons.YesNo);
- if(result3 == DialogResult.No)
- {
- Units_status[4,1]="Fail";
- stubManager.Write("Arm Motor not make 30 rounds\n");
- return 0;
- }
- Units_status[4,1]="Pass";
- return 1;
-}
-
-Int32 ReadEncoder()
-{
- Int32 temp;
- Int32 temp1;
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190);
- var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192);
-
- temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff));
- if (temp>last_14bit_position)
- {
- temp1=temp-last_14bit_position;
- position_32bit=position_32bit+temp1;
- if (temp1>0x2000)
- position_32bit=position_32bit-0x4000;
- }
- else if (temp<last_14bit_position)
-
- {
- temp1=last_14bit_position-temp;
- position_32bit=position_32bit-temp1;
- if (temp1>0x2000)
- position_32bit=position_32bit+0x4000;
- }
-
- last_14bit_position=temp;
-
- return position_32bit;
-}
-//-----------------------------------
-int Test_LId ()
-{
- Int32 Bit = 1;
- int i = 0;
-
- stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,4, false, 0x800000+2); //mov Dryer Lid motor down
- Thread.Sleep(2000);
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,4, 2); //Hard stop hiZ motor
- Thread.Sleep(1000);
-
- stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,4, false, 0x800000+0); //mov Dryer Lid motor up
-
- while ((Bit != 0x0) && (i<200)) //wait until Limit Switch or timeout 200*50msec=10sec
- {
- Bit = GetBit(FPGA1, F1_LS_01_Direct,4);
- Thread.Sleep(50);
- i++;
- }
- stubManager.Write("\n--------1-Lid Open--------");
-
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,4, 2); //Hard stop hiZ motor
- DialogResult result1 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo);
- if(result1 == DialogResult.No)
- {
- Units_status[1,1]="Fail";
- stubManager.Write("LS_Lid_Open Not calibrate\n");
- return 0;
- }
- Units_status[1,1]="Pass";
-
- stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,4, false, 0x800000+2); //mov Dryer Lid motor down
-
- Bit = 1;
- i=0;
- while ((Bit != 0x0) && (i<200)) //wait until Limit Switch or timeout 200*50msec=10sec
- {
- Bit = GetBit(FPGA1, F1_LS_01_Direct,5);
- Thread.Sleep(50);
- i++;
- }
- stubManager.Write("\n--------2-Lid Close--------");
-
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,4, 2); //Hard stop hiZ motor
- DialogResult result2 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo);
- if(result2 == DialogResult.No)
- {
- Units_status[2,1]="Fail";
- stubManager.Write("LS_Lid_Close Not calibrate\n");
- return 0;
- }
- Units_status[2,1]="Pass";
- Units_status[0,1]="Pass";
- return 1;
-
-}
-
- //------------------------------------
-string write_to_file()
-{
- stubManager.Write("write_to_file\n");
-
-string Stemp="Pass";
- for (int i=0;i<UNIT_UNDER_TEST;i++)
- {
- stubManager.AppendToFile(File_Name1,Units_status[i,0]+"\t" + Units_status[i,1] );
- stubManager.Write(Units_status[i,0]+"\t" + Units_status[i,1]+"\n" );
-
- if ((Units_status[i,1]=="Fail")||(Units_status[i,1]=="Not Test"))
- Stemp="Fail";
- }
- if (Stemp=="Fail")
- {
- stubManager.AppendToFile(File_Name1,"-------------Dryer Fail ------------ ");
- stubManager.Write("-------------Dryer Fail ------------ ");
- }
- else
- {
- stubManager.AppendToFile(File_Name1,"-------------Dryer Pass ------------ )");
- stubManager.Write("-------------Dryer Pass ------------ ");
- }
-
- return Stemp;
-
-}
-
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_LimitSwitch.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_LimitSwitch.cs
index d3cc0b43c..46849f051 100644
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_LimitSwitch.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_LimitSwitch.cs
@@ -21,18 +21,14 @@ public void OnExecute(StubManager stubManager)
Int32 Bit = 1;
uint Temp = 0;
int counter = 0;
- UInt32 PowerStep_driver=0;
- if (Get_Driver_Type(4)>0x14)
- PowerStep_driver=1;
- for (int i=0;i<1;i++)
- {
- stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,4, false, 0x800000+2*PowerStep_driver); //mov Dryer Lid motor up
- Bit=1;
+
+ stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,4, false, 2); //mov Dryer Lid motor up
+
while (Bit != 0x0) //wait until Dryer Lid open
{
- Bit = GetBit(FPGA1, F1_LS_01_Direct,4);
- Thread.Sleep(100);
+ Bit = GetBit(FPGA1, F1_LS_01_Direct,5);
+ Thread.Sleep(10);
}
stubManager.Write("\n--------1-Lid Open--------");
@@ -42,34 +38,19 @@ stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,4, 2); //Hard st
- stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,4, false, 0x800000+2*(1-PowerStep_driver)); //mov Dryer Lid motor up
+stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,4, true, 2); //mov Dryer Lid motor down
Bit = 1;
while (Bit != 0x0) //wait until Dryer Lid open
{
- Bit = GetBit(FPGA1, F1_LS_01_Direct,5);
- Thread.Sleep(100);
+ Bit = GetBit(FPGA1, F1_LS_01_Direct,4);
+ Thread.Sleep(10);
}
- stubManager.Write("\n--------2-Lid Close--------\nCycle \t"+i);
+ stubManager.Write("\n--------2-Lid Close--------");
stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,4, 2); //Hard stop hiZ motor
-}
-
-}
-
-UInt32 Get_Driver_Type(UInt32 i)
-{
- Int32 x_GET_PARAM = 0x20;
- Int32 x_ADC_OUT = 0x12;
- UInt32 ADC_out ;
-
-
- var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ADC_OUT)<<8, 0, 0);
- ADC_out= (response.RecivedData) & 0x001F;
- stubManager.WriteHex(ADC_out,2) ;
- return ADC_out ;
-}
+} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_SSR.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_SSR.cs
index d0ecd2125..da391cfb2 100644
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_SSR.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_SSR.cs
@@ -18,63 +18,22 @@ include "Tango_Defines_SSR.cs"
public void OnExecute(StubManager stubManager)
{
-float temp=0;
-float temp1=4096*95*5;
-
- //Write GPO_DRYER_SSR1_CTRL SSR/SSR no. 1
- var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,6); //
- stubManager.WriteHex(response.TemperatureCMultBy100,4);
+ //Write GPO_DRYER_SSR1_CTRL SSR/SSR no. 1
SetBit (FPGA2, F2_CTRL, 10, 1);
- stubManager.Write("\tTesting SSR no. 1\t");
- Thread.Sleep(3000);
-
-var response1 = stubManager.Run<StubIntADCReadResponse>("StubIntADCReadRequest" ,16);
-
- temp=Convert.ToUInt32 (response1.SamplingInBits);
-
- stubManager.Write("Current = "+ temp*100/6 + "mA/n");
-
- temp=temp*800*3*100;
- temp=temp/(4096*95*50);
- stubManager.Write("Current = "+ temp + "A\t");
- stubManager.Write("Voltage = "+ (temp*60) + "V\n");
-
-// temp=temp*2400*60*100;
-// temp=temp/(4096*95*50);
-// stubManager.Write("Voltage = "+ temp + "Volt/n");
-// stubManager.Write("Current = "+ temp*100/6 + "mA/n");
-
-
+ stubManager.Write("\nTesting SSR no. 1");
+ Thread.Sleep(4000);
SetBit (FPGA2, F2_CTRL, 10, 0);
- response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,6); //
- stubManager.WriteHex(response.TemperatureCMultBy100,4);
- stubManager.Write("\n");
-
//Write GPO_DRYER_SSR2_CTRL SSR/SSR no. 2
- response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,7); //
- stubManager.WriteHex(response.TemperatureCMultBy100,4);
SetBit (FPGA2, F2_CTRL, 9, 1);
- stubManager.Write("\tTesting SSR no. 2\t");
- Thread.Sleep(3000);
-
- response1 = stubManager.Run<StubIntADCReadResponse>("StubIntADCReadRequest" ,17);
-
- temp=Convert.ToUInt32 (response1.SamplingInBits);
-
-// temp=temp*2400*1000;
-// temp=temp/(4096*95*100);
-// stubManager.Write("Current = "+ temp*100/6 + "mA/n");
-
- temp=temp*800*3*100;
- temp=temp/(4096*95*100);
- stubManager.Write("Current = "+ temp + "A\n");
-
-
+ stubManager.Write("\nTesting SSR no. 2");
+ Thread.Sleep(4000);
SetBit (FPGA2, F2_CTRL, 9, 0);
- response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,7); //
- stubManager.WriteHex(response.TemperatureCMultBy100,4);
- stubManager.Write("\n");
-
+
+ //Write GPO_DRYER_SSR3_CTRL SSR/SSR no. 3
+ SetBit (FPGA2, F2_CTRL, 8, 1);
+ stubManager.Write("\nTesting SSR no. 3");
+ Thread.Sleep(4000);
+ SetBit (FPGA2, F2_CTRL, 8, 0);
} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset.CSV b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset.CSV
deleted file mode 100644
index 3b00533c7..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset.CSV
+++ /dev/null
@@ -1,499 +0,0 @@
-01/10/2020 13:37:37
-Heating to 190
-01/10/2020 13:37:37
- 55
- 55
- 56
- 56
- 57
- 57
- 57
- 58
- 58
- 59
- 59
- 59
- 60
- 60
- 60
- 61
- 61
- 61
- 62
- 62
- 62
- 63
- 63
- 64
- 64
- 64
- 65
- 65
- 65
- 66
- 66
- 66
- 67
- 67
- 67
- 68
- 68
- 68
- 69
- 69
- 69
- 69
- 70
- 70
- 70
- 71
- 71
- 71
- 72
- 72
- 72
- 73
- 73
- 73
- 74
- 74
- 74
- 74
- 75
- 75
- 75
- 76
- 76
- 76
- 76
- 77
- 77
- 78
- 78
- 78
- 78
- 79
- 79
- 79
- 80
- 80
- 80
- 80
- 81
- 81
- 81
- 81
- 82
- 82
- 82
- 82
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 82
- 82
- 82
- 82
- 81
- 81
- 81
- 81
- 81
- 80
- 80
- 80
- 80
- 79
- 79
- 79
- 79
- 79
- 79
- 78
- 78
- 78
- 78
- 78
- 78
- 79
- 79
- 79
- 79
- 79
- 80
- 80
- 80
- 80
- 81
- 81
- 81
- 81
- 82
- 82
- 82
- 82
- 83
- 83
- 83
- 83
- 84
- 84
- 84
- 85
- 85
- 85
- 86
- 86
- 86
- 86
- 87
- 87
- 87
- 87
- 88
- 88
- 88
- 88
- 89
- 89
- 89
- 89
- 90
- 90
- 90
- 90
- 91
- 91
- 91
- 91
- 92
- 92
- 92
- 92
- 93
- 93
- 93
- 93
- 94
- 94
- 94
- 94
- 95
- 95
- 95
- 95
- 96
- 96
- 96
- 96
- 96
- 97
- 97
- 97
- 97
- 98
- 98
- 98
- 98
- 98
- 98
- 97
- 97
- 97
- 97
- 96
- 96
- 96
- 95
- 95
- 94
- 94
- 94
- 93
- 93
- 93
- 92
- 92
- 92
- 91
- 91
- 91
- 90
- 90
- 90
- 89
- 89
- 89
- 88
- 88
- 88
- 87
- 87
- 87
- 87
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 87
- 87
- 87
- 87
- 88
- 88
- 88
- 89
- 89
- 89
- 89
- 90
- 90
- 90
- 90
- 91
- 91
- 91
- 92
- 92
- 92
- 92
- 93
- 93
- 93
- 93
- 94
- 94
- 94
- 95
- 95
- 95
- 95
- 96
- 96
- 96
- 96
- 97
- 97
- 97
- 97
- 98
- 98
- 98
- 98
- 99
- 99
- 99
- 99
- 100
- 100
- 100
- 100
- 101
- 101
- 101
- 101
- 101
- 102
- 102
- 102
- 102
- 103
- 103
- 103
- 103
- 104
- 104
- 104
- 104
- 104
- 105
- 105
- 105
- 105
- 106
- 106
- 106
- 106
- 106
- 107
- 107
- 107
- 107
- 108
- 108
- 108
- 108
- 109
- 109
- 109
- 109
- 109
- 110
- 110
- 110
- 110
- 110
- 111
- 111
- 111
- 111
- 111
- 112
- 112
- 112
- 112
- 112
- 113
- 113
- 113
- 113
- 113
- 114
- 114
- 114
- 114
- 114
- 115
- 115
- 115
- 115
- 115
- 116
- 116
- 116
- 116
- 116
- 117
- 117
- 117
- 117
- 117
- 118
- 118
- 118
- 118
- 118
- 119
- 119
- 119
- 119
- 119
- 119
- 120
- 120
- 120
- 120
- 120
- 120
- 121
- 121
- 121
- 121
- 121
- 122
- 122
- 122
- 122
- 122
- 122
- 123
- 123
- 123
- 123
- 123
- 124
- 124
- 124
- 124
- 124
- 124
- 125
- 125
- 125
- 125
- 125
- 125
- 126
- 126
- 126
- 126
- 126
- 126
- 127
- 127
- 127
- 127
- 127
- 128
- 128
- 128
- 128
- 128
- 128
- 129
- 129
- 129
- 129
- 129
- 129
- 130
- 130
- 130
- 130
- 130
- 130
- 131
- 131
- 131
- 131
- 131
- 131
- 132
- 132
- 132
- 132
- 132
- 132
- 132
- 133
- 133
- 133
- 133
- 133
- 133
- 134
- 134
- 134
- 134
- 134
- 134
- 134
- 134
- 134
- 134
- 134
- 133
- 133
- 132
- 132
- 131
- 131
- 130
- 130
- 129
- 128
- 128
- 127
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset1.CSV b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset1.CSV
deleted file mode 100644
index 6d1a7862c..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset1.CSV
+++ /dev/null
@@ -1,1600 +0,0 @@
-06/07/2020 9:43:12
-Heating to 190
-06/07/2020 9:43:12
- 23
- 23
- 23
- 23
- 23
- 23
- 23
- 23
- 23
- 23
- 23
- 23
- 23
- 23
- 23
- 23
- 23
- 23
- 23
- 23
- 23
- 23
- 23
- 23
- 23
- 23
- 24
- 24
- 24
- 24
- 24
- 24
- 25
- 25
- 25
- 26
- 26
- 26
- 27
- 27
- 28
- 28
- 29
- 29
- 30
- 30
- 31
- 31
- 32
- 32
- 33
- 33
- 34
- 34
- 35
- 35
- 36
- 37
- 37
- 38
- 38
- 39
- 39
- 40
- 41
- 41
- 42
- 42
- 43
- 43
- 44
- 44
- 45
- 46
- 46
- 47
- 47
- 48
- 48
- 49
- 49
- 50
- 50
- 51
- 52
- 52
- 53
- 53
- 54
- 54
- 55
- 55
- 56
- 56
- 56
- 57
- 57
- 58
- 58
- 59
- 59
- 60
- 60
- 60
- 61
- 61
- 62
- 62
- 63
- 63
- 63
- 64
- 64
- 65
- 65
- 65
- 66
- 66
- 66
- 67
- 67
- 68
- 68
- 68
- 69
- 69
- 69
- 70
- 70
- 71
- 71
- 71
- 72
- 72
- 72
- 73
- 73
- 73
- 74
- 74
- 74
- 75
- 75
- 75
- 76
- 76
- 76
- 77
- 77
- 77
- 78
- 78
- 78
- 79
- 79
- 79
- 79
- 80
- 80
- 80
- 81
- 81
- 81
- 82
- 82
- 82
- 82
- 83
- 83
- 83
- 84
- 84
- 84
- 84
- 85
- 85
- 85
- 86
- 86
- 86
- 86
- 87
- 87
- 87
- 88
- 88
- 88
- 88
- 89
- 89
- 89
- 89
- 90
- 90
- 90
- 91
- 91
- 91
- 92
- 92
- 92
- 92
- 93
- 93
- 93
- 93
- 94
- 94
- 94
- 94
- 95
- 95
- 95
- 95
- 96
- 96
- 96
- 96
- 97
- 97
- 97
- 97
- 98
- 98
- 98
- 98
- 98
- 99
- 99
- 99
- 99
- 100
- 100
- 100
- 100
- 101
- 101
- 101
- 101
- 102
- 102
- 102
- 102
- 102
- 103
- 103
- 103
- 103
- 104
- 104
- 104
- 104
- 105
- 105
- 105
- 105
- 105
- 106
- 106
- 106
- 106
- 106
- 107
- 107
- 107
- 107
- 107
- 108
- 108
- 108
- 108
- 108
- 109
- 109
- 109
- 109
- 110
- 110
- 110
- 110
- 110
- 111
- 111
- 111
- 111
- 111
- 112
- 112
- 112
- 112
- 112
- 113
- 113
- 113
- 113
- 113
- 114
- 114
- 114
- 114
- 114
- 115
- 115
- 115
- 115
- 115
- 116
- 116
- 116
- 116
- 116
- 117
- 117
- 117
- 117
- 117
- 118
- 118
- 118
- 118
- 119
- 119
- 119
- 119
- 119
- 119
- 120
- 120
- 120
- 120
- 120
- 121
- 121
- 121
- 121
- 121
- 122
- 122
- 122
- 122
- 122
- 123
- 123
- 123
- 123
- 123
- 123
- 124
- 124
- 124
- 124
- 124
- 125
- 125
- 125
- 125
- 125
- 125
- 126
- 126
- 126
- 126
- 126
- 127
- 127
- 127
- 127
- 127
- 128
- 128
- 128
- 128
- 128
- 128
- 129
- 129
- 129
- 129
- 129
- 130
- 130
- 130
- 130
- 130
- 130
- 131
- 131
- 131
- 131
- 131
- 131
- 132
- 132
- 132
- 132
- 132
- 132
- 133
- 133
- 133
- 133
- 133
- 134
- 134
- 134
- 134
- 134
- 134
- 135
- 135
- 135
- 135
- 135
- 135
- 136
- 136
- 136
- 136
- 136
- 136
- 137
- 137
- 137
- 137
- 137
- 137
- 138
- 138
- 138
- 138
- 138
- 138
- 139
- 139
- 139
- 139
- 139
- 139
- 140
- 140
- 140
- 140
- 140
- 140
- 141
- 141
- 141
- 141
- 141
- 141
- 142
- 142
- 142
- 142
- 142
- 142
- 143
- 143
- 143
- 143
- 143
- 143
- 144
- 144
- 144
- 144
- 144
- 144
- 145
- 145
- 145
- 145
- 145
- 145
- 145
- 146
- 146
- 146
- 146
- 146
- 146
- 147
- 147
- 147
- 147
- 147
- 147
- 147
- 148
- 148
- 148
- 148
- 148
- 148
- 149
- 149
- 149
- 149
- 149
- 149
- 150
- 150
- 150
- 150
- 150
- 150
- 150
- 151
- 151
- 151
- 151
- 151
- 151
- 151
- 152
- 152
- 152
- 152
- 152
- 152
- 152
- 153
- 153
- 153
- 153
- 153
- 153
- 153
- 154
- 154
- 154
- 154
- 154
- 154
- 155
- 155
- 155
- 155
- 155
- 155
- 155
- 156
- 156
- 156
- 156
- 156
- 156
- 156
- 157
- 157
- 157
- 157
- 157
- 157
- 157
- 158
- 158
- 158
- 158
- 158
- 158
- 158
- 159
- 159
- 159
- 159
- 159
- 159
- 160
- 160
- 160
- 160
- 160
- 160
- 160
- 161
- 161
- 161
- 161
- 161
- 161
- 161
- 162
- 162
- 162
- 162
- 162
- 162
- 162
- 163
- 163
- 163
- 163
- 163
- 163
- 163
- 164
- 164
- 164
- 164
- 164
- 164
- 164
- 165
- 165
- 165
- 165
- 165
- 165
- 165
- 166
- 166
- 166
- 166
- 166
- 166
- 166
- 166
- 167
- 167
- 167
- 167
- 167
- 167
- 167
- 167
- 168
- 168
- 168
- 168
- 168
- 168
- 168
- 169
- 169
- 169
- 169
- 169
- 169
- 169
- 170
- 170
- 170
- 170
- 170
- 170
- 170
- 170
- 171
- 171
- 171
- 171
- 171
- 171
- 171
- 172
- 172
- 172
- 172
- 172
- 172
- 172
- 172
- 173
- 173
- 173
- 173
- 173
- 173
- 173
- 174
- 174
- 174
- 174
- 174
- 174
- 174
- 175
- 175
- 175
- 175
- 175
- 175
- 175
- 175
- 176
- 176
- 176
- 176
- 176
- 176
- 176
- 176
- 176
- 177
- 177
- 177
- 177
- 177
- 177
- 177
- 177
- 177
- 177
- 177
- 178
- 178
- 178
- 178
- 178
- 178
- 178
- 178
- 178
- 178
- 178
- 179
- 179
- 179
- 179
- 179
- 179
- 179
- 179
- 179
- 179
- 180
- 180
- 180
- 180
- 180
- 180
- 180
- 180
- 180
- 180
- 181
- 181
- 181
- 181
- 181
- 181
- 181
- 181
- 181
- 181
- 182
- 182
- 182
- 182
- 182
- 182
- 182
- 182
- 182
- 182
- 183
- 183
- 183
- 183
- 183
- 183
- 183
- 183
- 183
- 183
- 184
- 184
- 184
- 184
- 184
- 184
- 184
- 184
- 184
- 185
- 185
- 185
- 185
- 185
- 185
- 185
- 185
- 185
- 185
- 186
- 186
- 186
- 186
- 186
- 186
- 186
- 186
- 186
- 187
- 187
- 187
- 187
- 187
- 187
- 187
- 187
- 187
- 188
- 188
- 188
- 188
- 188
- 188
- 188
- 188
- 188
- 188
- 189
-06/07/2020 9:56:54
-cooling down
-06/07/2020 9:58:54
- 191
- 191
- 191
- 191
- 191
- 191
- 191
- 191
- 191
- 191
- 191
- 190
- 190
- 190
- 190
- 190
- 190
- 190
- 189
- 189
- 189
- 189
- 188
- 188
- 188
- 188
- 187
- 187
- 186
- 186
- 186
- 185
- 185
- 185
- 184
- 184
- 184
- 183
- 183
- 183
- 182
- 182
- 182
- 181
- 181
- 181
- 180
- 180
- 179
- 179
- 179
- 178
- 178
- 178
- 177
- 177
- 177
- 176
- 176
- 175
- 175
- 175
- 174
- 174
- 174
- 173
- 173
- 173
- 172
- 172
- 172
- 171
- 171
- 171
- 170
- 170
- 170
- 169
- 169
- 169
- 168
- 168
- 168
- 167
- 167
- 167
- 167
- 166
- 166
- 166
- 165
- 165
- 165
- 164
- 164
- 164
- 164
- 163
- 163
- 163
- 162
- 162
- 162
- 161
- 161
- 161
- 161
- 160
- 160
- 160
- 160
- 159
- 159
- 159
- 159
- 158
- 158
- 158
- 158
- 157
- 157
- 157
- 157
- 157
- 156
- 156
- 156
- 156
- 155
- 155
- 155
- 155
- 155
- 154
- 154
- 154
- 154
- 153
- 153
- 153
- 153
- 153
- 152
- 152
- 152
- 152
- 152
- 152
- 151
- 151
- 151
- 151
- 151
- 150
- 150
- 150
- 150
- 150
- 149
- 149
- 149
- 149
- 149
- 149
- 148
- 148
- 148
- 148
- 148
- 148
- 147
- 147
- 147
- 147
- 147
- 147
- 146
- 146
- 146
- 146
- 146
- 146
- 145
- 145
- 145
- 145
- 145
- 145
- 145
- 144
- 144
- 144
- 144
- 144
- 144
- 144
- 143
- 143
- 143
- 143
- 143
- 143
- 143
- 142
- 142
- 142
- 142
- 142
- 142
- 142
- 142
- 141
- 141
- 141
- 141
- 141
- 141
- 141
- 141
- 141
- 140
- 140
- 140
- 140
- 140
- 140
- 140
- 140
- 139
- 139
- 139
- 139
- 139
- 139
- 139
- 139
- 139
- 138
- 138
- 138
- 138
- 138
- 138
- 138
- 138
- 138
- 137
- 137
- 137
- 137
- 137
- 137
- 137
- 137
- 137
- 136
- 136
- 136
- 136
- 136
- 136
- 136
- 136
- 136
- 136
- 135
- 135
- 135
- 135
- 135
- 135
- 135
- 135
- 135
- 135
- 134
- 134
- 134
- 134
- 134
- 134
- 134
- 134
- 134
- 134
- 134
- 133
- 133
- 133
- 133
- 133
- 133
- 133
- 133
- 133
- 133
- 133
- 132
- 132
- 132
- 132
- 132
- 132
- 132
- 132
- 132
- 132
- 132
- 132
- 132
- 131
- 131
- 131
- 131
- 131
- 131
- 131
- 131
- 131
- 131
- 131
- 131
- 130
- 130
- 130
- 130
- 130
- 130
- 130
- 130
- 130
- 130
- 130
- 130
- 129
- 129
- 129
- 129
- 129
- 129
- 129
- 129
- 129
- 129
- 129
- 129
- 129
- 128
- 128
- 128
- 128
- 128
- 128
- 128
- 128
- 128
- 128
- 128
- 128
- 128
- 128
- 128
- 127
- 127
- 127
- 127
- 127
- 127
- 127
- 127
- 127
- 127
- 127
- 127
- 127
- 127
- 126
- 126
- 126
- 126
- 126
- 126
- 126
- 126
- 126
- 126
- 126
- 126
- 126
- 126
- 126
- 126
- 125
- 125
- 125
- 125
- 125
- 125
- 125
- 125
- 125
- 125
- 125
- 125
- 125
- 125
- 125
- 125
- 124
- 124
- 124
- 124
- 124
- 124
- 124
- 124
- 124
- 124
- 124
- 124
- 124
- 124
- 124
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 122
- 122
- 122
- 122
- 122
- 122
- 122
- 122
- 122
- 122
- 122
- 122
- 122
- 122
- 122
- 122
- 122
- 122
- 121
- 121
- 121
- 121
- 121
- 121
- 121
- 121
- 121
- 121
- 121
- 121
- 121
- 121
- 121
- 121
- 121
- 121
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset111.CSV b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset111.CSV
deleted file mode 100644
index 4ab057b1c..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset111.CSV
+++ /dev/null
@@ -1,29654 +0,0 @@
-16/08/2020 18:49:18
-Heating to 190
-16/08/2020 18:49:18
- 24
- 24
- 24
- 24
- 24
- 24
- 24
- 24
- 24
- 24
- 24
- 24
- 24
- 25
- 25
- 25
- 25
- 25
- 26
- 26
- 26
- 26
- 27
- 27
- 27
- 28
- 28
- 29
- 29
- 29
- 30
- 30
- 31
- 31
- 32
- 32
- 33
- 33
- 33
- 34
- 34
- 35
- 36
- 36
- 37
- 38
- 38
- 39
- 39
- 40
- 40
- 41
- 41
- 42
- 42
- 43
- 43
- 44
- 44
- 45
- 45
- 46
- 46
- 47
- 47
- 48
- 48
- 49
- 49
- 50
- 50
- 51
- 51
- 52
- 52
- 53
- 53
- 53
- 54
- 54
- 55
- 55
- 56
- 56
- 57
- 57
- 57
- 58
- 58
- 59
- 59
- 60
- 60
- 60
- 61
- 61
- 62
- 62
- 63
- 63
- 63
- 64
- 64
- 65
- 65
- 66
- 66
- 66
- 67
- 67
- 67
- 68
- 68
- 69
- 69
- 69
- 70
- 70
- 70
- 71
- 71
- 71
- 72
- 72
- 72
- 73
- 73
- 73
- 74
- 74
- 74
- 75
- 75
- 75
- 76
- 76
- 76
- 77
- 77
- 77
- 78
- 78
- 78
- 79
- 79
- 79
- 79
- 80
- 80
- 80
- 81
- 81
- 81
- 81
- 82
- 82
- 82
- 83
- 83
- 83
- 84
- 84
- 84
- 84
- 85
- 85
- 85
- 85
- 86
- 86
- 86
- 87
- 87
- 87
- 87
- 88
- 88
- 88
- 88
- 89
- 89
- 89
- 89
- 90
- 90
- 90
- 91
- 91
- 91
- 91
- 92
- 92
- 92
- 92
- 93
- 93
- 93
- 93
- 94
- 94
- 94
- 94
- 95
- 95
- 95
- 95
- 95
- 96
- 96
- 96
- 96
- 97
- 97
- 97
- 97
- 98
- 98
- 98
- 98
- 98
- 99
- 99
- 99
- 99
- 100
- 100
- 100
- 100
- 100
- 101
- 101
- 101
- 101
- 102
- 102
- 102
- 102
- 102
- 103
- 103
- 103
- 103
- 104
- 104
- 104
- 104
- 104
- 105
- 105
- 105
- 105
- 105
- 106
- 106
- 106
- 106
- 106
- 107
- 107
- 107
- 107
- 107
- 108
- 108
- 108
- 108
- 108
- 109
- 109
- 109
- 109
- 110
- 110
- 110
- 110
- 110
- 111
- 111
- 111
- 111
- 111
- 112
- 112
- 112
- 112
- 112
- 112
- 113
- 113
- 113
- 113
- 113
- 114
- 114
- 114
- 114
- 114
- 115
- 115
- 115
- 115
- 115
- 115
- 116
- 116
- 116
- 116
- 116
- 117
- 117
- 117
- 117
- 117
- 117
- 118
- 118
- 118
- 118
- 118
- 119
- 119
- 119
- 119
- 119
- 119
- 120
- 120
- 120
- 120
- 120
- 120
- 121
- 121
- 121
- 121
- 121
- 122
- 122
- 122
- 122
- 122
- 122
- 123
- 123
- 123
- 123
- 123
- 123
- 124
- 124
- 124
- 124
- 124
- 124
- 125
- 125
- 125
- 125
- 125
- 125
- 126
- 126
- 126
- 126
- 126
- 126
- 127
- 127
- 127
- 127
- 127
- 127
- 128
- 128
- 128
- 128
- 128
- 128
- 128
- 129
- 129
- 129
- 129
- 129
- 129
- 130
- 130
- 130
- 130
- 130
- 130
- 131
- 131
- 131
- 131
- 131
- 131
- 131
- 132
- 132
- 132
- 132
- 132
- 133
- 133
- 133
- 133
- 133
- 133
- 133
- 134
- 134
- 134
- 134
- 134
- 134
- 135
- 135
- 135
- 135
- 135
- 135
- 135
- 136
- 136
- 136
- 136
- 136
- 136
- 136
- 137
- 137
- 137
- 137
- 137
- 137
- 138
- 138
- 138
- 138
- 138
- 138
- 138
- 139
- 139
- 139
- 139
- 139
- 139
- 139
- 140
- 140
- 140
- 140
- 140
- 140
- 140
- 141
- 141
- 141
- 141
- 141
- 141
- 141
- 142
- 142
- 142
- 142
- 142
- 142
- 142
- 143
- 143
- 143
- 143
- 143
- 143
- 143
- 143
- 144
- 144
- 144
- 144
- 144
- 144
- 144
- 145
- 145
- 145
- 145
- 145
- 145
- 146
- 146
- 146
- 146
- 146
- 146
- 146
- 147
- 147
- 147
- 147
- 147
- 147
- 147
- 147
- 148
- 148
- 148
- 148
- 148
- 148
- 148
- 148
- 149
- 149
- 149
- 149
- 149
- 149
- 149
- 150
- 150
- 150
- 150
- 150
- 150
- 150
- 150
- 151
- 151
- 151
- 151
- 151
- 151
- 151
- 151
- 152
- 152
- 152
- 152
- 152
- 152
- 152
- 152
- 153
- 153
- 153
- 153
- 153
- 153
- 154
- 154
- 154
- 154
- 154
- 154
- 154
- 154
- 155
- 155
- 155
- 155
- 155
- 155
- 155
- 155
- 155
- 156
- 156
- 156
- 156
- 156
- 156
- 156
- 156
- 156
- 157
- 157
- 157
- 157
- 157
- 157
- 157
- 157
- 157
- 158
- 158
- 158
- 158
- 158
- 158
- 158
- 158
- 158
- 159
- 159
- 159
- 159
- 159
- 159
- 159
- 159
- 159
- 160
- 160
- 160
- 160
- 160
- 160
- 160
- 160
- 160
- 161
- 161
- 161
- 161
- 161
- 161
- 161
- 161
- 161
- 162
- 162
- 162
- 162
- 162
- 162
- 162
- 162
- 163
- 163
- 163
- 163
- 163
- 163
- 163
- 163
- 164
- 164
- 164
- 164
- 164
- 164
- 164
- 164
- 164
- 165
- 165
- 165
- 165
- 165
- 165
- 165
- 165
- 165
- 166
- 166
- 166
- 166
- 166
- 166
- 166
- 166
- 167
- 167
- 167
- 167
- 167
- 167
- 167
- 167
- 167
- 168
- 168
- 168
- 168
- 168
- 168
- 168
- 168
- 168
- 169
- 169
- 169
- 169
- 169
- 169
- 169
- 169
- 169
- 170
- 170
- 170
- 170
- 170
- 170
- 170
- 170
- 170
- 171
- 171
- 171
- 171
- 171
- 171
- 171
- 171
- 171
- 172
- 172
- 172
- 172
- 172
- 172
- 172
- 172
- 172
- 173
- 173
- 173
- 173
- 173
- 173
- 173
- 173
- 173
- 174
- 174
- 174
- 174
- 174
- 174
- 174
- 174
- 174
- 174
- 175
- 175
- 175
- 175
- 175
- 175
- 175
- 175
- 175
- 175
- 176
- 176
- 176
- 176
- 176
- 176
- 176
- 176
- 176
- 176
- 177
- 177
- 177
- 177
- 177
- 177
- 177
- 177
- 177
- 177
- 177
- 177
- 178
- 178
- 178
- 178
- 178
- 178
- 178
- 178
- 178
- 178
- 179
- 179
- 179
- 179
- 179
- 179
- 179
- 179
- 179
- 180
- 180
- 180
- 180
- 180
- 180
- 180
- 180
- 180
- 180
- 181
- 181
- 181
- 181
- 181
- 181
- 181
- 181
- 181
- 182
- 182
- 182
- 182
- 182
- 182
- 182
- 182
- 182
- 183
- 183
- 183
- 183
- 183
- 183
- 183
- 183
- 183
- 183
- 184
- 184
- 184
- 184
- 184
- 184
- 184
- 184
- 184
- 185
- 185
- 185
- 185
- 185
- 185
- 185
- 185
- 185
- 185
- 186
- 186
- 186
- 186
- 186
- 186
- 186
- 186
- 186
- 186
- 187
- 187
- 187
- 187
- 187
- 187
- 187
- 187
- 187
- 188
- 188
- 188
- 188
- 188
- 188
- 188
- 188
- 188
- 188
- 189
-16/08/2020 19:04:08
-cooling down
-16/08/2020 19:06:08
- 193
- 193
- 193
- 193
- 193
- 193
- 192
- 192
- 192
- 192
- 192
- 192
- 192
- 192
- 191
- 191
- 191
- 191
- 191
- 191
- 190
- 190
- 190
- 190
- 190
- 189
- 189
- 189
- 189
- 188
- 188
- 188
- 188
- 187
- 187
- 187
- 186
- 186
- 186
- 185
- 185
- 185
- 185
- 184
- 184
- 184
- 183
- 183
- 183
- 182
- 182
- 182
- 181
- 181
- 181
- 180
- 180
- 180
- 179
- 179
- 179
- 178
- 178
- 178
- 178
- 177
- 177
- 176
- 176
- 176
- 175
- 175
- 175
- 174
- 174
- 174
- 174
- 173
- 173
- 173
- 172
- 172
- 172
- 171
- 171
- 171
- 171
- 170
- 170
- 170
- 169
- 169
- 169
- 169
- 168
- 168
- 168
- 167
- 167
- 167
- 167
- 166
- 166
- 166
- 166
- 165
- 165
- 165
- 165
- 164
- 164
- 164
- 164
- 163
- 163
- 163
- 163
- 162
- 162
- 162
- 162
- 161
- 161
- 161
- 161
- 160
- 160
- 160
- 160
- 159
- 159
- 159
- 159
- 158
- 158
- 158
- 158
- 158
- 157
- 157
- 157
- 157
- 157
- 156
- 156
- 156
- 156
- 156
- 155
- 155
- 155
- 155
- 155
- 154
- 154
- 154
- 154
- 154
- 153
- 153
- 153
- 153
- 153
- 153
- 152
- 152
- 152
- 152
- 152
- 151
- 151
- 151
- 151
- 151
- 151
- 150
- 150
- 150
- 150
- 150
- 150
- 149
- 149
- 149
- 149
- 149
- 149
- 149
- 148
- 148
- 148
- 148
- 148
- 148
- 147
- 147
- 147
- 147
- 147
- 147
- 146
- 146
- 146
- 146
- 146
- 146
- 146
- 146
- 145
- 145
- 145
- 145
- 145
- 145
- 145
- 144
- 144
- 144
- 144
- 144
- 144
- 144
- 144
- 143
- 143
- 143
- 143
- 143
- 143
- 143
- 143
- 142
- 142
- 142
- 142
- 142
- 142
- 142
- 142
- 141
- 141
- 141
- 141
- 141
- 141
- 141
- 141
- 141
- 140
- 140
- 140
- 140
- 140
- 140
- 140
- 140
- 140
- 139
- 139
- 139
- 139
- 139
- 139
- 139
- 139
- 139
- 138
- 138
- 138
- 138
- 138
- 138
- 138
- 138
- 138
- 137
- 137
- 137
- 137
- 137
- 137
- 137
- 137
- 137
- 137
- 136
- 136
- 136
- 136
- 136
- 136
- 136
- 136
- 136
- 136
- 136
- 135
- 135
- 135
- 135
- 135
- 135
- 135
- 135
- 135
- 135
- 135
- 134
- 134
- 134
- 134
- 134
- 134
- 134
- 134
- 134
- 134
- 134
- 133
- 133
- 133
- 133
- 133
- 133
- 133
- 133
- 133
- 133
- 133
- 133
- 133
- 132
- 132
- 132
- 132
- 132
- 132
- 132
- 132
- 132
- 132
- 132
- 132
- 131
- 131
- 131
- 131
- 131
- 131
- 131
- 131
- 131
- 131
- 131
- 131
- 130
- 130
- 130
- 130
- 130
- 130
- 130
- 130
- 130
- 130
- 130
- 130
- 130
- 130
- 129
- 129
- 129
- 129
- 129
- 129
- 129
- 129
- 129
- 129
- 129
- 129
- 129
- 129
- 128
- 128
- 128
- 128
- 128
- 128
- 128
- 128
- 128
- 128
- 128
- 128
- 128
- 128
- 128
- 127
- 127
- 127
- 127
- 127
- 127
- 127
- 127
- 127
- 127
- 127
- 127
- 127
- 127
- 127
- 126
- 126
- 126
- 126
- 126
- 126
- 126
- 126
- 126
- 126
- 126
- 126
- 126
- 126
- 126
- 125
- 125
- 125
- 125
- 125
- 125
- 125
- 125
- 125
- 125
- 125
- 125
- 125
- 125
- 125
- 125
- 125
- 124
- 124
- 124
- 124
- 124
- 124
- 124
- 124
- 124
- 124
- 124
- 124
- 124
- 124
- 124
- 124
- 124
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 122
- 122
- 122
- 122
- 122
- 122
- 122
- 122
- 122
- 122
- 122
- 122
- 122
- 122
- 122
- 122
- 122
- 122
- 122
- 121
- 121
- 121
- 121
- 121
- 121
- 121
- 121
- 121
- 121
- 121
- 121
- 121
- 121
- 121
- 121
- 121
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 120
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 119
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 118
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 117
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 116
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 115
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 114
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 113
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 112
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 111
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 110
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 109
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 108
- 107
- 107
- 107
- 107
- 107
- 107
- 107
- 107
- 107
- 107
- 107
- 107
- 107
- 107
- 107
- 107
- 107
- 107
- 107
- 107
- 107
- 107
- 107
- 107
- 107
- 107
- 107
- 107
- 107
- 106
- 106
- 106
- 106
- 106
- 106
- 106
- 106
- 106
- 106
- 106
- 106
- 106
- 106
- 106
- 106
- 106
- 106
- 106
- 106
- 106
- 106
- 106
- 106
- 106
- 106
- 106
- 106
- 106
- 105
- 105
- 105
- 105
- 105
- 105
- 105
- 105
- 105
- 105
- 105
- 105
- 105
- 105
- 105
- 105
- 105
- 105
- 105
- 105
- 105
- 105
- 105
- 105
- 105
- 105
- 105
- 105
- 105
- 105
- 104
- 104
- 104
- 104
- 104
- 104
- 104
- 104
- 104
- 104
- 104
- 104
- 104
- 104
- 104
- 104
- 104
- 104
- 104
- 104
- 104
- 104
- 104
- 104
- 104
- 104
- 104
- 104
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 103
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 102
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 101
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 99
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 98
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 97
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 96
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 95
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 94
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 93
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 92
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 91
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 90
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 89
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 88
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 87
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 86
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 85
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 84
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 83
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 82
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 81
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 80
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 79
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 78
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 77
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 76
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 75
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 74
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 73
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 72
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 71
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 70
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 69
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 68
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 67
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 66
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 65
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 64
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 63
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 62
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 61
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 59
-16/08/2020 20:12:40
-Heating to 190
-16/08/2020 20:12:40
- 59
- 59
- 59
- 59
- 59
- 59
- 59
- 59
- 59
- 59
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 61
- 61
- 61
- 61
- 62
- 62
- 62
- 62
- 63
- 63
- 64
- 64
- 64
- 65
- 65
- 66
- 66
- 66
- 67
- 67
- 68
- 68
- 69
- 69
- 70
- 70
- 71
- 71
- 71
- 72
- 72
- 73
- 73
- 74
- 74
- 75
- 75
- 76
- 76
- 77
- 77
- 78
- 78
- 79
- 80
- 80
- 81
- 81
- 82
- 82
- 82
- 83
- 83
- 84
- 84
- 85
- 85
- 86
- 86
- 87
- 87
- 87
- 88
- 88
- 89
- 89
- 90
- 90
- 90
- 91
- 91
- 92
- 92
- 93
- 93
- 93
- 94
- 94
- 95
- 95
- 95
- 96
- 96
- 97
- 97
- 97
- 98
- 98
- 98
- 99
- 99
- 99
- 100
- 100
- 101
- 101
- 101
- 102
- 102
- 102
- 103
- 103
- 103
- 104
- 104
- 104
- 105
- 105
- 105
- 106
- 106
- 106
- 107
- 107
- 107
- 108
- 108
- 108
- 109
- 109
- 109
- 109
- 110
- 110
- 110
- 111
- 111
- 111
- 112
- 112
- 113
- 113
- 113
- 113
- 114
- 114
- 114
- 115
- 115
- 115
- 115
- 116
- 116
- 116
- 116
- 117
- 117
- 117
- 118
- 118
- 118
- 118
- 119
- 119
- 119
- 119
- 120
- 120
- 120
- 120
- 121
- 121
- 121
- 121
- 122
- 122
- 122
- 122
- 123
- 123
- 123
- 123
- 124
- 124
- 124
- 124
- 125
- 125
- 125
- 125
- 126
- 126
- 126
- 126
- 126
- 127
- 127
- 127
- 127
- 128
- 128
- 128
- 128
- 129
- 129
- 129
- 129
- 129
- 130
- 130
- 130
- 130
- 131
- 131
- 131
- 131
- 131
- 132
- 132
- 132
- 132
- 133
- 133
- 133
- 133
- 134
- 134
- 134
- 134
- 134
- 135
- 135
- 135
- 135
- 135
- 136
- 136
- 136
- 136
- 136
- 137
- 137
- 137
- 137
- 137
- 138
- 138
- 138
- 138
- 138
- 139
- 139
- 139
- 139
- 139
- 140
- 140
- 140
- 140
- 140
- 140
- 141
- 141
- 141
- 141
- 141
- 142
- 142
- 142
- 142
- 142
- 142
- 143
- 143
- 143
- 143
- 143
- 144
- 144
- 144
- 144
- 144
- 144
- 145
- 145
- 145
- 145
- 145
- 145
- 146
- 146
- 146
- 146
- 146
- 146
- 147
- 147
- 147
- 147
- 147
- 147
- 148
- 148
- 148
- 148
- 148
- 148
- 149
- 149
- 149
- 149
- 149
- 149
- 150
- 150
- 150
- 150
- 150
- 150
- 151
- 151
- 151
- 151
- 151
- 151
- 151
- 152
- 152
- 152
- 152
- 152
- 152
- 153
- 153
- 153
- 153
- 153
- 153
- 154
- 154
- 154
- 154
- 154
- 154
- 155
- 155
- 155
- 155
- 155
- 155
- 156
- 156
- 156
- 156
- 156
- 156
- 156
- 157
- 157
- 157
- 157
- 157
- 157
- 157
- 158
- 158
- 158
- 158
- 158
- 158
- 159
- 159
- 159
- 159
- 159
- 159
- 159
- 160
- 160
- 160
- 160
- 160
- 160
- 160
- 161
- 161
- 161
- 161
- 161
- 161
- 161
- 162
- 162
- 162
- 162
- 162
- 162
- 162
- 163
- 163
- 163
- 163
- 163
- 163
- 163
- 164
- 164
- 164
- 164
- 164
- 164
- 164
- 164
- 165
- 165
- 165
- 165
- 165
- 165
- 165
- 166
- 166
- 166
- 166
- 166
- 166
- 166
- 166
- 167
- 167
- 167
- 167
- 167
- 167
- 167
- 168
- 168
- 168
- 168
- 168
- 168
- 168
- 169
- 169
- 169
- 169
- 169
- 169
- 169
- 169
- 170
- 170
- 170
- 170
- 170
- 170
- 170
- 171
- 171
- 171
- 171
- 171
- 171
- 171
- 171
- 172
- 172
- 172
- 172
- 172
- 172
- 172
- 173
- 173
- 173
- 173
- 173
- 173
- 173
- 173
- 173
- 174
- 174
- 174
- 174
- 174
- 174
- 174
- 174
- 175
- 175
- 175
- 175
- 175
- 175
- 175
- 175
- 176
- 176
- 176
- 176
- 176
- 176
- 176
- 176
- 176
- 177
- 177
- 177
- 177
- 177
- 177
- 177
- 177
- 177
- 177
- 178
- 178
- 178
- 178
- 178
- 178
- 178
- 178
- 178
- 178
- 178
- 179
- 179
- 179
- 179
- 179
- 179
- 179
- 179
- 179
- 180
- 180
- 180
- 180
- 180
- 180
- 180
- 180
- 180
- 181
- 181
- 181
- 181
- 181
- 181
- 181
- 181
- 181
- 182
- 182
- 182
- 182
- 182
- 182
- 182
- 182
- 182
- 183
- 183
- 183
- 183
- 183
- 183
- 183
- 183
- 184
- 184
- 184
- 184
- 184
- 184
- 184
- 184
- 185
- 185
- 185
- 185
- 185
- 185
- 185
- 185
- 185
- 186
- 186
- 186
- 186
- 186
- 186
- 186
- 186
- 187
- 187
- 187
- 187
- 187
- 187
- 187
- 187
- 187
- 188
- 188
- 188
- 188
- 188
- 188
- 188
- 189
-16/08/2020 20:23:12
-cooling down
-17/08/2020 0:35:05
- 42
-17/08/2020 0:35:06
-Heating to 190
-17/08/2020 0:35:06
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 42
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 41
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 40
- 39
- 40
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 39
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 38
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 37
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 36
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 35
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 34
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 33
- 32
- 33
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 32
- 31
- 32
- 32
- 32
- 31
- 31
- 31
- 32
- 31
- 31
- 31
- 31
- 32
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 31
- 30
- 30
- 31
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 30
- 29
- 30
- 30
- 30
- 30
- 30
- 30
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
- 29
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_motor_test.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_motor_test.cs
deleted file mode 100644
index bd92ea498..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_motor_test.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-
-
-stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,3,true, 2200);
-
-
-
-
-
-
-
-
-
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Encoder.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_ssi.cs
index d2eb00cb6..0e6c5c7f0 100644
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Encoder.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_ssi.cs
@@ -31,25 +31,18 @@ public void OnExecute(StubManager stubManager)
for (int i = 0; i < 1000; i++)
{
+
+ SSI_Read_Write(FPGA1, F1_LSPARE_ROTENC_MSB, F1_LSPARE_ROTENC_LSB, F1_LSPARE_ROTENC_TX);
+// SSI_Read_Write(FPGA1, F1_LDANCER2_ROTENC_MSB, F1_LDANCER2_ROTENC_LSB, F1_LDANCER2_ROTENC_TX);
+ stubManager.Write("\n");
+ k++;
+ if ( (k & 0x8) == 0x08 ) {
+ k = 0;
+ stubManager.Write(" LDANCER1 LDANCER2 \n");
+ }
- stubManager.Write(ReadEncoder_Dryer() +"\n");
-
- Thread.Sleep(100);
+ Thread.Sleep(10);
}
}
-
-Int32 ReadEncoder_Dryer()
-{
- Int32 temp;
- Int32 temp1;
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190);
- var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192);
-
- temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff));
-
- return temp;
-}
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/GPO_Blower_PWM.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/GPO_Blower_PWM.cs
index de04260fa..d7c4894c6 100644
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/GPO_Blower_PWM.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/GPO_Blower_PWM.cs
@@ -12,48 +12,26 @@ using Tango.Stubs;
include "..\..\Defines\Tango_Defines_Basic.cs"
include "Tango_Defines_SSR.cs"
-include "Tango_Defines_Tacho.cs"
-const int Time_Test_On_Second= 60*30*3 ; //1.5 hour
-const string File_Name = @"P:\Scripts\Assemblies\Dryer\Blowe_RMO_LOG.CSV"; //3 hour
+
public void OnExecute(StubManager stubManager)
{
-
- var RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg8, 0);
- UInt32 temp;
-
SetBit(FPGA1,0x3d2,5,0); //turn on Blower
- SetBit(FPGA1,0x3d2,4,1); //Dir
+ SetBit(FPGA1,0x3d2,4,0); //Dir
SetBit(FPGA1,0x3d2,3,1); //Torqer High
- const int LOW = 70;//0 - 100%
+ const int LOW = 50;//0 - 100%
var response = stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000400 | 0x112, 0xFF);//Freq 8 bit
var response1 = stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000400 | 0x3EC, LOW+1);//Low 8 bit
var response2 = stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000400 | 0x3EE, 101 - LOW);//High 8 bit
-
-
- stubManager.WriteToFile(File_Name,",RPM ");
-
-
- for (int i=0;i<Time_Test_On_Second;i++)
-
- {
- Thread.Sleep(1000);
- RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg8, 0);
- temp=60/12; //60 sec
- temp=temp *29166667;
- temp=temp/RetVal.Value;
- temp=temp/250;
- stubManager.AppendToFile(File_Name,i+ ","+ temp );
-
- stubManager.Write("Fan5 Speed- \t"+temp + "\n");
-// stubManager.WriteHex(RetVal.Value,4);
-
- }
+ Thread.Sleep(4000);
SetBit(FPGA1,0x3d2,5,1); //turn off Blower
+
+ // low + high = 100 % in order use the same freq
+ // there is option to change only the high (low + freq constasnt) this will chnga the freq
} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Load_Dryer_Arm.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Load_Dryer_Arm.cs
deleted file mode 100644
index 1ce0a515f..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Load_Dryer_Arm.cs
+++ /dev/null
@@ -1,224 +0,0 @@
-//-------------------------------------------
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-include "..\..\Defines\Tango_Defines_Basic.cs"
-include "..\Defines\Tango_Defines_Motors.cs"
-
- //--------------------------------------------------------------------------------
-
-//--------------------------------------------------------------------------------
-Int32 last_14bit_position;
-Int32 position_32bit;
-
-
-public void OnExecute(StubManager stubManager)
-{
-
-
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190);
- var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192);
- last_14bit_position = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff));
- position_32bit=0;
-
-
-//Create form
- Form form1 = new Form();
-
-//--------------------------------------------------------------------------------
-
-// Create buttons to use as the accept and cancel buttons.
- Button button1 = new Button ()
- {
- Width = 100,
- Height = 100,
- };
-
- Button button2 = new Button ()
- {
- Width = 100,
- Height = 100,
- };
-//--------------------------------------------------------------------------------
-// Set the text of button
-
- button1.Text = "ARM HOME";
-
- button2.Text = "ARM STRART";
-
-//--------------------------------------------------------------------------------
-// Set the position of the button on the form.
-
- button1.Location = new Point (40, 100);
-
- button2.Location
- = new Point (button1.Left + button1.Width + 10, 100);
-
-//--------------------------------------------------------------------------------
- // Add button to the form.
-
- form1.Controls.Add(button1);
-
- form1.Controls.Add(button2);
-
-//--------------------------------------------------------------------------------
-
-// Set the caption bar text of the form.
-
- form1.Text = "Load Dryer Arm";
-
-//--------------------------------------------------------------------------------
-
- // Define the border style of the form to a dialog box.
-
- form1.FormBorderStyle = FormBorderStyle.FixedDialog;
-
- // Set the MaximizeBox to false to remove the maximize box.
-
- form1.MaximizeBox = false;
-
- // Set the MinimizeBox to false to remove the minimize box.
-
- form1.MinimizeBox = false;
-
- // Set the start position of the form to the center of the screen.
-
- form1.StartPosition = FormStartPosition.CenterScreen;
-
-
- form1.AutoSize = true;
- form1.AutoSizeMode = AutoSizeMode.GrowAndShrink;
-//--------------------------------------------------------------------------------
-
- TextBox TextBox1 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text ="20"
- };
-TextBox1.Location = new Point (40, 40);
- form1.Controls.Add(TextBox1);
-Label Label1 = new Label ()
- {
- Width = 150,
- Height = 100,
- Text ="Number round"
- };
-Label1.Location = new Point (20, 10);
- form1.Controls.Add(Label1);
-
-
-
-//--------------------------------------------------------------------------------
-
-
-
- button2.Click += (_,__) =>
-
- {
- position_32bit=0;
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,5, true, 40);
- Thread.Sleep(200);
-
- while (Math.Abs(ReadEncoder())< (UInt32.Parse(TextBox1.Text)*0x4000))
-
- {
- Thread.Sleep(200);
-
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,5, 3);
-
- };
-
-
-
-//--------------------------------------------------------------------------------
-
- button1.Click += (_,__) =>
- {
- Int32 temp3=0;
- Int32 j=0;
- position_32bit=0;
- Int32 temp=position_32bit;
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,5, false, 40);
- Thread.Sleep(200);
-
- while (temp3==0)
-
- {
- Thread.Sleep(200);
- ReadEncoder();
- stubManager.Write("position_32bit " + position_32bit +"\t");
-
- if (Math.Abs(position_32bit)> (UInt32.Parse(TextBox1.Text)*0x4000))
- temp3=1;
- if (Math.Abs(position_32bit-temp)<0x40)
- j=j+1;
- else
- j=0;
- temp=position_32bit;
- if (j>3)
- temp3=2;
-
- stubManager.Write("Temp3 " + temp3 +"\n");
-
-
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,5, 3);
-
- };
-
-//--------------------------------------------------------------------------------
-
-// Display the form as a modal dialog box.
- form1.ShowDialog();
-
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,5, 3);
-
-
- return;
-}
-
-Int32 ReadEncoder()
-{
- Int32 temp;
- Int32 temp1;
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190);
- var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192);
-
- temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff));
- if (temp>last_14bit_position)
- {
- temp1=temp-last_14bit_position;
- position_32bit=position_32bit+temp1;
- if (temp1>0x2000)
- position_32bit=position_32bit-0x4000;
- }
- else if (temp<last_14bit_position)
-
- {
- temp1=last_14bit_position-temp;
- position_32bit=position_32bit-temp1;
- if (temp1>0x2000)
- position_32bit=position_32bit+0x4000;
- }
-
- last_14bit_position=temp;
-
- return position_32bit;
-}
-
-
-
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Loading_arm_center_calibration.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Loading_arm_center_calibration.cs
deleted file mode 100644
index bb502309e..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Loading_arm_center_calibration.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-
-
-ProgressRequest progressRequest = new ProgressRequest();
-progressRequest.Amount = 0xB1;
-
-var response = stubManager.Run<ProgressResponse>(progressRequest);
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/blower_rpm.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/blower_rpm.cs
deleted file mode 100644
index 13e6af513..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/blower_rpm.cs
+++ /dev/null
@@ -1,62 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-include "..\..\Defines\Tango_Defines_Basic.cs"
-include "Tango_Defines_SSR.cs"
-include "Tango_Defines_Tacho.cs"
-
-const int Time_Test_On_Second= 60*30*3 ; //1.5 hour
-const string File_Name = @"P:\Scripts\Assemblies\Dryer\Blowe_RMO_LOG.CSV"; //3 hour
-
-
-public void OnExecute(StubManager stubManager)
-{
-
-
-/*
- const int LOW = 75;//0 - 100%
- var response = stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000400 | 0x112, 0xFF);//Freq 8 bit
- var response1 = stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000400 | 0x3EC, LOW+1);//Low 8 bit
- var response2 = stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000400 | 0x3EE, 101 - LOW);//High 8 bit
-*/
-
-
-
-
-
-
-
- var RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg8, 0);
- UInt32 temp;
-
-
-// stubManager.WriteToFile(File_Name,",RPM ");
-
-
- for (int i=0;i<Time_Test_On_Second;i++)
-
- {
-
- Thread.Sleep(1000);
- RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg8, 0);
- temp=60/12; //60 sec
- temp=temp *29166667;
- temp=temp/RetVal.Value;
- temp=temp/250;
-// stubManager.AppendToFile(File_Name,i+ ","+ temp );
-
- stubManager.Write("Fan5 Speed- \t"+temp + "\n");
-// stubManager.WriteHex(RetVal.Value,4);
-
- }
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test.csv
deleted file mode 100644
index a31cc8341..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test.csv
+++ /dev/null
@@ -1,1795 +0,0 @@
-24/05/2020 13:21:48
-0,0
-58,0
-75,0
-92,-2
-111,53
-132,36
-151,-53
-172,-14
-192,-117
-212,-100
-248,-149
-268,-309
-289,-377
-309,-453
-328,-462
-350,-539
-369,-687
-388,-747
-410,-829
-431,-842
-451,-922
-464,-991
-494,-1044
-515,-1221
-535,-1237
-557,-1312
-578,-1459
-599,-1538
-619,-1552
-639,-1626
-660,-1701
-685,-1846
-704,-1873
-720,-1940
-733,-2000
-749,-2113
-765,-2172
-783,-2231
-802,-2298
-820,-2369
-836,-2435
-861,-2494
-878,-2525
-899,-2593
-919,-2735
-933,-2809
-952,-2861
-966,-2932
-982,-2986
-996,-2982
-1014,-3033
-1035,-3101
-1052,-3242
-1078,-3239
-1101,-3341
-1124,-3425
-1146,-3570
-1181,-3595
-1203,-3783
-1216,-3799
-1235,-3850
-1250,-3921
-1277,-3984
-1298,-4147
-1318,-4223
-1336,-4294
-1355,-4298
-1374,-4365
-1396,-4444
-1427,-4591
-1458,-4713
-1484,-4751
-1505,-4914
-1533,-4960
-1555,-5028
-1574,-5172
-1596,-5244
-1619,-5268
-1642,-5419
-1664,-5499
-1686,-5520
-1706,-5606
-1733,-5740
-1757,-5783
-1776,-5935
-1793,-6007
-1811,-6065
-1830,-6133
-1849,-6207
-1870,-6276
-1891,-6285
-1912,-6366
-1940,-6511
-1962,-6546
-1977,-6627
-1992,-6683
-2012,-6739
-2032,-6815
-2055,-6963
-2077,-6996
-2093,-7053
-2119,-7114
-2142,-7283
-2164,-7362
-2187,-7380
-2210,-7531
-2235,-7615
-2254,-7642
-2276,-7714
-2302,-7874
-2322,-7900
-2342,-7972
-2373,-8107
-2396,-8161
-2416,-8310
-2442,-8383
-2465,-8413
-2490,-8566
-2512,-8591
-2536,-8677
-2562,-8785
-2581,-8858
-2612,-8929
-2653,-9040
-2681,-9265
-2700,-9302
-2720,-9370
-2741,-9446
-2760,-9591
-2782,-9659
-2805,-9679
-2829,-9834
-2848,-9917
-2866,-9988
-2888,-10052
-2907,-10069
-2925,-10142
-2939,-10213
-2961,-10260
-2997,-10379
-3021,-10549
-3041,-10570
-3062,-10646
-3081,-10717
-3102,-10790
-3124,-10934
-3146,-11013
-3165,-11031
-3183,-11105
-3203,-11176
-3229,-11309
-3251,-11341
-3271,-11427
-3291,-11562
-3309,-11635
-3331,-11704
-3349,-11783
-3367,-11800
-3388,-11860
-3405,-11927
-3434,-11996
-3450,-12165
-3465,-12226
-3484,-12284
-3503,-12351
-3519,-12424
-3532,-12485
-3554,-12535
-3578,-12558
-3600,-12638
-3626,-12784
-3648,-12819
-3670,-12898
-3683,-13042
-3705,-13028
-3728,-13181
-3746,-13196
-3761,-13260
-3780,-13332
-3800,-13399
-3817,-13546
-3837,-13532
-3871,-13699
-3887,-13736
-3906,-13799
-3923,-13929
-3943,-13927
-3963,-14067
-3982,-14138
-3998,-14214
-4017,-14271
-4043,-14281
-4062,-14375
-4078,-14512
-4100,-14570
-4122,-14650
-4143,-14668
-4165,-14750
-4188,-14912
-4205,-14982
-4234,-15015
-4255,-15158
-4268,-15231
-4286,-15282
-4309,-15353
-4323,-15375
-4344,-15488
-4362,-15511
-4381,-15579
-4401,-15647
-4422,-15718
-4444,-15860
-4470,-15888
-4493,-16044
-4515,-16130
-4536,-16147
-4558,-16220
-4575,-16366
-4596,-16434
-4622,-16458
-4644,-16543
-4674,-16690
-4697,-16742
-4714,-16887
-4733,-16945
-4749,-17019
-4772,-17084
-4786,-17104
-4803,-17219
-4820,-17281
-4834,-17347
-4847,-17398
-4878,-17453
-4895,-17500
-4915,-17567
-4935,-17706
-4952,-17778
-4967,-17844
-4985,-17831
-5004,-17962
-5021,-18035
-5037,-18099
-5056,-18159
-5094,-18189
-5113,-18369
-5131,-18440
-5150,-18442
-5169,-18512
-5189,-18582
-5205,-18658
-5220,-18719
-5241,-18775
-5266,-18922
-5287,-19012
-5306,-19028
-5326,-19100
-5349,-19244
-5374,-19335
-5393,-19353
-5410,-19424
-5424,-19486
-5444,-19536
-5471,-19705
-5491,-19721
-5511,-19789
-5529,-19869
-5551,-19944
-5564,-20076
-5586,-20060
-5608,-20205
-5633,-20234
-5652,-20317
-5684,-20387
-5706,-20507
-5722,-20652
-5741,-20713
-5758,-20789
-5774,-20843
-5789,-20839
-5805,-20901
-5827,-20964
-5845,-21104
-5866,-21173
-5886,-21250
-5914,-21265
-5937,-21434
-5952,-21454
-5984,-21572
-6002,-21693
-6022,-21759
-6035,-21827
-6055,-21880
-6074,-21952
-6096,-21963
-6124,-22044
-6139,-22210
-6161,-22270
-6183,-22287
-6201,-22367
-6223,-22432
-6236,-22578
-6255,-22567
-6272,-22706
-6288,-22696
-6333,-22837
-6356,-22935
-6370,-23012
-6392,-23067
-6408,-23144
-6429,-23276
-6446,-23350
-6467,-23413
-6486,-23488
-6507,-23559
-6521,-23575
-6542,-23627
-6562,-23707
-6583,-23777
-6604,-23924
-6628,-24003
-6647,-24020
-6669,-24103
-6696,-24238
-6724,-24362
-6741,-24445
-6760,-24507
-6780,-24579
-6805,-24595
-6829,-24754
-6848,-24777
-6872,-24847
-6890,-24936
-6918,-25083
-6939,-25111
-6956,-25181
-6971,-25240
-6990,-25300
-7007,-25366
-7024,-25432
-7045,-25497
-7064,-25648
-7086,-25710
-7108,-25787
-7137,-25898
-7156,-25978
-7184,-26052
-7202,-26158
-7224,-26220
-7238,-26306
-7255,-26354
-7275,-26415
-7296,-26493
-7310,-26509
-7336,-26584
-7351,-26654
-7370,-26712
-7392,-26779
-7405,-26926
-7426,-26916
-7446,-27058
-7464,-27130
-7483,-27193
-7507,-27270
-7541,-27400
-7555,-27417
-7573,-27468
-7593,-27538
-7616,-27613
-7636,-27759
-7660,-27839
-7677,-27865
-7701,-27933
-7724,-28080
-7743,-28161
-7777,-28174
-7798,-28359
-7821,-28381
-7837,-28533
-7856,-28585
-7875,-28655
-7889,-28723
-7907,-28712
-7934,-28851
-7957,-28890
-7974,-29033
-7989,-29098
-8003,-29087
-8024,-29140
-8048,-29224
-8100,-29328
-8117,-29567
-8146,-29633
-8169,-29672
-8192,-29823
-8209,-29846
-8226,-29909
-8245,-29966
-8258,-30037
-8284,-30092
-8306,-30261
-8329,-30336
-8348,-30355
-8378,-30432
-8402,-30552
-8425,-30632
-8439,-30779
-8459,-30833
-8490,-30859
-8505,-31025
-8519,-31011
-8545,-31067
-8570,-31177
-8592,-31257
-8622,-31430
-8643,-31449
-8662,-31595
-8683,-31670
-8701,-31742
-8721,-31815
-8747,-31838
-8765,-31984
-8786,-32053
-8813,-32076
-8835,-32236
-8854,-32311
-8869,-32381
-8890,-32442
-8904,-32458
-8925,-32575
-8939,-32587
-8952,-32700
-8972,-32751
-9004,-32783
-9026,-32946
-9043,-33020
-9063,-33084
-9081,-33099
-9098,-33168
-9117,-33226
-9139,-33298
-9160,-33382
-9180,-33528
-9202,-33599
-9224,-33614
-9252,-33700
-9274,-33808
-9292,-33884
-9304,-33949
-9326,-34004
-9342,-34154
-9360,-34142
-9377,-34203
-9395,-34272
-9415,-34341
-9445,-34481
-9467,-34531
-9485,-34671
-9505,-34744
-9527,-34761
-9541,-34837
-9556,-34892
-9576,-35011
-9591,-35017
-9610,-35137
-9640,-35168
-9659,-35321
-9682,-35337
-9707,-35423
-9728,-35574
-9750,-35594
-9767,-35681
-9781,-35733
-9797,-35848
-9818,-35909
-9838,-35921
-9867,-36005
-9889,-36110
-9907,-36191
-9931,-36258
-9950,-36410
-9971,-36485
-9989,-36497
-10010,-36562
-10031,-36641
-10057,-36777
-10081,-36820
-10101,-36901
-10123,-37038
-10145,-37121
-10161,-37135
-10180,-37193
-10206,-37285
-10227,-37432
-10248,-37509
-10270,-37525
-10291,-37673
-10313,-37751
-10330,-37830
-10344,-37894
-10368,-37947
-10387,-37972
-10407,-38047
-10425,-38120
-10439,-38183
-10459,-38236
-10486,-38377
-10507,-38415
-10523,-38488
-10541,-38553
-10561,-38620
-10578,-38696
-10592,-38758
-10610,-38810
-10630,-38869
-10652,-38952
-10679,-39094
-10702,-39132
-10724,-39289
-10746,-39361
-10763,-39383
-10792,-39464
-10809,-39617
-10823,-39679
-10837,-39731
-10854,-39716
-10884,-39853
-10901,-39893
-10918,-39957
-10939,-40021
-10959,-40171
-10977,-40241
-10991,-40305
-11007,-40362
-11020,-40350
-11035,-40403
-11051,-40518
-11081,-40576
-11113,-40661
-11132,-40739
-11151,-40873
-11172,-40952
-11194,-41027
-11213,-41043
-11227,-41116
-11248,-41163
-11283,-41294
-11308,-41450
-11329,-41537
-11352,-41553
-11370,-41638
-11391,-41702
-11408,-41850
-11428,-41906
-11448,-41982
-11473,-42053
-11493,-42082
-11512,-42221
-11535,-42291
-11559,-42322
-11579,-42404
-11598,-42538
-11622,-42618
-11644,-42636
-11663,-42718
-11701,-42790
-11718,-42997
-11741,-43062
-11760,-43141
-11778,-43156
-11804,-43232
-11829,-43388
-11849,-43411
-11871,-43482
-11894,-43629
-11919,-43715
-11947,-43746
-11974,-43853
-12021,-44016
-12040,-44123
-12083,-44198
-12103,-44417
-12125,-44487
-12147,-44507
-12178,-44624
-12198,-44707
-12219,-44850
-12241,-44919
-12266,-44937
-12286,-45032
-12309,-45174
-12331,-45195
-12351,-45280
-12384,-45423
-12405,-45472
-12428,-45622
-12447,-45704
-12469,-45707
-12491,-45794
-12508,-45940
-12523,-46004
-12538,-46059
-12553,-46050
-12567,-46104
-12580,-46216
-12605,-46267
-12624,-46295
-12640,-46365
-12659,-46425
-12681,-46498
-12694,-46643
-12716,-46628
-12731,-46772
-12750,-46833
-12775,-46905
-12798,-46942
-12820,-47084
-12846,-47120
-12859,-47197
-12876,-47246
-12895,-47312
-12908,-47378
-12928,-47490
-12942,-47507
-12960,-47562
-12989,-47650
-13009,-47797
-13031,-47876
-13049,-47891
-13069,-47958
-13085,-48034
-13107,-48096
-13126,-48241
-13147,-48314
-13168,-48388
-13195,-48402
-13230,-48571
-13249,-48698
-13263,-48772
-13284,-48821
-13298,-48841
-13316,-48955
-13332,-49021
-13346,-49084
-13359,-49132
-13387,-49123
-13409,-49227
-13432,-49309
-13453,-49458
-13470,-49542
-13490,-49601
-13506,-49672
-13526,-49732
-13544,-49739
-13564,-49809
-13592,-49977
-13615,-49994
-13634,-50072
-13653,-50144
-13669,-50281
-13683,-50276
-13695,-50325
-13711,-50385
-13727,-50499
-13747,-50565
-13767,-50571
-13799,-50650
-13822,-50774
-13841,-50921
-13867,-51000
-13880,-51017
-13914,-51134
-13938,-51268
-13960,-51290
-13980,-51364
-13995,-51508
-14010,-51564
-14028,-51551
-14056,-51710
-14078,-51734
-14112,-51885
-14134,-51931
-14153,-52077
-14175,-52149
-14190,-52230
-14209,-52284
-14231,-52353
-14244,-52374
-14272,-52452
-14291,-52595
-14310,-52661
-14343,-52737
-14364,-52861
-14377,-52933
-14400,-52984
-14413,-53004
-14427,-53122
-14453,-53137
-14470,-53204
-14485,-53263
-14499,-53324
-14521,-53442
-14558,-53478
-14580,-53602
-14602,-53743
-14622,-53826
-14642,-53833
-14665,-53905
-14693,-54058
-14716,-54100
-14735,-54182
-14748,-54247
-14771,-54305
-14791,-54458
-14811,-54528
-14829,-54599
-14856,-54610
-14871,-54775
-14899,-54853
-14913,-54865
-14932,-54981
-14952,-54992
-14970,-55074
-14995,-55136
-15023,-55254
-15042,-55329
-15070,-55470
-15092,-55505
-15115,-55582
-15133,-55729
-15151,-55801
-15170,-55869
-15189,-55934
-15209,-55946
-15228,-56019
-15247,-56088
-15268,-56157
-15295,-56303
-15313,-56343
-15331,-56406
-15344,-56470
-15364,-56581
-15377,-56591
-15395,-56710
-15415,-56715
-15433,-56782
-15454,-56853
-15486,-56935
-15508,-57055
-15528,-57197
-15548,-57271
-15569,-57346
-15588,-57360
-15608,-57429
-15627,-57497
-15648,-57568
-15675,-57713
-15695,-57752
-15718,-57824
-15738,-57978
-15760,-58050
-15779,-58064
-15793,-58136
-15808,-58186
-15826,-58305
-15846,-58374
-15864,-58388
-15890,-58453
-15911,-58611
-15935,-58639
-15949,-58720
-15967,-58768
-15980,-58834
-15998,-58951
-16017,-58954
-16038,-59022
-16059,-59104
-16089,-59245
-16111,-59292
-16133,-59435
-16152,-59518
-16169,-59592
-16192,-59656
-16223,-59674
-16242,-59791
-16260,-59860
-16288,-59930
-16308,-60097
-16328,-60114
-16355,-60185
-16379,-60355
-16398,-60380
-16412,-60442
-16431,-60495
-16445,-60565
-16467,-60619
-16481,-60700
-16506,-60748
-16527,-60918
-16547,-60995
-16565,-61063
-16588,-61069
-16620,-61225
-16641,-61272
-16663,-61342
-16682,-61488
-16702,-61561
-16718,-61634
-16744,-61693
-16766,-61722
-16784,-61874
-16806,-61943
-16827,-61965
-16844,-62041
-16867,-62185
-16887,-62253
-16908,-62329
-16929,-62402
-16951,-62422
-16973,-62581
-16994,-62653
-17014,-62666
-17031,-62736
-17050,-62804
-17064,-62875
-17083,-62926
-17108,-62994
-17144,-63114
-17165,-63287
-17185,-63305
-17204,-63374
-17223,-63446
-17236,-63517
-17253,-63571
-17269,-63630
-17288,-63693
-17310,-63766
-17330,-63846
-17349,-63995
-17375,-64015
-17394,-64086
-17416,-64158
-17432,-64310
-17449,-64380
-17465,-64430
-17479,-64490
-17499,-64484
-17513,-64621
-17539,-64610
-17560,-64771
-17579,-64778
-17593,-64856
-17612,-64905
-17634,-64976
-17653,-65056
-17676,-65193
-17698,-65281
-17715,-65299
-17741,-65361
-17764,-65524
-17785,-65605
-17805,-65622
-17825,-65699
-17849,-65844
-17867,-65866
-17887,-65930
-17907,-66003
-17927,-66079
-17946,-66218
-17965,-66291
-17992,-66358
-18027,-66474
-18051,-66534
-18072,-66683
-18088,-66758
-18110,-66763
-18132,-66837
-18155,-66920
-18172,-67068
-18202,-67131
-18225,-67246
-18245,-67329
-18265,-67339
-18284,-67417
-18307,-67491
-18331,-67647
-18351,-67665
-18370,-67736
-18387,-67806
-18414,-67878
-18433,-68039
-18455,-68042
-18479,-68131
-18500,-68287
-18521,-68358
-18538,-68372
-18552,-68434
-18566,-68489
-18589,-68604
-18609,-68624
-18637,-68784
-18658,-68868
-18679,-68881
-18702,-68961
-18715,-69108
-18737,-69093
-18759,-69239
-18779,-69319
-18802,-69337
-18818,-69484
-18846,-69479
-18870,-69590
-18892,-69738
-18915,-69821
-18931,-69850
-18945,-69900
-18965,-70016
-18979,-70027
-18995,-70150
-19014,-70201
-19049,-70231
-19072,-70345
-19091,-70423
-19106,-70493
-19126,-70547
-19145,-70620
-19163,-70692
-19185,-70760
-19205,-70908
-19242,-70978
-19264,-71059
-19283,-71140
-19297,-71273
-19317,-71258
-19335,-71333
-19353,-71467
-19368,-71534
-19386,-71524
-19404,-71590
-19420,-71722
-19446,-71719
-19468,-71827
-19485,-71896
-19503,-71960
-19521,-72027
-19539,-72097
-19557,-72165
-19579,-72303
-19600,-72377
-19626,-72455
-19647,-72487
-19669,-72627
-19687,-72708
-19703,-72713
-19720,-72778
-19738,-72899
-19759,-72964
-19779,-72979
-19798,-73056
-19830,-73197
-19849,-73242
-19871,-73320
-19889,-73466
-19906,-73528
-19922,-73597
-19937,-73653
-19954,-73717
-19970,-73771
-19988,-73766
-20001,-73831
-20027,-73883
-20049,-74053
-20069,-74069
-20085,-74135
-20099,-74193
-20132,-74250
-20152,-74433
-20172,-74444
-20191,-74517
-20206,-74584
-20234,-74641
-20256,-74814
-20274,-74826
-20296,-74900
-20313,-74979
-20335,-75114
-20352,-75191
-20375,-75250
-20394,-75336
-20413,-75342
-20440,-75504
-20460,-75581
-20482,-75593
-20499,-75676
-20521,-75740
-20540,-75881
-20561,-75956
-20583,-76031
-20602,-76049
-20624,-76119
-20646,-76198
-20673,-76308
-20695,-76379
-20719,-76524
-20738,-76612
-20760,-76620
-20775,-76702
-20793,-76757
-20814,-76827
-20835,-76903
-20858,-77049
-20880,-77071
-20900,-77147
-20912,-77221
-20933,-77275
-20955,-77350
-20975,-77498
-20997,-77567
-21030,-77602
-21064,-77802
-21084,-77847
-21103,-77909
-21121,-77980
-21141,-78050
-21159,-78119
-21176,-78253
-21200,-78323
-21219,-78406
-21235,-78409
-21248,-78532
-21270,-78580
-21299,-78606
-21322,-78781
-21336,-78800
-21354,-78912
-21369,-78984
-21385,-79035
-21400,-79102
-21419,-79164
-21433,-79224
-21459,-79273
-21478,-79314
-21492,-79383
-21509,-79436
-21526,-79499
-21546,-79565
-21566,-79639
-21586,-79718
-21601,-79855
-21623,-79841
-21641,-79987
-21670,-80019
-21690,-80101
-21711,-80242
-21730,-80316
-21749,-80388
-21771,-80394
-21790,-80473
-21811,-80545
-21830,-80690
-21849,-80760
-21874,-80829
-21900,-80954
-21924,-81022
-21941,-81054
-21968,-81218
-21988,-81283
-22008,-81295
-22032,-81372
-22052,-81519
-22073,-81597
-22087,-81610
-22118,-81731
-22146,-81860
-22168,-81881
-22187,-82026
-22210,-82099
-22258,-82180
-22283,-82370
-22333,-82463
-22355,-82578
-22379,-82729
-22401,-82771
-22418,-82836
-22440,-82899
-22457,-82982
-22472,-83048
-22495,-83112
-22521,-83251
-22542,-83288
-22570,-83362
-22586,-83466
-22607,-83590
-22628,-83609
-22648,-83683
-22667,-83821
-22686,-83891
-22706,-83968
-22726,-83978
-22742,-84049
-22762,-84110
-22778,-84181
-22803,-84244
-22823,-84402
-22844,-84478
-22865,-84494
-22882,-84569
-22896,-84632
-22914,-84684
-22934,-84748
-22951,-84832
-22980,-84891
-23001,-85006
-23024,-85078
-23043,-85227
-23060,-85299
-23083,-85366
-23105,-85446
-23129,-85461
-23164,-85600
-23193,-85747
-23214,-85794
-23233,-85930
-23254,-86001
-23274,-86078
-23288,-86093
-23307,-86210
-23327,-86280
-23344,-86292
-23361,-86356
-23385,-86437
-23402,-86582
-23430,-86635
-23451,-86678
-23468,-86756
-23489,-86820
-23503,-86959
-23516,-86943
-23533,-86995
-23553,-87058
-23569,-87131
-23593,-87193
-23615,-87346
-23634,-87423
-23650,-87434
-23672,-87558
-23691,-87575
-23713,-87644
-23738,-87792
-23760,-87822
-23783,-87902
-23805,-88053
-23818,-88132
-23838,-88183
-23851,-88259
-23871,-88313
-23887,-88382
-23900,-88437
-23918,-88423
-23938,-88561
-23959,-88637
-23987,-88649
-24008,-88817
-24032,-88890
-24055,-88928
-24075,-89066
-24088,-89138
-24105,-89123
-24127,-89257
-24150,-89336
-24177,-89353
-24201,-89532
-24224,-89548
-24241,-89632
-24264,-89696
-24280,-89847
-24300,-89910
-24321,-89982
-24343,-89993
-24364,-90076
-24396,-90226
-24413,-90269
-24430,-90333
-24449,-90393
-24470,-90537
-24489,-90617
-24505,-90674
-24519,-90738
-24536,-90728
-24556,-90791
-24580,-90932
-24611,-90957
-24636,-91143
-24658,-91162
-24678,-91307
-24699,-91378
-24721,-91458
-24737,-91477
-24758,-91536
-24777,-91614
-24801,-91754
-24825,-91846
-24846,-91866
-24864,-92013
-24880,-92073
-24899,-92071
-24917,-92206
-24941,-92279
-24963,-92301
-24982,-92381
-25006,-92453
-25028,-92613
-25045,-92625
-25066,-92686
-25084,-92771
-25101,-92828
-25122,-92893
-25141,-93033
-25160,-93105
-25179,-93174
-25199,-93245
-25223,-93263
-25258,-93438
-25278,-93478
-25299,-93620
-25326,-93694
-25350,-93802
-25373,-93889
-25395,-93903
-25417,-94059
-25439,-94137
-25470,-94182
-25483,-94326
-25500,-94380
-25517,-94446
-25539,-94516
-25553,-94585
-25566,-94633
-25582,-94619
-25595,-94680
-25618,-94730
-25640,-94817
-25660,-94962
-25678,-95036
-25697,-95104
-25716,-95173
-25735,-95177
-25754,-95247
-25770,-95326
-25786,-95388
-25803,-95442
-25823,-95507
-25851,-95577
-25869,-95693
-25892,-95755
-25913,-95839
-25933,-95986
-25954,-96065
-25974,-96078
-25993,-96143
-26007,-96217
-26036,-96274
-26056,-96449
-26070,-96517
-26088,-96570
-26109,-96635
-26132,-96654
-26163,-96736
-26185,-96847
-26207,-96933
-26233,-97084
-26256,-97116
-26277,-97261
-26296,-97345
-26311,-97416
-26329,-97471
-26341,-97534
-26358,-97585
-26376,-97651
-26392,-97712
-26411,-97775
-26440,-97846
-26461,-97892
-26480,-98033
-26501,-98112
-26525,-98124
-26549,-98212
-26586,-98329
-26603,-98446
-26619,-98558
-26635,-98619
-26656,-98679
-26681,-98759
-26704,-98792
-26724,-98944
-26747,-98955
-26770,-99039
-26785,-99191
-26801,-99245
-26820,-99307
-26837,-99389
-26866,-99447
-26890,-99493
-26910,-99638
-26927,-99712
-26949,-99780
-26983,-99800
-27010,-99941
-27026,-100094
-27055,-100148
-27083,-100198
-27101,-100358
-27123,-100369
-27139,-100441
-27155,-100500
-27176,-100567
-27190,-100643
-27208,-100697
-27232,-100768
-27252,-100913
-27273,-100994
-27287,-101005
-27309,-101117
-27324,-101137
-27346,-101207
-27368,-101283
-27391,-101428
-27407,-101505
-27421,-101571
-27440,-101623
-27459,-101641
-27478,-101712
-27499,-101774
-27526,-101849
-27541,-102017
-27560,-102067
-27579,-102144
-27593,-102206
-27606,-102258
-27622,-102245
-27648,-102393
-27661,-102463
-27674,-102511
-27693,-102497
-27723,-102642
-27740,-102681
-27759,-102740
-27778,-102812
-27798,-102887
-27814,-103025
-27833,-103016
-27852,-103155
-27873,-103228
-27889,-103243
-27909,-103366
-27929,-103375
-27959,-103450
-27981,-103566
-28000,-103650
-28023,-103789
-28037,-103865
-28057,-103927
-28076,-103993
-28096,-104062
-28116,-104136
-28137,-104144
-28166,-104227
-28189,-104334
-28207,-104422
-28230,-104487
-28260,-104637
-28276,-104752
-28303,-104827
-28325,-104848
-28339,-104926
-28368,-104978
-28384,-105154
-28407,-105215
-28429,-105238
-28447,-105317
-28468,-105374
-28490,-105524
-28511,-105548
-28532,-105617
-28551,-105691
-28582,-105843
-28602,-105885
-28624,-105958
-28639,-106093
-28654,-106153
-28676,-106148
-28698,-106294
-28720,-106372
-28742,-106389
-28762,-106542
-28784,-106612
-28801,-106690
-28834,-106760
-28856,-106883
-28876,-106900
-28894,-107049
-28914,-107042
-28931,-107182
-28949,-107245
-28968,-107309
-28987,-107378
-29008,-107448
-29036,-107466
-29062,-107645
-29084,-107663
-29106,-107742
-29129,-107895
-29150,-107975
-29173,-108080
-29195,-108138
-29221,-108226
-29243,-108255
-29262,-108397
-29276,-108473
-29296,-108522
-29323,-108560
-29346,-108715
-29379,-108786
-29394,-108913
-29415,-108969
-29434,-109041
-29461,-109116
-29478,-109151
-29501,-109218
-29525,-109370
-29546,-109388
-29564,-109472
-29584,-109534
-29604,-109607
-29625,-109740
-29641,-109821
-29657,-109891
-29685,-109942
-29705,-109980
-29724,-110052
-29747,-110193
-29770,-110277
-29789,-110297
-29811,-110368
-29834,-110519
-29856,-110537
-29876,-110614
-29899,-110762
-29925,-110813
-29939,-110875
-29954,-110930
-29971,-111046
-29988,-111112
-30007,-111124
-30021,-111182
-30035,-111297
-30065,-111352
-30091,-111468
-30109,-111560
-30131,-111623
-30145,-111642
-30160,-111691
-30179,-111816
-30202,-111827
-30223,-111907
-30245,-112050
-30266,-112133
-30286,-112154
-30304,-112220
-30332,-112288
-30355,-112411
-30369,-112486
-30389,-112537
-30402,-112608
-30418,-112655
-30434,-112717
-30449,-112778
-30467,-112904
-30480,-112960
-30502,-113018
-30531,-113035
-30554,-113213
-30574,-113228
-30593,-113301
-30612,-113374
-30631,-113442
-30654,-113580
-30682,-113661
-30704,-113771
-30723,-113850
-30748,-113867
-30762,-113953
-30789,-114009
-30814,-114179
-30836,-114199
-30857,-114348
-30871,-114425
-30890,-114479
-30909,-114551
-30931,-114618
-30952,-114639
-30969,-114717
-30990,-114784
-31005,-114922
-31025,-114911
-31050,-115059
-31073,-115144
-31095,-115160
-31114,-115311
-31149,-115366
-31167,-115512
-31193,-115582
-31207,-115617
-31221,-115670
-31244,-115721
-31288,-115805
-31311,-116036
-31331,-116058
-31354,-116131
-31386,-116264
-31410,-116405
-31433,-116425
-31459,-116511
-31481,-116672
-31521,-116700
-31547,-116917
-31567,-116940
-31587,-117015
-31615,-117084
-31634,-117252
-31652,-117261
-31674,-117329
-31689,-117409
-31708,-117464
-31730,-117611
-31746,-117682
-31768,-117742
-31788,-117825
-31805,-117835
-31825,-117900
-31853,-117979
-31873,-118147
-31892,-118171
-31909,-118229
-31923,-118289
-31937,-118405
-31954,-118456
-31976,-118520
-32004,-118537
-32020,-118714
-32033,-118766
-32056,-118753
-32076,-118903
-32096,-118977
-32119,-118992
-32137,-119066
-32159,-119134
-32197,-119261
-32219,-119428
-32238,-119441
-32255,-119514
-32271,-119578
-32289,-119635
-32305,-119700
-32323,-119764
-32338,-119836
-32353,-119886
-32367,-119947
-32381,-120062
-32412,-120135
-32447,-120253
-32469,-120361
-32488,-120442
-32510,-120514
-32524,-120531
-32546,-120648
-32566,-120661
-32581,-120742
-32594,-120791
-32607,-120903
-32639,-120956
-32662,-121074
-32684,-121153
-32707,-121176
-32729,-121326
-32750,-121416
-32773,-121422
-32795,-121508
-32820,-121663
-32844,-121682
-32864,-121836
-32881,-121911
-32896,-121980
-32910,-122031
-32927,-122018
-32948,-122159
-32962,-122224
-32979,-122282
-32994,-122280
-33015,-122336
-33040,-122407
-33077,-122520
-33099,-122639
-33118,-122714
-33134,-122785
-33150,-122847
-33163,-122907
-33182,-122954
-33204,-123027
-33224,-123108
-33251,-123246
-33275,-123289
-33294,-123435
-33318,-123522
-33335,-123536
-33357,-123607
-33378,-123680
-33400,-123825
-33417,-123908
-33438,-123921
-33467,-123977
-33490,-124154
-33511,-124178
-33531,-124253
-33547,-124326
-33563,-124390
-33586,-124443
-33607,-124596
-33626,-124676
-33648,-124740
-33677,-124761
-33699,-124934
-33712,-124951
-33726,-125064
-33743,-125115
-33766,-125180
-33790,-125207
-33813,-125360
-33838,-125448
-33864,-125545
-33890,-125632
-33912,-125666
-33934,-125812
-33960,-125891
-33975,-125927
-33992,-125982
-34011,-126044
-34027,-126114
-34042,-126178
-34063,-126235
-34089,-126306
-34109,-126465
-34131,-126482
-34144,-126559
-34168,-126613
-34188,-126761
-34206,-126833
-34226,-126905
-34246,-126978
-34277,-127046
-34306,-127172
-34328,-127280
-34348,-127359
-34368,-127371
-34391,-127449
-34411,-127597
-34431,-127673
-34453,-127740
-34473,-127775
-34496,-127839
-34515,-127987
-34541,-128059
-34566,-128093
-34590,-128256
-34608,-128269
-34632,-128342
-34653,-128492
-34674,-128569
-34695,-128646
-34717,-128661
-34748,-128816
-34769,-128866
-34783,-129005
-34803,-128988
-34819,-129131
-34843,-129204
-34870,-129232
-34891,-129320
-34912,-129463
-34927,-129482
-34955,-129599
-34977,-129710
-34995,-129788
-35011,-129852
-35028,-129913
-35046,-129975
-35065,-130038
-35085,-130115
-35098,-130124
-35114,-130247
-35131,-130298
-35155,-130364
-35197,-130489
-35214,-130608
-35234,-130669
-35250,-130745
-35272,-130806
-35292,-130888
-35306,-130899
-35321,-130954
-35337,-131070
-35368,-131140
-35391,-131252
-35411,-131335
-35426,-131348
-35442,-131406
-35465,-131527
-35479,-131542
-35493,-131594
-35519,-131685
-35545,-131751
-35565,-131854
-35579,-131919
-35593,-132035
-35608,-132085
-35636,-132165
-35656,-132185
-35677,-132262
-35699,-132410
-35722,-132487
-35741,-132504
-35760,-132572
-35788,-132736
-35805,-132758
-35823,-132821
-35839,-132882
-35862,-132947
-35883,-133102
-35903,-133178
-35925,-133248
-35946,-133268
-35961,-133348
-35979,-133415
-36006,-133467
-36026,-133577
-36047,-133644
-36071,-133727
-36098,-133894
-36116,-133913
-36133,-133978
-36153,-134041
-36181,-134112
-36204,-134220
-36226,-134303
-36245,-134453
-36268,-134524
-36287,-134541
-36305,-134611
-36326,-134684
-36360,-134760
-36384,-134958
-36411,-135044
-36429,-135156
-36443,-135143
-36461,-135193
-36482,-135265
-36498,-135416
-36516,-135468
-36544,-135550
-36563,-135570
-36585,-135645
-36607,-135790
-36629,-135865
-36657,-135883
-36682,-136058
-36703,-136087
-36726,-136160
-36746,-136314
-36768,-136389
-36788,-136407
-36806,-136475
-36821,-136544
-36846,-136602
-36866,-136765
-36886,-136840
-36905,-136845
-36921,-136914
-36941,-136980
-36958,-137055
-36980,-137114
-37003,-137264
-37022,-137349
-37048,-137357
-37070,-137515
-37089,-141224
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test1.cs
deleted file mode 100644
index 9be6f1ec6..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test1.cs
+++ /dev/null
@@ -1,78 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-
-Int32 last_14bit_position;
-Int32 position_32bit=0;
-const Int32 DrierLoadingArm_Motor = 5;
-public void OnExecute(StubManager stubManager)
-{
- string FileName="test.csv";
- var stopwatch = new Stopwatch();
- stopwatch.Start();
-
- long elapsed_time = stopwatch.ElapsedMilliseconds;
-
- ReadEncoder_Dryer();
- position_32bit=0;
- ReadEncoder_Dryer();
- Int32 temp=position_32bit;
-
- stubManager.WriteToFile(FileName,DateTime.Now +" " );
-//stubManager.AppendToFile("test.csv",elapsed_time+ ","+ position_32bit );
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, false, 100);//40
- elapsed_time = stopwatch.ElapsedMilliseconds;
- stubManager.AppendToFile(FileName,elapsed_time+ ","+ position_32bit );
- while (true)
- {
- ReadEncoder_Dryer();
- elapsed_time = stopwatch.ElapsedMilliseconds;
-stubManager.AppendToFile(FileName,elapsed_time+ ","+ position_32bit );
- Thread.Sleep(1);
- }
-
-}
-
-
-
-void ReadEncoder_Dryer()
-{
- Int32 temp;
- Int32 temp1;
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190);
- var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192);
-
- temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff));
- if (temp>last_14bit_position)
- {
- temp1=temp-last_14bit_position;
- position_32bit=position_32bit+temp1;
- if (temp1>0x2000)
- position_32bit=position_32bit-0x4000;
- }
- else if (temp<last_14bit_position)
-
- {
- temp1=last_14bit_position-temp;
- position_32bit=position_32bit-temp1;
- if (temp1>0x2000)
- position_32bit=position_32bit+0x4000;
- }
-
- last_14bit_position=temp;
-
- return ;
-}
-
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test1.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test1.csv
deleted file mode 100644
index ed306d345..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test1.csv
+++ /dev/null
@@ -1,345 +0,0 @@
-24/05/2020 14:15:24
-0,0
-0,-8
-0,27
-0,32
-0,34
-0,-18
-0,32
-0,36
-0,-20
-0,30
-0,41
-0,35
-0,36
-0,41
-0,36
-0,36
-0,-21
-0,31
-0,-21
-0,30
-0,-21
-0,31
-0,-20
-0,31
-0,-20
-0,31
-0,-21
-0,35
-0,38
-0,30
-0,-21
-0,30
-0,-20
-0,30
-0,-21
-0,31
-0,38
-0,31
-0,-20
-0,30
-0,-20
-0,31
-0,-21
-0,31
-0,-21
-0,30
-0,-22
-0,37
-0,36
-0,38
-0,39
-0,33
-0,-22
-0,30
-0,-21
-0,30
-0,-21
-0,30
-0,-20
-0,31
-0,41
-0,34
-0,40
-0,37
-0,30
-0,-22
-0,34
-0,41
-0,35
-0,37
-0,39
-0,37
-0,40
-0,33
-0,38
-0,33
-0,-20
-0,36
-0,37
-0,39
-0,39
-0,38
-0,37
-0,39
-0,35
-0,36
-0,-21
-0,38
-0,40
-0,32
-0,-22
-0,33
-0,41
-0,31
-0,-22
-0,36
-0,35
-0,32
-0,-17
-0,-22
-0,7
-0,43
-0,122
-0,287
-0,302
-0,374
-0,452
-0,582
-0,725
-0,779
-0,803
-0,799
-0,716
-0,557
-0,454
-0,473
-0,381
-0,349
-0,216
-0,66
-0,96
-0,-62
-0,-157
-0,-231
-0,-327
-0,-310
-0,-463
-0,-542
-0,-600
-0,-712
-0,-789
-0,-807
-0,-957
-0,-1015
-0,-1013
-0,-1172
-0,-1175
-0,-1269
-0,-1400
-0,-1434
-0,-1496
-0,-1573
-0,-1683
-0,-1750
-0,-1781
-0,-1914
-0,-1998
-0,-2131
-0,-2150
-0,-2225
-0,-2269
-0,-2328
-0,-2420
-0,-2553
-0,-2626
-0,-2692
-0,-2768
-0,-2888
-0,-2963
-0,-2969
-0,-3054
-0,-3215
-0,-3229
-0,-3304
-0,-3448
-0,-3526
-0,-3605
-0,-3709
-0,-3780
-0,-3806
-0,-3865
-0,-3984
-0,-3992
-0,-4074
-0,-4222
-0,-4204
-0,-4269
-0,-4407
-0,-4445
-0,-4512
-0,-4586
-0,-4728
-0,-4814
-0,-4875
-0,-4890
-0,-4967
-0,-5038
-0,-5109
-0,-5216
-0,-5297
-0,-5447
-0,-5496
-0,-5566
-0,-5637
-0,-5718
-0,-5724
-0,-5806
-0,-5962
-0,-6037
-0,-6145
-0,-6222
-0,-6235
-0,-6320
-0,-6467
-0,-6490
-0,-6576
-0,-6636
-0,-6784
-0,-7020
-0,-7175
-0,-7206
-0,-7271
-0,-7334
-0,-7405
-0,-7465
-0,-7611
-0,-7684
-0,-7726
-0,-7882
-0,-7909
-0,-7984
-0,-8052
-0,-8183
-0,-8249
-0,-8333
-0,-8383
-0,-8461
-0,-8488
-0,-8553
-0,-8625
-0,-8693
-0,-8831
-0,-8904
-0,-8920
-0,-8998
-0,-9109
-0,-9167
-0,-9195
-0,-9360
-0,-9374
-0,-9433
-0,-9517
-0,-9657
-0,-9721
-0,-9718
-0,-9862
-0,-9934
-0,-9946
-0,-10025
-0,-10191
-0,-10262
-0,-10325
-0,-10379
-0,-10438
-0,-10490
-0,-10559
-0,-10544
-0,-10687
-0,-10757
-0,-10873
-0,-10953
-0,-11008
-0,-11063
-0,-11062
-0,-11215
-0,-11230
-0,-11303
-0,-11378
-0,-11523
-0,-11560
-0,-11706
-0,-11794
-0,-11816
-0,-11868
-0,-11990
-0,-11991
-0,-12065
-0,-12136
-0,-12189
-0,-12350
-0,-12376
-0,-12459
-0,-12527
-0,-12595
-0,-12658
-0,-12798
-0,-12790
-0,-12925
-0,-12999
-0,-13076
-0,-13100
-0,-13259
-0,-13277
-0,-13358
-0,-13505
-0,-13586
-0,-13654
-0,-13676
-0,-13739
-0,-13806
-0,-13958
-0,-14016
-0,-14049
-0,-14118
-0,-14187
-0,-14244
-0,-14297
-0,-14365
-0,-14453
-0,-14595
-0,-14618
-0,-14698
-0,-14754
-0,-14837
-0,-14973
-0,-15045
-0,-15116
-0,-15187
-0,-15235
-0,-15287
-0,-15353
-0,-15386
-0,-15499
-0,-15565
-0,-15616
-0,-15701
-0,-15764
-0,-15787
-0,-15856
-0,-15994
-0,-16074
-0,-16097
-0,-16271
-0,-16340
-0,-16359
-0,-16504
-0,-16502
-0,-16565
-0,-16617
-0,-16692
-0,-16830
-0,-16905
-0,-16944
-0,-17014
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test12.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test12.csv
deleted file mode 100644
index 756c780f4..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test12.csv
+++ /dev/null
@@ -1,283 +0,0 @@
-24/05/2020 14:47:25
-41,0
-63,7
-77,-31
-91,-29
-117,18
-131,-77
-162,-86
-175,-131
-195,-105
-212,-219
-226,-189
-244,-283
-265,-341
-286,-357
-300,-430
-323,-543
-345,-561
-366,-712
-386,-795
-403,-803
-425,-926
-459,-944
-480,-1076
-502,-1145
-524,-1289
-544,-1319
-563,-1389
-585,-1458
-605,-1537
-627,-1681
-649,-1703
-672,-1781
-695,-1925
-723,-2014
-744,-2124
-764,-2190
-789,-2274
-809,-2306
-824,-2441
-841,-2430
-864,-2490
-882,-2636
-904,-2711
-927,-2732
-949,-2809
-973,-2960
-996,-2980
-1010,-3068
-1024,-3117
-1047,-3232
-1071,-3260
-1090,-3409
-1109,-3476
-1131,-3545
-1150,-3563
-1166,-3636
-1180,-3699
-1196,-3749
-1219,-3872
-1243,-3902
-1266,-4051
-1280,-4071
-1293,-4181
-1315,-4230
-1339,-4322
-1356,-4343
-1375,-4400
-1395,-4474
-1412,-4618
-1432,-4683
-1457,-4765
-1486,-4784
-1510,-4961
-1524,-4984
-1547,-5035
-1560,-5115
-1580,-5168
-1597,-5246
-1612,-5312
-1633,-5361
-1653,-5440
-1672,-5577
-1685,-5649
-1709,-5634
-1728,-5788
-1744,-5855
-1758,-5919
-1777,-5969
-1792,-6041
-1808,-6100
-1831,-6160
-1847,-6179
-1866,-6304
-1885,-6312
-1904,-6381
-1930,-6451
-1953,-6620
-1972,-6637
-1994,-6707
-2010,-6851
-2032,-6849
-2054,-6997
-2073,-7014
-2091,-7083
-2121,-7159
-2143,-7267
-2165,-7345
-2181,-7424
-2195,-7556
-2209,-7547
-2229,-7607
-2245,-7669
-2262,-7732
-2276,-7795
-2296,-7847
-2310,-7924
-2329,-7971
-2355,-8048
-2376,-8209
-2398,-8285
-2411,-8299
-2434,-8415
-2457,-8435
-2479,-8582
-2501,-8612
-2519,-8690
-2539,-8753
-2557,-8824
-2576,-8891
-2607,-9028
-2629,-9082
-2645,-9227
-2659,-9290
-2681,-9279
-2698,-9424
-2720,-9487
-2741,-9509
-2761,-9583
-2796,-9738
-2815,-9793
-2834,-9858
-2859,-9996
-2876,-10039
-2890,-10089
-2909,-10148
-2923,-10212
-2945,-10330
-2963,-10344
-2979,-10411
-2994,-10476
-3015,-10533
-3046,-10612
-3069,-10727
-3082,-10804
-3107,-10853
-3122,-10945
-3137,-11001
-3152,-11056
-3170,-11120
-3189,-11187
-3208,-11256
-3229,-11327
-3248,-11473
-3266,-11536
-3283,-11607
-3296,-11664
-3319,-11648
-3341,-11799
-3354,-11817
-3374,-11932
-3390,-12002
-3405,-12061
-3427,-12121
-3440,-12139
-3458,-12251
-3473,-12260
-3490,-12374
-3512,-12438
-3546,-12457
-3565,-12580
-3588,-12657
-3611,-12809
-3631,-12894
-3653,-12902
-3677,-12986
-3696,-13139
-3716,-13210
-3739,-13225
-3757,-13306
-3777,-13372
-3807,-13512
-3830,-13560
-3847,-13707
-3863,-13771
-3885,-13831
-3908,-13917
-3924,-13944
-3947,-13997
-3967,-14147
-4025,-14263
-4060,-14374
-4083,-14502
-4106,-14586
-4129,-14735
-4143,-14759
-4162,-14875
-4180,-14945
-4199,-15010
-4222,-15017
-4240,-15175
-4258,-15243
-4278,-15305
-4292,-15377
-4318,-15431
-4342,-15476
-4361,-15622
-4380,-15690
-4395,-15758
-4410,-15817
-4427,-15808
-4443,-15863
-4462,-15925
-4476,-15996
-4496,-16050
-4513,-16126
-4534,-16187
-4568,-16345
-4587,-16454
-4603,-16526
-4619,-16582
-4641,-16645
-4663,-16728
-4676,-16740
-4689,-16854
-4702,-16901
-4720,-16884
-4734,-16954
-4753,-17004
-4774,-17075
-4795,-17230
-4812,-17304
-4828,-17365
-4842,-17425
-4863,-17481
-4877,-17556
-4891,-17608
-4911,-17594
-4926,-17738
-4946,-17724
-4973,-17877
-4996,-17905
-5020,-17982
-5043,-18144
-5063,-18160
-5078,-18236
-5097,-18286
-5110,-18359
-5126,-18407
-5146,-18474
-5161,-18539
-5174,-18658
-5192,-18708
-5205,-18773
-5220,-18823
-5249,-18813
-5270,-18926
-5287,-19001
-5303,-19069
-5324,-19129
-5344,-19202
-5360,-19341
-5383,-19409
-5401,-19431
-5415,-19493
-5430,-19607
-5443,-19660
-5464,-19716
-5554,-20053
-5575,-20128
-5592,-20147
-5612,-20199
-5631,-20274
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test13.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test13.csv
deleted file mode 100644
index 7344cf879..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test13.csv
+++ /dev/null
@@ -1,290 +0,0 @@
-24/05/2020 14:47:49
-41,0
-56,0
-71,0
-90,-1
-104,-9
-122,-19
-155,-104
-176,-162
-197,-137
-216,-184
-235,-295
-257,-352
-279,-425
-300,-496
-321,-510
-342,-592
-356,-736
-371,-722
-387,-772
-405,-829
-426,-907
-445,-1049
-476,-1115
-497,-1171
-516,-1318
-534,-1335
-555,-1450
-576,-1462
-594,-1542
-613,-1609
-627,-1680
-645,-1727
-666,-1795
-689,-1944
-710,-2032
-738,-2045
-758,-2209
-779,-2291
-797,-2301
-811,-2367
-827,-2478
-843,-2537
-859,-2598
-874,-2660
-893,-2721
-914,-2789
-934,-2866
-956,-2879
-982,-2962
-999,-3121
-1019,-3185
-1039,-3194
-1057,-3274
-1082,-3420
-1102,-3494
-1122,-3567
-1136,-3578
-1149,-3690
-1164,-3743
-1178,-3797
-1199,-3790
-1228,-3950
-1249,-3977
-1267,-4119
-1289,-4183
-1306,-4263
-1329,-4332
-1350,-4351
-1363,-4425
-1400,-4481
-1422,-4620
-1436,-4764
-1450,-4750
-1475,-4805
-1491,-4961
-1508,-5022
-1525,-5084
-1543,-5150
-1569,-5234
-1585,-5243
-1605,-5304
-1622,-5379
-1639,-5441
-1659,-5502
-1681,-5581
-1701,-5726
-1729,-5801
-1743,-5838
-1778,-5901
-1802,-6033
-1817,-6174
-1839,-6236
-1853,-6310
-1867,-6364
-1881,-6353
-1897,-6406
-1912,-6467
-1930,-6519
-1953,-6589
-1975,-6741
-1995,-6823
-2014,-6847
-2030,-6906
-2052,-6966
-2065,-7038
-2085,-7155
-2104,-7159
-2117,-7229
-2131,-7346
-2147,-7395
-2174,-7456
-2211,-7505
-2232,-7630
-2247,-7777
-2263,-7763
-2282,-7824
-2305,-7959
-2320,-8049
-2333,-8098
-2350,-8149
-2367,-8216
-2385,-8211
-2407,-8342
-2432,-8429
-2453,-8453
-2470,-8596
-2493,-8661
-2513,-8747
-2532,-8815
-2552,-8873
-2574,-8924
-2590,-8913
-2605,-8955
-2627,-9053
-2647,-9020
-2675,-9031
-2698,-9022
-2719,-9025
-2734,-9025
-2752,-9025
-2768,-9025
-2782,-9025
-2802,-9025
-2821,-9025
-2843,-9025
-2863,-9025
-2881,-9025
-2904,-9025
-2931,-9025
-2948,-9025
-2967,-9025
-2982,-9025
-2997,-9025
-3021,-9025
-3057,-9025
-3080,-9025
-3102,-9025
-3117,-9025
-3133,-9025
-3150,-9025
-3178,-9025
-3203,-9025
-3217,-9025
-3231,-9025
-3249,-9025
-3265,-9025
-3285,-9025
-3300,-9025
-3319,-9025
-3336,-9025
-3350,-9025
-3370,-9025
-3385,-9025
-3411,-9025
-3433,-9025
-3449,-9025
-3464,-9025
-3478,-9025
-3498,-9025
-3518,-9025
-3532,-9025
-3552,-9025
-3567,-9025
-3585,-9025
-3604,-9025
-3633,-9025
-3654,-9025
-3676,-9025
-3697,-9025
-3718,-9025
-3737,-9025
-3757,-9025
-3773,-9025
-3786,-9025
-3806,-9025
-3821,-9025
-3835,-9025
-3853,-9025
-3880,-9025
-3902,-9025
-3920,-9025
-3938,-9025
-3952,-9025
-3966,-9025
-3986,-9025
-4007,-9025
-4027,-9025
-4047,-9025
-4061,-9025
-4082,-9025
-4106,-9025
-4134,-9025
-4148,-9025
-4164,-9025
-4177,-9025
-4194,-9025
-4207,-9025
-4220,-9025
-4232,-9025
-4248,-9025
-4269,-9025
-4288,-9025
-4308,-9025
-4324,-9025
-4352,-9025
-4374,-9025
-4388,-9025
-4411,-9025
-4427,-9025
-4444,-9025
-4463,-9025
-4478,-9025
-4499,-9025
-4521,-9025
-4541,-9025
-4559,-9025
-4572,-9025
-4602,-9025
-4624,-9025
-4640,-9025
-4653,-9025
-4670,-9025
-4684,-9025
-4702,-9025
-4720,-9025
-4733,-9025
-4748,-9025
-4766,-9025
-4780,-9025
-4803,-9025
-4822,-9025
-4837,-9025
-4860,-9025
-4883,-9025
-4906,-9025
-4920,-9025
-4933,-9025
-4956,-9025
-4973,-9025
-4993,-9025
-5013,-9025
-5030,-9025
-5062,-9025
-5085,-9025
-5104,-9025
-5126,-9025
-5140,-9025
-5156,-9025
-5172,-9025
-5189,-9025
-5205,-9025
-5225,-9025
-5245,-9025
-5263,-9025
-5280,-9025
-5310,-9025
-5323,-9025
-5372,-9025
-5401,-9025
-5421,-9025
-5435,-9025
-5450,-9025
-5467,-9025
-5489,-9025
-5513,-9025
-5533,-9025
-5554,-9025
-5584,-9025
-5605,-9025
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test14.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test14.csv
deleted file mode 100644
index 82a9b98c3..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test14.csv
+++ /dev/null
@@ -1,224 +0,0 @@
-24/05/2020 14:48:02
-40,0
-59,0
-80,0
-116,-3
-138,-99
-159,-72
-180,-172
-203,-146
-224,-203
-243,-262
-264,-315
-282,-379
-301,-438
-324,-525
-346,-674
-364,-752
-393,-814
-415,-929
-434,-948
-454,-1015
-474,-1086
-496,-1165
-515,-1315
-537,-1381
-558,-1400
-578,-1477
-597,-1553
-618,-1685
-639,-1765
-660,-1840
-680,-1856
-703,-1936
-725,-2078
-751,-2113
-794,-2297
-816,-2356
-836,-2431
-857,-2510
-886,-2660
-907,-2696
-921,-2836
-946,-2907
-967,-2987
-988,-2997
-1010,-3077
-1029,-3223
-1045,-3295
-1064,-3354
-1082,-3423
-1105,-3491
-1127,-3519
-1148,-3601
-1170,-3738
-1184,-3817
-1199,-3868
-1216,-3930
-1232,-3989
-1247,-3983
-1266,-4043
-1282,-4114
-1309,-4244
-1334,-4286
-1348,-4368
-1363,-4416
-1382,-4485
-1400,-4551
-1415,-4621
-1431,-4669
-1450,-4736
-1470,-4804
-1492,-4882
-1518,-5027
-1540,-5060
-1560,-5212
-1579,-5279
-1593,-5352
-1612,-5400
-1633,-5470
-1650,-5548
-1671,-5616
-1691,-5637
-1710,-5702
-1727,-5774
-1755,-5907
-1777,-5950
-1793,-6030
-1814,-6086
-1833,-6231
-1854,-6298
-1868,-6378
-1887,-6426
-1908,-6454
-1931,-6526
-1949,-6600
-1985,-6758
-2007,-6873
-2026,-6957
-2046,-7021
-2066,-7031
-2082,-7104
-2095,-7165
-2115,-7280
-2132,-7285
-2149,-7354
-2164,-7414
-2182,-7538
-2212,-7542
-2231,-7725
-2250,-7787
-2266,-7796
-2284,-7915
-2304,-7929
-2326,-8015
-2348,-8148
-2372,-8233
-2392,-8259
-2411,-8326
-2439,-8391
-2462,-8507
-2485,-8587
-2498,-8649
-2519,-8751
-2538,-8801
-2551,-8781
-2564,-8872
-2585,-8835
-2599,-8925
-2625,-8929
-2647,-8919
-2667,-8921
-2687,-8921
-2702,-8921
-2724,-8921
-2745,-8921
-2763,-8921
-2785,-8921
-2806,-8921
-2819,-8921
-2842,-8921
-2865,-8921
-2887,-8921
-2908,-8921
-2922,-8921
-2935,-8921
-2956,-8921
-2977,-8921
-3004,-8921
-3029,-8921
-3046,-8921
-3063,-8921
-3092,-8921
-3107,-8921
-3124,-8921
-3140,-8921
-3159,-8921
-3180,-8921
-3201,-8921
-3222,-8921
-3241,-8921
-3261,-8921
-3281,-8921
-3307,-8921
-3330,-8921
-3348,-8921
-3366,-8921
-3381,-8921
-3399,-8921
-3418,-8921
-3433,-8921
-3455,-8921
-3474,-8921
-3493,-8921
-3515,-8921
-3543,-8921
-3565,-8921
-3587,-8921
-3607,-8921
-3620,-8922
-3634,-8922
-3647,-8922
-3666,-8922
-3684,-8922
-3704,-8922
-3717,-8922
-3735,-8922
-3764,-8922
-3785,-8922
-3805,-8922
-3826,-8922
-3845,-8922
-3861,-8922
-3879,-8922
-3896,-8922
-3911,-8922
-3928,-8922
-3945,-8922
-3966,-8922
-3997,-8922
-4021,-8922
-4041,-8922
-4062,-8922
-4080,-8922
-4099,-8921
-4115,-8921
-4135,-8921
-4156,-8921
-4177,-8921
-4199,-8921
-4226,-8921
-4249,-8921
-4273,-8921
-4286,-8921
-4301,-8921
-4317,-8921
-4338,-8921
-4360,-8921
-4381,-8921
-4405,-8921
-4428,-8921
-4448,-8921
-4477,-8921
-4497,-8921
-4521,-8921
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test15.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test15.csv
deleted file mode 100644
index 7099494c8..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test15.csv
+++ /dev/null
@@ -1,181 +0,0 @@
-24/05/2020 14:48:15
-55,0
-74,0
-88,-1
-102,-5
-123,-18
-146,22
-168,-82
-191,-121
-215,-103
-238,-166
-260,-233
-281,-298
-299,-375
-322,-506
-353,-598
-375,-710
-392,-782
-417,-849
-439,-884
-461,-1026
-477,-1102
-500,-1169
-522,-1195
-545,-1340
-567,-1421
-596,-1449
-619,-1620
-637,-1636
-658,-1698
-678,-1782
-701,-1928
-726,-1951
-746,-2029
-768,-2175
-791,-2201
-813,-2277
-841,-2358
-862,-2468
-883,-2544
-906,-2682
-925,-2766
-939,-2837
-953,-2891
-968,-2943
-984,-2929
-999,-2991
-1019,-3044
-1055,-3205
-1088,-3337
-1112,-3382
-1137,-3482
-1156,-3559
-1181,-3705
-1202,-3784
-1219,-3805
-1235,-3867
-1258,-3929
-1277,-4008
-1291,-4085
-1323,-4135
-1343,-4255
-1359,-4325
-1372,-4386
-1394,-4500
-1415,-4523
-1435,-4597
-1455,-4733
-1475,-4810
-1492,-4887
-1512,-4948
-1531,-4957
-1560,-5027
-1575,-5204
-1591,-5251
-1610,-5310
-1623,-5380
-1638,-5435
-1654,-5422
-1672,-5481
-1694,-5550
-1713,-5696
-1735,-5765
-1762,-5788
-1782,-5951
-1802,-6024
-1821,-6099
-1844,-6108
-1866,-6188
-1886,-6335
-1906,-6410
-1928,-6484
-1944,-6500
-1958,-6563
-1972,-6677
-1996,-6725
-2019,-6756
-2041,-6905
-2061,-6986
-2081,-7062
-2102,-7075
-2126,-7155
-2149,-7303
-2171,-7384
-2193,-7411
-2212,-7554
-2242,-7623
-2261,-7670
-2285,-7825
-2305,-7834
-2327,-7903
-2344,-7989
-2364,-8053
-2383,-8188
-2402,-8258
-2425,-8331
-2447,-8361
-2482,-8435
-2504,-8558
-2529,-8624
-2551,-8694
-2571,-8745
-2593,-8850
-2615,-8822
-2662,-8898
-2684,-8890
-2719,-8890
-2741,-8890
-2761,-8890
-2780,-8891
-2802,-8891
-2822,-8891
-2841,-8891
-2864,-8891
-2878,-8891
-2895,-8891
-2909,-8891
-2935,-8891
-2960,-8891
-2977,-8891
-2993,-8891
-3008,-8891
-3027,-8891
-3044,-8891
-3064,-8891
-3085,-8891
-3104,-8891
-3122,-8891
-3148,-8891
-3172,-8891
-3193,-8891
-3208,-8891
-3222,-8891
-3240,-8891
-3264,-8891
-3282,-8891
-3304,-8891
-3326,-8891
-3343,-8891
-3360,-8891
-3384,-8891
-3407,-8891
-3433,-8891
-3450,-8891
-3470,-8891
-3484,-8891
-3499,-8891
-3513,-8891
-3527,-8891
-3547,-8891
-3569,-8891
-3593,-8891
-3616,-8890
-3629,-8890
-3652,-8890
-3670,-8890
-3691,-8890
-3706,-8890
-3726,-8890
-3744,-8890
-3762,-8890
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test16.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test16.csv
deleted file mode 100644
index a5743e552..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test16.csv
+++ /dev/null
@@ -1,231 +0,0 @@
-24/05/2020 14:48:26
-44,0
-61,0
-82,0
-102,-5
-123,-17
-136,25
-150,4
-180,-83
-201,-141
-218,-125
-236,-166
-258,-282
-279,-287
-301,-362
-323,-443
-342,-587
-359,-663
-381,-725
-399,-739
-421,-805
-444,-959
-474,-1007
-497,-1159
-513,-1244
-534,-1297
-548,-1371
-562,-1423
-581,-1477
-602,-1553
-622,-1625
-646,-1642
-664,-1719
-691,-1860
-711,-1891
-732,-1967
-752,-2042
-771,-2185
-790,-2261
-809,-2329
-829,-2394
-852,-2408
-886,-2563
-911,-2694
-931,-2718
-960,-2797
-982,-2969
-999,-2982
-1019,-3046
-1041,-3126
-1062,-3274
-1081,-3346
-1101,-3417
-1115,-3430
-1135,-3548
-1149,-3556
-1177,-3676
-1199,-3778
-1220,-3863
-1242,-3878
-1259,-3957
-1276,-4097
-1291,-4091
-1305,-4144
-1328,-4199
-1343,-4283
-1363,-4336
-1388,-4412
-1402,-4569
-1416,-4618
-1430,-4605
-1448,-4663
-1470,-4729
-1492,-4876
-1507,-4896
-1521,-5013
-1552,-5028
-1572,-5116
-1602,-5250
-1619,-5300
-1635,-5361
-1655,-5421
-1670,-5496
-1690,-5554
-1717,-5697
-1743,-5745
-1759,-5901
-1780,-5957
-1802,-6035
-1820,-6054
-1846,-6118
-1869,-6281
-1884,-6303
-1903,-6424
-1924,-6432
-1939,-6509
-1957,-6562
-1970,-6626
-1984,-6744
-2004,-6797
-2018,-6869
-2036,-6921
-2062,-6986
-2084,-7019
-2103,-7100
-2119,-7232
-2140,-7228
-2163,-7373
-2186,-7404
-2207,-7551
-2227,-7626
-2247,-7702
-2268,-7718
-2283,-7794
-2311,-7849
-2331,-8015
-2350,-8087
-2367,-8150
-2386,-8193
-2405,-8177
-2423,-8227
-2436,-8325
-2456,-8288
-2473,-8313
-2487,-8316
-2516,-8310
-2534,-8311
-2550,-8311
-2579,-8311
-2593,-8311
-2615,-8311
-2635,-8311
-2651,-8311
-2674,-8311
-2695,-8311
-2712,-8311
-2739,-8311
-2763,-8311
-2784,-8311
-2806,-8311
-2822,-8311
-2838,-8311
-2859,-8311
-2876,-8311
-2891,-8311
-2908,-8311
-2922,-8311
-2940,-8311
-2964,-8311
-2996,-8311
-3029,-8311
-3043,-8311
-3065,-8311
-3087,-8311
-3101,-8311
-3120,-8311
-3133,-8311
-3149,-8311
-3166,-8311
-3179,-8311
-3195,-8311
-3222,-8311
-3237,-8311
-3256,-8311
-3275,-8311
-3288,-8311
-3301,-8311
-3316,-8311
-3335,-8311
-3348,-8311
-3370,-8311
-3383,-8311
-3404,-8311
-3425,-8311
-3441,-8311
-3457,-8311
-3474,-8311
-3491,-8311
-3505,-8311
-3518,-8311
-3535,-8311
-3549,-8311
-3565,-8311
-3589,-8311
-3617,-8311
-3640,-8311
-3669,-8311
-3688,-8311
-3703,-8311
-3725,-8311
-3739,-8311
-3756,-8311
-3773,-8311
-3793,-8311
-3810,-8311
-3823,-8311
-3851,-8311
-3867,-8311
-3887,-8311
-3908,-8311
-3922,-8311
-3942,-8311
-3963,-8311
-3986,-8311
-4005,-8311
-4027,-8311
-4041,-8311
-4074,-8311
-4097,-8311
-4119,-8311
-4142,-8311
-4159,-8311
-4176,-8311
-4193,-8311
-4206,-8311
-4219,-8311
-4238,-8311
-4252,-8311
-4277,-8311
-4303,-8311
-4321,-8311
-4340,-8311
-4362,-8311
-4382,-8311
-4406,-8311
-4423,-8311
-4438,-8312
-4456,-8312
-4473,-8312
-4490,-8312
-4518,-8312
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test2.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test2.csv
deleted file mode 100644
index ba03e113f..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test2.csv
+++ /dev/null
@@ -1,271 +0,0 @@
-24/05/2020 14:16:54
-0,0
-0,8
-0,80
-0,-7
-0,-34
-0,-163
-0,-239
-0,-342
-0,-385
-0,-457
-0,-479
-0,-630
-0,-672
-0,-752
-0,-856
-0,-1017
-0,-989
-0,-1092
-0,-1160
-0,-1179
-0,-1350
-0,-1424
-0,-1433
-0,-1507
-0,-1580
-0,-1630
-0,-1732
-0,-1717
-0,-1850
-0,-1932
-0,-1995
-0,-2042
-0,-2125
-0,-2151
-0,-2230
-0,-2375
-0,-2439
-0,-2467
-0,-2618
-0,-2700
-0,-2711
-0,-2785
-0,-2906
-0,-2969
-0,-3038
-0,-3121
-0,-3265
-0,-3339
-0,-3412
-0,-3467
-0,-3481
-0,-3545
-0,-3719
-0,-3738
-0,-3802
-0,-3890
-0,-4028
-0,-4107
-0,-4120
-0,-4192
-0,-4277
-0,-4424
-0,-4489
-0,-4522
-0,-4672
-0,-4741
-0,-4795
-0,-4788
-0,-4926
-0,-4987
-0,-5060
-0,-5130
-0,-5204
-0,-5305
-0,-5386
-0,-5458
-0,-5520
-0,-5539
-0,-5617
-0,-5771
-0,-5790
-0,-5873
-0,-6011
-0,-6076
-0,-6119
-0,-6188
-0,-6259
-0,-6407
-0,-6476
-0,-6548
-0,-6611
-0,-6675
-0,-6739
-0,-6749
-0,-6925
-0,-6941
-0,-7023
-0,-7165
-0,-7227
-0,-7298
-0,-7372
-0,-7424
-0,-7498
-0,-7520
-0,-7583
-0,-7751
-0,-7815
-0,-7892
-0,-7902
-0,-7977
-0,-8029
-0,-8146
-0,-8199
-0,-8217
-0,-8340
-0,-8397
-0,-8436
-0,-8578
-0,-8650
-0,-8702
-0,-8776
-0,-8850
-0,-8872
-0,-8931
-0,-9002
-0,-9123
-0,-9194
-0,-9266
-0,-9411
-0,-9491
-0,-9498
-0,-9559
-0,-9719
-0,-9789
-0,-9858
-0,-9881
-0,-9963
-0,-10084
-0,-10233
-0,-10309
-0,-10373
-0,-10438
-0,-10500
-0,-10684
-0,-10769
-0,-10785
-0,-10897
-0,-11015
-0,-10998
-0,-11132
-0,-11206
-0,-11242
-0,-11399
-0,-11466
-0,-11531
-0,-11603
-0,-11608
-0,-11779
-0,-11860
-0,-11925
-0,-11943
-0,-12093
-0,-12163
-0,-12216
-0,-12213
-0,-12348
-0,-12430
-0,-12444
-0,-12511
-0,-12681
-0,-12702
-0,-12784
-0,-12854
-0,-12909
-0,-12980
-0,-13118
-0,-13180
-0,-13261
-0,-13322
-0,-13374
-0,-13411
-0,-13467
-0,-13543
-0,-13619
-0,-13756
-0,-13833
-0,-13848
-0,-13929
-0,-13985
-0,-14039
-0,-14162
-0,-14176
-0,-14351
-0,-14359
-0,-14473
-0,-14522
-0,-14590
-0,-14673
-0,-14741
-0,-14793
-0,-14844
-0,-14829
-0,-14888
-0,-15033
-0,-15076
-0,-15190
-0,-15202
-0,-15273
-0,-15422
-0,-15493
-0,-15572
-0,-15636
-0,-15649
-0,-15732
-0,-15888
-0,-15967
-0,-16038
-0,-16107
-0,-16258
-0,-16281
-0,-16397
-0,-16422
-0,-16501
-0,-16561
-0,-16619
-0,-16678
-0,-16829
-0,-16857
-0,-16933
-0,-16992
-0,-17106
-0,-17157
-0,-17224
-0,-17276
-0,-17349
-0,-17422
-0,-17477
-0,-17545
-0,-17659
-0,-17731
-0,-17802
-0,-17821
-0,-17904
-0,-18048
-0,-18124
-0,-18152
-0,-18230
-0,-18282
-0,-18354
-0,-18511
-0,-18532
-0,-18606
-0,-18752
-0,-18817
-0,-18805
-0,-18954
-0,-19003
-0,-19070
-0,-19096
-0,-19185
-0,-19347
-0,-19369
-0,-19444
-0,-19580
-0,-19566
-0,-19709
-0,-19780
-0,-19853
-0,-19904
-0,-19983
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test3.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test3.csv
deleted file mode 100644
index 91ae72e87..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test3.csv
+++ /dev/null
@@ -1,127 +0,0 @@
-24/05/2020 14:17:18
-0,0
-0,0
-0,51
-0,-62
-0,-97
-0,-19
-0,-15
-0,-64
-0,-15
-0,-8
-0,-16
-0,-4
-0,-13
-0,-5
-0,-17
-0,-5
-0,-16
-0,-5
-0,-16
-0,-4
-0,-17
-0,-7
-0,-15
-0,-14
-0,-7
-0,-14
-0,-6
-0,-15
-0,-10
-0,-11
-0,-11
-0,-8
-0,-11
-0,-7
-0,-13
-0,-17
-0,-16
-0,-5
-0,-17
-0,-4
-0,-16
-0,-5
-0,-17
-0,-5
-0,-17
-0,-5
-0,-18
-0,-5
-0,-17
-0,-9
-0,-13
-0,-5
-0,-16
-0,-8
-0,-13
-0,-15
-0,-10
-0,-15
-0,-5
-0,-17
-0,-5
-0,-17
-0,-6
-0,-15
-0,-6
-0,-17
-0,-6
-0,-17
-0,-5
-0,-17
-0,-9
-0,-14
-0,-11
-0,-5
-0,-18
-0,-5
-0,-16
-0,-5
-0,-11
-0,-14
-0,-5
-0,-17
-0,-5
-0,-17
-0,-5
-0,-17
-0,-13
-0,-8
-0,-12
-0,-7
-0,-18
-0,-6
-0,-17
-0,-7
-0,-14
-0,-10
-0,-12
-0,-10
-0,-9
-0,-15
-0,-5
-0,-13
-0,-10
-0,-15
-0,-8
-0,-17
-0,-6
-0,-13
-0,-11
-0,-12
-0,-11
-0,-13
-0,-10
-0,-13
-0,-5
-0,-18
-0,-5
-0,-14
-0,-11
-0,-17
-0,-5
-0,-17
-0,-6
-0,-13
-0,-13
-0,-6
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test_dryer_heater.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test_dryer_heater.cs
deleted file mode 100644
index 1977c13a6..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test_dryer_heater.cs
+++ /dev/null
@@ -1,174 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Printing;
-using Tango.Stubs;
-using Tango.PMR.Stubs;
-
-const string File_Name = @"P:\Scripts\Assemblies\Dryer\Dryer_Tset.CSV"; //3 hour
-
-public void OnExecute(StubManager stubManager)
-{
- int j;
-
- stubManager.WriteToFile(File_Name,DateTime.Now +" " );
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,3,true, 2200);
-
- for (int i=0;i<10;i++)
-
- {
- stubManager.WriteLine("--------------------loop number " + i +" ---------------------" );
-
- Blower_190();
- stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan1*/0x3E7, /*Head_Q=*/5);
- stubManager.WriteLine("Heating to 190 " );
- stubManager.AppendToFile(File_Name,"Heating to 190 " );
-
- stubManager.AppendToFile(File_Name,DateTime.Now +" " );
-
- j=0;
-
- while (j==0)
- {
- var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,6); //read air temp
-
- stubManager.WriteLine(response.TemperatureCMultBy100/100);
- stubManager.AppendToFile(File_Name," " + response.TemperatureCMultBy100/100);
- stubManager.Write("\n");
- if (response.TemperatureCMultBy100>(18900)) //18900
- j=1;
- Thread.Sleep(1000);
-
- }
-// stubManager.WriteLine("start motor " );
-
-// stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,3, true, 2200); //rotate Dryer Motor.
-// Thread.Sleep(1000*20);//
- stubManager.AppendToFile(File_Name,DateTime.Now +" " );
-
- Thread.Sleep(1000*60*2);//2 minits
-
-// stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,3,3); //stop motor
-// stubManager.WriteLine("stop motor " );
-
- Blower_0();
- stubManager.WriteLine("cooling down " );
- stubManager.AppendToFile(File_Name,"cooling down " );
- stubManager.AppendToFile(File_Name,DateTime.Now +" ");
-
- j=0;
- while (j==0)
- {
- var response1 = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,6); //read air temp
- stubManager.WriteLine(response1.TemperatureCMultBy100/100);
- stubManager.AppendToFile(File_Name, " " + (response1.TemperatureCMultBy100/100));
-stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan1*/0x3E7, /*Head_Q=*/5);
- stubManager.Write("\n");
- if (response1.TemperatureCMultBy100<6000)//
- j=1;
- Thread.Sleep(1000);
-
- }
- stubManager.AppendToFile(File_Name,DateTime.Now +" " );
-
-
- }
-
-}
-
-void Blower_190()
-
- {
-UploadProcessParametersRequest uploadProcessParametersRequest = new UploadProcessParametersRequest();
-
-ProcessParameters processParameters = new ProcessParameters();
-processParameters.DyeingSpeed = 0;
-processParameters.MinInkUptake = 0;
-processParameters.MaxInkUptake = 0;
-processParameters.FeederTension = 0;
-processParameters.PullerTension = 0;
-processParameters.WinderTension = 0;
-processParameters.MixerTemp = 0;
-processParameters.HeadZone1Temp = 0;
-processParameters.HeadZone2Temp = 0;
-processParameters.HeadZone3Temp = 0;
-processParameters.HeadZone4Temp = 0;
-processParameters.HeadZone5Temp = 0;
-processParameters.HeadZone6Temp = 0;
-processParameters.DryerAirFlow = 5;
-processParameters.DryerZone1Temp = 190;
-processParameters.DryerZone2Temp = 0;
-processParameters.DryerZone3Temp = 0;
-processParameters.DryerBufferLength = 0;
-processParameters.HeadAirFlow = 0;
-processParameters.TableIndex = 0;
-processParameters.HeadZone7Temp = 0;
-processParameters.HeadZone8Temp = 0;
-processParameters.HeadZone9Temp = 0;
-processParameters.HeadZone10Temp = 0;
-processParameters.HeadZone11Temp = 0;
-processParameters.HeadZone12Temp = 0;
-processParameters.RBlowerFlow = 0;
-processParameters.RBlowerTemp = 0;
-processParameters.LBlowerFlow = 0;
-processParameters.LBlowerTemp = 0;
-processParameters.PressureBuildUp = 0;
-
-uploadProcessParametersRequest.ProcessParameters = processParameters;
-
-
-
- var response = stubManager.Run<UploadProcessParametersResponse>(uploadProcessParametersRequest);
-}
-
-void Blower_0()
-
- {
-UploadProcessParametersRequest uploadProcessParametersRequest = new UploadProcessParametersRequest();
-
-ProcessParameters processParameters = new ProcessParameters();
-processParameters.DyeingSpeed = 0;
-processParameters.MinInkUptake = 0;
-processParameters.MaxInkUptake = 0;
-processParameters.FeederTension = 0;
-processParameters.PullerTension = 0;
-processParameters.WinderTension = 0;
-processParameters.MixerTemp = 0;
-processParameters.HeadZone1Temp = 0;
-processParameters.HeadZone2Temp = 0;
-processParameters.HeadZone3Temp = 0;
-processParameters.HeadZone4Temp = 0;
-processParameters.HeadZone5Temp = 0;
-processParameters.HeadZone6Temp = 0;
-processParameters.DryerAirFlow = 5;
-processParameters.DryerZone1Temp = 00;
-processParameters.DryerZone2Temp = 0;
-processParameters.DryerZone3Temp = 0;
-processParameters.DryerBufferLength = 0;
-processParameters.HeadAirFlow = 0;
-processParameters.TableIndex = 0;
-processParameters.HeadZone7Temp = 0;
-processParameters.HeadZone8Temp = 0;
-processParameters.HeadZone9Temp = 0;
-processParameters.HeadZone10Temp = 0;
-processParameters.HeadZone11Temp = 0;
-processParameters.HeadZone12Temp = 0;
-processParameters.RBlowerFlow = 0;
-processParameters.RBlowerTemp = 0;
-processParameters.LBlowerFlow = 0;
-processParameters.LBlowerTemp = 0;
-processParameters.PressureBuildUp = 0;
-
-uploadProcessParametersRequest.ProcessParameters = processParameters;
-
-
-
- var response = stubManager.Run<UploadProcessParametersResponse>(uploadProcessParametersRequest);
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test_dryer_heater1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test_dryer_heater1.cs
deleted file mode 100644
index 3d06c1e79..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test_dryer_heater1.cs
+++ /dev/null
@@ -1,186 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Printing;
-using Tango.Stubs;
-using Tango.PMR.Stubs;
-
-//const string File_Name = @"P:\Scripts\Assemblies\Dryer\Dryer_Tset.CSV"; //3 hour
-string File_Name;
-const string Path=@"P:\Operations\Log\Dryer\";
-public void OnExecute(StubManager stubManager)
-{
-
-
- var response8 = stubManager.ShowResponseWindow("Enter Serial number of Dryer ", "");
-
- File_Name =Path +"SN_" + response8 + "DryerHeaterTest_" + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".csv" ;
-
- //stubManager.WriteLine(response);
-// stubManager.Write("\n");
-// midtankno = int.Parse(response);
-
-
- int j;
-
- stubManager.WriteToFile(File_Name,DateTime.Now +" " );
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,3,true, 2200);
-
- for (int i=0;i<10;i++)
-
- {
- stubManager.WriteLine("--------------------loop number " + i +" ---------------------" );
-
- Blower_190();
- stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan1*/0x3E7, /*Head_Q=*/5);
- stubManager.WriteLine("Heating to 190 " );
- stubManager.AppendToFile(File_Name,"Heating to 190 " );
-
- stubManager.AppendToFile(File_Name,DateTime.Now +" " );
-
- j=0;
-
- while (j==0)
- {
- var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,6); //read air temp
-
- stubManager.WriteLine(response.TemperatureCMultBy100/100);
- stubManager.AppendToFile(File_Name," " + response.TemperatureCMultBy100/100);
- stubManager.Write("\n");
- if (response.TemperatureCMultBy100>(18900)) //18900
- j=1;
- Thread.Sleep(1000);
-
- }
-// stubManager.WriteLine("start motor " );
-
-// stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,3, true, 2200); //rotate Dryer Motor.
-// Thread.Sleep(1000*20);//
- stubManager.AppendToFile(File_Name,DateTime.Now +" " );
-
- Thread.Sleep(1000*60*2);//2 minits
-
-// stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,3,3); //stop motor
-// stubManager.WriteLine("stop motor " );
-
- Blower_0();
- stubManager.WriteLine("cooling down " );
- stubManager.AppendToFile(File_Name,"cooling down " );
- stubManager.AppendToFile(File_Name,DateTime.Now +" ");
-
- j=0;
- while (j==0)
- {
- var response1 = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,6); //read air temp
- stubManager.WriteLine(response1.TemperatureCMultBy100/100);
- stubManager.AppendToFile(File_Name, " " + (response1.TemperatureCMultBy100/100));
-stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan1*/0x3E7, /*Head_Q=*/5);
- stubManager.Write("\n");
- if (response1.TemperatureCMultBy100<6000)//
- j=1;
- Thread.Sleep(1000);
-
- }
- stubManager.AppendToFile(File_Name,DateTime.Now +" " );
-
-
- }
-
-}
-
-void Blower_190()
-
- {
-UploadProcessParametersRequest uploadProcessParametersRequest = new UploadProcessParametersRequest();
-
-ProcessParameters processParameters = new ProcessParameters();
-processParameters.DyeingSpeed = 0;
-processParameters.MinInkUptake = 0;
-processParameters.MaxInkUptake = 0;
-processParameters.FeederTension = 0;
-processParameters.PullerTension = 0;
-processParameters.WinderTension = 0;
-processParameters.MixerTemp = 0;
-processParameters.HeadZone1Temp = 0;
-processParameters.HeadZone2Temp = 0;
-processParameters.HeadZone3Temp = 0;
-processParameters.HeadZone4Temp = 0;
-processParameters.HeadZone5Temp = 0;
-processParameters.HeadZone6Temp = 0;
-processParameters.DryerAirFlow = 5;
-processParameters.DryerZone1Temp = 190;
-processParameters.DryerZone2Temp = 0;
-processParameters.DryerZone3Temp = 0;
-processParameters.DryerBufferLength = 0;
-processParameters.HeadAirFlow = 0;
-processParameters.TableIndex = 0;
-processParameters.HeadZone7Temp = 0;
-processParameters.HeadZone8Temp = 0;
-processParameters.HeadZone9Temp = 0;
-processParameters.HeadZone10Temp = 0;
-processParameters.HeadZone11Temp = 0;
-processParameters.HeadZone12Temp = 0;
-processParameters.RBlowerFlow = 0;
-processParameters.RBlowerTemp = 0;
-processParameters.LBlowerFlow = 0;
-processParameters.LBlowerTemp = 0;
-processParameters.PressureBuildUp = 0;
-
-uploadProcessParametersRequest.ProcessParameters = processParameters;
-
-
-
- var response = stubManager.Run<UploadProcessParametersResponse>(uploadProcessParametersRequest);
-}
-
-void Blower_0()
-
- {
-UploadProcessParametersRequest uploadProcessParametersRequest = new UploadProcessParametersRequest();
-
-ProcessParameters processParameters = new ProcessParameters();
-processParameters.DyeingSpeed = 0;
-processParameters.MinInkUptake = 0;
-processParameters.MaxInkUptake = 0;
-processParameters.FeederTension = 0;
-processParameters.PullerTension = 0;
-processParameters.WinderTension = 0;
-processParameters.MixerTemp = 0;
-processParameters.HeadZone1Temp = 0;
-processParameters.HeadZone2Temp = 0;
-processParameters.HeadZone3Temp = 0;
-processParameters.HeadZone4Temp = 0;
-processParameters.HeadZone5Temp = 0;
-processParameters.HeadZone6Temp = 0;
-processParameters.DryerAirFlow = 5;
-processParameters.DryerZone1Temp = 00;
-processParameters.DryerZone2Temp = 0;
-processParameters.DryerZone3Temp = 0;
-processParameters.DryerBufferLength = 0;
-processParameters.HeadAirFlow = 0;
-processParameters.TableIndex = 0;
-processParameters.HeadZone7Temp = 0;
-processParameters.HeadZone8Temp = 0;
-processParameters.HeadZone9Temp = 0;
-processParameters.HeadZone10Temp = 0;
-processParameters.HeadZone11Temp = 0;
-processParameters.HeadZone12Temp = 0;
-processParameters.RBlowerFlow = 0;
-processParameters.RBlowerTemp = 0;
-processParameters.LBlowerFlow = 0;
-processParameters.LBlowerTemp = 0;
-processParameters.PressureBuildUp = 0;
-
-uploadProcessParametersRequest.ProcessParameters = processParameters;
-
-
-
- var response = stubManager.Run<UploadProcessParametersResponse>(uploadProcessParametersRequest);
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_In_Test.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_In_Test.cs
deleted file mode 100644
index 92c50a57e..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_In_Test.cs
+++ /dev/null
@@ -1,34 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-int Delay_UP=200; //msec
-int Delay_stop=500;
-int Delay_limit=1000;
-
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf000); //mov ACTUATOR-IN down up to limit switch
- Thread.Sleep(1000);
- while (true)
- {
-
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf003); //mov ACTUATOR-IN down up
- Thread.Sleep(Delay_UP);
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf008); //stop ACTUATOR-IN
- Thread.Sleep(Delay_stop);
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf000); //mov ACTUATOR-IN down up to limit switch
- Thread.Sleep(Delay_limit);
-
- }
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_In_new set point.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_In_new set point.cs
deleted file mode 100644
index dc5d5af07..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_In_new set point.cs
+++ /dev/null
@@ -1,34 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-int Delay_UP=200; //msec
-int Delay_stop=500;
-int Delay_limit=1000;
-
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf000); //mov ACTUATOR-IN down up to limit switch
- Thread.Sleep(2000);
-// while (true)
-// {
-
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf003); //mov ACTUATOR-IN up
- Thread.Sleep(Delay_UP);
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf008); //stop ACTUATOR-IN
- Thread.Sleep(Delay_stop);
- // stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf000); //mov ACTUATOR-IN down up to limit switch
-// Thread.Sleep(Delay_limit);
-
- // }
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_test.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_test.cs
deleted file mode 100644
index 6d71a9ac3..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_test.cs
+++ /dev/null
@@ -1,32 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
- int sleep_up=4000;//2 second
- int sleep_dn=1000;//2 second
- while (true)
- {
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf000); //mov ACTUATOR-IN down
- Thread.Sleep(sleep_dn);
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf001); //mov ACTUATOR-IN up
- Thread.Sleep(sleep_up);
-
- }
- // stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf100); //mov ACTUATOR-OUTdown
- // stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf101); //mov ACTUATOR-OUT up
-
-
-
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/DyeHeadJig.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/DyeHeadJig.cs
deleted file mode 100644
index 2baedf7c2..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/DyeHeadJig.cs
+++ /dev/null
@@ -1,548 +0,0 @@
-using System;
-using System.Text;
-using System.IO;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-
-include "..\..\Defines\Tango_Defines_Basic.cs"
-include "Tango_Defines_SSR.cs"
-include "Tango_Defines_LimitSwitch.cs"
-
-
-//--------------------------------------------------------------------------------
- const Int32 I2C_ID = 2;
-
-//--------------------------------------------------------------------------------
-//--------------------------------------------------------------------------------
-//string path1=@"P:\Scripts\Assemblies\Dye head\DyeHeadLog\";
-string path1="P:\\Scripts\\Assemblies\\Dye head\\DyeHeadLog\\";
-string path2=@"C:\DyeHeadLog";
-
-string File_Name1 ;
-string Status;
-//---------------------------
-
-float [] DyeHeadTemp = new float[6] ;
-
-string [,] Units_status = new string[16,2] {
- {"Pt100_Zone_1","Not Test"},
- {"Pt100_Zone_2","Not Test"},
- {"Pt100_Zone_3","Not Test"},
- {"Pt100_Zone_4","Not Test"},
- {"Pt100_Zone_5","Not Test"},
- {"Pt100_Zone_6","Not Test"},
- {"Heater_Zone_1","Not Test"},
- {"Heater_Zone_2","Not Test"},
- {"Heater_Zone_3","Not Test"},
- {"Heater_Zone_4","Not Test"},
- {"Heater_Zone_5","Not Test"},
- {"Heater_Zone_6","Not Test"},
- {"Magnet","Not Test"},
- {"LS_DH_LID_Open","Not Test"},
- {"LS_DH_LID_Close","Not Test"},
- {"DH_LID_Motor","Not Test"},
- };
-
-
-
-//-----------------------------------------------------
-string DyeHead_Sn;
-//--------------------------------------------------------------------------------
-
-public void OnExecute(StubManager stubManager)
-{
-string path="";
- Form form1 = new Form();
-
-// Set the caption bar text of the form.
-
- form1.Text = "DyeHead Test";
- form1.FormBorderStyle = FormBorderStyle.FixedDialog;
- form1.MaximizeBox = false;
- form1.MinimizeBox = false;
- form1.StartPosition = FormStartPosition.CenterScreen;
- form1.AutoSize = true;
- form1.AutoSizeMode = AutoSizeMode.GrowAndShrink;
-// Create buttons to Run.
- Button button1 = new Button ()
- {
- Width = 100,
- Height = 100,
- };
- button1.Text = "Run";
- button1.Location = new Point (40, 100);
- form1.Controls.Add(button1);
-//-----DyeHead Serial Number -----------
-
- Label Label1 = new Label ()
- {
- Width = 150,
- Height = 20,
- Text =" DyeHead S/N"
- };
- Label1.Location = new Point (30, 10);
- form1.Controls.Add(Label1);
- TextBox TextBox1 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text =""
- };
- TextBox1.Location = new Point (40, 40);
- form1.Controls.Add(TextBox1);
- //----------LOCATION----------
-
- Label Label3 = new Label ()
- {
- Width = 150,
- Height = 20,
- Text ="LOCATION"
- };
-Label3.Location = new Point (350, 10);
- form1.Controls.Add(Label3);
-
-
-
-TextBox TextBox3 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text =""
- };
-TextBox3.Location = new Point (360, 40);
- form1.Controls.Add(TextBox3);
-
-//--------------------------------------------------------------------------------
-
- stubManager.Write("Counter is 2 \n");
-
- button1.Click += (_,__) =>
-
- {
-if (!Directory.Exists(path1))
- {
- path=path2;
- if (!Directory.Exists(path2))
- Directory.CreateDirectory(path2);
- }
-else
-path=path1;
-
-
-File_Name1=path + TextBox1.Text +"_DyeHead_" + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".log" ;
-
-
-stubManager.Write(File_Name1 +"\n");
-stubManager.WriteToFile(File_Name1,DateTime.Now +" " );
-stubManager.Write(DateTime.Now +"\n" );
-
-stubManager.AppendToFile(File_Name1,"DyeHead Test Report" );
-stubManager.Write("DyeHead Test Report\n" );
-
-stubManager.AppendToFile(File_Name1,"RTFU S/N: \t" + TextBox1.Text );
-stubManager.Write("DyeHead S/N:" + TextBox1.Text +"\n" );
-
-
-stubManager.AppendToFile(File_Name1,"Location:\t" + TextBox3.Text );
-stubManager.Write("Location:" + TextBox3.Text +"\n" );
-
-
-
-Label Label5 = new Label ()
- {
- Width = 120,
- Height =100,
- Text = ""
- };
-Label5.Location = new Point (300, 100);
-Label5.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
-
-Label5.Text="Pros";
-Label5.Font = new Font("Arial", 24,FontStyle.Bold);
-form1.Controls.Add(Label5);
-
-
-//------------------------------- start test -----------
-
- DialogResult result = MessageBox.Show("Make shure, Dyehead is not hot", "Warning",MessageBoxButtons.OKCancel);
- if(result == DialogResult.Cancel)
- {
- stubManager.AppendToFile(File_Name1,"Dyehead is too hot \tFail");
- stubManager.Write("Dyehead is too hot \tFail\n");
- return ;
- }
- Test_Magnet_Motor_LS_DyeHead();
- Test_heaters_pt100 ();
- Status=write_to_file();
-
- Label5.Text=Status;
- TextBox1.Text="";
-};
-
- form1.ShowDialog();
-
- stubManager.Write("Counter is \n");
-
-
- return;
- }
-
-//--------------------------------------------
- int Test_Magnet_Motor_LS_DyeHead()
-{
- Int32 Bit = 1;
-
- stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,23, false,0x800000+0);
- stubManager.Write("\nTesting SSR no. 13 of magnet or motor driver");
-
- DialogResult result = MessageBox.Show("Make shure, Magnet is open", "Warning",MessageBoxButtons.OKCancel);
- if(result == DialogResult.Cancel)
- {
- Units_status[12,1]="Fail";
- stubManager.Write("Magnet Not Open\n");
- return 0;
- }
- Units_status[12,1]="Pass";
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,2, true, 250);
- stubManager.Write("\n*** Open Lid Head ");
-
- Bit = 1;
- int i=0;
- while ((Bit != 0x0)&& (i<200)) //wait until Limit Switch or timeout 200*50msec=10sec
- {
- Bit = GetBit(FPGA1, F1_LS_01_Direct,7);
- Thread.Sleep(50);
- i++;
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,23,3); //stop motor
-
- DialogResult result1 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.OKCancel);
- if(result1 == DialogResult.Cancel)
- {
- Units_status[15,1]="Fail";
- Units_status[13,1]="Fail";
- stubManager.Write("LS_DH_LID_Open Not calibrate\n");
- return 0;
- }
- Units_status[13,1]="Pass";
- stubManager.Write("\n*** Close Lid Head ");
- Bit = 1;
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,2, false, 250);
- i=0;
- while ((Bit != 0x0)&& (i<200)) //wait until Limit Switch or timeout 200*50msec=10sec
- {
- Bit = GetBit(FPGA1, F1_LS_01_Direct,8);
- Thread.Sleep(50);
- i++;
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,23,3); //stop motor
-
- DialogResult result2 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.OKCancel);
- if(result2 == DialogResult.Cancel)
- {
- Units_status[14,1]="Fail";
- Units_status[15,1]="Fail";
- stubManager.Write("LS_DH_LID_Close Not calibrate\n");
- return 0;
- }
- Units_status[14,1]="Pass";
- stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,23, false,0x800000+2);
- DialogResult result3 = MessageBox.Show("Make shure, Magnet is open", "Warning",MessageBoxButtons.OKCancel);
- if(result3 == DialogResult.Cancel)
- {
- Units_status[12,1]="Fail";
- stubManager.Write("Magnet Not Open\n");
- return 0;
- }
- Units_status[12,1]="Pass";
- Units_status[15,1]="Pass";
-
- return 0;
-}
-
- //------------------------------------
-string write_to_file()
-{
- stubManager.Write("write_to_file\n");
-
-string Stemp="Pass";
- for (int i=0;i<16;i++)
- {
- stubManager.AppendToFile(File_Name1,Units_status[i,0]+"\t" + Units_status[i,1] );
- stubManager.Write(Units_status[i,0]+"\t" + Units_status[i,1]+"\n" );
-
- if ((Units_status[i,1]=="Fail")||(Units_status[i,1]=="Not Test"))
- Stemp="Fail";
- }
- return Stemp;
-}
-//------------------------------------
-int Test_heaters_pt100()
-{
-// uint utemp=0;
- uint temp=0;
- float ftemp=0;
- float ftemp1=0;
-
- stubManager.Write("\nTemp Befor heating \n");
- if (test_pt100()!=0)
- return 0;
-
-//------------Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 8
- SetBit (FPGA2, F2_CTRL, 3, 1);
- stubManager.Write("Testing SSR no. 8\tHeadZone-1\t");
- Thread.Sleep(10000);
- adc_configuration(0x40,0x10); //a2d_address 0x40 channel 3
- adc_set_for_read_ch(0x40);
- temp=adc_read_ch(0x40);
- SetBit (FPGA2, F2_CTRL, 3, 0);
- ftemp=Read_pt100(0);
- stubManager.Write("After heating " + ftemp +"c\tCurrent is "+ temp + "\n");
- ftemp = ftemp - DyeHeadTemp[0];
- if ((temp>0x860)|| (temp<0x7e0)||(ftemp<5)||(ftemp>20))
- Units_status[6,1]="Fail";
- else
- Units_status[6,1]="Pass";
-
- //Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 7
- ftemp=Read_pt100(1);
- ftemp1 = ftemp - DyeHeadTemp[1];
- if ( ftemp1>4)
- Units_status[7,1]="Fail";
- else
- {
- SetBit (FPGA2, F2_CTRL, 4, 1);
- stubManager.Write("Testing SSR no. 7\tHeadZone-2\t");
- Thread.Sleep(10000);
- adc_configuration(0x40,0x08); //a2d_address 0x40 channel 4
- adc_set_for_read_ch(0x40);
- temp=adc_read_ch(0x40);
- SetBit (FPGA2, F2_CTRL, 4, 0);
- ftemp=Read_pt100(1);
- stubManager.Write("After heating " + ftemp +"c\tCurrent is "+temp + "\n");
- ftemp = ftemp - DyeHeadTemp[1];
- if ((temp>0x660)|| (temp<0x600)||(ftemp<5)||(ftemp>20))
- Units_status[7,1]="Fail";
- else
- Units_status[7,1]="Pass";
- }
-
- //Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 6
-
- ftemp=Read_pt100(2);
- ftemp1 = ftemp - DyeHeadTemp[2];
- if ( ftemp1>4)
- Units_status[7,1]="Fail";
- else
- {
- SetBit (FPGA2, F2_CTRL, 5, 1);
- stubManager.Write("Testing SSR no. 6\tHeadZone-3\t");
- Thread.Sleep(10000);
- adc_configuration(0x40,0x04); //a2d_address 0x40 channel 5
- adc_set_for_read_ch(0x40);
- temp=adc_read_ch(0x40);
- SetBit (FPGA2, F2_CTRL, 5, 0);
- ftemp=Read_pt100(2);
- stubManager.Write("After heating " + ftemp +"c\tCurrent is "+temp +"\n");
- ftemp = ftemp - DyeHeadTemp[2];
- if ((temp>0x660)|| (temp<0x600)||(ftemp<5)||(ftemp>20))
- Units_status[8,1]="Fail";
- else
- Units_status[8,1]="Pass";
- }
-
- //Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 5
- ftemp=Read_pt100(3);
- ftemp1 = ftemp - DyeHeadTemp[3];
- if ( ftemp1>4)
- Units_status[9,1]="Fail";
- else
- {
- SetBit (FPGA2, F2_CTRL, 6, 1);
- stubManager.Write("Testing SSR no. 5\tHeadZone-4\t");
- Thread.Sleep(10000);
- adc_configuration(0x44,0x80); //a2d_address 0x44 channel 0
- adc_set_for_read_ch(0x44);
- temp=adc_read_ch(0x44);
- SetBit (FPGA2, F2_CTRL, 6, 0);
- ftemp=Read_pt100(3);
- stubManager.Write("After heating " + ftemp +"c\tCurrent is "+temp + "\n");
- ftemp = ftemp - DyeHeadTemp[3];
- if ((temp>0x1100)|| (temp<0xf90)||(ftemp<5)||(ftemp>20))
- Units_status[9,1]="Fail";
- else
- Units_status[9,1]="Pass";
- }
-
- //Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 10
- ftemp=Read_pt100(4);
- ftemp1 = ftemp - DyeHeadTemp[4];
- if ( ftemp1>4)
- Units_status[10,1]="Fail";
- else
- {
- SetBit (FPGA1, F1_gpo_01, 2, 1);
- stubManager.Write("Testing SSR no. 10\tHeadZone-5\t");
- Thread.Sleep(10000);
- adc_configuration(0x44,0x40); //a2d_address 0x44 channel 1
- adc_set_for_read_ch(0x44);
- temp=adc_read_ch(0x44);
- SetBit (FPGA1, F1_gpo_01, 2, 0);
- ftemp=Read_pt100(4);
- stubManager.Write("After heating " + ftemp +"c\tCurrent is "+temp + "\n");
- ftemp = ftemp - DyeHeadTemp[4];
- if ((temp>0xa80)|| (temp<0xa20)||(ftemp<5)||(ftemp>20))
- Units_status[10,1]="Fail";
- else
- Units_status[10,1]="Pass";
- }
-
- //Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 11
- ftemp=Read_pt100(5);
- ftemp1 = ftemp - DyeHeadTemp[5];
- if ( ftemp1>4)
- Units_status[11,1]="Fail";
- else
- {
- SetBit (FPGA3, F3_GPO_01_bus, 4, 1);
- stubManager.Write("Testing SSR no. 11\tHeadZone-6\t");
- Thread.Sleep(10000);
- adc_configuration(0x44,0x40); //a2d_address 0x44 channel 1
- adc_set_for_read_ch(0x44);
- temp=adc_read_ch(0x44);
- SetBit (FPGA3, F3_GPO_01_bus, 4, 0);
- ftemp=Read_pt100(5);
- stubManager.Write("After heating " + ftemp +"c\tCurrent is "+temp + "\n");
- ftemp = ftemp - DyeHeadTemp[5];
- if ((temp>0x660)|| (temp<0x600)||(ftemp<5)||(ftemp>20))
- Units_status[11,1]="Fail";
- else
- Units_status[11,1]="Pass";
- }
- return 0;
-}
-//------------------------------------------------
- int test_pt100()
- {
- float ftemp=0;
- int temp=0;
- int j=0;
- for (int i = 0; i < 6; i++)
- {
- DyeHeadTemp[i]=Read_pt100(i);
- ftemp=DyeHeadTemp[i];
- if ((ftemp>100)|| (ftemp<10))
- {
- Units_status[i,1]="Fail";
- }
- else
- {
- Units_status[i,1]="Pass";
- }
- stubManager.Write("Zone-"+(i+1)+ "\t" + ftemp.ToString("F2"));
- stubManager.Write("°C\n");
-
- }
- return 0;
- }
-//------------------------------------------------
-float Read_pt100(int i)
-{
- int j= i+1;
- if (i==5)
- j=11;
- var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,j); //
- float ftemp = (float)response.TemperatureCMultBy100;
- ftemp = ftemp / 100;
- return (ftemp);
-}
-//---------------------------
-int adc_configuration(uint I2C_Slave_Add,uint channel )
- {
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x00);//Byte 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(channel);//Byte 1 to Write, must be 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02 or 0x01 for different channels
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x80);//Byte 2 to Write
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
- }
-//-----------------------------------
-int adc_set_for_read_temp(uint I2C_Slave_Add)
- {
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x02);//Byte 0 to write
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
- }
-//-----------------------------------
-int adc_read_temp(uint I2C_Slave_Add)
- {
-
- StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();
- stubI2CReadBytesRequest.I2CId = I2C_ID;
- stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add;
- stubI2CReadBytesRequest.NumberOfBytesToRead = 2; // Number of bytes to read
-
- var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);
-
- for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++)
- {
- stubManager.WriteLineHex(response1.ReadBytes[i],2);
- }
-
-
- return 1;
- }
-//-----------------------------------
-int adc_set_for_read_ch(uint I2C_Slave_Add)
- {
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x01);//Byte 0 to write
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
- }
-//-----------------------------------
-uint adc_read_ch(uint I2C_Slave_Add)
- {
- StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();
- stubI2CReadBytesRequest.I2CId = I2C_ID;
- stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add;
- stubI2CReadBytesRequest.NumberOfBytesToRead = 2; // Number of bytes to read
-
- var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);
- uint temph=0;
- uint templ=0;
- uint temp=0;
- temph=response1.ReadBytes[0];
- templ=response1.ReadBytes[1];
- temp = (temph << 8) | templ;
- temp=temp & 0x0fff;
- return temp;
- }
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/DyeHeadJig1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/DyeHeadJig1.cs
deleted file mode 100644
index b3513ac55..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/DyeHeadJig1.cs
+++ /dev/null
@@ -1,575 +0,0 @@
-using System;
-using System.Text;
-using System.IO;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-
-include "..\..\Defines\Tango_Defines_Basic.cs"
-include "Tango_Defines_SSR.cs"
-include "Tango_Defines_LimitSwitch.cs"
-
-
-//--------------------------------------------------------------------------------
- const Int32 I2C_ID = 2;
-
-//--------------------------------------------------------------------------------
-//--------------------------------------------------------------------------------
-//string path1=@"P:\Scripts\Assemblies\Dye head\DyeHeadLog\";
-string path1="P:\\Scripts\\Assemblies\\Dye head\\DyeHeadLog\\";
-string path2="C:\\DyeHeadLog\\";
-
-string File_Name1 ;
-string Status;
-//---------------------------
-
-float [] DyeHeadTemp = new float[6] ;
-
-string [,] Units_status = new string[16,2] {
- {"Pt100_Zone_1","Not Test"},
- {"Pt100_Zone_2","Not Test"},
- {"Pt100_Zone_3","Not Test"},
- {"Pt100_Zone_4","Not Test"},
- {"Pt100_Zone_5","Not Test"},
- {"Pt100_Zone_6","Not Test"},
- {"Heater_Zone_1","Not Test"},
- {"Heater_Zone_2","Not Test"},
- {"Heater_Zone_3","Not Test"},
- {"Heater_Zone_4","Not Test"},
- {"Heater_Zone_5","Not Test"},
- {"Heater_Zone_6","Not Test"},
- {"Magnet ","Not Test"},
- {"LS_DH_LID_Open","Not Test"},
- {"LS_DH_LID_Close","Not Test"},
- {"DH_LID_Motor","Not Test"},
- };
-
-
-
-//-----------------------------------------------------
-string DyeHead_Sn;
-//--------------------------------------------------------------------------------
-
-public void OnExecute(StubManager stubManager)
-{
-string path="";
- Form form1 = new Form();
-
-// Set the caption bar text of the form.
-
- form1.Text = "DyeHead Test";
- form1.FormBorderStyle = FormBorderStyle.FixedDialog;
- form1.MaximizeBox = false;
- form1.MinimizeBox = false;
- form1.StartPosition = FormStartPosition.CenterScreen;
- form1.AutoSize = true;
- form1.AutoSizeMode = AutoSizeMode.GrowAndShrink;
-// Create buttons to Run.
- Button button1 = new Button ()
- {
- Width = 100,
- Height = 100,
- };
- button1.Text = "Run";
- button1.Location = new Point (40, 100);
- form1.Controls.Add(button1);
-//-----DyeHead Serial Number -----------
-
- Label Label1 = new Label ()
- {
- Width = 150,
- Height = 20,
- Text =" DyeHead S/N"
- };
- Label1.Location = new Point (30, 10);
- form1.Controls.Add(Label1);
- TextBox TextBox1 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text =""
- };
- TextBox1.Location = new Point (40, 40);
- form1.Controls.Add(TextBox1);
- //----------LOCATION----------
-
- Label Label3 = new Label ()
- {
- Width = 150,
- Height = 20,
- Text ="LOCATION"
- };
-Label3.Location = new Point (350, 10);
- form1.Controls.Add(Label3);
-
-
-
-TextBox TextBox3 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text =""
- };
-TextBox3.Location = new Point (360, 40);
- form1.Controls.Add(TextBox3);
-
-//--------------------------------------------------------------------------------
-
- stubManager.Write("Counter is 2 \n");
-
- button1.Click += (_,__) =>
-
- {
-if (!Directory.Exists(path1))
- {
- path=path2;
- if (!Directory.Exists(path2))
- Directory.CreateDirectory(path2);
- }
-else
-path=path1;
-
-
-File_Name1=path + TextBox1.Text +"_DyeHead_" + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".log" ;
-
-
-stubManager.Write(File_Name1 +"\n");
-stubManager.WriteToFile(File_Name1,DateTime.Now +" " );
-stubManager.Write(DateTime.Now +"\n" );
-
-stubManager.AppendToFile(File_Name1,"DyeHead Test Report" );
-stubManager.Write("DyeHead Test Report\n" );
-
-stubManager.AppendToFile(File_Name1,"DyeHead S/N: \t" + TextBox1.Text );
-stubManager.Write("DyeHead S/N:" + TextBox1.Text +"\n" );
-
-
-stubManager.AppendToFile(File_Name1,"Location:\t" + TextBox3.Text );
-stubManager.Write("Location:" + TextBox3.Text +"\n" );
-
-
-
-Label Label5 = new Label ()
- {
- Width = 120,
- Height =100,
- Text = ""
- };
-Label5.Location = new Point (300, 100);
-Label5.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
-
-Label5.Text="Pros";
-Label5.Font = new Font("Arial", 24,FontStyle.Bold);
-form1.Controls.Add(Label5);
-
-
-//------------------------------- start test -----------
-
- DialogResult result = MessageBox.Show("Make shure, Dyehead is not hot", "Warning",MessageBoxButtons.OKCancel);
- if(result == DialogResult.Cancel)
- {
- stubManager.AppendToFile(File_Name1,"Dyehead is too hot \tFail");
- stubManager.Write("Dyehead is too hot \tFail\n");
- return ;
- }
- Test_Magnet_Motor_LS_DyeHead();
- Test_heaters_pt100 ();
- Status=write_to_file();
-
- Label5.Text=Status;
- TextBox1.Text="";
-};
-
- form1.ShowDialog();
-
-// stubManager.Write("Counter is \n");
-
-
- return;
- }
-
-//--------------------------------------------
- int Test_Magnet_Motor_LS_DyeHead()
-{
- Int32 Bit = 1;
-
- stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,23, false,0x800000+0);
- stubManager.Write("\nTesting SSR no. 13 of magnet or motor driver");
-
- DialogResult result = MessageBox.Show("Make shure, Magnet is open", "Warning",MessageBoxButtons.OKCancel);
- if(result == DialogResult.Cancel)
- {
- Units_status[12,1]="Fail";
- stubManager.Write("Magnet Not Open\n");
- return 0;
- }
- Units_status[12,1]="Pass";
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,2, true, 250);
- stubManager.Write("\n*** Open Lid Head ");
-
- Bit = 1;
- int i=0;
- while ((Bit != 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec
- {
- Bit = GetBit(FPGA1, F1_LS_01_Direct,7);
- Thread.Sleep(50);
- i++;
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,2,3); //stop motor
-
- DialogResult result1 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.OKCancel);
- if(result1 == DialogResult.Cancel)
- {
- Units_status[15,1]="Fail";
- Units_status[13,1]="Fail";
- stubManager.Write("LS_DH_LID_Open Not calibrate\n");
- return 0;
- }
- Units_status[13,1]="Pass";
- stubManager.Write("\n*** Close Lid Head ");
- Bit = 1;
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,2, false, 250);
- i=0;
- while ((Bit != 0x0) && (i<200)) //wait until Limit Switch or timeout 200*50msec=10sec
- {
- Bit = GetBit(FPGA1, F1_LS_01_Direct,8);
- Thread.Sleep(50);
- i++;
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,2,3); //stop motor
-
- DialogResult result2 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.OKCancel);
- if(result2 == DialogResult.Cancel)
- {
- Units_status[14,1]="Fail";
- Units_status[15,1]="Fail";
- stubManager.Write("LS_DH_LID_Close Not calibrate\n");
- return 0;
- }
- Units_status[14,1]="Pass";
- stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,23, false,0x800000+2);
- DialogResult result3 = MessageBox.Show("Make shure, Magnet is close", "Warning",MessageBoxButtons.OKCancel);
- if(result3 == DialogResult.Cancel)
- {
- Units_status[12,1]="Fail";
- stubManager.Write("Magnet Not close\n");
- return 0;
- }
- Units_status[12,1]="Pass";
- Units_status[15,1]="Pass";
-
- return 0;
-}
-
- //------------------------------------
-string write_to_file()
-{
- stubManager.Write("write_to_file\n");
-
-string Stemp="Pass";
- for (int i=0;i<16;i++)
- {
- stubManager.AppendToFile(File_Name1,Units_status[i,0]+"\t" + Units_status[i,1] );
- stubManager.Write(Units_status[i,0]+"\t" + Units_status[i,1]+"\n" );
-
- if ((Units_status[i,1]=="Fail")||(Units_status[i,1]=="Not Test"))
- Stemp="Fail";
- }
- if (Stemp=="Fail")
- {
- stubManager.AppendToFile(File_Name1,"-------------Dye Head Fail ------------ )");
- stubManager.Write("-------------Dye Head Fail ------------ ");
- }
- else
- {
- stubManager.AppendToFile(File_Name1,"-------------Dye Head Pass ------------ )");
- stubManager.Write("-------------Dye Head Pass ------------ ");
- }
-
- return Stemp;
-}
-//------------------------------------
-int Test_heaters_pt100()
-{
-
-// uint utemp=0;
- uint temp=0;
- float ftemp=0;
- float ftemp1=0;
- float current=0;
-
- stubManager.Write("\nTemp Befor heating \n");
- if (test_pt100()!=0)
- return 0;
-
-//------------Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 8
- SetBit (FPGA2, F2_CTRL, 3, 1);
- stubManager.Write("Testing SSR no. 8\tHeadZone-1\t");
- Thread.Sleep(10000);
- adc_configuration(0x40,0x10); //a2d_address 0x40 channel 3
- adc_set_for_read_ch(0x40);
- temp=adc_read_ch(0x40);
- current= (float)(temp);
- current=( float) (0.001221) * current;
- SetBit (FPGA2, F2_CTRL, 3, 0);
- ftemp=Read_pt100(0);
- stubManager.Write("After heating " + ftemp +"c\tCurrent is "+ current + "\n");
- ftemp = ftemp - DyeHeadTemp[0];
-
- if ((current>1.5)|| (current<0.9)||(ftemp<5)||(ftemp>25))
- Units_status[6,1]="Fail";
- else
- Units_status[6,1]="Pass";
-
- //Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 7
- ftemp=Read_pt100(1);
- ftemp1 = ftemp - DyeHeadTemp[1];
- if ( ftemp1>4)
- Units_status[7,1]="Fail";
- else
- {
- SetBit (FPGA2, F2_CTRL, 4, 1);
- stubManager.Write("Testing SSR no. 7\tHeadZone-2\t");
- Thread.Sleep(10000);
- adc_configuration(0x40,0x08); //a2d_address 0x40 channel 4
- adc_set_for_read_ch(0x40);
- temp=adc_read_ch(0x40);
- current= (float)(temp);
- current=( float) (0.001221) * current;
- SetBit (FPGA2, F2_CTRL, 4, 0);
- ftemp=Read_pt100(1);
- stubManager.Write("After heating " + ftemp +"c\tCurrent is "+ current + "\n");
- ftemp = ftemp - DyeHeadTemp[1];
- if ((current<1.6)|| (current>2.1)||(ftemp<5)||(ftemp>25))
- Units_status[7,1]="Fail";
- else
- Units_status[7,1]="Pass";
- }
-
- //Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 6
-
- ftemp=Read_pt100(2);
- ftemp1 = ftemp - DyeHeadTemp[2];
- if ( ftemp1>4)
- Units_status[8,1]="Fail";
- else
- {
- SetBit (FPGA2, F2_CTRL, 5, 1);
- stubManager.Write("Testing SSR no. 6\tHeadZone-3\t");
- Thread.Sleep(10000);
- adc_configuration(0x40,0x04); //a2d_address 0x40 channel 5
- adc_set_for_read_ch(0x40);
- temp=adc_read_ch(0x40);
- current= (float)(temp);
- current=( float) (0.001221) * current;
- SetBit (FPGA2, F2_CTRL, 5, 0);
- ftemp=Read_pt100(2);
- stubManager.Write("After heating " + ftemp +"c\tCurrent is "+current +"\n");
- ftemp = ftemp - DyeHeadTemp[2];
- if ((current<1.6)|| (current>2.1)||(ftemp<5)||(ftemp>25))
- Units_status[8,1]="Fail";
- else
- Units_status[8,1]="Pass";
- }
-
- //Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 5
- ftemp=Read_pt100(3);
- ftemp1 = ftemp - DyeHeadTemp[3];
- if ( ftemp1>4)
- Units_status[9,1]="Fail";
- else
- {
- SetBit (FPGA2, F2_CTRL, 6, 1);
- stubManager.Write("Testing SSR no. 5\tHeadZone-4\t");
- Thread.Sleep(10000);
- adc_configuration(0x44,0x80); //a2d_address 0x44 channel 0
- adc_set_for_read_ch(0x44);
- temp=adc_read_ch(0x44);
- current= (float)(temp);
- current=( float) (0.001221) * current;
-
- SetBit (FPGA2, F2_CTRL, 6, 0);
- ftemp=Read_pt100(3);
- stubManager.Write("After heating " + ftemp +"c\tCurrent is "+current + "\n");
- ftemp = ftemp - DyeHeadTemp[3];
- if ((current<2.9)|| (current>3.4)||(ftemp<5)||(ftemp>25))
- Units_status[9,1]="Fail";
- else
- Units_status[9,1]="Pass";
- }
-
- //Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 10
- ftemp=Read_pt100(4);
- ftemp1 = ftemp - DyeHeadTemp[4];
- if ( ftemp1>4)
- Units_status[10,1]="Fail";
- else
- {
- SetBit (FPGA1, F1_gpo_01, 2, 1);
- stubManager.Write("Testing SSR no. 10\tHeadZone-5\t");
- Thread.Sleep(10000);
- adc_configuration(0x44,0x40); //a2d_address 0x44 channel 1
- adc_set_for_read_ch(0x44);
- temp=adc_read_ch(0x44);
- current= (float)(temp);
- current=( float) (0.001526) * current;
- SetBit (FPGA1, F1_gpo_01, 2, 0);
- ftemp=Read_pt100(4);
- stubManager.Write("After heating " + ftemp +"c\tCurrent is "+current + "\n");
- ftemp = ftemp - DyeHeadTemp[4];
- if ((current<2.9)|| (current>3.4)||(ftemp<5)||(ftemp>25))
- Units_status[10,1]="Fail";
- else
- Units_status[10,1]="Pass";
- }
-
- //Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 11
- ftemp=Read_pt100(5);
- ftemp1 = ftemp - DyeHeadTemp[5];
- if ( ftemp1>4)
- Units_status[11,1]="Fail";
- else
- {
- SetBit (FPGA3, F3_GPO_01_bus, 4, 1);
- stubManager.Write("Testing SSR no. 11\tHeadZone-6\t");
- Thread.Sleep(10000);
- adc_configuration(0x44,0x40); //a2d_address 0x44 channel 1
- adc_set_for_read_ch(0x44);
- temp=adc_read_ch(0x44);
- current= (float)(temp);
- current=( float) (0.001526) * current;
- SetBit (FPGA3, F3_GPO_01_bus, 4, 0);
- ftemp=Read_pt100(5);
- stubManager.Write("After heating " + ftemp +"c\tCurrent is "+current + "\n");
- ftemp = ftemp - DyeHeadTemp[5];
- if ((current<1.6)|| (current>2.1)||(ftemp<5)||(ftemp>20))
- Units_status[11,1]="Fail";
- else
- Units_status[11,1]="Pass";
- }
- return 0;
-}
-//------------------------------------------------
- int test_pt100()
- {
- float ftemp=0;
- int temp=0;
- int j=0;
- for (int i = 0; i < 6; i++)
- {
- DyeHeadTemp[i]=Read_pt100(i);
- ftemp=DyeHeadTemp[i];
- if ((ftemp>100)|| (ftemp<10))
- {
- Units_status[i,1]="Fail";
- }
- else
- {
- Units_status[i,1]="Pass";
- }
- stubManager.Write("Zone-"+(i+1)+ "\t" + ftemp.ToString("F2"));
- stubManager.Write("°C\n");
-
- }
- return 0;
- }
-//------------------------------------------------
-float Read_pt100(int i)
-{
- int j= i+1;
- if (i==5)
- j=11;
- var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,j); //
- float ftemp = (float)response.TemperatureCMultBy100;
- ftemp = ftemp / 100;
- return (ftemp);
-}
-//---------------------------
-int adc_configuration(uint I2C_Slave_Add,uint channel )
- {
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x00);//Byte 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(channel);//Byte 1 to Write, must be 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02 or 0x01 for different channels
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x80);//Byte 2 to Write
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
- }
-//-----------------------------------
-int adc_set_for_read_temp(uint I2C_Slave_Add)
- {
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x02);//Byte 0 to write
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
- }
-//-----------------------------------
-int adc_read_temp(uint I2C_Slave_Add)
- {
-
- StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();
- stubI2CReadBytesRequest.I2CId = I2C_ID;
- stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add;
- stubI2CReadBytesRequest.NumberOfBytesToRead = 2; // Number of bytes to read
-
- var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);
-
- for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++)
- {
- stubManager.WriteLineHex(response1.ReadBytes[i],2);
- }
-
-
- return 1;
- }
-//-----------------------------------
-int adc_set_for_read_ch(uint I2C_Slave_Add)
- {
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x01);//Byte 0 to write
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
- }
-//-----------------------------------
-uint adc_read_ch(uint I2C_Slave_Add)
- {
- StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();
- stubI2CReadBytesRequest.I2CId = I2C_ID;
- stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add;
- stubI2CReadBytesRequest.NumberOfBytesToRead = 2; // Number of bytes to read
-
- var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);
- uint temph=0;
- uint templ=0;
- uint temp=0;
- temph=response1.ReadBytes[0];
- templ=response1.ReadBytes[1];
- temp = (temph << 8) | templ;
- temp=temp & 0x0fff;
- return temp;
- }
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Jig/DyeHeadJig.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Jig/DyeHeadJig.cs
deleted file mode 100644
index 3e5ccf085..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Jig/DyeHeadJig.cs
+++ /dev/null
@@ -1,384 +0,0 @@
-//--------------------------------------------------------------------------------
-
-//include "Dispenser_setup_mbar1.cs"
-//include "C:\Dispenser_setup\Dispenser_setup_seal_test.cs"
-
-//--------------------------------------------------------------------------------
-//include "Dispenser_Motor_stop.cs"
-//include "Dispenser_setup_form_valve close_1.cs"
-//include "Dispenser_setup_form_valve open_1.cs"
-//include "Dispenser_Motor_run.cs"
-//include "Dispenser_Motor_Up.cs"
-//include "Dispenser_Motor_Down.cs"
-//--------------------------------------------------------------------------------
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-//--------------------------------------------------------------------------------
-const Int32 RDANCER_Motor = 21;
-const Int32 RDRIVING_Motor = 22;
-const Int32 RLOADING_Motor = 24;
-
-//--------
-
-const Int32 F1_LS_RLOADMOTOR_UP = 0x0040 ;
-const Int32 F1_LS_RLOADMOTOR_DN = 0x0080 ;
-
-
-
-
-
-
-const Int32 F1_MOTO_RLOADING_TX1 = 0x60000202;
-const Int32 F1_MOTO_RLOADING_TX0 = 0x60000200;
-const Int32 F1_MOTO_RLOADING_RX1 = 0x60000206;
-const Int32 F1_MOTO_RLOADING_RX0 = 0x60000204;
-
-
-const Int32 F1_LS_03_Direct =0x60000040;
-//--------------------------------------------------------------------------------
-string path1="M:\\RTFU\\Reports\\";
-string File_Name1 ;
-string Status;
-
-
-
-//-----------------------------------------------------
-
-//int SealTest=0;
-//int Characterization;
-string RTFU_Sn;
-//int dispenserNumber=1;
-//string Dtype="";
-//int Table=0;
-///string shortDateString;
-
-//UInt32 Type_card;
-//--------------------------------------------------------------------------------
-
-public void OnExecute(StubManager stubManager)
-{
- stubManager.Write("Counter is 1 \n");
-
-//-----------------------------------------------------------------------------------------------------------------------------------------------------
-//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0X60000522, 0X128);//0X128 EQULE 50 MSEC
-
- //-----------------------------detect card ----------------------------
-
-
-//---------------------------------------------------------------------------------------------------------------------------------------------------------
-
-
-//Create form
- Form form1 = new Form();
-
-//--------------------------------------------------------------------------------
-
-// Create buttons to use as the accept and cancel buttons.
- Button button1 = new Button ()
- {
- Width = 100,
- Height = 100,
- };
-
-//--------------------------------------------------------------------------------
-// Set the text of button
-
- button1.Text = "Run";
-
-
-//--------------------------------------------------------------------------------
-// Set the position of the button on the form.
-
- button1.Location = new Point (40, 100);
-
-
-
-
-//--------------------------------------------------------------------------------
- // Add button to the form.
-
- form1.Controls.Add(button1);
-
-
-
-//--------------------------------------------------------------------------------
-
-// Set the caption bar text of the form.
-
- form1.Text = "RTFU Test";
-
-//--------------------------------------------------------------------------------
-
- // Define the border style of the form to a dialog box.
-
- form1.FormBorderStyle = FormBorderStyle.FixedDialog;
-
- // Set the MaximizeBox to false to remove the maximize box.
-
- form1.MaximizeBox = false;
-
- // Set the MinimizeBox to false to remove the minimize box.
-
- form1.MinimizeBox = false;
-
- // Set the start position of the form to the center of the screen.
-
- form1.StartPosition = FormStartPosition.CenterScreen;
-
-
- form1.AutoSize = true;
- form1.AutoSizeMode = AutoSizeMode.GrowAndShrink;
-
-//-----RTFU Serial Number -----------
-
-Label Label1 = new Label ()
- {
- Width = 150,
- Height = 20,
- Text =" RTFU S/N"
- };
-Label1.Location = new Point (30, 10);
- form1.Controls.Add(Label1);
-
-
-TextBox TextBox1 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text =""
- };
-TextBox1.Location = new Point (40, 40);
- form1.Controls.Add(TextBox1);
-
-//-----USER NAME -----------
-
-Label Label2 = new Label ()
- {
- Width = 150,
- Height = 20,
- Text ="USER NAME"
- };
-Label2.Location = new Point (190, 10);
- form1.Controls.Add(Label2);
-
-
-TextBox TextBox2 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text =""
- };
-TextBox2.Location = new Point (200, 40);
- form1.Controls.Add(TextBox2);
-
-//----------LOCATION----------
-
- Label Label3 = new Label ()
- {
- Width = 150,
- Height = 20,
- Text ="LOCATION"
- };
-Label3.Location = new Point (350, 10);
- form1.Controls.Add(Label3);
-
-
-
-TextBox TextBox3 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text =""
- };
-TextBox3.Location = new Point (360, 40);
- form1.Controls.Add(TextBox3);
-
-//--------------------------------------------------------------------------------
-
- stubManager.Write("Counter is 2 \n");
-
- button1.Click += (_,__) =>
-
- {
-
-//File_Name1=path1 +"RTFU.log" ;
-File_Name1=path1 + TextBox1.Text +"_RTFU_" + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".log" ;
-//File_Name1=path1 + DateTime.Now+"RTFU.log" ;
-
-stubManager.Write(File_Name1 +"\n");
-stubManager.WriteToFile(File_Name1,DateTime.Now +"\n" );
-stubManager.Write(DateTime.Now +"\n" );
-
-stubManager.AppendToFile(File_Name1,"RTFU Test Report\n" );
-stubManager.Write("RTFU Test Report\n" );
-
-stubManager.AppendToFile(File_Name1,"RTFU S/N: \t" + TextBox1.Text +"\n" );
-stubManager.Write("RTFU S/N:" + TextBox1.Text +"\n" );
-
-stubManager.AppendToFile(File_Name1,"User Name:\t" + TextBox2.Text +"\n" );
-stubManager.Write("User Name:" + TextBox2.Text +"\n" );
-
-
-stubManager.AppendToFile(File_Name1,"Location:\t" + TextBox3.Text +"\n" );
-stubManager.Write("Location:" + TextBox3.Text +"\n" );
-
-
-
-
-
-
-Label Label5 = new Label ()
- {
- Width = 120,
- Height =100,
- Text = ""
- };
-Label5.Location = new Point (300, 100);
-Label5.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
-
-Label5.Text="Pros";
-Label5.Font = new Font("Arial", 24,FontStyle.Bold);
-form1.Controls.Add(Label5);
-
-Status=Test_RLOADING_RTFU ();
- Label5.Text=Status;
- TextBox1.Text="";
-};
-
- form1.ShowDialog();
-
- stubManager.Write("Counter is \n");
-
-
- return;
- }
- //------------------------------------
-string Test_RLOADING_RTFU()
-{
- int temp=1;
- int counter;
- Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x2c000000); //set kval ran to 0x2c
- Thread.Sleep(100);
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RLOADING_Motor, true,100); //move Rloading down
- Thread.Sleep(3000);
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading
- Thread.Sleep(1000);
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RLOADING_Motor,false,100); //move Rloading up
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //read LS
- if ((response.Value & F1_LS_RLOADMOTOR_UP) !=F1_LS_RLOADMOTOR_UP ) //if LS_RLOADMOTOR_UP is up then error
- {
- stubManager.AppendToFile(File_Name1,"LS_RLOADMOTOR_UP\tFail");
- stubManager.Write("LS_RLOADMOTOR_UP\tFail\n");
- return "Fail";
- }
- counter =0;
- while ( counter < 150)
- {
- counter = counter + 1;
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if LS_RLOADMOTOR_UP is up then move down
- if ((response.Value & F1_LS_RLOADMOTOR_UP) != F1_LS_RLOADMOTOR_UP )
- counter=150;
- Thread.Sleep(100);
- }
- if (counter >= 150)
- {
- stubManager.AppendToFile(File_Name1,"LS_RLOADMOTOR_UP or Motors RLOADING \tFail");
- stubManager.Write("LS_RLOADMOTOR_UP or Motors RLOADING \tFail\n");
- return "Fail";
- }
- stubManager.AppendToFile(File_Name1,"LS_RLOADMOTOR_UP\tPass");
- stubManager.Write("LS_RLOADMOTOR_UP or Motors RLOADING \tPass\n");
-//-----------------------------------------------------------------------------------------------------
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RLOADING_Motor, true,100); //move Rloading down
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //read LS
-
- if ((response.Value & F1_LS_RLOADMOTOR_DN) !=F1_LS_RLOADMOTOR_DN ) //if LS_RLOADMOTOR_DN is up then error
- {
- stubManager.AppendToFile(File_Name1,"LS_RLOADMOTOR_DN\tFail");
- stubManager.Write("LS_RLOADMOTOR_DN\tFail\n");
- return "Fail";
- }
- counter =0;
- while ( counter < 150)
- {
- counter = counter + 1;
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if LS_RLOADMOTOR_UP is up then move down
- if ((response.Value & F1_LS_RLOADMOTOR_DN) != F1_LS_RLOADMOTOR_DN )
- counter=150;
- Thread.Sleep(100);
- }
- if (counter >= 150)
- {
- stubManager.AppendToFile(File_Name1,"LS_RLOADMOTOR_DN \tFail");
- stubManager.Write("LS_RLOADMOTOR_UP RLOADING \tFail\n");
- return "Fail";
- }
- Thread.Sleep(1000);
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading
- Thread.Sleep(1000);
- Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x14000000); //set kval ran to 0x14
-
- return "Pass";;
-
-}
-//-------------------------------------------------------------
-int Test_RDRIVING_RTFU()
-{
- int temp=1;
- int counter;
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RDRIVING_Motor, true,200); //move Rdriving clockwise
-
- DialogResult result1 = MessageBox.Show("Are RDRIVING_Motor move clockwise ?","Important Question",MessageBoxButtons.YesNo);
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RDRIVING_Motor, 3); //hold Rloading
- if (result1==DialogResult.Yes)
- {
- stubManager.AppendToFile(File_Name1,"RDRIVING_RTFU\tPass");
- stubManager.Write("RDRIVING_RTFU\tPass\n");
- return 1;
- }
- else
- {
- stubManager.AppendToFile(File_Name1,"RDRIVING_RTFU\tFail");
- stubManager.Write("RDRIVING_RTFU\tFail\n");
- return 0;
- }
-}
-//--------------------------------------------------------------------------------
-
-
-//--------------------------------------------------------------------------------
-
-//--------------------------------------------------------------------------------
-
-
-//--------------------------------------------------------------------------------
-
-// Display the form as a modal dialog box.
-
-// ParaData1 shall be left justified i.e. <cmd><Byte0><Byte1><Byte2>
-int Motor_SetParam(Int32 HighAdr, Int32 LowAdr, Int32 ParaAddr, uint ParaData1)
-{
-
- Int32 Temp = 0;
- Temp = (ParaAddr << 8 ) + ( (Int32) ParaData1 >> 24);
-
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,HighAdr, (Temp & 0xffff));
- Temp = ((Int32)ParaData1 >> 8) & 0xffff;
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,LowAdr, (Temp));
- //Fpga_Read_Reg(Fpga, HighAdr+4, 1);
- //Fpga_Read_Reg(Fpga, LowAdr+4, 1);
-
- return 1;
-}
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Write Flate head eeprom.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Write Flate head eeprom.cs
deleted file mode 100644
index 0d01c7dbe..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Write Flate head eeprom.cs
+++ /dev/null
@@ -1,146 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-//----------------------
-const Int32 I2C_ID = 3; //MCU_I2C3
-const Int32 TCA9548A_address = 0xE2;
-const Int32 I2C_Slave_Add = 0xA0; // //eeprom address - 32kByte
-int Head_Mux_Channel_ID = 4; //Head MUX channel
-//----------------------
-
-const Int32 SerialNum = 0x01;
-
-
-int enable_channel(int Channel_ID)
-{
- uint Const_temp = 0x01;
-
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = TCA9548A_address;
-
- Const_temp = Const_temp << Channel_ID;
- stubI2CWriteBytesRequest.BytesTWrite.Add(Const_temp);
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
-}
-
-
-int WriteFlatEpprom(uint I2C_Slave_Add)
-{
- uint Page=0;
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write
- //--------------------------------------------------------------
-
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x33); //header
- stubI2CWriteBytesRequest.BytesTWrite.Add(0xcc);
- stubI2CWriteBytesRequest.BytesTWrite.Add(0xaa);
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x55);
-
- //stubI2CWriteBytesRequest.BytesTWrite.Add(0x04);//HEAD_TYPE_STAPLE_SPUN
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
- Thread.Sleep(100);
-
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(92);//Byte 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write
- //--------------------------------------------------------------
-
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x10); //flat
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x00);
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x00);
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x00);
-
- //stubI2CWriteBytesRequest.BytesTWrite.Add(0x04);//HEAD_TYPE_STAPLE_SPUN
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
- Thread.Sleep(100);
-
-
-
-
-
- return 1;
-}
-
-int adc_set_for_read_ch(uint I2C_Slave_Add, uint Page)
-{
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
-}
-
-int adc_read_ch(uint I2C_Slave_Add)
-{
- StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();
- stubI2CReadBytesRequest.I2CId = I2C_ID;
- stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add + 1;
- stubI2CReadBytesRequest.NumberOfBytesToRead = 10; // Number of bytes to read
-
- var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);
- uint temph=0;
-
- for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++)
- {
- temph=response1.ReadBytes[i];
- stubManager.WriteHex(temph,2);
- }
-
- return 1;
-}
-
-
-public void OnExecute(StubManager stubManager)
-{
-
- //enable_all_channel();
- enable_channel(Head_Mux_Channel_ID); // Chanel 0-7 => Disp0enser 0-7
-
- for (int i = 0; i<1; i++)
- {
-
- WriteFlatEpprom(I2C_Slave_Add);
- Thread.Sleep(10); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet )
-
- stubManager.Write("\nPage 0x00 #");
- stubManager.Write(i);
- stubManager.Write("\t- The Buffer is: ");
- adc_set_for_read_ch(I2C_Slave_Add, 0x00);
- //Thread.Sleep(1); //Sleep for 10 milli.
- adc_read_ch(I2C_Slave_Add);
-
- Thread.Sleep(1000);
-
- }
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Write SYLKO to head eeprom.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Write SYLKO to head eeprom.cs
deleted file mode 100644
index d7729ca2f..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Write SYLKO to head eeprom.cs
+++ /dev/null
@@ -1,118 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-//----------------------
-const Int32 I2C_ID = 3; //MCU_I2C3
-const Int32 TCA9548A_address = 0xE2;
-const Int32 I2C_Slave_Add = 0xA0; // //eeprom address - 32kByte
-int Head_Mux_Channel_ID = 4; //Head MUX channel
-//----------------------
-
-const Int32 SerialNum = 0x01;
-
-
-int enable_channel(int Channel_ID)
-{
- uint Const_temp = 0x01;
-
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = TCA9548A_address;
-
- Const_temp = Const_temp << Channel_ID;
- stubI2CWriteBytesRequest.BytesTWrite.Add(Const_temp);
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
-}
-
-
-int adc_write(uint I2C_Slave_Add, uint Page)
-{
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write
- //--------------------------------------------------------------
-
- stubI2CWriteBytesRequest.BytesTWrite.Add(SerialNum);//S/N
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x03);//HEAD_TYPE_SYLKO
- //stubI2CWriteBytesRequest.BytesTWrite.Add(0x04);//HEAD_TYPE_STAPLE_SPUN
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
-}
-
-int adc_set_for_read_ch(uint I2C_Slave_Add, uint Page)
-{
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
-}
-
-int adc_read_ch(uint I2C_Slave_Add)
-{
- StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();
- stubI2CReadBytesRequest.I2CId = I2C_ID;
- stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add + 1;
- stubI2CReadBytesRequest.NumberOfBytesToRead = 10; // Number of bytes to read
-
- var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);
- uint temph=0;
-
- for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++)
- {
- temph=response1.ReadBytes[i];
- stubManager.WriteHex(temph,2);
- }
-
- return 1;
-}
-
-
-public void OnExecute(StubManager stubManager)
-{
-
- //enable_all_channel();
- enable_channel(Head_Mux_Channel_ID); // Chanel 0-7 => Disp0enser 0-7
-
- for (int i = 0; i<1; i++)
- {
-
- adc_write(I2C_Slave_Add,0x00);
- Thread.Sleep(10); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet )
-
- stubManager.Write("\nPage 0x00 #");
- stubManager.Write(i);
- stubManager.Write("\t- The Buffer is: ");
- adc_set_for_read_ch(I2C_Slave_Add, 0x00);
- //Thread.Sleep(1); //Sleep for 10 milli.
- adc_read_ch(I2C_Slave_Add);
-
- Thread.Sleep(1000);
-
- }
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/magnet_motor_limit_switch1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/magnet_motor_limit_switch1.cs
deleted file mode 100644
index a5a43f137..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/magnet_motor_limit_switch1.cs
+++ /dev/null
@@ -1,75 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-include "..\..\Defines\Tango_Defines_Basic.cs"
-include "Tango_Defines_SSR.cs"
-include "Tango_Defines_LimitSwitch.cs"
-
-//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\Software\Stub_scripts\Tango_Defines_Basic.cs"
-//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\Software\Stub_scripts\Interfaces\Tango_Defines_SSR.cs"
-
-
-public void OnExecute(StubManager stubManager)
-{
-Int32 Bit = 1;
-
- //Write GPO_DRYER_SSR1_CTRL SSR/SSR no. 1
- SetBit (FPGA2, F2_CTRL, 0, 1);
- stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,23, false,0x800000+0);
-
- stubManager.Write("\nTesting SSR no. 13 of magnet or motor driver");
- Thread.Sleep(1000);
-
-var response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,2, true, 150);
-
-
- stubManager.Write("\n*** Open Lid Head ");
- Bit = 1;
-
- while (Bit != 0x0) //wait until LTFU LOADRAM Down
- {
- Bit = GetBit(FPGA1, F1_LS_01_Direct,7);
- Thread.Sleep(50);
- }
- Thread.Sleep(2000);
- stubManager.Write("\n--------1--------");
-
-
- stubManager.Write("\n*** Close Lid Head ");
- Bit = 1;
- response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,2, false, 150);
-
- while (Bit != 0x0) //wait until LTFU LOADRAM Down
- {
- Bit = GetBit(FPGA1, F1_LS_01_Direct,8);
- Thread.Sleep(50);
- }
- Thread.Sleep(100);
- stubManager.Write("\n--------2--------");
-
- response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,2, true, 0);
-
- SetBit (FPGA2, F2_CTRL, 0, 0);
-
- stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,23, false,0x800000+2);
- Thread.Sleep(1000);
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,23,3);
-
-
-// var response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,0, true, 50); motor clean
-
-//response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,1, true, 50); motor clean
-
-
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/ElectricalEnclosure/ElectricalEnclosure_Fans1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/ElectricalEnclosure/ElectricalEnclosure_Fans1.cs
index ba39cb2b0..264400e64 100644
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/ElectricalEnclosure/ElectricalEnclosure_Fans1.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/ElectricalEnclosure/ElectricalEnclosure_Fans1.cs
@@ -73,7 +73,7 @@ public void OnExecute(StubManager stubManager)
for (int i = 0; i<1000; i++)
{
- stubManager.Write("\n----------------------------------------\n");
+ stubManager.Write("----------------------------------------\n");
// Fpga_Read_Reg(FPGA1, F1_Tacho_reg0, 0); stubManager.Write("\n");
// Fpga_Read_Reg(FPGA1, F1_Tacho_reg1, 1); stubManager.Write("\n");
// Fpga_Read_Reg(FPGA1, F1_Tacho_reg2, 1); stubManager.Write("\n");
@@ -83,85 +83,37 @@ public void OnExecute(StubManager stubManager)
var RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg0, 0);
stubManager.Write("\nFan5 Speed-");
stubManager.WriteHex(RetVal.Value,4);
- if (RetVal.Value>0x440 && RetVal.Value<0x4d0)
- stubManager.Write("\t Pass");
- else
- stubManager.Write("\t Fail");
+ RetVal = Fpga_Read_Reg(FPGA1, F1_gpi_FANS, 0);
+ Temp1=RetVal.Value & 0x0001;
+ if (Temp1 !=0x0001)
+ stubManager.Write("\nFan1 Running ");
+ else
+ stubManager.Write("\nFan1 Stop");
- RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg1, 0);
- stubManager.Write("\nFan1 Speed-");
- stubManager.WriteHex(RetVal.Value,4);
- if (RetVal.Value>0x220 && RetVal.Value<0x300)
- stubManager.Write("\t Pass");
- else
- stubManager.Write("\t Fail");
-
-
-
-
-// RetVal = Fpga_Read_Reg(FPGA1, F1_gpi_FANS, 0);
-// Temp1=RetVal.Value & 0x0001;
-// if (Temp1 !=0x0001)
-// stubManager.Write("\tFan1 Running ");
-// else
-// stubManager.Write("\tFan1 Stop");
-
-
-
- RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg2, 0);
- stubManager.Write("\nFan2 Speed-");
- stubManager.WriteHex(RetVal.Value,4);
- if (RetVal.Value>0x220 && RetVal.Value<0x300)
- stubManager.Write("\t Pass");
- else
- stubManager.Write("\t Fail");
-
-
-// Temp1=RetVal.Value & 0x0002;
-// if (Temp1 !=0x0002)
-// stubManager.Write("\tFan2 Running ");
-// else
-// stubManager.Write("\tFan2 Stop");
-
-
- RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg3, 0);
- stubManager.Write("\nFan3 Speed-");
- stubManager.WriteHex(RetVal.Value,4);
- if (RetVal.Value>0x220 && RetVal.Value<0x300)
- stubManager.Write("\t Pass");
- else
- stubManager.Write("\t Fail");
-
-
-// Temp1=RetVal.Value & 0x0004;
-// if (Temp1 !=0x0004)
-// stubManager.Write("\tFan3 Running ");
-// else
-// stubManager.Write("\tFan3 Stop");
+ Temp1=RetVal.Value & 0x0002;
+ if (Temp1 !=0x0002)
+ stubManager.Write("\nFan2 Running ");
+ else
+ stubManager.Write("\nFan2 Stop");
-
-
- RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg4, 0);
- stubManager.Write("\nFan4 Speed-");
- stubManager.WriteHex(RetVal.Value,4);
- if (RetVal.Value>0x220 && RetVal.Value<0x300)
- stubManager.Write("\t Pass");
- else
- stubManager.Write("\t Fail");
+ Temp1=RetVal.Value & 0x0004;
+ if (Temp1 !=0x0004)
+ stubManager.Write("\nFan3 Running ");
+ else
+ stubManager.Write("\nFan3 Stop");
-
-// Temp1=RetVal.Value & 0x0008;
-// if (Temp1 !=0x0008)
-// stubManager.Write("\tFan4 Running ");
-// else
-// stubManager.Write("\tFan4 Stop");
+ Temp1=RetVal.Value & 0x0008;
+ if (Temp1 !=0x0008)
+ stubManager.Write("\nFan4 Running ");
+ else
+ stubManager.Write("\nFan4 Stop");
-// Fpga_Read_Reg(FPGA1, F1_Tacho_reg5, 1); stubManager.Write("\n");
-// Fpga_Read_Reg(FPGA1, F1_Tacho_reg6, 1); stubManager.Write("\n");
-// Fpga_Read_Reg(FPGA1, F1_Tacho_reg7, 1); stubManager.Write("\n");
-// Fpga_Read_Reg(FPGA2, F2_Tacho_reg0, 1); stubManager.Write("\n");
+ Fpga_Read_Reg(FPGA1, F1_Tacho_reg5, 1); stubManager.Write("\n");
+ Fpga_Read_Reg(FPGA1, F1_Tacho_reg6, 1); stubManager.Write("\n");
+ Fpga_Read_Reg(FPGA1, F1_Tacho_reg7, 1); stubManager.Write("\n");
+ Fpga_Read_Reg(FPGA2, F2_Tacho_reg0, 1); stubManager.Write("\n");
//stubManager.Write("\n\n");
Thread.Sleep(1000);
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Header/1.cs
index 4100a770c..4100a770c 100644
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/1.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Header/1.cs
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/DyeHead_SSR.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Header/DyeHead_SSR.cs
index cb01a86c4..cb01a86c4 100644
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/DyeHead_SSR.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Header/DyeHead_SSR.cs
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/DyeHead_SSR_CURRENT_SENSE.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Header/DyeHead_SSR_CURRENT_SENSE.cs
index b9793a336..b9793a336 100644
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/DyeHead_SSR_CURRENT_SENSE.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Header/DyeHead_SSR_CURRENT_SENSE.cs
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/header_LimitSwitch.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Header/header_LimitSwitch.cs
index 4454e9c63..4454e9c63 100644
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/header_LimitSwitch.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Header/header_LimitSwitch.cs
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/magnet_motor_limit_switch.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Header/magner_motor_limit_switch.cs
index 0dcf29853..0dcf29853 100644
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/magnet_motor_limit_switch.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Header/magner_motor_limit_switch.cs
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/magner_ssr.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Header/magner_ssr.cs
index 54e3f4844..54e3f4844 100644
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/magner_ssr.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Header/magner_ssr.cs
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_JIG.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_JIG.cs
deleted file mode 100644
index f961158e9..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_JIG.cs
+++ /dev/null
@@ -1,574 +0,0 @@
-using System;
-using System.Text;
-using System.IO;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-//--------------------------------------------------------------------------------
-
-//-------------------DEFINE Motors------------------
-const Int32 LDANCER_Motor = 16;
-const Int32 LDRIVING_Motor = 18;
-const Int32 LLOADING_Motor = 19;
-
-//-------------------DEFINE Motors Parameters------------------
-
-const Int32 F1_MOTO_LLOADING_TX1 = 0x60000232;
-const Int32 F1_MOTO_LLOADING_TX0 = 0x60000230;
-
-
-//-------------------DEFINE Limit Switch---------------
-const Int32 F1_LS_02_Direct =0x60000030;
-
-const Int32 F1_LS_LLOADMOTOR_UP = 0x0100 ;
-const Int32 F1_LS_LLOADMOTOR_DN = 0x0200 ;
-const Int32 F1_LS_LDANCER1_UP = 0x1000;
-const Int32 F1_LS_LDANCER1_DN = 0x2000;
-const Int32 F1_LS_LDANCER2_UP = 0x0400;
-const Int32 F1_LS_LDANCER2_DN = 0x0800;
-const Int32 F1_LS_LLOADRAM_LF = 0x0080;
-const Int32 F1_LS_LLOADRAM_RT = 0x0040;
-
-
-const Int32 F1_LDANCER1_ROTENC_MSB = 0x600001c2;
-const Int32 F1_LDANCER1_ROTENC_LSB = 0x600001c0;
-const Int32 F1_LDANCER1_ROTENC_TX = 0x600001ce;
-
-const Int32 F1_LDANCER2_ROTENC_MSB = 0x600001b2;
-const Int32 F1_LDANCER2_ROTENC_LSB = 0x600001b0;
-const Int32 F1_LDANCER2_ROTENC_TX = 0x600001be;
-
-const int UNIT_UNDER_TEST=3+1+5;
-//--------------------------------------------------------------------------------
-string path1="P:\\Scripts\\Assemblies\\LTFU\\LTFULog\\";
-string path2="C:\\LTFULog\\";
-
-string File_Name1 ;
-string Status;
-//---------------------------
-
-string [,] Units_status = new string[UNIT_UNDER_TEST,2] {
- {"LS_LLOADMOTOR_Up","Not Test"}, //0
- {"LS_LLOADMOTOR_DOWN","Not Test"}, //1
- {"LLOADING_Motor","Not Test"}, //2
- {"LDRIVING_Motor","Not Test"}, //3
- {"LS_LDANCER1_DOWN","Not Test"}, //4
- {"LS_LDANCER1_UP","Not Test"}, //5
- {"LDANCER_Motor","Not Test"}, //6
- {"LDANCER1_ROTENC","Not Test"}, //7
- {"LDANCER1_ROTENC","Not Test"}, //8
- };
-//-----------------------------------------------------
-string LTFU_Sn;
-//--------------------------------------------------------------------------------
-
-public void OnExecute(StubManager stubManager)
-{
-string path="";
- Form form1 = new Form();
- Motor_SetParam(F1_MOTO_LLOADING_TX1,F1_MOTO_LLOADING_TX0,0x0a,0x14000000); //set kval ran to 0x14,0.65A
-
-// Set the caption bar text of the form.
- form1.TopMost = true;
- form1.Text = "LTFU Test";
- form1.FormBorderStyle = FormBorderStyle.FixedDialog;
- form1.MaximizeBox = false;
- form1.MinimizeBox = false;
- form1.StartPosition = FormStartPosition.CenterScreen;
- form1.AutoSize = true;
- form1.AutoSizeMode = AutoSizeMode.GrowAndShrink;
-// Create buttons to Run.
- Button button1 = new Button ()
- {
- Width = 100,
- Height = 100,
- };
- button1.Text = "Run";
- button1.Location = new Point (40, 100);
- form1.Controls.Add(button1);
-//-----LTFU Serial Number -----------
-
- Label Label1 = new Label ()
- {
- Width = 150,
- Height = 20,
- Text =" LTFU S/N"
- };
- Label1.Location = new Point (30, 10);
- form1.Controls.Add(Label1);
- TextBox TextBox1 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text =""
- };
- TextBox1.Location = new Point (40, 40);
- form1.Controls.Add(TextBox1);
- //----------LOCATION----------
-
- Label Label3 = new Label ()
- {
- Width = 150,
- Height = 20,
- Text ="LOCATION"
- };
-Label3.Location = new Point (350, 10);
- form1.Controls.Add(Label3);
-
-
-
-TextBox TextBox3 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text =""
- };
-TextBox3.Location = new Point (360, 40);
- form1.Controls.Add(TextBox3);
-
-
-
-
- Label Label5 = new Label ()
- {
- Width = 120,
- Height =100,
- Text = ""
- };
- Label5.Location = new Point (300, 100);
- Label5.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
-
- Label5.Text="";
- Label5.Font = new Font("Arial", 24,FontStyle.Bold);
- form1.Controls.Add(Label5);
-
-
-
-
-//--------------------------------------------------------------------------------
-
- button1.Click += (_,__) =>
-
- {
-
- Label5.Text="Pros";
-
- if (!Directory.Exists(path1))
- {
- path=path2;
- if (!Directory.Exists(path2))
- Directory.CreateDirectory(path2);
- }
- else
- path=path1;
-
- File_Name1=path + TextBox1.Text +"_LTFU_" + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".log" ;
-
-
- stubManager.Write(File_Name1 +"\n");
- stubManager.WriteToFile(File_Name1,DateTime.Now +" " );
- stubManager.Write(DateTime.Now +"\n" );
-
- stubManager.AppendToFile(File_Name1,"LTFU Test Report" );
- stubManager.Write("LTFU Test Report\n" );
-
- stubManager.AppendToFile(File_Name1,"LTFU S/N: \t" + TextBox1.Text );
- stubManager.Write("LTFU S/N:" + TextBox1.Text +"\n" );
-
-
- stubManager.AppendToFile(File_Name1,"Location:\t" + TextBox3.Text );
- stubManager.Write("Location:" + TextBox3.Text +"\n" );
-
-
-
-//------------------------------- start test -----------
- Test_LLOADING_LTFU();
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LLOADING_Motor, 3); //hold LRoading high z
- Thread.Sleep(100);
- Motor_SetParam(F1_MOTO_LLOADING_TX1,F1_MOTO_LLOADING_TX0,0x0a,0x14000000); //set kval ran to 0x14,0.65A
-
- Test_LDRIVING_LTFU();
-
- Test_DANCER_LTFU();
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LDANCER_Motor, 3); //hold Lloading high z
-
- Status=write_to_file();
- stubManager.Write(Status +"\n");
-
- Label5.Text=Status;
- TextBox1.Text="";
- };
-
- form1.ShowDialog();
-
- return ;
- }
-
- //------------------------------------
-int Test_LLOADING_LTFU()
-{
- int temp=1;
- int counter;
-
- Motor_SetParam(F1_MOTO_LLOADING_TX1,F1_MOTO_LLOADING_TX0,0x0a,0x2c000000); //set kval ran to 0x2c- 1.3A
- Thread.Sleep(100);
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,LLOADING_Motor, false,200); //move Rloading down
- Thread.Sleep(3000);
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LLOADING_Motor, 3); //hold Rloading high z
- Thread.Sleep(1000);
-//------------------------------------------ check F1_LS_LLOADMOTOR_UP------------------------------------------------
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //read LS
- if ((response.Value & F1_LS_LLOADMOTOR_UP) !=F1_LS_LLOADMOTOR_UP ) //if LS_RLOADMOTOR_UP is up then error
- {
- DialogResult result = MessageBox.Show("Did LLOADIN MOTOR Move?", "Warning",MessageBoxButtons.YesNo);
- if(result == DialogResult.Yes)
- {
- Units_status[0,1]="Fail";
- stubManager.Write("LS_LLOADMOTOR_UP\tFail\n");
- return 0;
- }
- else
- {
- Units_status[2,1]="Fail";
- stubManager.Write("LLOADMOTOR\tFail\n");
- return 0;
- }
- }
-//----------------------------------------- mov LLOADING up -------------------------------------------------
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,LLOADING_Motor,true,200); //move Lloading up
- counter =0;
- while ( counter < 150)
- {
- counter = counter + 1;
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //if LS_LLOADMOTOR_UP is up then move down
- if ((response.Value & F1_LS_LLOADMOTOR_UP) != F1_LS_LLOADMOTOR_UP )
- counter=250;
-
- Thread.Sleep(100);
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LLOADING_Motor, 3); //hold Lloading high z
-
- if (counter == 150)
- {
- Units_status[0,1]="Fail";
- stubManager.Write("LS_LLOADMOTOR_UP\tFail\n");
- return 0;
- }
- DialogResult result1 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo);
- if(result1 == DialogResult.No)
- {
- Units_status[0,1]="Fail";
- stubManager.Write("LS_LLOADMOTOR_UP Not calibrate\n");
- return 0;
- }
- Units_status[0,1]="Pass";
- Units_status[2,1]="Pass";
-
-//------------------------------------------ check F1_LS_LLOADMOTOR_DN------------------------------------------------
-
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //read LS
-
- if ((response.Value & F1_LS_LLOADMOTOR_DN) !=F1_LS_LLOADMOTOR_DN ) //if LS_LLOADMOTOR_DN is up then error
- {
- Units_status[1,1]="Fail";
- stubManager.Write("LS_LLOADMOTOR_DN\tFail\n");
- return 0;
- }
-//------------------------------------------ mov LLOADING dn ------------------------------------------------
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,LLOADING_Motor, false,200); //move Lloading down
- counter =0;
- while ( counter < 150)
- {
- counter = counter + 1;
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //if LS_LLOADMOTOR_UP is up then move down
- if ((response.Value & F1_LS_LLOADMOTOR_DN) != F1_LS_LLOADMOTOR_DN )
- counter=250;
-
- Thread.Sleep(100);
- }
-
- if (counter == 150)
- {
- Units_status[1,1]="Fail";
- stubManager.Write("LS_LLOADMOTOR_DN\tFail\n");
- return 0;
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LLOADING_Motor, 3); //hold Lloading high z
-
- DialogResult result4 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo);
- if(result4 == DialogResult.No)
- {
- Units_status[1,1]="Fail";
- stubManager.Write("LS_LLOADMOTOR_DN Not calibrate\n");
- return 0;
- }
- Units_status[1,1]="Pass";
- stubManager.Write("LLOADMOTOR\tPass\n");
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,LLOADING_Motor, false,200); //move Lloading down
- Thread.Sleep(2000);
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LLOADING_Motor, 3); //hold Lloading high z
-
- return 1 ;
-
-}
-
-
-Int32 ReadEncoder(int i)
-{
- Int32 temp;
-
- if (i==0) //LDANCER1_ROTENC
- {
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F1_LDANCER1_ROTENC_TX, 0x0000); //triggers a TX transmission
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LDANCER1_ROTENC_LSB);
- var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LDANCER1_ROTENC_MSB);
-
- temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff));
-
-
- return temp;
- }
- //LDANCER2_ROTENC
-
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F1_LDANCER2_ROTENC_TX, 0x0000); //triggers a TX transmission
- var response2 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LDANCER2_ROTENC_LSB);
- var response3 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LDANCER2_ROTENC_MSB);
-
- temp = Convert.ToInt32 (((((response3.Value <<16) + response2.Value)>>10 ) & 0x3fff));
-
-
- return temp;
-}
-//--------------------------------------------------------------------------------
-int Test_DANCER_LTFU()
-{
- int counter;
- Int32 temp;
- Int32 temp1;
- Int32 temp2;
- Int32 temp3;
-
-
-//------------------------------------------ check F1_LS_LDANCER1_DN ------------------------------------------------
-
- MessageBox.Show("Make sure LDANCER Doun");
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //read LS
-
-
- if ((response.Value & F1_LS_LDANCER1_UP) !=F1_LS_LDANCER1_UP ) //if F1_LS_LDANCER1_UP is up then error
- {
- Units_status[5,1]="Fail";
- stubManager.Write("LS_LDANCER_UP\tFail\n");
- return 0;
- }
-
-//----------------------------------------- check F1_LS_LDANCER1_UP -------------------------------------------------
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,LDANCER_Motor,false,400); //move Lloading up
- counter =0;
- while ( counter < 250)
- {
- counter = counter + 1;
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //if F1_LS_LDANCER1_UP is up then move down
- if ((response.Value & F1_LS_LDANCER1_UP) != F1_LS_LDANCER1_UP )
- counter=350;
-
- Thread.Sleep(100);
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LDANCER_Motor, 3); //hold Ldancer high z
-
-
- if (counter == 250)
- {
- Units_status[5,1]="Fail";
- stubManager.Write("LS_LDANCER1_UP\tFail\n");
- return 0;
- }
-
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //read LS
- if ((response.Value & F1_LS_LDANCER1_DN) !=F1_LS_LDANCER1_DN ) //if F1_LS_LDANCER1_DN is up then error
- {
- Units_status[4,1]="Fail";
- stubManager.Write("LS_LDANCER1_DOWN\tFail\n");
- return 0;
- }
-
- DialogResult result5= MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo);
-
- if(result5== DialogResult.No)
- {
- Units_status[5,1]="Fail";
- stubManager.Write("LS_LDANCER1_UP Not calibrate\n");
- return 0;
- }
-
- Units_status[5,1]="Pass";
- stubManager.Write("LS_LDANCER1_UP\tPass\n");
-
-//----------------------------------------- mov LDANCER_Motor down and check Ldancer encoder -------------------------------------------------
- temp= ReadEncoder(0);
- temp2= ReadEncoder(1);
-
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,LDANCER_Motor,true,400); //move Rloading down
- counter =0;
- while ( counter < 250)
- {
- counter = counter + 1;
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //if LS_LDANCER1_DN is dn then move stop
- if ((response.Value & F1_LS_LDANCER1_DN) != F1_LS_LDANCER1_DN )
- counter=350;
-
- Thread.Sleep(100);
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LDANCER_Motor, 3); //hold Rloading high z
- if (counter == 250)
- {
- Units_status[4,1]="Fail";
- stubManager.Write("LS_LDANCER1_DOWN\tFail\n");
- return 0;
- }
- DialogResult result2 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo);
-
- if(result2 == DialogResult.No)
- {
- Units_status[4,1]="Fail";
- stubManager.Write("LS_LDANCER1_DN Not calibrate\n");
- return 0;
- }
-
- Units_status[4,1]="Pass";
- stubManager.Write("LS_LDANCER1_DN\tPass\n");
-
- Units_status[6,1]="Pass";
- stubManager.Write("LDANCER_Motor\tPass\n");
-
- temp1= ReadEncoder(0);
- temp3= ReadEncoder(1);
-
- stubManager.Write("temp="+temp + "\temp1="+temp1 +"\n");
-
- DialogResult result = MessageBox.Show("SSI Dancer1 led is Green(not blinking)?", "Warning",MessageBoxButtons.YesNo);
- if(result == DialogResult.No)
- {
- Units_status[7,1]="Fail";
- stubManager.Write("LDANCER1_SSI\tFail\n");
- }
- else
- {
- if (temp>temp1)
- temp1=temp1+0x4000;
- temp1=temp1-temp;
- if ((temp1> 4000) || (temp1 <200))
- {
- Units_status[7,1]="Fail";
- stubManager.Write("LDANCER1_SSI\tFail\n");
- }
- else
- {
- Units_status[7,1]="Pass";
- stubManager.Write("LDANCER1_SSI\tPass\n");
- }
- }
- stubManager.Write("temp2="+temp2 + "\temp3="+temp3 +"\n");
-
- DialogResult result3 = MessageBox.Show("SSI Dancer2 led is Green(not blinking)?", "Warning",MessageBoxButtons.YesNo);
- if(result3 == DialogResult.No)
- {
- Units_status[8,1]="Fail";
- stubManager.Write("LDANCER2_SSI\tFail\n");
- }
- else
- {
- if (temp3>temp2)
- temp2=temp2+0x4000;
- temp2=temp2-temp3;
- if ((temp1> 4000) || (temp1 <2000))
- {
- Units_status[8,1]="Fail";
- stubManager.Write("LDANCER2_SSI\tFail\n");
- }
- else
- {
- Units_status[8,1]="Pass";
- stubManager.Write("LDANCER2_SSI\tPass\n");
- }
- }
- return 1;
-}
-
-
-//-------------------------------------------------------------
-int Test_LDRIVING_LTFU()
-{
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,LDRIVING_Motor, true,200); //move Ldriving clockwise
- stubManager.Write("LDRIVING_Motor Motor rotate \n ");
-
- DialogResult result = MessageBox.Show("Are LDRIVING Motor rotate?", "Warning",MessageBoxButtons.YesNo);
- if(result == DialogResult.No)
- {
- Units_status[3,1]="Fail";
- stubManager.Write("LDRIVING Motor not rotate\n");
- }
- else
- {
- Units_status[3,1]="Pass";
- stubManager.Write("LDRIVING Motor rotate\n");
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LDRIVING_Motor,3); //stop motor
-
- return 0;
-}
-
-
-
-//--------------------------------------------------------------------------------
-int Motor_SetParam(Int32 HighAdr, Int32 LowAdr, Int32 ParaAddr, uint ParaData1)
-{
-
- Int32 Temp = 0;
- Temp = (ParaAddr << 8 ) + ( (Int32) ParaData1 >> 24);
-
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,HighAdr, (Temp & 0xffff));
- Temp = ((Int32)ParaData1 >> 8) & 0xffff;
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,LowAdr, (Temp));
-
- return 1;
-}
- //------------------------------------
-string write_to_file()
-{
- stubManager.Write("write_to_file\n");
-
-string Stemp="Pass";
- for (int i=0;i<UNIT_UNDER_TEST;i++)
- {
- stubManager.AppendToFile(File_Name1,Units_status[i,0]+"\t" + Units_status[i,1] );
- stubManager.Write(Units_status[i,0]+"\t" + Units_status[i,1]+"\n" );
-
- if ((Units_status[i,1]=="Fail")||(Units_status[i,1]=="Not Test"))
- Stemp="Fail";
- }
- if (Stemp=="Fail")
- {
- stubManager.AppendToFile(File_Name1,"-------------LTFU Fail ------------ ");
- stubManager.Write("-------------LTFU Fail ------------ ");
- }
- else
- {
- stubManager.AppendToFile(File_Name1,"-------------LTFU Pass ------------ )");
- stubManager.Write("-------------LTFU Pass ------------ ");
- }
-
- return Stemp;
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Motors_Switch.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Motors_Switch.cs
index 9955e0e5d..7578e825d 100644
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Motors_Switch.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Motors_Switch.cs
@@ -14,8 +14,6 @@ using Tango.Stubs;
include "..\..\Defines\Tango_Defines_Basic.cs"
include "Tango_Defines_Motors.cs"
-include "Tango_Defines_LimitSwitch.cs"
-
//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_Basic.cs"
//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_Motors.cs"
@@ -23,108 +21,15 @@ include "Tango_Defines_LimitSwitch.cs"
public void OnExecute(StubManager stubManager)
{
-Int32 Bit = 1;
+
stubManager.Write("\n*** LTFU Motor + limit switch Test ***");
+// stubManager.Write("\n*** Pulling motor drivers out of reset");
SetBit(FPGA1, F1_Moto_Driver_NSTBYRST1, 0, 1);
SetBit(FPGA1, F1_Moto_Driver_NSTBYRST1, 1, 1);
SetBit(FPGA1, F1_Moto_Driver_NSTBYRST1, 2, 1);
SetBit(FPGA1, F1_Moto_Driver_NSTBYRST1, 4, 1);
- stubManager.Write("\n*** Moving motor F1_MOTO_LLOADING back and for");
- Bit = 1;
-
- var response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,19,true , 500);
- while (Bit != 0x0) //wait until LTFU LOADRAM Down
- {
- Bit = GetBit(FPGA1, F1_LS_02_Direct,8);
- Thread.Sleep(10);
- }
- Thread.Sleep(100);
- stubManager.Write("\n--------1--------");
-
-
-response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,19, false, 500);
- Bit = 1;
- while (Bit != 0x0) //wait until LTFU LOADRAM Down
- {
- Bit = GetBit(FPGA1, F1_LS_02_Direct,9);
- Thread.Sleep(10);
- }
- stubManager.Write("\n--------2--------");
- response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,19, false, 0);
-
- Thread.Sleep(100);
- var response1 = stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,19, false, 5000);
- Thread.Sleep(1000);
- Motor_HighZ(FPGA1, F1_MOTO_LLOADING_TX1, F1_MOTO_LLOADING_TX0);
- stubManager.Write("\n*** Stopped motor F1_MOTO_LLOADING");
-
-
- //mov ldriving -
- stubManager.Write("\n*** Running motor F1_MOTO_LDRIVING for 4 seconds... ");
- Motor_Run(FPGA1, F1_MOTO_LDRIVING_TX1, F1_MOTO_LDRIVING_TX0, 0xffff, 0x1);
- Thread.Sleep(4000);
- Motor_HighZ(FPGA1, F1_MOTO_LDRIVING_TX1, F1_MOTO_LDRIVING_TX0);
-
-
-
-
-
-
-
-
- stubManager.Write("\n\n*** Moving motor F1_MOTO_LDANCER1 back and for ...");
-
- Bit = 1;
- response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,16,false ,500);
- while (Bit != 0x0) //wait until LTFU LOADRAM Down
- {
- Bit = GetBit(FPGA1, F1_LS_02_Direct,12);
- Thread.Sleep(10);
- }
- Thread.Sleep(100);
- stubManager.Write("\n--------1--------");
-
-
-response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,16, true, 500);
- Bit = 1;
- while (Bit != 0x0) //wait until LTFU LOADRAM Down
- {
- Bit = GetBit(FPGA1, F1_LS_02_Direct,13);
- Thread.Sleep(10);
- }
-
- Thread.Sleep(1000);
- Motor_HighZ(FPGA1, F1_MOTO_LDANCER1_TX1, F1_MOTO_LDANCER1_TX0);
-
-
-
-
-
-/*
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ stubManager.Write("\n*** F1_MOTO_LPIVOT1 is moving back and forth ");
@@ -202,7 +107,7 @@ response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,16, true
// Thread.Sleep(4000);
stubManager.Write("\n\n*** RTFU Motor Test Ended ***");
- */
+
}
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Motors_Switch1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Motors_Switch1.cs
new file mode 100644
index 000000000..9955e0e5d
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Motors_Switch1.cs
@@ -0,0 +1,208 @@
+using System;
+using System.Text;
+using System.Linq;
+using System.Drawing;
+using System.Diagnostics;
+using System.Windows.Forms;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+using Tango.PMR.Diagnostics;
+using Tango.PMR.Stubs;
+using Tango.Stubs;
+
+
+include "..\..\Defines\Tango_Defines_Basic.cs"
+include "Tango_Defines_Motors.cs"
+include "Tango_Defines_LimitSwitch.cs"
+
+//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_Basic.cs"
+//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_Motors.cs"
+
+
+
+public void OnExecute(StubManager stubManager)
+{
+Int32 Bit = 1;
+ stubManager.Write("\n*** LTFU Motor + limit switch Test ***");
+ SetBit(FPGA1, F1_Moto_Driver_NSTBYRST1, 0, 1);
+ SetBit(FPGA1, F1_Moto_Driver_NSTBYRST1, 1, 1);
+ SetBit(FPGA1, F1_Moto_Driver_NSTBYRST1, 2, 1);
+ SetBit(FPGA1, F1_Moto_Driver_NSTBYRST1, 4, 1);
+
+ stubManager.Write("\n*** Moving motor F1_MOTO_LLOADING back and for");
+ Bit = 1;
+
+ var response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,19,true , 500);
+ while (Bit != 0x0) //wait until LTFU LOADRAM Down
+ {
+ Bit = GetBit(FPGA1, F1_LS_02_Direct,8);
+ Thread.Sleep(10);
+ }
+ Thread.Sleep(100);
+ stubManager.Write("\n--------1--------");
+
+
+response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,19, false, 500);
+ Bit = 1;
+ while (Bit != 0x0) //wait until LTFU LOADRAM Down
+ {
+ Bit = GetBit(FPGA1, F1_LS_02_Direct,9);
+ Thread.Sleep(10);
+ }
+ stubManager.Write("\n--------2--------");
+ response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,19, false, 0);
+
+ Thread.Sleep(100);
+ var response1 = stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,19, false, 5000);
+ Thread.Sleep(1000);
+ Motor_HighZ(FPGA1, F1_MOTO_LLOADING_TX1, F1_MOTO_LLOADING_TX0);
+ stubManager.Write("\n*** Stopped motor F1_MOTO_LLOADING");
+
+
+ //mov ldriving -
+ stubManager.Write("\n*** Running motor F1_MOTO_LDRIVING for 4 seconds... ");
+ Motor_Run(FPGA1, F1_MOTO_LDRIVING_TX1, F1_MOTO_LDRIVING_TX0, 0xffff, 0x1);
+ Thread.Sleep(4000);
+ Motor_HighZ(FPGA1, F1_MOTO_LDRIVING_TX1, F1_MOTO_LDRIVING_TX0);
+
+
+
+
+
+
+
+
+ stubManager.Write("\n\n*** Moving motor F1_MOTO_LDANCER1 back and for ...");
+
+ Bit = 1;
+ response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,16,false ,500);
+ while (Bit != 0x0) //wait until LTFU LOADRAM Down
+ {
+ Bit = GetBit(FPGA1, F1_LS_02_Direct,12);
+ Thread.Sleep(10);
+ }
+ Thread.Sleep(100);
+ stubManager.Write("\n--------1--------");
+
+
+response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,16, true, 500);
+ Bit = 1;
+ while (Bit != 0x0) //wait until LTFU LOADRAM Down
+ {
+ Bit = GetBit(FPGA1, F1_LS_02_Direct,13);
+ Thread.Sleep(10);
+ }
+
+ Thread.Sleep(1000);
+ Motor_HighZ(FPGA1, F1_MOTO_LDANCER1_TX1, F1_MOTO_LDANCER1_TX0);
+
+
+
+
+
+/*
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ //mov LLOAD - up
+ stubManager.Write("\n*** Moving motor F1_MOTO_LLOADING back and for");
+ MotorHomingRequest motorHomingRequest = new MotorHomingRequest();
+ motorHomingRequest.MotorType = (Tango.PMR.Hardware.HardwareMotorType) 19;
+ motorHomingRequest.Speed = 500;
+ motorHomingRequest.Direction = Tango.PMR.Diagnostics.MotorDirection.Forward; //Forward
+ stubManager.Run(motorHomingRequest);
+ Thread.Sleep(6000);
+ //mov lLOAD - dn
+ motorHomingRequest.MotorType = (Tango.PMR.Hardware.HardwareMotorType) 19;
+ motorHomingRequest.Speed = 500;
+ motorHomingRequest.Direction = Tango.PMR.Diagnostics.MotorDirection.Backward; //Forward
+ stubManager.Run(motorHomingRequest);
+ Thread.Sleep(5000);
+ var response = stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,19, false, 1000);
+ Thread.Sleep(1000);
+
+
+ //mov ldriving -
+ stubManager.Write("\n*** Running motor F1_MOTO_LDRIVING for 4 seconds... ");
+ Motor_Run(FPGA1, F1_MOTO_LDRIVING_TX1, F1_MOTO_LDRIVING_TX0, 0xffff, 0x1);
+// Thread.Sleep(4000);
+ Motor_HighZ(FPGA1, F1_MOTO_LDRIVING_TX1, F1_MOTO_LDRIVING_TX0);
+
+
+ //mov Ldancer -
+ stubManager.Write("\n*** F1_MOTO_LDANCER1 is moving back and forth ");
+ motorHomingRequest.MotorType = (Tango.PMR.Hardware.HardwareMotorType) 16;
+ motorHomingRequest.Speed = 500;
+ motorHomingRequest.Direction = Tango.PMR.Diagnostics.MotorDirection.Forward; //Forward
+ stubManager.Run(motorHomingRequest);
+ Thread.Sleep(20000);
+ motorHomingRequest.MotorType = (Tango.PMR.Hardware.HardwareMotorType) 16;
+ motorHomingRequest.Speed = 500;
+ motorHomingRequest.Direction = Tango.PMR.Diagnostics.MotorDirection.Backward; //Backard
+ stubManager.Run(motorHomingRequest);
+ Thread.Sleep(20000);
+
+
+
+ //mov Lpivot -
+ stubManager.Write("\n*** F1_MOTO_LPIVOT1 is moving back and forth ");
+ motorHomingRequest.MotorType = (Tango.PMR.Hardware.HardwareMotorType) 20;
+ motorHomingRequest.Speed = 500;
+ motorHomingRequest.Direction = Tango.PMR.Diagnostics.MotorDirection.Forward; //Forward
+ stubManager.Run(motorHomingRequest);
+ Thread.Sleep(20000);
+ motorHomingRequest.MotorType = (Tango.PMR.Hardware.HardwareMotorType) 20;
+ motorHomingRequest.Speed = 500;
+ motorHomingRequest.Direction = Tango.PMR.Diagnostics.MotorDirection.Backward; //Backard
+ stubManager.Run(motorHomingRequest);
+ Thread.Sleep(20000);
+
+
+
+
+
+
+
+
+
+ stubManager.Write("\n*** F1_MOTO_RDANCER is moving back and forth ");
+ motorHomingRequest.MotorType = (Tango.PMR.Hardware.HardwareMotorType) 21;
+ motorHomingRequest.Speed = 10;
+// motorHomingRequest.Direction = Tango.PMR.Diagnostics.MotorDirection.Forward; //Forward
+// stubManager.Run(motorHomingRequest);
+// Thread.Sleep(5000);
+ motorHomingRequest.MotorType = (Tango.PMR.Hardware.HardwareMotorType) 21;
+ motorHomingRequest.Speed = 10;
+// motorHomingRequest.Direction = Tango.PMR.Diagnostics.MotorDirection.Backward; //Backard
+// stubManager.Run(motorHomingRequest);
+// Thread.Sleep(4000);
+
+ stubManager.Write("\n\n*** RTFU Motor Test Ended ***");
+ */
+
+
+}
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Right_Position.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Right_Position.cs
deleted file mode 100644
index ebd2cf414..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Right_Position.cs
+++ /dev/null
@@ -1,145 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-
-
-
-const Int32 x_ABS_POS = 0x01;
-const Int32 x_EL_POS = 0x02;
-const Int32 x_MARK = 0x03;
-const Int32 x_SPEED = 0x04;
-const Int32 x_ACC = 0x05;
-const Int32 x_DEC = 0x06;
-const Int32 x_MAX_SPEED = 0x07;
-const Int32 x_MIN_SPEED = 0x08;
-const Int32 x_FS_SPD = 0x15;
-const Int32 x_KVAL_HOLD = 0x09;
-const Int32 x_KVAL_RUN = 0x0A;
-const Int32 x_KVAL_ACC = 0x0B;
-const Int32 x_KVAL_DEC = 0x0C;
-const Int32 x_INT_SPD = 0x0D;
-const Int32 x_ST_SLP = 0x0E;
-const Int32 x_FN_SLP_ACC = 0x0F;
-const Int32 x_FN_SLP_DEC = 0x10;
-const Int32 x_K_THERM = 0x11;
-const Int32 x_ADC_OUT = 0x12;
-const Int32 x_OCD_TH = 0x13;
-const Int32 x_STALL_TH = 0x14;
-const Int32 x_STEP_MODE = 0x16;
-const Int32 x_ALARM_EN = 0x17;
-const Int32 x_CONFIG = 0x18;
-const Int32 x_STATUS = 0x19;
-//-------------------------------
-const Int32 x_GET_PARAM = 0x20;
-//-------------------------------
-const Int32 F1_LS_02_Direct = 0x60000030 ;
-const Int32 F1_LS_LSPARE2 = 0x0004; //up
-const Int32 F1_LS_LDANCER1_UP = 0x1000;
-
-
-
-
-
-
-
-
-
-
-
-
-
-public void OnExecute(StubManager stubManager)
-{
- int counter;
-
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,17, 3); //hold Ldancer high z
-
- var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,17, (x_GET_PARAM | x_ABS_POS)<<24, 0, 0);
- response.RecivedData=response.RecivedData & 0x00ffffff;
- stubManager.WriteHex(response.RecivedData,8);
- stubManager.Write("\n");
-
- var response3 = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,17, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0);
- response3.RecivedData=response3.RecivedData & 0x00007;
-
- stubManager.WriteHex(response3.RecivedData,4);
- stubManager.Write("\nNober uStep is - ");
- if (response3.RecivedData>4)
- response3.RecivedData=4;
- stubManager.WriteLine(Math.Pow(2,response3.RecivedData));
-
-
-//----------------------------------------- check F1_LS_LDANCER2_UP -------------------------------------------------
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,17,false,100); //move Lloading up
- counter =0;
- while ( counter < 800)
- {
- counter = counter + 1;
-var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //if F1_LS_LSPARE2 is up then move down
- if ((response1.Value & F1_LS_LSPARE2) != F1_LS_LSPARE2 )
- counter=900;
-
- Thread.Sleep(100);
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,17, 3); //hold Ldancer high z
-
-var response2 = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,17, (x_GET_PARAM | x_ABS_POS)<<24, 0, 0);
- response2.RecivedData=response2.RecivedData & 0x00ffffff;
- stubManager.WriteHex(response2.RecivedData,8);
- stubManager.Write("\n");
-
- stubManager.Write("Motor Puller positon is - "+ (response2.RecivedData-response.RecivedData)/(Math.Pow(2,response3.RecivedData)));
-//---------------------------------------------------------------------------------------------------------------------
-
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,16, 3); //hold Ldancer high z
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,16, (x_GET_PARAM | x_ABS_POS)<<24, 0, 0);
- response.RecivedData=response.RecivedData & 0x00ffffff;
- stubManager.WriteHex(response.RecivedData,8);
- stubManager.Write("\n");
-
- response3 = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,16, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0);
- response3.RecivedData=response3.RecivedData & 0x00007;
-
- stubManager.WriteHex(response3.RecivedData,4);
- stubManager.Write("\nNober uStep is - ");
- if (response3.RecivedData>4)
- response3.RecivedData=4;
- stubManager.WriteLine(Math.Pow(2,response3.RecivedData));
-
-
-//----------------------------------------- check F1_LS_LDANCER2_UP -------------------------------------------------
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,16,false,100); //move Lloading up
- counter =0;
- while ( counter < 800)
- {
- counter = counter + 1;
- var response8 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //if F1_LS_LSPARE2 is up then move up
- if ((response8.Value & F1_LS_LDANCER1_UP) !=F1_LS_LDANCER1_UP ) //if F1_LS_LDANCER1_UP is up then error
- counter=900;
-
- Thread.Sleep(100);
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,16, 3); //hold Ldancer high z
-
- response2 = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,16, (x_GET_PARAM | x_ABS_POS)<<24, 0, 0);
- response2.RecivedData=response2.RecivedData & 0x00ffffff;
- stubManager.WriteHex(response2.RecivedData,8);
- stubManager.Write("\n");
-
- stubManager.Write("Motor Winder positon is - "+ (response2.RecivedData-response.RecivedData)/(Math.Pow(2,response3.RecivedData)));
-
-
-
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_SSI.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_SSI.cs
index 94873f9f4..3218dbd83 100644
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_SSI.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_SSI.cs
@@ -31,64 +31,18 @@ public void OnExecute(StubManager stubManager)
for (int i = 0; i < 100; i++)
{
-
- stubManager.Write("LDANCER1 - "+ ReadEncoder(0)+ "\t\t LDANCER2 - " + ReadEncoder(1) + "\n" );
-
-
-
+
+ SSI_Read_Write(FPGA1, F1_LDANCER1_ROTENC_MSB, F1_LDANCER1_ROTENC_LSB, F1_LDANCER1_ROTENC_TX);
+ SSI_Read_Write(FPGA1, F1_LDANCER2_ROTENC_MSB, F1_LDANCER2_ROTENC_LSB, F1_LDANCER2_ROTENC_TX);
+ stubManager.Write("\n");
+ k++;
+ if ( (k & 0x8) == 0x08 ) {
+ k = 0;
+ stubManager.Write(" LDANCER1 LDANCER2 \n");
+ }
Thread.Sleep(400);
}
}
-
-
-Int32 ReadEncoder(int i)
-{
- Int32 temp;
-
- if (i==0) //LDANCER1_ROTENC
- {
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x600001ce, 0x0000); //triggers a TX transmission
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x600001c0);
- var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x600001c2);
-
- temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff));
-
-
- return temp;
- }
- //LDANCER2_ROTENC
-
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x600001be, 0x0000); //triggers a TX transmission
- var response2 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x600001b0);
- var response3 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x600001b2);
-
- temp = Convert.ToInt32 (((((response3.Value <<16) + response2.Value)>>10 ) & 0x3fff));
-
-
- return temp;
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/Test_Loading_TFU.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/Test_Loading_TFU.cs
deleted file mode 100644
index de14d455f..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/Test_Loading_TFU.cs
+++ /dev/null
@@ -1,155 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-
-
-
-//-------------------DEFINE Motors------------------
-//const Int32 LDANCER_Motor = 16;
-//const Int32 LDRIVING_Motor = 18;
-//const Int32 LLOADING_Motor = 19;
-//const Int32 LDANCER_Motor = 16;
-//const Int32 LDRIVING_Motor = 18;
-//const Int32 LLOADING_Motor = 19;
-
-const Int32 LDANCER1_Motor = 16;
-const Int32 LDANCER2_Motor = 17;
-const Int32 LDRIVING_Motor = 18;
-const Int32 LLOADING_Motor = 19;
-
-const Int32 RDANCER_Motor = 21;
-//const Int32 RDRIVING_Motor = 22;
-//const Int32 MAGNET_Driver = 23; //replace RLOADARM
-const Int32 RLOADING_Motor = 24;
-
-//-------------------DEFINE Motors Parameters------------------
-
-const Int32 F1_MOTO_LLOADING_TX1 = 0x60000232;
-const Int32 F1_MOTO_LLOADING_TX0 = 0x60000230;
-const Int32 F1_MOTO_RLOADING_TX1 = 0x60000202;
-const Int32 F1_MOTO_RLOADING_TX0 = 0x60000200;
-
-
-//-------------------DEFINE Limit Switch---------------
-const Int32 F1_LS_02_Direct =0x60000030;
-const Int32 F1_LS_03_Direct =0x60000040;
-const Int32 F1_LS_RLOADMOTOR_UP = 0x0040 ;
-const Int32 F1_LS_RLOADMOTOR_DN = 0x0080 ;
-
-const Int32 F1_LS_LLOADMOTOR_UP = 0x0100 ;
-const Int32 F1_LS_LLOADMOTOR_DN = 0x0200 ;
-const Int32 F1_LS_LDANCER1_UP = 0x1000;
-const Int32 F1_LS_LDANCER1_DN = 0x2000;
-const Int32 F1_LS_LDANCER2_UP = 0x0400;
-const Int32 F1_LS_LDANCER2_DN = 0x0800;
-const Int32 F1_LS_LLOADRAM_LF = 0x0080;
-const Int32 F1_LS_LLOADRAM_RT = 0x0040;
-const Int32 F1_LS_LSPARE2 = 0x0004; //up
-//const Int32 F1_LS_LLOADMOTOR_UP = 0x0100 ;
-const Int32 F1_LS_RDANCER_DN = 0x0200;
-const Int32 F1_LS_RLOADRAM_DN = 0x0020;
-const Int32 F1_LS_LSPARE1 = 0x0008; //dn
-
-//include "..\..\Defines\Tango_Defines_Basic.cs"
-//include "Tango_Defines_LimitSwitch.cs"
-//include "Tango_Defines_Motors.cs"
-//include "Tango_Defines_SSI.cs"
-//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_Basic.cs"
-//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_SSI.cs"
-
-
-void OnExecute(StubManager stubManager)
-{
- for (int i=0;i<1;i++)
- {
-
- Move_Motor(LDANCER1_Motor,false,F1_LS_02_Direct,F1_LS_LDANCER1_UP,450);
-
- Move_Motor(LDANCER2_Motor,false,F1_LS_02_Direct,F1_LS_LSPARE2,450);
-
- Motor_SetParam(F1_MOTO_LLOADING_TX1,F1_MOTO_LLOADING_TX0,0x0a,0x0a000000); //set kval ran to 0x2c- 0.9A
- Thread.Sleep(200);
- Move_Motor(LLOADING_Motor,true,F1_LS_02_Direct,F1_LS_LLOADMOTOR_UP,300);
- Motor_SetParam(F1_MOTO_LLOADING_TX1,F1_MOTO_LLOADING_TX0,0x0a,0x07000000); //set kval ran to 0x2c- 0.6A
- Thread.Sleep(200);
-
- Move_Motor(RDANCER_Motor,true,F1_LS_03_Direct,F1_LS_RLOADRAM_DN,10);
-
- Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x0a000000); //set kval ran to 0x14,0.65A
- Thread.Sleep(200);
- Move_Motor(RLOADING_Motor,false,F1_LS_03_Direct,F1_LS_RLOADMOTOR_UP,200);
- Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x07000000); //set kval ran to 0x14,0.65A
- Thread.Sleep(200);
-
-
-
- Thread.Sleep(2000);
-
- Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x0a000000); //set kval ran to 0x14,0.65A
- Thread.Sleep(200);
- Move_Motor(RLOADING_Motor,true,F1_LS_03_Direct,F1_LS_RLOADMOTOR_DN,200);
- Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x07000000); //set kval ran to 0x14,0.65A
- Thread.Sleep(200);
-
- Move_Motor(RDANCER_Motor,false,F1_LS_03_Direct,F1_LS_RDANCER_DN,10);
-
- Motor_SetParam(F1_MOTO_LLOADING_TX1,F1_MOTO_LLOADING_TX0,0x0a,0x0a000000); //set kval ran to 0x2c- 0.9A
- Thread.Sleep(200);
- Move_Motor(LLOADING_Motor,false,F1_LS_02_Direct,F1_LS_LLOADMOTOR_DN,300);
- Motor_SetParam(F1_MOTO_LLOADING_TX1,F1_MOTO_LLOADING_TX0,0x0a,0x0a000000); //set kval ran to 0x2c- 0.9A
- Thread.Sleep(200);
-
- Move_Motor(LDANCER2_Motor,true,F1_LS_02_Direct,F1_LS_LSPARE1,450);
-
- Move_Motor(LDANCER1_Motor,true,F1_LS_02_Direct,F1_LS_LDANCER1_DN,450);
-
- Thread.Sleep(2000);
- }
-
-
-
-}
-
- void Move_Motor(UInt32 MotorID, bool Direction, UInt32 Register , UInt32 Bits, Double speed)
-{
-int counter ;
-
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,MotorID,Direction,speed); //move Lloading up
- counter =0;
- while ( counter < 1500)
- {
- counter = counter + 1;
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,Register); //if LS_LLOADMOTOR_UP is up then move down
- if ((response.Value & Bits) != Bits )
- counter=1650;
-
- Thread.Sleep(20);
-
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,MotorID, 1); //hold motor
-
-
-}
-
- int Motor_SetParam(Int32 HighAdr, Int32 LowAdr, Int32 ParaAddr, uint ParaData1)
-{
-
- Int32 Temp = 0;
- Temp = (ParaAddr << 8 ) + ( (Int32) ParaData1 >> 24);
-
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,HighAdr, (Temp & 0xffff));
- Temp = ((Int32)ParaData1 >> 8) & 0xffff;
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,LowAdr, (Temp));
-
- return 1;
-}
diff --git a/Software/Stubs Collection/stubs/Scripts/auto shutt off.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/test.cs
index 8fd9963c2..397c6fbd4 100644
--- a/Software/Stubs Collection/stubs/Scripts/auto shutt off.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/test.cs
@@ -10,19 +10,16 @@ using System.Collections.Generic;
using Tango.PMR.Stubs;
using Tango.Stubs;
-public void OnExecute(StubManager stubManager)
-{
-
- while (true)
-
- {
-
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x600004e2, 0x800);
- Thread.Sleep(50);
+include "..\..\Defines\Tango_Defines_Basic.cs"
+include "Tango_Defines_LimitSwitch.cs"
-
-
- }
+public void OnExecute(StubManager stubManager)
+{
+ Int32 Bit = 1;
+ //Write GPO_DRYER_SSR1_CTRL SSR/SSR no. 1
+ SetBit (FPGA2, F2_CTRL, 0, 1);
+ stubManager.Write("\nTesting SSR no. 13 of magnet");
+ Thread.Sleep(4000);
} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Calibrate_Midtank_pressure_sensors_old.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Calibrate_Midtank_pressure_sensors_old.cs
deleted file mode 100644
index 7c0243c49..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Calibrate_Midtank_pressure_sensors_old.cs
+++ /dev/null
@@ -1,347 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.PMR.EmbeddedParameters;
-using Tango.Stubs;
-
-//----------------------
-const double MIN_SLOP=0.7;
-const double MAX_SLOP=1.4;
-const double ERROR_SLOP=-1;
-const double MIN_50cc_on_volt=2.3;
-const double MAX_50cc_on_volt=3.2;
-const double ERROR_50cc_on_volt=-1;
-
-
-
-const Int32 F3_VALVE_OUT = 0x600008E2 ;
-string Machine_SN ;
-private const string FILE_PATH = "P:\\Operations\\Log\\Midtanlk\\";
-string File_name;
-double [,] voltage_array = new double[9,9];
-string [] Parameter = new string[5] {"\t","Empty [V]","100cc [V]","800cc [V]"," b [L/V] "};
-
-//----------------------
-const Int32 I2C_ID = 2;
-//const Int32 I2C_Slave_Add = 0x46; //must be 0x40, 0x44 or 0x46
-//----------------------
-
-
-
-
-
-public void OnExecute(StubManager stubManager)
-{
-
-
- voltage_array[1,0]=1;
- voltage_array[2,0]=2;
- voltage_array[3,0]=3;
- voltage_array[4,0]=4;
- voltage_array[5,0]=5;
- voltage_array[6,0]=6;
- voltage_array[7,0]=7;
- voltage_array[8,0]=8;
-
- var response = stubManager.ShowResponseWindow("Enter Machine S/N: ", "");
- stubManager.Write("\n");
- Machine_SN = response;
- stubManager.Write(Machine_SN);
- File_name= FILE_PATH +Machine_SN + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".LOG";
- stubManager.Write(File_name);
- stubManager.WriteToFile(File_name,"Machine S/N:" + Machine_SN);
-
- string box_msg = "Make Sure all Midatnk empty";
- // string box_title = "Midatnk empty";
-// MessageBox.Show(box_msg, box_title);
- MessageBox.Show(box_msg);
-
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_VALVE_OUT, 0x000f); // open all valve air of midtank and close all ink of midtank
- Thread.Sleep(500);
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_VALVE_OUT, 0x00ff); // open all valve air of midtank and close all ink of midtank
- Thread.Sleep(500);
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_VALVE_OUT, 0x0fff); // open all valve air of midtank and close all ink of midtank
- Thread.Sleep(500);
- stubManager.Run<StubFpgaWriteRegResponse>("stubFpgaWriteRegRequest" ,F3_VALVE_OUT, 0xffff); // open all valve air and ink of midtank
-
- Thread.Sleep(2500);
-
- Thread.Sleep(1000);
-
- read_pressure_sensor(1);
-
- box_msg ="Insert 100cc of appropriate ink/lube to each midtank\n\t1.black ink\n\t2. Magenta ink\n\t3. Transparent ink\n\t4. Cleaner\n\t5. Cyan ink\n\t6. Yellow ink\n\t7. Spot color\n\t8. Lubricant/n";
- MessageBox.Show(box_msg);
-
- read_pressure_sensor(2);
-
- // voltage_array[3,2]=2.5;
-
- box_msg = "Add another 700cc for ink and TI \nFor Lubbricant add 500cc only.";
- MessageBox.Show(box_msg);
- read_pressure_sensor(3);
- stubManager.Run<StubFpgaWriteRegResponse>("stubFpgaWriteRegRequest" ,F3_VALVE_OUT, 0x0000); // close all valve air and ink of midtank
- // voltage_array[3,3]=4.5;
-
- calc_slop();
- print_table();
-
- insert_slop_t_eeprom();
- box_msg ="Turn Power Off and On to finish the calibration.";
- MessageBox.Show(box_msg);
-
- }
-
-int calc_slop()
- {
- stubManager.Write("\n ");
-
- double delta;
- for (uint i=1;i<9;i++)
- {
- delta=voltage_array[i,3]-voltage_array[i,2];
-
- stubManager.Write("\nMidtank No:"+i +"="+delta);
- if (i==8)
- delta=0.5/delta; //0.5 litter on lubricant
- else
- delta=0.7/delta; //0.7 litter
-
- if ((delta<MIN_SLOP) || (delta >MAX_SLOP))
- {
- voltage_array[i,4]=ERROR_SLOP;
- // stubManager.Write("123");
- }
- else if ((voltage_array[i,2]<MIN_50cc_on_volt) || (voltage_array[i,2]>MAX_50cc_on_volt ))
- voltage_array[i,4]=ERROR_SLOP;
- else
- voltage_array[i,4]=delta;
- }
- return 1;
- }
-
-
- int insert_slop_t_eeprom()
-{
- stubManager.Write("\n ");
-
- MidTankDataSetupRequest midTankDataSetupRequest = new MidTankDataSetupRequest();
-
-
- for (uint i=1;i<9;i++)
- {
- if (voltage_array[i,4]!= ERROR_SLOP)
- {
- MidTankData midTankData = new MidTankData();
- midTankData.MidTankId = i-1;
- midTankData.InitialOffsetA = voltage_array[i,2];
- midTankData.SlopeB = voltage_array[i,4];
-
- stubManager.Write("\nMidtank No:" + i+ "=\tA="+voltage_array[i,2]+"\tSlop="+voltage_array[i,4]);
-
-
- midTankDataSetupRequest.MidTankInfo.Add(midTankData);
-
- }
-var response = stubManager.Run<MidTankDataSetupResponse>(midTankDataSetupRequest);
-
-
-
- }
-
-
-
-
-/*
-MidTankData midTankData = new MidTankData();
-midTankData.MidTankId = 0;
-midTankData.InitialOffsetA = 0.1;
-midTankData.SlopeB = 0.1;
-
-MidTankData midTankData1 = new MidTankData();
-midTankData1.MidTankId = 1;
-midTankData1.InitialOffsetA = 0.11;
-midTankData1.SlopeB = 0.11;
-
-MidTankData midTankData2 = new MidTankData();
-midTankData2.MidTankId = 2;
-midTankData2.InitialOffsetA = 0.2;
-midTankData2.SlopeB = 0.2;
-
-MidTankData midTankData3 = new MidTankData();
-midTankData3.MidTankId = 3;
-midTankData3.InitialOffsetA = 0.3;
-midTankData3.SlopeB = 0.3;
-
-MidTankData midTankData4 = new MidTankData();
-midTankData4.MidTankId = 4;
-midTankData4.InitialOffsetA = 0.4;
-midTankData4.SlopeB = 0.4;
-
-MidTankData midTankData5 = new MidTankData();
-midTankData5.MidTankId = 5;
-midTankData5.InitialOffsetA = 0.5;
-midTankData5.SlopeB = 0.5;
-
-MidTankData midTankData6 = new MidTankData();
-midTankData6.MidTankId = 6;
-midTankData6.InitialOffsetA = 0.6;
-midTankData6.SlopeB = 0.6;
-
-
-MidTankData midTankData7 = new MidTankData();
-midTankData6.MidTankId = 7;
-midTankData6.InitialOffsetA = 0.7;
-midTankData6.SlopeB = 0.7;
-
-
-midTankDataSetupRequest.MidTankInfo.Add(midTankData);
-midTankDataSetupRequest.MidTankInfo.Add(midTankData1);
-midTankDataSetupRequest.MidTankInfo.Add(midTankData2);
-midTankDataSetupRequest.MidTankInfo.Add(midTankData3);
-midTankDataSetupRequest.MidTankInfo.Add(midTankData4);
-midTankDataSetupRequest.MidTankInfo.Add(midTankData5);
-midTankDataSetupRequest.MidTankInfo.Add(midTankData6);
-midTankDataSetupRequest.MidTankInfo.Add(midTankData7);
-*/
-return 1;
-}
-
-
-
-int print_table()
- {
-
- for (uint i=0;i<5;i++)
- {
- stubManager.AppendToFile(File_name,Parameter[i]+"\t"+voltage_array[1,i]+"\t"+voltage_array[2,i]+"\t"+voltage_array[3,i]+"\t"+voltage_array[4,i]+"\t"+voltage_array[5,i]+"\t"+voltage_array[6,i]+"\t"+voltage_array[7,i]+"\t"+voltage_array[8,i]) ;
- }
-
-
- return 1;
-
- }
-
-
-
-int adc_configuration(uint I2C_Slave_Add,uint channel )
- {
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x00);//Byte 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(channel);//Byte 1 to Write, must be 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02 or 0x01 for different channels
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x80);//Byte 2 to Write
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
- }
-
-
-int adc_set_for_read_ch(uint I2C_Slave_Add)
- {
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x01);//Byte 0 to write
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
- }
-
-
-
-
-int adc_read_ch(uint I2C_Slave_Add,uint table_index_x,uint table_index_y)
- {
- StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();
- stubI2CReadBytesRequest.I2CId = I2C_ID;
- stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add;
- stubI2CReadBytesRequest.NumberOfBytesToRead = 2; // Number of bytes to read
-
- var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);
- uint temph=0;
- uint templ=0;
- uint temp;
- double calc;
- double calc1;
- double calc2;
- temph=response1.ReadBytes[0];
- templ=response1.ReadBytes[1];
- temp = (temph << 8) | templ;
- temp=temp & 0x0fff;
-
- calc = (double)temp *2.5 / 4096.0;
- stubManager.Write("ADC [volts]:\t");
- stubManager.Write(calc+"\t");
-
- calc1 = (1.96- calc) * 4.64 + 1.96;
- stubManager.Write("Vsensor [volts]:\t");
- stubManager.Write(calc1);
-
- voltage_array[table_index_x,table_index_y]=calc1;
-
- return 1;
- }
-
-int read_pressure_sensor(uint i )
- {
-
- stubManager.Write("\n-----------MIDTANK_PRESSESENS-------test_no= "+i);
-
- stubManager.Write("\n1_1= ");
-
- adc_configuration(0x44,0x20); //a2d_address 0x44 channel channel 2
- adc_set_for_read_ch(0x44);
- adc_read_ch(0x44,1,i);
-
- stubManager.Write("\n2_1= ");
- adc_configuration(0x44,0x08); //a2d_address 0x44 channel channel 4
- adc_set_for_read_ch(0x44);
- adc_read_ch(0x44,2,i);
-
- stubManager.Write("\n3_1= ");
- adc_configuration(0x46,0x80); //a2d_address 0x46 channel channel 0
- adc_set_for_read_ch(0x46);
- adc_read_ch(0x46,3,i);
-
- stubManager.Write("\n4_1= ");
- adc_configuration(0x46,0x20); //a2d_address 0x46 channel channel 2
- adc_set_for_read_ch(0x46);
- adc_read_ch(0x46,4,i);
-
- stubManager.Write("\n1_2= ");
- adc_configuration(0x44,0x10); //a2d_address 0x44 channel channel 3
- adc_set_for_read_ch(0x44);
- adc_read_ch(0x44,5,i);
-
- stubManager.Write("\n2_2= ");
- adc_configuration(0x44,0x04); //a2d_address 0x44 channel channel 5
- adc_set_for_read_ch(0x44);
- adc_read_ch(0x44,6,i);
-
- stubManager.Write("\n3_2= ");
- adc_configuration(0x46,0x40); //a2d_address 0x46 channel channel 1
- adc_set_for_read_ch(0x46);
- adc_read_ch(0x46,7,i);
-
- stubManager.Write("\n4_2= ");
- adc_configuration(0x46,0x10); //a2d_address 0x46 channel channel 3
- adc_set_for_read_ch(0x46);
- adc_read_ch(0x46,8,i);
-
- return 1;
- }
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 1 Motor Frequency.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 1 Motor Frequency.csv
deleted file mode 100644
index 4b9e73f00..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 1 Motor Frequency.csv
+++ /dev/null
@@ -1,19 +0,0 @@
-Time,Dispenser 1 Motor Frequency
-13:39:54.945,0
-13:39:55.245,0
-13:39:55.545,0
-13:39:55.845,0
-13:39:56.145,0
-13:39:56.445,0
-13:39:56.745,0
-13:39:57.045,0
-13:39:57.345,0
-13:39:57.645,0
-13:39:57.945,0
-13:39:58.245,0
-13:39:58.545,0
-13:39:58.845,0
-13:39:59.145,0
-13:39:59.445,0
-13:39:59.745,0
-13:40:00.045,0
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 1 Pressure.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 1 Pressure.csv
deleted file mode 100644
index 2ff983a1b..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 1 Pressure.csv
+++ /dev/null
@@ -1,55 +0,0 @@
-Time,Dispenser 1 Pressure
-13:39:54.945,0.0458705425262451
-13:39:55.045,0.0317853689193726
-13:39:55.145,0.0388279557228088
-13:39:55.245,0.0353068113327026
-13:39:55.345,0.0353068113327026
-13:39:55.445,0.0353068113327026
-13:39:55.545,0.0353068113327026
-13:39:55.645,0.0282642245292664
-13:39:55.745,0.0353068113327026
-13:39:55.845,0.0353068113327026
-13:39:55.945,0.0353068113327026
-13:39:56.045,0.0388279557228088
-13:39:56.145,0.0388279557228088
-13:39:56.245,0.0317853689193726
-13:39:56.345,0.0353068113327026
-13:39:56.445,0.0353068113327026
-13:39:56.545,0.0353068113327026
-13:39:56.645,0.0388279557228088
-13:39:56.745,0.0388279557228088
-13:39:56.845,0.0353068113327026
-13:39:56.945,0.0388279557228088
-13:39:57.045,0.0388279557228088
-13:39:57.145,0.0317853689193726
-13:39:57.245,0.0388279557228088
-13:39:57.345,0.0388279557228088
-13:39:57.445,0.0282642245292664
-13:39:57.545,0.0353068113327026
-13:39:57.645,0.0388279557228088
-13:39:57.745,0.0353068113327026
-13:39:57.845,0.0388279557228088
-13:39:57.945,0.0317853689193726
-13:39:58.045,0.0388279557228088
-13:39:58.145,0.0353068113327026
-13:39:58.245,0.0317853689193726
-13:39:58.345,0.0423493981361389
-13:39:58.445,0.0317853689193726
-13:39:58.545,0.0423493981361389
-13:39:58.645,0.0353068113327026
-13:39:58.745,0.0353068113327026
-13:39:58.845,0.0282642245292664
-13:39:58.945,0.0353068113327026
-13:39:59.045,0.0317853689193726
-13:39:59.145,0.0317853689193726
-13:39:59.245,0.0353068113327026
-13:39:59.345,0.0388279557228088
-13:39:59.445,0.0388279557228088
-13:39:59.545,0.0458705425262451
-13:39:59.645,0.0353068113327026
-13:39:59.745,0.0353068113327026
-13:39:59.845,0.0317853689193726
-13:39:59.945,0.0317853689193726
-13:40:00.045,0.0353068113327026
-13:40:00.145,0.0388279557228088
-13:40:00.245,0.0388279557228088
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 2 Motor Frequency.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 2 Motor Frequency.csv
deleted file mode 100644
index 1bf9584f3..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 2 Motor Frequency.csv
+++ /dev/null
@@ -1,19 +0,0 @@
-Time,Dispenser 2 Motor Frequency
-13:39:54.945,0
-13:39:55.245,0
-13:39:55.545,0
-13:39:55.845,0
-13:39:56.145,0
-13:39:56.445,0
-13:39:56.745,0
-13:39:57.045,0
-13:39:57.345,0
-13:39:57.645,0
-13:39:57.945,0
-13:39:58.245,0
-13:39:58.545,0
-13:39:58.845,0
-13:39:59.145,0
-13:39:59.445,0
-13:39:59.745,0
-13:40:00.045,0
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 2 Pressure.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 2 Pressure.csv
deleted file mode 100644
index 88c664efe..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 2 Pressure.csv
+++ /dev/null
@@ -1,55 +0,0 @@
-Time,Dispenser 2 Pressure
-13:39:54.945,0.119816958904266
-13:39:55.045,0.11277437210083
-13:39:55.145,0.119816958904266
-13:39:55.245,0.11629581451416
-13:39:55.345,0.11277437210083
-13:39:55.445,0.119816958904266
-13:39:55.545,0.119816958904266
-13:39:55.645,0.119816958904266
-13:39:55.745,0.11629581451416
-13:39:55.845,0.11629581451416
-13:39:55.945,0.11629581451416
-13:39:56.045,0.126859545707703
-13:39:56.145,0.119816958904266
-13:39:56.245,0.119816958904266
-13:39:56.345,0.11629581451416
-13:39:56.445,0.11629581451416
-13:39:56.545,0.119816958904266
-13:39:56.645,0.11629581451416
-13:39:56.745,0.119816958904266
-13:39:56.845,0.11277437210083
-13:39:56.945,0.119816958904266
-13:39:57.045,0.123338103294373
-13:39:57.145,0.11629581451416
-13:39:57.245,0.11277437210083
-13:39:57.345,0.119816958904266
-13:39:57.445,0.123338103294373
-13:39:57.545,0.119816958904266
-13:39:57.645,0.11629581451416
-13:39:57.745,0.123338103294373
-13:39:57.845,0.11629581451416
-13:39:57.945,0.11629581451416
-13:39:58.045,0.119816958904266
-13:39:58.145,0.11277437210083
-13:39:58.245,0.123338103294373
-13:39:58.345,0.119816958904266
-13:39:58.445,0.119816958904266
-13:39:58.545,0.119816958904266
-13:39:58.645,0.11629581451416
-13:39:58.745,0.119816958904266
-13:39:58.845,0.109253227710724
-13:39:58.945,0.123338103294373
-13:39:59.045,0.123338103294373
-13:39:59.145,0.123338103294373
-13:39:59.245,0.11629581451416
-13:39:59.345,0.119816958904266
-13:39:59.445,0.123338103294373
-13:39:59.545,0.109253227710724
-13:39:59.645,0.119816958904266
-13:39:59.745,0.119816958904266
-13:39:59.845,0.11277437210083
-13:39:59.945,0.11629581451416
-13:40:00.045,0.11629581451416
-13:40:00.145,0.119816958904266
-13:40:00.245,0.11277437210083
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 3 Motor Frequency.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 3 Motor Frequency.csv
deleted file mode 100644
index bdc3c7c8d..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 3 Motor Frequency.csv
+++ /dev/null
@@ -1,19 +0,0 @@
-Time,Dispenser 3 Motor Frequency
-13:39:54.945,0
-13:39:55.245,0
-13:39:55.545,0
-13:39:55.845,0
-13:39:56.145,0
-13:39:56.445,0
-13:39:56.745,0
-13:39:57.045,0
-13:39:57.345,0
-13:39:57.645,0
-13:39:57.945,0
-13:39:58.245,0
-13:39:58.545,0
-13:39:58.845,0
-13:39:59.145,0
-13:39:59.445,0
-13:39:59.745,0
-13:40:00.045,0
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 3 Pressure.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 3 Pressure.csv
deleted file mode 100644
index 8f0a93237..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 3 Pressure.csv
+++ /dev/null
@@ -1,55 +0,0 @@
-Time,Dispenser 3 Pressure
-13:39:54.945,-0.00342711806297302
-13:39:55.045,-0.00342711806297302
-13:39:55.145,-0.00342711806297302
-13:39:55.245,-0.00342711806297302
-13:39:55.345,-0.00342711806297302
-13:39:55.445,-0.00342711806297302
-13:39:55.545,-0.00342711806297302
-13:39:55.645,-0.00342711806297302
-13:39:55.745,-0.00342711806297302
-13:39:55.845,-0.00342711806297302
-13:39:55.945,-0.00342711806297302
-13:39:56.045,-0.00342711806297302
-13:39:56.145,-0.00342711806297302
-13:39:56.245,-0.00342711806297302
-13:39:56.345,-0.00342711806297302
-13:39:56.445,-0.00342711806297302
-13:39:56.545,-0.00342711806297302
-13:39:56.645,-0.00342711806297302
-13:39:56.745,-0.00342711806297302
-13:39:56.845,-0.00342711806297302
-13:39:56.945,-0.00342711806297302
-13:39:57.045,-0.00342711806297302
-13:39:57.145,-0.00342711806297302
-13:39:57.245,-0.00342711806297302
-13:39:57.345,-0.00342711806297302
-13:39:57.445,-0.00342711806297302
-13:39:57.545,-0.00342711806297302
-13:39:57.645,-0.00342711806297302
-13:39:57.745,-0.00342711806297302
-13:39:57.845,-0.00342711806297302
-13:39:57.945,-0.00342711806297302
-13:39:58.045,-0.00342711806297302
-13:39:58.145,-0.00342711806297302
-13:39:58.245,-0.00342711806297302
-13:39:58.345,-0.00342711806297302
-13:39:58.445,-0.00342711806297302
-13:39:58.545,-0.00342711806297302
-13:39:58.645,-0.00342711806297302
-13:39:58.745,-0.00342711806297302
-13:39:58.845,-0.00342711806297302
-13:39:58.945,-0.00342711806297302
-13:39:59.045,-0.00342711806297302
-13:39:59.145,-0.00342711806297302
-13:39:59.245,-0.00342711806297302
-13:39:59.345,-0.00342711806297302
-13:39:59.445,-0.00342711806297302
-13:39:59.545,-0.00342711806297302
-13:39:59.645,-0.00342711806297302
-13:39:59.745,-0.00342711806297302
-13:39:59.845,-0.00342711806297302
-13:39:59.945,-0.00342711806297302
-13:40:00.045,-0.00342711806297302
-13:40:00.145,-0.00342711806297302
-13:40:00.245,-0.00342711806297302
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Feeder Motor.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Feeder Motor.csv
deleted file mode 100644
index 5080effe1..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Feeder Motor.csv
+++ /dev/null
@@ -1,55 +0,0 @@
-Time,Feeder Motor
-13:39:54.945,0
-13:39:55.045,0
-13:39:55.145,0
-13:39:55.245,0
-13:39:55.345,0
-13:39:55.445,0
-13:39:55.545,0
-13:39:55.645,0
-13:39:55.745,0
-13:39:55.845,0
-13:39:55.945,0
-13:39:56.045,0
-13:39:56.145,0
-13:39:56.245,0
-13:39:56.345,0
-13:39:56.445,0
-13:39:56.545,0
-13:39:56.645,0
-13:39:56.745,0
-13:39:56.845,0
-13:39:56.945,0
-13:39:57.045,0
-13:39:57.145,0
-13:39:57.245,0
-13:39:57.345,0
-13:39:57.445,0
-13:39:57.545,0
-13:39:57.645,0
-13:39:57.745,0
-13:39:57.845,0
-13:39:57.945,0
-13:39:58.045,0
-13:39:58.145,0
-13:39:58.245,0
-13:39:58.345,0
-13:39:58.445,0
-13:39:58.545,0
-13:39:58.645,0
-13:39:58.745,0
-13:39:58.845,0
-13:39:58.945,0
-13:39:59.045,0
-13:39:59.145,0
-13:39:59.245,0
-13:39:59.345,0
-13:39:59.445,0
-13:39:59.545,0
-13:39:59.645,0
-13:39:59.745,0
-13:39:59.845,0
-13:39:59.945,0
-13:40:00.045,0
-13:40:00.145,0
-13:40:00.245,0
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/MIDTANK_JIG.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/MIDTANK_JIG.cs
deleted file mode 100644
index 6b864dfee..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/MIDTANK_JIG.cs
+++ /dev/null
@@ -1,480 +0,0 @@
-using System;
-using System.Text;
-using System.IO;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-using System.Timers;
-
-
-// private static System.Timers.Timer aTimer;
-
-//--------------------------------------------------------------------------------
-const Int32 I2C_ID = 2;
-const int UNIT_UNDER_TEST =3*8;
-const Int32 F3_VALVE_OUT = 0x600008e2;
-//--------------------------------------------------------------------------------
-string path1="P:\\Scripts\\Assemblies\\MidTank\\MidTankLog\\";
-string path2="C:\\MidTankLog\\";
-
-string File_Name1 ;
-string Status;
-//---------------------------
-int [] Convert_Midtank_No = new Int32 [8] {1,3,5,7,2,4,6,8};
-uint [,] ADC_Add_Chnl = new uint [8,2] {
- {0x44,0x20},
- {0x44,0x08},
- {0x46,0x80},
- {0x46,0x20},
- {0x44,0x10},
- {0x44,0x04},
- {0x46,0x40},
- {0x46,0x10},
- };
-
-
-string [,] Units_status = new string[UNIT_UNDER_TEST,2] {
- {"Midtank1_Valve_Air","Not Test"}, //0
- {"Midtank1_Valve_Ink","Not Test"}, //1
- {"Midtank1_Pressure_Sensor","Not Test"}, //2
- {"Midtank2_Valve_Air","Not Test"}, //3
- {"Midtank2_Valve_Ink","Not Test"}, //4
- {"Midtank2_Pressure_Sensor","Not Test"}, //5
- {"Midtank3_Valve_Air","Not Test"}, //6
- {"Midtank3_Valve_Ink","Not Test"}, //7
- {"Midtank3_Pressure_Sensor","Not Test"}, //8
- {"Midtank4_Valve_Air","Not Test"}, //9
- {"Midtank4_Valve_Ink","Not Test"}, //10
- {"Midtank4_Pressure_Sensor","Not Test"}, //11
- {"Midtank5_Valve_Air","Not Test"}, //12
- {"Midtank5_Valve_Ink","Not Test"}, //13
- {"Midtank5_Pressure_Sensor","Not Test"}, //14
- {"Midtank6_Valve_Air","Not Test"}, //15
- {"Midtank6_Valve_Ink","Not Test"}, //16
- {"Midtank6_Pressure_Sensor","Not Test"}, //17
- {"Midtank7_Valve_Air","Not Test"}, //18
- {"Midtank7_Valve_Ink","Not Test"}, //19
- {"Midtank7_Pressure_Sensor","Not Test"}, //20
- {"Midtank8_Valve_Air","Not Test"}, //21
- {"Midtank8_Valve_Ink","Not Test"}, //22
- {"Midtank8_Pressure_Sensor","Not Test"}, //23
- };
-//-----------------------------------------------------
-string MIDTANK_Sn;
-//--------------------------------------------------------------------------------
- // private static void SetTimer()
- // {
- // // Create a timer with a one second interval.
- // aTimer = new System.Timers.Timer(1000);
-// // Hook up the Elapsed event for the timer.
-// aTimer.Elapsed += OnTimedEvent;
-// aTimer.AutoReset = true;
-// aTimer.Enabled = true;
-// }
-
-// private static void OnTimedEvent(Object source, ElapsedEventArgs e)
- // {
-// bool x=0;
-// if (x==true)
-// Label5.Text="Pros";
-// else
-//// Label5.Text=" ";
-// x = !x ;
-//
-// }
-
-
-
-
-
-
-
-
-
-public void OnExecute(StubManager stubManager)
-{
-string path="";
- Form form1 = new Form();
-
-// Set the caption bar text of the form.
- form1.TopMost = true;
- form1.Text = "MIDTANK Test";
- form1.FormBorderStyle = FormBorderStyle.FixedDialog;
- form1.MaximizeBox = false;
- form1.MinimizeBox = false;
- form1.StartPosition = FormStartPosition.CenterScreen;
- form1.AutoSize = true;
- form1.AutoSizeMode = AutoSizeMode.GrowAndShrink;
-// Create buttons to Run.
- Button button1 = new Button ()
- {
- Width = 100,
- Height = 100,
- };
- button1.Text = "Run";
- button1.Location = new Point (40, 100);
- form1.Controls.Add(button1);
-//-----MIDTANK Serial Number -----------
-
- Label Label1 = new Label ()
- {
- Width = 150,
- Height = 20,
- Text =" MIDTANK S/N"
- };
- Label1.Location = new Point (30, 10);
- form1.Controls.Add(Label1);
- TextBox TextBox1 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text =""
- };
- TextBox1.Location = new Point (40, 40);
- form1.Controls.Add(TextBox1);
- //----------LOCATION----------
-
- Label Label3 = new Label ()
- {
- Width = 150,
- Height = 20,
- Text ="LOCATION"
- };
-Label3.Location = new Point (350, 10);
- form1.Controls.Add(Label3);
-
-
-
-TextBox TextBox3 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text =""
- };
-TextBox3.Location = new Point (360, 40);
- form1.Controls.Add(TextBox3);
-
-
-
-
- Label Label5 = new Label ()
- {
- Width = 120,
- Height =100,
- Text = ""
- };
- Label5.Location = new Point (300, 100);
- Label5.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
-
- Label5.Text="";
- Label5.Font = new Font("Arial", 24,FontStyle.Bold);
- form1.Controls.Add(Label5);
-
-//----------------------------
-
-bool BlinkOn = false;
-
-
-
-//--------------------------------------------------------------------------------
-
- button1.Click += (_,__) =>
-
- {
-// SetTimer();
-
-// Label5.Text="Pros";
-
-
-
-
-//--------------------------------------------------------------------------------
-
-
-
-
- Label5.Text = "Pros";
- // if (_click)
- // _show_text.Text = "Fail";
- // else
- // _show_text.Text = "Pass";
-
- // _click = !_click;
- // TextBox1.Text = "";
-
-
-
-//--------------------------------------------------------------------------------
-
-
-
- if (!Directory.Exists(path1))
- {
- path=path2;
- if (!Directory.Exists(path2))
- Directory.CreateDirectory(path2);
- }
- else
- path=path1;
-
- File_Name1=path + TextBox1.Text +"_MIDTANK_" + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".log" ;
-
-
- stubManager.Write(File_Name1 +"\n");
- stubManager.WriteToFile(File_Name1,DateTime.Now +" " );
- stubManager.Write(DateTime.Now +"\n" );
-
- stubManager.AppendToFile(File_Name1,"MIDTANK Test Report" );
- stubManager.Write("MIDTANK Test Report\n" );
-
- stubManager.AppendToFile(File_Name1,"MIDTANK S/N: \t" + TextBox1.Text );
- stubManager.Write("MIDTANK S/N:" + TextBox1.Text +"\n" );
-
-
- stubManager.AppendToFile(File_Name1,"Location:\t" + TextBox3.Text );
- stubManager.Write("Location:" + TextBox3.Text +"\n" );
-
-
-
-//------------------------------- start test -----------
- Test_MIDTANK();
-
- Status=write_to_file();
- stubManager.Write(Status +"\n");
-
- Label5.Text=Status;
-
- // _show_text.Text =Status;
-
- TextBox1.Text="";
- };
-
- form1.ShowDialog();
-
- return ;
- }
-
- //------------------------------------
-int Test_MIDTANK()
-{
- double Pressur_Volt;
- double temp;
- for (Int32 i=1;i<9;i++)
- {
- open_valve(i,0,1) ; //open Air valve
- open_valve(i,1,1) ; //open Ink valve
- Thread.Sleep(2000);
- Pressur_Volt=read_pressuere_sense(i);
- if ((Pressur_Volt>3 )||(Pressur_Volt<2))
- {
- Units_status[(i-1)*3+2,1]="Fail";
- stubManager.Write("pressuere_sense of midtank" + i +"\tFail\n");
- }
- else
- {
- close_valve(i,1,0) ; //close Ink valve
- DialogResult result = MessageBox.Show("ADD 20cc air thru Air valve of Midtank"+ i, "Warning");
- close_valve(i,0,0) ; //close Air valve
- Thread.Sleep(2000);
-
- temp=read_pressuere_sense(i);
- temp=temp-Pressur_Volt;
- if ((temp>0.5) && ( temp <2))
- Units_status[(i-1)*3+2,1]="Pass";
- else
- Units_status[(i-1)*3+2,1]="Fail";
- }
-
- close_valve(i,0,0) ; //close Air valve
- close_valve(i,1,0) ; //close Ink valve
- }
- return 1;
-}
-
-double read_pressuere_sense(Int32 Midtank_Nm)
-{
-double Pressur_Volt;
- adc_configuration((ADC_Add_Chnl[Midtank_Nm-1,0]),(ADC_Add_Chnl[Midtank_Nm-1,1]) ); //configure address and channel of midtank
- adc_set_for_read_ch(ADC_Add_Chnl[Midtank_Nm-1,0]);
- Pressur_Volt =adc_read_ch(ADC_Add_Chnl[Midtank_Nm-1,0]);
-
- stubManager.Write("pressure sense of midtank " + Midtank_Nm + "is " + Pressur_Volt+ "Volt\n");
- return Pressur_Volt;
-}
-
-
-//--------------------------------
-int adc_configuration(uint I2C_Slave_Add,uint channel )
- {
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x00);//Byte 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(channel);//Byte 1 to Write, must be 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02 or 0x01 for different channels
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x80);//Byte 2 to Write
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
- }
-//--------------------------------
-int adc_set_for_read_ch(uint I2C_Slave_Add)
- {
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x01);//Byte 0 to write
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
- }
-//--------------------------------
-
-double adc_read_ch(uint I2C_Slave_Add)
- {
- StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();
- stubI2CReadBytesRequest.I2CId = I2C_ID;
- stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add;
- stubI2CReadBytesRequest.NumberOfBytesToRead = 2; // Number of bytes to read
-
- var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);
- uint temph=0;
- uint templ=0;
- uint temp;
- double calc;
- double calc1;
- temph=response1.ReadBytes[0];
- templ=response1.ReadBytes[1];
- temp = (temph << 8) | templ;
- temp=temp & 0x0fff;
-
- calc = (double)temp *2.5 / 4096.0;
- calc1 = (1.96- calc) * 4.64 + 1.96;
- return calc1;
- }
-//--------------------------------
-int open_valve (int valve_nm,int valve_type,int check_valve) //valve_type=0 is Air ,1 is Ink ; check_valve=1 send feedbak
-{
- int temp1=Convert_Midtank_No[valve_nm-1] ;
-
- string temp;
- SetBit (F3_VALVE_OUT,((valve_type+1)*8)- temp1, 1);
- if (check_valve!=0)
- {
- temp="Air";
- if (valve_type==1)
- temp="Ink";
-
- DialogResult result = MessageBox.Show("Did " + temp + "Valve of Midtank " + valve_nm +" open?", "Warning",MessageBoxButtons.YesNo);
- if(result == DialogResult.No)
- {
- Units_status[(valve_nm-1)*3+valve_type,1]="Fail";
- stubManager.Write(temp +"Valve\tFail\n");
- return 0;
- }
- else
- {
- Units_status[(valve_nm-1)*3+valve_type,1]="Pass";
- stubManager.Write(temp +"Valve\tOpen\n");
- return 1;
- }
-
- }
- return 1;
-
-}
-//--------------------------------
-int close_valve (int valve_nm,int valve_type,int check_valve)
-{
- int temp1=Convert_Midtank_No[valve_nm-1];
-
- string temp;
- SetBit (F3_VALVE_OUT,((valve_type+1)*8)- temp1, 0);
- if (check_valve!=0)
- {
- temp="Air";
- if (valve_type==1)
- temp="Ink";
-
- DialogResult result = MessageBox.Show("Did " + temp +" Valve of Midtank " + valve_nm +" close?", "Warning",MessageBoxButtons.YesNo);
- if(result == DialogResult.No)
- {
- Units_status[(valve_nm-1)*3+valve_type,1]="Fail";
- stubManager.Write(temp +"Valve\tFail\n");
- return 0;
- }
- else
- {
- Units_status[(valve_nm-1)*3+valve_type,1]="Pass";
- stubManager.Write(temp +"Valve\tclose\n");
- return 1;
- }
- }
- return 1;
-
-
-
-
-}
-//--------------------------------
-Int32 SetBit(Int32 Adr, Int32 BitNo, Int32 Bit)
-{
- Int32 BitMask;
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" , F3_VALVE_OUT);
- Int32 RV = (Int32) response.Value & 0xffff;
-
-
- if (Bit == 0x1)
- {
- BitMask = 0x1 << BitNo;
- RV = RV | BitMask;
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_VALVE_OUT , RV);
- }
- else if (Bit == 0x0)
- {
- BitMask = ~(0x1 << BitNo);
- RV = RV & BitMask;
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_VALVE_OUT , RV);
- }
- return 1;
-}
- //------------------------------------
-string write_to_file()
-{
- stubManager.Write("write_to_file\n");
-
-string Stemp="Pass";
- for (int i=0;i<UNIT_UNDER_TEST;i++)
- {
- stubManager.AppendToFile(File_Name1,Units_status[i,0]+"\t" + Units_status[i,1] );
- stubManager.Write(Units_status[i,0]+"\t" + Units_status[i,1]+"\n" );
-
- if ((Units_status[i,1]=="Fail")||(Units_status[i,1]=="Not Test"))
- Stemp="Fail";
- }
- if (Stemp=="Fail")
- {
- stubManager.AppendToFile(File_Name1,"-------------MidTank Fail ------------ ");
- stubManager.Write("-------------MidTank Fail ------------ ");
- }
- else
- {
- stubManager.AppendToFile(File_Name1,"-------------MidTank Pass ------------ )");
- stubManager.Write("-------------MidTank Pass ------------ ");
- }
-
- return Stemp;
-
-}
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Midtank_Valves_test.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Midtank_Valves_test.cs
deleted file mode 100644
index bacbfdcc1..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Midtank_Valves_test.cs
+++ /dev/null
@@ -1,65 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-include "..\..\Defines\Tango_Defines_Basic.cs"
-include "..\Defines\Tango_Defines_GPO.cs"
-//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_Basic.cs"
-//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_GPO.cs"
-
-
-public void OnExecute(StubManager stubManager)
-{
-int i=0;
-int midtankno = 0;
-while(midtankno!=99)
- {
- var response = stubManager.ShowResponseWindow("Enter 1-16 to open Midtank, 101-116 to close , 0 - open all midtank ,100-close all midtank: press 99 to quit ", "");
- //stubManager.WriteLine(response);
- stubManager.Write("\n");
- midtankno = int.Parse(response);
-
-
- if(midtankno==0 )
- {
- for (i=0;i<16;i++)
- {
- SetBit (FPGA3, F3_VALVE_OUT,15-i, 1);
- stubManager.Write("Setting GPO F3_VALVE_OUT, bit " + (15-i) + " On\n");
- Thread.Sleep(1000);
- }
- }
- else if(midtankno==100 )
- {
- for (i=0;i<16;i++)
- {
- SetBit (FPGA3, F3_VALVE_OUT,15- i, 0);
- stubManager.Write("Setting GPO F3_VALVE_OUT, bit " + (15-i) + " Off\n");
- Thread.Sleep(1000);
- }
- }
-
- else if(midtankno<17 )
- {
- midtankno=midtankno-1; //start from 0 to 15
- SetBit (FPGA3, F3_VALVE_OUT,15- i, 1);
- stubManager.Write("Setting GPO F3_VALVE_OUT, bit " + (15-i) + " On\n");
- }
-
- else if(midtankno>100 )
- {
- midtankno=midtankno-101; //start from 0 to 15
- SetBit (FPGA3, F3_VALVE_OUT,15- i, 0);
- stubManager.Write("Setting GPO F3_VALVE_OUT, bit " + (15-i) + " Off\n");
- }
- }
-
-}
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Midtank_pressure_sensors.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Midtank_pressure_sensors.cs
index e2bacf5f4..682ef322d 100644
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Midtank_pressure_sensors.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Midtank_pressure_sensors.cs
@@ -90,7 +90,6 @@ int adc_set_for_read_ch(uint I2C_Slave_Add)
}
-
int adc_read_ch(uint I2C_Slave_Add)
{
StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();
@@ -99,27 +98,16 @@ int adc_read_ch(uint I2C_Slave_Add)
stubI2CReadBytesRequest.NumberOfBytesToRead = 2; // Number of bytes to read
var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);
- UInt32 temph=0;
- UInt32 templ=0;
- UInt32 temp;
- double calc;
- double calc1;
+ uint temph=0;
+ uint templ=0;
+ uint temp;
for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i=i+2)
{
temph=response1.ReadBytes[i];
templ=response1.ReadBytes[i+1];
temp = (temph << 8) | templ;
temp=temp & 0x0fff;
-
- calc = (double)temp *2.5 / 4096.0;
- calc1 = (1.96- calc) * 4.64 + 1.96;
-
-
- // temp=temp*3300;
- // temp=temp/4096;
-
- stubManager.Write(calc1);
- stubManager.Write("mV\n");
+ stubManager.WriteHex(temp,4);
}
@@ -133,49 +121,47 @@ public void OnExecute(StubManager stubManager)
{
- stubManager.Write("-----------MIDTANK_PRESSESENS-----------\n ");
+ stubManager.Write("\n-----------MIDTANK_PRESSESENS----------- ");
- stubManager.Write("Midtank-1= ");
+ stubManager.Write("\n1_1= ");
adc_configuration(0x44,0x20); //a2d_address 0x44 channel channel 2
+// adc_set_for_read_temp(0x44);
+// adc_read_temp(0x44);
+ adc_set_for_read_ch(0x44);
+ adc_read_ch(0x44);
+
+ stubManager.Write("\n1_2= ");
+ adc_configuration(0x44,0x10); //a2d_address 0x44 channel channel 3
adc_set_for_read_ch(0x44);
adc_read_ch(0x44);
-
- stubManager.Write("Midtank-2= ");
+ stubManager.Write("\n2_1= ");
adc_configuration(0x44,0x08); //a2d_address 0x44 channel channel 4
adc_set_for_read_ch(0x44);
adc_read_ch(0x44);
+ stubManager.Write("\n2_2= ");
+ adc_configuration(0x44,0x04); //a2d_address 0x44 channel channel 5
+ adc_set_for_read_ch(0x44);
+ adc_read_ch(0x44);
- stubManager.Write("Midtank-3= ");
+ stubManager.Write("\n3_1= ");
adc_configuration(0x46,0x80); //a2d_address 0x46 channel channel 0
adc_set_for_read_ch(0x46);
adc_read_ch(0x46);
-
- stubManager.Write("Midtank-4= ");
- adc_configuration(0x46,0x20); //a2d_address 0x46 channel channel 2
+
+ stubManager.Write("\n3_2= ");
+ adc_configuration(0x46,0x40); //a2d_address 0x46 channel channel 1
adc_set_for_read_ch(0x46);
adc_read_ch(0x46);
-
-
- stubManager.Write("Midtank-5= ");
- adc_configuration(0x44,0x10); //a2d_address 0x44 channel channel 3
- adc_set_for_read_ch(0x44);
- adc_read_ch(0x44);
-
- stubManager.Write("Midtank-6= ");
- adc_configuration(0x44,0x04); //a2d_address 0x44 channel channel 5
- adc_set_for_read_ch(0x44);
- adc_read_ch(0x44);
-
- stubManager.Write("Midtank-7= ");
- adc_configuration(0x46,0x40); //a2d_address 0x46 channel channel 1
+ stubManager.Write("\n4_1= ");
+ adc_configuration(0x46,0x20); //a2d_address 0x46 channel channel 2
adc_set_for_read_ch(0x46);
adc_read_ch(0x46);
- stubManager.Write("Midtank-8= ");
+ stubManager.Write("\n4_2= ");
adc_configuration(0x46,0x10); //a2d_address 0x46 channel channel 3
adc_set_for_read_ch(0x46);
adc_read_ch(0x46);
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/New_Calibrate_Midtank_pressure_sensors.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/New_Calibrate_Midtank_pressure_sensors.cs
deleted file mode 100644
index 00ca4e8eb..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/New_Calibrate_Midtank_pressure_sensors.cs
+++ /dev/null
@@ -1,451 +0,0 @@
-using System;
-using System.IO;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.PMR.EmbeddedParameters;
-using Tango.Stubs;
-
-//----------------------
-const double MIN_SLOP=0.7;
-const double MAX_SLOP=1.4;
-const double ERROR_SLOP=-1;
-const double MIN_50cc_on_volt=2.3;
-const double MAX_50cc_on_volt=3.2;
-const double ERROR_50cc_on_volt=-1;
-
-int [] Convert_Midtank_No = new Int32 [8] {1,3,5,7,2,4,6,8};
-uint [,] ADC_Add_Chnl = new uint [8,2] {
- {0x44,0x20},
- {0x44,0x08},
- {0x46,0x80},
- {0x46,0x20},
- {0x44,0x10},
- {0x44,0x04},
- {0x46,0x40},
- {0x46,0x10},
- };
-
-
-const Int32 F3_VALVE_OUT = 0x600008E2 ;
-string Machine_SN ;
-private const string FILE_PATH = @"C:\MidTankLog\";
-string File_name;
-double Full_Cartridge=1000; // on CC
-double Slop=0.92;
-//----------------------
-const Int32 I2C_ID = 2;
-//const Int32 I2C_Slave_Add = 0x46; //must be 0x40, 0x44 or 0x46
-//----------------------
-
-
-public void OnExecute(StubManager stubManager)
-{
- Int32 Timout ;
- Int32 Interval;
- Int32 midtankno = 0;
- double Full_Point=0; //on Voltage
- double resualt;
- double Sum=0 ;
- double Old_Sum=0 ;
- double Start_Point=0;
-
-
- if (!Directory.Exists(FILE_PATH))
- {
- Directory.CreateDirectory(FILE_PATH);
- }
-
-
-
- var response = stubManager.ShowResponseWindow("Enter Midtank S/N: ", "");
- stubManager.Write("\n");
- Machine_SN = response;
- stubManager.WriteLine(Machine_SN);
- File_name= FILE_PATH +Machine_SN + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".csv";
- stubManager.Write(File_name);
- stubManager.WriteToFile(File_name,"MidTank S/N:," + Machine_SN);
-
-
- var response1 = stubManager.ShowResponseWindow("Enter Midtank number to calibrate (1-8):", "");
- stubManager.WriteLine(response1);
- midtankno = Int32.Parse(response1);
- stubManager.AppendToFile(File_name,"MidTank Number:\t" + response1);
- if (midtankno==8)
- {
- Slop=1;
- Timout=60; //60 minutes
- Interval=60; //60 second
- }
- else
- {
- Slop=0.92;
- Timout=10*2; //10 minutes
- Interval=30; //30 second
-
- }
- var response10 = stubManager.ShowResponseWindow("Enter Cartridge Valume on CC (500-1500):", "");
- stubManager.WriteLine(response10);
- Full_Cartridge = double.Parse(response10);
- stubManager.AppendToFile(File_name,"Cartridge Valume:\t" + response10);
- stubManager.AppendToFile(File_name,"Slop value:\t" + Slop);
-
-
- DialogResult result = MessageBox.Show("Are you sure to calibrate Midtank No: "+ midtankno + " with "+ Full_Cartridge +" CC" , "Warning",MessageBoxButtons.YesNo);
- if(result == DialogResult.Yes)
- {
-
-
-
- string box_msg = "Please Insert cartridge ";
-
- MessageBox.Show(box_msg);
-
- open_valve(midtankno,1,1) ; //open Air valve
- open_valve(midtankno,0,1) ; //open Ink valve
- Int32 i=0;
- while (i<Timout) //check for 15 minitus
- {
- Sum=0;
- for (Int32 j=0;j<Interval;j++)
- {
- resualt=read_pressure_sensor(midtankno);
- stubManager.AppendToFile(File_name,resualt+",V");
- Sum=Sum+resualt;
- Thread.Sleep(1000);
- }
-
-
- if (i==0)
- Start_Point=Sum/Interval;
-
- if (Sum>Old_Sum)
- Old_Sum=Sum-Old_Sum;
- else
- Old_Sum=Old_Sum-Sum;
-
-
- if ((check_valve(midtankno,1) != 0) && (check_valve(midtankno,0) != 0))
- {
- i++;
- if ( Old_Sum <0.02)
- i=Timout+1; //end
- Old_Sum=Sum;
- }
- else
- {
- open_valve(midtankno,1,0) ; //open Air valve
- open_valve(midtankno,0,0) ; //open Ink valve
- Old_Sum=0;
-
- }
- }
- Full_Point=Sum/Interval;
-
-
- close_valve(midtankno,1,1) ; //close Air valve
- close_valve(midtankno,0,1) ; //close Ink valve
-
-
- if (insert_slop_t_eeprom(Full_Point, midtankno,Start_Point)==0)
- {
- box_msg ="Turn Power Off and On to finish the calibration.";
- MessageBox.Show(box_msg);
- }
- else
- {
- box_msg ="Calibration error";
- MessageBox.Show(box_msg);
-
- }
- }
-
-}
-
-
- int insert_slop_t_eeprom( double FullPoint,Int32 midtankno, double StartPoint)
-{
- stubManager.Write("\n StartPoint = "+ StartPoint +" \n");
- stubManager.Write("\n FullPoint = "+ FullPoint +" \n");
-
- StartPoint=FullPoint-StartPoint;
- StartPoint=1000*StartPoint/Full_Cartridge;
-
- stubManager.Write("\n slop = "+ StartPoint +" \n");
-
- if ((StartPoint>0.7 ) && (StartPoint<1.6 ))
- {
- MidTankDataSetupRequest midTankDataSetupRequest = new MidTankDataSetupRequest();
-
- MidTankData midTankData = new MidTankData();
- midTankData.MidTankId = Convert.ToUInt32 (midtankno-1);
- midTankData.InitialOffsetA =FullPoint - (Full_Cartridge/1000-0.1)/Slop;
- midTankData.SlopeB = Slop;
-
- stubManager.Write("\nMidtank No:" + midtankno + "=\tVoltage Zero is ="+(FullPoint - (Full_Cartridge/1000-0.1)/Slop)+"\tSlop="+ Slop);
- stubManager.AppendToFile(File_name,"\nMidtank No:" + midtankno + "=\tVoltage Zero is ="+(FullPoint - (Full_Cartridge/1000-0.1)/Slop)+"\tSlop="+ Slop);
-
-
- midTankDataSetupRequest.MidTankInfo.Add(midTankData);
-
-
- var response = stubManager.Run<MidTankDataSetupResponse>(midTankDataSetupRequest);
-
- return 0;
- }
- else
- stubManager.Write("\nError");
- stubManager.AppendToFile(File_name,"\n Slop Error");
- return 1;
-
-}
-
-
-int adc_configuration(uint I2C_Slave_Add,uint channel )
- {
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x00);//Byte 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(channel);//Byte 1 to Write, must be 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02 or 0x01 for different channels
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x80);//Byte 2 to Write
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
- }
-
-
-int adc_set_for_read_ch(uint I2C_Slave_Add)
- {
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x01);//Byte 0 to write
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
- }
-
-
-
-
-double adc_read_ch(uint I2C_Slave_Add)
- {
- StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();
- stubI2CReadBytesRequest.I2CId = I2C_ID;
- stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add;
- stubI2CReadBytesRequest.NumberOfBytesToRead = 2; // Number of bytes to read
-
- var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);
- uint temph=0;
- uint templ=0;
- uint temp;
- double calc;
- double calc1;
- double calc2;
- temph=response1.ReadBytes[0];
- templ=response1.ReadBytes[1];
- temp = (temph << 8) | templ;
- temp=temp & 0x0fff;
-
- calc = (double)temp *2.5 / 4096.0;
-
- calc1 = (1.96- calc) * 4.64 + 1.96;
- stubManager.Write("Vsensor [volts]:\t");
- stubManager.Write(calc1 + "\n");
-
-
- return calc1;
- }
-
-double read_pressure_sensor(Int32 i )
- {
-double resualt =0 ;
- switch (i)
- {
- case 1:
- adc_configuration(0x44,0x20); //a2d_address 0x44 channel channel 2
- adc_set_for_read_ch(0x44);
- resualt=adc_read_ch(0x44);
- break;
-
- case 2:
- adc_configuration(0x44,0x08); //a2d_address 0x44 channel channel 4
- adc_set_for_read_ch(0x44);
- resualt=adc_read_ch(0x44);
- break;
-
- case 3:
- adc_configuration(0x46,0x80); //a2d_address 0x46 channel channel 0
- adc_set_for_read_ch(0x46);
- resualt=adc_read_ch(0x46);
- break;
-
- case 4:
- adc_configuration(0x46,0x20); //a2d_address 0x46 channel channel 2
- adc_set_for_read_ch(0x46);
- resualt=adc_read_ch(0x46);
- break;
-
- case 5:
- adc_configuration(0x44,0x10); //a2d_address 0x44 channel channel 3
- adc_set_for_read_ch(0x44);
- resualt=adc_read_ch(0x44);
- break;
-
- case 6:
- adc_configuration(0x44,0x04); //a2d_address 0x44 channel channel 5
- adc_set_for_read_ch(0x44);
- resualt=adc_read_ch(0x44);
- break;
-
- case 7:
- adc_configuration(0x46,0x40); //a2d_address 0x46 channel channel 1
- adc_set_for_read_ch(0x46);
- resualt=adc_read_ch(0x46);
- break;
-
- case 8:
- adc_configuration(0x46,0x10); //a2d_address 0x46 channel channel 3
- adc_set_for_read_ch(0x46);
- resualt=adc_read_ch(0x46);
- break;
-
- default:
- stubManager.Write("Error");
-
- break;
- }
-
- return resualt;
- }
-
-
-//--------------------------------
-int open_valve (int valve_nm,int valve_type,int check_valve) //valve_type=0 is Air ,1 is Ink ; check_valve=1 send feedbak
-{
- int temp1=Convert_Midtank_No[valve_nm-1] ;
-
- string temp;
- SetBit (F3_VALVE_OUT,(((valve_type+1)*8)- temp1), 1);
-
- if (check_valve!=0)
- {
- temp="Air";
- if (valve_type==1)
- temp="Ink";
-
- DialogResult result = MessageBox.Show("Did " + temp + "Valve of Midtank " + valve_nm +" open?", "Warning",MessageBoxButtons.YesNo);
- if(result == DialogResult.No)
- {
-// Units_status[(valve_nm-1)*3+valve_type,1]="Fail";
- stubManager.Write(temp +"Valve\tFail\n");
- return 0;
- }
- else
- {
-// Units_status[(valve_nm-1)*3+valve_type,1]="Pass";
- stubManager.Write(temp +"Valve\tOpen\n");
- return 1;
- }
-
- }
- return 1;
-
-}
-//--------------------------------
-int close_valve (int valve_nm,int valve_type,int check_valve)
-{
- int temp1=Convert_Midtank_No[valve_nm-1];
-
- string temp;
- SetBit (F3_VALVE_OUT,(((valve_type+1)*8)- temp1), 0);
- if (check_valve!=0)
- {
- temp="Air";
- if (valve_type==1)
- temp="Ink";
-
- DialogResult result = MessageBox.Show("Did " + temp +" Valve of Midtank " + valve_nm +" close?", "Warning",MessageBoxButtons.YesNo);
- if(result == DialogResult.No)
- {
-// Units_status[(valve_nm-1)*3+valve_type,1]="Fail";
- stubManager.Write(temp +"Valve\tFail\n");
- return 0;
- }
- else
- {
-// Units_status[(valve_nm-1)*3+valve_type,1]="Pass";
- stubManager.Write(temp +"Valve\tclose\n");
- return 1;
- }
- }
- return 1;
-
-}
-
-public Int32 SetBit(Int32 Adr, Int32 BitNo, Int32 Bit)
-{
- Int32 BitMask;
- var RetVal = Fpga_Read_Reg(Adr);
- Int32 RV = (Int32) RetVal.Value;
-
- if (Bit == 0x1)
- {
- BitMask = 0x1 << BitNo;
- RV = RV | BitMask;
- Fpga_Write_Reg( Adr, RV );
- }
- else if (Bit == 0x0)
- {
- BitMask = ~(0x1 << BitNo);
- RV = RV & BitMask;
- Fpga_Write_Reg(Adr, RV );
- }
- return 1;
-}
-
-int Fpga_Write_Reg(Int32 Addr, Int32 Data)
-{
- var response = stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,Addr, Data);
-
- return 1;
-}
-
-
-Int32 check_valve (Int32 valve_nm,int valve_type)
-{
- Int32 temp1=Convert_Midtank_No[valve_nm-1];
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F3_VALVE_OUT);
- Int32 RV =(Int32) response.Value & 0xffff ;
- RV = RV & ( 0x1 << (((valve_type+1)*8)- temp1));
- return RV;
-
-}
-
-
-StubFpgaReadRegResponse Fpga_Read_Reg(Int32 Addr)
-{
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,Addr);
- response.Value = response.Value & 0xffff;
-
- return response;
-}
-
-
-
-
-//end mati \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Poller Motor.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Poller Motor.csv
deleted file mode 100644
index e42f3c309..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Poller Motor.csv
+++ /dev/null
@@ -1,55 +0,0 @@
-Time,Poller Motor
-13:39:54.945,0
-13:39:55.045,0
-13:39:55.145,0
-13:39:55.245,0
-13:39:55.345,0
-13:39:55.445,0
-13:39:55.545,0
-13:39:55.645,0
-13:39:55.745,0
-13:39:55.845,0
-13:39:55.945,0
-13:39:56.045,0
-13:39:56.145,0
-13:39:56.245,0
-13:39:56.345,0
-13:39:56.445,0
-13:39:56.545,0
-13:39:56.645,0
-13:39:56.745,0
-13:39:56.845,0
-13:39:56.945,0
-13:39:57.045,0
-13:39:57.145,0
-13:39:57.245,0
-13:39:57.345,0
-13:39:57.445,0
-13:39:57.545,0
-13:39:57.645,0
-13:39:57.745,0
-13:39:57.845,0
-13:39:57.945,0
-13:39:58.045,0
-13:39:58.145,0
-13:39:58.245,0
-13:39:58.345,0
-13:39:58.445,0
-13:39:58.545,0
-13:39:58.645,0
-13:39:58.745,0
-13:39:58.845,0
-13:39:58.945,0
-13:39:59.045,0
-13:39:59.145,0
-13:39:59.245,0
-13:39:59.345,0
-13:39:59.445,0
-13:39:59.545,0
-13:39:59.645,0
-13:39:59.745,0
-13:39:59.845,0
-13:39:59.945,0
-13:40:00.045,0
-13:40:00.145,0
-13:40:00.245,0
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Right Dancer.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Right Dancer.csv
deleted file mode 100644
index 9efc47b7e..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Right Dancer.csv
+++ /dev/null
@@ -1,541 +0,0 @@
-Time,Right Dancer
-13:39:54.945,12900
-13:39:54.955,12900
-13:39:54.965,12900
-13:39:54.975,12900
-13:39:54.985,12900
-13:39:54.995,12900
-13:39:55.005,12900
-13:39:55.015,12900
-13:39:55.025,12900
-13:39:55.035,12900
-13:39:55.045,12900
-13:39:55.055,12900
-13:39:55.065,12900
-13:39:55.075,12900
-13:39:55.085,12900
-13:39:55.095,12900
-13:39:55.105,12900
-13:39:55.115,12900
-13:39:55.125,12900
-13:39:55.135,12900
-13:39:55.145,12900
-13:39:55.155,12900
-13:39:55.165,12900
-13:39:55.175,12900
-13:39:55.185,12900
-13:39:55.195,12900
-13:39:55.205,12900
-13:39:55.215,12900
-13:39:55.225,12900
-13:39:55.235,12900
-13:39:55.245,12900
-13:39:55.255,12900
-13:39:55.265,12900
-13:39:55.275,12900
-13:39:55.285,12900
-13:39:55.295,12900
-13:39:55.305,12900
-13:39:55.315,12900
-13:39:55.325,12900
-13:39:55.335,12900
-13:39:55.345,12900
-13:39:55.355,12900
-13:39:55.365,12900
-13:39:55.375,12900
-13:39:55.385,12900
-13:39:55.395,12900
-13:39:55.405,12900
-13:39:55.415,12900
-13:39:55.425,12900
-13:39:55.435,12900
-13:39:55.445,12900
-13:39:55.455,12900
-13:39:55.465,12900
-13:39:55.475,12900
-13:39:55.485,12900
-13:39:55.495,12900
-13:39:55.505,12900
-13:39:55.515,12900
-13:39:55.525,12900
-13:39:55.535,12900
-13:39:55.545,12900
-13:39:55.555,12900
-13:39:55.565,12900
-13:39:55.575,12900
-13:39:55.585,12900
-13:39:55.595,12900
-13:39:55.605,12900
-13:39:55.615,12900
-13:39:55.625,12900
-13:39:55.635,12900
-13:39:55.645,12900
-13:39:55.655,12900
-13:39:55.665,12900
-13:39:55.675,12900
-13:39:55.685,12900
-13:39:55.695,12900
-13:39:55.705,12900
-13:39:55.715,12900
-13:39:55.725,12900
-13:39:55.735,12900
-13:39:55.745,12900
-13:39:55.755,12900
-13:39:55.765,12900
-13:39:55.775,12900
-13:39:55.785,12900
-13:39:55.795,12900
-13:39:55.805,12900
-13:39:55.815,12900
-13:39:55.825,12900
-13:39:55.835,12900
-13:39:55.845,12900
-13:39:55.855,12900
-13:39:55.865,12900
-13:39:55.875,12900
-13:39:55.885,12900
-13:39:55.895,12900
-13:39:55.905,12900
-13:39:55.915,12900
-13:39:55.925,12900
-13:39:55.935,12900
-13:39:55.945,12900
-13:39:55.955,12900
-13:39:55.965,12900
-13:39:55.975,12900
-13:39:55.985,12900
-13:39:55.995,12900
-13:39:56.005,12900
-13:39:56.015,12900
-13:39:56.025,12900
-13:39:56.035,12900
-13:39:56.045,12900
-13:39:56.055,12900
-13:39:56.065,12900
-13:39:56.075,12900
-13:39:56.085,12900
-13:39:56.095,12900
-13:39:56.105,12900
-13:39:56.115,12900
-13:39:56.125,12900
-13:39:56.135,12900
-13:39:56.145,12900
-13:39:56.155,12900
-13:39:56.165,12900
-13:39:56.175,12900
-13:39:56.185,12900
-13:39:56.195,12900
-13:39:56.205,12900
-13:39:56.215,12900
-13:39:56.225,12900
-13:39:56.235,12900
-13:39:56.245,12900
-13:39:56.255,12900
-13:39:56.265,12900
-13:39:56.275,12900
-13:39:56.285,12900
-13:39:56.295,12900
-13:39:56.305,12900
-13:39:56.315,12900
-13:39:56.325,12900
-13:39:56.335,12900
-13:39:56.345,12900
-13:39:56.355,12900
-13:39:56.365,12900
-13:39:56.375,12900
-13:39:56.385,12900
-13:39:56.395,12900
-13:39:56.405,12900
-13:39:56.415,12900
-13:39:56.425,12900
-13:39:56.435,12900
-13:39:56.445,12900
-13:39:56.455,12900
-13:39:56.465,12900
-13:39:56.475,12900
-13:39:56.485,12900
-13:39:56.495,12900
-13:39:56.505,12900
-13:39:56.515,12900
-13:39:56.525,12900
-13:39:56.535,12900
-13:39:56.545,12900
-13:39:56.555,12900
-13:39:56.565,12900
-13:39:56.575,12900
-13:39:56.585,12900
-13:39:56.595,12900
-13:39:56.605,12900
-13:39:56.615,12900
-13:39:56.625,12900
-13:39:56.635,12900
-13:39:56.645,12900
-13:39:56.655,12900
-13:39:56.665,12900
-13:39:56.675,12900
-13:39:56.685,12900
-13:39:56.695,12900
-13:39:56.705,12900
-13:39:56.715,12900
-13:39:56.725,12900
-13:39:56.735,12900
-13:39:56.745,12900
-13:39:56.755,12900
-13:39:56.765,12900
-13:39:56.775,12900
-13:39:56.785,12900
-13:39:56.795,12900
-13:39:56.805,12900
-13:39:56.815,12900
-13:39:56.825,12900
-13:39:56.835,12900
-13:39:56.845,12900
-13:39:56.855,12900
-13:39:56.865,12900
-13:39:56.875,12900
-13:39:56.885,12900
-13:39:56.895,12900
-13:39:56.905,12900
-13:39:56.915,12900
-13:39:56.925,12900
-13:39:56.935,12900
-13:39:56.945,12900
-13:39:56.955,12900
-13:39:56.965,12900
-13:39:56.975,12900
-13:39:56.985,12900
-13:39:56.995,12900
-13:39:57.005,12900
-13:39:57.015,12900
-13:39:57.025,12900
-13:39:57.035,12900
-13:39:57.045,12900
-13:39:57.055,12900
-13:39:57.065,12900
-13:39:57.075,12900
-13:39:57.085,12900
-13:39:57.095,12900
-13:39:57.105,12900
-13:39:57.115,12900
-13:39:57.125,12900
-13:39:57.135,12900
-13:39:57.145,12900
-13:39:57.155,12900
-13:39:57.165,12900
-13:39:57.175,12900
-13:39:57.185,12900
-13:39:57.195,12900
-13:39:57.205,12900
-13:39:57.215,12900
-13:39:57.225,12900
-13:39:57.235,12900
-13:39:57.245,12900
-13:39:57.255,12900
-13:39:57.265,12900
-13:39:57.275,12900
-13:39:57.285,12900
-13:39:57.295,12900
-13:39:57.305,12900
-13:39:57.315,12900
-13:39:57.325,12900
-13:39:57.335,12900
-13:39:57.345,12900
-13:39:57.355,12900
-13:39:57.365,12900
-13:39:57.375,12900
-13:39:57.385,12900
-13:39:57.395,12900
-13:39:57.405,12900
-13:39:57.415,12900
-13:39:57.425,12900
-13:39:57.435,12900
-13:39:57.445,12900
-13:39:57.455,12900
-13:39:57.465,12900
-13:39:57.475,12900
-13:39:57.485,12900
-13:39:57.495,12900
-13:39:57.505,12900
-13:39:57.515,12900
-13:39:57.525,12900
-13:39:57.535,12900
-13:39:57.545,12900
-13:39:57.555,12900
-13:39:57.565,12900
-13:39:57.575,12900
-13:39:57.585,12900
-13:39:57.595,12900
-13:39:57.605,12900
-13:39:57.615,12900
-13:39:57.625,12900
-13:39:57.635,12900
-13:39:57.645,12900
-13:39:57.655,12900
-13:39:57.665,12900
-13:39:57.675,12900
-13:39:57.685,12900
-13:39:57.695,12900
-13:39:57.705,12900
-13:39:57.715,12900
-13:39:57.725,12900
-13:39:57.735,12900
-13:39:57.745,12900
-13:39:57.755,12900
-13:39:57.765,12900
-13:39:57.775,12900
-13:39:57.785,12900
-13:39:57.795,12900
-13:39:57.805,12900
-13:39:57.815,12900
-13:39:57.825,12900
-13:39:57.835,12900
-13:39:57.845,12900
-13:39:57.855,12900
-13:39:57.865,12900
-13:39:57.875,12900
-13:39:57.885,12900
-13:39:57.895,12900
-13:39:57.905,12900
-13:39:57.915,12900
-13:39:57.925,12900
-13:39:57.935,12900
-13:39:57.945,12900
-13:39:57.955,12900
-13:39:57.965,12900
-13:39:57.975,12900
-13:39:57.985,12900
-13:39:57.995,12900
-13:39:58.005,12900
-13:39:58.015,12900
-13:39:58.025,12900
-13:39:58.035,12900
-13:39:58.045,12900
-13:39:58.055,12900
-13:39:58.065,12900
-13:39:58.075,12900
-13:39:58.085,12900
-13:39:58.095,12900
-13:39:58.105,12900
-13:39:58.115,12900
-13:39:58.125,12900
-13:39:58.135,12900
-13:39:58.145,12900
-13:39:58.155,12900
-13:39:58.165,12900
-13:39:58.175,12900
-13:39:58.185,12900
-13:39:58.195,12900
-13:39:58.205,12900
-13:39:58.215,12900
-13:39:58.225,12900
-13:39:58.235,12900
-13:39:58.245,12900
-13:39:58.255,12900
-13:39:58.265,12900
-13:39:58.275,12900
-13:39:58.285,12900
-13:39:58.295,12900
-13:39:58.305,12900
-13:39:58.315,12900
-13:39:58.325,12900
-13:39:58.335,12900
-13:39:58.345,12900
-13:39:58.355,12900
-13:39:58.365,12900
-13:39:58.375,12900
-13:39:58.385,12900
-13:39:58.395,12900
-13:39:58.405,12900
-13:39:58.415,12900
-13:39:58.425,12900
-13:39:58.435,12900
-13:39:58.445,12900
-13:39:58.455,12900
-13:39:58.465,12900
-13:39:58.475,12900
-13:39:58.485,12900
-13:39:58.495,12900
-13:39:58.505,12900
-13:39:58.515,12900
-13:39:58.525,12900
-13:39:58.535,12900
-13:39:58.545,12900
-13:39:58.555,12900
-13:39:58.565,12900
-13:39:58.575,12900
-13:39:58.585,12900
-13:39:58.595,12900
-13:39:58.605,12900
-13:39:58.615,12900
-13:39:58.625,12900
-13:39:58.635,12900
-13:39:58.645,12900
-13:39:58.655,12900
-13:39:58.665,12900
-13:39:58.675,12900
-13:39:58.685,12900
-13:39:58.695,12900
-13:39:58.705,12900
-13:39:58.715,12900
-13:39:58.725,12900
-13:39:58.735,12900
-13:39:58.745,12900
-13:39:58.755,12900
-13:39:58.765,12900
-13:39:58.775,12900
-13:39:58.785,12900
-13:39:58.795,12900
-13:39:58.805,12900
-13:39:58.815,12900
-13:39:58.825,12900
-13:39:58.835,12900
-13:39:58.845,12900
-13:39:58.855,12900
-13:39:58.865,12900
-13:39:58.875,12900
-13:39:58.885,12900
-13:39:58.895,12900
-13:39:58.905,12900
-13:39:58.915,12900
-13:39:58.925,12900
-13:39:58.935,12900
-13:39:58.945,12900
-13:39:58.955,12900
-13:39:58.965,12900
-13:39:58.975,12900
-13:39:58.985,12900
-13:39:58.995,12900
-13:39:59.005,12900
-13:39:59.015,12900
-13:39:59.025,12900
-13:39:59.035,12900
-13:39:59.045,12900
-13:39:59.055,12900
-13:39:59.065,12900
-13:39:59.075,12900
-13:39:59.085,12900
-13:39:59.095,12900
-13:39:59.105,12900
-13:39:59.115,12900
-13:39:59.125,12900
-13:39:59.135,12900
-13:39:59.145,12900
-13:39:59.155,12900
-13:39:59.165,12900
-13:39:59.175,12900
-13:39:59.185,12900
-13:39:59.195,12900
-13:39:59.205,12900
-13:39:59.215,12900
-13:39:59.225,12900
-13:39:59.235,12900
-13:39:59.245,12900
-13:39:59.255,12900
-13:39:59.265,12900
-13:39:59.275,12900
-13:39:59.285,12900
-13:39:59.295,12900
-13:39:59.305,12900
-13:39:59.315,12900
-13:39:59.325,12900
-13:39:59.335,12900
-13:39:59.345,12900
-13:39:59.355,12900
-13:39:59.365,12900
-13:39:59.375,12900
-13:39:59.385,12900
-13:39:59.395,12900
-13:39:59.405,12900
-13:39:59.415,12900
-13:39:59.425,12900
-13:39:59.435,12900
-13:39:59.445,12900
-13:39:59.455,12900
-13:39:59.465,12900
-13:39:59.475,12900
-13:39:59.485,12900
-13:39:59.495,12900
-13:39:59.505,12900
-13:39:59.515,12900
-13:39:59.525,12900
-13:39:59.535,12900
-13:39:59.545,12900
-13:39:59.555,12900
-13:39:59.565,12900
-13:39:59.575,12900
-13:39:59.585,12900
-13:39:59.595,12900
-13:39:59.605,12900
-13:39:59.615,12900
-13:39:59.625,12900
-13:39:59.635,12900
-13:39:59.645,12900
-13:39:59.655,12900
-13:39:59.665,12900
-13:39:59.675,12900
-13:39:59.685,12900
-13:39:59.695,12900
-13:39:59.705,12900
-13:39:59.715,12900
-13:39:59.725,12900
-13:39:59.735,12900
-13:39:59.745,12900
-13:39:59.755,12900
-13:39:59.765,12900
-13:39:59.775,12900
-13:39:59.785,12900
-13:39:59.795,12900
-13:39:59.805,12900
-13:39:59.815,12900
-13:39:59.825,12900
-13:39:59.835,12900
-13:39:59.845,12900
-13:39:59.855,12900
-13:39:59.865,12900
-13:39:59.875,12900
-13:39:59.885,12900
-13:39:59.895,12900
-13:39:59.905,12900
-13:39:59.915,12900
-13:39:59.925,12900
-13:39:59.935,12900
-13:39:59.945,12900
-13:39:59.955,12900
-13:39:59.965,12900
-13:39:59.975,12900
-13:39:59.985,12900
-13:39:59.995,12900
-13:40:00.005,12900
-13:40:00.015,12900
-13:40:00.025,12900
-13:40:00.035,12900
-13:40:00.045,12900
-13:40:00.055,12900
-13:40:00.065,12900
-13:40:00.075,12900
-13:40:00.085,12900
-13:40:00.095,12900
-13:40:00.105,12900
-13:40:00.115,12900
-13:40:00.125,12900
-13:40:00.135,12900
-13:40:00.145,12900
-13:40:00.155,12900
-13:40:00.165,12900
-13:40:00.175,12900
-13:40:00.185,12900
-13:40:00.195,12900
-13:40:00.205,12900
-13:40:00.215,12900
-13:40:00.225,12900
-13:40:00.235,12900
-13:40:00.245,12900
-13:40:00.255,12900
-13:40:00.265,12900
-13:40:00.275,12900
-13:40:00.285,12900
-13:40:00.295,12900
-13:40:00.305,12900
-13:40:00.315,12900
-13:40:00.325,12900
-13:40:00.335,12900
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Screw Motor.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Screw Motor.csv
deleted file mode 100644
index ac6f709b1..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Screw Motor.csv
+++ /dev/null
@@ -1 +0,0 @@
-Time,Screw Motor
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/midtanksetparams.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/midtanksetparams.cs
deleted file mode 100644
index d3aa81e83..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/midtanksetparams.cs
+++ /dev/null
@@ -1,151 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-using Tango.PMR.EmbeddedParameters;
-
-public void OnExecute(StubManager stubManager)
-{
- uint midtankno = 0;
- double Slop;
- double Zero_Point;
-
-MidTankDataSetupRequest midTankDataSetupRequest = new MidTankDataSetupRequest();
-
- var response = stubManager.ShowResponseWindow("Enter Midtank number to calibrate (1-8):", "");
- //stubManager.WriteLine(response);
- stubManager.Write("\n");
- midtankno = uint.Parse(response);
-
- var response1 = stubManager.ShowResponseWindow("Enter Midtank Slop ", "");
- //stubManager.WriteLine(response);
- stubManager.Write("\n");
- Slop = double.Parse(response1);
-
- var response2= stubManager.ShowResponseWindow("Enter Zero point (100cc)", "");
- //stubManager.WriteLine(response);
- stubManager.Write("\n");
- Zero_Point = double.Parse(response2);
-
- DialogResult result = MessageBox.Show("Are you sure to calibrate Midtank No: "+ midtankno + "with Slop "+ Slop +" and Zero_Point " + Zero_Point , "Warning",MessageBoxButtons.YesNo);
- if(result == DialogResult.Yes)
- {
- MidTankData midTankData = new MidTankData();
- midTankData.MidTankId = midtankno-1;
- midTankData.InitialOffsetA = Zero_Point;
- midTankData.SlopeB = Slop;
- midTankDataSetupRequest.MidTankInfo.Add(midTankData);
- var response3 = stubManager.Run<MidTankDataSetupResponse>(midTankDataSetupRequest);
- string box_msg ="Turn Power Off and On to finish the calibration.";
- MessageBox.Show(box_msg);
-
- }
-
-}
-
-
-
-//MidTankDataSetupRequest midTankDataSetupRequest = new MidTankDataSetupRequest();
-
-//50cc [V] 1.93242734375 1.94375546875 1.9295953125 1.935259375 1.92109921875 2.8245171875 1.92676328125 1.92676328125
- //b [mL/V] -1 -1 -1 -1 -1 0.885922630082808 -1 -1
-/*
-MidTankData midTankData = new MidTankData();
-midTankData.MidTankId = 0;
-midTankData.InitialOffsetA = 2.64273428916931;
-midTankData.SlopeB = 0.899999976158142;
-
-MidTankData midTankData1 = new MidTankData();
-midTankData1.MidTankId = 1;
-midTankData1.InitialOffsetA = 2.63755464553833;
-midTankData1.SlopeB = 0.899999976158142;
-
-MidTankData midTankData2 = new MidTankData();
-midTankData2.MidTankId = 2;
-midTankData2.InitialOffsetA = 2.63525938987732;
-midTankData2.SlopeB = 0.899999976158142;
-
-MidTankData midTankData3 = new MidTankData();
-midTankData3.MidTankId = 3;
-midTankData3.InitialOffsetA = 1.4276158142;
-midTankData3.SlopeB = 0.899999976158142;
-
-
-MidTankData midTankData4 = new MidTankData();
-midTankData4.MidTankId = 4;
-midTankData4.InitialOffsetA = 2.61099219322205;
-midTankData4.SlopeB = 0.899999976158142;
-
-
-MidTankData midTankData5 = new MidTankData();
-midTankData5.MidTankId = 5;
-midTankData5.InitialOffsetA = 2.62451720237732;
-midTankData5.SlopeB = 0.899999976158142;
-
-
-MidTankData midTankData6 = new MidTankData();
-midTankData6.MidTankId = 6;
-midTankData6.InitialOffsetA = 2.62676334381104;
-midTankData6.SlopeB = 0.899999976158142;
-
-MidTankData midTankData7 = new MidTankData();
-midTankData7.MidTankId = 7;
-midTankData7.InitialOffsetA = 2.62676334381104;
-midTankData7.SlopeB = 0.899999976158142;
-
-
-
-midTankDataSetupRequest.MidTankInfo.Add(midTankData);
-midTankDataSetupRequest.MidTankInfo.Add(midTankData1);
-midTankDataSetupRequest.MidTankInfo.Add(midTankData2);
-midTankDataSetupRequest.MidTankInfo.Add(midTankData3);
-midTankDataSetupRequest.MidTankInfo.Add(midTankData4);
-midTankDataSetupRequest.MidTankInfo.Add(midTankData5);
-midTankDataSetupRequest.MidTankInfo.Add(midTankData6);
-midTankDataSetupRequest.MidTankInfo.Add(midTankData7);
-
-
-var response = stubManager.Run<MidTankDataSetupResponse>(midTankDataSetupRequest);
- */
-
-//}
-
-/*
- int insert_slop_t_eeprom()
-{
- stubManager.Write("\n ");
-
- MidTankDataSetupRequest midTankDataSetupRequest = new MidTankDataSetupRequest();
-
-
- for (uint i=1;i<9;i++)
- {
- if (voltage_array[i,4]!= ERROR_SLOP)
- {
- MidTankData midTankData = new MidTankData();
- midTankData.MidTankId = i-1;
- midTankData.InitialOffsetA = voltage_array[i,2];
- midTankData.SlopeB = voltage_array[i,4];
-
- stubManager.Write("\nMidtank No:" + i+ "=\tA="+voltage_array[i,2]+"\tSlop="+voltage_array[i,4]);
-
-
- midTankDataSetupRequest.MidTankInfo.Add(midTankData);
-
- }
-var response = stubManager.Run<MidTankDataSetupResponse>(midTankDataSetupRequest);
-
-
-
- }
-}
-
-*/
-
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/read_midtank_calibration.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/read_midtank_calibration.cs
deleted file mode 100644
index 469772888..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/read_midtank_calibration.cs
+++ /dev/null
@@ -1,37 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
- int i;
-
- for(i=0;i<8;i++)
- {
-
- var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xA, i);
- stubManager.Write("\n Initial_Offset_A [#");
- stubManager.Write(i);
- stubManager.Write("] = ");
- stubManager.WriteLine(response.Progress);
- }
-
- for(i=0;i<8;i++)
- {
- var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xB, i);
- stubManager.Write("\n Slope_B [#");
- stubManager.Write(i);
- stubManager.Write("] = ");
- stubManager.WriteLine(response1.Progress);
- }
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/New_DyeHead/Test_Actuator.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/New_DyeHead/Test_Actuator.cs
deleted file mode 100644
index f9555a05b..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/New_DyeHead/Test_Actuator.cs
+++ /dev/null
@@ -1,42 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
- int sleep_up=2000;//2 second
- int sleep_dn=2000;//2 second
- var response = stubManager.ShowResponseWindow("Enter Loop Number for Actuator.", "");
- //stubManager.WriteLine(response);
- int Loop_Nm = int.Parse(response);
-
- for (int i=0;i<Loop_Nm;i++)
- {
-
-
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf000); //mov ACTUATOR-IN down
- Thread.Sleep(sleep_dn);
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf101); //mov ACTUATOR-OUT up
- Thread.Sleep(sleep_dn);
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf001); //mov ACTUATOR-IN up
- Thread.Sleep(sleep_up);
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf100); //mov ACTUATOR-OUT down
- Thread.Sleep(sleep_up);
-
- }
- // stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf100); //mov ACTUATOR-OUTdown
- // stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf101); //mov ACTUATOR-OUT up
-
-
-
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/New_DyeHead/Test_Lid.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/New_DyeHead/Test_Lid.cs
deleted file mode 100644
index 110a0f09b..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/New_DyeHead/Test_Lid.cs
+++ /dev/null
@@ -1,145 +0,0 @@
-using System;
-using System.Text;
-using System.IO;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-const int New_DyeHead_UNDER_TEST=48;
-
-const Int32 MGNET_OPEN=0x42F801;
-const Int32 MGNET_EN=0x42F701;
-const Int32 MGNET_CLOSE=0x42F800;
-const Int32 MGNET_DIS=0x42F700;
-
-const Int32 LS_FRONT=0X460110;
-const Int32 LS_REAR=0X460120;
-const Int32 LS_UPPER=0X460140;
-const Int32 LS_SPARE=0X460180;
-
-const Int32 DyeingHeadLid_Motor = 2;
-
-//--------------------------------------------------------------------------------
-
-public void OnExecute(StubManager stubManager)
-{
- var response = stubManager.ShowResponseWindow("Enter Loop Number for Dye Head Lead.", "");
- //stubManager.WriteLine(response);
- int Loop_Nm = int.Parse(response);
-
- for (int i=0;i<Loop_Nm;i++)
- {
- if (Test_Magnet_Motor_LS_New_DyeHead() != 0 )
- {
- i=Loop_Nm;
- stubManager.Write("Error");
- }
- Thread.Sleep(2000);
- }
-}
-
-//-------------------------------------------------------------
-
-//--------------------------------------------
- int Test_Magnet_Motor_LS_New_DyeHead()
-{
- Int32 temp;
- int i=0;
-
-//---------------------- open Magnet ----------------------------
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,MGNET_OPEN); // turn magnet on
- Thread.Sleep(100);
-
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,MGNET_EN); // magnet enable
- Thread.Sleep(100);
-
- Thread.Sleep(1000);
-//---------------------- chekc Magnet is open ----------------------------
-// DialogResult result = MessageBox.Show("Make shure, Magnet is open and DyeHead cover on front.", "Warning",MessageBoxButtons.YesNo);
-// if(result == DialogResult.No)
-// {
-// stubManager.Write("Magnet is close\n");
-// return 0;
-// }
- temp=read_pio (LS_UPPER); // read LS_UPPER
- if (temp != 0)
- {
- stubManager.Write("LS_UPPER of Magnet is close\n");
- return 1;
- }
- stubManager.Write("Magnet is Open\n");
-
-
-//---------------------- Move DyeingHead Lid Motor rear----------------------------
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DyeingHeadLid_Motor, true, 250);
- stubManager.Write("*** Open Lid Head ********* \n");
-
- temp = 0;
- i=0;
- while ((temp == 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec
- {
- temp=read_pio (LS_REAR); // read LS_REAR
- Thread.Sleep(50);
-
- i++;
- }
-
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor,3); //stop motor
- if(i==200)
- {
- stubManager.Write("LS_REAR Not calibrate\n");
- return 1;
- }
-
-//---------------------- Move DyeingHead Lid Motor front----------------------------
- stubManager.Write("*** Close Lid Head \n");
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DyeingHeadLid_Motor, false, 250);
- temp = 0;
- i=0;
- while ((temp == 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec
- {
- temp=read_pio (LS_FRONT); // read LS_FRONT
- Thread.Sleep(50);
- i++;
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor,3); //stop motor
- if(i==200)
- {
- stubManager.Write("LS_FRONT Not calibrate\n");
- return 1;
- }
-//---------------------- Close Magnet ----------------------------
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,MGNET_CLOSE); // turn magnet off
- Thread.Sleep(2000);
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,MGNET_DIS); // magnet Disable
-
- stubManager.Write("Magnet is Close\n");
- Thread.Sleep(1000);
-
- temp=read_pio (LS_UPPER); // read LS_UPPER
- if (temp == 0)
- {
- stubManager.Write("LS_UPPER of Magnet is open\n");
- return 1;
- }
- stubManager.Write("LS_UPPER of Magnet is close\n");
- return 0;
- }
-
-Int32 read_pio(Int32 i2c_input)
-{
- Int32 temp=0;
- var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,i2c_input); // read break
-
- temp = (Int32) (response.Progress);
- temp =temp & (i2c_input& 0xff); //if break ok
-
- return temp;
-}
-//end mati
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/Read_Cartridge_Present.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/Read_Cartridge_Present.cs
deleted file mode 100644
index 397999f12..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/Read_Cartridge_Present.cs
+++ /dev/null
@@ -1,97 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-include "..\..\Defines\Tango_Defines_Basic.cs"
-include "Tango_Defines_LimitSwitch.cs"
-//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_Basic.cs"
-//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_LimitSwitch.cs"
-
-//MF 23092018 2 spare LS not include
-
-const Int32 F3_CARTx_PRES_02_Direct = 0x60000870;
-const Int32 F3_LOW_Cart_Led1 = 0x60000ba4;
-const Int32 F3_High_Cart_Led1 = 0x60000ba6;
-const Int32 F3_LOW_Cart_Led2 = 0x60000ba8;
-const Int32 F3_High_Cart_Led2 = 0x60000baa;
-const Int32 F3_LOW_Cart_Led3 = 0x60000bac;
-const Int32 F3_High_Cart_Led3 = 0x60000bae;
-
-const Int32 F3_PreScalar_Leds = 0x60000be8;
-
-
-public void OnExecute(StubManager stubManager)
-{
-
- uint Temp = 0;
- uint Temp1 = 0;
- int counter = 0;
- stubManager.Write("\nReading register F3_CARTx_PRES_02_Direct: ");
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_LOW_Cart_Led1,100);//Low 8 bit
-
-var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F3_PreScalar_Leds,250);
- stubManager.WriteHex(response.Value,4);
- Temp = response.Value;
- stubManager.Write("\nActivate limit switches one-by-one");
-
- while ( counter != 1000)
- {
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F3_CARTx_PRES_02_Direct);
-
-
-
- if (response.Value != Temp)
- {
- stubManager.WriteHex(response.Value,4);
-
-
- Temp1=response.Value & 0x080;
- if (Temp1 ==0x0080)
- {
- stubManager.Write("\nCART1_PRES");
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_LOW_Cart_Led1,255);//Low 8 bit
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_High_Cart_Led1,255);//High 8 bit
-
-
- }
- Temp1=response.Value & 0x0040;
- if (Temp1 ==0x0040)
- {
- stubManager.Write("\nCART2_PRES");
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_LOW_Cart_Led2,255);//Low 8 bit
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_High_Cart_Led2,255);//High 8 bit
- }
-
- Temp1=response.Value & 0x0020;
- if (Temp1 ==0x0020)
- {
- stubManager.Write("\nCART3_PRES");
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_LOW_Cart_Led3,255);//Low 8 bit
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_High_Cart_Led3,255);//High 8 bit
- }
-
-
- counter = counter + 1;
- }
- Thread.Sleep(1000);
- Temp = response.Value;
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_LOW_Cart_Led1,10);//Low 8 bit
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_High_Cart_Led1,1);//High 8 bit
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_LOW_Cart_Led2,10);//Low 8 bit
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_High_Cart_Led2,1);//High 8 bit
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_LOW_Cart_Led3,10);//Low 8 bit
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_High_Cart_Led3,1);//High 8 bit
-
- }
-
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/Tamper_sw.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/Tamper_sw.cs
deleted file mode 100644
index 2c51aebe7..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/Tamper_sw.cs
+++ /dev/null
@@ -1,94 +0,0 @@
-sing System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-include "..\..\Defines\Tango_Defines_Basic.cs"
-include "Tango_Defines_LimitSwitch.cs"
-//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_Basic.cs"
-//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_LimitSwitch.cs"
-
-//MF 23092018 2 spare LS not include
-
-const Int32 F3_GPI_01_Direct = 0x60000820;
-
-public void OnExecute(StubManager stubManager)
-{
-
- uint Temp = 0;
- uint Temp1 = 0;
- int counter = 0;
- stubManager.Write("\nReading register F3_GPI_01_Direct: ");
-
-var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F3_GPI_01_Direct);
- stubManager.WriteHex(response.Value,4);
- Temp = response.Value;
- stubManager.Write("\nActivate limit switches one-by-one");
-
- while ( counter != 1000)
- {
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F3_GPI_01_Direct);
-
-
-
- if (response.Value != Temp)
- {
- stubManager.WriteHex(response.Value,4);
-
-
- Temp1=response.Value & 0x0008;
- if (Temp1 ==0x0008)
- {
- stubManager.Write("\nF3_GPI_PANSW6");
-
- }
- Temp1=response.Value & 0x0010;
- if (Temp1 ==0x0010)
- {
- stubManager.Write("\nF3_GPI_PANSW5");
- }
-
- Temp1=response.Value & 0x0020;
- if (Temp1 ==0x0020)
- {
- stubManager.Write("\nF3_GPI_PANSW4");
- }
-
- Temp1=response.Value & 0x0040;
- if (Temp1 ==0x0040)
- {
- stubManager.Write("\nF3_GPI_PANSW3");
- }
-
- Temp1=response.Value & 0x0080;
- if (Temp1 ==0x0080)
- {
- stubManager.Write("\nF3_GPI_PANSW2");
- }
-
-
- Temp1=response.Value & 0x0100;
- if (Temp1 ==0x0100)
- {
- stubManager.Write("\nF3_GPI_PANSW1");
- }
-
-
-
- counter = counter + 1;
- }
- Thread.Sleep(1000);
- Temp = response.Value;
-
- }
-
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/Tamper_switch.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/Tamper_switch.cs
deleted file mode 100644
index 9b741d981..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/Tamper_switch.cs
+++ /dev/null
@@ -1,72 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-include "..\..\Defines\Tango_Defines_Basic.cs"
-include "Tango_Defines_LimitSwitch.cs"
-//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_Basic.cs"
-//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_LimitSwitch.cs"
-
-
-
-public void OnExecute(StubManager stubManager)
-{
- uint Temp = 0;
- uint Temp1 = 0;
- int counter = 0;
- stubManager.Write("\nReading register F3_GPI_01_Direct: ");
- var RetVal = Fpga_Read_Reg(FPGA3, F3_GPI_01_Direct, 0);
- stubManager.WriteHex(RetVal.Value,4);
- Temp = RetVal.Value;
- stubManager.Write("\nActivate Tamper switches one-by-one");
-
- while ( counter != 100000)
- {
- RetVal = Fpga_Read_Reg(FPGA3, F3_GPI_01_Direct, 0);
- if (RetVal.Value != Temp)
- {
- stubManager.Write("\nRegister F3_GPI_01_Direct new value: ");
- stubManager.WriteHex(RetVal.Value, 4);
-
- Temp1=RetVal.Value & 0x0008;
- if (Temp1 !=0x0008)
- stubManager.Write("\nPANSW6");
-
-
- Temp1=RetVal.Value & 0x0010;
- if (Temp1 !=0x0010)
- stubManager.Write("\nPANSW5");
-
- Temp1=RetVal.Value & 0x0020;
- if (Temp1 !=0x0020)
- stubManager.Write("\nPANSW4");
-
- Temp1=RetVal.Value & 0x0040;
- if (Temp1 !=0x0040)
- stubManager.Write("\nPANSW3");
-
- Temp1=RetVal.Value & 0x0080;
- if (Temp1 !=0x0080)
- stubManager.Write("\nPANSW2");
-
- Temp1=RetVal.Value & 0x0100;
- if (Temp1 !=0x0100)
- stubManager.Write("\nPANSW1");
-
-
- counter = counter + 1;
- }
- Thread.Sleep(100);
- Temp = RetVal.Value;
-
- }
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/ssr9-chiller.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/ssr9-chiller.cs
deleted file mode 100644
index 28d6f69fc..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/ssr9-chiller.cs
+++ /dev/null
@@ -1,38 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-include "..\..\Defines\Tango_Defines_Basic.cs"
-include "Tango_Defines_SSR.cs"
-//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\Software\Stub_scripts\Tango_Defines_Basic.cs"
-//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\Software\Stub_scripts\Interfaces\Tango_Defines_SSR.cs"
-
-//----------------------
-const Int32 I2C_ID = 2;
-//const Int32 I2C_Slave_Add = 0x46; //must be 0x40, 0x44 or 0x46
-//----------------------
-
-
-public void OnExecute(StubManager stubManager)
-{
-
-
- UInt32 temp=0;
-
-
- //Write F2_GPO_CHILLER_SSR9_CTRL SSR/SSR no. 9
- SetBit (FPGA2, F2_CTRL, 2, 1);
- stubManager.Write("\tTesting SSR no. 9\tCHILLER\t");
- Thread.Sleep(10000);
- SetBit (FPGA2, F2_CTRL, 2, 0);
-
-
-}
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Get_PowerStep01_Parameters.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Get_PowerStep01_Parameters.cs
deleted file mode 100644
index ebe0dbf0f..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Get_PowerStep01_Parameters.cs
+++ /dev/null
@@ -1,227 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-//unmark Auto logging !
-
-const Int32 x_POWERSTEP01_CONFIG = 0x1A;
-const Int32 x_POWERSTEP01_STATUS = 0x1B;
-const Int32 x_POWERSTEP01_GATECFG1 = 0x18;
-const Int32 x_POWERSTEP01_GATECFG2 = 0x19;
-
-const Int32 x_ABS_POS = 0x01;
-const Int32 x_EL_POS = 0x02;
-const Int32 x_MARK = 0x03;
-const Int32 x_SPEED = 0x04;
-const Int32 x_ACC = 0x05;
-const Int32 x_DEC = 0x06;
-const Int32 x_MAX_SPEED = 0x07;
-const Int32 x_MIN_SPEED = 0x08;
-const Int32 x_FS_SPD = 0x15;
-const Int32 x_KVAL_HOLD = 0x09;
-const Int32 x_KVAL_RUN = 0x0A;
-const Int32 x_KVAL_ACC = 0x0B;
-const Int32 x_KVAL_DEC = 0x0C;
-const Int32 x_INT_SPD = 0x0D;
-const Int32 x_ST_SLP = 0x0E;
-const Int32 x_FN_SLP_ACC = 0x0F;
-const Int32 x_FN_SLP_DEC = 0x10;
-const Int32 x_K_THERM = 0x11;
-const Int32 x_ADC_OUT = 0x12;
-const Int32 x_OCD_TH = 0x13;
-const Int32 x_STALL_TH = 0x14;
-const Int32 x_STEP_MODE = 0x16;
-const Int32 x_ALARM_EN = 0x17;
-const Int32 x_CONFIG = 0x18;
-const Int32 x_STATUS = 0x19;
-//-------------------------------
-const Int32 x_GET_PARAM = 0x20;
-//-------------------------------
-const Int32 Max_Motor_ID = 25;
-
-string[] Motor_ID = new string[30];
-
-
-Motor_ID[0] ="DH_CLEANHEAD ";
-Motor_ID[1] ="DH_CLEANMECH ";
-Motor_ID[2] ="DH_LID ";
-Motor_ID[3] ="DRYER_DRIVING";
-Motor_ID[4] ="DRYER_LID ";
-Motor_ID[5] ="DRYER_LOADARM";
-Motor_ID[6] ="DISPENCER_1 ";
-Motor_ID[7] ="DISPENCER_2 ";
-Motor_ID[8] ="DISPENCER_3 ";
-Motor_ID[9] ="DISPENCER_4 ";
-Motor_ID[10]="DISPENCER_5 ";
-Motor_ID[11]="DISPENCER_6 ";
-Motor_ID[12]="DISPENCER_7 ";
-Motor_ID[13]="DISPENCER_8 ";
-Motor_ID[14]="SCREW ";
-Motor_ID[15]="WINDER ";
-Motor_ID[16]="LDANCER1 ";
-Motor_ID[17]="LDANCER2 ";
-Motor_ID[18]="LDRIVING ";
-Motor_ID[19]="LLODING ";
-Motor_ID[20]="LPIVOT ";
-Motor_ID[21]="RDANCER ";
-Motor_ID[22]="RDRIVING ";
-Motor_ID[23]="RLOADARM ";
-Motor_ID[24]="RLODING ";
-Motor_ID[25]="SPARE1_1 ";
-Motor_ID[26]="SPARE1_2 ";
-Motor_ID[27]="SPARE2_1 ";
-Motor_ID[28]="SPARE2_2 ";
-Motor_ID[29]="SPARE3 ";
-
-public void OnExecute(StubManager stubManager)
-{
-
- var i = stubManager.ShowResponseWindow("Please Enter Motor ID:");
-
- stubManager.Write("Motor_ID:\t\t ");
- stubManager.Write(i);
- stubManager.Write("\n");
-
- stubManager.Write("ABS_POS:\t\t");
- var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ABS_POS)<<24, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("EL_POS:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_EL_POS)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("MARK:\t\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MARK)<<24, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("SPEED:\t\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_SPEED)<<24, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("ACC:\t\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ACC)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("DEC:\t\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_DEC)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("MAX_SPEED:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MAX_SPEED)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("MIN_SPEED:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MIN_SPEED)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("FS_SPD:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FS_SPD)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("KVAL\\TVAL_HOLD:\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_HOLD)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("KVAL\\TVAL_RUN:\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_RUN)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("KVAL\\TVAL_ACC:\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_ACC)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("KVAL\\TVAL_DEC:\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_DEC)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("INT_SPEED:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_INT_SPD)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("ST_SLP\\T_FAST:\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ST_SLP)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("FN_SLP_ACC\\TON_MIN:\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_ACC)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("FN_SLP_DEC\\TOFF_MIN:");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_DEC)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("K_THERM:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_K_THERM)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("ADC_OUT:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ADC_OUT)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("OCD_TH:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_OCD_TH)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("STALL_TH:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STALL_TH)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("STEP_MODE:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("ALARM_EN:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ALARM_EN)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("GATECFG1:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG1)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("GATECFG2:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG2)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("CONFIG:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_CONFIG)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-
- stubManager.Write("STATUS:\t\t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_STATUS)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n");
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Logger Temprature/Book4.xlsx b/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Logger Temprature/Book4.xlsx
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
diff --git a/Software/Stubs Collection/stubs/Scripts/CalculateContinuous.cs b/Software/Stubs Collection/stubs/Scripts/CalculateContinuous.cs
deleted file mode 100644
index 443df9008..000000000
--- a/Software/Stubs Collection/stubs/Scripts/CalculateContinuous.cs
+++ /dev/null
@@ -1,42 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
- int i = 0;
- //for (int i = 0; i < 10; i++)
- {
- // Request ----
- // Double : A
- // Double : B
-
- // Response ----
- // Double : Sum
- CalculateRequest calculateRequest = new CalculateRequest();
- calculateRequest.A = 1;
- calculateRequest.B = 1;
-
- //var response = stubManager.RunContinuous<CalculateResponse>("CalculateRequest",0,2,Write);
- stubManager.RunContinuous<CalculateResponse>(calculateRequest,(response1) =>
- {
- stubManager.WriteLine (String.Format("Data, {0} {1}",++i,response1.Sum));
- });
-
- /*if (response.Sum == 15)
- {
- stubManager.Write(i);
- stubManager.WriteLine(" OK!");
- }
- Thread.Sleep(10);*/
- }
-}
-
diff --git a/Software/Stubs Collection/stubs/Scripts/ChangePidDuringRun.cs b/Software/Stubs Collection/stubs/Scripts/ChangePidDuringRun.cs
deleted file mode 100644
index 9422e2cdc..000000000
--- a/Software/Stubs Collection/stubs/Scripts/ChangePidDuringRun.cs
+++ /dev/null
@@ -1,52 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.PMR.Hardware;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-StubHeatingTestRequest stubHeatingTestRequest = new StubHeatingTestRequest();
-
-stubHeatingTestRequest.DryerZone1Temp = 0;
-stubHeatingTestRequest.DryerZone2Temp = 0;
-
-HardwarePidControl hardwarePidControl = new HardwarePidControl();
-hardwarePidControl.OutputProportionalPowerLimit = 0.5; //Maximal additional power
-hardwarePidControl.OutputProportionalBand = 5;
-hardwarePidControl.DerivativeTime = 0; //Kd
-hardwarePidControl.SensorCorrectionAdjustment = 0;
-hardwarePidControl.SensorMinValue = 0;
-hardwarePidControl.SensorMaxValue = 0;
-hardwarePidControl.SetPointRampRateorSoftStartRamp = 100; //Ki divider
-hardwarePidControl.SetPointControlOutputRate = 0;
-hardwarePidControl.ControlOutputType = 0.001; ////Dt
-hardwarePidControl.SsrControlOutputType = 0;
-hardwarePidControl.OutputOnOffHysteresisValue = 100; //Kp divider
-hardwarePidControl.ProcessVariableSamplingRate = 10;
-hardwarePidControl.PvInputFilterFactorMode = 4; //averaging the readouts / number of samples
-hardwarePidControl.OutputProportionalCycleTime = 0;
-hardwarePidControl.AcHeatersHalfCycleTime = 0;
-hardwarePidControl.PidActive = false;
-hardwarePidControl.Epsilon = 0;
-hardwarePidControl.OutputOnOffHysteresisValue = 100;
-
-hardwarePidControl.HardwarePidControlType = Tango.PMR.Hardware.HardwarePidControlType.MotorWinder;
-hardwarePidControl.IntegralTime = 8000; //Ki
-hardwarePidControl.ProportionalGain = 7000; //Kp
-
-stubHeatingTestRequest.HardwarePidControl1 = hardwarePidControl;
-
-StubHeatingTestPollRequest stubHeatingTestPollRequest = new StubHeatingTestPollRequest();
-
-var response = stubManager.Run<StubHeatingTestResponse>(stubHeatingTestRequest);
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/ConvertFloat2Bytes.cs b/Software/Stubs Collection/stubs/Scripts/ConvertFloat2Bytes.cs
deleted file mode 100644
index c199b9c29..000000000
--- a/Software/Stubs Collection/stubs/Scripts/ConvertFloat2Bytes.cs
+++ /dev/null
@@ -1,54 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-
-
-public void OnExecute(StubManager stubManager)
-{
- //see online Floating Point to Hex Converter (with Swap endianness) :https://gregstoll.com/~gregstoll/floattohex/
- // ----------------- option 1 -------------------------------
- stubManager.WriteLine("--- option 1 ---");
- float value = 5.2F;
- byte [] byteArray1 = new byte[4];// a single float is 4 bytes/32 bits
- byteArray1 = BitConverter.GetBytes(value);
-
- //print
- for(int i =0;i<4;i++)
- {
- stubManager.WriteHex(byteArray1[i],2);
- stubManager.Write(" ");
- }
- stubManager.WriteLine("");
- stubManager.WriteLine("");
-
- // ----------------- option 2 for buffer -------------------------------
- stubManager.WriteLine("--- option 2 ---");
- var floatArray1 = new float[] {5.2f, 1.2f, 3.7f};
-
-
- // create a byte array and copy the floats into it...
- var byteArray = new byte[floatArray1.Length * 4];// a single float is 4 bytes/32 bits
- Buffer.BlockCopy(floatArray1, 0, byteArray, 0, byteArray.Length);
-
- //print
- for(int j =0;j<floatArray1.Length;j++)
- {
- for(int i =0;i<4;i++)
- {
- stubManager.WriteHex(byteArray[j+i],2);
- stubManager.Write(" ");
- }
- stubManager.WriteLine("");
- }
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Defines/Blowe_RMO_LOG.CSV b/Software/Stubs Collection/stubs/Scripts/Defines/Blowe_RMO_LOG.CSV
deleted file mode 100644
index 6473707c7..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Defines/Blowe_RMO_LOG.CSV
+++ /dev/null
@@ -1,47 +0,0 @@
-,RPM
-0,1672
-1,1628
-2,1633
-3,1672
-4,1672
-5,1628
-6,1666
-7,1672
-8,1628
-9,1672
-10,1628
-11,1628
-12,1628
-13,1628
-14,1666
-15,1672
-16,1628
-17,1628
-18,1628
-19,1628
-20,1666
-21,1628
-22,1672
-23,1672
-24,1628
-25,1672
-26,1628
-27,1628
-28,1666
-29,1666
-30,1628
-31,1623
-32,1672
-33,1628
-34,1628
-35,1633
-36,1628
-37,1666
-38,1628
-39,1672
-40,1666
-41,1623
-42,1672
-43,1633
-44,1633
-45,1672
diff --git a/Software/Stubs Collection/stubs/Scripts/Dispenser_setup.cs b/Software/Stubs Collection/stubs/Scripts/Dispenser_setup.cs
deleted file mode 100644
index 703d34ae9..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Dispenser_setup.cs
+++ /dev/null
@@ -1,1415 +0,0 @@
-
-//--------------------------------------------------------------------------------
-include "Dispenser_setup_mbar.cs"
-include "Dispenser_Motor_stop.cs"
-include "Dispenser_setup_form_valve close.cs"
-include "Dispenser_setup_form_valve open.cs"
-include "Dispenser_Motor_run.cs"
-include "Dispenser_Motor_Up.cs"
-include "Dispenser_Motor_Down.cs"
-include "EEPROM.cs"
-
-//--------------------------------------------------------------------------------
-
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Data;
-using System.Drawing;
-using System.Linq;
-using System.Text;
-using System.Windows.Forms;
-using System.Diagnostics;
-using System.Threading;
-using System.Threading.Tasks;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-using System.IO;
-
-//--------------------------------------------------------------------------------
-int Characterization;
-UInt32 [] Motor_Dir=new UInt32 [8] {0,0,0,0,0,0,0,0};
-
-string[] Dispenser_Fname= new string[9];
-string [] Dispenser_name= new string[8];
-string [] PCB_SN= new string[8];
-string [] Dispenser_PN= new string[8];
-
-Int32 [,] Dispenser_no = new Int32 [8,2] {{-1,0},{-1,0},{-1,0},{-1,0},{-1,0},{-1,0},{-1,0},{-1,0}};
-
-Int32 [] Dispenser_press= new Int32[8]{0,0,0,0,0,0,0,0};
-Int32 [] max_pressure_level = new Int32 [8] {20000,20000,20000,20000,20000,20000,20000,20000};
-Int32 [] min_pressure_level = new Int32 [8] {-20000,-20000,-20000,-20000,-20000,-20000,-20000,-20000};
-
-Int32 [] A2D_Dispenser= new Int32[8]{0,0,0,0,0,0,0,0};
-Int32 [] Loop_cnt= new Int32[8]{1,1,1,1,1,1,1,1};
-Int32 [] Loop_length= new Int32[8]{1,1,1,1,1,1,1,1};
-
-//byte [] Empty_EEprom=0;
-
-byte [] Empty_EEprom= new byte[8];
-byte [] Dry_Run_EEprom =new byte[8];
-byte [] Flow_EEprom =new byte[8];
-
-
-
-Int32 msec_index=0;
-
-byte [] EEPROM_Data = new byte [128];
-
-const int X_location =500;//260
-const int Y_location =40;
-
-Int32 [] Dispenser_sample_rate= new Int32[8]{1,1,1,1,1,1,1,1};
-//int dispenserNumber=1;
-//int Table=0;
-string shortDateString;
-string ButtonPress;
-string ButtonName;
-UInt32 Type_card;
-
-
-UInt32 RD_LS_01_Direct;
-UInt32 RD_LS_02_Direct;
-UInt32 RD_LS_03_Direct;
-UInt32 RD_LS_04_Direct;
-
-OpenFileDialog _openFiledialog;
-
-CancellationTokenSource _cancellationTokenSource;
-string path ;
-string Tbl_File_Name;
-
-Int32 Press_Sensor_Type ;//0 - 0-10 Bar ; 1- (-1) - 10 Bar ;
-ushort check_sum=0;
-
-//start mat
-//--------------------------------------------------------------------------------
-[STAThread]
-public void OnExecute(StubManager stubManager)
-{
-Dispenser_Fname[0]="";
-Dispenser_Fname[1]="";
-Dispenser_Fname[2]="";
-Dispenser_Fname[3]="";
-Dispenser_Fname[4]="";
-Dispenser_Fname[5]="";
-Dispenser_Fname[6]="";
-Dispenser_Fname[7]="";
-//----------------------------------------------------------------------------------
-stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0X60000522, 0X128);//0X128 EQULE 50 MSEC
-
-//--------------------Create form-------------------------------------------------
- Form form1 = new Form();
- _openFiledialog = new OpenFileDialog();
-//--------------------Set the caption bar text of the form------------------------
- form1.Text = "Dispenser Test V1.9";
- form1.TopMost = true;
-//------- Define the border style of the form to a dialog box---------------------
- form1.FormBorderStyle = FormBorderStyle.FixedDialog;
-//------Set the MaximizeBox to false to remove the maximize box-------------------
- form1.MaximizeBox = false;
-//------Set the MinimizeBox to false to remove the minimize box-------------------
- form1.MinimizeBox = false;
-//----Set the start position of the form to the center of the screen--------------
- form1.StartPosition = FormStartPosition.CenterScreen;
- form1.AutoSize = true;
- form1.AutoSizeMode = AutoSizeMode.GrowAndShrink;
-//--------------create ListBox --------------------------------------
- // Create an instance of the ListBox.
- ListBox listBox1 = new ListBox();
- // Set the size and location of the ListBox.
- listBox1.Size = new System.Drawing.Size(200, 80);
- listBox1.Location = new System.Drawing.Point(150,400);
- // Add the ListBox to the form.
- form1.Controls.Add(listBox1);
- // Set the ListBox to display items in multiple columns.
- listBox1.MultiColumn = false;
- // Set the selection mode to multiple and extended.
- listBox1.SelectionMode = SelectionMode.MultiExtended;
-
- // Shutdown the painting of the ListBox as items are added.
- listBox1.BeginUpdate();
- listBox1.Items.Add("Press-Sensor 0 to 10 Bar");
- listBox1.Items.Add("Press-Sensor -1 to 10 Bar");
- listBox1.Items.Add("Temp");
- listBox1.Items.Add("Moti");
- listBox1.EndUpdate();
-
- // Select one items from the ListBox.
- string text="0";
- if (File.Exists("C:\\Dispenser_setup\\setup.txt"))
- {
- text = System.IO.File.ReadAllText(@"C:\Dispenser_setup\setup.txt") ;
- }
-
- listBox1.SetSelected( Convert.ToInt32(text), true);
-string Text_Blck;
-string Text_Cyn;
-string Text_Mgnt;
-string Text_Ylw;
-string Text_TI;
-
- if ( (listBox1.SelectedItem)=="Moti")
- {
- Text_Blck = "Blck";
- Text_Cyn = "Cyn";
- Text_Mgnt = "Mgnt";
- Text_Ylw = "Ylw";
- Text_TI = "TI";
- path = "P:\\TSKF\\BPT\\";
- }
- else
- {
- Text_Blck = "";
- Text_Cyn = "";
- Text_Mgnt = "";
- Text_Ylw = "";
- Text_TI = "";
- path = "C:\\dispenser_setup\\Log\\";
-// path="%userprofile%\\Dropbox\\Dispenser_Tester\\Log\\";
-// path = "C:\\Dispenser_setup\\Log\\";
- }
-
- if ( (listBox1.SelectedItem)=="Press-Sensor -1 to 10 Bar")
- {
- stubManager.WriteLine("Press_Sensor_Type=1");
- Press_Sensor_Type=1;
- }
- else
- {
- stubManager.WriteLine("Press_Sensor_Type=0");
- Press_Sensor_Type=0;
- }
-//----------------------------------Dispenser 1 ------------------------------------------
-Label Label100 = new Label ()
- {
- Width = 10,
- Height = 20,
- Text ="1"
- };
- Label100.Location = new Point (5, 55);
- form1.Controls.Add(Label100);
-TextBox TextBox1 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text = Text_Blck,
- };
-TextBox1.Location = new Point (20, 50);
-TextBox1.CharacterCasing = CharacterCasing.Upper;
- form1.Controls.Add(TextBox1); //dispencer 1
-
- TextBox Press0 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text = ""
-
- };
-Press0.Location = new Point (135, 50);
- form1.Controls.Add(Press0); //dispencer 1
-
- TextBox PartNm0 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text = ""
-
- };
-PartNm0.Location = new Point (250, 50);
- form1.Controls.Add(PartNm0); //dispencer 1
-
- // Create and initialize a CheckBox.
- CheckBox checkBox0 = new CheckBox();
- checkBox0.Location = new Point (370, 50);
- form1.Controls.Add(checkBox0);
-//----------------------------------Dispenser 2 ------------------------------------------
-Label Label102 = new Label ()
- {
- Width = 10,
- Height = 20,
- Text ="2"
- };
- Label102.Location = new Point (5, 85);
- form1.Controls.Add(Label102);
-
- TextBox TextBox3 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text =Text_Cyn
- };
-TextBox3.Location = new Point (20, 80);
-TextBox3.CharacterCasing = CharacterCasing.Upper;
-form1.Controls.Add(TextBox3); //dispencer 2
-
-
- TextBox Press1 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text = ""
-
- };
-Press1.Location = new Point (135, 80);
- form1.Controls.Add(Press1); //dispencer 2
-
- TextBox PartNm1 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text = ""
-
- };
-PartNm1.Location = new Point (250, 80);
- form1.Controls.Add(PartNm1); //dispencer 2
- // Create and initialize a CheckBox.
- CheckBox checkBox1 = new CheckBox();
- checkBox1.Location = new Point (370, 80);
- form1.Controls.Add(checkBox1);
-
-//----------------------------------Dispenser 3 ------------------------------------------
-Label Label103 = new Label ()
- {
- Width = 10,
- Height = 20,
- Text ="3"
- };
- Label103.Location = new Point (5, 125);
- form1.Controls.Add(Label103);
-
- TextBox TextBox4 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text =Text_Mgnt,
- };
-TextBox4.Location = new Point (20, 120);
-TextBox4.CharacterCasing = CharacterCasing.Upper;
-form1.Controls.Add(TextBox4); //dispencer 3
-
- TextBox Press2 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text = ""
-
- };
-Press2.Location = new Point (135, 120);
- form1.Controls.Add(Press2); //dispencer3
-
- TextBox PartNm2 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text = ""
-
- };
-PartNm2.Location = new Point (250, 120);
- form1.Controls.Add(PartNm2); //dispencer 3
- // Create and initialize a CheckBox.
- CheckBox checkBox2 = new CheckBox();
- checkBox2.Location = new Point (370, 120);
- form1.Controls.Add(checkBox2);
-
-//----------------------------------Dispenser 4 ------------------------------------------
-Label Label104= new Label ()
- {
- Width = 10,
- Height = 20,
- Text ="4"
- };
- Label104.Location = new Point (5, 165);
- form1.Controls.Add(Label104);
-
-TextBox TextBox5 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text =Text_Ylw,
- };
-TextBox5.Location = new Point (20, 160);
-TextBox5.CharacterCasing = CharacterCasing.Upper;
- form1.Controls.Add(TextBox5); //dispencer 4
-
- TextBox Press3 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text = ""
-
- };
-Press3.Location = new Point (135, 160);
- form1.Controls.Add(Press3); //dispencer4
-
- TextBox PartNm3 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text = ""
-
- };
-PartNm3.Location = new Point (250, 160);
- form1.Controls.Add(PartNm3); //dispencer 4
- CheckBox checkBox3 = new CheckBox();
- checkBox3.Location = new Point (370, 160);
- form1.Controls.Add(checkBox3);
-
- //----------------------------------Dispenser 5 ------------------------------------------
-Label Label101 = new Label ()
- {
- Width = 10,
- Height = 20,
- Text ="5"
- };
- Label101.Location = new Point (5, 205);
- form1.Controls.Add(Label101);
-
- TextBox TextBox6 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text =Text_TI
- };
-TextBox6.Location = new Point (20, 200);
-TextBox6.CharacterCasing = CharacterCasing.Upper;
- form1.Controls.Add(TextBox6); //dispencer 5
-
- TextBox Press4 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text = ""
-
- };
-Press4.Location = new Point (135, 200);
- form1.Controls.Add(Press4); //dispencer5
-
- TextBox PartNm4 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text = ""
-
- };
-PartNm4.Location = new Point (250, 200);
- form1.Controls.Add(PartNm4); //dispencer 5
- CheckBox checkBox4 = new CheckBox();
- checkBox4.Location = new Point (370, 200);
- form1.Controls.Add(checkBox4);
-
- //----------------------------------Dispenser 6 ------------------------------------------
-Label Label106= new Label ()
- {
- Width = 10,
- Height = 20,
- Text ="6"
- };
- Label106.Location = new Point (5, 245);
- form1.Controls.Add(Label106);
-
- TextBox TextBox7 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text =""
- };
-TextBox7.Location = new Point (20, 240);
-TextBox7.CharacterCasing = CharacterCasing.Upper;
- form1.Controls.Add(TextBox7); //dispencer 6
-
- TextBox Press5 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text = ""
-
- };
-Press5.Location = new Point (135, 240);
- form1.Controls.Add(Press5); //dispencer6
-
- TextBox PartNm5 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text = ""
-
- };
-PartNm5.Location = new Point (250, 240);
- form1.Controls.Add(PartNm5); //dispencer 6
- CheckBox checkBox5 = new CheckBox();
- checkBox5.Location = new Point (370, 240);
- form1.Controls.Add(checkBox5);
-
- //----------------------------------Dispenser 7 ------------------------------------------
-Label Label107= new Label ()
- {
- Width = 10,
- Height = 20,
- Text ="7"
- };
- Label107.Location = new Point (5, 285);
- form1.Controls.Add(Label107);
-
- TextBox TextBox8 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text =""
- };
-TextBox8.Location = new Point (20, 280);
-TextBox8.CharacterCasing = CharacterCasing.Upper;
- form1.Controls.Add(TextBox8); //dispencer 7
-
- TextBox Press6 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text = ""
-
- };
-Press6.Location = new Point (135, 280);
- form1.Controls.Add(Press6); //dispencer7
-
- TextBox PartNm6 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text = ""
-
- };
-PartNm6.Location = new Point (250, 280);
- form1.Controls.Add(PartNm6); //dispencer 6
- CheckBox checkBox6 = new CheckBox();
- checkBox6.Location = new Point (370, 280);
- form1.Controls.Add(checkBox6);
-
-//----------------------------------Dispenser 8 ------------------------------------------
-Label Label108= new Label ()
- {
- Width = 10,
- Height = 20,
- Text ="8"
- };
- Label108.Location = new Point (5, 325);
- form1.Controls.Add(Label108);
-
- TextBox TextBox9 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text =""
- };
-TextBox9.Location = new Point (20, 320);
-TextBox9.CharacterCasing = CharacterCasing.Upper;
- form1.Controls.Add(TextBox9); //dispencer 8
-
- TextBox Press7 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text = ""
-
- };
-Press7.Location = new Point (135, 320);
- form1.Controls.Add(Press7); //dispencer8
-
- TextBox PartNm7 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text = ""
-
- };
-PartNm7.Location = new Point (250, 320);
- form1.Controls.Add(PartNm7); //dispencer 7
- CheckBox checkBox7 = new CheckBox();
- checkBox7.Location = new Point (370, 320);
- form1.Controls.Add(checkBox7);
-
- //-----------------------------File name -----------------------------------------
- TextBox TextBox10 = new TextBox ()
- {
- Width = 210,
- Height = 10,
- Text =""
- };
-TextBox10.Location = new Point (270, 10);
-TextBox10.CharacterCasing = CharacterCasing.Upper;
-form1.Controls.Add(TextBox10);
-//-----------------------------Dispenser Serial Number----------------------------------------
-
-Label Label1 = new Label ()
- {
- Width = 100,
- Height = 40,
- Text =" Dispenser S/N"
- };
-Label1.Location = new Point (20, 32);
- form1.Controls.Add(Label1);
-//-----------------------------PCB Serial Number----------------------------------------
-
-Label Label109 = new Label ()
- {
- Width = 100,
- Height = 40,
- Text =" PCB S/N"
- };
-Label109.Location = new Point (135, 32);
- form1.Controls.Add(Label109);
- //-----------------------------Dispenser Part Number----------------------------------------
-
-Label Labe2109 = new Label ()
- {
- Width = 100,
- Height = 40,
- Text =" Dispenser P/N"
- };
-Labe2109.Location = new Point (250, 32);
- form1.Controls.Add(Labe2109);
- //-----------------------------Pass----------------------------------------
-
-Label Labe3109 = new Label ()
- {
- Width = 100,
- Height = 40,
- Text ="Pass"
- };
-Labe3109.Location = new Point (360, 32);
- form1.Controls.Add(Labe3109);
-
-
-//---------------------- Seal Test --------------------------------------------
-Button button1 = new Button ()
- {
- Width = 100,
- Height = 100,
- };
-
- button1.Location = new Point (X_location,Y_location);
- button1.Text = "Seal Test";
-form1.Controls.Add(button1);
-//------------------------------------Priming --------------------------------------------
-Button button2 = new Button ()
- {
- Width = 100,
- Height = 100,
- };
- button2.Location = new Point (X_location+110,Y_location);
- button2.Text = "Priming";
- form1.Controls.Add(button2);
-//------------------------------------Empty Process --------------------------------------------
-Button button3 = new Button ()
- {
- Width = 100,
- Height = 100,
- };
- button3.Location = new Point (X_location+110,Y_location+220);
-button3.Text = "Empty Process";
- form1.Controls.Add(button3);
-//----------------------------------------- Load EEprom ---------------------------------------
-Button button4 = new Button ()
- {
- Width = 100,
- Height = 100,
- };
- button4.Location = new Point (X_location+220,Y_location);
- button4.Text = "Load EEprom";
- form1.Controls.Add(button4);
-//---------------------------------------Save EEprom -----------------------------------------
-Button button5 = new Button ()
- {
- Width = 100,
- Height = 100,
- };
- button5.Location = new Point (X_location+220,Y_location+110);
- button5.Text = "Save EEprom";
- form1.Controls.Add(button5);
-//----------------------------------------Motor_Up ----------------------------------------
-Button button6 = new Button ()
- {
- Width = 100,
- Height = 100,
- };
- button6.Location = new Point (X_location+330,Y_location);
- button6.Text = "Up";
- form1.Controls.Add(button6);
-
-//--------------------------------------Motor_Down------------------------------------------
-Button button7 = new Button ()
- {
- Width = 100,
- Height = 100,
- };
- button7.Location = new Point (X_location+330,Y_location+110);
- button7.Text = "Down";
- form1.Controls.Add(button7);
-//-------------------------------------Dynamic sealing positive pressure-------------------------------------------
-Button button8 = new Button ()
- {
- Width = 100,
- Height = 100,
- };
- button8.Location = new Point (X_location,Y_location+110);
- button8.Text = "Dynamic sealing positive pressure";
- form1.Controls.Add(button8);
-//---------------------------------- Dynamic sealing negative pressure ----------------------------------------------
-Button button9 = new Button ()
- {
- Width = 100,
- Height = 100,
- };
-
- button9.Location = new Point (X_location,Y_location+220);
- button9.Text = "Dynamic sealing negative pressure";
- form1.Controls.Add(button9);
-//-------------------------------- Flow Test------------------------------------------------
-Button button10 = new Button ()
- {
- Width = 100,
- Height = 100,
- };
- button10.Location = new Point (X_location+110,Y_location+110);
- button10.Text = "Flow Test";
- form1.Controls.Add(button10);
-//---------------------------------------Spare -----------------------------------------
-Button button11 = new Button ()
- {
- Width = 100,
- Height = 100,
- };
-button11.Location = new Point (X_location+330,Y_location+220);
-button11.Text = "spare3";
- form1.Controls.Add(button11);
-//-------------------------------------Valve Open-------------------------------------------
-Button button12 = new Button ()
- {
- Width = 100,
- Height = 100,
- };
- button12.Location = new Point (X_location+440,Y_location);
- button12.Text = "Open Valve";
- form1.Controls.Add(button12);
-//-------------------------------------Valve Close -------------------------------------------
-Button button13 = new Button ()
- {
- Width = 100,
- Height = 100,
- };
- button13.Location = new Point (X_location+440,Y_location+110);
- button13.Text = "Close Valve";
- form1.Controls.Add(button13);
-//-----------------------------------Reliability Test ---------------------------------------------
-Button button14 = new Button ()
- {
- Width = 100,
- Height = 100,
- };
- button14.Location = new Point (X_location+220,Y_location+220);
- button14.Text = "Reliability Test";
- form1.Controls.Add(button14);
- //-----------------------------------Pressure build up ---------------------------------------------
-Button button15 = new Button ()
- {
- Width = 100,
- Height = 100,
- };
- button15.Location = new Point (X_location+440,Y_location+220);
- button15.Text = "Pressure build up";
- form1.Controls.Add(button15);
- //------------------------------- load file.. -------------------------------------------------
-Button button16 = new Button ()
- {
- Width = 100,
- Height = 20,
- };
- button16.Location = new Point (160, 10);
- button16.Text = "Load file";
- form1.Controls.Add(button16);
-//------------------------------------run file --------------------------------------------
-Button button17 = new Button ()
- {
- Width = 100,
- Height = 20,
- };
- button17.Location = new Point (490, 10);
- button17.BackColor = System.Drawing.Color.Green;
- button17.Text = "Run";
- form1.Controls.Add(button17);
-//------------------------------------stop --------------------------------------------
-Button button18 = new Button ()
- {
- Width = 100,
- Height = 20,
- };
- button18.Text = "Stop";
- button18.BackColor = System.Drawing.Color.Red;
- button18.Location = new System.Drawing.Point(600, 10);
- button18.Enabled =false;
-
- form1.Controls.Add(button18);
-//--------------DispPress--------------------------------------------------------------------
-// void DispPress ()
-// {
-// Press0.Text=Dispenser_press[0].ToString();
-// Press1.Text=Dispenser_press[1].ToString();
-// Press2.Text=Dispenser_press[2].ToString();
-// Press3.Text=Dispenser_press[3].ToString();
-// Press4.Text=Dispenser_press[4].ToString();
-// Press5.Text=Dispenser_press[5].ToString();
-// Press6.Text=Dispenser_press[6].ToString();
-// Press7.Text=Dispenser_press[7].ToString();
-// }
-
-
-//---------------------- Seal Test --------------------------------------------
- button1.Click +=async (_,__) =>
- {
- _cancellationTokenSource = new CancellationTokenSource();
- try
- {
- disable_test();
- var longRunningTask =await DispenserSetup(SealTest_Table,"SealTest");
- }
- catch (OperationCanceledException)
- {
- enable_test();
- // Status="Cancel";
- stubManager.WriteLine("Task was cancelled");
- }
- finally
- {
- _cancellationTokenSource.Dispose();
- stubManager.WriteLine("end Task ");
- enable_test();
- }
- };
-//------------------------------------Priming --------------------------------------------
- button2.Click += async(_,__) =>
- {
- _cancellationTokenSource = new CancellationTokenSource();
- try
- {
- disable_test();
- var longRunningTask =await DispenserSetup(Priming_Table,"Priming");
- }
- catch (OperationCanceledException)
- {
- enable_test();
- // Status="Cancel";
- stubManager.WriteLine("Task was cancelled");
- }
- finally
- {
- _cancellationTokenSource.Dispose();
- stubManager.WriteLine("end Task ");
- enable_test();
- }
- };
-//------------------------------------Empty Process --------------------------------------------
-
- button3.Click += async (_,__) =>
- {
- _cancellationTokenSource = new CancellationTokenSource();
- try
- {
- disable_test();
- var longRunningTask =await DispenserSetup(EmptyProcess_Table,"EmptyProcess");
- }
- catch (OperationCanceledException)
- {
- enable_test();
- // Status="Cancel";
- stubManager.WriteLine("Task was cancelled");
- }
- finally
- {
- _cancellationTokenSource.Dispose();
- stubManager.WriteLine("end Task ");
- enable_test();
- }
- };
-
-//----------------------------------------- Load EEprom ---------------------------------------
- button4.Click += (_,__) =>
- {
- disable_test();
- Load_EEPROM();
- LoadDispenserName();
- enable_test();
- };
-
-//----------------------------------------- save EEprom ---------------------------------------
-
- button5.Click += (_,__) =>
- {
- disable_test();
- Dispenser_name[0] = (TextBox1.Text);
- Dispenser_name[1] = (TextBox3.Text);
- Dispenser_name[2] = (TextBox4.Text);
- Dispenser_name[3] = (TextBox5.Text);
- Dispenser_name[4] = (TextBox6.Text);
- Dispenser_name[5] = (TextBox7.Text);
- Dispenser_name[6] = (TextBox8.Text);
- Dispenser_name[7] = (TextBox9.Text);
-
- PCB_SN[0]=(Press0.Text);
- PCB_SN[1]=(Press1.Text);
- PCB_SN[2]=(Press2.Text);
- PCB_SN[3]=(Press3.Text);
- PCB_SN[4]=(Press4.Text);
- PCB_SN[5]=(Press5.Text);
- PCB_SN[6]=(Press6.Text);
- PCB_SN[7]=(Press7.Text);
-
- Dispenser_PN[0]=(PartNm0.Text);
- Dispenser_PN[1]=(PartNm1.Text);
- Dispenser_PN[2]=(PartNm2.Text);
- Dispenser_PN[3]=(PartNm3.Text);
- Dispenser_PN[4]=(PartNm4.Text);
- Dispenser_PN[5]=(PartNm5.Text);
- Dispenser_PN[6]=(PartNm6.Text);
- Dispenser_PN[7]=(PartNm7.Text);
-
-
- //-----------------------------------------
- if (checkBox0.Checked)
- {
- Empty_EEprom[0] = 80; //"P"
- Dry_Run_EEprom[0]= 80; //"P"
- Flow_EEprom[0]= 80; //"P"
- }
- else
- {
- Empty_EEprom[0] = 70; //"F"
- Dry_Run_EEprom[0]= 70; //"F"
- Flow_EEprom[0]= 70; //"F"
- }
-//-----------------------------------------
- if (checkBox1.Checked)
- {
- Empty_EEprom[1] = 80; //"P"
- Dry_Run_EEprom[1]= 80; //"P"
- Flow_EEprom[1]= 80; //"P"
- }
- else
- {
- Empty_EEprom[1] = 70; //"F"
- Dry_Run_EEprom[1]= 70; //"F"
- Flow_EEprom[1]= 70; //"F"
- }
-//-----------------------------------------
- if (checkBox2.Checked)
- {
- Empty_EEprom[2] = 80; //"P"
- Dry_Run_EEprom[2]= 80; //"P"
- Flow_EEprom[2]= 80; //"P"
- }
- else
- {
- Empty_EEprom[2] = 70; //"F"
- Dry_Run_EEprom[2]= 70; //"F"
- Flow_EEprom[2]= 70; //"F"
- }
-//-----------------------------------------
- if (checkBox3.Checked)
- {
- Empty_EEprom[3] = 80; //"P"
- Dry_Run_EEprom[3]= 80; //"P"
- Flow_EEprom[3]= 80; //"P"
- }
- else
- {
- Empty_EEprom[3] = 70; //"F"
- Dry_Run_EEprom[3]= 70; //"F"
- Flow_EEprom[3]= 70; //"F"
- }
-//-----------------------------------------
- if (checkBox4.Checked)
- {
- Empty_EEprom[4] = 80; //"P"
- Dry_Run_EEprom[4]= 80; //"P"
- Flow_EEprom[4]= 80; //"P"
- }
- else
- {
- Empty_EEprom[4] = 70; //"F"
- Dry_Run_EEprom[4]= 70; //"F"
- Flow_EEprom[4]= 70; //"F"
- }
-//-----------------------------------------
- if (checkBox5.Checked)
- {
- Empty_EEprom[5] = 80; //"P"
- Dry_Run_EEprom[5]= 80; //"P"
- Flow_EEprom[5]= 80; //"P"
- }
- else
- {
- Empty_EEprom[5] = 70; //"F"
- Dry_Run_EEprom[5]= 70; //"F"
- Flow_EEprom[5]= 70; //"F"
- }
-//-----------------------------------------
- if (checkBox6.Checked)
- {
- Empty_EEprom[6] = 80; //"P"
- Dry_Run_EEprom[6]= 80; //"P"
- Flow_EEprom[6]= 80; //"P"
- }
- else
- {
- Empty_EEprom[6] = 70; //"F"
- Dry_Run_EEprom[6]= 70; //"F"
- Flow_EEprom[6]= 70; //"F"
- }
-//-----------------------------------------
- if (checkBox7.Checked)
- {
- Empty_EEprom[7] = 80; //"P"
- Dry_Run_EEprom[7]= 80; //"P"
- Flow_EEprom[7]= 80; //"P"
- }
- else
- {
- Empty_EEprom[7] = 70; //"F"
- Dry_Run_EEprom[7]= 70; //"F"
- Flow_EEprom[7]= 70; //"F"
- }
-
- Save_EEPROM();
- enable_test();
-
- };
- //----------------------------------------Motor_Up ----------------------------------------
- button6.Click +=async(_,__) =>
- {
- _cancellationTokenSource = new CancellationTokenSource();
- try
- {
- disable_test();
- var longRunningTask =await DispenserSetup(Up_Table,"MotorUp");
- }
- catch (OperationCanceledException)
- {
- enable_test();
- // Status="Cancel";
- stubManager.WriteLine("Task was cancelled");
- }
- finally
- {
- _cancellationTokenSource.Dispose();
- stubManager.WriteLine("end Task ");
- enable_test();
-
- }
- };
-//--------------------------------------Motor_Down Homing------------------------------------------
- button7.Click += async(_,__) =>
- {
- _cancellationTokenSource = new CancellationTokenSource();
- try
- {
- disable_test();
- var longRunningTask =await DispenserSetup(Down_Table,"Homing");
- }
- catch (OperationCanceledException)
- {
- enable_test();
- // Status="Cancel";
- stubManager.WriteLine("Task was cancelled");
- }
- finally
- {
- _cancellationTokenSource.Dispose();
- stubManager.WriteLine("end Task ");
- enable_test();
-
- }
- };
-//-------------------------------------Dynamic sealing positive pressure-------------------------------------------
-
- button8.Click += async(_,__) =>
- {
- _cancellationTokenSource = new CancellationTokenSource();
- try
- {
- disable_test();
- var longRunningTask =await DispenserSetup(DynamicPositive_Table,"Dynamic Positive");
- }
- catch (OperationCanceledException)
- {
- enable_test();
- // Status="Cancel";
- stubManager.WriteLine("Task was cancelled");
- }
- finally
- {
- _cancellationTokenSource.Dispose();
- stubManager.WriteLine("end Task ");
- enable_test();
- }
- };
-//---------------------------------- Dynamic sealing negative pressure ----------------------------------------------
- button9.Click +=async (_,__) =>
- {
- _cancellationTokenSource = new CancellationTokenSource();
- try
- {
- disable_test();
- var longRunningTask =await DispenserSetup(DynamicNegative_Table,"Dynamic Negative");
- }
- catch (OperationCanceledException)
- {
- enable_test();
- // Status="Cancel";
- stubManager.WriteLine("Task was cancelled");
- }
- finally
- {
- _cancellationTokenSource.Dispose();
- stubManager.WriteLine("end Task ");
- enable_test();
- }
- };
-//-------------------------------- Flow Test------------------------------------------------
- button10.Click += async(_,__) =>
- {
- _cancellationTokenSource = new CancellationTokenSource();
- try
- {
- disable_test();
- var longRunningTask =await DispenserSetup(Flow_Table,"Flow Test");
- }
- catch (OperationCanceledException)
- {
- enable_test();
- // Status="Cancel";
- stubManager.WriteLine("Task was cancelled");
- }
- finally
- {
- _cancellationTokenSource.Dispose();
- stubManager.WriteLine("end Task ");
- enable_test();
- }
- };
-
-//---------------------------------------Homing no need -----------------------------------------
-// button11.Click += (_,__) =>
-// {
-// ButtonName = "Homing";
-// Dispenser_name[0] = (TextBox1.Text);
-// Dispenser_name[1] = (TextBox3.Text);
-// Dispenser_name[2] = (TextBox4.Text);
-// Dispenser_name[3] = (TextBox5.Text);
-// Dispenser_name[4] = (TextBox6.Text);
-// Dispenser_name[5] = (TextBox7.Text);
-// Dispenser_name[6] = (TextBox8.Text);
-// Dispenser_name[7] = (TextBox9.Text);
-// Table=2;
-//
-// DispenserSetup();
-// };
-//-------------------------------------Valve Open-------------------------------------------
-
- button12.Click += (_,__) =>
- {
- ButtonName = "Open Valve";
- valveopen(stubManager);
- };
-
-//-------------------------------------Valve Close -------------------------------------------
- button13.Click += (_,__) =>
- {
- ButtonName = "Close Valve";
- valveclose(stubManager);
- };
-
-//-----------------------------------Reliability Test ---------------------------------------------
- button14.Click += async(_,__) =>
- {
- _cancellationTokenSource = new CancellationTokenSource();
- try
- {
- disable_test();
- var longRunningTask =await DispenserSetup(Reliability_Table,"Reliability Test");
- }
- catch (OperationCanceledException)
- {
- enable_test();
- // Status="Cancel";
- stubManager.WriteLine("Task was cancelled");
- }
- finally
- {
- _cancellationTokenSource.Dispose();
- stubManager.WriteLine("end Task ");
- enable_test();
- }
- };
- //-----------------------------------Pressure build up ---------------------------------------------
- button15.Click += async(_,__) =>
- {
- _cancellationTokenSource = new CancellationTokenSource();
- try
- {
- disable_test();
- var longRunningTask =await DispenserSetup(BuildUp_Table,"Pressure Build Up");
- }
- catch (OperationCanceledException)
- {
- enable_test();
- // Status="Cancel";
- stubManager.WriteLine("Task was cancelled");
- }
- finally
- {
- _cancellationTokenSource.Dispose();
- stubManager.WriteLine("end Task ");
- enable_test();
- }
- };
-
-//------------------------------- load file.. -------------------------------------------------
- button16.Click += (_,__) =>
- {
- try
- {
- Thread t = new Thread(() => {
- OpenFileDialog dlg = new OpenFileDialog();
- // The following would not return the dialog if the current
- // thread is not STA
- dlg.Filter = "TBL|*.tbl";
- if(dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
- {
- TextBox10.Text= dlg.SafeFileName;
- Tbl_File_Name=TextBox10.Text;
- }
- });
- t.SetApartmentState(ApartmentState.STA);
- t.Start();
- }
- catch (Exception ex)
- {
- stubManager.WriteLine("exseption");
- //ex.LogException();
- }
- };
- //------------------------------------run file --------------------------------------------
- button17.Click += async(_,__) =>
- {
- // stubManager.WriteLine(Tbl_File_Name +" -1");
-
- if ((ConverFileToTBL(Tbl_File_Name)) ==0)
- {
- stubManager.WriteLine(Tbl_File_Name +" --ok");
-
- _cancellationTokenSource = new CancellationTokenSource();
- try
- {
- disable_test();
- string[] FileName = Tbl_File_Name.Split('.');
- var longRunningTask =await DispenserSetup(Start_Table,FileName[0]);
- }
- catch (OperationCanceledException)
- {
- enable_test();
- // Status="Cancel";
- stubManager.WriteLine("Task was cancelled");
- }
- finally
- {
- _cancellationTokenSource.Dispose();
- stubManager.WriteLine("end Task ");
- enable_test();
- }
- }
- else
- {
- _cancellationTokenSource = new CancellationTokenSource();
- _cancellationTokenSource.Dispose();
- stubManager.WriteLine("Error Table ");
- }
-
- };
-//------------------------------------stop --------------------------------------------
- button18.Click += (_, __) =>
- {
- _cancellationTokenSource.Cancel();
- stubManager.WriteLine("stop ");
-
- // ButtonName = "Stop";
-
-
- //TextBox1.Text ="";
- };
-
- //--------------------load dispenser name ------------------------
- void LoadDispenserName ()
- {
- (TextBox1.Text) = Dispenser_name[0];
- (TextBox3.Text) = Dispenser_name[1];
- (TextBox4.Text) = Dispenser_name[2];
- (TextBox5.Text) = Dispenser_name[3];
- (TextBox6.Text) = Dispenser_name[4];
- (TextBox7.Text) = Dispenser_name[5];
- (TextBox8.Text) = Dispenser_name[6];
- (TextBox9.Text) = Dispenser_name[7];
-
-
- (Press0.Text)=PCB_SN[0];
- (Press1.Text)=PCB_SN[1];
- (Press2.Text)=PCB_SN[2];
- (Press3.Text)=PCB_SN[3];
- (Press4.Text)=PCB_SN[4];
- (Press5.Text)=PCB_SN[5];
- (Press6.Text)=PCB_SN[6];
- (Press7.Text)=PCB_SN[7];
-
- (PartNm0.Text)=Dispenser_PN[0];
- (PartNm1.Text)=Dispenser_PN[1];
- (PartNm2.Text)=Dispenser_PN[2];
- (PartNm3.Text)=Dispenser_PN[3];
- (PartNm4.Text)=Dispenser_PN[4];
- (PartNm5.Text)=Dispenser_PN[5];
- (PartNm6.Text)=Dispenser_PN[6];
- (PartNm7.Text)=Dispenser_PN[7];
-
-
- }
-
-
-//--------------------disabele test ------------------------
- void disable_test()
- {
-
- if ( (listBox1.SelectedItem)=="Press-Sensor -1 to 10 Bar")
- {
- stubManager.WriteLine("Press_Sensor_Type=1");
- Press_Sensor_Type=1;
- }
- else
- {
- stubManager.WriteLine("Press_Sensor_Type=0");
- Press_Sensor_Type=0;
- }
-
- button1.Enabled =false;
- button2.Enabled =false;
- button3.Enabled =false;
- button4.Enabled =false;
- button5.Enabled =false;
- button6.Enabled =false;
- button7.Enabled =false;
- button8.Enabled =false;
- button9.Enabled =false;
- button10.Enabled =false;
- button11.Enabled =false;
- button12.Enabled =false;
- button13.Enabled =false;
- button14.Enabled =false;
- button15.Enabled =false;
- button16.Enabled =false;
- button17.Enabled =false;
- button18.Enabled =true;
-
-
- Dispenser_name[0] = (TextBox1.Text);
- Dispenser_name[1] = (TextBox3.Text);
- Dispenser_name[2] = (TextBox4.Text);
- Dispenser_name[3] = (TextBox5.Text);
- Dispenser_name[4] = (TextBox6.Text);
- Dispenser_name[5] = (TextBox7.Text);
- Dispenser_name[6] = (TextBox8.Text);
- Dispenser_name[7] = (TextBox9.Text);
-
- PCB_SN[0]=(Press0.Text);
- PCB_SN[1]=(Press1.Text);
- PCB_SN[2]=(Press2.Text);
- PCB_SN[3]=(Press3.Text);
- PCB_SN[4]=(Press4.Text);
- PCB_SN[5]=(Press5.Text);
- PCB_SN[6]=(Press6.Text);
- PCB_SN[7]=(Press7.Text);
-
-
- Dispenser_PN[0]=(PartNm0.Text);
- Dispenser_PN[1]=(PartNm1.Text);
- Dispenser_PN[2]=(PartNm2.Text);
- Dispenser_PN[3]=(PartNm3.Text);
- Dispenser_PN[4]=(PartNm4.Text);
- Dispenser_PN[5]=(PartNm5.Text);
- Dispenser_PN[6]=(PartNm6.Text);
- Dispenser_PN[7]=(PartNm7.Text);
-
-
-
-
-
- }
-//--------------------enable test ------------------------
-
- void enable_test()
- {
- button1.Enabled =true;
- button2.Enabled =true;
- button3.Enabled =true;
- button4.Enabled =true;
- button5.Enabled =true;
- button6.Enabled =true;
- button7.Enabled =true;
- button8.Enabled =true;
- button9.Enabled =true;
- button10.Enabled =true;
- button11.Enabled =true;
- button12.Enabled =true;
- button13.Enabled =true;
- button14.Enabled =true;
- button15.Enabled =true;
- button16.Enabled =true;
- button17.Enabled =true;
- button18.Enabled =false;
-
- for (Int32 i=0;i<8;i++)
- {
- MotorStop(i);
- }
-
- // stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,WINDER_Motor,3); //stop motor
- // stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,SCREW,3); //stop motor
-
- }
-
-
-
-// Display the form as a modal dialog box.
- form1.ShowDialog();
-
-
- for (Int32 i=0;i<8;i++)
- {
- MotorStop(i);
- stubManager.Write("Motor Stop Hard Hiz \t");
-
- System.IO.File.WriteAllText(@"C:\Dispenser_setup\setup.txt", listBox1.SelectedIndex.ToString());
-
- stubManager.Write(listBox1.SelectedItem);
- }
-
- return;
-}
-
-public int delay(Int32 ms_delay)
- {
-
- Thread.Sleep(ms_delay);
- if (_cancellationTokenSource.Token.IsCancellationRequested)
- {
- _cancellationTokenSource.Token.ThrowIfCancellationRequested();
- throw new TaskCanceledException();
- return 0;
- }
- return 0;
- }
diff --git a/Software/Stubs Collection/stubs/Scripts/Head_EEPROM.cs b/Software/Stubs Collection/stubs/Scripts/Head_EEPROM.cs
deleted file mode 100644
index 1b3ab7213..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Head_EEPROM.cs
+++ /dev/null
@@ -1,135 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-//----------------------
-const Int32 I2C_ID = 3; //MCU_I2C3
-const Int32 TCA9548A_address = 0xE2;
-const Int32 I2C_Slave_Add = 0xA0; // //eeprom address - 32kByte
-int Head_Mux_Channel_ID = 4; //Head MUX channel
-//----------------------
-
-
-int enable_channel(int Channel_ID)
-{
- uint Const_temp = 0x01;
-
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = TCA9548A_address;
-
- Const_temp = Const_temp << Channel_ID;
- stubI2CWriteBytesRequest.BytesTWrite.Add(Const_temp);
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
-}
-
-
-int adc_write(uint I2C_Slave_Add, uint Page)
-{
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write
- //--------------------------------------------------------------
-
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x12 + Page);//Data 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x34 + Page);//Data 1 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x56 + Page);//Data 2 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x78 + Page);//Data 3 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x90 + Page);//Data 4 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(0xAB + Page);//Data 5 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(0xCD + Page);//Data 6 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(0xEF + Page);//Data 7 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x01 + Page);//Data 8 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x02 + Page);//Data 9 to write
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
-}
-
-int adc_set_for_read_ch(uint I2C_Slave_Add, uint Page)
-{
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
-}
-
-int adc_read_ch(uint I2C_Slave_Add)
-{
- StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();
- stubI2CReadBytesRequest.I2CId = I2C_ID;
- stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add + 1;
- stubI2CReadBytesRequest.NumberOfBytesToRead = 10; // Number of bytes to read
-
- var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);
- uint temph=0;
-
- for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++)
- {
- temph=response1.ReadBytes[i];
- stubManager.WriteHex(temph,2);
- }
-
- return 1;
-}
-
-
-public void OnExecute(StubManager stubManager)
-{
-
- //enable_all_channel();
- enable_channel(Head_Mux_Channel_ID); // Chanel 0-7 => Disp0enser 0-7
-
- for (int i = 0; i<1; i++)
- {
-
- adc_write(I2C_Slave_Add,0x10);
- Thread.Sleep(10); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet )
-
- adc_write(I2C_Slave_Add,0x00);
- Thread.Sleep(10); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet )
-
- stubManager.Write("\nPage 0x10 #");
- stubManager.Write(i);
- stubManager.Write("\t- The Buffer is: ");
- adc_set_for_read_ch(I2C_Slave_Add,0x10);
- //Thread.Sleep(1); //Sleep for 10 milli.
- adc_read_ch(I2C_Slave_Add);
-
- Thread.Sleep(10);
-
- stubManager.Write("\nPage 0x00 #");
- stubManager.Write(i);
- stubManager.Write("\t- The Buffer is: ");
- adc_set_for_read_ch(I2C_Slave_Add, 0x00);
- //Thread.Sleep(1); //Sleep for 10 milli.
- adc_read_ch(I2C_Slave_Add);
-
- Thread.Sleep(1000);
-
- }
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Head_Type_Indification.cs b/Software/Stubs Collection/stubs/Scripts/Head_Type_Indification.cs
deleted file mode 100644
index 948b847af..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Head_Type_Indification.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-
- var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFEAD, 0);
-
- /* Response:
- HEAD_TYPE_UNKNOWN // 0
- HEAD_TYPE_SYLKO_WITHOUT_CARD// 1
- HEAD_TYPE_UNKNOWN_WITH_CARD// 2
- HEAD_TYPE_SYLKO// 3
- HEAD_TYPE_STAPLE_SPUN// 4
- */
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Head_Type_Indification_2.cs b/Software/Stubs Collection/stubs/Scripts/Head_Type_Indification_2.cs
deleted file mode 100644
index a5f28a01d..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Head_Type_Indification_2.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-
- var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFEAD, 0);
-
- /* Response:
- HEAD_TYPE_UNKNOWN // 0
- HEAD_TYPE_FLAT_WITHOUT_CARD// 1
- HEAD_TYPE_UNKNOWN_WITH_CARD// 2
- HEAD_TYPE_FLAT// 3
- HEAD_TYPE_ARC// 4
- */
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/I2C_RW_Dispenser_EEPROM.cs b/Software/Stubs Collection/stubs/Scripts/I2C_RW_Dispenser_EEPROM.cs
deleted file mode 100644
index 3c4a1d70a..000000000
--- a/Software/Stubs Collection/stubs/Scripts/I2C_RW_Dispenser_EEPROM.cs
+++ /dev/null
@@ -1,134 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-//----------------------
-const Int32 I2C_ID = 4; //MCU_I2C4
-const Int32 TCA9548A_address = 0xE2;
-//const Int32 I2C_Slave_Add = 0xA0; // //eeprom address - 32kByte & 128kByte
-const Int32 I2C_Slave_Add = 0xA2; //eeprom address - only in the eeprom of 128kByte
-int Dispenser_ID = 6; //Software Dispensers 0..7, BP Dispensers 1..8
-//----------------------
-
-int enable_all_channel()
-{
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = TCA9548A_address;
-
- stubI2CWriteBytesRequest.BytesTWrite.Add(0xff);//enable all 8 i2c channel
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
-}
-
-int enable_channel(int Channel_ID)
-{
- uint Const_temp = 0x01;
-
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = TCA9548A_address;
-
- Const_temp = Const_temp << Channel_ID;
- stubI2CWriteBytesRequest.BytesTWrite.Add(Const_temp);//enable i2c channel 0 Dispenser 1
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
-}
-
-
-int adc_write(uint I2C_Slave_Add)
-{
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
- //--------------------------------------------------------------
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x12);//Data 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x34);//Data 1 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x56);//Data 2 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x78);//Data 3 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x90);//Data 4 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(0xAB);//Data 5 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(0xCD);//Data 6 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(0xEF);//Data 7 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x01);//Data 8 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x02);//Data 9 to write
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
-}
-
-int adc_set_for_read_ch(uint I2C_Slave_Add)
-{
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
-}
-
-int adc_read_ch(uint I2C_Slave_Add)
-{
- StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();
- stubI2CReadBytesRequest.I2CId = I2C_ID;
- stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add + 1;
- stubI2CReadBytesRequest.NumberOfBytesToRead = 10; // Number of bytes to read
-
- var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);
- uint temph=0;
-
- for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++)
- {
- temph=response1.ReadBytes[i];
- stubManager.WriteHex(temph,2);
- }
-
- return 1;
-}
-
-
-public void OnExecute(StubManager stubManager)
-{
-
- //enable_all_channel();
- enable_channel(Dispenser_ID); // Chanel 0-7 => Disp0enser 0-7
-
- for (int i = 0; i<100; i++)
- {
-
- adc_write(I2C_Slave_Add);
- Thread.Sleep(5); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet )
- stubManager.Write("\n#");
- stubManager.Write(i);
- stubManager.Write("\t- The Buffer is: ");
- adc_set_for_read_ch(I2C_Slave_Add);
- //Thread.Sleep(1); //Sleep for 10 milli.
- adc_read_ch(I2C_Slave_Add);
-
- Thread.Sleep(1000);
-
- }
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/I2C_RW_Main_Card_EEPROM_Save_Main_SN.cs b/Software/Stubs Collection/stubs/Scripts/I2C_RW_Main_Card_EEPROM_Save_Main_SN.cs
deleted file mode 100644
index 6ec538758..000000000
--- a/Software/Stubs Collection/stubs/Scripts/I2C_RW_Main_Card_EEPROM_Save_Main_SN.cs
+++ /dev/null
@@ -1,98 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-//----------------------
-const Int32 I2C_ID = 2; //MCU_I2C2
-
-const Int32 I2C_Slave_Add = 0xA0; //Slave (EEPROM) address
-
-string str = "UM181700004";//main card S/N
-
-uint length = 11;
-int i = 0;
-
-//----------------------
-
-int adc_write(uint I2C_Slave_Add)
-{
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
- //--------------------------------------------------------------
-
- for(i=0;i<length;i++)
- stubI2CWriteBytesRequest.BytesTWrite.Add(str[i]);//Data 0 to write
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
-}
-
-int adc_set_for_read_ch(uint I2C_Slave_Add)
-{
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
-}
-
-int adc_read_ch(uint I2C_Slave_Add)
-{
- StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();
- stubI2CReadBytesRequest.I2CId = I2C_ID;
- stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add + 1;
- stubI2CReadBytesRequest.NumberOfBytesToRead = length; // Number of bytes to read
-
- var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);
- uint temph=0;
-
- for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++)
- {
- temph=response1.ReadBytes[i];
- stubManager.Write((char) temph);
- }
-
- return 1;
-}
-
-
-public void OnExecute(StubManager stubManager)
-{
-
- for (int i = 0; i<1; i++)
- {
-
- adc_write(I2C_Slave_Add);
- Thread.Sleep(5); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet )
- stubManager.Write("\n");
-
- stubManager.Write("The eeprom data: ");
- adc_set_for_read_ch(I2C_Slave_Add);
-
- adc_read_ch(I2C_Slave_Add);
-
- Thread.Sleep(1000);
-
- }
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Dryer_Jig.cs b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Dryer_Jig.cs
deleted file mode 100644
index 91b8944ca..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Dryer_Jig.cs
+++ /dev/null
@@ -1,457 +0,0 @@
-using System;
-using System.Text;
-using System.IO;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-
-
-const int Dryer_UNDER_TEST=12;
-//--------------------------------------------------------------------------------
-//---------------------------
-Int32 last_14bit_position;
-Int32 position_32bit=0;
-float [] DryerTemp = new float[20] ;
-
-
-string [,] Units_status_Dryer = new string[Dryer_UNDER_TEST,2] {
- {"Lid_Motor","Not Test"}, //0
- {"LS_Lid_Open","Not Test"}, //1
- {"LS_Lid_Close","Not Test"}, //2
- {"DRIVING_Motor","Not Test"}, //3
- {"SSI_Encoder","Not Test"}, //4
- {"LoadArm_Motor","Not Test"}, //5
- {"Blower_test","Not Test"}, //6
- {"Air_PT100_test","Not Test"}, //7
- {"Main_PT100_test","Not Test"}, //8
- {"Sec.PT100","Not Test"}, //9
- {"SSR1_heater","Not Test"}, //10
- {"SSR2_heater","Not Test"}, //11
- };
-
-
-
-//--------------------------------------------------------------------------------
-
-
-public Task<decimal> Dryer_test( Action<string> settext, CancellationToken cancellationToken, string SN, string Location )
-{
- Task<decimal> task = null;
- // Start a task and return it
- task = Task.Run(() =>
- {
- stubManager.Write("S/N:" +SN+ "\n");
- stubManager.Write("Location:" +Location+ "\n");
-
- copy_table (Dryer_UNDER_TEST,Units_status_Dryer);
-
- settext("Test Dryer LId");
- Test_LId();
-
- settext("Test Dryer motor Driving");
- Test_motor_driving();
-
- settext("Test Dryer Load Arm");
- Test_Load_Arm ();
-
- settext("Test Dryer Blower heaters pt100");
- Test_Blower_heaters_pt100();
-
- Status=write_to_file(SN,Location,Dryer_UNDER_TEST,"Dryer");
-
- settext("End Test");
-
- decimal result = 0;
-
- return result;
- });
- return task;
-}
-//------------------------------------------
-int Test_Blower_heaters_pt100()
-{
-
- float ftemp=0;
- float ftemp1=0;
-
- SetBit(F1_gpo_01,5,1); //turn off Blower
- delay(500);
-
- var RetVal=Fpga_Read_Reg(F1_Tacho_reg8);
-
- DialogResult result = MessageBox.Show("Close Dryer Door", "Warning");
-
- SetBit(F1_gpo_01,4,1); //Dir
- SetBit(F1_gpo_01,3,1); //Torqer High
- SetBit(F1_gpo_01,5,0); //turn on Blower
-
- const int LOW = 70;//0 - 100%
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F2_Prescaler1_reg11, 0xFF);//Freq 8 bit
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F2_BLOWER_PWM_LOW, LOW+1);//Low 8 bit
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F2_BLOWER_PWM_HIGH, 101 - LOW);//High 8 bit
-
- delay(1000);
- RetVal=Fpga_Read_Reg(F1_Tacho_reg8);
- stubManager.Write("blower Speed- " + RetVal.Value + "\n");
- if ((RetVal.Value<150)||(RetVal.Value>250) )
- {
- Units_status[6,1]="Fail";
- stubManager.Write("Error,Fan rotate\n");
- return 0;
- }
- Units_status[6,1]="Pass";
-
- stubManager.Write("Temp Befor heating \n");
- if (test_pt100_dryer()!=0)
- return 0;
-
-float temp=0;
-float temp1=4096*95*5;
-
- //Write GPO_DRYER_SSR1_CTRL SSR/SSR no. 1
- SetBit (F2_CTRL, 10, 1); //turn SSR1 on
- stubManager.Write("\tTesting SSR no. 1\t");
- delay(1000);
-var response1 = stubManager.Run<StubIntADCReadResponse>("StubIntADCReadRequest" ,16);
- temp=Convert.ToUInt32 (response1.SamplingInBits);
- temp=temp*800*3*100;
- temp=temp/(4096*95*50);
- stubManager.Write("Current = "+ temp + "A\n");
- if ((temp>6) || (temp<3))
- Units_status[10,1]="Fail";
- else
- Units_status[10,1]="Pass";
-
- //Write GPO_DRYER_SSR2_CTRL SSR/SSR no. 2
- SetBit (F2_CTRL, 9, 1);
- stubManager.Write("\tTesting SSR no. 2\t");
- delay(1000);
- response1 = stubManager.Run<StubIntADCReadResponse>("StubIntADCReadRequest" ,17);
- temp=Convert.ToUInt32 (response1.SamplingInBits);
- temp=temp*800*3*100;
- temp=temp/(4096*95*100);
- stubManager.Write("Current = "+ temp + "A\n");
- if ((temp>3) || (temp<1))
- Units_status[11,1]="Fail";
- else
- Units_status[11,1]="Pass";
-
- delay(50000);
-
-//check air temp
- ftemp=Read_pt100(6);
- stubManager.Write("After heating air temp is " + ftemp + "\n");
- ftemp = ftemp - DryerTemp[6];
- if ((ftemp<5)||(ftemp>40))
- Units_status[7,1]="Fail";
- else
- Units_status[7,1]="Pass";
-
-
-
-//check Main temp
- ftemp=Read_pt100(7);
- stubManager.Write("After heating Main temp is " + ftemp + "\n");
- ftemp = ftemp - DryerTemp[7];
- if ((ftemp<5)||(ftemp>60))
- Units_status[8,1]="Fail";
- else
- Units_status[8,1]="Pass";
-
-//check Sec. temp
- ftemp=Read_pt100(8);
- stubManager.Write("After heating Sec. temp is " + ftemp + "\n");
- ftemp = ftemp - DryerTemp[8];
- if ((ftemp<5)||(ftemp>60))
- Units_status[9,1]="Fail";
- else
- Units_status[9,1]="Pass";
-
- SetBit (F2_CTRL, 10, 0); //turn SSR1 off
- SetBit (F2_CTRL, 9, 0); //turn SSR2 off
-
- SetBit(F1_gpo_01,5,1); //turn off Blower
- return 1;
-
-}
-
- int test_pt100_dryer()
- {
- float ftemp=0;
- int temp=0;
- int j=0;
- for (int i = 6; i < 9; i++)
- {
- DryerTemp[i]=Read_pt100(i);
-
- ftemp=DryerTemp[i];
- if ((ftemp>140)|| (ftemp<10))
- {
- Units_status[i+1,1]="Fail";
- }
- else
- {
- Units_status[i+1,1]="Pass";
- }
- stubManager.Write(Units_status[i+1,0] +"\t"+ ftemp.ToString("F2"));
- stubManager.Write("°C \t" + Units_status[i+1,1] + " \n");
-
- }
- return 0;
- }
-//------------------------------------------
-int Test_motor_driving ()
-
-{
- MessageBox.Show("Open Dryer Door and add CHEATER to Door. ", "Warning");
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DryerMain_Motor, true, 2200); //rotate Dryer Motor.
- stubManager.Write("Dryer Motor rotate \n ");
- DialogResult result = MessageBox.Show("Are Dryer Motor rotate smoothly ?", "Warning",MessageBoxButtons.YesNo);
- if(result == DialogResult.No)
- {
- Units_status[3,1]="Fail";
- stubManager.Write("Dryer Motor not rotate\n");
- }
- else
- {
- Units_status[3,1]="Pass";
- stubManager.Write("Dryer Motor rotate\n");
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DryerMain_Motor,3); //stop motor
-
- return 0;
-}
-//----------------------------------
-int Test_Load_Arm()
-{
-
- Int32 temp3=0;
- Int32 j=0;
- Int32 i=0;
-
- if (!Encoder_Dryer_Exist())
- {
- Units_status[4,1]="Fail";
- stubManager.Write("Encoder of Dryer Fail \n");
- return 0;
-
- }
-// position_32bit=0;
-//last_14bit_position
- ReadEncoder_Dryer();
- position_32bit=0;
- ReadEncoder_Dryer();
- Int32 temp=position_32bit;
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, false, 100);//40
- delay(50);
-// temp=ReadEncoder_Dryer();
- while ((temp3<2)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min
- {
- i++;
- delay(50);
- ReadEncoder_Dryer();
-// stubManager.Write("position_32bit " + position_32bit +"\t");
-
- if (Math.Abs(position_32bit)> (50*0x4000))
- temp3=3;
- if ((position_32bit-temp)>20)
- temp3++;
-// stubManager.Write("Temp " + temp +"\n");
- temp=position_32bit;
-// stubManager.Write("Temp3 " + temp3 +"\n");
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3);
-
- DialogResult result1 = MessageBox.Show("Arm Motor rotate ?", "Warning",MessageBoxButtons.YesNo);
- if(result1 == DialogResult.No)
- {
- Units_status[5,1]="Fail";
- stubManager.Write("Arm Motor Not rotate\n");
- return 0;
- }
- Units_status[5,1]="Pass";
-
- DialogResult result2 = MessageBox.Show("Did Arm Motor arrive to mechanical stopper?. See picture on document", "Warning",MessageBoxButtons.YesNo);
- if(result2 == DialogResult.No)
- {
- Units_status[4,1]="Fail";
- stubManager.Write("Arm Motor Not arrive to mecahnicl stopper \n");
- return 0;
- }
-
- position_32bit=0;
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, true, 100);
- delay(50);
- i=0;
- temp3=0;
-
-
- while ((temp3<1)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min
- {
-
-
-// while ((Math.Abs(ReadEncoder_Dryer())< (30*0x4000))&& (i<12000))
-//
-// {
- delay(50);
- i++;
-// stubManager.Write("position_32bit " + position_32bit +"\t" + temp3 + "\n" );
- ReadEncoder_Dryer();
-// stubManager.Write("position_32bit " + position_32bit +"\t");
-
- if (Math.Abs(position_32bit)> (30*0x4000))
- temp3=3;
- if ((temp-position_32bit)>20)
- temp3++;
-// stubManager.Write("Temp " + temp +"\n");
- temp=position_32bit;
-
-
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3);
-
- DialogResult result3 = MessageBox.Show("Did Arm Motor make 30 rounds? See picture on document", "Warning",MessageBoxButtons.YesNo);
- if(result3 == DialogResult.No)
- {
- Units_status[4,1]="Fail";
- stubManager.Write("Arm Motor not make 30 rounds\n");
- return 0;
- }
- Units_status[4,1]="Pass";
- return 1;
-}
-bool Encoder_Dryer_Exist()
-{
- Int32 temp;
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190);
- var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192);
-
- temp = Convert.ToInt32 (response.Value & 0x0300);
- if (temp==0)
- return true;
- else
- return false;
-}
-
-
-
-void ReadEncoder_Dryer()
-{
- Int32 temp;
- Int32 temp1;
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190);
- var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192);
-
- temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff));
- if (temp>last_14bit_position)
- {
- temp1=temp-last_14bit_position;
- position_32bit=position_32bit+temp1;
- if (temp1>0x2000)
- position_32bit=position_32bit-0x4000;
- }
- else if (temp<last_14bit_position)
-
- {
- temp1=last_14bit_position-temp;
- position_32bit=position_32bit-temp1;
- if (temp1>0x2000)
- position_32bit=position_32bit+0x4000;
- }
-
- last_14bit_position=temp;
-
- return ;
-}
-//-----------------------------------
-int Test_LId ()
-{
- Int32 Bit = 1;
- int i = 0;
-
- UInt32 PowerStep_driver=0;
-
- if (Get_Driver_Type(4)>0x14)
- PowerStep_driver=1;
-
-
-
-
- stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,DryerLid_Motor, false, 0x800000+2*(1-PowerStep_driver)); //mov Dryer Lid motor down
- delay(2000);
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DryerLid_Motor, 2); //Hard stop hiZ motor
- delay(1000);
-
- stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,DryerLid_Motor, false, 0x800000+2*PowerStep_driver); //mov Dryer Lid motor up
-
- while ((Bit != 0x0) && (i<200)) //wait until Limit Switch or timeout 200*50msec=10sec
- {
- Bit = GetBit(F1_LS_01_Direct,4);
- delay(50);
- i++;
- }
-
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DryerLid_Motor, 2); //Hard stop hiZ motor
- DialogResult result1 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo);
- if((result1 == DialogResult.No) || (i==200) )
- {
- Units_status[1,1]="Fail";
- stubManager.Write("LS_Lid_Open Not calibrate\n");
- return 0;
- }
- Units_status[1,1]="Pass";
- stubManager.Write("\n--------1-Lid Open--------");
-
- stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,DryerLid_Motor, false, 0x800000+2*(1-PowerStep_driver)); //mov Dryer Lid motor down
-
- Bit = 1;
- i=0;
- while ((Bit != 0x0) && (i<200)) //wait until Limit Switch or timeout 200*50msec=10sec
- {
- Bit = GetBit(F1_LS_01_Direct,5);
- delay(50);
- i++;
- }
-
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DryerLid_Motor, 2); //Hard stop hiZ motor
- DialogResult result2 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo);
- if((result2 == DialogResult.No) || (i==200))
- {
- Units_status[2,1]="Fail";
- stubManager.Write("LS_Lid_Close Not calibrate\n");
- return 0;
- }
-
- stubManager.Write("\n--------2-Lid Close--------");
-
- Units_status[2,1]="Pass";
- Units_status[0,1]="Pass";
- return 1;
-
-}
-
-UInt32 Get_Driver_Type(UInt32 i)
-{
- Int32 x_GET_PARAM = 0x20;
- Int32 x_ADC_OUT = 0x12;
- UInt32 ADC_out ;
-
-
- var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ADC_OUT)<<8, 0, 0);
-
- ADC_out= (response.RecivedData) & 0x001F;
- stubManager.WriteHex(ADC_out,2) ;
- return ADC_out ;
-}
-
diff --git a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/DyeHead_Jig.cs b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/DyeHead_Jig.cs
deleted file mode 100644
index bf1a7d9c8..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/DyeHead_Jig.cs
+++ /dev/null
@@ -1,344 +0,0 @@
-using System;
-using System.Text;
-using System.IO;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-const int DyeHead_UNDER_TEST=16;
-
-float [] DyeHeadTemp = new float[6] ;
-
-string [,] Units_status_DyeHead = new string[DyeHead_UNDER_TEST,2] {
- {"Pt100_Zone_1","Not Test"},
- {"Pt100_Zone_2","Not Test"},
- {"Pt100_Zone_3","Not Test"},
- {"Pt100_Zone_4","Not Test"},
- {"Pt100_Zone_5","Not Test"},
- {"Pt100_Zone_6","Not Test"},
- {"Heater_Zone_1","Not Test"},
- {"Heater_Zone_2","Not Test"},
- {"Heater_Zone_3","Not Test"},
- {"Heater_Zone_4","Not Test"},
- {"Heater_Zone_5","Not Test"},
- {"Heater_Zone_6","Not Test"},
- {"Magnet ","Not Test"},
- {"LS_DH_LID_Open","Not Test"},
- {"LS_DH_LID_Close","Not Test"},
- {"DH_LID_Motor","Not Test"},
- };
-
-
-
-//--------------------------------------------------------------------------------
-
-public Task<decimal> DyeHead_test( Action<string> settext, CancellationToken cancellationToken, string SN, string Location)
-{
- Task<decimal> task = null;
- // Start a task and return it
- task = Task.Run(() =>
- {
- stubManager.Write("S/N:" +SN+ "\n");
- stubManager.Write("Location:" +Location+ "\n");
-
- copy_table (DyeHead_UNDER_TEST,Units_status_DyeHead);
-
- DialogResult result1 = MessageBox.Show("Make shure, Dyehead is not hot", "Warning",MessageBoxButtons.OKCancel);
- if(result1 == DialogResult.Cancel)
- {
- stubManager.AppendToFile(File_Name1,"Dyehead is too hot \tFail");
- stubManager.Write("Dyehead is too hot \tFail\n");
- return 0 ;
- }
- else
- {
-
-//------------------------------- start test -----------
- settext("Test Magnet Motor LS");
- Test_Magnet_Motor_LS_DyeHead();
- settext("Test heaters &pt100");
- Test_heaters_pt100 ();
-
- Status=write_to_file(SN,Location,DyeHead_UNDER_TEST,"Dyehead");
-
- settext("End Test");
- }
- decimal result = 0;
-
- return result;
- });
- return task;
-}
-
-
-
-//--------------------------------------------
- int Test_Magnet_Motor_LS_DyeHead()
-{
- Int32 Bit = 1;
-
- stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,MAGNET_Driver, false,0x800000+0);
- stubManager.Write("\nTesting SSR no. 13 of magnet or motor driver");
-
- DialogResult result = MessageBox.Show("Make shure, Magnet is open", "Warning",MessageBoxButtons.OKCancel);
- if(result == DialogResult.Cancel)
- {
- Units_status[12,1]="Fail";
- stubManager.Write("Magnet Not Open\n");
- return 0;
- }
- Units_status[12,1]="Pass";
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DyeingHeadLid_Motor, true, 250);
- stubManager.Write("\n*** Open Lid Head ");
-
- Bit = 1;
- int i=0;
- while ((Bit != 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec
- {
- Bit = GetBit(F1_LS_01_Direct,7);
- delay(50);
- i++;
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor,3); //stop motor
-
- DialogResult result1 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.OKCancel);
- if(result1 == DialogResult.Cancel)
- {
- Units_status[15,1]="Fail";
- Units_status[13,1]="Fail";
- stubManager.Write("LS_DH_LID_Open Not calibrate\n");
- return 0;
- }
- Units_status[13,1]="Pass";
- stubManager.Write("\n*** Close Lid Head ");
- Bit = 1;
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DyeingHeadLid_Motor, false, 250);
- i=0;
- while ((Bit != 0x0) && (i<200)) //wait until Limit Switch or timeout 200*50msec=10sec
- {
- Bit = GetBit(F1_LS_01_Direct,8);
- delay(50);
- i++;
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor,3); //stop motor
-
- DialogResult result2 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.OKCancel);
- if(result2 == DialogResult.Cancel)
- {
- Units_status[14,1]="Fail";
- Units_status[15,1]="Fail";
- stubManager.Write("LS_DH_LID_Close Not calibrate\n");
- return 0;
- }
- Units_status[14,1]="Pass";
- stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,MAGNET_Driver, false,0x800000+2);
- DialogResult result3 = MessageBox.Show("Make shure, Magnet is close", "Warning",MessageBoxButtons.OKCancel);
- if(result3 == DialogResult.Cancel)
- {
- Units_status[12,1]="Fail";
- stubManager.Write("Magnet Not close\n");
- return 0;
- }
- Units_status[12,1]="Pass";
- Units_status[15,1]="Pass";
-
- return 0;
-}
-
-
-//------------------------------------
-public int Test_heaters_pt100()
-{
-
-// uint utemp=0;
- uint temp=0;
- float ftemp=0;
- float ftemp1=0;
- float current=0;
-
- stubManager.Write("\nTemp Befor heating \n");
- if (test_pt100_dyehead()!=0)
- return 0;
-
-//------------Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 8
- SetBit (F2_CTRL, 3, 1);
- stubManager.Write("Testing SSR no. 8\tHeadZone-1\t");
- delay(15000);
- adc_configuration(0x40,0x10); //a2d_address 0x40 channel 3
- adc_set_for_read_ch(0x40);
- temp=adc_read_ch(0x40);
- current= (float)(temp);
- current=( float) (0.001221) * current;
- SetBit (F2_CTRL, 3, 0);
- ftemp=Read_pt100(1);
- stubManager.Write("After heating " + ftemp +"c\tCurrent is "+ current + "\n");
- ftemp = ftemp - DyeHeadTemp[0];
-
- if ((current>1.5)|| (current<0.9)||(ftemp<5)||(ftemp>40))
- Units_status[6,1]="Fail";
- else
- Units_status[6,1]="Pass";
-
- //Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 7
- ftemp=Read_pt100(2);
- ftemp1 = ftemp - DyeHeadTemp[1];
- if ( ftemp1>4)
- Units_status[7,1]="Fail";
- else
- {
- SetBit (F2_CTRL, 4, 1);
- stubManager.Write("Testing SSR no. 7\tHeadZone-2\t");
- delay(15000);
- adc_configuration(0x40,0x08); //a2d_address 0x40 channel 4
- adc_set_for_read_ch(0x40);
- temp=adc_read_ch(0x40);
- current= (float)(temp);
- current=( float) (0.001221) * current;
- SetBit (F2_CTRL, 4, 0);
- ftemp=Read_pt100(2);
- stubManager.Write("After heating " + ftemp +"c\tCurrent is "+ current + "\n");
- ftemp = ftemp - DyeHeadTemp[1];
- if ((current<1.6)|| (current>2.1)||(ftemp<5)||(ftemp>40))
- Units_status[7,1]="Fail";
- else
- Units_status[7,1]="Pass";
- }
-
- //Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 6
-
- ftemp=Read_pt100(3);
- ftemp1 = ftemp - DyeHeadTemp[2];
- if ( ftemp1>4)
- Units_status[8,1]="Fail";
- else
- {
- SetBit (F2_CTRL, 5, 1);
- stubManager.Write("Testing SSR no. 6\tHeadZone-3\t");
- delay(15000);
- adc_configuration(0x40,0x04); //a2d_address 0x40 channel 5
- adc_set_for_read_ch(0x40);
- temp=adc_read_ch(0x40);
- current= (float)(temp);
- current=( float) (0.001221) * current;
- SetBit (F2_CTRL, 5, 0);
- ftemp=Read_pt100(3);
- stubManager.Write("After heating " + ftemp +"c\tCurrent is "+current +"\n");
- ftemp = ftemp - DyeHeadTemp[2];
- if ((current<1.6)|| (current>2.1)||(ftemp<5)||(ftemp>40))
- Units_status[8,1]="Fail";
- else
- Units_status[8,1]="Pass";
- }
-
- //Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 5
- ftemp=Read_pt100(4);
- ftemp1 = ftemp - DyeHeadTemp[3];
- if ( ftemp1>4)
- Units_status[9,1]="Fail";
- else
- {
- SetBit (F2_CTRL, 6, 1);
- stubManager.Write("Testing SSR no. 5\tHeadZone-4\t");
- delay(15000);
- adc_configuration(0x44,0x80); //a2d_address 0x44 channel 0
- adc_set_for_read_ch(0x44);
- temp=adc_read_ch(0x44);
- current= (float)(temp);
- current=( float) (0.001221) * current;
-
- SetBit (F2_CTRL, 6, 0);
- ftemp=Read_pt100(4);
- stubManager.Write("After heating " + ftemp +"c\tCurrent is "+current + "\n");
- ftemp = ftemp - DyeHeadTemp[3];
- if ((current<2.9)|| (current>3.4)||(ftemp<5)||(ftemp>40 ))
- Units_status[9,1]="Fail";
- else
- Units_status[9,1]="Pass";
- }
-
- //Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 10
- ftemp=Read_pt100(5);
- ftemp1 = ftemp - DyeHeadTemp[4];
- if ( ftemp1>4)
- Units_status[10,1]="Fail";
- else
- {
- SetBit (F1_gpo_01, 2, 1);
- stubManager.Write("Testing SSR no. 10\tHeadZone-5\t");
- delay(15000);
- adc_configuration(0x44,0x40); //a2d_address 0x44 channel 1
- adc_set_for_read_ch(0x44);
- temp=adc_read_ch(0x44);
- current= (float)(temp);
- current=( float) (0.001526) * current;
- SetBit (F1_gpo_01, 2, 0);
- ftemp=Read_pt100(5);
- stubManager.Write("After heating " + ftemp +"c\tCurrent is "+current + "\n");
- ftemp = ftemp - DyeHeadTemp[4];
- if ((current<2.9)|| (current>3.4)||(ftemp<5)||(ftemp>40))
- Units_status[10,1]="Fail";
- else
- Units_status[10,1]="Pass";
- }
-
- //Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 11
- ftemp=Read_pt100(11);
- ftemp1 = ftemp - DyeHeadTemp[5];
- if ( ftemp1>4)
- Units_status[11,1]="Fail";
- else
- {
- SetBit (F3_GPO_01_bus, 4, 1);
- stubManager.Write("Testing SSR no. 11\tHeadZone-6\t");
- delay(15000);
- adc_configuration(0x44,0x40); //a2d_address 0x44 channel 1
- adc_set_for_read_ch(0x44);
- temp=adc_read_ch(0x44);
- current= (float)(temp);
- current=( float) (0.001526) * current;
- SetBit (F3_GPO_01_bus, 4, 0);
- ftemp=Read_pt100(11);
- stubManager.Write("After heating " + ftemp +"c\tCurrent is "+current + "\n");
- ftemp = ftemp - DyeHeadTemp[5];
- if ((current<1.6)|| (current>2.1)||(ftemp<5)||(ftemp>40))
- Units_status[11,1]="Fail";
- else
- Units_status[11,1]="Pass";
- }
- return 0;
-}
-//------------------------------------------------
- int test_pt100_dyehead()
- {
- float ftemp=0;
- int temp=0;
- int j=0;
- for (int i = 0; i < 6; i++)
- {
- if (i==5)
- j=11;
- else
- j=i+1;
- DyeHeadTemp[i]=Read_pt100(j);
- ftemp=DyeHeadTemp[i];
- if ((ftemp>100)|| (ftemp<10))
- {
- Units_status[i,1]="Fail";
- }
- else
- {
- Units_status[i,1]="Pass";
- }
- stubManager.Write("Zone-"+(i+1)+ "\t" + ftemp.ToString("F2"));
- stubManager.Write("°C\n");
-
- }
- return 0;
- }
diff --git a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/JIG_TESTER.cs b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/JIG_TESTER.cs
deleted file mode 100644
index a90acd902..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/JIG_TESTER.cs
+++ /dev/null
@@ -1,1032 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-include "Tango_define.cs"
-include "MidTank_Jig.cs"
-include "DyeHead_Jig.cs"
-include "LTFU_Jig.cs"
-include "RTFU_Jig.cs"
-include "Winder_Jig.cs"
-include "Dryer_Jig.cs"
-include "Mixer_Jig.cs"
-include "Location.cs"
-include "New_DyeHead_Jig.cs"
-include "New_Mixer_Jig.cs"
-
-//bool _click = false;
-System.Timers.Timer timer;
-
-
-string [,] Units_status = new string[50,2];
-
-string File_Name2;
-string File_Name1 ;
-string Status;
-
-
-const int Winder =0 ;
-const int LTFU =1 ;
-
-string path;
-string path1="C:\\Jig_Log\\";;
-
-bool BlinkOn = false;
-bool timer_started = false;
-CancellationTokenSource _cancellationTokenSource;
-
-int UNIT_UNDER_TEST ;
-
-
-public void OnExecute(StubManager stubManager)
-{
- string u =System.Environment.UserName;
-
-
-
- Label Run_text = new Label ()
- {
- Width = 110,
- Height =35,
- Text = "",
- BackColor = Color.White
- };
-
- System.Windows.Forms.Label _calc_text= new Label()
- {
- Width = 350,
- Height = 125,
- Text = ""
- };
- void setLabel1TextSafe(string txt)
- {
- if (_calc_text.InvokeRequired)
- _calc_text.Invoke(new Action(() => _calc_text.Text = txt));
- else
- _calc_text.Text = txt;
- }
-
- void timer_Tick(object sender, EventArgs e)
- {
- if (BlinkOn)
- {
- Run_text.ForeColor = Color.Green;
- Run_text.BackColor = Color.White;
- }
- else
- {
- Run_text.ForeColor = Color.Red;
- Run_text.BackColor = Color.Black;
-
- }
- BlinkOn = !BlinkOn;
- }
-
- timer = new System.Timers.Timer();
- timer.Elapsed += timer_Tick;
- timer.Interval = new TimeSpan(0, 0, 0, 0, 500).TotalMilliseconds;
- //stubManager.WriteLine("OK!");
- Form form1 = new Form();
-// Set the caption bar text of the form.
- //form1.TopMost = true;
- form1.Text = "Tests";
- form1.FormBorderStyle = FormBorderStyle.FixedDialog;
- form1.MaximizeBox = false;
- form1.MinimizeBox = false;
- form1.StartPosition = FormStartPosition.CenterScreen;
- form1.AutoSize = true;
- form1.AutoSizeMode = AutoSizeMode.GrowAndShrink;
- form1.BackColor = Color.FromArgb(233, 245, 255);
-//start mat
-// Create buttons to Winder.
- Button Winder_btm = new Button ()
- {
- Width = 80,
- Height = 40,
- };
- Winder_btm.Text = "Winder";
- Winder_btm.Location = new Point (4, 70);
- Winder_btm.BackColor = System.Drawing.Color.Gray;
- form1.Controls.Add(Winder_btm);
-
-// Create buttons to LTFU.
- Button LTFU_btm = new Button ()
- {
- Width = 80,
- Height = 40,
- };
- LTFU_btm.Text = "LTFU";
- LTFU_btm.Location = new Point (94, 70);
- LTFU_btm.BackColor = System.Drawing.Color.Gray;
- form1.Controls.Add(LTFU_btm);
-
-// Create buttons to Dryer.
- Button Dryer_btm = new Button ()
- {
- Width = 80,
- Height = 40,
- };
- Dryer_btm.Text = "Dryer";
- Dryer_btm.Location = new Point (184, 70);
- Dryer_btm.BackColor = System.Drawing.Color.Gray;
- form1.Controls.Add(Dryer_btm);
-
-// Create buttons to Dye head.
- Button DyeHead_btm = new Button ()
- {
- Width = 80,
- Height = 40,
- };
- DyeHead_btm.Text = "Dye head";
- DyeHead_btm.Location = new Point (4, 114);
- DyeHead_btm.BackColor = System.Drawing.Color.Gray;
- form1.Controls.Add(DyeHead_btm);
-
-// Create buttons to RTFU.
- Button RTFU_btm = new Button ()
- {
- Width = 80,
- Height = 40,
- };
- RTFU_btm.Text = "RTFU";
- RTFU_btm.Location = new Point (94, 114);
- RTFU_btm.BackColor = System.Drawing.Color.Gray;
- form1.Controls.Add(RTFU_btm);
-
-// Create buttons to Mid Tank.
- Button MidTank_btm = new Button ()
- {
- Width = 80,
- Height = 40,
- };
- MidTank_btm.Text = "Mid Tank";
- MidTank_btm.Location = new Point (184, 114);
- MidTank_btm.BackColor = System.Drawing.Color.Gray;
- form1.Controls.Add(MidTank_btm);
-
-// Create buttons to WHS.
- Button WHS_btm = new Button ()
- {
- Width = 80,
- Height = 40,
- };
- WHS_btm.Text = "WHS";
- WHS_btm.Location = new Point (94, 158);
- WHS_btm.BackColor = System.Drawing.Color.Gray;
- form1.Controls.Add(WHS_btm);
-
-// Create buttons to Mixer.
- Button Mixer_btm = new Button ()
- {
- Width = 80,
- Height = 40,
- };
- Mixer_btm.Text = "Mixer";
- Mixer_btm.Location = new Point (4, 158) ;
- Mixer_btm.BackColor = System.Drawing.Color.Gray;
- form1.Controls.Add(Mixer_btm);
-
-// Create buttons to New Mixer .
- Button NewMixer_btm = new Button ()
- {
- Width = 80,
- Height = 40,
- };
- NewMixer_btm.Text = "New Mixer";
- NewMixer_btm.Location = new Point (4, 202);
- NewMixer_btm.BackColor = System.Drawing.Color.Gray;
- form1.Controls.Add(NewMixer_btm);
-
-// Create buttons to NewDyeHead.
- Button NewDyeHead_btm = new Button ()
- {
- Width = 80,
- Height = 40,
- };
- NewDyeHead_btm.Text = "New Dye head";
- NewDyeHead_btm.Location = new Point (184, 158);
- NewDyeHead_btm.BackColor = System.Drawing.Color.Gray;
- form1.Controls.Add(NewDyeHead_btm);
-
-//-----Create Lable to Serial Number -----------
-
- Label SN_lbl = new Label ()
- {
- Width = 150,
- Height = 20,
- Text =" S/N"
- };
- SN_lbl.Location = new Point (40, 10);
- form1.Controls.Add(SN_lbl);
- TextBox SN_TexstBox = new TextBox ()
- {
- Width = 150,
- Height = 20,
- Text =""
- };
- SN_TexstBox.Location = new Point (40, 40);
- form1.Controls.Add(SN_TexstBox);
- //-----Create Lable to Part Number -----------
-
- Label PN_lbl = new Label ()
- {
- Width = 150,
- Height = 20,
- Text =" P/N"
- };
- PN_lbl.Location = new Point (190, 10);
- form1.Controls.Add(PN_lbl);
-
- TextBox PN_TexstBox = new TextBox ()
- {
- Width = 150,
- Height = 20,
- Text =""
- };
- PN_TexstBox.Location = new Point (190, 40);
- PN_TexstBox.CharacterCasing = CharacterCasing.Upper;
-
- form1.Controls.Add(PN_TexstBox);
- //----------Create Lable to LOCATION----------
- Label Location_lbl = new Label ()
- {
- Width = 150,
- Height = 20,
- Text ="LOCATION"
- };
- Location_lbl.Location = new Point (440, 10);
- form1.Controls.Add(Location_lbl);
-
- TextBox Location_TexstBox = new TextBox ()
- {
- Width = 150,
- Height = 20,
- Text =Location_str
- };
- Location_TexstBox.Location = new Point (440, 40);
- form1.Controls.Add(Location_TexstBox);
-
- Run_text.Location = new System.Drawing.Point(300, 100);
- Run_text.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
- Run_text.Name = "blink_Text";
- Run_text.Font = new Font("Areal", 16, System.Drawing.FontStyle.Bold);
- form1.Controls.Add(Run_text);
-//--------------------------------------------------------------------------------
- Button Open_Log_btm = new Button()
- {
- Width = 100,
- Height = 40,
- };
- Open_Log_btm.Text = "Open Log File";
- Open_Log_btm.BackColor = System.Drawing.Color.Red;
- Open_Log_btm.Location = new System.Drawing.Point(300, 286);
- Open_Log_btm.Enabled= false;
- form1.Controls.Add(Open_Log_btm);
-
-
- Open_Log_btm.Click += (_, __) =>
- {
- System.Diagnostics.Process.Start(File_Name2 );
- };
-
-
-//--------------------------------------------------------------------------------
- Button Stop_btm = new Button()
- {
- Width = 260,
- Height = 40,
- };
- Stop_btm.Text = "Stop process";
- Stop_btm.BackColor = System.Drawing.Color.Red;
- Stop_btm.Location = new System.Drawing.Point(4, 286);
- Stop_btm.Enabled= false;
-
-
-
-
- Stop_btm.Click += (_, __) =>
- {
- timer.Stop();
- timer_started = false;
- _cancellationTokenSource.Cancel();
- stubManager.WriteLine("stop ");
-
- };
-
- form1.Controls.Add(Stop_btm);
- disable_test();
- void disable_test()
- {
- Winder_btm.Enabled = false;
- LTFU_btm.Enabled = false;
- RTFU_btm.Enabled = false;
- Dryer_btm.Enabled = false;
- MidTank_btm.Enabled= false;
- DyeHead_btm.Enabled= false;
- WHS_btm.Enabled= false;
- Mixer_btm.Enabled= false;
- NewMixer_btm.Enabled= false;
- NewDyeHead_btm.Enabled= false;
- Stop_btm.Enabled= false;
- }
-
-// void enable_test()
-// {
-// Winder_btm.Enabled = true;
-// LTFU_btm.Enabled = true;
-// RTFU_btm.Enabled = true;
-// Dryer_btm.Enabled = true;
-// MidTank_btm.Enabled= true;
-// DyeHead_btm.Enabled= true;
-// WHS_btm.Enabled= true;
-// Mixer_btm.Enabled= true;
-// NewMixer_btm.Enabled= true;
-// NewDyeHead_btm.Enabled= true;
-// Stop_btm.Enabled= false;
-// }
- void Timer_en()
- {
- if (timer_started == false)
- {
- timer.Start();
- timer_started = true;
- }
- }
- void Timer_dis()
- {
- if (timer_started == true)
- {
- timer.Stop();
- timer_started = false;
- }
- }
- void end_test()
- { disable_test();
- //enable_test();
-
- Timer_dis();
- Open_Log_btm.Enabled= true;
- Run_text.Text = Status;
- if (Status=="Pass")
- {
- Run_text.ForeColor = Color.White;;
- Run_text.BackColor = Color.Green;
- }
- else
- {
- Run_text.ForeColor = Color.Black;
- Run_text.BackColor = Color.Red;
-
- }
- }
-
-PN_TexstBox.TextChanged += (_,__)=>
-
- {
- string temp;
-
- if (SN_TexstBox.Text.Length!=15)
- {
- disable_test();
- return;
- }
-
- if (PN_TexstBox.Text.Contains("-"))
-
- {
- temp=PN_TexstBox.Text.Substring(0, PN_TexstBox.Text.IndexOf("-"));
- switch (temp)
- {
- case "AM00315": //DyeHead
- NewDyeHead_btm.Enabled= true;
- break;
- case "AM00103": //Winder
- Winder_btm.Enabled = true;
- break;
- case "AM00087": //MidTank
- MidTank_btm.Enabled = true;
- break;
- case "AM00031": //LTFU
- LTFU_btm.Enabled = true;
- break;
- case "AM00007": //Dryer
- Dryer_btm.Enabled = true;
- break;
- case "AM00030": //RTFU
- RTFU_btm.Enabled = true;
- break;
- case "AM00281": //New Mixer
- NewMixer_btm.Enabled= true;
- break;
- // case "AM00281": // Mixer
- // Mixer_btm.Enabled= true;
- // break;
- default:
- disable_test();
- break;
- }
- }
- else
- disable_test();
-
-
- };
- SN_TexstBox.TextChanged += (_,__)=>
-
- {
- string temp;
- if (SN_TexstBox.Text.Length!=15)
- {
- disable_test();
- return;
- }
- if (PN_TexstBox.Text.Contains("-"))
- {
-
- temp=PN_TexstBox.Text.Substring(0, PN_TexstBox.Text.IndexOf("-"));
-
- switch (temp)
- {
- case "AM00315": //DyeHead
- NewDyeHead_btm.Enabled= true;
- break;
- case "AM00103": //Winder
- Winder_btm.Enabled = true;
- break;
- case "AM00087": //MidTank
- MidTank_btm.Enabled = true;
- break;
- case "AM00031": //LTFU
- LTFU_btm.Enabled = true;
- break;
- case "AM00007": //Dryer
- Dryer_btm.Enabled = true;
- break;
- case "AM00030": //RTFU
- RTFU_btm.Enabled = true;
- break;
- case "AM00286": //New Mixer
- NewMixer_btm.Enabled= true;
- break;
- default:
- disable_test();
- break;
-// case "AM00281": // Mixer
-// Mixer_btm.Enabled= true;
-// break;
- }
- }
- else
- disable_test();
- };
-//-----------------------------------------
- Winder_btm.Click += async(_,__) =>
- {
- Open_Log_btm.Enabled= false;
- Run_text.Text = "Run";
- stubManager.WriteLine("DUT- Winder ");
-// path="C:\\Users\\" + u + "\\Dropbox\\"+Location_TexstBox.Text +"_Bench_Tester"+"\\Winder\\" ;
- path="C:\\Users\\" + u + "\\Dropbox\\"+Location_TexstBox.Text +"_Bench_Tester"+"\\Winder\\" ;
-
- Timer_en();
- _cancellationTokenSource = new CancellationTokenSource();
- try
- {
- // disable_test();
- Winder_btm.Enabled = false;
- Stop_btm.Enabled= true;
- var longRunningTask = await Winder_test(setLabel1TextSafe, _cancellationTokenSource.Token, SN_TexstBox.Text ,Location_TexstBox.Text );
- }
- catch (OperationCanceledException)
- {
- disable_test();
- Status="Cancel";
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,WINDER_Motor,3); //stop motor
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,SCREW,3); //stop motor
-
- stubManager.WriteLine("Task was cancelled");
- }
- finally
- {
- _cancellationTokenSource.Dispose();
- }
- end_test();
- };
-//-----------------------------------------
- LTFU_btm.Click += async(_,__) =>
- {
- Open_Log_btm.Enabled= false;
- Run_text.Text = "Run";
- stubManager.WriteLine("DUT- LTFU ");
- path="C:\\Users\\" + u + "\\Dropbox\\"+Location_TexstBox.Text +"_Bench_Tester"+"\\LTFU\\" ;
-
- Timer_en();
- _cancellationTokenSource = new CancellationTokenSource();
- try
- {
-// disable_test();
- LTFU_btm.Enabled = false;
- Stop_btm.Enabled= true;
- var longRunningTask = await LTFU_test(setLabel1TextSafe, _cancellationTokenSource.Token, SN_TexstBox.Text ,Location_TexstBox.Text );
- }
- catch (OperationCanceledException)
- {
- disable_test();
- Status="Cancel";
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LLOADING_Motor, 3); //hold LRoading high z
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LDANCER1_Motor, 3); //hold Lloading high z
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LDANCER2_Motor, 3); //hold Lloading high z
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LDRIVING_Motor,3); //stop motor
-
- Thread.Sleep(100);
- Motor_SetParam(F1_MOTO_LLOADING_TX1,F1_MOTO_LLOADING_TX0,0x0a,0x14000000); //set kval ran to 0x14,0.65A
-
-
- stubManager.WriteLine("Task was cancelled");
- }
- finally
- {
- _cancellationTokenSource.Dispose();
- }
- end_test();
- };
-//-----------------------------------------
- Dryer_btm.Click += async(_,__) =>
- {
- Open_Log_btm.Enabled= false;
- Run_text.Text = "Run";
- stubManager.WriteLine("DUT- Dryer ");
- path="C:\\Users\\" + u + "\\Dropbox\\"+Location_TexstBox.Text +"_Bench_Tester"+"\\Dryer\\" ;
-
- Timer_en();
- _cancellationTokenSource = new CancellationTokenSource();
- try
- {
-// disable_test();
- Dryer_btm.Enabled = false;
- Stop_btm.Enabled= true;
- var longRunningTask = await Dryer_test(setLabel1TextSafe, _cancellationTokenSource.Token, SN_TexstBox.Text ,Location_TexstBox.Text );
- }
- catch (OperationCanceledException)
- {
-
- disable_test();
- Status="Cancel";
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DryerLid_Motor, 2); //Hard stop hiZ motor
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DryerMain_Motor,3); //stop motor
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3);
- SetBit (F2_CTRL, 10, 0); //turn SSR1 off
- SetBit (F2_CTRL, 9, 0); //turn SSR2 off
-
-
- stubManager.WriteLine("Task was cancelled");
- }
- finally
- {
- _cancellationTokenSource.Dispose();
- }
- end_test();
- };
-//-----------------------------------------
- DyeHead_btm.Click += async(_,__) =>
- {
- Open_Log_btm.Enabled= false;
- Run_text.Text = "Run";
- stubManager.WriteLine("DUT- DyeHead ");
- path="C:\\Users\\" + u + "\\Dropbox\\"+Location_TexstBox.Text +"_Bench_Tester"+"\\DyeHead\\" ;
-
- Timer_en();
- _cancellationTokenSource = new CancellationTokenSource();
- try
- {
-// disable_test();
- DyeHead_btm.Enabled= false;
- Stop_btm.Enabled= true;
- var longRunningTask = await DyeHead_test(setLabel1TextSafe, _cancellationTokenSource.Token, SN_TexstBox.Text ,Location_TexstBox.Text );
- }
- catch (OperationCanceledException)
- {
- disable_test();
- Status="Cancel";
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,MAGNET_Driver,3); //stop magnet
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor,3); //stop motor
- SetBit (F2_CTRL, 3, 0);
- SetBit (F2_CTRL, 4, 0);
- SetBit (F2_CTRL, 5, 0);
- SetBit (F2_CTRL, 6, 0);
- SetBit (F1_gpo_01, 2, 0);
- SetBit (F3_GPO_01_bus, 4, 0);
-
-
- stubManager.WriteLine("Task was cancelled");
- }
- finally
- {
- _cancellationTokenSource.Dispose();
- }
- end_test();
- };
-//-----------------------------------------
- NewDyeHead_btm.Click += async(_,__) =>
- {
- Open_Log_btm.Enabled= false;
- Run_text.Text = "Run";
- stubManager.WriteLine("DUT- New DyeHead ");
- path="C:\\Users\\" + u + "\\Dropbox\\"+Location_TexstBox.Text +"_Bench_Tester"+"\\NewDyeHead\\" ;
-
- Timer_en();
- _cancellationTokenSource = new CancellationTokenSource();
- try
- {
-// disable_test();
- NewDyeHead_btm.Enabled= false;
- Stop_btm.Enabled= true;
- var longRunningTask = await NewDyeHead_test(setLabel1TextSafe, _cancellationTokenSource.Token, SN_TexstBox.Text ,Location_TexstBox.Text );
- }
- catch (OperationCanceledException)
- {
- disable_test();
- Status="Cancel";
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,MAGNET_Driver,3); //stop magnet
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor,3); //stop motor
-
- for (Int32 i = 0; i < 12; i++) //???MF
- {
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,0x40F000 + i*0x100); // turn all heaters OFF
- Thread.Sleep(10);
- }
-
- stubManager.WriteLine("Task was cancelled");
- }
- finally
- {
- _cancellationTokenSource.Dispose();
- }
- end_test();
- };
-//-----------------------------------------
- RTFU_btm.Click += async(_,__) =>
- {
- Open_Log_btm.Enabled= false;
- Run_text.Text = "Run";
- stubManager.WriteLine("DUT- RTFU ");
- path="C:\\Users\\" + u + "\\Dropbox\\"+Location_TexstBox.Text +"_Bench_Tester"+"\\RTFU\\" ;
- Timer_en();
- _cancellationTokenSource = new CancellationTokenSource();
- try
- {
-// disable_test();
- RTFU_btm.Enabled= false;
- Stop_btm.Enabled= true;
- var longRunningTask = await RTFU_test(setLabel1TextSafe, _cancellationTokenSource.Token, SN_TexstBox.Text ,Location_TexstBox.Text );
- }
- catch (OperationCanceledException)
- {
- disable_test();
- Status="Cancel";
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading high z
- Thread.Sleep(100);
- Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x14000000); //set kval ran to 0x14,0.65A
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RDANCER_Motor, 3); //hold Rloading high z
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RDRIVING_Motor,3); //stop motor
- stubManager.WriteLine("Task was cancelled");
- }
- finally
- {
- _cancellationTokenSource.Dispose();
- }
- end_test();
- };
-//-----------------------------------------
- MidTank_btm.Click += async(_,__) =>
- {
- Open_Log_btm.Enabled= false;
- Run_text.Text = "Run";
- stubManager.WriteLine("DUT- MidTank ");
- path="C:\\Users\\" + u + "\\Dropbox\\"+Location_TexstBox.Text +"_Bench_Tester"+"\\MidTank\\" ;
- Timer_en();
- _cancellationTokenSource = new CancellationTokenSource();
- try
- {
-// disable_test();
- MidTank_btm.Enabled= false;
- Stop_btm.Enabled= true;
- var longRunningTask = await MidTank_test(setLabel1TextSafe, _cancellationTokenSource.Token, SN_TexstBox.Text ,Location_TexstBox.Text );
- }
- catch (OperationCanceledException)
- {
- disable_test();
- Status="Cancel";
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_VALVE_OUT, 0); //close all valve
-
- stubManager.WriteLine("Task was cancelled");
- }
- finally
- {
- _cancellationTokenSource.Dispose();
- }
- end_test();
- };
-//---------------------------Mixer--------------
- Mixer_btm.Click += async(_,__) =>
- {
- Open_Log_btm.Enabled= false;
- Run_text.Text = "Run";
- stubManager.WriteLine("DUT- Mixer ");
- path="C:\\Users\\" + u + "\\Dropbox\\"+Location_TexstBox.Text +"_Bench_Tester"+"\\Mixer\\" ;
-
- Timer_en();
- _cancellationTokenSource = new CancellationTokenSource();
- try
- {
-// disable_test();
- Mixer_btm.Enabled= false;
- Stop_btm.Enabled= true;
- var longRunningTask = await Mixer_test(setLabel1TextSafe, _cancellationTokenSource.Token, SN_TexstBox.Text ,Location_TexstBox.Text );
- }
- catch (OperationCanceledException)
- {
- disable_test();
- Status="Cancel";
- SetBit (F1_gpo_01, 7, 0); //clear bit F1_VALVE_MIXCHIP_WASTECH
- SetBit (F2_CTRL, 7, 0); //clear bit mixer SSR
- stubManager.WriteLine("Task was cancelled");
- }
- finally
- {
- _cancellationTokenSource.Dispose();
- }
- end_test();
- };
-//---------------------------new Mixer--------------
- NewMixer_btm.Click += async(_,__) =>
- {
- Open_Log_btm.Enabled= false;
- Run_text.Text = "Run";
- stubManager.WriteLine("DUT- New Mixer ");
- path="C:\\Users\\" + u + "\\Dropbox\\"+Location_TexstBox.Text +"_Bench_Tester"+"\\Mixer\\" ;
-
- Timer_en();
- _cancellationTokenSource = new CancellationTokenSource();
- try
- {
-// disable_test();
- NewMixer_btm.Enabled= false;
- Stop_btm.Enabled= true;
- var longRunningTask = await New_Mixer_test(setLabel1TextSafe, _cancellationTokenSource.Token, SN_TexstBox.Text ,Location_TexstBox.Text );
- }
- catch (OperationCanceledException)
- {
- disable_test();
- Status="Cancel";
- // SetBit (F1_gpo_01, 7, 0); ????????????//clear bit F1_VALVE_MIXCHIP_WASTECH
- // SetBit (F2_CTRL, 7, 0); //????????????clear bit mixer SSR
- stubManager.WriteLine("Task was cancelled");
- }
- finally
- {
- _cancellationTokenSource.Dispose();
- }
- end_test();
- };
-
-//---------------------------WHS--------------
-
-//----------------------------------------
- _calc_text.Location = new System.Drawing.Point(300, 150);
- _calc_text.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
- _calc_text.Name = "";
- _calc_text.Font = new Font("Areal", 16, System.Drawing.FontStyle.Bold);
- form1.Controls.Add(_calc_text);
-// stubManager.WriteLine("Start dialog!");
- form1.ShowDialog();
- return ;
-
-
-}
- //---------------------------------------------------------------------------------------------------------------------
-string write_to_file(string s_n,string loocation,int unit_nm,string DUT)
-
-{
-string Stemp="Pass";
-string Stemp1="P";
-
-int i;
-
- for ( i=0;i<unit_nm;i++)
- {
- if ((Units_status[i,1]=="Fail")||(Units_status[i,1]=="Not Test"))
- { Stemp="Fail";
- Stemp1="F";
- }
- }
-
-if (!Directory.Exists(path))
- {
- if (!Directory.Exists(path1))
- Directory.CreateDirectory(path1);
- path=path1;
- }
-
-
-
- File_Name2=Environment.ExpandEnvironmentVariables(path +Stemp1+"_"+ s_n +"_"+DUT +"_"+ DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".log" );
-
-stubManager.Write(File_Name2 +"\n");
-
-stubManager.WriteToFile(File_Name2,DateTime.Now +" " );
-stubManager.Write(DateTime.Now +"\n" );
-
-stubManager.AppendToFile(File_Name2,DUT + " Test Report" );
-stubManager.Write(DUT + " Test Report\n" );
-
-stubManager.AppendToFile(File_Name2,DUT + " S/N: \t" + s_n );
-stubManager.Write(DUT + " S/N: \t" + s_n+"\n" );
-
-
-stubManager.AppendToFile(File_Name2,"Location:\t" + loocation +"\n" );
-stubManager.Write("Location:" + loocation+"\n\n" );
-
- for ( i=0;i<unit_nm;i++)
- {
- stubManager.AppendToFile(File_Name2,Units_status[i,0]+"\t" + Units_status[i,1] );
- stubManager.Write(Units_status[i,0]+"\t" + Units_status[i,1]+"\n" );
- }
- if (Stemp=="Fail")
- {
- stubManager.AppendToFile(File_Name2,"-------------"+DUT+ " Fail ------------ ");
- stubManager.Write("-------------"+DUT+ " Fail ------------ ");
- }
- else
- {
- stubManager.AppendToFile(File_Name2,"-------------"+DUT+ " Pass ------------ ");
- stubManager.Write("-------------"+DUT+ " Pass ------------ ");
- }
- return Stemp;
-}
-
-//-------------------------------------------------------------------------------------
-void copy_table(int testing_nm,string [,]Units_status_DUT)
-{
- for (int i=0;i<testing_nm;i++)
- {
-/// Units_status[i,0]=Units_status_Winder[i,0];
-// Units_status[i,1]=Units_status_Winder[i,1];
- Units_status[i,0]=Units_status_DUT[i,0];
- Units_status[i,1]=Units_status_DUT[i,1];
-
- }
-}
-
-public int delay(Int32 ms_delay)
- {
-int i;
- for (i=0 ;i<ms_delay;i=i+10)
- {
- Thread.Sleep(10);
- if (_cancellationTokenSource.Token.IsCancellationRequested)
- {
- _cancellationTokenSource.Token.ThrowIfCancellationRequested();
- throw new TaskCanceledException();
- return 0;
- }
- }
- return 0;
-
- }
-
-
-Int32 GetBit(Int32 Adr, Int32 BitNo)
-{
- Int32 BitMask;
- var RetVal = Fpga_Read_Reg(Adr);
- BitMask = 0x1 << BitNo;
- if ( ( (Int32) RetVal.Value & BitMask) == BitMask )
- {
- return 1;
- }
- else
- {
- return 0;
- }
-
-}
-
-public Int32 SetBit(Int32 Adr, Int32 BitNo, Int32 Bit)
-{
- Int32 BitMask;
- var RetVal = Fpga_Read_Reg(Adr);
- Int32 RV = (Int32) RetVal.Value;
-
- if (Bit == 0x1)
- {
- BitMask = 0x1 << BitNo;
- RV = RV | BitMask;
- Fpga_Write_Reg( Adr, RV );
- }
- else if (Bit == 0x0)
- {
- BitMask = ~(0x1 << BitNo);
- RV = RV & BitMask;
- Fpga_Write_Reg(Adr, RV );
- }
- return 1;
-}
-
-
-int Fpga_Write_Reg(Int32 Addr, Int32 Data)
-{
- var response = stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,Addr, Data);
-
- return 1;
-}
-
-
-
-StubFpgaReadRegResponse Fpga_Read_Reg(Int32 Addr)
-{
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,Addr);
- response.Value = response.Value & 0xffff;
-
- return response;
-}
-
-float Read_pt100(int i)
-{
- var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,i); //
-
- float ftemp = (float)response.TemperatureCMultBy100;
- ftemp = ftemp / 100;
- return (ftemp);
-}
-int Motor_SetParam(Int32 HighAdr, Int32 LowAdr, Int32 ParaAddr, uint ParaData1)
-{
-
- Int32 Temp = 0;
- Temp = (ParaAddr << 8 ) + ( (Int32) ParaData1 >> 24);
-
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,HighAdr, (Temp & 0xffff));
- Temp = ((Int32)ParaData1 >> 8) & 0xffff;
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,LowAdr, (Temp));
-
- return 1;
-}
-
-//--------------------------------
-int adc_configuration(uint I2C_Slave_Add,uint channel )
-{
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID2;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x00);//Byte 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(channel);//Byte 1 to Write, must be 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02 or 0x01 for different channels
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x80);//Byte 2 to Write
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
-}
-//--------------------------------
-int adc_set_for_read_ch(uint I2C_Slave_Add)
-{
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID2;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x01);//Byte 0 to write
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
-}
-//--------------------------------
-
-uint adc_read_ch(uint I2C_Slave_Add)
-{
- StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();
- stubI2CReadBytesRequest.I2CId = I2C_ID2;
- stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add;
- stubI2CReadBytesRequest.NumberOfBytesToRead = 2; // Number of bytes to read
-
- var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);
- uint temph=0;
- uint templ=0;
- uint temp;
- temph=response1.ReadBytes[0];
- templ=response1.ReadBytes[1];
- temp = (temph << 8) | templ;
- temp=temp & 0x0fff;
-
- return temp;
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Jig-TesterV 1.0.docx b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Jig-TesterV 1.0.docx
deleted file mode 100644
index f7aa53997..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Jig-TesterV 1.0.docx
+++ /dev/null
Binary files differ
diff --git a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Jig-TesterV 1.1.docx b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Jig-TesterV 1.1.docx
deleted file mode 100644
index 948efd86b..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Jig-TesterV 1.1.docx
+++ /dev/null
Binary files differ
diff --git a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/LTFU_Jig.cs b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/LTFU_Jig.cs
deleted file mode 100644
index 7d954e8b1..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/LTFU_Jig.cs
+++ /dev/null
@@ -1,496 +0,0 @@
-using System;
-using System.Text;
-using System.IO;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-//--------------------------------------------------------------------------------
-
-const int LTFU_UNDER_TEST=12;
-//---------------------------
-
-string [,] Units_status_LTFU = new string[LTFU_UNDER_TEST,2] {
- {"LS_LLOADMOTOR_Up","Not Test"}, //0
- {"LS_LLOADMOTOR_DOWN","Not Test"}, //1
- {"LLOADING_Motor","Not Test"}, //2
- {"LDRIVING_Motor","Not Test"}, //3
- {"LS_LDANCER_Left_DOWN","Not Test"}, //4
- {"LS_LDANCER_Left_UP","Not Test"}, //5
- {"LDANCER_Left_Motor","Not Test"}, //6
- {"LDANCER_Left_ROTENC","Not Test"}, //7
- {"LDANCER_Right_ROTENC","Not Test"}, //8
- {"LS_LDANCER_Right_DOWN","Not Test"}, //9
- {"LS_LDANCER_Right_UP","Not Test"}, //10
- {"LDANCER_Right_Motor","Not Test"}, //11
-
- };
-//-----------------------------------------------------
-//--------------------------------------------------------------------------------
-
-
-public Task<decimal> LTFU_test( Action<string> settext, CancellationToken cancellationToken, string SN, string Location)
-{
- int no_of_test=12;
-
- Task<decimal> task = null;
- // Start a task and return it
- task = Task.Run(() =>
- {
-
- stubManager.Write("S/N:" +SN+ "\n");
- stubManager.Write("Location:" +Location+ "\n");
-
- copy_table (no_of_test,Units_status_LTFU);
-
- settext("Test LLOADING LTFU");
- Test_LLOADING_LTFU();
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LLOADING_Motor, 3); //hold LRoading high z
- delay(100);
- Motor_SetParam(F1_MOTO_LLOADING_TX1,F1_MOTO_LLOADING_TX0,0x0a,0x14000000); //set kval ran to 0x14,0.65A
-
- settext("Test LDRIVING LTFU");
- Test_LDRIVING_LTFU();
-
- settext("Test DANCER LTFU");
-
-no_of_test=Test_DANCER_LTFU();
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LDANCER1_Motor, 3); //hold Lloading high z
-
- Status=write_to_file(SN,Location,no_of_test,"LTFU");
-
- settext("End Test");
-
- decimal result = 0;
-
- return result;
- });
- return task;
-}
-
-
- //------------------------------------
-int Test_LLOADING_LTFU()
-{
- int temp=1;
- int counter;
-
- Motor_SetParam(F1_MOTO_LLOADING_TX1,F1_MOTO_LLOADING_TX0,0x0a,0x2c000000); //set kval ran to 0x2c- 1.3A
- delay(100);
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,LLOADING_Motor, false,200); //move Rloading down
- delay(3000);
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LLOADING_Motor, 3); //hold Rloading high z
- delay(1000);
-//------------------------------------------ check F1_LS_LLOADMOTOR_UP------------------------------------------------
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //read LS
- if ((response.Value & F1_LS_LLOADMOTOR_UP) !=F1_LS_LLOADMOTOR_UP ) //if LS_RLOADMOTOR_UP is up then error
- {
- DialogResult result = MessageBox.Show("Did LLOADIN MOTOR Move?", "Warning",MessageBoxButtons.YesNo);
- if(result == DialogResult.Yes)
- {
- Units_status[0,1]="Fail";
- stubManager.Write("LS_LLOADMOTOR_UP\tFail\n");
- return 0;
- }
- else
- {
- Units_status[2,1]="Fail";
- stubManager.Write("LLOADMOTOR\tFail\n");
- return 0;
- }
- }
-//----------------------------------------- mov LLOADING up -------------------------------------------------
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,LLOADING_Motor,true,300); //move Lloading up
- counter =0;
- while ( counter < 200)
- {
- counter = counter + 1;
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //if LS_LLOADMOTOR_UP is up then move down
- if ((response.Value & F1_LS_LLOADMOTOR_UP) != F1_LS_LLOADMOTOR_UP )
- counter=250;
-
- delay(100);
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LLOADING_Motor, 3); //hold Lloading high z
-
- if (counter == 200)
- {
- Units_status[0,1]="Fail";
- stubManager.Write("LS_LLOADMOTOR_UP\tFail\n");
- return 0;
- }
- DialogResult result1 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo);
- if(result1 == DialogResult.No)
- {
- Units_status[0,1]="Fail";
- stubManager.Write("LS_LLOADMOTOR_UP Not calibrate\n");
- return 0;
- }
- Units_status[0,1]="Pass";
- Units_status[2,1]="Pass";
-
-//------------------------------------------ check F1_LS_LLOADMOTOR_DN------------------------------------------------
-
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //read LS
-
- if ((response.Value & F1_LS_LLOADMOTOR_DN) !=F1_LS_LLOADMOTOR_DN ) //if LS_LLOADMOTOR_DN is up then error
- {
- Units_status[1,1]="Fail";
- stubManager.Write("LS_LLOADMOTOR_DN\tFail\n");
- return 0;
- }
-//------------------------------------------ mov LLOADING dn ------------------------------------------------
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,LLOADING_Motor, false,300); //move Lloading down
- counter =0;
- while ( counter < 200)
- {
- counter = counter + 1;
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //if LS_LLOADMOTOR_UP is up then move down
- if ((response.Value & F1_LS_LLOADMOTOR_DN) != F1_LS_LLOADMOTOR_DN )
- counter=250;
-
- delay(100);
- }
-
- if (counter == 200)
- {
- Units_status[1,1]="Fail";
- stubManager.Write("LS_LLOADMOTOR_DN\tFail\n");
- return 0;
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LLOADING_Motor, 3); //hold Lloading high z
-
- DialogResult result4 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo);
- if(result4 == DialogResult.No)
- {
- Units_status[1,1]="Fail";
- stubManager.Write("LS_LLOADMOTOR_DN Not calibrate\n");
- return 0;
- }
- Units_status[1,1]="Pass";
- stubManager.Write("LLOADMOTOR\tPass\n");
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,LLOADING_Motor, false,200); //move Lloading down
- delay(4000);
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LLOADING_Motor, 3); //hold Lloading high z
-
- return 1 ;
-
-}
-
-
-Int32 ReadEncoder(int i)
-{
- Int32 temp;
-
- if (i==1) //LDANCER1_ROTENC == LTFU Danser Right
- {
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F1_LDANCER1_ROTENC_TX, 0x0000); //triggers a TX transmission
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LDANCER1_ROTENC_LSB);
- var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LDANCER1_ROTENC_MSB);
-
- temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff));
-
-
- return temp;
- }
- //LDANCER2_ROTENC == LTFU Danser Left
-
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F1_LDANCER2_ROTENC_TX, 0x0000); //triggers a TX transmission
- var response2 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LDANCER2_ROTENC_LSB);
- var response3 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LDANCER2_ROTENC_MSB);
-
- temp = Convert.ToInt32 (((((response3.Value <<16) + response2.Value)>>10 ) & 0x3fff));
-
-
- return temp;
-}
-//--------------------------------------------------------------------------------
-int Test_DANCER_LTFU()
-{
- int counter;
- Int32 temp_left_before;
- Int32 temp_left_after;
- Int32 temp_right_before;
- Int32 temp_right_after;
-
-
-//------------------------------------------ check F1_LS_LDANCER1_DN ------------------------------------------------
- MessageBox.Show("Make sure LDANCERs Down");
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //read LS
-
- if ((response.Value & F1_LS_LDANCER1_UP) !=F1_LS_LDANCER1_UP ) //if F1_LS_LDANCER1_UP is up then error
- {
- Units_status[5,1]="Fail";
- stubManager.Write("LS_LDANCER_Left_UP\tFail\n");
- return 12;
- }
-//----------------------------------------- check F1_LS_LDANCER1_UP -------------------------------------------------
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,LDANCER1_Motor,false,450); //move Lloading up
- counter =0;
- while ( counter < 300)
- {
- counter = counter + 1;
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //if F1_LS_LDANCER1_UP is up then move down
- if ((response.Value & F1_LS_LDANCER1_UP) != F1_LS_LDANCER1_UP )
- counter=350;
-
- delay(100);
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LDANCER1_Motor, 3); //hold Ldancer high z
- if (counter == 300)
- {
- Units_status[5,1]="Fail";
- stubManager.Write("LS_LDANCER_Left_UP\tFail\n");
- return 12;
- }
-
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //read LS
- if ((response.Value & F1_LS_LDANCER1_DN) !=F1_LS_LDANCER1_DN ) //if F1_LS_LDANCER1_DN is up then error
- {
- Units_status[4,1]="Fail";
- stubManager.Write("LS_LDANCER_Left_DN\tFail\n");
- return 12;
- }
-
- DialogResult result5= MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo);
-
- if(result5== DialogResult.No)
- {
- Units_status[5,1]="Fail";
- stubManager.Write("LS_LDANCER_Left_UP Not calibrate\n");
- return 12;
- }
-
- Units_status[5,1]="Pass";
- stubManager.Write("LS_LDANCER_Left_UP\tPass\n");
-
-//----------------------------------------- mov LDANCER1_Motor down and check Ldancer encoder -------------------------------------------------
- temp_left_before= ReadEncoder(0);
- delay(10);
-
- temp_right_before= ReadEncoder(1);
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,LDANCER1_Motor,true,450); //move Rloading down
- counter =0;
- while ( counter < 300)
- {
- counter = counter + 1;
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //if LS_LDANCER1_DN is dn then move stop
- if ((response.Value & F1_LS_LDANCER1_DN) != F1_LS_LDANCER1_DN )
- counter=350;
-
- delay(100);
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LDANCER1_Motor, 3); //hold Rloading high z
- // if (counter == 300)
-// {
-// Units_status[4,1]="Fail";
-// stubManager.Write("LS_LDANCER_Left_DN\tFail\n");
-// return 12;
-// }
- DialogResult result2 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo);
-
- if(result2 == DialogResult.No)
- {
- Units_status[4,1]="Fail";
- stubManager.Write("LS_LDANCER_Left_DN Not calibrate\n");
- return 12;
- }
- else
- {
- Units_status[4,1]="Pass";
- stubManager.Write("LS_LDANCER_Left_DN\tPass\n");
- }
- Units_status[6,1]="Pass";
- stubManager.Write("LDANCER_Left_Motor\tPass\n");
-
- temp_left_after= ReadEncoder(0);
- delay(10);
- temp_right_after= ReadEncoder(1);
- delay(10);
-
- stubManager.Write("temp_left_before="+temp_left_before + "\ttemp_left_after="+temp_left_after +"\n");
- delay(10);
-
- stubManager.Write("temp_right_before="+temp_right_before + "\ttemp_right_after="+temp_right_after +"\n");
- delay(10);
-
- DialogResult result = MessageBox.Show("SSI Dancer Left led is Green(not blinking)?", "Warning",MessageBoxButtons.YesNo);
- if(result == DialogResult.No)
- {
- Units_status[7,1]="Fail";
- stubManager.Write("LDANCER_Left_SSI\tFail\n");
- return 9;
-
- }
-
- if (temp_left_after>temp_left_before)
- temp_left_before=temp_left_before+0x4000;
- temp_left_before=temp_left_before-temp_left_after;
- if ((temp_left_before> 5000) || (temp_left_before <200))
- {
- Units_status[7,1]="Fail";
- stubManager.Write("LDANCER_Left_SSI\tFail\n");
- return 9;
- }
- Units_status[7,1]="Pass";
- stubManager.Write("LDANCER_Left_SSI\tPass\n");
-
-
- DialogResult result3 = MessageBox.Show("SSI Dancer_Right_led is Green(not blinking)?", "Warning",MessageBoxButtons.YesNo);
- if(result3 == DialogResult.No)
- {
- Units_status[8,1]="Fail";
- stubManager.Write("LDANCER_Right_SSI\tFail\n");
- return 12;
- }
-
-
- if (temp_right_after<temp_right_before)
- temp_right_after=temp_right_after+0x4000;
- temp_right_before=temp_right_after-temp_right_before;
- if ((temp_right_before< 5000) && (temp_right_before >200))
- {
- Units_status[8,1]="Pass";
- stubManager.Write("LDANCER_Right_SSI\tPass\n");
- return 9;
- }
-
-//------------------------------------------ check F1_LS_LSPARE2 ------------------------------------------------
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //read LS
-
- if ((response.Value & F1_LS_LSPARE2) !=F1_LS_LSPARE2 ) //if F1_LS_LSPARE2 is up then error
- {
- Units_status[10,1]="Fail";
- stubManager.Write("LS_LDANCER_Right_UP\tFail\n");
- return 12;
- }
-//----------------------------------------- check F1_LS_LDANCER2_UP -------------------------------------------------
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,LDANCER2_Motor,false,450); //move Lloading up
- counter =0;
- while ( counter < 300)
- {
- counter = counter + 1;
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //if F1_LS_LSPARE2 is up then move down
- if ((response.Value & F1_LS_LSPARE2) != F1_LS_LSPARE2 )
- counter=350;
-
- delay(100);
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LDANCER2_Motor, 3); //hold Ldancer high z
- if (counter == 300)
- {
- Units_status[10,1]="Fail";
- stubManager.Write("LS_LDANCER_Right_UP\tFail\n");
- return 12;
- }
-
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //read LS
- if ((response.Value & F1_LS_LSPARE1) !=F1_LS_LSPARE1 ) //if F1_LS_LSPARE1 is up then error
- {
- Units_status[9,1]="Fail";
- stubManager.Write("LS_LDANCER_Right_DN\tFail\n");
- return 12;
- }
-
- DialogResult result7= MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo);
-
- if(result7== DialogResult.No)
- {
- Units_status[10,1]="Fail";
- stubManager.Write("LS_LDANCER_Right_UP Not calibrate\n");
- return 12;
- }
-
- Units_status[10,1]="Pass";
- stubManager.Write("LS_LDANCER_Right_UP\tPass\n");
-
-//----------------------------------------- mov LDANCER2_Motor down and check Ldancer encoder -------------------------------------------------
- temp_right_before= ReadEncoder(1);
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,LDANCER2_Motor,true,450); //move Rloading down
- counter =0;
- while ( counter < 300)
- {
- counter = counter + 1;
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //if F1_LS_LSPARE1 is dn then move stop
- if ((response.Value & F1_LS_LSPARE1) != F1_LS_LSPARE1 )
- counter=350;
-
- delay(100);
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LDANCER2_Motor, 3); //hold Rloading high z
- if (counter == 300)
- {
- Units_status[9,1]="Fail";
- stubManager.Write("LS_LDANCER_Right_DN\tFail\n");
- return 12;
- }
- DialogResult result8 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo);
-
- if(result8 == DialogResult.No)
- {
- Units_status[9,1]="Fail";
- stubManager.Write("LS_LDANCER_Right_DN Not calibrate\n");
- return 12;
- }
-
- Units_status[9,1]="Pass";
- stubManager.Write("LS_LDANCER_Right_DN\tPass\n");
-
- Units_status[11,1]="Pass";
- stubManager.Write("LDANCER_Right_Motor\tPass\n");
-
- temp_right_after= ReadEncoder(1);
-
- stubManager.Write("temp_right_before="+temp_right_before + "\ttemp_right_after="+temp_right_after +"\n");
-
-
- if (temp_right_after<temp_right_before)
- temp_right_after=temp_right_after+0x4000;
- temp_right_before=temp_right_after-temp_right_before;
- if ((temp_right_before< 5000) && (temp_right_before >200))
- {
- Units_status[8,1]="Pass";
- stubManager.Write("LDANCER_Right_SSI\tPass\n");
- return 12;
- }
- Units_status[8,1]="Fail";
- stubManager.Write("LDANCER_Right_SSI\tFail\n");
-
-
- return 12;
-}
-//-------------------------------------------------------------
-int Test_LDRIVING_LTFU()
-{
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,LDRIVING_Motor, true,200); //move Ldriving clockwise
- stubManager.Write("LDRIVING_Motor Motor rotate \n ");
-
- DialogResult result = MessageBox.Show("Are LDRIVING Motor rotate?", "Warning",MessageBoxButtons.YesNo);
- if(result == DialogResult.No)
- {
- Units_status[3,1]="Fail";
- stubManager.Write("LDRIVING Motor not rotate\n");
- }
- else
- {
- Units_status[3,1]="Pass";
- stubManager.Write("LDRIVING Motor rotate\n");
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LDRIVING_Motor,3); //stop motor
-
- return 0;
-}
-
-
-
diff --git a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/MidTank_Jig.cs b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/MidTank_Jig.cs
deleted file mode 100644
index 16139df2c..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/MidTank_Jig.cs
+++ /dev/null
@@ -1,201 +0,0 @@
-using System;
-using System.Text;
-using System.IO;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-using System.Timers;
-
-const int MidTank_UNDER_TEST =24;
-int [] Convert_Midtank_No = new Int32 [8] {1,3,5,7,2,4,6,8};
-uint [,] ADC_Add_Chnl = new uint [8,2] {
- {0x44,0x20},
- {0x44,0x08},
- {0x46,0x80},
- {0x46,0x20},
- {0x44,0x10},
- {0x44,0x04},
- {0x46,0x40},
- {0x46,0x10},
- };
-
-
-string [,] Units_status_MidTank = new string[MidTank_UNDER_TEST,2] {
- {"Midtank1_Valve_Air","Not Test"}, //0
- {"Midtank1_Valve_Ink","Not Test"}, //1
- {"Midtank1_Pressure_Sensor","Not Test"}, //2
- {"Midtank2_Valve_Air","Not Test"}, //3
- {"Midtank2_Valve_Ink","Not Test"}, //4
- {"Midtank2_Pressure_Sensor","Not Test"}, //5
- {"Midtank3_Valve_Air","Not Test"}, //6
- {"Midtank3_Valve_Ink","Not Test"}, //7
- {"Midtank3_Pressure_Sensor","Not Test"}, //8
- {"Midtank4_Valve_Air","Not Test"}, //9
- {"Midtank4_Valve_Ink","Not Test"}, //10
- {"Midtank4_Pressure_Sensor","Not Test"}, //11
- {"Midtank5_Valve_Air","Not Test"}, //12
- {"Midtank5_Valve_Ink","Not Test"}, //13
- {"Midtank5_Pressure_Sensor","Not Test"}, //14
- {"Midtank6_Valve_Air","Not Test"}, //15
- {"Midtank6_Valve_Ink","Not Test"}, //16
- {"Midtank6_Pressure_Sensor","Not Test"}, //17
- {"Midtank7_Valve_Air","Not Test"}, //18
- {"Midtank7_Valve_Ink","Not Test"}, //19
- {"Midtank7_Pressure_Sensor","Not Test"}, //20
- {"Midtank8_Valve_Air","Not Test"}, //21
- {"Midtank8_Valve_Ink","Not Test"}, //22
- {"Midtank8_Pressure_Sensor","Not Test"}, //23
- };
-//--------------------------------------------------------------------------------
-
-public Task<decimal> MidTank_test( Action<string> settext, CancellationToken cancellationToken, string SN, string Location)
-{
- Task<decimal> task = null;
- // Start a task and return it
- task = Task.Run(() =>
- {
-
- stubManager.Write("S/N:" +SN+ "\n");
- stubManager.Write("Location:" +Location+ "\n");
- stubManager.Write("-----------------------\n");
-
- copy_table (MidTank_UNDER_TEST,Units_status_MidTank);
- stubManager.Write("+++++++++++++++++++\n");
-
- settext("Test MidTank");
- Test_MIDTANK();
-
- Status=write_to_file(SN,Location,MidTank_UNDER_TEST,"MidTank");
- settext("End Test");
- decimal result = 0;
-
- return result;
- });
- return task;
-}
-
- //------------------------------------
-int Test_MIDTANK()
-{
- double Pressur_Volt;
- double temp;
- for (Int32 i=1;i<9;i++)
- {
- open_valve(i,1,1) ; //open Air valve
- open_valve(i,0,1) ; //open Ink valve
- delay(2000);
- Pressur_Volt=read_pressuere_sense(i);
- if ((Pressur_Volt>3 )||(Pressur_Volt<2))
- {
- Units_status[(i-1)*3+2,1]="Fail";
- stubManager.Write("pressuere_sense of midtank" + i +"\tFail\n");
- }
- else
- {
- close_valve(i,0,0) ; //close Ink valve
- DialogResult result = MessageBox.Show("ADD 20cc air thru Ink valve of Midtank"+ i, "Warning");
- close_valve(i,1,0) ; //close Air valve
- delay(2000);
-
- temp=read_pressuere_sense(i);
- temp=temp-Pressur_Volt;
- if ((temp>0.5) && ( temp <2))
- Units_status[(i-1)*3+2,1]="Pass";
- else
- Units_status[(i-1)*3+2,1]="Fail";
- }
-
- close_valve(i,0,0) ; //close Air valve
- close_valve(i,1,0) ; //close Ink valve
- }
- return 1;
-}
-
-double read_pressuere_sense(Int32 Midtank_Nm)
-{
-double Pressur_Volt;
-double calc;
-uint temp;
-
- adc_configuration((ADC_Add_Chnl[Midtank_Nm-1,0]),(ADC_Add_Chnl[Midtank_Nm-1,1]) ); //configure address and channel of midtank
- adc_set_for_read_ch(ADC_Add_Chnl[Midtank_Nm-1,0]);
- temp =adc_read_ch(ADC_Add_Chnl[Midtank_Nm-1,0]);
- calc= (double)temp *2.5 / 4096.0;
- Pressur_Volt = (1.96- calc) * 4.64 + 1.96;
- stubManager.Write("pressure sense of midtank " + Midtank_Nm + "is " + Pressur_Volt+ "Volt\n");
- return Pressur_Volt;
-}
-
-
-//--------------------------------
-int open_valve (int valve_nm,int valve_type,int check_valve) //valve_type=0 is Air ,1 is Ink ; check_valve=1 send feedbak
-{
- int temp1=Convert_Midtank_No[valve_nm-1] ;
-
- string temp;
- SetBit (F3_VALVE_OUT,(((valve_type+1)*8)- temp1), 1);
-
- if (check_valve!=0)
- {
- temp="Air ";
- if (valve_type==1)
- temp="Ink ";
-
- DialogResult result = MessageBox.Show("Did " + temp + "Valve of Midtank " + valve_nm +" open?", "Warning",MessageBoxButtons.YesNo);
- if(result == DialogResult.No)
- {
- Units_status[(valve_nm-1)*3+valve_type,1]="Fail";
- stubManager.Write(temp +"Valve\tFail\n");
- return 0;
- }
- else
- {
- Units_status[(valve_nm-1)*3+valve_type,1]="Pass";
- stubManager.Write(temp +"Valve\tOpen\n");
- return 1;
- }
-
- }
- return 1;
-
-}
-//--------------------------------
-int close_valve (int valve_nm,int valve_type,int check_valve)
-{
- int temp1=Convert_Midtank_No[valve_nm-1];
-
- string temp;
- SetBit (F3_VALVE_OUT,(((valve_type+1)*8)- temp1), 0);
- if (check_valve!=0)
- {
- temp="Air";
- if (valve_type==1)
- temp="Ink";
-
- DialogResult result = MessageBox.Show("Did " + temp +" Valve of Midtank " + valve_nm +" close?", "Warning",MessageBoxButtons.YesNo);
- if(result == DialogResult.No)
- {
- Units_status[(valve_nm-1)*3+valve_type,1]="Fail";
- stubManager.Write(temp +"Valve\tFail\n");
- return 0;
- }
- else
- {
- Units_status[(valve_nm-1)*3+valve_type,1]="Pass";
- stubManager.Write(temp +"Valve\tclose\n");
- return 1;
- }
- }
- return 1;
-
-
-
-
-}
-//--------------------------------
diff --git a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Mixer_Jig.cs b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Mixer_Jig.cs
deleted file mode 100644
index c5d14855e..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Mixer_Jig.cs
+++ /dev/null
@@ -1,131 +0,0 @@
-using System;
-using System.Text;
-using System.IO;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-const int Mixer_UNDER_TEST=3;
-
-float MixerTemp ;
-
-string [,] Units_status_Mixer = new string[Mixer_UNDER_TEST,2] {
- {"Pt100_Mixer","Not Test"},
- {"Heater_Mixer","Not Test"},
- {"VALVE_Mixer","Not Test"},
- };
-
-
-
-//--------------------------------------------------------------------------------
-
-public Task<decimal> Mixer_test( Action<string> settext, CancellationToken cancellationToken, string SN, string Location)
-{
- Task<decimal> task = null;
- // Start a task and return it
- task = Task.Run(() =>
- {
- stubManager.Write("S/N:" +SN+ "\n");
- stubManager.Write("Location:" +Location+ "\n");
-
- copy_table (Mixer_UNDER_TEST,Units_status_Mixer);
-
-
-//------------------------------- start test -----------
- settext("Test heaters & pt100");
- Test_Mixer_heaters_pt100 ();
- settext("Test VALVE Mixer");
- Test_VALVE_Mixer ();
-
- Status=write_to_file(SN,Location,Mixer_UNDER_TEST,"Mixer");
-
- settext("End Test");
-
- decimal result = 0;
-
- return result;
- });
- return task;
-}
-
-//--------------------------------------------
- int Test_VALVE_Mixer ()
- {
- SetBit (F1_gpo_01, 7, 1); //set bit F1_VALVE_MIXCHIP_WASTECH
-
- DialogResult result = MessageBox.Show("MixCHIP Valve Open ?", "Warning",MessageBoxButtons.YesNo);
- if(result == DialogResult.No)
- {
- Units_status[2,1]="Fail";
- stubManager.Write("VALVE_MIXCHIP_WASTECH Not open\n");
- return 0;
- }
- SetBit (F1_gpo_01, 7, 0); //clear bit F1_VALVE_MIXCHIP_WASTECH
-
- DialogResult result1 = MessageBox.Show("MixCHIP Valve close ?", "Warning",MessageBoxButtons.YesNo);
- if(result1 == DialogResult.No)
- {
- Units_status[2,1]="Fail";
- stubManager.Write("VALVE_MIXCHIP_WASTECH Not close\n");
- return 0;
- }
- Units_status[2,1]="Pass";
- return 0;
- }
-
-//------------------------------------
-public int Test_Mixer_heaters_pt100()
-{
-
-// uint utemp=0;
- uint temp=0;
- float ftemp=0;
- float ftemp1=0;
- float current=0;
-
- stubManager.Write("\nTemp Befor heating \n");
-
- ftemp=Read_pt100(0);
- if ((ftemp>100)|| (ftemp<10))
- {
- Units_status[0,1]="Fail";
- return 0;
- }
- stubManager.Write("Temp Befor heating is"+ ftemp.ToString("F2"));
- stubManager.Write("°C\n");
-
-
-
- //Write F2_GPO_MIXCHIP_SSR4_CTRL SSR/SSR no. 4
- SetBit (F2_CTRL, 7, 1);
- stubManager.Write("Testing SSR no. 4\tMIXCHIP \t");
- delay(10000);
- adc_configuration(0x46,0x08); //a2d_address 0x46 channel 4
- adc_set_for_read_ch(0x46);
- temp=adc_read_ch(0x46);
- current= (float)(temp);
- current=( float) (0.001221) * current;
- SetBit (F2_CTRL, 7, 0);
-
- ftemp1=Read_pt100(0);
- stubManager.Write("After heating " + ftemp1 +"c\tCurrent is "+ current + "\n");
- ftemp = ftemp1 - ftemp;
-
- if ((current>2.5)|| (current<1.5)||(ftemp<5)||(ftemp>25))
- {
- Units_status[0,1]="Fail";
- Units_status[1,1]="Fail";
- }
- else
- {
- Units_status[0,1]="Pass";
- Units_status[1,1]="Pass";
- }
- return 0;
-}
diff --git a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/New_DyeHead_Jig.cs b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/New_DyeHead_Jig.cs
deleted file mode 100644
index 22cf14f3e..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/New_DyeHead_Jig.cs
+++ /dev/null
@@ -1,583 +0,0 @@
-using System;
-using System.Text;
-using System.IO;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-const int New_DyeHead_UNDER_TEST=48;
-
-const Int32 MGNET_OPEN=0x42F801;
-const Int32 MGNET_EN=0x42F701;
-const Int32 MGNET_CLOSE=0x42F800;
-const Int32 MGNET_DIS=0x42F700;
-
-const Int32 LS_FRONT=0X460110;
-const Int32 LS_REAR=0X460120;
-const Int32 LS_UPPER=0X460140;
-const Int32 LS_SPARE=0X460180;
-
-
-string EEPROM_Header="Header_1 "; //16 characters
-
-int Head_Mux_Channel_ID = 4; //Head MUX channel
- char[] characters = new char[16];
-
-
-//float [] DyeHeadTemp = new float[6] ;
-
-string [,] Units_status_New_DyeHead = new string[New_DyeHead_UNDER_TEST,2] {
- {"Pt100_Zone_1","Pass"}, //0
- {"Pt100_Zone_2","Pass"}, //1
- {"Pt100_Zone_3","Pass"}, //2
- {"Pt100_Zone_4","Pass"}, //3
- {"Pt100_Zone_5","Pass"}, //4
- {"Pt100_Zone_6","Pass"}, //5
- {"Pt100_Zone_7","Pass"}, //6
- {"Pt100_Zone_8","Pass"}, //7
- {"Pt100_Zone_9","Pass"}, //8
- {"Pt100_Zone_10","Pass"}, //9
- {"Pt100_Zone_11","Pass"}, //10
- {"Pt100_Zone_12","Pass"}, //11
-
- {"Current_Zone_1","Pass"}, //12
- {"Current_Zone_2","Pass"}, //13
- {"Current_Zone_3","Pass"}, //14
- {"Current_Zone_4","Pass"}, //15
- {"Current_Zone_5","Pass"}, //16
- {"Current_Zone_6","Pass"}, //17
- {"Current_Zone_7","Pass"}, //18
- {"Current_Zone_8","Pass"}, //19
- {"Current_Zone_9","Pass"}, //20
- {"Current_Zone_10","Pass"}, //21
- {"Current_Zone_11","Pass"}, //22
- {"Current_Zone_12","Pass"}, //23
-
- {"Break_Zone_1","Pass"}, //24
- {"Break_Zone_2","Pass"}, //25
- {"Break_Zone_3","Pass"}, //26
- {"Break_Zone_4","Pass"}, //27
- {"Break_Zone_5","Pass"}, //28
- {"Break_Zone_6","Pass"}, //29
- {"Break_Zone_7","Pass"}, //30
- {"Break_Zone_8","Pass"}, //31
- {"Break_Zone_9","Pass"}, //32
- {"Break_Zone_10","Pass"}, //33
- {"Break_Zone_11","Pass"}, //34
- {"Break_Zone_12","Pass"}, //35
-
- {"Magnet ","Not Test"}, //36
- {"LS_REAR","Not Test"}, //37
- {"LS_FRONT","Not Test"}, //38
- {"DH_LID_Motor","Not Test"}, //39
-
- {"EEPROM ","Pass"}, //40
-
- {"ACTUATOR_IN","Not Test"}, //41
- {"LS_IN_UP","Not Test"}, //42
- {"LS_IN_DN","Not Test"}, //43
- {"ACTUATOR_OUT","Not Test"}, //44
- {"LS_OUT_UP","Not Test"}, //45
- {"LS_OUT_DN","Not Test"}, //46
-
- {"LS_MAGNET_DN","Not Test"}, //47
-
-
- };
-
-
-
-//--------------------------------------------------------------------------------
-
-public Task<decimal> NewDyeHead_test( Action<string> settext, CancellationToken cancellationToken, string SN, string Location)
-{
- Task<decimal> task = null;
- // Start a task and return it
- task = Task.Run(() =>
- {
- stubManager.Write("S/N:" +SN+ "\n");
- stubManager.Write("Location:" +Location+ "\n");
-
- copy_table (New_DyeHead_UNDER_TEST,Units_status_New_DyeHead);
- DialogResult result1 = MessageBox.Show("Make shure, Dyehead is not hot", "Warning",MessageBoxButtons.OKCancel);
- if(result1 == DialogResult.Cancel)
- {
- stubManager.AppendToFile(File_Name1,"Dyehead is too hot \tFail");
- stubManager.Write("Dyehead is too hot \tFail\n");
- return 0 ;
- }
- else
- {
-
-//------------------------------- start test -----------
- settext("Test Magnet Motor LS");
-// stubManager.Run<ProgressResponse>("ProgressRequest" ,0xC3,0); // disable i2c
- Test_Magnet_Motor_LS_New_DyeHead();
- delay(2000);
-// stubManager.Run<ProgressResponse>("ProgressRequest" ,0xC3,1); // enable i2c
- delay(2000);
-
-
- settext("Test heaters &pt100");
- Test_new_heaters_pt100 ();
- settext("Test Head EEPROM");
- Test_Head_EEPROM(SN); //pass
- settext("Test Actuator In");
- Test_Actuator_in(); //pass
- settext("Test Actuator Out");
- Test_Actuator_out(); //pass
- Status=write_to_file(SN,Location,New_DyeHead_UNDER_TEST,"Dyehead");
-
- settext("End Test");
- }
- decimal result = 0;
-
- return result;
- });
- return task;
-}
-
-//-------------------------------------------------------------
- int Test_Actuator_in()
-{
- Int32 temp;
- int i=0;
-
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf000); //mov ACTUATOR-IN Dn
- delay(2000);
-
-
-// DialogResult result = MessageBox.Show("Is ACTUATOR-IN on Upper Limit Swtich?", "Warning",MessageBoxButtons.YesNo);
-// if(result == DialogResult.Yes)
-// {
-// stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf000); //mov ACTUATOR-IN down
-//
-// delay(2000);
-// DialogResult result2 = MessageBox.Show("Is ACTUATOR-IN Move to Lower Limit Switch?", "Warning",MessageBoxButtons.YesNo);
-// if(result2 != DialogResult.Yes)
-// {
-// Units_status[43,1]="Fail";
-// return 0;
-// }
-// stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf001); //mov ACTUATOR-IN up
-// delay(2000);
-// DialogResult result3 = MessageBox.Show("Is ACTUATOR-IN Move to Upper Limit Switch?", "Warning",MessageBoxButtons.YesNo);
-// if(result3 != DialogResult.Yes)
-// {
-// Units_status[42,1]="Fail";
-// return 0;
-// }
-// Units_status[41,1]="Pass";
-// Units_status[42,1]="Pass";
-// Units_status[43,1]="Pass";
-// return 0;
-// }
-// else
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf001); //mov ACTUATOR-IN up
- delay(2000);
- DialogResult result4 = MessageBox.Show("Is ACTUATOR-IN Move to Upper Limit Switch ?", "Warning",MessageBoxButtons.YesNo);
- if(result4 != DialogResult.Yes)
- {
- Units_status[42,1]="Fail";
- return 0;
- }
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf000); //mov ACTUATOR-IN down
- delay(2000);
- DialogResult result6 = MessageBox.Show("Is ACTUATOR-IN Move to Lower Limit Switch?", "Warning",MessageBoxButtons.YesNo);
- if(result6 != DialogResult.Yes)
- {
- Units_status[43,1]="Fail";
- return 0;
- }
- Units_status[41,1]="Pass";
- Units_status[42,1]="Pass";
- Units_status[43,1]="Pass";
- return 0;
-}
-
-
-
-//-------------------------------------------------------------
- int Test_Actuator_out()
-{
- Int32 temp;
- int i=0;
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf100); //mov ACTUATOR-OUT down
- delay(2000);
-
-// DialogResult result = MessageBox.Show("Is ACTUATOR-OUT on Upper Limit swtich?", "Warning",MessageBoxButtons.YesNo);
-// if(result == DialogResult.Yes)
-// {
-// stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf100);
-//
-//
-// delay(2000);
-// DialogResult result1 = MessageBox.Show("Is ACTUATOR-OUT Move to Lower Limit Switch?", "Warning",MessageBoxButtons.YesNo);
-// if(result1 != DialogResult.Yes)
-// {
-// Units_status[46,1]="Fail";
-// return 0;
-// }
-//
-// stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf101); //mov ACTUATOR-OUT up
-// delay(2000);
-// DialogResult result3 = MessageBox.Show("Is ACTUATOR-OUT Move to Upper Limit Switch?", "Warning",MessageBoxButtons.YesNo);
-// if(result3 != DialogResult.Yes)
-// {
-// Units_status[45,1]="Fail";
-// return 0;
-// }
-// Units_status[44,1]="Pass";
-// Units_status[45,1]="Pass";
-// Units_status[46,1]="Pass";
-// return 0;
-// }
-// else
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf101); //mov ACTUATOR-OUT up
- delay(2000);
- DialogResult result4 = MessageBox.Show("Is ACTUATOR-OUT Move to Upper Limit Switch?", "Warning",MessageBoxButtons.YesNo);
- if(result4 != DialogResult.Yes)
- {
- Units_status[45,1]="Fail";
- return 0;
- }
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf100); //mov ACTUATOR-OUT down
- delay(2000);
- DialogResult result6 = MessageBox.Show("Is ACTUATOR-OUT Move to Lower Limit Switch?", "Warning",MessageBoxButtons.YesNo);
- if(result6 != DialogResult.Yes)
- {
- Units_status[46,1]="Fail";
- return 0;
- }
- Units_status[44,1]="Pass";
- Units_status[45,1]="Pass";
- Units_status[46,1]="Pass";
- return 0;
- }
-
-
-//--------------------------------------------
- int Test_Magnet_Motor_LS_New_DyeHead()
-{
- Int32 temp;
- int i=0;
-
-//---------------------- open Magnet ----------------------------
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,MGNET_OPEN); // turn magnet on
- delay(100);
-
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,MGNET_EN); // magnet enable
- delay(100);
-
- stubManager.Write("Magnet is Open\n");
- delay(1000);
-//---------------------- chekc Magnet is open ----------------------------
- DialogResult result = MessageBox.Show("Make shure, Magnet is open and DyeHead cover on front.", "Warning",MessageBoxButtons.YesNo);
- if(result == DialogResult.No)
- {
- Units_status[36,1]="Fail";
- stubManager.Write("Magnet is close\n");
- return 0;
- }
- temp=read_pio (LS_UPPER); // read LS_UPPER
- if (temp != 0)
- {
- Units_status[47,1]="Fail";
- stubManager.Write("LS_UPPER of Magnet is close\n");
- }
-
-
-//---------------------- Move DyeingHead Lid Motor rear----------------------------
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DyeingHeadLid_Motor, true, 250);
- stubManager.Write("*** Open Lid Head ********* \n");
-
- temp = 0;
- i=0;
- while ((temp == 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec
- {
- temp=read_pio (LS_REAR); // read LS_REAR
- delay(50);
-
- i++;
- }
-
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor,3); //stop motor
- DialogResult result2 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo);
- if(result2 == DialogResult.No || i==200)
- {
- Units_status[37,1]="Fail";
- stubManager.Write("LS_REAR Not calibrate\n");
- }
- else
- Units_status[37,1]="Pass";
-//---------------------- Move DyeingHead Lid Motor front----------------------------
- stubManager.Write("*** Close Lid Head \n");
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DyeingHeadLid_Motor, false, 250);
- temp = 0;
- i=0;
- while ((temp == 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec
- {
- temp=read_pio (LS_FRONT); // read LS_FRONT
- delay(50);
- i++;
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor,3); //stop motor
-
- DialogResult result3 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo);
- if(result3 == DialogResult.No || i==200)
- {
- Units_status[38,1]="Fail";
- stubManager.Write("LS_FRONT Not calibrate\n");
- }
- else
- {
- Units_status[39,1]="Pass";
- Units_status[38,1]="Pass";
- }
-//---------------------- Close Magnet ----------------------------
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,MGNET_CLOSE); // turn magnet off
- delay(2000);
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,MGNET_DIS); // magnet Disable
-
- stubManager.Write("Magnet is Close\n");
- delay(1000);
-//---------------------- chekc Magnet is close ----------------------------
-
- DialogResult result4 = MessageBox.Show("Make shure, Magnet is close", "Warning",MessageBoxButtons.YesNo);
- if(result4 == DialogResult.No)
- {
- Units_status[36,1]="Fail";
- stubManager.Write("Magnet is open\n");
- return 0;
- }
- Units_status[36,1]="Pass";
- temp=read_pio (LS_UPPER); // read LS_UPPER
- if (temp == 0)
- {
- Units_status[47,1]="Fail";
- stubManager.Write("LS_UPPER of Magnet is open\n");
- return 0;
- }
- Units_status[47,1]="Pass";
- stubManager.Write("LS_UPPER of Magnet is close\n");
- return 0;
- }
-//------------------------------------
-public int Test_new_heaters_pt100()
-{
-
-// uint utemp=0;
- Int32 temp=0;
- float ftemp=0;
- float ftemp1=0;
- float current=0;
- Double current_sense;
-
- for (Int32 i = 0; i < 12; i++) //12
- {
- Int32 tdly=20000;
-//---------------------- get tempurature of heaters----------------------------
- temp= 12+i/2+(i%2)*8; //HZone_1=12
- //HZone_2=20
- //HZone_3=13
- //HZone_4=21
- //HZone_5=14
- //HZone_6=22
- //HZone_7=15
- //HZone_8=23
- //HZone_9=16
- //HZone_10=24
- //HZone_11=17
- //HZone_11=25
-
- var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" , temp); //get temperature from the buffer
- ftemp = (float)response.TemperatureCMultBy100;
- ftemp = ftemp / 100;
-
- if ((ftemp>50)|| (ftemp<15))
- {
- Units_status[i,1]="Fail";
- tdly=2000;
-
- }
- stubManager.Write("Zone-"+(i+1)+ "-\t" + ftemp.ToString("F2")+"°C\n");
-//---------------------- get current of heaters ----------------------------
- var response1 = stubManager.Run<StubMidTankPressureSensorResponse>("StubMidTankPressureSensorRequest" ,0x8000 + i); // get current
- current_sense=response1.Pressure;
- if (current_sense>0.1)
- {
- Units_status[i+12,1]="Fail";
- }
- stubManager.Write("current zone -" +(i+1)+ " is \t-" + current_sense +"\n");
-//---------------------- get Break of heaters ----------------------------
- var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,0x440000 +(i/8)*0x100+(1<<(i&7))); // read break
- temp = (Int32) (response2.Progress);
- if ((temp & (1<<(i&7))) ==0) //if break ok
- {
- Units_status[i+24,1]="Fail";
- stubManager.Write("Break Zone "+(i+1)+ "\t is on\n");
- }
- else
- {
- stubManager.Write("Break Zone "+(i+1)+ "\t is Off\n");
- }
-//---------------------- turn heater on ----------------------------
-// stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,0x400200 +(i/8)*0x100+(1<<(i&7))); // turn heater on
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,0x40F001 + i*0x100); // turn heater on
-
- stubManager.Write("Heater- "+(i+1)+ "\t is On\n");
- delay(tdly); //delay 10 second
-//---------------------- get current of heaters ----------------------------
- var response3 = stubManager.Run<StubMidTankPressureSensorResponse>("StubMidTankPressureSensorRequest" ,0x8000 + i); // get current
- current_sense=response3.Pressure;
- if ((current_sense<1.0) ||(current_sense>1.5) ) //if current not 1.25A
- {
- Units_status[i+12,1]="Fail";
- }
- stubManager.Write("current zone -" +(i+1)+ " is \t-" + current_sense +"\n");
-//---------------------- get Break of heaters ----------------------------
- var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,0x440000 +(i/8)*0x100+(1<<(i&7))); // read break
- temp = (Int32) (response4.Progress);
- if ((temp & (1<<(i&7))) ==0) //if break ok
- {
- stubManager.Write("Break Zone "+(i+1)+ "\t is On\n");
- Units_status[i+24,1]="Fail";
- }
- else
- {
- stubManager.Write("Break Zone "+(i+1)+ "\t is Off\n");
-
- }
- temp= 12+i/2+(i%2)*8;
- var response5 = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" , temp); //get temperature from the buffer
- ftemp1 = (float)response5.TemperatureCMultBy100;
- ftemp1 = ftemp1 / 100;
-
- if (((ftemp1-ftemp)<10)|| ((ftemp1-ftemp)>45))
- {
- Units_status[i,1]="Fail";
- }
- stubManager.Write("Zone-"+(i+1)+ " after heating is \t" + ftemp1.ToString("F2")+"°C\n");
-//---------------------- turn heater off ----------------------------
-// stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,0x400200 +(i/8)*0x100); // turn heater off
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,0x40F000 + i*0x100); // turn heater OFF
-
- stubManager.Write("Heater - "+(i+1)+ "\t is Off\n");
-
- }
- return 0;
-}
-
-Int32 read_pio(Int32 i2c_input)
-{
- Int32 temp=0;
- var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,i2c_input); // read break
-
- temp = (Int32) (response.Progress);
- temp =temp & (i2c_input& 0xff); //if break ok
-
- return temp;
-}
-//end mati
-
- //enable_all_channel();
-public int Test_Head_EEPROM(string s_n)
-{
-
- enable_channel(Head_Mux_Channel_ID); // Chanel 0-7 => Disp0enser 0-7
-
- Write_EEPROM(0xA0,s_n);
- delay(200); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet )
-
-//------------ go to address 0 on eeprom --------------
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID3;
- stubI2CWriteBytesRequest.SlaveAddress = 0xA0;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
- stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- //Thread.Sleep(1); //Sleep for 10 milli.
- Read_EEPROM(0xA0);
-
- delay(20); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet )
- return 0;
-
-}
-
-int enable_channel(int Channel_ID)
-{
- uint Const_temp = 0x01;
-
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID3;
- stubI2CWriteBytesRequest.SlaveAddress = TCA9548A_address;
-
- Const_temp = Const_temp << Channel_ID;
- stubI2CWriteBytesRequest.BytesTWrite.Add(Const_temp);
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
-}
-
-int Write_EEPROM (uint I2C_Slave_Add,string s_n )
-{
-
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID3;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
-
- //--------------------------------------------------------------
- characters = EEPROM_Header.ToCharArray();
-
- for (int i=0;i<16;i++)
- {
- stubI2CWriteBytesRequest.BytesTWrite.Add(characters[i]); //add header
- // characters[i]=0x20;
- }
- characters = s_n.ToCharArray();
-
- for (int i=0;i<characters.Length ;i++)
- {
-
- stubI2CWriteBytesRequest.BytesTWrite.Add(characters[i]); //add s/n
-
- }
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
-}
-
-int Read_EEPROM(uint I2C_Slave_Add)
-{
- char temp;
- StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();
- stubI2CReadBytesRequest.I2CId = I2C_ID3;
- stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add + 1;
- stubI2CReadBytesRequest.NumberOfBytesToRead = 16; // Number of header bytes to read
-
- var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);
- uint temph=0;
- char[] characters = EEPROM_Header.ToCharArray();
- for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++)
- {
- temp = Convert.ToChar(response1.ReadBytes[i]);
-
-
- }
-
- return 1;
-}
diff --git a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/New_Mixer_Jig.cs b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/New_Mixer_Jig.cs
deleted file mode 100644
index 076f4ce68..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/New_Mixer_Jig.cs
+++ /dev/null
@@ -1,170 +0,0 @@
-using System;
-using System.Text;
-using System.IO;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-const int New_Mixer_UNDER_TEST=4;
-
-const Int32 Valve_EN=0x42F501;
-const Int32 Valve_DIS=0x42F500;
-const Int32 Mixer_ON=0x42F401;
-const Int32 Mixer_OFF=0x42F400;
-
-float NewMixerTemp ;
-
-string [,] Units_status_New_Mixer = new string[New_Mixer_UNDER_TEST,2] {
- {"Pt100_Mixer","Pass"}, //0
- {"Heater_Mixer","Pass"}, //1
- {"Break_Mixer","Pass"}, //2
- {"VALVE_Mixer","Not Test"}, //3
- };
-
-
-
-//--------------------------------------------------------------------------------
-
-public Task<decimal> New_Mixer_test( Action<string> settext, CancellationToken cancellationToken, string SN, string Location)
-{
- Task<decimal> task = null;
- // Start a task and return it
- task = Task.Run(() =>
- {
- stubManager.Write("S/N:" +SN+ "\n");
- stubManager.Write("Location:" +Location+ "\n");
-
- copy_table (New_Mixer_UNDER_TEST,Units_status_New_Mixer);
-
-
-//------------------------------- start test -----------
- settext("Test heater & pt100");
- Test_New_Mixer_heater_pt100 ();
- settext("Test VALVE Mixer");
- Test_VALVE_New_Mixer ();
-
- Status=write_to_file(SN,Location,New_Mixer_UNDER_TEST,"Mixer");
-
- settext("End Test");
-
- decimal result = 0;
-
- return result;
- });
- return task;
-}
-
-//--------------------------------------------
- int Test_VALVE_New_Mixer ()
- {
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,Valve_EN); // Valve enable
-
- DialogResult result = MessageBox.Show("MixCHIP Valve Open ?", "Warning",MessageBoxButtons.YesNo);
- if(result == DialogResult.No)
- {
- Units_status[3,1]="Fail";
- stubManager.Write("VALVE_MIXCHIP_WASTECH Not open\n");
- return 0;
- }
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,Valve_DIS); // Valve enable
-
- DialogResult result1 = MessageBox.Show("MixCHIP Valve close ?", "Warning",MessageBoxButtons.YesNo);
- if(result1 == DialogResult.No)
- {
- Units_status[3,1]="Fail";
- stubManager.Write("VALVE_MIXCHIP_WASTECH Not close\n");
- return 0;
- }
- Units_status[3,1]="Pass";
- return 0;
- }
-
-//------------------------------------
-public int Test_New_Mixer_heater_pt100()
-{
- Int32 temp=0;
- float ftemp=0;
- float ftemp1=0;
- float current=0;
- Int32 tdly=15000;
- Double current_sense;
-
-//---------------------- get tempurature of mixer----------------------------
-
-// stubManager.Write("\nTemp Befor heating \n");
-
- var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" , 19); //get temperature from mixer
- ftemp = (float)response.TemperatureCMultBy100;
- ftemp = ftemp / 100;
- if ((ftemp>100)|| (ftemp<10))
- {
- Units_status[0,1]="Fail";
- tdly=1000;
- }
- stubManager.Write("Temp Befor heating is"+ ftemp.ToString("F2"));
- stubManager.Write("°C\n");
-//---------------------- get current of mixer ----------------------------
- var response1 = stubManager.Run<StubMidTankPressureSensorResponse>("StubMidTankPressureSensorRequest" ,0x8000 + 20); // get current mixer
- current_sense=response1.Pressure;
- if (current_sense>0.1)
- {
- Units_status[1,1]="Fail";
- }
- stubManager.Write("current is " + current_sense +"\n");
-//---------------------- get Break of Mixer ----------------------------
- var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,0x460000 +0x10); // read break
- temp = (Int32) (response2.Progress);
- if ((temp & 0x10 )==0) //if break ok
- {
- Units_status[2,1]="Fail";
- stubManager.Write("Break Mixer is On\n");
- }
- else
- {
- stubManager.Write("Break Mixer is off\n");
- }
-//---------------------- turn Mixer on ----------------------------
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,Mixer_ON); // turn mixer on
- stubManager.Write("Mixer On\n");
- delay(tdly); //delay 20 second
-//---------------------- get current of mixer ----------------------------
- var response3 = stubManager.Run<StubMidTankPressureSensorResponse>("StubMidTankPressureSensorRequest" ,0x8000 + 20); // get current
- current_sense=response3.Pressure;
- if ((current_sense<2) ||(current_sense>3) ) //if current not 2.5A
- {
- Units_status[3,1]="Fail";
- }
- stubManager.Write("current in Mixer is " + current_sense +"\n");
-//---------------------- get Break of Mixer ----------------------------
- var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,0x460000 +0x10); // read break
- temp = (Int32) (response4.Progress);
- if ((temp & 0x10 )==0) //if break ok
- {
- Units_status[2,1]="Fail";
- stubManager.Write("Break Mixer is On\n");
- }
- else
- {
- stubManager.Write("Break Mixer is Off\n");
- }
-//---------------------- get tempurature of mixer----------------------------
- var response5 = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" , 19); //get temperature from the mixer
- ftemp1 = (float)response5.TemperatureCMultBy100;
- ftemp1 = ftemp1 / 100;
-
- if (((ftemp1-ftemp)<5)|| ((ftemp1-ftemp)>50))
- {
- Units_status[0,1]="Fail";
- }
- stubManager.Write("Mixer after heating is \t" + ftemp1.ToString("F2")+"°C\n");
-//---------------------- turn Mixer off ----------------------------
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,Mixer_OFF); // turn mixer off
- stubManager.Write("Mixer is Off\n");
- return 0;
-}
diff --git a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/RTFU_Jig.cs b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/RTFU_Jig.cs
deleted file mode 100644
index 4e1223328..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/RTFU_Jig.cs
+++ /dev/null
@@ -1,367 +0,0 @@
-using System;
-using System.Text;
-using System.IO;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-//--------------------------------------------------------------------------------
-//--------------------------------------------------------------------------------
-
-const int RTFU_UNDER_TEST=9;
-
-string [,] Units_status_RTFU = new string[RTFU_UNDER_TEST,2] {
- {"LS_RLOADMOTOR_Up","Not Test"}, //0
- {"LS_RLOADMOTOR_DOWN","Not Test"}, //1
- {"RLOADING_Motor","Not Test"}, //2
- {"DRIVING_Motor","Not Test"}, //3
- {"LS_RDANCER_DOWN","Not Test"}, //4
- {"LS_RDANCER_UP","Not Test"}, //5
- {"LS_RLOADRAM_DOWN","Not Test"}, //6
- {"RDANCER_Motor","Not Test"}, //7
- {"RDANCER_ROTENC","Not Test"}, //8
- };
-
-
-
-//-----------------------------------------------------
-
-public Task<decimal> RTFU_test( Action<string> settext, CancellationToken cancellationToken, string SN, string Location)
-{
- Task<decimal> task = null;
- // Start a task and return it
- task = Task.Run(() =>
- {
-
- stubManager.Write("S/N:" +SN+ "\n");
- stubManager.Write("Location:" +Location+ "\n");
-
- copy_table (RTFU_UNDER_TEST,Units_status_RTFU);
-
- settext("Test RLOADING RTFU");
- Test_RLOADING_RTFU();
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading high z
-
- delay(100);
- Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x14000000); //set kval ran to 0x14,0.65A
-
- settext("Test RDRIVING RTFU");
- Test_RDRIVING_RTFU();
-
- settext("Test DANCER RTFU");
-
- Test_DANCER_RTFU();
-
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RDANCER_Motor, 3); //hold Rloading high z
-
- Status=write_to_file(SN,Location,RTFU_UNDER_TEST,"RTFU");
-
- settext("End Test");
- decimal result = 0;
-
- return result;
- });
- return task;
-}
-
-
- //------------------------------------
-int Test_RLOADING_RTFU()
-{
- int temp=1;
- int counter;
-
- Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x2c000000); //set kval ran to 0x40- 1.9A
- delay(100);
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RLOADING_Motor, true,200); //move Rloading down
- delay(3000);
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading high z
- delay(1000);
-//------------------------------------------ check F1_LS_RLOADMOTOR_up------------------------------------------------
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //read LS
- if ((response.Value & F1_LS_RLOADMOTOR_UP) !=F1_LS_RLOADMOTOR_UP ) //if LS_RLOADMOTOR_UP is up then error
- {
- DialogResult result = MessageBox.Show("Did RLOADIN MOTOR Move?", "Warning",MessageBoxButtons.YesNo);
- if(result == DialogResult.Yes)
- {
- Units_status[0,1]="Fail";
- stubManager.Write("LS_RLOADMOTOR_UP\tFail\n");
- return 0;
- }
- else
- {
- Units_status[2,1]="Fail";
- stubManager.Write("RLOADMOTOR\tFail\n");
- return 0;
- }
- }
-
-//----------------------------------------- mov RLOADING up -------------------------------------------------
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RLOADING_Motor,false,300); //move Rloading up
- counter =0;
- while ( counter < 200)
- {
- counter = counter + 1;
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if LS_RLOADMOTOR_UP is up then move down
- if ((response.Value & F1_LS_RLOADMOTOR_UP) != F1_LS_RLOADMOTOR_UP )
- counter=250;
-
- delay(100);
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading high z
-
- if (counter == 200)
- {
- Units_status[0,1]="Fail";
- stubManager.Write("LS_RLOADMOTOR_UP\tFail\n");
- return 0;
- }
- DialogResult result1 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo);
- if(result1 == DialogResult.No)
- {
- Units_status[0,1]="Fail";
- stubManager.Write("LS_RLOADMOTOR_UP Not calibrate\n");
- return 0;
- }
- Units_status[0,1]="Pass";
- Units_status[2,1]="Pass";
-
-//------------------------------------------ check F1_LS_RLOADMOTOR_DN------------------------------------------------
-
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //read LS
-
- if ((response.Value & F1_LS_RLOADMOTOR_DN) !=F1_LS_RLOADMOTOR_DN ) //if LS_RLOADMOTOR_DN is up then error
- {
- Units_status[1,1]="Fail";
- stubManager.Write("LS_RLOADMOTOR_DN\tFail\n");
- return 0;
- }
-//------------------------------------------ mov RLOADING dn ------------------------------------------------
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RLOADING_Motor, true,300); //move Rloading down
- counter =0;
- while ( counter < 200)
- {
- counter = counter + 1;
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if LS_RLOADMOTOR_UP is up then move down
- if ((response.Value & F1_LS_RLOADMOTOR_DN) != F1_LS_RLOADMOTOR_DN )
- counter=250;
-
- delay(100);
- }
-
- if (counter == 150)
- {
- Units_status[1,1]="Fail";
- stubManager.Write("LS_RLOADMOTOR_DN\tFail\n");
- return 0;
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading high z
-
- DialogResult result2 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo);
- if(result2 == DialogResult.No)
- {
- Units_status[1,1]="Fail";
- stubManager.Write("LS_RLOADMOTOR_DN Not calibrate\n");
- return 0;
- }
- Units_status[1,1]="Pass";
- stubManager.Write("RLOADMOTOR\tPass\n");
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RLOADING_Motor, true,200); //move Rloading down
- delay(2000);
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading high z
-
- return 1 ;
-
-}
-
-//----------------------------------
-
-Int32 ReadEncoder()
-{
- Int32 temp;
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F1_RDANCER_ROTENC_DATA_p_TX, 0x0000); //triggers a TX transmission
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_RDANCER_ROTENC_DATA_p_RX_lsb);
- var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_RDANCER_ROTENC_DATA_p_RX_msb);
-
- temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff));
-
-
- return temp;
-}
-//--------------------------------------------------------------------------------
-int Test_DANCER_RTFU()
-{
- int counter;
- Int32 temp;
- Int32 temp1;
-
-//------------------------------------------ check F1_LS_RDANCER_DOWN ------------------------------------------------
-
- MessageBox.Show("Make sure RDANCER Down");
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //read LS
- if ((response.Value & F1_LS_RDANCER_DOWN) !=F1_LS_RDANCER_DOWN ) //if F1_LS_RDANCER_DOWN is up then error
- {
- Units_status[4,1]="Fail";
- stubManager.Write("LS_RDANCER_DOWN\tFail\n");
- return 0;
- }
-//----------------------------------------- mov RDANCER_Motor up and check F1_LS_RDANCER_DOWN -------------------------------------------------
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RDANCER_Motor,true,10); //move Rloading up
- counter =0;
- while ( counter < 150)
- {
- counter = counter + 1;
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if LS_RLOADMOTOR_UP is up then move down
- if ((response.Value & F1_LS_RDANCER_DOWN) != F1_LS_RDANCER_DOWN )
- counter=250;
-
- delay(100);
- }
- if (counter == 150)
- {
- Units_status[4,1]="Fail";
- stubManager.Write("LS_RDANCER_DOWN\tFail\n");
- return 0;
- }
- Units_status[4,1]="Pass";
- stubManager.Write("LS_RDANCER_DOWN\tPass\n");
-
-//----------------------------------------- check F1_LS_RDANCER_UP -------------------------------------------------
-
- if ((response.Value & F1_LS_RDANCER_UP) !=F1_LS_RDANCER_UP ) //if F1_LS_RDANCER_UP is up then error
- {
- Units_status[5,1]="Fail";
- stubManager.Write("LS_RDANCER_UP\tFail\n");
- return 0;
- }
- counter =0;
- while ( counter < 150)
- {
- counter = counter + 1;
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if F1_LS_RDANCER_UP is up then move down
- if ((response.Value & F1_LS_RDANCER_UP) != F1_LS_RDANCER_UP )
- counter=250;
-
- delay(100);
- }
- if (counter == 150)
- {
- Units_status[5,1]="Fail";
- stubManager.Write("LS_RDANCER_UP\tFail\n");
- return 0;
- }
- Units_status[5,1]="Pass";
- stubManager.Write("LS_RDANCER_UP\tPass\n");
-
-//----------------------------------------- check F1_LS_RLOADRAM_DOWN -------------------------------------------------
-
- if ((response.Value & F1_LS_RLOADRAM_DOWN) !=F1_LS_RLOADRAM_DOWN ) //if F1_LS_RLOADRAM_DOWN is up then error
- {
- Units_status[6,1]="Fail";
- stubManager.Write("LS_RLOADRAM_DOWN\tFail\n");
- return 0;
- }
- counter =0;
- while ( counter < 150)
- {
- counter = counter + 1;
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if F1_LS_RLOADRAM_DOWN is up then move down
- if ((response.Value & F1_LS_RLOADRAM_DOWN) != F1_LS_RLOADRAM_DOWN )
- counter=250;
-
- delay(100);
- }
- if (counter == 150)
- {
- Units_status[6,1]="Fail";
- stubManager.Write("LS_RLOADRAM_DOWN\tFail\n");
- return 0;
- }
- Units_status[6,1]="Pass";
- stubManager.Write("LS_RLOADRAM_DOWN\tPass\n");
-
-//----------------------------------------- mov RDANCER_Motor down and check rdancer encoder -------------------------------------------------
- temp= ReadEncoder();
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RDANCER_Motor,false,10); //move Rloading down
- counter =0;
- while ( counter < 150)
- {
- counter = counter + 1;
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if LS_RLOADMOTOR_UP is up then move down
- if ((response.Value & F1_LS_RDANCER_DOWN) != F1_LS_RDANCER_DOWN )
- counter=250;
-
- delay(100);
- }
- if (counter == 150)
- {
- Units_status[4,1]="Fail";
- stubManager.Write("LS_RDANCER_DOWN\tFail\n");
- return 0;
- }
- Units_status[7,1]="Pass";
- stubManager.Write("RDANCER_Motor\tPass\n");
-
- temp1= ReadEncoder();
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RDANCER_Motor, 3); //hold Rloading high z
-
- stubManager.Write("temp="+temp + "\temp1="+temp1 +"\n");
-
- DialogResult result = MessageBox.Show("SSI Dancer led is Green(Not blinking)?", "Warning",MessageBoxButtons.YesNo);
- if(result == DialogResult.No)
- {
- Units_status[8,1]="Fail";
- stubManager.Write("RDANCER_SSI\tFail\n");
- return 0;
- }
-
- if (temp>temp1)
- temp1=temp1+0x4000;
-
- temp1=temp1-temp;
- if ((temp1> 15000) || (temp1 <1000))
- {
- Units_status[8,1]="Fail";
- stubManager.Write("RDANCER_SSI\tFail\n");
- return 0;
- }
- Units_status[8,1]="Pass";
- stubManager.Write("RDANCER_SSI\tPass\n");
-
- return 1;
-}
-
-
-//-------------------------------------------------------------
-int Test_RDRIVING_RTFU()
-{
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RDRIVING_Motor, true,200); //move Rdriving clockwise
- stubManager.Write("RDRIVING_Motor Motor rotate \n ");
-
- DialogResult result = MessageBox.Show("Are RDRIVING Motor rotate?", "Warning",MessageBoxButtons.YesNo);
- if(result == DialogResult.No)
- {
- Units_status[3,1]="Fail";
- stubManager.Write("RDRIVING Motor not rotate\n");
- }
- else
- {
- Units_status[3,1]="Pass";
- stubManager.Write("RDRIVING Motor rotate\n");
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RDRIVING_Motor,3); //stop motor
-
- return 0;
-}
-
-
diff --git a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Tango_define.cs b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Tango_define.cs
deleted file mode 100644
index a66fa5fa1..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Tango_define.cs
+++ /dev/null
@@ -1,124 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-
-const Int32 F1_LS_01_Direct = 0x60000020 ;
-const Int32 F1_LS_02_Direct = 0x60000030 ;
-const Int32 F1_LS_03_Direct = 0x60000040 ;
-
-const Int32 F1_gpo_01 = 0x600003D2 ;
-
-
-const Int32 F2_CTRL = 0x600004E2 ;
-
-const Int32 F3_GPO_01_bus = 0x600008C2;
-
-const Int32 TCA9548A_address = 0xE2;
-
-
-const Int32 I2C_ID2 = 2;
-const Int32 I2C_ID3 = 3;
-
-
-
-const Int32 F1_SCREW_ROTENC_lsb = 0x60000100;
-const Int32 F1_SCREW_ROTENC_msb = 0x60000102;
-
-
-
-
-
-
-
-
-
-
-const Int32 F3_VALVE_OUT = 0x600008e2;
-
-
-const Int32 F1_Tacho_reg8 = 0x600001e0 ;
-
-
-
-
-//-------------------DEFINE Motors Parameters------------------
-
-const Int32 F1_MOTO_RLOADING_TX1 = 0x60000202;
-const Int32 F1_MOTO_RLOADING_TX0 = 0x60000200;
-const Int32 F1_MOTO_RLOADING_RX1 = 0x60000206;
-const Int32 F1_MOTO_RLOADING_RX0 = 0x60000204;
-
-//-------------------DEFINE Limit Switch---------------
-
-const Int32 F1_LS_RLOADMOTOR_UP = 0x0040 ;
-const Int32 F1_LS_RLOADMOTOR_DN = 0x0080 ;
-const Int32 F1_LS_RDANCER_UP = 0x0100;
-const Int32 F1_LS_RDANCER_DOWN = 0x0200;
-const Int32 F1_LS_RLOADRAM_DOWN = 0x0020;
-
-const Int32 F1_RDANCER_ROTENC_DATA_p_RX_lsb = 0x600001a0;
-const Int32 F1_RDANCER_ROTENC_DATA_p_RX_msb = 0x600001a2;
-const Int32 F1_RDANCER_ROTENC_DATA_p_TX = 0x600001ae;
-
-
-
-const Int32 F2_Prescaler1_reg11 = 0x60000512 ;
-const Int32 F2_BLOWER_PWM_LOW = 0x600007EC ;
-const Int32 F2_BLOWER_PWM_HIGH = 0x600007EE ;
-
-
-//-------------------DEFINE Motors------------------
-const Int32 CleaningHead_Motor = 0;
-const Int32 CleaningMechanisim_Motor= 1;
-const Int32 DyeingHeadLid_Motor = 2;
-const Int32 DryerMain_Motor = 3;
-const Int32 DryerLid_Motor = 4;
-const Int32 DrierLoadingArm_Motor = 5;
-
-const Int32 SCREW = 14;
-const Int32 WINDER_Motor = 15;
-
-const Int32 LDANCER1_Motor = 16;
-const Int32 LDANCER2_Motor = 17;
-const Int32 LDRIVING_Motor = 18;
-const Int32 LLOADING_Motor = 19;
-
-const Int32 RDANCER_Motor = 21;
-const Int32 RDRIVING_Motor = 22;
-const Int32 MAGNET_Driver = 23; //replace RLOADARM
-const Int32 RLOADING_Motor = 24;
-
-
-//-------------------DEFINE Motors Parameters------------------
-
-const Int32 F1_MOTO_LLOADING_TX1 = 0x60000232;
-const Int32 F1_MOTO_LLOADING_TX0 = 0x60000230;
-
-const Int32 F1_LS_LLOADMOTOR_UP = 0x0100 ;
-const Int32 F1_LS_LLOADMOTOR_DN = 0x0200 ;
-const Int32 F1_LS_LDANCER1_UP = 0x1000;
-const Int32 F1_LS_LDANCER1_DN = 0x2000;
-const Int32 F1_LS_LDANCER2_UP = 0x0400;
-const Int32 F1_LS_LDANCER2_DN = 0x0800;
-const Int32 F1_LS_LLOADRAM_LF = 0x0080;
-const Int32 F1_LS_LLOADRAM_RT = 0x0040;
-const Int32 F1_LS_LSPARE1 = 0x0008; //dn
-const Int32 F1_LS_LSPARE2 = 0x0004; //up
-
-
-const Int32 F1_LDANCER1_ROTENC_MSB = 0x600001c2;
-const Int32 F1_LDANCER1_ROTENC_LSB = 0x600001c0;
-const Int32 F1_LDANCER1_ROTENC_TX = 0x600001ce;
-
-const Int32 F1_LDANCER2_ROTENC_MSB = 0x600001b2;
-const Int32 F1_LDANCER2_ROTENC_LSB = 0x600001b0;
-const Int32 F1_LDANCER2_ROTENC_TX = 0x600001be;
diff --git a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Winder_Jig.cs b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Winder_Jig.cs
deleted file mode 100644
index 3ad16cb5e..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Winder_Jig.cs
+++ /dev/null
@@ -1,189 +0,0 @@
-using System;
-using System.Text;
-using System.IO;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-
-const int Winder_UNDER_TEST=6;
-
-string [,] Units_status_Winder = new string[Winder_UNDER_TEST,2] {
- {"Winder_Motor","Not Test"},
- {"Screw_Motor","Not Test"},
- {"LS_Screw_Right","Not Test"},
- {"LS_Screw_Left","Not Test"},
- {"Screw_Encoder","Not Test"},
- {"SW_Spool_Exist","Not Test"},
- };
-
-
-//--------------------------------------------------------------------------------
-
-public Task<decimal> Winder_test( Action<string> settext, CancellationToken cancellationToken, string SN, string Location)
-{
- Task<decimal> task = null;
- // Start a task and return it
- task = Task.Run(() =>
- {
-
- stubManager.Write("S/N:" +SN+ "\n");
- stubManager.Write("Location:" +Location+ "\n");
-
- copy_table (Winder_UNDER_TEST,Units_status_Winder);
- DialogResult result2 = MessageBox.Show("Insert Spool");
-
- settext("Test_Winder_motor");
- Test_Winder_motor();
- settext("Test_Screw_LS_Motor_Encoder");
- Test_Screw_LS_Motor_Encoder ();
- settext("Test_Pooler_Exis");
- Test_Pooler_Exist ();
-
- Status=write_to_file(SN,Location,Winder_UNDER_TEST,"Winder");
- settext("End Test");
- decimal result = 0;
-
- return result;
- });
- return task;
-}
-
-//------------------------------------------
-public int Test_Winder_motor ()
-
-{
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,WINDER_Motor, true, 500); //rotate Winder Motor.
- stubManager.Write("Winder Motor rotate \n");
- DialogResult result = MessageBox.Show("Are Winder Motor rotate?", "Warning",MessageBoxButtons.YesNo);
- if (_cancellationTokenSource.Token.IsCancellationRequested)
- {
- _cancellationTokenSource.Token.ThrowIfCancellationRequested();
- throw new TaskCanceledException();
- return 0;
- }
- if(result == DialogResult.No)
- {
- Units_status[0,1]="Fail";
- stubManager.Write("Winder Motor not rotate\n");
- }
- else
- {
- Units_status[0,1]="Pass";
- stubManager.Write("Winder Motor rotate\n");
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,WINDER_Motor,3); //stop motor
-
- return 0;
-}
-
-
-//--------------------------------------------
- int Test_Screw_LS_Motor_Encoder()
-{
- UInt32 temp ;
- Int32 Bit = 1;
-
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,SCREW, false, 250); //rotate screw Motor out.
- delay(1000);
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,SCREW,3); //stop motor
-
- DialogResult result2 = MessageBox.Show("Did screw Motor move ?", "Warning",MessageBoxButtons.YesNo);
- if(result2 == DialogResult.No)
- {
- Units_status[1,1]="Fail";
- stubManager.Write("Screw Motor not move\n");
- return 0;
- }
- Units_status[1,1]="Pass";
-
- stubManager.Write("Screw Motor rotate \n");
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,SCREW, true, 250);
- stubManager.Write("Move screw in\n");
-
- Bit = 1;
- int i=0;
- while ((Bit != 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec
- {
- Bit = GetBit(F1_LS_03_Direct,0);
- delay(50);
- i++;
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,SCREW,3); //stop motor
-
- DialogResult result1 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo);
- if(result1 == DialogResult.No)
- {
- Units_status[2,1]="Fail";
- stubManager.Write("LS_SCREW_RIGHT Not calibrate\n");
- return 0;
- }
- Units_status[2,1]="Pass";
- stubManager.Write("Move screw out\n");
-
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F1_SCREW_ROTENC_lsb, 0x0000); //clear encoder
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F1_SCREW_ROTENC_msb, 0x0000); //clear encoder
-
- Bit = 1;
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,SCREW, false, 250);
- i=0;
- while ((Bit != 0x0) && (i<200)) //wait until Limit Switch or timeout 200*50msec=10sec
- {
- Bit = GetBit(F1_LS_03_Direct,1);
- delay(50);
- i++;
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,SCREW,3); //stop motor
-
- DialogResult result3 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo);
- if(result3 == DialogResult.No)
- {
- Units_status[3,1]="Fail";
- stubManager.Write("LS_SCREW_LEFT Not calibrate\n");
- return 0;
- }
- Units_status[3,1]="Pass";
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_SCREW_ROTENC_lsb);
- var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_SCREW_ROTENC_msb);
-
- temp=(response.Value & 0xffff )+((response1.Value & 0xffff )<<16);
- temp=temp&0x0fffffff;
- temp= 0x4000000-temp;
- stubManager.Write("Encoder positio:" +temp+"\n");
-
- if ((temp>20000) && temp<28000)
- Units_status[4,1]="Pass";
- else
- Units_status[4,1]="Fail";//
-
- return 1;
-}
- //---------------------------------------
-int Test_Pooler_Exist()
-{
- if ( (GetBit(F1_LS_03_Direct,11))==0)
- {
- Units_status[5,1]="Fail";
- return 0;
- }
-
- DialogResult result2 = MessageBox.Show("Remove Spool");
- if ( (GetBit(F1_LS_03_Direct,11))!=0)
- Units_status[5,1]="Fail"; //
- else
- Units_status[5,1]="Pass";
-
- return 0 ;
-
-
-}
-
diff --git a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/location.cs b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/location.cs
deleted file mode 100644
index 11bf6556a..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/location.cs
+++ /dev/null
@@ -1 +0,0 @@
-string Location_str = "Hameshabev"; \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/span.cs b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/span.cs
deleted file mode 100644
index 1b31dbb4e..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/span.cs
+++ /dev/null
@@ -1,615 +0,0 @@
-using System;
-using System.Text;
-using System.IO;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-const int New_DyeHead_UNDER_TEST=47;
-const Int32 MGNET_OPEN=0x420301;
-const Int32 MGNET_EN=0x420280;
-const Int32 MGNET_CLOSE=0x420300;
-const Int32 MGNET_DIS=0x420200;
-const Int32 ACTDIR_ON=0x460280;
-const Int32 ACTDIR_OFF=0x460200;
-
-const Int32 ACTIN_ON=0x460308;
-const Int32 ACTOUT_ON=0x460304;
-
-const Int32 ACTIN_OFF=0x46030C;
-const Int32 ACTOUT_OFF=0x46030C;
-
-
-
-const Int32 LS_FRONT=0X460110;
-const Int32 LS_REAR=0X460120;
-const Int32 LS_UPPER=0X460140;
-const Int32 LS_SPARE=0X460180;
-const Int32 ACTIN_EN=0X460101;
-const Int32 ACTOUT_EN=0X460102;
-
-
-
-string EEPROM_Header="Header_1 "; //16 characters
-
-int Head_Mux_Channel_ID = 4; //Head MUX channel
-
-
-//float [] DyeHeadTemp = new float[6] ;
-
-string [,] Units_status_New_DyeHead = new string[New_DyeHead_UNDER_TEST,2] {
- {"Pt100_Zone_1","Pass"}, //0
- {"Pt100_Zone_2","Pass"}, //1
- {"Pt100_Zone_3","Pass"}, //2
- {"Pt100_Zone_4","Pass"}, //3
- {"Pt100_Zone_5","Pass"}, //4
- {"Pt100_Zone_6","Pass"}, //5
- {"Pt100_Zone_7","Pass"}, //6
- {"Pt100_Zone_8","Pass"}, //7
- {"Pt100_Zone_9","Pass"}, //8
- {"Pt100_Zone_10","Pass"}, //9
- {"Pt100_Zone_11","Pass"}, //10
- {"Pt100_Zone_12","Pass"}, //11
-
- {"Current_Zone_1","Pass"}, //12
- {"Current_Zone_2","Pass"}, //13
- {"Current_Zone_3","Pass"}, //14
- {"Current_Zone_4","Pass"}, //15
- {"Current_Zone_5","Pass"}, //16
- {"Current_Zone_6","Pass"}, //17
- {"Current_Zone_7","Pass"}, //18
- {"Current_Zone_8","Pass"}, //19
- {"Current_Zone_9","Pass"}, //20
- {"Current_Zone_10","Pass"}, //21
- {"Current_Zone_11","Pass"}, //22
- {"Current_Zone_12","Pass"}, //23
-
- {"Break_Zone_1","Pass"}, //24
- {"Break_Zone_2","Pass"}, //25
- {"Break_Zone_3","Pass"}, //26
- {"Break_Zone_4","Pass"}, //27
- {"Break_Zone_5","Pass"}, //28
- {"Break_Zone_6","Pass"}, //29
- {"Break_Zone_7","Pass"}, //30
- {"Break_Zone_8","Pass"}, //31
- {"Break_Zone_9","Pass"}, //32
- {"Break_Zone_10","Pass"}, //33
- {"Break_Zone_11","Pass"}, //34
- {"Break_Zone_12","Pass"}, //35
-
- {"Magnet ","Not Test"}, //36
- {"LS_REAR","Not Test"}, //37
- {"LS_FRONT","Not Test"}, //38
- {"DH_LID_Motor","Not Test"}, //39
-
- {"EEPROM ","Pass"}, //40
-
- {"ACTUATOR_IN","Not Test"}, //41
- {"LS_IN_UP","Not Test"}, //42
- {"LS_IN_DN","Not Test"}, //43
- {"ACTUATOR_OUT","Not Test"}, //44
- {"LS_OUT_UP","Not Test"}, //45
- {"LS_OUT_DN","Not Test"}, //46
-
-
- };
-
-
-
-//--------------------------------------------------------------------------------
-
-public Task<decimal> NewDyeHead_test( Action<string> settext, CancellationToken cancellationToken, string SN, string Location)
-{
- Task<decimal> task = null;
- // Start a task and return it
- task = Task.Run(() =>
- {
- stubManager.Write("S/N:" +SN+ "\n");
- stubManager.Write("Location:" +Location+ "\n");
-
- copy_table (New_DyeHead_UNDER_TEST,Units_status_New_DyeHead);
-
- DialogResult result1 = MessageBox.Show("Make shure, Dyehead is not hot", "Warning",MessageBoxButtons.OKCancel);
- if(result1 == DialogResult.Cancel)
- {
- stubManager.AppendToFile(File_Name1,"Dyehead is too hot \tFail");
- stubManager.Write("Dyehead is too hot \tFail\n");
- return 0 ;
- }
- else
- {
-
-//------------------------------- start test -----------
- settext("Test Magnet Motor LS");
- Test_Magnet_Motor_LS_New_DyeHead();
- settext("Test heaters &pt100");
- Test_heaters_pt100 ();
- settext("Test Head EEPROM");
- Test_Head_EEPROM(SN);
- settext("Test Actuator In");
- Test_Actuator_in();
- settext("Test Actuator Out");
- Test_Actuator_out();
- Status=write_to_file(SN,Location,DyeHead_UNDER_TEST,"Dyehead");
-
- settext("End Test");
- }
- decimal result = 0;
-
- return result;
- });
- return task;
-}
-
-//-------------------------------------------------------------
- int Test_Actuator_in()
-{
- Int32 temp;
- int i=0;
-
- DialogResult result = MessageBox.Show("Make shure, ACTUATOR-IN is down", "Warning",MessageBoxButtons.OKCancel);
- if(result == DialogResult.Cancel)
- {
- Units_status[41,1]="Fail";
- stubManager.Write("ACTUATOR-IN is Up\n");
- return 0;
- }
-//---------------------- move ACTUATOR-IN Up ----------------------------
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,ACTDIR_ON); // DIR=1
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,ACTIN_ON); // act_in enable
- delay(10);
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,ACTIN_OFF); // act_in disable
- stubManager.Write("ACTUATOR-IN moving Up\n");
-
- temp = 1;
- i=0;
- while ((temp != 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec
- {
- temp=read_pio (ACTIN_EN); // read ACTIN_EN
- delay(50);
- i++;
- }
-
- if(i == 200)
- {
- Units_status[41,1]="Fail";
- stubManager.Write("CTUATOR-IN is not moving Up\n");
- return 0;
- }
-
- DialogResult result2 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.OKCancel);
- if(result2 == DialogResult.Cancel)
- {
- Units_status[42,1]="Fail";
- stubManager.Write("LS_IN_UP Not calibrate\n");
- return 0;
- }
- Units_status[41,1]="Pass";
- Units_status[42,1]="Pass";
-//---------------------- move ACTUATOR-IN Dn ----------------------------
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,ACTDIR_OFF); // DIR=0
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,ACTIN_ON); // act_in enable
- delay(10);
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,ACTIN_OFF); // act_in disable
- stubManager.Write("ACTUATOR-IN moving Dn\n");
-
- temp = 1;
- i=0;
- while ((temp != 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec
- {
- temp=read_pio (ACTIN_EN); // read ACTIN_EN
- delay(50);
- i++;
- }
-
- if(i == 200)
- {
- Units_status[41,1]="Fail";
- stubManager.Write("CTUATOR-IN is not moving Down\n");
- return 0;
- }
-
- DialogResult result3 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.OKCancel);
- if(result3 == DialogResult.Cancel)
- {
- Units_status[43,1]="Fail";
- stubManager.Write("LS_IN_Down Not calibrate\n");
- return 0;
- }
- Units_status[43,1]="Pass";
- return 0;
-
-}
-//-------------------------------------------------------------
- int Test_Actuator_out()
-{
- Int32 temp;
- int i=0;
-
- DialogResult result = MessageBox.Show("Make shure, ACTUATOR-OUT is down", "Warning",MessageBoxButtons.OKCancel);
- if(result == DialogResult.Cancel)
- {
- Units_status[44,1]="Fail";
- stubManager.Write("ACTUATOR-OUT is Up\n");
- return 0;
- }
-//---------------------- move ACTUATOR-OUT Up ----------------------------
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,ACTDIR_ON); // DIR=1
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,ACTOUT_ON); // act_OUT enable
- delay(10);
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,ACTOUT_OFF); // act_OUT disable
- stubManager.Write("ACTUATOR-OUT moving Up\n");
-
- temp = 1;
- i=0;
- while ((temp != 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec
- {
- temp=read_pio (ACTOUT_EN); // read ACTOUT_EN
- delay(50);
- i++;
- }
-
- if(i == 200)
- {
- Units_status[44,1]="Fail";
- stubManager.Write("CTUATOR-OUT is not moving Up\n");
- return 0;
- }
-
- DialogResult result2 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.OKCancel);
- if(result2 == DialogResult.Cancel)
- {
- Units_status[45,1]="Fail";
- stubManager.Write("LS_OUT_UP Not calibrate\n");
- return 0;
- }
- Units_status[44,1]="Pass";
- Units_status[45,1]="Pass";
-//---------------------- move ACTUATOR-OUT Dn ----------------------------
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,ACTDIR_OFF); // DIR=0
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,ACTOUT_ON); // act_out enable
- delay(10);
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,ACTOUT_OFF); // act_out disable
- stubManager.Write("ACTUATOR-OUT moving Dn\n");
-
- temp = 1;
- i=0;
- while ((temp != 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec
- {
- temp=read_pio (ACTOUT_EN); // read ACTOUT_EN
- delay(50);
- i++;
- }
-
- if(i == 200)
- {
- Units_status[44,1]="Fail";
- stubManager.Write("CTUATOR-OUT is not moving Down\n");
- return 0;
- }
-
- DialogResult result3 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.OKCancel);
- if(result3 == DialogResult.Cancel)
- {
- Units_status[46,1]="Fail";
- stubManager.Write("LS_OUT_Down Not calibrate\n");
- return 0;
- }
- Units_status[46,1]="Pass";
- return 0;
-
-}
-
-
-
-//--------------------------------------------
- int Test_Magnet_Motor_LS_New_DyeHead()
-{
- Int32 temp;
- int i=0;
-//---------------------- open Magnet ----------------------------
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,MGNET_OPEN); // turn magnet on
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,MGNET_EN); // magnet enable
- stubManager.Write("Magnet is Open\n");
- delay(1000);
-//---------------------- chekc Magnet is open ----------------------------
- temp=read_pio (LS_UPPER); // read LS_UPPER
- if (temp != 0)
- {
- Units_status[36,1]="Fail";
- stubManager.Write("Magnet is close\n");
- return 0;
- }
- DialogResult result = MessageBox.Show("Make shure, Magnet is open", "Warning",MessageBoxButtons.OKCancel);
- if(result == DialogResult.Cancel)
- {
- Units_status[36,1]="Fail";
- stubManager.Write("Magnet is close\n");
- return 0;
- }
-//---------------------- Move DyeingHead Lid Motor rear----------------------------
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DyeingHeadLid_Motor, true, 250);
- stubManager.Write("*** Open Lid Head \n");
-
- temp = 0;
- i=0;
- while ((temp == 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec
- {
- temp=read_pio (LS_REAR); // read LS_REAR
- delay(50);
- i++;
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor,3); //stop motor
- if(i == 200)
- {
- Units_status[37,1]="Fail";
- Units_status[39,1]="Fail";
- stubManager.Write("LS_REAR Not calibrate\n");
- return 0;
- }
- DialogResult result2 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.OKCancel);
- if(result2 == DialogResult.Cancel)
- {
- Units_status[37,1]="Fail";
- Units_status[39,1]="Fail";
- stubManager.Write("LS_REAR Not calibrate\n");
- return 0;
- }
- Units_status[37,1]="Pass";
-//---------------------- Move DyeingHead Lid Motor front----------------------------
- stubManager.Write("*** Close Lid Head \n");
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DyeingHeadLid_Motor, false, 250);
- temp = 0;
- i=0;
- while ((temp == 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec
- {
- temp=read_pio (LS_FRONT); // read LS_FRONT
- delay(50);
- i++;
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor,3); //stop motor
- if(i == 200)
- {
- Units_status[38,1]="Fail";
- stubManager.Write("LS_FRONT Not calibrate\n");
- return 0;
- }
-
- DialogResult result3 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.OKCancel);
- if(result3 == DialogResult.Cancel)
- {
- Units_status[38,1]="Fail";
- stubManager.Write("LS_FRONT Not calibrate\n");
- return 0;
- }
- Units_status[37,1]="Pass";
- Units_status[38,1]="Pass";
-//---------------------- Close Magnet ----------------------------
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,MGNET_CLOSE); // turn magnet off
- delay(2000);
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,MGNET_DIS); // magnet Disable
-
- stubManager.Write("Magnet is Close\n");
- delay(1000);
-//---------------------- chekc Magnet is close ----------------------------
- temp=read_pio (LS_UPPER); // read LS_UPPER
- if (temp == 0)
- {
- Units_status[36,1]="Fail";
- stubManager.Write("Magnet is open\n");
- return 0;
- }
- DialogResult result4 = MessageBox.Show("Make shure, Magnet is close", "Warning",MessageBoxButtons.OKCancel);
- if(result4 == DialogResult.Cancel)
- {
- Units_status[36,1]="Fail";
- stubManager.Write("Magnet is open\n");
- return 0;
- }
- Units_status[36,1]="Pass";
- stubManager.Write("Magnet is close\n");
- return 0;
-}
-
-
-//------------------------------------
-public int Test_new_heaters_pt100()
-{
-
-// uint utemp=0;
- Int32 temp=0;
- float ftemp=0;
- float ftemp1=0;
- float current=0;
- Double current_sense;
-
- for (Int32 i = 0; i < 12; i++)
- {
- Int32 tdly=10000;
-//---------------------- get tempurature of heaters----------------------------
- temp= 12+i/2+(i%2)*8; //HZone_1=12
- //HZone_2=20
- //HZone_3=13
- //HZone_4=21
- //HZone_5=14
- //HZone_6=22
- //HZone_7=15
- //HZone_8=23
- //HZone_9=16
- //HZone_10=24
- //HZone_11=17
- //HZone_11=25
- var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" , temp); //get temperature from the buffer
- ftemp = (float)response.TemperatureCMultBy100;
- ftemp = ftemp / 100;
-
- if ((ftemp>50)|| (ftemp<15))
- {
- Units_status[i,1]="Fail";
- tdly=1000;
-
- }
- stubManager.Write("Zone-"+(i+1)+ "\t" + ftemp.ToString("F2")+"°C\n");
-//---------------------- get current of heaters ----------------------------
- var response1 = stubManager.Run<StubMidTankPressureSensorResponse>("StubMidTankPressureSensorRequest" ,0x8000 + i); // get current
- current_sense=response1.Pressure;
- if (current_sense>0.1)
- {
- Units_status[i+12,1]="Fail";
- }
- stubManager.Write("current is "+(i+1)+ "\t" + current_sense +"\n");
-//---------------------- get Break of heaters ----------------------------
- var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,0x440000 +(i/8)*0x100+(1<<(i&7))); // read break
- temp = (Int32) (response2.Progress);
- if ((temp & (1<<(i&7))) !=0) //if break ok
- {
- Units_status[i+24,1]="Fail";
- stubManager.Write("Break Zone "+(i+1)+ "\t is Off\n");
- }
- else
- {
- stubManager.Write("Break Zone "+(i+1)+ "\t is Off\n");
- }
-//---------------------- turn heater on ----------------------------
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,0x400200 +(i/8)*0x100+(1<<(i&7))); // turn heater on
- stubManager.Write("Heater - "+(i+1)+ "\t is On\n");
- delay(2000); //delay 20 second
-//---------------------- get current of heaters ----------------------------
- var response3 = stubManager.Run<StubMidTankPressureSensorResponse>("StubMidTankPressureSensorRequest" ,0x8000 + i); // get current
- current_sense=response3.Pressure;
- if ((current_sense<1.1) ||(current_sense>1.4) ) //if current not 1.25A
- {
- Units_status[i+12,1]="Fail";
- }
- stubManager.Write("current is "+(i+1)+ "\t" + current_sense +"\n");
-//---------------------- get Break of heaters ----------------------------
- var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,0x440000 +(i/8)*0x100+(1<<(i&7))); // read break
- temp = (Int32) (response4.Progress);
- if ((temp & (1<<(i&7))) !=0) //if break ok
- {
- Units_status[i+24,1]="Fail";
- stubManager.Write("Break Zone "+(i+1)+ "\t is Off\n");
- }
- else
- {
- stubManager.Write("Break Zone "+(i+1)+ "\t is On\n");
- }
- delay(tdly); //delay 20 second
- temp= 12+i/2+(i%2)*8;
- var response5 = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" , temp); //get temperature from the buffer
- ftemp1 = (float)response5.TemperatureCMultBy100;
- ftemp1 = ftemp1 / 100;
-
- if (((ftemp1-ftemp)<5)|| ((ftemp1-ftemp)>35))
- {
- Units_status[i,1]="Fail";
- }
- stubManager.Write("Zone-"+(i+1)+ "after heating is \t" + ftemp1.ToString("F2")+"°C\n");
-//---------------------- turn heater off ----------------------------
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,0x400200 +(i/8)*0x100); // turn heater off
- stubManager.Write("Heater - "+(i+1)+ "\t is Off\n");
-
- }
- return 0;
-}
-
-Int32 read_pio(Int32 i2c_input)
-{
- Int32 temp=0;
- var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,i2c_input); // read break
- temp = (Int32) (response.Progress);
- temp =temp & (i2c_input& 0xff); //if break ok
- return temp;
-}
-//end mati
-
- //enable_all_channel();
-public int Test_Head_EEPROM(string s_n)
-{
-
- enable_channel(Head_Mux_Channel_ID); // Chanel 0-7 => Disp0enser 0-7
-
- Write_EEPROM(0xA0,s_n);
- delay(20); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet )
-
- adc_set_for_read_ch(0xA0);
- //Thread.Sleep(1); //Sleep for 10 milli.
- Read_EEPROM(0xA0);
-
- delay(20); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet )
- return 0;
-
-}
-
-
-
-int enable_channel(int Channel_ID)
-{
- uint Const_temp = 0x01;
-
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID3;
- stubI2CWriteBytesRequest.SlaveAddress = TCA9548A_address;
-
- Const_temp = Const_temp << Channel_ID;
- stubI2CWriteBytesRequest.BytesTWrite.Add(Const_temp);
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
-}
-
-int Write_EEPROM (uint I2C_Slave_Add,string s_n )
-{
-
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID3;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
- //--------------------------------------------------------------
- char[] characters = EEPROM_Header.ToCharArray();
-
- for (int i=0;i<16;i++)
- {
- stubI2CWriteBytesRequest.BytesTWrite.Add(characters[i]); //add header
- }
- characters = s_n.ToCharArray();
-
- for (int i=0;i<16;i++)
- {
- stubI2CWriteBytesRequest.BytesTWrite.Add(characters[i]); //add s/n
- }
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
-}
-
-int Read_EEPROM(uint I2C_Slave_Add)
-{
- StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();
- stubI2CReadBytesRequest.I2CId = I2C_ID3;
- stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add + 1;
- stubI2CReadBytesRequest.NumberOfBytesToRead = 16; // Number of header bytes to read
-
- var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);
- uint temph=0;
- char[] characters = EEPROM_Header.ToCharArray();
-
- for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++)
- {
- if (characters[i]!=response1.ReadBytes[i]);
- Units_status[40,1]="Fail";
- }
- stubManager.Write("EEprom "+ Units_status[40,1]+"\n");
-
- return 1;
-}
diff --git a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/stapele_span.cs b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/stapele_span.cs
deleted file mode 100644
index 656786ad7..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/stapele_span.cs
+++ /dev/null
@@ -1,631 +0,0 @@
-using System;
-using System.Text;
-using System.IO;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-const int New_Stapele_Span_UNDER_TEST=47;
-const Int32 MGNET_OPEN=0x420301;
-const Int32 MGNET_EN=0x420280;
-const Int32 MGNET_CLOSE=0x420300;
-const Int32 MGNET_DIS=0x420200;
-const Int32 ACTDIR_ON=0x460280;
-const Int32 ACTDIR_OFF=0x460200;
-
-const Int32 ACTIN_ON=0x460308;
-const Int32 ACTOUT_ON=0x460304;
-
-const Int32 ACTIN_OFF=0x46030C;
-const Int32 ACTOUT_OFF=0x46030C;
-
-
-
-const Int32 LS_FRONT=0X460110;
-const Int32 LS_REAR=0X460120;
-const Int32 LS_UPPER=0X460140;
-const Int32 LS_SPARE=0X460180;
-const Int32 ACTIN_EN=0X460101;
-const Int32 ACTOUT_EN=0X460102;
-
-
-
-string EEPROM_Header="Header_1 "; //16 characters
-
-int Head_Mux_Channel_ID = 4; //Head MUX channel
-
-
-//float [] Stapele_SpanTemp = new float[6] ;
-
-string [,] Units_status_New_Stapele_Span = new string[New_Stapele_Span_UNDER_TEST,2] {
- {"Pt100_HTIN","Pass"}, //0
- {"Pt100_HTOUT","Pass"}, //1
-
- {"Current_HTIN1","Pass"}, //2
- {"Current_HTIN2","Pass"}, //3
- {"Current_HTIN3","Pass"}, //4
- {"Current_HTIN4","Pass"}, //5
- {"Current_HTOUT1","Pass"}, //6
- {"Current_HTOUT2","Pass"}, //7
- {"Current_HTOUT3","Pass"}, //8
- {"Current_HTOUT4","Pass"}, //9
-
- {"Break_HTIN1","Pass"}, //10
- {"Break_HTIN2","Pass"}, //11
- {"Break_HTIN3","Pass"}, //12
- {"Break_HTIN4","Pass"}, //13
- {"Break_HTOUT1","Pass"}, //14
- {"Break_HTOUT2","Pass"}, //15
- {"Break_HTOUT3","Pass"}, //16
- {"Break_HTOUT4","Pass"}, //17
-
- {"Fan_in","Not Test"}, //18
- {"Fan_out","Not Test"}, //19
-
-
-
- {"Magnet ","Not Test"}, //18
- {"LS_REAR","Not Test"}, //19
- {"LS_FRONT","Not Test"}, //2
- {"DH_LID_Motor","Not Test"}, //39
-
- {"EEPROM ","Pass"}, //40
-
- {"ACTUATOR_IN","Not Test"}, //41
- {"LS_IN_UP","Not Test"}, //42
- {"LS_IN_DN","Not Test"}, //43
- {"ACTUATOR_OUT","Not Test"}, //44
- {"LS_OUT_UP","Not Test"}, //45
- {"LS_OUT_DN","Not Test"}, //46
-
-
- };
-
-
-
-//--------------------------------------------------------------------------------
-
-public Task<decimal> NewStapele_Span_test( Action<string> settext, CancellationToken cancellationToken, string SN, string Location)
-{
- Task<decimal> task = null;
- // Start a task and return it
- task = Task.Run(() =>
- {
- stubManager.Write("S/N:" +SN+ "\n");
- stubManager.Write("Location:" +Location+ "\n");
-
- copy_table (New_Stapele_Span_UNDER_TEST,Units_status_New_Stapele_Span);
-
- DialogResult result1 = MessageBox.Show("Make shure, Stapele_Span is not hot", "Warning",MessageBoxButtons.OKCancel);
- if(result1 == DialogResult.Cancel)
- {
- stubManager.AppendToFile(File_Name1,"Stapele_Span is too hot \tFail");
- stubManager.Write("Stapele_Span is too hot \tFail\n");
- return 0 ;
- }
- else
- {
-
-//------------------------------- start test -----------
- settext("Test Magnet Motor LS");
- Test_Magnet_Motor_LS_New_Stapele_Span();
- settext("Test blowers &pt100");
- Test_blowers_pt100 ();
- settext("Test Head EEPROM");
- Test_Head_EEPROM(SN);
- settext("Test Actuator In");
- Test_Actuator_in();
- settext("Test Actuator Out");
- Test_Actuator_out();
- Status=write_to_file(SN,Location,Stapele_Span_UNDER_TEST,"Stapele_Span");
-
- settext("End Test");
- }
- decimal result = 0;
-
- return result;
- });
- return task;
-}
-
-//-------------------------------------------------------------
- int Test_Actuator_in()
-{
- Int32 temp;
- int i=0;
-
- DialogResult result = MessageBox.Show("Make shure, ACTUATOR-IN is down", "Warning",MessageBoxButtons.OKCancel);
- if(result == DialogResult.Cancel)
- {
- Units_status[41,1]="Fail";
- stubManager.Write("ACTUATOR-IN is Up\n");
- return 0;
- }
-//---------------------- move ACTUATOR-IN Up ----------------------------
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,ACTDIR_ON); // DIR=1
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,ACTIN_ON); // act_in enable
- delay(10);
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,ACTIN_OFF); // act_in disable
- stubManager.Write("ACTUATOR-IN moving Up\n");
-
- temp = 1;
- i=0;
- while ((temp != 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec
- {
- temp=read_pio (ACTIN_EN); // read ACTIN_EN
- delay(50);
- i++;
- }
-
- if(i == 200)
- {
- Units_status[41,1]="Fail";
- stubManager.Write("CTUATOR-IN is not moving Up\n");
- return 0;
- }
-
- DialogResult result2 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.OKCancel);
- if(result2 == DialogResult.Cancel)
- {
- Units_status[42,1]="Fail";
- stubManager.Write("LS_IN_UP Not calibrate\n");
- return 0;
- }
- Units_status[41,1]="Pass";
- Units_status[42,1]="Pass";
-//---------------------- move ACTUATOR-IN Dn ----------------------------
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,ACTDIR_OFF); // DIR=0
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,ACTIN_ON); // act_in enable
- delay(10);
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,ACTIN_OFF); // act_in disable
- stubManager.Write("ACTUATOR-IN moving Dn\n");
-
- temp = 1;
- i=0;
- while ((temp != 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec
- {
- temp=read_pio (ACTIN_EN); // read ACTIN_EN
- delay(50);
- i++;
- }
-
- if(i == 200)
- {
- Units_status[41,1]="Fail";
- stubManager.Write("CTUATOR-IN is not moving Down\n");
- return 0;
- }
-
- DialogResult result3 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.OKCancel);
- if(result3 == DialogResult.Cancel)
- {
- Units_status[43,1]="Fail";
- stubManager.Write("LS_IN_Down Not calibrate\n");
- return 0;
- }
- Units_status[43,1]="Pass";
- return 0;
-
-}
-//-------------------------------------------------------------
- int Test_Actuator_out()
-{
- Int32 temp;
- int i=0;
-
- DialogResult result = MessageBox.Show("Make shure, ACTUATOR-OUT is down", "Warning",MessageBoxButtons.OKCancel);
- if(result == DialogResult.Cancel)
- {
- Units_status[44,1]="Fail";
- stubManager.Write("ACTUATOR-OUT is Up\n");
- return 0;
- }
-//---------------------- move ACTUATOR-OUT Up ----------------------------
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,ACTDIR_ON); // DIR=1
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,ACTOUT_ON); // act_OUT enable
- delay(10);
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,ACTOUT_OFF); // act_OUT disable
- stubManager.Write("ACTUATOR-OUT moving Up\n");
-
- temp = 1;
- i=0;
- while ((temp != 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec
- {
- temp=read_pio (ACTOUT_EN); // read ACTOUT_EN
- delay(50);
- i++;
- }
-
- if(i == 200)
- {
- Units_status[44,1]="Fail";
- stubManager.Write("CTUATOR-OUT is not moving Up\n");
- return 0;
- }
-
- DialogResult result2 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.OKCancel);
- if(result2 == DialogResult.Cancel)
- {
- Units_status[45,1]="Fail";
- stubManager.Write("LS_OUT_UP Not calibrate\n");
- return 0;
- }
- Units_status[44,1]="Pass";
- Units_status[45,1]="Pass";
-//---------------------- move ACTUATOR-OUT Dn ----------------------------
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,ACTDIR_OFF); // DIR=0
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,ACTOUT_ON); // act_out enable
- delay(10);
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,ACTOUT_OFF); // act_out disable
- stubManager.Write("ACTUATOR-OUT moving Dn\n");
-
- temp = 1;
- i=0;
- while ((temp != 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec
- {
- temp=read_pio (ACTOUT_EN); // read ACTOUT_EN
- delay(50);
- i++;
- }
-
- if(i == 200)
- {
- Units_status[44,1]="Fail";
- stubManager.Write("CTUATOR-OUT is not moving Down\n");
- return 0;
- }
-
- DialogResult result3 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.OKCancel);
- if(result3 == DialogResult.Cancel)
- {
- Units_status[46,1]="Fail";
- stubManager.Write("LS_OUT_Down Not calibrate\n");
- return 0;
- }
- Units_status[46,1]="Pass";
- return 0;
-
-}
-
-
-
-//--------------------------------------------
- int Test_Magnet_Motor_LS_New_Stapele_Span()
-{
- Int32 temp;
- int i=0;
-//---------------------- open Magnet ----------------------------
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,MGNET_OPEN); // turn magnet on
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,MGNET_EN); // magnet enable
- stubManager.Write("Magnet is Open\n");
- delay(1000);
-//---------------------- chekc Magnet is open ----------------------------
- temp=read_pio (LS_UPPER); // read LS_UPPER
- if (temp != 0)
- {
- Units_status[36,1]="Fail";
- stubManager.Write("Magnet is close\n");
- return 0;
- }
- DialogResult result = MessageBox.Show("Make shure, Magnet is open", "Warning",MessageBoxButtons.OKCancel);
- if(result == DialogResult.Cancel)
- {
- Units_status[36,1]="Fail";
- stubManager.Write("Magnet is close\n");
- return 0;
- }
-//---------------------- Move DyeingHead Lid Motor rear----------------------------
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DyeingHeadLid_Motor, true, 250);
- stubManager.Write("*** Open Lid Head \n");
-
- temp = 0;
- i=0;
- while ((temp == 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec
- {
- temp=read_pio (LS_REAR); // read LS_REAR
- delay(50);
- i++;
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor,3); //stop motor
- if(i == 200)
- {
- Units_status[37,1]="Fail";
- Units_status[39,1]="Fail";
- stubManager.Write("LS_REAR Not calibrate\n");
- return 0;
- }
- DialogResult result2 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.OKCancel);
- if(result2 == DialogResult.Cancel)
- {
- Units_status[37,1]="Fail";
- Units_status[39,1]="Fail";
- stubManager.Write("LS_REAR Not calibrate\n");
- return 0;
- }
- Units_status[37,1]="Pass";
-//---------------------- Move DyeingHead Lid Motor front----------------------------
- stubManager.Write("*** Close Lid Head \n");
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DyeingHeadLid_Motor, false, 250);
- temp = 0;
- i=0;
- while ((temp == 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec
- {
- temp=read_pio (LS_FRONT); // read LS_FRONT
- delay(50);
- i++;
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor,3); //stop motor
- if(i == 200)
- {
- Units_status[38,1]="Fail";
- stubManager.Write("LS_FRONT Not calibrate\n");
- return 0;
- }
-
- DialogResult result3 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.OKCancel);
- if(result3 == DialogResult.Cancel)
- {
- Units_status[38,1]="Fail";
- stubManager.Write("LS_FRONT Not calibrate\n");
- return 0;
- }
- Units_status[37,1]="Pass";
- Units_status[38,1]="Pass";
-//---------------------- Close Magnet ----------------------------
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,MGNET_CLOSE); // turn magnet off
- delay(2000);
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,MGNET_DIS); // magnet Disable
-
- stubManager.Write("Magnet is Close\n");
- delay(1000);
-//---------------------- chekc Magnet is close ----------------------------
- temp=read_pio (LS_UPPER); // read LS_UPPER
- if (temp == 0)
- {
- Units_status[36,1]="Fail";
- stubManager.Write("Magnet is open\n");
- return 0;
- }
- DialogResult result4 = MessageBox.Show("Make shure, Magnet is close", "Warning",MessageBoxButtons.OKCancel);
- if(result4 == DialogResult.Cancel)
- {
- Units_status[36,1]="Fail";
- stubManager.Write("Magnet is open\n");
- return 0;
- }
- Units_status[36,1]="Pass";
- stubManager.Write("Magnet is close\n");
- return 0;
-}
-
-
-//------------------------------------
-public int Test_blowers_pt100_fan()
-{
-
-// uint utemp=0;
- Int32 temp=0;
- float ftemp=0;
- float ftemp1=0;
- float current=0;
- Double current_sense;
-
- for (Int32 i = 0; i < 2; i++)
- {
- //---------------------- check fans----------------------------
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfac0+i, 0xff);//Fan Click Head Card , Fan 1 Setting - 0xFF Full PWM 0x80 = 50% FF = 100% 0 - STOP
- delay(2000); //delay 2 second
-
- var response5 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfac0+i, 0xff);//Fan Click Head Card , Fan 1 Setting - 0xFF Full PWM 0x80 = 50% FF = 100% 0 - STOP
- temp = (Int32) (response.Progress);
- temp =temp & (response.Progress & 0xffff); //
- if (temp>0xEC0)
- {
- Units_status[18+i,1]="Fail";
- return 0;
- }
- Units_status[18+i,1]="Pass";
-
- //---------------------- get tempurature of heaters----------------------------
- if (i==0)
- temp=18;
- else
- temp=16;
- var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" , 0x8000 +temp); //get temperature from the buffer
- ftemp = (float)response.TemperatureCMultBy100;
- ftemp = ftemp / 100;
-
- if ((ftemp>50)|| (ftemp<15))
- {
- Units_status[i,1]="Fail";
- tdly=1000;
-
- }
- stubManager.Write("Hit-"+(i+1)+ "\t" + ftemp.ToString("F2")+"°C\n");
-
- for (Int32 j = 0; j < 4; j++)
- {
- Int32 tdly=10000;
- //---------------------- get current of heaters ----------------------------
- var response1 = stubManager.Run<StubMidTankPressureSensorResponse>("StubMidTankPressureSensorRequest" ,0x8000 +12 + 4*i +j); // get current
- current_sense=2*response1.Pressure;
- if (current_sense>0.1)
- {
- Units_status[2+j+4*i,1]="Fail";
- }
- stubManager.Write("current is "+(j+1+4*i )+ "\t" + current_sense +"\n");
- //---------------------- get Break of heaters ----------------------------
- var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,0x440000 +0x20000*i +(1-i)*0x100); // read break
- temp = (Int32) (response2.Progress);
- if ((temp & (1<<((1-i)*4+j))) !=0) //if break ok
- {
- Units_status[10+j+4*i,1]="Fail";
- stubManager.Write("Break Zone "+(i*4+j+1)+ "\t is Off\n");
- }
- else
- {
- stubManager.Write("Break Zone "+(i*4+j+1)+ "\t is On\n");
- }
- //---------------------- turn heater on ----------------------------
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,0x400300 +0x1fff00*i +(1<<((1-i)*4+j))); // turn heater on
- stubManager.Write("Heater - "+(i*4+j+1)+ "\t is On\n");
- delay(2000); //delay 2 second
- //---------------------- get current of heaters ----------------------------
- var response3 = stubManager.Run<StubMidTankPressureSensorResponse>("StubMidTankPressureSensorRequest" ,0x8000 + +12 + 4*i +j); // get current
- current_sense=2*response3.Pressure;
- if ((current_sense<1.1) ||(current_sense>1.4) ) //if current not 2.5A
- {
- Units_status[2+j+4*i,1]="Fail";
- }
- stubManager.Write("current is "+(j+1+4*i )+"\t" + current_sense +"\n");
- //---------------------- get Break of heaters ----------------------------
- var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,0x440000 +0x20000*i +(1-i)*0x100); // read break
- temp = (Int32) (response4.Progress);
- if ((temp & (1<<((1-i)*4+j))) !=0) //if break ok
- {
- Units_status[10+j+4*i,1]="Fail";
- stubManager.Write("Break Zone "+(i*4+j+1)+ "\t is Off\n");
- }
- else
- {
- stubManager.Write("Break Zone "+(i*4+j+1)+ "\t is On\n");
- }
-
- delay(tdly); //delay 20 second
- //---------------------- turn heater off ----------------------------
-
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,0x400300 +0x1fff00*i ); // turn heater on
- stubManager.Write("Heater - "+(i*4+j+1)+ "\t is Off\n");
- }
- //---------------------- get tempurature of heaters----------------------------
- if (i==0)
- temp=18;
- else
- temp=16;
- var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" , 0x8000 +temp); //get temperature from the buffer
- ftemp1 = (float)response.TemperatureCMultBy100;
- ftemp1 = ftemp1 / 100;
-
- if (((ftemp1-ftemp)<5)|| ((ftemp1-ftemp)>35))
- {
- Units_status[i,1]="Fail";
- }
- stubManager.Write("Zone-"+(i+1)+ "after heating is \t" + ftemp1.ToString("F2")+"°C\n");
-
- //---------------------- check fan off----------------------------
-
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfac0+i, 0);//Fan Click Head Card , Fan 1 Setting - 0xFF Full PWM 0x80 = 50% FF = 100% 0 - STOP
- delay(2000); //delay 2 second
- var response6 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfac0+i, 0);//Fan Click Head Card , Fan 1 Setting - 0xFF Full PWM 0x80 = 50% FF = 100% 0 - STOP
- temp = (Int32) (response6.Progress);
- temp =temp & (response.Progress & 0xffff); //
- if (temp<0x0xFF00)
- {
- Units_status[18+i,1]="Fail";
- return 0;
- }
-
- }
- return 0;
-}
-
-Int32 read_pio(Int32 i2c_input)
-{
- Int32 temp=0;
- var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,i2c_input); // read break
- temp = (Int32) (response.Progress);
- temp =temp & (i2c_input& 0xff); //if break ok
- return temp;
-}
-//end mati
-
- //enable_all_channel();
-public int Test_Head_EEPROM(string s_n)
-{
-
- enable_channel(Head_Mux_Channel_ID); // Chanel 0-7 => Disp0enser 0-7
-
- Write_EEPROM(0xA0,s_n);
- delay(20); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet )
-
- adc_set_for_read_ch(0xA0);
- //Thread.Sleep(1); //Sleep for 10 milli.
- Read_EEPROM(0xA0);
-
- delay(20); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet )
- return 0;
-
-}
-
-
-
-int enable_channel(int Channel_ID)
-{
- uint Const_temp = 0x01;
-
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID3;
- stubI2CWriteBytesRequest.SlaveAddress = TCA9548A_address;
-
- Const_temp = Const_temp << Channel_ID;
- stubI2CWriteBytesRequest.BytesTWrite.Add(Const_temp);
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
-}
-
-int Write_EEPROM (uint I2C_Slave_Add,string s_n )
-{
-
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID3;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
- //--------------------------------------------------------------
- char[] characters = EEPROM_Header.ToCharArray();
-
- for (int i=0;i<16;i++)
- {
- stubI2CWriteBytesRequest.BytesTWrite.Add(characters[i]); //add header
- }
- characters = s_n.ToCharArray();
-
- for (int i=0;i<16;i++)
- {
- stubI2CWriteBytesRequest.BytesTWrite.Add(characters[i]); //add s/n
- }
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
-}
-
-int Read_EEPROM(uint I2C_Slave_Add)
-{
- StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();
- stubI2CReadBytesRequest.I2CId = I2C_ID3;
- stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add + 1;
- stubI2CReadBytesRequest.NumberOfBytesToRead = 16; // Number of header bytes to read
-
- var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);
- uint temph=0;
- char[] characters = EEPROM_Header.ToCharArray();
-
- for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++)
- {
- if (characters[i]!=response1.ReadBytes[i]);
- Units_status[40,1]="Fail";
- }
- stubManager.Write("EEprom "+ Units_status[40,1]+"\n");
-
- return 1;
-}
diff --git a/Software/Stubs Collection/stubs/Scripts/Main card Watchdog test.cs b/Software/Stubs Collection/stubs/Scripts/Main card Watchdog test.cs
deleted file mode 100644
index 3db075678..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Main card Watchdog test.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-
-//"Set WFCF Value
-ProgressRequest progressRequest = new ProgressRequest();
-progressRequest.Amount = 0xAD9;
-progressRequest.Delay = 0;
-
-var response = stubManager.Run<ProgressResponse>(progressRequest);
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/MidTank Calibration.pproj b/Software/Stubs Collection/stubs/Scripts/MidTank Calibration.pproj
deleted file mode 100644
index ce80c8a70..000000000
--- a/Software/Stubs Collection/stubs/Scripts/MidTank Calibration.pproj
+++ /dev/null
@@ -1 +0,0 @@
-{"$id":"1","Name":"MidTank Calibration","Description":null,"Scripts":{"$id":"2","$values":[{"$id":"3","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Entities;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\nusing System.IO;\r\nusing System.Windows.Forms;\r\nusing Tango.PMR.EmbeddedParameters;\r\n\r\npublic class Program\r\n{\r\nconst double\tMIN_SLOP=0.7;\r\nconst double\tMAX_SLOP=1.4;\r\nconst double\tERROR_SLOP=-1;\r\nconst double\tMIN_50cc_on_volt=2.3;\r\nconst double\tMAX_50cc_on_volt=3.2;\r\nconst double\tERROR_50cc_on_volt=-1;\r\n\r\nint [] Convert_Midtank_No = new Int32 [8] {1,3,5,7,2,4,6,8};\r\nuint [,] ADC_Add_Chnl = new uint [8,2]\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t{0x44,0x20},\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t{0x44,0x08},\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t{0x46,0x80},\r\n\t\t\t\t\t\t\t\t\t\t\t\t{0x46,0x20},\r\n\t\t\t\t\t\t\t\t\t\t\t\t{0x44,0x10},\r\n\t\t\t\t\t\t\t\t\t\t\t\t{0x44,0x04},\r\n\t\t\t\t\t\t\t\t\t\t\t\t{0x46,0x40},\r\n\t\t\t\t\t\t\t\t\t\t\t\t{0x46,0x10},\r\n\t\t\t\t\t\t\t\t\t\t};\r\n\r\n\r\nconst Int32\tF3_VALVE_OUT\t=\t0x600008E2\t;\r\nstring Machine_SN\t;\r\nprivate const string FILE_PATH = @\"C:\\MidTankLog\\\";\r\nstring File_name;\r\ndouble Full_Cartridge=1000;\t// on CC \r\ndouble \tSlop=0.92;\r\n//----------------------\r\nconst Int32 I2C_ID = 2;\r\n//const Int32 I2C_Slave_Add = 0x46; //must be 0x40, 0x44 or 0x46\r\n//----------------------\r\n\r\n\r\nprivate IProcedureContext context;\r\n\r\n\r\n\r\n\r\n public void OnExecute(IProcedureContext context)\r\n {\r\n \r\n\r\n\tInt32 Timout ;\r\n\tInt32 Interval;\r\n\tInt32 midtankno = 0;\r\n\tdouble Full_Point=0;\t\t\t//on Voltage\r\n\tdouble resualt;\r\n\tdouble Sum=0 ;\r\n\tdouble Old_Sum=0 ;\r\n\tdouble Start_Point=0;\r\n\t\r\n\r\n\tif (!Directory.Exists(FILE_PATH))\r\n\t\t{\r\n\t\t\tDirectory.CreateDirectory(FILE_PATH);\r\n\t\t}\t\t\t\r\n\r\n\r\n\r\n var response =context.RequestUserInputFor<String>(\"Enter Midtank S/N: \", \"\");\r\n\tcontext.Write(\"\\n\");\r\n\tMachine_SN = response;\r\n\tcontext.WriteLine(Machine_SN);\r\n\tFile_name= FILE_PATH +Machine_SN + DateTime.Now.ToString(\"MM_dd_yyyy_HH_mm_ss\")+\".csv\";\r\n\tcontext.Write(File_name);\r\n \tcontext.WriteToFile(File_name,\"MidTank S/N:,\" + Machine_SN);\r\n\t\r\n\r\n var response1 =context.RequestUserInputFor<String>(\"Enter Midtank number to calibrate (1-8):\", \"\");\r\n context.WriteLine(response1);\r\n\tmidtankno = Int32.Parse(response1);\r\n \tcontext.AppendToFile(File_name,\"MidTank Number:\\t\" + response1);\r\n\tif (midtankno==8)\r\n\t{\r\n\t\tSlop=1;\r\n\t\tTimout=60;\t\t//60 minutes\r\n\t\tInterval=60;\t//60 second\r\n\t}\r\n\telse\r\n\t{\r\n\t\tSlop=0.92;\r\n\t\tTimout=10*2;\t\t//10 minutes\r\n\t\tInterval=30;\t//30 second\r\n\r\n\t}\r\n var response10 =context.RequestUserInputFor<String>(\"Enter Cartridge Valume on CC (500-1500):\", \"\");\r\n context.WriteLine(response10);\r\n\tFull_Cartridge = double.Parse(response10);\r\n \tcontext.AppendToFile(File_name,\"Cartridge Valume:\\t\" + response10);\r\n \tcontext.AppendToFile(File_name,\"Slop value:\\t\" + Slop);\r\n\r\n\r\n\tDialogResult result = MessageBox.Show(\"Are you sure to calibrate Midtank No: \"+ midtankno + \" with \"+ Full_Cartridge +\" CC\" , \"Warning\",MessageBoxButtons.YesNo);\r\n\tif(result == DialogResult.Yes)\r\n\t{\r\n\r\n\r\n\r\n\t\tstring box_msg = \"Please Insert cartridge \";\r\n\r\n\t\tMessageBox.Show(box_msg);\r\n\t\t\r\n\t\topen_valve(midtankno,1,1)\t\t;\t//open Air valve\r\n\t\topen_valve(midtankno,0,1)\t\t;\t//open Ink valve\r\n\t\tInt32 i=0; \r\n\t\twhile (i<Timout)\t\t\t\t\t//check for 15 minitus \r\n\t\t{\r\n\t\t\tSum=0;\r\n\t\t\tfor (Int32 j=0;j<Interval;j++)\r\n\t\t\t{\r\n\t\t\t\tresualt=read_pressure_sensor(midtankno);\r\n\t\t\t\tcontext.AppendToFile(File_name,resualt+\",V\");\r\n\t\t\t\tSum=Sum+resualt;\r\n\t\t\t\tThread.Sleep(1000);\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\tif (i==0) \r\n\t\t\t\tStart_Point=Sum/Interval;\r\n\t\t\t\r\n\t\t\tif (Sum>Old_Sum)\r\n\t\t\t\tOld_Sum=Sum-Old_Sum;\r\n\t\t\telse\r\n\t\t\t\tOld_Sum=Old_Sum-Sum;\r\n\t\t\r\n \r\n\t\t\tif ((check_valve(midtankno,1) != 0) && (check_valve(midtankno,0) != 0))\r\n\t\t\t{\r\n\t\t\t\ti++;\r\n\t\t\t\tif ( Old_Sum <0.02)\t\r\n\t\t\t\t\ti=Timout+1;\t\t//end \r\n\t\t\t\tOld_Sum=Sum;\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\topen_valve(midtankno,1,0)\t\t;\t//open Air valve\r\n\t\t\topen_valve(midtankno,0,0)\t\t;\t//open Ink valve\r\n\t\t\tOld_Sum=0;\r\n\t\t\t\r\n\t\t\t}\t\r\n\t\t}\r\n\t\tFull_Point=Sum/Interval;\r\n\t\t\r\n\r\n\t\tclose_valve(midtankno,1,1)\t\t;\t//close Air valve\r\n\t\tclose_valve(midtankno,0,1)\t\t;\t//close Ink valve\r\n\r\n\t\t\t\r\n\t\tif (insert_slop_t_eeprom(Full_Point, midtankno,Start_Point)==0)\r\n\t\t{\r\n\t\t\t\tbox_msg =\"Turn Power Off and On to finish the calibration.\";\r\n\t\t\t\tMessageBox.Show(box_msg);\r\n\r\n\r\n \tcontext.AddResult(ResultType.Passed, \"Test passed\", \"Test passed.\");\r\n\t\t\t\t\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t\tbox_msg =\"Calibration error\";\r\n\t\t\t\tMessageBox.Show(box_msg);\r\n\r\n\r\n \tcontext.AddResult(ResultType.Failed, \"Test Fail\", \"Test Fail.\");\r\n\t\t\t\t\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\n\r\n\tint\tinsert_slop_t_eeprom( double FullPoint,Int32 midtankno, double StartPoint)\r\n{\r\n//\tcontext.Write(\"\\n \");\r\n\r\n\t\tStartPoint=FullPoint-StartPoint;\r\n\t\tStartPoint=StartPoint/Full_Cartridge;\r\n\t\tif ((StartPoint>0.7 ) && (StartPoint>1.3 ))\r\n\t\t{\r\n\t\t\tMidTankDataSetupRequest midTankDataSetupRequest = new MidTankDataSetupRequest();\r\n\r\n\t\t\tMidTankData midTankData = new MidTankData();\r\n\t\t\tmidTankData.MidTankId = Convert.ToUInt32 (midtankno-1);\r\n\t\t\tmidTankData.InitialOffsetA =FullPoint - (Full_Cartridge/1000-0.1)/Slop;\r\n\t\t\tmidTankData.SlopeB = Slop;\r\n\t\t\t\r\n\t\t\tcontext.Write(\"\\nMidtank No:\" + midtankno + \"=\\tVoltage Zero is =\"+(FullPoint - (Full_Cartridge/1000-0.1)/Slop)+\"\\tSlop=\"+ Slop);\r\n\t\t\tcontext.AppendToFile(File_name,\"\\nMidtank No:\" + midtankno + \"=\\tVoltage Zero is =\"+(FullPoint - (Full_Cartridge/1000-0.1)/Slop)+\"\\tSlop=\"+ Slop);\r\n\r\n\t\t\t\r\n\t\t\tmidTankDataSetupRequest.MidTankInfo.Add(midTankData);\r\n\t\t\r\n\r\n\t\t\tvar response =context.Send<MidTankDataSetupResponse>(midTankDataSetupRequest);\r\n\r\n\t\t\treturn\t0;\r\n\t\t}\r\n\t\telse\r\n\t\t\tcontext.Write(\"\\nError\");\r\n\t\t\tcontext.AppendToFile(File_name,\"\\n Slop Error\");\r\n\t\t\treturn\t1;\r\n\t\r\n\r\n }\r\n\r\n\r\n\r\nint adc_configuration(uint I2C_Slave_Add,uint channel ) \r\n\t{\r\n\tStubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();\r\n\tstubI2CWriteBytesRequest.I2CId = I2C_ID;\r\n\tstubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;\r\n\t\r\n\tUInt32 uInt32 = new UInt32();\r\n\tstubI2CWriteBytesRequest.BytesTWrite.Add(0x00);//Byte 0 to write\r\n\tstubI2CWriteBytesRequest.BytesTWrite.Add(channel);//Byte 1 to Write, must be 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02 or 0x01 for different channels\r\n\tstubI2CWriteBytesRequest.BytesTWrite.Add(0x80);//Byte 2 to Write\r\n\t\r\n\tvar response =context.Send<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);\r\n\t\r\n\treturn 1;\r\n\t}\r\n\r\n\r\nint adc_set_for_read_ch(uint I2C_Slave_Add) \r\n\t{\r\n\tStubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();\r\n\tstubI2CWriteBytesRequest.I2CId = I2C_ID;\r\n\tstubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;\r\n\t\r\n\tUInt32 uInt32 = new UInt32();\r\n\tstubI2CWriteBytesRequest.BytesTWrite.Add(0x01);//Byte 0 to write\r\n\r\n\tvar response =context.Send<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);\r\n\t\r\n\treturn 1;\r\n\t}\r\n\r\n\r\n\r\n\r\ndouble adc_read_ch(uint I2C_Slave_Add) \r\n\t{\r\n\tStubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();\r\n\tstubI2CReadBytesRequest.I2CId = I2C_ID;\r\n\tstubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add;\r\n\tstubI2CReadBytesRequest.NumberOfBytesToRead = 2; // Number of bytes to read\r\n\r\n\tvar response1 =context.Send<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);\r\n\tuint temph=0;\r\n\tuint templ=0;\r\n\tuint temp;\r\n\tdouble calc;\r\n\tdouble calc1;\r\n\tdouble calc2;\r\n\t\t\ttemph=response1.ReadBytes[0];\r\n\t\t\ttempl=response1.ReadBytes[1];\r\n\t\t\ttemp = (temph << 8) | templ;\r\n\t\t\ttemp=temp & 0x0fff;\r\n\t\t\t\t\r\n\t\t\tcalc = (double)temp *2.5 / 4096.0;\r\n\t\t\r\n\t\t\tcalc1 = (1.96- calc) * 4.64 + 1.96;\r\n\t\t\tcontext.Write(\"Vsensor [volts]:\\t\");\r\n\t\t\tcontext.Write(calc1 + \"\\n\");\r\n\r\n\t\r\n\treturn calc1;\r\n\t}\r\n\r\ndouble\t\tread_pressure_sensor(Int32 i )\r\n\t{\r\ndouble resualt =0 ;\r\n\t\t switch (i)\r\n {\r\n case 1:\r\n\t\t\tadc_configuration(0x44,0x20);\t\t//a2d_address 0x44 channel channel 2\r\n\t\t\tadc_set_for_read_ch(0x44);\r\n\t\t\tresualt=adc_read_ch(0x44);\r\n\t\tbreak;\r\n\t\t\r\n\t\tcase 2:\r\n\t\t\tadc_configuration(0x44,0x08);\t\t//a2d_address 0x44 channel channel 4\r\n\t\t\tadc_set_for_read_ch(0x44);\r\n\t\t\tresualt=adc_read_ch(0x44);\r\n\t\tbreak;\r\n\t\t\r\n\t\tcase 3:\r\n\t\t\tadc_configuration(0x46,0x80);\t\t//a2d_address 0x46 channel channel 0\r\n\t\t\tadc_set_for_read_ch(0x46);\r\n\t\t\tresualt=adc_read_ch(0x46);\r\n\t\tbreak;\r\n\t\t\r\n\t\tcase 4:\r\n\t\t\tadc_configuration(0x46,0x20);\t\t//a2d_address 0x46 channel channel 2\r\n\t\t\tadc_set_for_read_ch(0x46);\r\n\t\t\tresualt=adc_read_ch(0x46);\r\n\t\tbreak;\r\n\t\t\r\n\t\tcase 5:\r\n\t\t\tadc_configuration(0x44,0x10);\t\t//a2d_address 0x44 channel channel 3\r\n\t\t\tadc_set_for_read_ch(0x44);\r\n\t\t\tresualt=adc_read_ch(0x44);\r\n\t\tbreak;\r\n\t\t\r\n\t\tcase 6:\r\n\t\t\tadc_configuration(0x44,0x04);\t\t//a2d_address 0x44 channel channel 5\r\n\t\t\tadc_set_for_read_ch(0x44);\r\n\t\t\tresualt=adc_read_ch(0x44);\r\n\t\tbreak;\r\n\t\t\r\n\t\tcase 7:\r\n\t\t\tadc_configuration(0x46,0x40);\t\t//a2d_address 0x46 channel channel 1\r\n\t\t\tadc_set_for_read_ch(0x46);\r\n\t\t\tresualt=adc_read_ch(0x46);\r\n\t\tbreak;\r\n\t\t\r\n\t\tcase 8:\r\n\t\t\tadc_configuration(0x46,0x10);\t\t//a2d_address 0x46 channel channel 3\r\n\t\t\tadc_set_for_read_ch(0x46);\r\n\t\t\tresualt=adc_read_ch(0x46);\r\n\t\tbreak;\r\n\t\t\r\n default:\r\n context.Write(\"Error\");\r\n\r\n break;\r\n\t }\t\r\n\t\t\r\n\t\treturn resualt;\r\n\t}\t\r\n\r\n\r\n//--------------------------------\r\nint open_valve (int valve_nm,int valve_type,int check_valve)\t\t//valve_type=0 is Air ,1 is Ink ; check_valve=1 send feedbak\r\n{\r\n\tint temp1=Convert_Midtank_No[valve_nm-1]\t;\r\n\r\n\tstring temp;\r\n\tSetBit (F3_VALVE_OUT,(((valve_type+1)*8)- temp1), 1);\t\r\n\t\r\n\t\tif (check_valve!=0)\r\n\t\t{\r\n\t\t\ttemp=\"Air\";\r\n\t\t\tif (valve_type==1)\r\n\t\t\ttemp=\"Ink\";\r\n\t\t\t\t\r\n\t\t\tDialogResult result = MessageBox.Show(\"Did \" + temp + \"Valve of Midtank \" + valve_nm +\" open?\", \"Warning\",MessageBoxButtons.YesNo);\r\n\t\t\tif(result == DialogResult.No)\r\n\t\t\t\t{\r\n//\t\t\t\t\tUnits_status[(valve_nm-1)*3+valve_type,1]=\"Fail\";\r\n\t\t\t\t\tcontext.Write(temp +\"Valve\\tFail\\n\");\t\r\n\t\t\t\t\treturn 0;\r\n\t\t\t\t}\r\n\t\t\telse \r\n\t\t\t\t{\r\n//\t\t\t\t\tUnits_status[(valve_nm-1)*3+valve_type,1]=\"Pass\";\r\n\t\t\t\t\tcontext.Write(temp +\"Valve\\tOpen\\n\");\t\r\n\t\t\t\t\treturn 1;\r\n\t\t\t\t}\r\n\t\t\t\r\n\t\t}\r\n\t\treturn 1;\r\n\r\n}\r\n//--------------------------------\t\r\nint close_valve (int valve_nm,int valve_type,int check_valve)\r\n{\r\n\tint temp1=Convert_Midtank_No[valve_nm-1];\t\r\n\r\n\tstring temp;\r\n\tSetBit (F3_VALVE_OUT,(((valve_type+1)*8)- temp1), 0);\r\n\tif (check_valve!=0)\r\n\t\t{\r\n\t\t\ttemp=\"Air\";\r\n\t\t\tif (valve_type==1)\r\n\t\t\ttemp=\"Ink\";\r\n\t\t\t\t\r\n\t\t\tDialogResult result = MessageBox.Show(\"Did \" + temp +\" Valve of Midtank \" + valve_nm +\" close?\", \"Warning\",MessageBoxButtons.YesNo);\r\n\t\t\tif(result == DialogResult.No)\r\n\t\t\t\t{\r\n//\t\t\t\t\tUnits_status[(valve_nm-1)*3+valve_type,1]=\"Fail\";\r\n\t\t\t\t\tcontext.Write(temp +\"Valve\\tFail\\n\");\t\r\n\t\t\t\t\treturn 0;\r\n\t\t\t\t}\r\n\t\t\telse \r\n\t\t\t\t{\r\n//\t\t\t\t\tUnits_status[(valve_nm-1)*3+valve_type,1]=\"Pass\";\r\n\t\t\t\t\tcontext.Write(temp +\"Valve\\tclose\\n\");\t\r\n\t\t\t\t\treturn 1;\r\n\t\t\t\t}\t\t\t\r\n\t\t}\r\n\treturn 1;\r\n\r\n}\r\n\r\npublic Int32 SetBit(Int32 Adr, Int32 BitNo, Int32 Bit)\r\n{\r\n\tInt32 BitMask;\r\n\tInt32 RetVal;\r\n\tRetVal = Fpga_Read_Reg(Adr);\r\n\tInt32 RV = RetVal ;\r\n\t\r\n\tif (Bit == 0x1) \r\n\t{\r\n\t\tBitMask = 0x1 << BitNo;\r\n\t\tRV = RV | BitMask;\r\n\t\tFpga_Write_Reg( Adr, RV );\r\n\t}\r\n\telse if (Bit == 0x0)\r\n\t{\r\n\t\tBitMask = ~(0x1 << BitNo);\r\n\t\tRV = RV & BitMask;\r\n\t\tFpga_Write_Reg(Adr, RV );\t\r\n\t}\r\n\treturn 1;\r\n}\r\n\r\nint Fpga_Write_Reg(Int32 Addr, Int32 Data)\r\n{\r\n\tvar response =context.Send<StubFpgaWriteRegResponse>(\"StubFpgaWriteRegRequest\" ,Addr, Data);\r\n\t\r\n\treturn 1;\r\n}\r\n\r\n\r\nInt32 check_valve (Int32 valve_nm,int valve_type)\r\n{\r\n\tInt32 temp1=Convert_Midtank_No[valve_nm-1];\t\r\n\t\r\n var response =context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F3_VALVE_OUT);\r\n\tInt32 RV =(Int32) response.Value & 0xffff ;\r\n\tRV = RV & ( 0x1 << (((valve_type+1)*8)- temp1));\r\n\treturn RV;\r\n\r\n}\r\n\r\n\r\nInt32 Fpga_Read_Reg(Int32 Addr)\r\n{\r\n \r\ncontext.Write(\"123\");\r\n\r\n\tvar response =context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,Addr);\r\n\tcontext.Write(\"456\");\r\n\r\n\tInt32 RV= (Int32) response.Value & 0xffff;\r\n\tcontext.Write(\"789\");\r\n\r\n\treturn RV;\r\n} \r\n \r\n \r\n \r\n}","Name":"Program.csx","IsEntryPoint":true},{"$id":"4","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Entities;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}","Name":"Service.csx","IsEntryPoint":false}]},"Inputs":{"$id":"5","$values":[]},"Variables":{"$id":"6","$values":[]},"ReferenceAssemblies":{"$id":"7","$values":[{"$id":"8","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"9","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"10","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"11","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"12","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"13","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"14","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"15","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"16","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"17","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"18","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"Resources":{"$id":"19","$values":[]},"Dialogs":{"$id":"20","$values":[]},"ID":"e2c3c81d-1914-4d45-b031-d054af33a18e","ApartmentState":"STA"} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Moshe Copy Files.exe b/Software/Stubs Collection/stubs/Scripts/Moshe Copy Files.exe
deleted file mode 100644
index 428ce300b..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Moshe Copy Files.exe
+++ /dev/null
Binary files differ
diff --git a/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing.cs b/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing.cs
deleted file mode 100644
index 6221ff388..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing.cs
+++ /dev/null
@@ -1,118 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-//unmark Auto logging !
-
-const Int32 x_ABS_POS = 0x01;
-const Int32 x_EL_POS = 0x02;
-const Int32 x_MARK = 0x03;
-const Int32 x_SPEED = 0x04;
-const Int32 x_ACC = 0x05;
-const Int32 x_DEC = 0x06;
-const Int32 x_MAX_SPEED = 0x07;
-const Int32 x_MIN_SPEED = 0x08;
-const Int32 x_FS_SPD = 0x15;
-const Int32 x_KVAL_HOLD = 0x09;
-const Int32 x_KVAL_RUN = 0x0A;
-const Int32 x_KVAL_ACC = 0x0B;
-const Int32 x_KVAL_DEC = 0x0C;
-const Int32 x_INT_SPD = 0x0D;
-const Int32 x_ST_SLP = 0x0E;
-const Int32 x_FN_SLP_ACC = 0x0F;
-const Int32 x_FN_SLP_DEC = 0x10;
-const Int32 x_K_THERM = 0x11;
-const Int32 x_ADC_OUT = 0x12;
-const Int32 x_OCD_TH = 0x13;
-const Int32 x_STALL_TH = 0x14;
-const Int32 x_STEP_MODE = 0x16;
-const Int32 x_ALARM_EN = 0x17;
-const Int32 x_CONFIG = 0x18;
-const Int32 x_STATUS = 0x19;
-//-------------------------------
-const Int32 x_GET_PARAM = 0x20;
-//-------------------------------
-const Int32 Max_Motor_ID = 25;
-
-Int32 i = 12; // to run only for specific motor
-
-public void OnExecute(StubManager stubManager)
-{
- for (i = 0; i < Max_Motor_ID; i++)
- {
-
- if((i%8 ==0) )
- {
- stubManager.Write("MoTor\tMIN_SPEED\tMAX_SPEED\tSTEP_MODE\tACC\t\tDEC\t\tKVAL_HOLD\tKVAL_RUN\tKVAL_ACC\tKVAL_DEC\tOCD_TH\t\tSTALL_TH\tCONFIG\t\tFS_SPD\t\tADC_OUT\n");
- stubManager.Write("------\t--------\t--------\t----------\t---\t\t---\t\t---------\t--------\t--------\t--------\t------\t\t--------\t------\t\t------\t\t------\n");
- }
- stubManager.Write(i);
- stubManager.Write("\t");
-
- var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MIN_SPEED)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MAX_SPEED)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4); stubManager.Write("\t");
- stubManager.Write("\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ACC)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_DEC)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_HOLD)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_RUN)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_ACC)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_DEC)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_OCD_TH)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STALL_TH)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_CONFIG)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FS_SPD)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ADC_OUT)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n\n");
-
- }
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing1.cs b/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing1.cs
deleted file mode 100644
index 6221ff388..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing1.cs
+++ /dev/null
@@ -1,118 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-//unmark Auto logging !
-
-const Int32 x_ABS_POS = 0x01;
-const Int32 x_EL_POS = 0x02;
-const Int32 x_MARK = 0x03;
-const Int32 x_SPEED = 0x04;
-const Int32 x_ACC = 0x05;
-const Int32 x_DEC = 0x06;
-const Int32 x_MAX_SPEED = 0x07;
-const Int32 x_MIN_SPEED = 0x08;
-const Int32 x_FS_SPD = 0x15;
-const Int32 x_KVAL_HOLD = 0x09;
-const Int32 x_KVAL_RUN = 0x0A;
-const Int32 x_KVAL_ACC = 0x0B;
-const Int32 x_KVAL_DEC = 0x0C;
-const Int32 x_INT_SPD = 0x0D;
-const Int32 x_ST_SLP = 0x0E;
-const Int32 x_FN_SLP_ACC = 0x0F;
-const Int32 x_FN_SLP_DEC = 0x10;
-const Int32 x_K_THERM = 0x11;
-const Int32 x_ADC_OUT = 0x12;
-const Int32 x_OCD_TH = 0x13;
-const Int32 x_STALL_TH = 0x14;
-const Int32 x_STEP_MODE = 0x16;
-const Int32 x_ALARM_EN = 0x17;
-const Int32 x_CONFIG = 0x18;
-const Int32 x_STATUS = 0x19;
-//-------------------------------
-const Int32 x_GET_PARAM = 0x20;
-//-------------------------------
-const Int32 Max_Motor_ID = 25;
-
-Int32 i = 12; // to run only for specific motor
-
-public void OnExecute(StubManager stubManager)
-{
- for (i = 0; i < Max_Motor_ID; i++)
- {
-
- if((i%8 ==0) )
- {
- stubManager.Write("MoTor\tMIN_SPEED\tMAX_SPEED\tSTEP_MODE\tACC\t\tDEC\t\tKVAL_HOLD\tKVAL_RUN\tKVAL_ACC\tKVAL_DEC\tOCD_TH\t\tSTALL_TH\tCONFIG\t\tFS_SPD\t\tADC_OUT\n");
- stubManager.Write("------\t--------\t--------\t----------\t---\t\t---\t\t---------\t--------\t--------\t--------\t------\t\t--------\t------\t\t------\t\t------\n");
- }
- stubManager.Write(i);
- stubManager.Write("\t");
-
- var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MIN_SPEED)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MAX_SPEED)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4); stubManager.Write("\t");
- stubManager.Write("\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ACC)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_DEC)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_HOLD)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_RUN)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_ACC)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_DEC)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_OCD_TH)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STALL_TH)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_CONFIG)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FS_SPD)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ADC_OUT)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n\n");
-
- }
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing2.cs b/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing2.cs
deleted file mode 100644
index 09d22dea9..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing2.cs
+++ /dev/null
@@ -1,233 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-//unmark Auto logging !
-
-const Int32 x_ABS_POS = 0x01;
-const Int32 x_EL_POS = 0x02;
-const Int32 x_MARK = 0x03;
-const Int32 x_SPEED = 0x04;
-const Int32 x_ACC = 0x05;
-const Int32 x_DEC = 0x06;
-const Int32 x_MAX_SPEED = 0x07;
-const Int32 x_MIN_SPEED = 0x08;
-const Int32 x_FS_SPD = 0x15;
-const Int32 x_KVAL_HOLD = 0x09;
-const Int32 x_KVAL_RUN = 0x0A;
-const Int32 x_KVAL_ACC = 0x0B;
-const Int32 x_KVAL_DEC = 0x0C;
-const Int32 x_INT_SPD = 0x0D;
-const Int32 x_ST_SLP = 0x0E;
-const Int32 x_FN_SLP_ACC = 0x0F;
-const Int32 x_FN_SLP_DEC = 0x10;
-const Int32 x_K_THERM = 0x11;
-const Int32 x_ADC_OUT = 0x12;
-const Int32 x_OCD_TH = 0x13;
-const Int32 x_STALL_TH = 0x14;
-const Int32 x_STEP_MODE = 0x16;
-const Int32 x_ALARM_EN = 0x17;
-const Int32 x_CONFIG = 0x18;
-const Int32 x_STATUS = 0x19;
-//-------------------------------
-const Int32 x_GET_PARAM = 0x20;
-//-------------------------------
-const Int32 Max_Motor_ID = 25;
-
-
-
-string[] Motor_ID = new string[30];
-
-
-Motor_ID[0] ="DH_CLEANHEAD ";
-Motor_ID[1] ="DH_CLEANMECH ";
-Motor_ID[2] ="DH_LID ";
-Motor_ID[3] ="DRYER_DRIVING";
-Motor_ID[4] ="DRYER_LID ";
-Motor_ID[5] ="DRYER_LOADARM";
-Motor_ID[6] ="DISPENCER_1 ";
-Motor_ID[7] ="DISPENCER_2 ";
-Motor_ID[8] ="DISPENCER_3 ";
-Motor_ID[9] ="DISPENCER_4 ";
-Motor_ID[10]="DISPENCER_5 ";
-Motor_ID[11]="DISPENCER_6 ";
-Motor_ID[12]="DISPENCER_7 ";
-Motor_ID[13]="DISPENCER_8 ";
-Motor_ID[14]="SCREW ";
-Motor_ID[15]="WINDER ";
-Motor_ID[16]="LDANCER1 ";
-Motor_ID[17]="LDANCER2 ";
-Motor_ID[18]="LDRIVING ";
-Motor_ID[19]="LLODING ";
-Motor_ID[20]="LPIVOT ";
-Motor_ID[21]="RDANCER ";
-Motor_ID[22]="RDRIVING ";
-Motor_ID[23]="RLOADARM ";
-Motor_ID[24]="RLODING ";
-Motor_ID[25]="SPARE1_1 ";
-Motor_ID[26]="SPARE1_2 ";
-Motor_ID[27]="SPARE2_1 ";
-Motor_ID[28]="SPARE2_2 ";
-Motor_ID[29]="SPARE3 ";
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Int32 i = 12; // to run only for specific motor
-
-public void OnExecute(StubManager stubManager)
-{
-
-stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000380 , 0x06b9);
-stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000390 , 0x003f);
-stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000550 , 0x0003);
-stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000b80 , 0x001f);
-
-
-
-
-
-
-
-
-
-
-
- for (i = 0; i < Max_Motor_ID; i++)
- {
-
- if((i%8 ==0) )
- {
- stubManager.Write("\n\n");
- stubManager.Write("MoTor\t\t\tMIN_SPEED\tMAX_SPEED\tSTEP_MODE\tACC\t\tDEC\t\tKVAL_HOLD\tKVAL_RUN\tKVAL_ACC\tKVAL_DEC\tOCD_TH\t\tSTALL_TH\tCONFIG\t\tFS_SPD\t\tADC_OUT\tDriver_Type\n");
- stubManager.Write("------\t\t\t--------\t--------\t----------\t---\t\t---\t\t---------\t--------\t--------\t--------\t------\t\t--------\t------\t\t------\t\t------\t\t------\n");
- }
- //stubManager.Write(i);
-
- stubManager.Write(Motor_ID[i]);
- stubManager.Write("\t\t");
-
- var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MIN_SPEED)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MAX_SPEED)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4); stubManager.Write("\t");
- stubManager.Write("\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ACC)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_DEC)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_HOLD)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_RUN)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_ACC)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_DEC)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_OCD_TH)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STALL_TH)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_CONFIG)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FS_SPD)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ADC_OUT)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- if( response.RecivedData > 0x15 )
- stubManager.Write("\t\tDual_Driver");
- else if ( response.RecivedData > 0x0b)
- stubManager.Write("\t\tVolage_Driver");
- else if ( response.RecivedData > 8 )
- stubManager.Write("\t\tCurrent_Driver");
- else
- stubManager.Write("\t\tNo_Driver");
-
-
- stubManager.Write("\n\n");
-
- }
-
- stubManager.Write("MoTor\t\t\tINT_SPD\tST_SLP\t\tSLP_ACC\tSLP_DEC\tSTATUS\n");
- stubManager.Write("-----\t\t\t-------\t------\t\t-------\t--------\t-----\n");
-
- for (i = 0; i < Max_Motor_ID; i++)
- {
- stubManager.Write(Motor_ID[i]);
-
-// stubManager.Write(i);
- stubManager.Write("\t\t");
-
- var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_INT_SPD)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ST_SLP)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_ACC)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_DEC)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STATUS)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n\n");
-
-
-
- }
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing3.cs b/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing3.cs
deleted file mode 100644
index 73042af54..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing3.cs
+++ /dev/null
@@ -1,261 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-//unmark Auto logging !
-
-const Int32 x_ABS_POS = 0x01;
-const Int32 x_EL_POS = 0x02;
-const Int32 x_MARK = 0x03;
-const Int32 x_SPEED = 0x04;
-const Int32 x_ACC = 0x05;
-const Int32 x_DEC = 0x06;
-const Int32 x_MAX_SPEED = 0x07;
-const Int32 x_MIN_SPEED = 0x08;
-const Int32 x_FS_SPD = 0x15;
-const Int32 x_KVAL_HOLD = 0x09;
-const Int32 x_KVAL_RUN = 0x0A;
-const Int32 x_KVAL_ACC = 0x0B;
-const Int32 x_KVAL_DEC = 0x0C;
-const Int32 x_INT_SPD = 0x0D;
-const Int32 x_ST_SLP = 0x0E;
-const Int32 x_FN_SLP_ACC = 0x0F;
-const Int32 x_FN_SLP_DEC = 0x10;
-const Int32 x_K_THERM = 0x11;
-const Int32 x_ADC_OUT = 0x12;
-const Int32 x_OCD_TH = 0x13;
-const Int32 x_STALL_TH = 0x14;
-const Int32 x_STEP_MODE = 0x16;
-const Int32 x_ALARM_EN = 0x17;
-const Int32 x_CONFIG = 0x18;
-const Int32 x_STATUS = 0x19;
-//-------------------------------
-const Int32 x_GET_PARAM = 0x20;
-//-------------------------------
-const Int32 Max_Motor_ID = 25;
-
-
-
-string[] Motor_ID = new string[30];
-
-
-Motor_ID[0] ="DH_CLEANHEAD ";
-Motor_ID[1] ="DH_CLEANMECH ";
-Motor_ID[2] ="DH_LID ";
-Motor_ID[3] ="DRYER_DRIVING";
-Motor_ID[4] ="DRYER_LID ";
-Motor_ID[5] ="DRYER_LOADARM";
-Motor_ID[6] ="DISPENCER_1 ";
-Motor_ID[7] ="DISPENCER_2 ";
-Motor_ID[8] ="DISPENCER_3 ";
-Motor_ID[9] ="DISPENCER_4 ";
-Motor_ID[10]="DISPENCER_5 ";
-Motor_ID[11]="DISPENCER_6 ";
-Motor_ID[12]="DISPENCER_7 ";
-Motor_ID[13]="DISPENCER_8 ";
-Motor_ID[14]="SCREW ";
-Motor_ID[15]="WINDER ";
-Motor_ID[16]="LDANCER1 ";
-Motor_ID[17]="LDANCER2 ";
-Motor_ID[18]="LDRIVING ";
-Motor_ID[19]="LLODING ";
-Motor_ID[20]="LPIVOT ";
-Motor_ID[21]="RDANCER ";
-Motor_ID[22]="RDRIVING ";
-Motor_ID[23]="RLOADARM ";
-Motor_ID[24]="RLODING ";
-Motor_ID[25]="SPARE1_1 ";
-Motor_ID[26]="SPARE1_2 ";
-Motor_ID[27]="SPARE2_1 ";
-Motor_ID[28]="SPARE2_2 ";
-Motor_ID[29]="SPARE3 ";
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Int32 i = 12; // to run only for specific motor
-
-public void OnExecute(StubManager stubManager)
-{
-
-stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000380 , 0x06b9);
-stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000390 , 0x003f);
-stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000550 , 0x0003);
-stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000b80 , 0x001f);
-
-
-
-
-
-
-
-
-
-
-
- for (i = 0; i < Max_Motor_ID; i++)
- {
-
- if((i%8 ==0) )
- {
- stubManager.Write("\n\n");
- stubManager.Write("MoTor\t\t\tMIN_SPEED\tMAX_SPEED\tSTEP_MODE\tACC\t\tDEC\t\tKVAL_HOLD\tKVAL_RUN\tKVAL_ACC\tKVAL_DEC\tOCD_TH\t\tSTALL_TH\tCONFIG\t\tFS_SPD\t\tADC_OUT\tDriver_Type\n");
- stubManager.Write("------\t\t\t--------\t--------\t----------\t---\t\t---\t\t---------\t--------\t--------\t--------\t------\t\t--------\t------\t\t------\t\t------\t\t------\n");
- }
- //stubManager.Write(i);
-
- stubManager.Write(Motor_ID[i]);
- stubManager.Write("\t\t");
-
- var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MIN_SPEED)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MAX_SPEED)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4); stubManager.Write("\t");
- stubManager.Write("\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ACC)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_DEC)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_HOLD)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_RUN)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_ACC)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_DEC)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_OCD_TH)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STALL_TH)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_CONFIG)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FS_SPD)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ADC_OUT)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- if( response.RecivedData > 0x15 )
- stubManager.Write("\t\tDual_Driver");
- else if ( response.RecivedData > 0x0b)
- stubManager.Write("\t\tVolage_Driver");
- else if ( response.RecivedData > 8 )
- stubManager.Write("\t\tCurrent_Driver");
- else
- stubManager.Write("\t\tNo_Driver");
-
-
- stubManager.Write("\n\n");
-
- }
-
- stubManager.Write("MoTor\t\t\tINT_SPD\tST_SLP\t\tSLP_ACC\tSLP_DEC\tSTATUS\n");
- stubManager.Write("-----\t\t\t-------\t------\t\t-------\t--------\t-----\n");
-
- for (i = 0; i < Max_Motor_ID; i++)
- {
- stubManager.Write(Motor_ID[i]);
-
-// stubManager.Write(i);
- stubManager.Write("\t\t");
-
- var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_INT_SPD)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ST_SLP)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_ACC)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_DEC)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STATUS)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n\n");
-
-
-
- }
-
- stubManager.Write("--------------- New Driver POWERSTEP01 ---------------\n\n");
- stubManager.Write("MoTor\tPS01_CONFIG\t\tPS01_STATUS\t\tPS01_GATECFG1\t\tPS01_GATECFG2\n");
- stubManager.Write("-----\t------------\t\t-----------\t\t-------------\t\t------------\n");
-
- for (i = 6; i < 14; i++)//Dispensers only
- //for (i = 25; i < 29; i++)//Dispensers only
- {
- stubManager.Write(i);
- stubManager.Write("\t");
-
- var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_CONFIG)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_STATUS)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG1)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG2)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n\n");
- }
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing4.cs b/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing4.cs
deleted file mode 100644
index 5d6259cb4..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing4.cs
+++ /dev/null
@@ -1,265 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-//unmark Auto logging !
-const Int32 x_POWERSTEP01_CONFIG = 0x1A;
-const Int32 x_POWERSTEP01_STATUS = 0x1B;
-const Int32 x_POWERSTEP01_GATECFG1 = 0x18;
-const Int32 x_POWERSTEP01_GATECFG2 = 0x19;
-
-const Int32 x_ABS_POS = 0x01;
-const Int32 x_EL_POS = 0x02;
-const Int32 x_MARK = 0x03;
-const Int32 x_SPEED = 0x04;
-const Int32 x_ACC = 0x05;
-const Int32 x_DEC = 0x06;
-const Int32 x_MAX_SPEED = 0x07;
-const Int32 x_MIN_SPEED = 0x08;
-const Int32 x_FS_SPD = 0x15;
-const Int32 x_KVAL_HOLD = 0x09;
-const Int32 x_KVAL_RUN = 0x0A;
-const Int32 x_KVAL_ACC = 0x0B;
-const Int32 x_KVAL_DEC = 0x0C;
-const Int32 x_INT_SPD = 0x0D;
-const Int32 x_ST_SLP = 0x0E;
-const Int32 x_FN_SLP_ACC = 0x0F;
-const Int32 x_FN_SLP_DEC = 0x10;
-const Int32 x_K_THERM = 0x11;
-const Int32 x_ADC_OUT = 0x12;
-const Int32 x_OCD_TH = 0x13;
-const Int32 x_STALL_TH = 0x14;
-const Int32 x_STEP_MODE = 0x16;
-const Int32 x_ALARM_EN = 0x17;
-const Int32 x_CONFIG = 0x18;
-const Int32 x_STATUS = 0x19;
-//-------------------------------
-const Int32 x_GET_PARAM = 0x20;
-//-------------------------------
-const Int32 Max_Motor_ID = 25;
-
-
-
-string[] Motor_ID = new string[30];
-
-
-Motor_ID[0] ="DH_CLEANHEAD ";
-Motor_ID[1] ="DH_CLEANMECH ";
-Motor_ID[2] ="DH_LID ";
-Motor_ID[3] ="DRYER_DRIVING";
-Motor_ID[4] ="DRYER_LID ";
-Motor_ID[5] ="DRYER_LOADARM";
-Motor_ID[6] ="DISPENCER_1 ";
-Motor_ID[7] ="DISPENCER_2 ";
-Motor_ID[8] ="DISPENCER_3 ";
-Motor_ID[9] ="DISPENCER_4 ";
-Motor_ID[10]="DISPENCER_5 ";
-Motor_ID[11]="DISPENCER_6 ";
-Motor_ID[12]="DISPENCER_7 ";
-Motor_ID[13]="DISPENCER_8 ";
-Motor_ID[14]="SCREW ";
-Motor_ID[15]="WINDER ";
-Motor_ID[16]="LDANCER1 ";
-Motor_ID[17]="LDANCER2 ";
-Motor_ID[18]="LDRIVING ";
-Motor_ID[19]="LLODING ";
-Motor_ID[20]="LPIVOT ";
-Motor_ID[21]="RDANCER ";
-Motor_ID[22]="RDRIVING ";
-Motor_ID[23]="RLOADARM ";
-Motor_ID[24]="RLODING ";
-Motor_ID[25]="SPARE1_1 ";
-Motor_ID[26]="SPARE1_2 ";
-Motor_ID[27]="SPARE2_1 ";
-Motor_ID[28]="SPARE2_2 ";
-Motor_ID[29]="SPARE3 ";
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Int32 i = 12; // to run only for specific motor
-
-public void OnExecute(StubManager stubManager)
-{
-
-stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000380 , 0x06b9);
-stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000390 , 0x003f);
-stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000550 , 0x0003);
-stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000b80 , 0x001f);
-
-
-
-
-
-
-
-
-
-
-
- for (i = 0; i < Max_Motor_ID; i++)
- {
-
- if((i%8 ==0) )
- {
- stubManager.Write("\n\n");
- stubManager.Write("MoTor\t\t\tMIN_SPEED\tMAX_SPEED\tSTEP_MODE\tACC\t\tDEC\t\tKVAL_HOLD\tKVAL_RUN\tKVAL_ACC\tKVAL_DEC\tOCD_TH\t\tSTALL_TH\tCONFIG\t\tFS_SPD\t\tADC_OUT\tDriver_Type\n");
- stubManager.Write("------\t\t\t--------\t--------\t----------\t---\t\t---\t\t---------\t--------\t--------\t--------\t------\t\t--------\t------\t\t------\t\t------\t\t------\n");
- }
- //stubManager.Write(i);
-
- stubManager.Write(Motor_ID[i]);
- stubManager.Write("\t\t");
-
- var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MIN_SPEED)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MAX_SPEED)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4); stubManager.Write("\t");
- stubManager.Write("\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ACC)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_DEC)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_HOLD)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_RUN)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_ACC)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_DEC)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_OCD_TH)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STALL_TH)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_CONFIG)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FS_SPD)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ADC_OUT)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- if( response.RecivedData > 0x15 )
- stubManager.Write("\t\tDual_Driver");
- else if ( response.RecivedData > 0x0b)
- stubManager.Write("\t\tVolage_Driver");
- else if ( response.RecivedData > 8 )
- stubManager.Write("\t\tCurrent_Driver");
- else
- stubManager.Write("\t\tNo_Driver");
-
-
- stubManager.Write("\n\n");
-
- }
-
- stubManager.Write("MoTor\t\t\tINT_SPD\tST_SLP\t\tSLP_ACC\tSLP_DEC\tSTATUS\n");
- stubManager.Write("-----\t\t\t-------\t------\t\t-------\t--------\t-----\n");
-
- for (i = 0; i < Max_Motor_ID; i++)
- {
- stubManager.Write(Motor_ID[i]);
-
-// stubManager.Write(i);
- stubManager.Write("\t\t");
-
- var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_INT_SPD)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ST_SLP)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_ACC)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_DEC)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STATUS)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n\n");
-
-
-
- }
-
- stubManager.Write("--------------- New Driver POWERSTEP01 ---------------\n\n");
- stubManager.Write("MoTor\tPS01_CONFIG\t\tPS01_STATUS\t\tPS01_GATECFG1\t\tPS01_GATECFG2\n");
- stubManager.Write("-----\t------------\t\t-----------\t\t-------------\t\t------------\n");
-
- for (i = 6; i < 14; i++)//Dispensers only
- //for (i = 25; i < 29; i++)//Dispensers only
- {
- stubManager.Write(i);
- stubManager.Write("\t");
-
- var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_CONFIG)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_STATUS)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG1)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG2)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n\n");
- }
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing_powerstep01.cs b/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing_powerstep01.cs
deleted file mode 100644
index b02a6072c..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing_powerstep01.cs
+++ /dev/null
@@ -1,266 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-//unmark Auto logging !
-
-const Int32 x_POWERSTEP01_CONFIG = 0x1A;
-const Int32 x_POWERSTEP01_STATUS = 0x1B;
-const Int32 x_POWERSTEP01_GATECFG1 = 0x18;
-const Int32 x_POWERSTEP01_GATECFG2 = 0x19;
-
-const Int32 x_ABS_POS = 0x01;
-const Int32 x_EL_POS = 0x02;
-const Int32 x_MARK = 0x03;
-const Int32 x_SPEED = 0x04;
-const Int32 x_ACC = 0x05;
-const Int32 x_DEC = 0x06;
-const Int32 x_MAX_SPEED = 0x07;
-const Int32 x_MIN_SPEED = 0x08;
-const Int32 x_FS_SPD = 0x15;
-const Int32 x_KVAL_HOLD = 0x09;
-const Int32 x_KVAL_RUN = 0x0A;
-const Int32 x_KVAL_ACC = 0x0B;
-const Int32 x_KVAL_DEC = 0x0C;
-const Int32 x_INT_SPD = 0x0D;
-const Int32 x_ST_SLP = 0x0E;
-const Int32 x_FN_SLP_ACC = 0x0F;
-const Int32 x_FN_SLP_DEC = 0x10;
-const Int32 x_K_THERM = 0x11;
-const Int32 x_ADC_OUT = 0x12;
-const Int32 x_OCD_TH = 0x13;
-const Int32 x_STALL_TH = 0x14;
-const Int32 x_STEP_MODE = 0x16;
-const Int32 x_ALARM_EN = 0x17;
-const Int32 x_CONFIG = 0x18;
-const Int32 x_STATUS = 0x19;
-//-------------------------------
-const Int32 x_GET_PARAM = 0x20;
-//-------------------------------
-const Int32 Max_Motor_ID = 25;
-
-
-
-string[] Motor_ID = new string[30];
-
-
-Motor_ID[0] ="DH_CLEANHEAD ";
-Motor_ID[1] ="DH_CLEANMECH ";
-Motor_ID[2] ="DH_LID ";
-Motor_ID[3] ="DRYER_DRIVING";
-Motor_ID[4] ="DRYER_LID ";
-Motor_ID[5] ="DRYER_LOADARM";
-Motor_ID[6] ="DISPENCER_1 ";
-Motor_ID[7] ="DISPENCER_2 ";
-Motor_ID[8] ="DISPENCER_3 ";
-Motor_ID[9] ="DISPENCER_4 ";
-Motor_ID[10]="DISPENCER_5 ";
-Motor_ID[11]="DISPENCER_6 ";
-Motor_ID[12]="DISPENCER_7 ";
-Motor_ID[13]="DISPENCER_8 ";
-Motor_ID[14]="SCREW ";
-Motor_ID[15]="WINDER ";
-Motor_ID[16]="LDANCER1 ";
-Motor_ID[17]="LDANCER2 ";
-Motor_ID[18]="LDRIVING ";
-Motor_ID[19]="LLODING ";
-Motor_ID[20]="LPIVOT ";
-Motor_ID[21]="RDANCER ";
-Motor_ID[22]="RDRIVING ";
-Motor_ID[23]="RLOADARM ";
-Motor_ID[24]="RLODING ";
-Motor_ID[25]="SPARE1_1 ";
-Motor_ID[26]="SPARE1_2 ";
-Motor_ID[27]="SPARE2_1 ";
-Motor_ID[28]="SPARE2_2 ";
-Motor_ID[29]="SPARE3 ";
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Int32 i = 12; // to run only for specific motor
-
-public void OnExecute(StubManager stubManager)
-{
-
-//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000380 , 0x06b9); //7ff mati
-//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000390 , 0x003f);
-//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000550 , 0x0003); //ff mati
-//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000b80 , 0x001f);
-
-
-
-
-
-
-
-
-
-
-
- for (i = 0; i < Max_Motor_ID; i++)
- {
-
- if((i%8 ==0) )
- {
- stubManager.Write("\n\n");
- stubManager.Write("MoTor\t\t\tMIN_SPEED\tMAX_SPEED\tSTEP_MODE\tACC\t\tDEC\t\tKVAL_HOLD\tKVAL_RUN\tKVAL_ACC\tKVAL_DEC\tOCD_TH\t\tSTALL_TH\tCONFIG\t\tFS_SPD\t\tADC_OUT\tDriver_Type\n");
- stubManager.Write("------\t\t\t--------\t--------\t----------\t---\t\t---\t\t---------\t--------\t--------\t--------\t------\t\t--------\t------\t\t------\t\t------\t\t------\n");
- }
- //stubManager.Write(i);
-
- stubManager.Write(Motor_ID[i]);
- stubManager.Write("\t\t");
-
- var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MIN_SPEED)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MAX_SPEED)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4); stubManager.Write("\t");
- stubManager.Write("\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ACC)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_DEC)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_HOLD)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_RUN)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_ACC)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_DEC)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_OCD_TH)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STALL_TH)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_CONFIG)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FS_SPD)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ADC_OUT)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- if( response.RecivedData > 0x15 && response.RecivedData < 0x1c )
- stubManager.Write("\t\tDual_Driver");
- else if ( response.RecivedData > 0x0b && response.RecivedData < 0x12 )
- stubManager.Write("\t\tVolage_Driver");
- else if ( response.RecivedData > 8 && response.RecivedData < 0x0a)
- stubManager.Write("\t\tCurrent_Driver");
- else
- stubManager.Write("\t\tNo_Driver");
-
-
- stubManager.Write("\n\n");
-
- }
-
- stubManager.Write("MoTor\t\t\tINT_SPD\tST_SLP\t\tSLP_ACC\tSLP_DEC\tSTATUS\n");
- stubManager.Write("-----\t\t\t-------\t------\t\t-------\t--------\t-----\n");
-
- for (i = 0; i < Max_Motor_ID; i++)
- {
- stubManager.Write(Motor_ID[i]);
-
-// stubManager.Write(i);
- stubManager.Write("\t\t");
-
- var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_INT_SPD)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ST_SLP)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_ACC)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_DEC)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STATUS)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n\n");
-
-
-
- }
-
-
- stubManager.Write("--------------- New Driver POWERSTEP01 ---------------\n\n");
- stubManager.Write("MoTor\tPS01_CONFIG\t\tPS01_STATUS\t\tPS01_GATECFG1\t\tPS01_GATECFG2\n");
- stubManager.Write("-----\t------------\t\t-----------\t\t-------------\t\t------------\n");
-
- for (i = 6; i < 14; i++)//Dispensers only
- //for (i = 25; i < 29; i++)//Dispensers only
- {
- stubManager.Write(i);
- stubManager.Write("\t");
-
- var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_CONFIG)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_STATUS)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG1)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG2)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n\n");
- }
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing_powerstep01_rev10.cs b/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing_powerstep01_rev10.cs
deleted file mode 100644
index b02a6072c..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing_powerstep01_rev10.cs
+++ /dev/null
@@ -1,266 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-//unmark Auto logging !
-
-const Int32 x_POWERSTEP01_CONFIG = 0x1A;
-const Int32 x_POWERSTEP01_STATUS = 0x1B;
-const Int32 x_POWERSTEP01_GATECFG1 = 0x18;
-const Int32 x_POWERSTEP01_GATECFG2 = 0x19;
-
-const Int32 x_ABS_POS = 0x01;
-const Int32 x_EL_POS = 0x02;
-const Int32 x_MARK = 0x03;
-const Int32 x_SPEED = 0x04;
-const Int32 x_ACC = 0x05;
-const Int32 x_DEC = 0x06;
-const Int32 x_MAX_SPEED = 0x07;
-const Int32 x_MIN_SPEED = 0x08;
-const Int32 x_FS_SPD = 0x15;
-const Int32 x_KVAL_HOLD = 0x09;
-const Int32 x_KVAL_RUN = 0x0A;
-const Int32 x_KVAL_ACC = 0x0B;
-const Int32 x_KVAL_DEC = 0x0C;
-const Int32 x_INT_SPD = 0x0D;
-const Int32 x_ST_SLP = 0x0E;
-const Int32 x_FN_SLP_ACC = 0x0F;
-const Int32 x_FN_SLP_DEC = 0x10;
-const Int32 x_K_THERM = 0x11;
-const Int32 x_ADC_OUT = 0x12;
-const Int32 x_OCD_TH = 0x13;
-const Int32 x_STALL_TH = 0x14;
-const Int32 x_STEP_MODE = 0x16;
-const Int32 x_ALARM_EN = 0x17;
-const Int32 x_CONFIG = 0x18;
-const Int32 x_STATUS = 0x19;
-//-------------------------------
-const Int32 x_GET_PARAM = 0x20;
-//-------------------------------
-const Int32 Max_Motor_ID = 25;
-
-
-
-string[] Motor_ID = new string[30];
-
-
-Motor_ID[0] ="DH_CLEANHEAD ";
-Motor_ID[1] ="DH_CLEANMECH ";
-Motor_ID[2] ="DH_LID ";
-Motor_ID[3] ="DRYER_DRIVING";
-Motor_ID[4] ="DRYER_LID ";
-Motor_ID[5] ="DRYER_LOADARM";
-Motor_ID[6] ="DISPENCER_1 ";
-Motor_ID[7] ="DISPENCER_2 ";
-Motor_ID[8] ="DISPENCER_3 ";
-Motor_ID[9] ="DISPENCER_4 ";
-Motor_ID[10]="DISPENCER_5 ";
-Motor_ID[11]="DISPENCER_6 ";
-Motor_ID[12]="DISPENCER_7 ";
-Motor_ID[13]="DISPENCER_8 ";
-Motor_ID[14]="SCREW ";
-Motor_ID[15]="WINDER ";
-Motor_ID[16]="LDANCER1 ";
-Motor_ID[17]="LDANCER2 ";
-Motor_ID[18]="LDRIVING ";
-Motor_ID[19]="LLODING ";
-Motor_ID[20]="LPIVOT ";
-Motor_ID[21]="RDANCER ";
-Motor_ID[22]="RDRIVING ";
-Motor_ID[23]="RLOADARM ";
-Motor_ID[24]="RLODING ";
-Motor_ID[25]="SPARE1_1 ";
-Motor_ID[26]="SPARE1_2 ";
-Motor_ID[27]="SPARE2_1 ";
-Motor_ID[28]="SPARE2_2 ";
-Motor_ID[29]="SPARE3 ";
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Int32 i = 12; // to run only for specific motor
-
-public void OnExecute(StubManager stubManager)
-{
-
-//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000380 , 0x06b9); //7ff mati
-//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000390 , 0x003f);
-//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000550 , 0x0003); //ff mati
-//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000b80 , 0x001f);
-
-
-
-
-
-
-
-
-
-
-
- for (i = 0; i < Max_Motor_ID; i++)
- {
-
- if((i%8 ==0) )
- {
- stubManager.Write("\n\n");
- stubManager.Write("MoTor\t\t\tMIN_SPEED\tMAX_SPEED\tSTEP_MODE\tACC\t\tDEC\t\tKVAL_HOLD\tKVAL_RUN\tKVAL_ACC\tKVAL_DEC\tOCD_TH\t\tSTALL_TH\tCONFIG\t\tFS_SPD\t\tADC_OUT\tDriver_Type\n");
- stubManager.Write("------\t\t\t--------\t--------\t----------\t---\t\t---\t\t---------\t--------\t--------\t--------\t------\t\t--------\t------\t\t------\t\t------\t\t------\n");
- }
- //stubManager.Write(i);
-
- stubManager.Write(Motor_ID[i]);
- stubManager.Write("\t\t");
-
- var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MIN_SPEED)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MAX_SPEED)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4); stubManager.Write("\t");
- stubManager.Write("\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ACC)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_DEC)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_HOLD)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_RUN)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_ACC)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_DEC)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_OCD_TH)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STALL_TH)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_CONFIG)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FS_SPD)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ADC_OUT)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- if( response.RecivedData > 0x15 && response.RecivedData < 0x1c )
- stubManager.Write("\t\tDual_Driver");
- else if ( response.RecivedData > 0x0b && response.RecivedData < 0x12 )
- stubManager.Write("\t\tVolage_Driver");
- else if ( response.RecivedData > 8 && response.RecivedData < 0x0a)
- stubManager.Write("\t\tCurrent_Driver");
- else
- stubManager.Write("\t\tNo_Driver");
-
-
- stubManager.Write("\n\n");
-
- }
-
- stubManager.Write("MoTor\t\t\tINT_SPD\tST_SLP\t\tSLP_ACC\tSLP_DEC\tSTATUS\n");
- stubManager.Write("-----\t\t\t-------\t------\t\t-------\t--------\t-----\n");
-
- for (i = 0; i < Max_Motor_ID; i++)
- {
- stubManager.Write(Motor_ID[i]);
-
-// stubManager.Write(i);
- stubManager.Write("\t\t");
-
- var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_INT_SPD)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ST_SLP)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_ACC)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_DEC)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STATUS)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n\n");
-
-
-
- }
-
-
- stubManager.Write("--------------- New Driver POWERSTEP01 ---------------\n\n");
- stubManager.Write("MoTor\tPS01_CONFIG\t\tPS01_STATUS\t\tPS01_GATECFG1\t\tPS01_GATECFG2\n");
- stubManager.Write("-----\t------------\t\t-----------\t\t-------------\t\t------------\n");
-
- for (i = 6; i < 14; i++)//Dispensers only
- //for (i = 25; i < 29; i++)//Dispensers only
- {
- stubManager.Write(i);
- stubManager.Write("\t");
-
- var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_CONFIG)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_STATUS)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG1)<<16, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\t\t\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG2)<<8, 0, 0);
- stubManager.WriteHex(response.RecivedData,4);
- stubManager.Write("\n\n");
- }
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/NewSpeedSensor.cs b/Software/Stubs Collection/stubs/Scripts/NewSpeedSensor.cs
deleted file mode 100644
index 02f8384bc..000000000
--- a/Software/Stubs Collection/stubs/Scripts/NewSpeedSensor.cs
+++ /dev/null
@@ -1,45 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-const UInt32 Freq = 29166667;//FPGA Freq
-
-const UInt32 F1_Tacho_reg9 = 0x1E2;//Time of Tacho / No of clk in one cycle
-const UInt32 F1_gpo_cnt_A_reg = 0x3B0;// how many pulses to count
-//const Int32 F1_Prescaler1_reg5 = 0x3E8; //OLD FPGA 05.022019
-const UInt32 F1_Prescaler1_reg6 = 0x3EA; //New FPGA
-
-const UInt32 CNT = 4;//bigger number for resolution
-const UInt32 Presc = 2;//Lower number for resolution
-UInt32 temp;
-
-public void OnExecute(StubManager stubManager)
-{
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000000 + F1_Prescaler1_reg6, Presc);//for new FPGA use reg6!!
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000000 + F1_Prescaler1_reg6);//for new FPGA use reg6!!!
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000000 + F1_gpo_cnt_A_reg);
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000000 + F1_gpo_cnt_A_reg, CNT);
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000000 + F1_gpo_cnt_A_reg);
-
- for(int i =0;i<1000;i++)
- {
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000000 + F1_Tacho_reg9);
-
-
- temp = (Freq * CNT) /((UInt32)response.Value * Presc);
-
- stubManager.Write(temp);
- stubManager.Write(" Hz, ");
- stubManager.WriteHex((response.Value & 0xffff),4);
- stubManager.WriteLine("");
- Thread.Sleep(100); //Sleep for 100 milli.
- }
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/POPUP example for mati.cs b/Software/Stubs Collection/stubs/Scripts/POPUP example for mati.cs
deleted file mode 100644
index f0c8cb1af..000000000
--- a/Software/Stubs Collection/stubs/Scripts/POPUP example for mati.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
- DialogResult d;
- d=MessageBox.Show("Is it what you need?","Example for Mati", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
- if(d==DialogResult.Yes)
- {
- stubManager.WriteLine("Yes");
- }
- else
- {
- stubManager.WriteLine("No");
- }
-/*
-see https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.messagebox.show?view=netcore-3.1
-*/
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Priming.pproj b/Software/Stubs Collection/stubs/Scripts/Priming.pproj
deleted file mode 100644
index 309dae73e..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Priming.pproj
+++ /dev/null
@@ -1 +0,0 @@
-{"$id":"1","Name":"Priming","Description":null,"Scripts":{"$id":"2","$values":[{"$id":"3","Name":"Program.csx","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Entities;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\nusing System.IO;\r\nusing System.Diagnostics;\r\nusing System.Windows.Forms;\r\n\r\n\r\npublic class Program\r\n{\r\n\r\n\r\nprivate IProcedureContext context;\r\n\r\n//---------------------Start Command ----------------\r\nconst Int32\tCMD_RUN\t=\t0;\t\t//Run on Pulse Per Secound .positive run Up and negative run Down b\r\nconst Int32\tCMD_STOP=\t1;\t\t//0;Hard stop(Defualt);1-Soft stop;2-Hard Hiz;3-Soft Hiz\r\nconst Int32\tCMD_VALVE=\t2;\t\t//0-to Midtank ,1-to head \r\nconst Int32\tCMD_DLY\t=\t3;\t\t//delay in Seconds .\r\nconst Int32\tCMD_TIME=\t4;\t\t//Print Time .\r\nconst Int32\tCMD_PRESS=\t5;\t\t//return from Delay loop when pressure is high (on mBAR) .\r\nconst Int32 CMD_LOOP_NM=6;\t\t//NUMBER OF counter\r\nconst Int32 CMD_LOOP=\t7;\t\t//jump up(+) or down(-) command u\r\nconst Int32 CMD_MTV_OPEN =\t8;\t\t//0 Air ; 1 Ink\r\nconst Int32 CMD_MTV_CLOSE=\t9;\t\t//0 Air ; 1 Ink\r\nconst Int32 CMD_LBL=\t10;\t//label for user \r\nconst Int32 CMD_SMP=\t11; //sample rate ,defualt 100msec (1); for 1 second is 10.\r\nconst Int32 CMD_PRESL=\t12; //return from Delay loop when pressure is low (on mBAR) .\r\n\r\nconst Int32\tCMD_END\t=\t13;\t//end loop .\r\n \r\n\r\nInt32[] BuildUp_Table = new int []\r\n{\r\n\tCMD_VALVE,1,\r\n\tCMD_PRESL,200,\r\n\tCMD_DLY,200, \r\n\r\n\tCMD_LOOP_NM,3,\r\n\r\n\tCMD_VALVE,0,\r\n\tCMD_DLY,1, \r\n\tCMD_VALVE,1,\r\n\tCMD_DLY,1, \r\n\tCMD_LOOP,-4,\r\n\r\n\tCMD_VALVE,0,\r\n\tCMD_RUN,1068,\r\n\tCMD_PRESS,1000,\t//mbar --> 1000 = 100% work, 4000 = 200% work, 350 = 20% work\r\n\tCMD_DLY,150, \t\t\r\n\tCMD_LBL,1,\r\n\tCMD_PRESS,2000,\t//mbar --> 2000 = 100% work, 4000 = 200% work, 350 = 20% work\r\n\tCMD_DLY,60, \t\t\r\n\tCMD_LBL,2,\r\n\tCMD_PRESS,3000,\r\n\tCMD_DLY,60, // to limit\r\n\tCMD_STOP,0,\r\n\tCMD_VALVE,1,\r\n\tCMD_END,3,\r\n};\r\n\t\r\n\r\nInt32[] Up_Table = new int []\r\n{\r\n\tCMD_VALVE,1,\r\n\tCMD_PRESL,200,\r\n\tCMD_DLY,200, \r\n\t\r\n\tCMD_PRESS,3000,\t//mbar --> 1000 = 100% work, 4000 = 200% work, 350 = 20% work\r\n\tCMD_RUN,534, // 100%\r\n\tCMD_DLY,120,\r\n\tCMD_STOP,0,\r\n\tCMD_END,3,\r\n};\r\nInt32 Dispenser_sample_rate= 1; \r\n\r\n\tstring path = @\"C:\\Dispenser_setup\\Log\\\"; \t\r\n//----------------------\r\nconst UInt32 I2C_ID \t\t\t= \t4;\t\t\t\t\t//MCU_I2C4 \r\nconst UInt32 TCA9548A_address \t=\t0xE2;\t \t\r\nconst UInt32 I2C_Slave_Low_Add \t= \t0xA0;\t\t\t\t//eeprom address - 64k low \r\nconst UInt32 I2C_Slave_High_Add = \t0xA2;\t\t\t\t//eeprom address - 64k High\r\n//----------------------\r\nbyte [] EEPROM_Data = new byte [128];\r\n\r\n\r\n//---------------------End Command ----------------\r\n\r\nconst Int32\tDispenser_Motor1\t=\t6;\t\t \r\nconst Int32\tDispenser_Motor2\t=\t7;\t\t \r\nconst Int32\tDispenser_Motor3\t=\t8;\t\t \r\nconst Int32\tDispenser_Motor4\t=\t9;\t\t \r\nconst Int32\tDispenser_Motor5\t=\t10;\t\t \r\nconst Int32\tDispenser_Motor6\t=\t11;\t\t \r\nconst Int32\tDispenser_Motor7\t=\t12;\t\t \r\nconst Int32\tDispenser_Motor8\t=\t13;\t\t \r\n\r\nconst Int32 AN_IDS_PRESSENS_1\t=\t2;\r\nconst Int32 AN_IDS_PRESSENS_2\t=\t3;\r\nconst Int32 AN_IDS_PRESSENS_3\t=\t4;\r\nconst Int32 AN_IDS_PRESSENS_4\t=\t5;\r\nconst Int32 AN_IDS_PRESSENS_5\t=\t6;\r\nconst Int32 AN_IDS_PRESSENS_6\t=\t7;\r\nconst Int32 AN_IDS_PRESSENS_7\t=\t8;\r\nconst Int32 AN_IDS_PRESSENS_8\t=\t9;\r\n\r\nconst Int32\tF2_LS_01_Direct\t=\t0x60000420\t;\t//\tReads the direct values that are currently being sent to the fpga.\trsv\t\trsv\t\trsv\t\t\t\t\t\trsv\t\t\t\t\t\tF2_LS_DISPENSER_UP_2\tF2_LS_DISPENSER_25_2\tF2_LS_DISPENSER_75_2\tF2_LS_DISPENSER_DOWN_2 \tF2_LS_DISPENSER_50_2\tF2_LS_DISPENSER_SPARE_2\tF2_LS_DISPENSER_UP_1\tF2_LS_DISPENSER_25_1 \tF2_LS_DISPENSER_75_1\tF2_LS_DISPENSER_DOWN_1\tF2_LS_DISPENSER_50_1\tF2_LS_DISPENSER_SPARE_1\t\t\t\r\nconst Int32\tF2_LS_02_Direct\t=\t0x60000430\t;\t//\tReads the direct values that are currently being sent to the fpga.\trsv\t\trsv\t\trsv\t\t\t\t\t\trsv\t\t\t\t\t\tF2_LS_DISPENSER_UP_4\tF2_LS_DISPENSER_25_4\tF2_LS_DISPENSER_75_4\tF2_LS_DISPENSER_DOWN_4\tF2_LS_DISPENSER_50_4\tF2_LS_DISPENSER_SPARE_4\tF2_LS_DISPENSER_UP_3\tF2_LS_DISPENSER_25_3 \tF2_LS_DISPENSER_75_3\tF2_LS_DISPENSER_DOWN_3\tF2_LS_DISPENSER_50_3\tF2_LS_DISPENSER_SPARE_3\t\t\t\r\nconst Int32\tF2_LS_03_Direct\t=\t0x60000440\t;\t//\tReads the direct values that are currently being sent to the fpga.\trsv\t\trsv\t\trsv\t\t\t\t\t\trsv\t\t\t\t\t\tF2_LS_DISPENSER_UP_6 \tF2_LS_DISPENSER_25_6 \tF2_LS_DISPENSER_75_6 \tF2_LS_DISPENSER_DOWN_6\tF2_LS_DISPENSER_50_6\tF2_LS_DISPENSER_SPARE_6\tF2_LS_DISPENSER_UP_5\tF2_LS_DISPENSER_25_5 \tF2_LS_DISPENSER_75_5\tF2_LS_DISPENSER_DOWN_5\tF2_LS_DISPENSER_50_5\tF2_LS_DISPENSER_SPARE_5\t\t\t\r\nconst Int32\tF2_LS_04_Direct =\t0x60000480\t;\t//\tReads the direct values that are currently being sent to the fpga.\trsv\t\trsv\t\trsv\t\t\t\t\t\trsv\t\t\t\t\t\tF2_LS_DISPENSER_UP_8\tF2_LS_DISPENSER_25_8\tF2_LS_DISPENSER_75_8\tF2_LS_DISPENSER_DOWN_8\tF2_LS_DISPENSER_50_8\tF2_LS_DISPENSER_SPARE_8\tF2_LS_DISPENSER_UP_7\tF2_LS_DISPENSER_25_7 \tF2_LS_DISPENSER_75_7\tF2_LS_DISPENSER_DOWN_7\tF2_LS_DISPENSER_50_7\tF2_LS_DISPENSER_SPARE_7\t\t\t\r\n\r\nconst Int32 Dispenser_Valve1\t=\t0;\r\nconst Int32 Dispenser_Valve2\t=\t1;\r\nconst Int32 Dispenser_Valve3\t=\t2;\r\nconst Int32 Dispenser_Valve4\t=\t3;\r\nconst Int32 Dispenser_Valve5\t=\t4;\r\nconst Int32 Dispenser_Valve6\t=\t5;\r\nconst Int32 Dispenser_Valve7\t=\t6;\r\nconst Int32 Dispenser_Valve8\t=\t7;\r\n\r\nconst ushort MinPress_Mbar_Add =0x5c ;\r\nconst ushort MaxPress_Mbar_Add =0x60 ;\r\n\r\nconst Int32 F3_VALVE_OUT\t= 0x600000e2;\t\t\r\n\r\n//string path = \"C:\\\\Dispenser_setup\\\\Log\\\\\"; \r\n\r\n\r\n//Int32[] Start_Table;\r\n\r\nInt32[] Start_Table = new Int32 [10000];\r\n\r\nUInt32 [] Motor_Dir=new UInt32 [8] {0,0,0,0,0,0,0,0};\r\n\r\nstring Dispenser_Fname ;\r\n\r\nInt32 Dispenser_ptr =-1;\r\n\r\nInt32 [] Dispenser_press= new Int32[8]{0,0,0,0,0,0,0,0};\r\nInt32 max_pressure_level = 20000;\r\nInt32 min_pressure_level = -20000;\r\n\t\r\nInt32 [] A2D_Dispenser= new Int32[8]{0,0,0,0,0,0,0,0};\r\nInt32 Loop_cnt= 1;\r\nInt32 Loop_length=1;\r\n\r\nInt32 PressureSensorType= 1;\t\t//1- new -1up +10 . 0-old 0 to +10\r\nInt32\tTemp_Delay=0;\r\n\r\n\r\nUInt32 RD_LS_01_Direct;\r\nUInt32 RD_LS_02_Direct;\r\nUInt32 RD_LS_03_Direct;\r\nUInt32 RD_LS_04_Direct;\r\n\r\nlong Lebel1_time;\r\nlong Lebel2_time;\r\n\r\nlong time_Table;\r\n\r\nInt32 msec_index=0;\r\n\r\nInt32 MaxPress_Mbar;\r\nInt32 MinPress_Mbar;\r\nstring state;\r\n\r\n\tpublic Int32 OnExecute(IProcedureContext context)\r\n {\r\n\t\tlong Max_PBU;\r\n\t\tInt32 Index=0;\r\n\t\tInt32 speed=0;\r\n\t\tInt32 Dispenser_Nm;\r\n\t\tthis.context = context;\r\n\t\r\n\t\tstring box_msg = \"Make sure Mixer Hot \";\r\n\t\tMessageBox.Show(box_msg);\r\n\t\t\r\n\t\tvar response1 = context.RequestUserInputFor<String>(\"Dispenser Number\", \"Enter Dispenser number to make priming (1-8):\");\r\n\t\tcontext.WriteLine(response1);\r\n\t\tDispenser_Nm = Int32.Parse(response1);\r\n\t\t\r\n\t\tcheck_Min_Max_Mbar(Dispenser_Nm);\r\n\t\r\n\t\tif (Dispenser_Nm==8)\r\n\t\t\tMax_PBU=6000;\r\n\t\telse\r\n\t\t\tMax_PBU=4000;\r\n\t\t\t\r\n\t\r\n\tif (!Directory.Exists(path))\r\n\t\t{\r\n\t\t\tDirectory.CreateDirectory(path);\r\n\t\t}\t\r\n\t\t\tcontext.WriteLine(path);\r\n\t\t\t\r\n\tcontext.Send<ProgressResponse>(\"ProgressRequest\" ,0xe0, 1);\r\n\r\n\tDispenser_Fname=path + \"Dispenser_Nm_\" + Dispenser_Nm+\"_\" + DateTime.Now.ToString(\"MM-dd-yy hh-mm\")+ \".csv\" ;\r\n\r\n\tcontext.WriteLine(Dispenser_Fname);\r\n\r\n\tcontext.WriteToFile(Dispenser_Fname,\"Dispenser Nm,\" + Dispenser_Nm + \"\\n\" );\r\n\tcontext.AppendToFile(Dispenser_Fname,\"Pressure,Command,Value,DateTime,Remark\\n\" ); \r\n\t\tfor(int j=0; j<2;j++)\r\n\t\t{\r\n\t\t\tfor(int i=0; i<4;i++)\r\n\t\t\t{\r\n\t\t\t\tstate=\"PBU No. \"+ (4*j+i+1 );\r\n\t\t\t\tStart_Table=BuildUp_Table;\r\n\t\t\t\tTable_Run(Dispenser_Nm );\r\n\t\t\t\tif (time_Table>300000)\r\n\t\t\t\t{\r\n\t\t\t\t\tcontext.AddResult(ResultType.Failed,\"PBU\", \"PBU No.\"+ (4*j+i+1 ) + \" Fail\");\r\n\t\t\t\t\treturn 0;\r\n\t\t\t\t}\r\n\t\t\t\t context.AddResult(ResultType.Passed,\"PBU\",\"PBU No.\"+ (4*j+i+1 ) + \" Pass\");\r\n\t\t\t\t\t\r\n\t\t\t}\r\n\t\t\tstate=\"Flow No.\"+ (j+1 ) ;\r\n\t\t\tStart_Table=Up_Table;\r\n\t\t\tTable_Run(Dispenser_Nm );\r\n\t\t\tif (time_Table<115000)\r\n\t\t\t\t{\r\n\t\t\t\t\tcontext.WriteLine(\"time_Table= \" +time_Table);\r\n\t\t\t\t\tcontext.AddResult(ResultType.Failed,\"Flow\", \"Flow No.\"+ (j+1) + \" Fail\");\r\n\t\t\t\t\treturn 0;\r\n\t\t\t\t}\r\n\t\t\t\t context.AddResult(ResultType.Passed,\"Flow\",\"Flow No.\"+ (j+1 ) + \" Pass\");\r\n\t\t\t\t\t\t\r\n\t\t}\r\n\t\t\t\t state=\"Last PBU \" ;\r\n\t\t\t\tStart_Table=BuildUp_Table; \r\n\t\t\t\tTable_Run(Dispenser_Nm );\r\n\t\t\t\tlong Time=Lebel2_time-Lebel1_time;\r\n\t\t\t\tif (Time>Max_PBU)\r\n\t\t\t\t { \r\n\t\t\t\t context.AddResult(ResultType.Failed,\"PBU\", \"PBU = \" +Time + \"msec \");\r\n\t\t\t\t state=\"PBU = \" +Time + \"msec \\tFail\";\r\n\t\t\t\t }\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t context.AddResult(ResultType.Passed,\"PBU\", \"PBU = \" +Time + \"msec \");\r\n\t\t\t\t state=\"PBU = \" +Time + \"msec \\tPass\";\r\n\t\t\t\t}\t\r\n\t\treturn 0;\r\n\t\t\r\n }\r\n\r\n/////////////////////////////////////////////\r\nvoid \t\tcheck_Min_Max_Mbar(Int32 i )\r\n{\r\n\tint k;\r\n\tstring s ;\r\n\ti--;\r\n\r\n\t\t\t\t\tcontext.WriteLine(\"-------------- write Enable Channel ------------\");\t//debug\r\n\t\tenable_channel(i); // Chanel 0-7 => Disp0enser 0-7 \r\n\t\t\t\t\tcontext.WriteLine(\"-------------- Read_header ------------\");\t//debug\r\n\r\n\t\t\t\t\tcontext.WriteLine(\"-------------- write_address_eeprom ------------\");\t//debug\r\n\t\twrite_address_eeprom (I2C_Slave_Low_Add,MinPress_Mbar_Add);\r\n\t\t\t\t\tcontext.WriteLine(\"-------------- read_data_from_eeprom ------------\");\t//debug\r\n\t\tread_data_from_eeprom (I2C_Slave_Low_Add,1);\r\n\t\tif \t(EEPROM_Data[0]==0\t)\r\n\t\t{\tPressureSensorType=0;\r\n\t\t\tcontext.WriteLine(\"PressureSensorType=0\" );\t//debug\r\n\t\t}\r\n\t\telse\t\r\n\t\t{\t\r\n\t\t\tPressureSensorType=1;\t\t\t\t\t\r\n\t\t\tcontext.WriteLine(\"PressureSensorType=1\" );\t//debug\r\n\t\t}\r\n\t\r\n}\t\r\n//----------------write address eeprom -------------------------\r\npublic void write_address_eeprom (UInt32 I2C_Add, UInt32 Eeprom_Add)\r\n{\t\r\n\tStubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();\r\n\tstubI2CWriteBytesRequest.I2CId = I2C_ID;\r\n\tstubI2CWriteBytesRequest.SlaveAddress = I2C_Add;\r\n\t\r\n\tUInt32 uInt32 = new UInt32();\r\n\tstubI2CWriteBytesRequest.BytesTWrite.Add(Convert.ToByte( (Eeprom_Add & 0xff00) >>8));\t//Byte High add to write\r\n\tstubI2CWriteBytesRequest.BytesTWrite.Add(Convert.ToByte(Eeprom_Add & 0xff));\t\t\t//Byte Low add to write\r\n\t\t\t\t\tcontext.WriteLine( (Eeprom_Add & 0xff00) >>8) ;\t//debug\r\n\t\t\t\t\tcontext.WriteLine( Eeprom_Add & 0xff);\t//debug\r\n\r\n\tcontext.Send<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);\t\r\n}\r\n//------------------- read Data from EEprom--------------------------\r\n\r\npublic void read_data_from_eeprom ( UInt32 I2C_Add, UInt32 cnt )\r\n{\r\n\tStubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();\r\n\tstubI2CReadBytesRequest.I2CId = I2C_ID;\r\n\tstubI2CReadBytesRequest.SlaveAddress = (I2C_Add + 1);\r\n\tstubI2CReadBytesRequest.NumberOfBytesToRead = cnt; // Number of bytes to read\r\n\r\n\tvar response1 = context.Send<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);\r\n\r\n\tfor(int i=0; i<cnt;i++)\r\n\t\t{\r\n\t\t\tEEPROM_Data[i]=Convert.ToByte(response1.ReadBytes[i]);\r\n\t\t\tcontext.WriteLine(EEPROM_Data[i] );\t//debug\r\n\r\n\t\t}\t\t\r\n}\t\r\n\r\n\r\n///////////////////////////////////////////////\r\n//----------- enable I2c channel --------------\r\npublic int enable_channel(Int32 Channel_ID) \r\n{\r\n\tuint Const_temp = 0x01;\t\r\n\t\r\n\tStubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();\r\n\tstubI2CWriteBytesRequest.I2CId = I2C_ID;\r\n\tstubI2CWriteBytesRequest.SlaveAddress = TCA9548A_address;\r\n\t\r\n\tConst_temp = Const_temp << Channel_ID;\r\n\tstubI2CWriteBytesRequest.BytesTWrite.Add(Const_temp);//enable i2c channel 0 Dispenser 1\r\n\r\n\tvar response = context.Send<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);\r\n\t\r\n\treturn 1;\r\n}\r\n\r\n\r\n////////////////////////////////////////////////////////////// \r\nInt32 Table_Run(Int32 Dispenser )\r\n\r\n{\r\n\tInt32 COMMAND=0;\r\n\tInt32 Data=0;\r\n\tInt32 count=0;\r\n\t\r\n\tDispenser--;\t\t//check from 0-7\r\n\t\r\n\tint j=0;\r\n\tvar stopwatch = new Stopwatch();\r\n\t\tstopwatch.Start();\r\n\t\r\n\t\tlong elapsed_time = stopwatch.ElapsedMilliseconds;\r\n\t\tcontext.WriteLine(elapsed_time);\r\n\t\t\r\n\twhile (count!=-1) \r\n\t{\r\n\tmsec_index=msec_index+1;\r\n\t\t\r\n\t\tif (Dispenser<2) \r\n\t\t\t{\r\n\t\t\t\tvar response1 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_01_Direct);\r\n\t\t\t\tRD_LS_01_Direct=response1.Value\t ;\r\n\t\t\t}\r\n\t\telse if ( (Dispenser<4) )\r\n\t\t\t{\r\n\t\t\t\tvar response1 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_02_Direct);\r\n\t\t\t\tRD_LS_02_Direct=response1.Value\t ;\r\n\t\t\t}\r\n\t\telse if ( (Dispenser<6) )\r\n\t\t\t{\r\n\t\t\t\tvar response1 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_03_Direct);\r\n\t\t\t\tRD_LS_03_Direct=response1.Value\t ;\r\n\t\t\t}\r\n\t\telse\r\n\t\t\t{\r\n\t\t\t\tvar response1 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_04_Direct);\r\n\t\t\t\tRD_LS_04_Direct=response1.Value\t ;\r\n\t\t\t}\r\n\t\tif (Dispenser<4) \r\n\t\t\t{\r\n\t\t\tvar response2 = context.Send<StubIntADCReadResponse>(\"StubIntADCReadRequest\" ,0x8000 + AN_IDS_PRESSENS_1);\r\n\t\t\t\tA2D_Dispenser[0]=(response2.SamplingInBits)>>16;\r\n\t\t\t\tA2D_Dispenser[1] =(response2.SamplingInBits) & 0x0000ffff;\r\n\t\t\t\tA2D_Dispenser[2] =(response2.VoltageSamplingMv)>>16;\r\n\t\t\t\tA2D_Dispenser[3] =(response2.VoltageSamplingMv) & 0x0000ffff;\r\n\t\t\t}\r\n\t\telse\r\n\t\t\t{\r\n\t\t\tvar\tresponse3 = context.Send<StubIntADCReadResponse>(\"StubIntADCReadRequest\" ,0x8000 + AN_IDS_PRESSENS_5);\r\n\t\t\t\tA2D_Dispenser[4] =(response3.SamplingInBits)>>16;\r\n\t\t\t\tA2D_Dispenser[5] =(response3.SamplingInBits)& 0x0000ffff;\r\n\t\t\t\tA2D_Dispenser[6] =(response3.VoltageSamplingMv)>>16;\r\n\t\t\t\tA2D_Dispenser[7] =(response3.VoltageSamplingMv)& 0x0000ffff;\r\n\t\t\t}\r\n\t\t\t\t\r\n\t\t\tCOMMAND=Start_Table[count];\r\n\t\t\tData=Start_Table[(count+1)];\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t//Index=Index+2;\r\n\t\t\tswitch (COMMAND)\r\n\t\t\t\t{\r\n\t\t\t\tcase CMD_RUN:\r\n\t\t\t\t\tMotor_Run(Data,Dispenser);\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_VALVE:\r\n\t\t\t\t\tValve_3W(Data,Dispenser);\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_STOP:\r\n\t\t\t\t\tMotor_Stop(Data,Dispenser);\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_DLY:\r\n\t\t\t\t\tDelay_on_second(Data,Dispenser);\r\n\t\t\t\t\tif (Temp_Delay ==0)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmax_pressure_level=20000;\t\r\n\t\t\t\t\t\tmin_pressure_level=-20000;\t\r\n\t\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_TIME:\r\n\t\t\t\t\tPrint_Time();\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_PRESS:\r\n\t\t\t\t\tmax_pressure_level=Data;\r\n\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",Max_pressure_level is, \" + Data +\",\"+DateTime.Now+\"\\n\");\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_PRESL:\r\n\t\t\t\t\tmin_pressure_level=Data;\r\n\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",Min_pressure_level is, \" + Data +\",\"+DateTime.Now+\"\\n\");\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_LBL:\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",Label,\" + Data+\",\"+DateTime.Now+\"\\n\");\r\n\t\t\t\t\tif(Data==1)\r\n\t\t\t\t\t\tLebel1_time=stopwatch.ElapsedMilliseconds;\r\n\t\t\t\t\tif(Data==2)\r\n\t\t\t\t\t\tLebel2_time=stopwatch.ElapsedMilliseconds;\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_SMP:\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",SampleRate,\" + Data+\",\"+DateTime.Now+\"\\n\");\r\n\t\t\t\t\tDispenser_sample_rate =Data;\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_END:\r\n\t\t\t\t\tcount=-1;\r\n\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",End testing,,\"+DateTime.Now+\"\\n\");\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\r\n\t\t\t\tcase CMD_MTV_OPEN:\r\n\t\t\t\t\topen_midtank_valve(Data,Dispenser);\r\n\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",OPEN MIDTANK, \" + Dispenser+\",\"+DateTime.Now+\"\\n\");\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase CMD_MTV_CLOSE:\r\n\t\t\t\t\tclose_midtank_valve(Data,Dispenser);\r\n\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",CLOSE MIDTANK, \" + Dispenser+\",\"+DateTime.Now+\"\\n\");\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\r\n\t\t\t\tcase CMD_LOOP_NM:\r\n\t\t\t\t\r\n\t\t\t\t\tLoop_cnt=Data-1;\r\n\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",Counter Loop,\"+ Data+\",\"+DateTime.Now +\"\\n\");\r\n\t\t\t\t\tcount = count+2;\t\t\t\t\t\t\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase CMD_LOOP:\r\n\t\t\t\t\r\n\t\t\t\t\tif (Loop_cnt!=0)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\"Counter Loop,\"+ Loop_cnt+\",\"+DateTime.Now+\"\\n\" );\r\n\t\t\t\t\t\tcount = count+2*Data;\r\n\t\t\t\t\t\tLoop_cnt--;\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",End loop,,\"+DateTime.Now +\"\\n\");\r\n\t\t\t\t\t\tcount = count+2;\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t}\t\r\n\t\t\t\r\n\t\t\tlong elapsed_time1 = stopwatch.ElapsedMilliseconds;\r\n\t\t\tlong elapsed_time2= elapsed_time1-elapsed_time;\r\n\t\t\tif (elapsed_time2>95)\r\n\t\t\telapsed_time2=95;\t\t//minimum time\r\n\t\t\t\tThread.Sleep(100-(int )(elapsed_time2));\r\n\r\n\t\t\telapsed_time = stopwatch.ElapsedMilliseconds;\t\t\r\n\r\n\r\n\t\t\tj++;\r\n\t\t\t\tif (j==10)\r\n\t\t\t\t{\r\n\t\t\t\t\tj=0;\r\n\t\t\t\t\tcontext.WriteLine(Dispenser_press[Dispenser]+ \" mBar\\t\"+state + \"\\tTime-\" + (elapsed_time/1000));\r\n\t\t\t\t}\r\n\t}\r\n\ttime_Table=elapsed_time;\r\n\treturn 0;\r\n}\r\n\r\n///////////////////////////////////////////////////////////////////\t\r\nInt32 Motor_Run(Int32 speed,Int32 Dispenser)\r\n\r\n{\r\n\r\n\tswitch (Dispenser)\r\n\t\t{\r\n\t\tcase 0:\r\n\t\t\t\tif ( speed<0)\r\n\t\t\t\t{\r\n\t\t\t\t\tMotor_Dir[0]=2;\r\n\t\t\t\t\tif ((RD_LS_01_Direct & 0x04)!=0x04)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor1, false, (-speed));\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\t\r\n\t\t\t\t\tMotor_Dir[0]=1;\r\n\t\t\t\t\tif ((RD_LS_01_Direct & 0x20)!=0x20)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor1, true, (speed));\r\n\t\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase 1:\r\n\t\t\t\tif ( speed<0)\r\n\t\t\t\t{\r\n\t\t\t\t\tMotor_Dir[1]=2;\r\n\t\t\t\t\tif ((RD_LS_01_Direct & 0x100)!=0x100)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor2, false, (-speed));\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\t\r\n\t\t\t\t\tMotor_Dir[1]=1;\r\n\t\t\t\t\tif ((RD_LS_01_Direct & 0x800)!=0x800)\r\n\t\t\t\t\t{\t\t\t\t\t\t\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor2, true, (speed));\r\n\t\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase 2:\r\n\t\t\t\tif ( speed<0)\r\n\t\t\t\t{\r\n\t\t\t\t\tMotor_Dir[2]=2;\r\n\t\t\t\t\tif ((RD_LS_02_Direct & 0x04)!=0x04)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor3, false, (-speed));\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\t\r\n\t\t\t\t\tMotor_Dir[2]=1;\r\n\t\t\t\t\tif ((RD_LS_02_Direct & 0x20)!=0x20)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now+ \",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor3, true, (speed));\r\n\t\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase 3:\r\n\t\t\t\tif ( speed<0)\r\n\t\t\t\t{\r\n\t\t\t\t\tMotor_Dir[3]=2;\r\n\r\n\t\t\t\t\tif ((RD_LS_02_Direct & 0x100)!=0x100)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now+ \",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor4, false, (-speed));\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\t\r\n\t\t\t\t\tMotor_Dir[3]=1;\r\n\r\n\t\t\t\t\tif ((RD_LS_02_Direct & 0x800)!=0x800)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor4, true, (speed));\r\n\t\t\t\t}\r\n\t\t\tbreak;\r\n\t\t\r\n\t\tcase 4:\r\n\t\t\t\tif ( speed<0)\r\n\t\t\t\t{\r\n\t\t\t\t\tMotor_Dir[4]=2;\r\n\t\t\t\t\tif ((RD_LS_03_Direct & 0x04)!=0x04)\r\n\t\t\t\t\t{ \r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now+ \",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor5, false, (-speed));\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\t\r\n\t\t\t\t\tMotor_Dir[4]=1;\r\n\t\t\t\t\tif ((RD_LS_03_Direct & 0x20)!=0x20)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now+ \",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor5, true, (speed));\r\n\t\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase 5:\r\n\t\t\t\tif ( speed<0)\r\n\t\t\t\t{\r\n\t\t\t\t\tMotor_Dir[5]=2;\r\n\t\t\t\t\tif ((RD_LS_03_Direct & 0x100)!=0x100)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor6, false, (-speed));\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\t\r\n\t\t\t\t\tMotor_Dir[5]=1;\r\n\t\t\t\t\tif ((RD_LS_03_Direct & 0x800)!=0x800)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now+ \",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor6, true, (speed));\r\n\t\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase 6:\r\n\t\t\t\tif ( speed<0)\r\n\t\t\t\t{\r\n\t\t\t\t\tMotor_Dir[6]=2;\r\n\t\t\t\t\tif ((RD_LS_04_Direct & 0x04)!=0x04)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor7, false, (-speed));\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\t\r\n\t\t\t\t\tMotor_Dir[6]=1;\r\n\t\t\t\t\tif ((RD_LS_04_Direct & 0x20)!=0x20)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor7, true, (speed));\r\n\t\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase 7:\r\n\t\t\t\tif ( speed<0)\r\n\t\t\t\t{\r\n\t\t\t\t\tMotor_Dir[7]=2;\r\n\r\n\t\t\t\t\tif ((RD_LS_04_Direct & 0x100)!=0x100)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor8, false, (-speed));\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\t\r\n\t\t\t\t\tMotor_Dir[7]=1;\r\n\r\n\t\t\t\t\tif ((RD_LS_04_Direct & 0x800)!=0x800)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor8, true, (speed));\r\n\t\t\t\t}\r\n\t\t\tbreak;\r\n\t\t\t\r\n\t\tdefault:\r\n\t\t\tbreak;\r\n\r\n\t\t}\r\n \tcontext.AppendToFile(Dispenser_Fname,\",Run,\" +speed+\",\"+DateTime.Now +\"\\n\" ); \r\n\r\n\treturn 1;\r\n} \r\n \r\n \t\r\n Int32 Valve_3W(Int32 Valve_Value,Int32 Dispenser)\r\n{\r\n\tif ( Valve_Value==1)\r\n\t\tcontext.Send<StubValveResponse>(\"StubValveRequest\" ,Dispenser_Valve1+Dispenser, 3, true);\t//3 3Way\r\n\telse\t\r\n\t\tcontext.Send<StubValveResponse>(\"StubValveRequest\" ,Dispenser_Valve1+Dispenser, 3, false); //3 3Way\r\n \r\n\tcontext.AppendToFile(Dispenser_Fname,\",Dispenser Valve position is, \" + Valve_Value+\",\"+DateTime.Now +\"\\n\" );\r\n\r\n\treturn 1;\t\r\n}\t\r\n//--------------------------------------- \r\n\r\n Int32 Motor_Stop(Int32 Stop_Value,Int32 Dispenser )\r\n{\r\n\tcontext.Send<StubMotorStopResponse>(\"StubMotorStopRequest\" ,Dispenser_Motor1+Dispenser, Stop_Value);\r\n\t\r\n\tcontext.AppendToFile(Dispenser_Fname,\",Motor Stop,\" + Stop_Value+\",\"+DateTime.Now +\"\\n\");\r\n\tMotor_Dir[Dispenser]=0;\r\n\treturn 1;\t\r\n}\r\n\r\n//--------------------------------------- \r\n\r\n Int32 Delay_on_second(Int32 Delay,Int32 Dispenser )\r\n{\r\n//Int32 temp1;\r\nInt32 pressure_om_mBAR=0;\r\n\tif \t(Temp_Delay ==0)\r\n\t{\r\n\t\tcontext.AppendToFile(Dispenser_Fname,\",DLY, \" + Delay +\",\"+DateTime.Now+\"\\n\");\r\n\t\tTemp_Delay = Delay *10 -1;\r\n//\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontext.Write(\"A\");\t\t//debug\r\n\t}\r\n\telse\t\r\n\t\t\tTemp_Delay--;\r\n\t\t\t\r\n\tif ( LimitSW_Dispenser(Dispenser)==0)\r\n \t {\t\r\n \t \tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now+\",Warning Motor on Limit\\n\");\r\n\t\t\tMotorStop(Dispenser);\r\n\t\t\tTemp_Delay =0;\t//end delay\r\n//\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontext.Write(\"C\");\t\t//debug\r\n\r\n\t\t\treturn 0 ;\r\n \t }\r\n\t\t\t\t\t\r\n\tpressure_om_mBAR=Calc_mBAR(Dispenser,true);\r\n \tif (pressure_om_mBAR > max_pressure_level)\r\n \t \t{\r\n\t\t//\tMotorStop(Dispenser);\r\n\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Pressure too high\\n\");\r\n\t\t\tTemp_Delay =0;\t//end delay\r\n//\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontext.Write(\"D\");\t\t//debug\r\n\t\t\t\r\n\t\t\treturn 0;\r\n\t\t}\r\n \tif (pressure_om_mBAR < min_pressure_level)\r\n \t \t{\r\n\t\t//\tMotorStop(Dispenser);\r\n\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Pressure too low\\n\");\r\n\t\t\tTemp_Delay =0;\t//end delay\r\n//\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontext.Write(\"D\");\t\t//debug\r\n\t\t\t\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\t\r\n\t\t\r\n \treturn 1;\r\n}\t\r\n \t \t\r\nInt32 LimitSW_Dispenser(Int32 Dispenser) \r\n{\r\n\r\n\tif (Dispenser==0)\r\n\t\t\r\n\t\t{\r\n\t\t\t\r\n//\t\tvar response1 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_01_Direct);\r\n\r\n\t\t\t\tif (((RD_LS_01_Direct & 0x04)!=0x04) && (Motor_Dir[0]==2))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\tif (((RD_LS_01_Direct & 0x20)!=0x20) && (Motor_Dir[0]==1))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\treturn 1;\t\t\r\n\t\t}\r\n\t\t\r\n\tif (Dispenser==1)\r\n\t\t\r\n\t\t{\r\n//\t\tvar response2 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_01_Direct);\r\n\t\t\t\tif (((RD_LS_01_Direct & 0x100)!=0x100) && (Motor_Dir[1]==2))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\tif (((RD_LS_01_Direct & 0x800)!=0x800) && (Motor_Dir[1]==1))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\treturn 1;\t\t\r\n\t\t}\r\n\t\t\r\n\r\n\tif (Dispenser==2)\r\n\t\t\r\n\t\t{\r\n\t\t\t\t\r\n\t\t//var response3 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_02_Direct);\r\n\t\t\t\tif (((RD_LS_02_Direct & 0x04)!=0x04) && (Motor_Dir[2]==2))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\tif (((RD_LS_02_Direct & 0x20)!=0x20) && (Motor_Dir[2]==1))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\treturn 1;\t\t\r\n\t\t\t\r\n\t\t}\r\n\t\t\r\n\tif (Dispenser==3)\r\n\t\t\r\n\t\t{\r\n\t\t\t\tvar response4 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_02_Direct);\r\n\t\t\t\tif (((RD_LS_02_Direct & 0x100)!=0x100) && (Motor_Dir[3]==2))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\tif (((RD_LS_02_Direct & 0x800)!=0x800) && (Motor_Dir[3]==1))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\treturn 1;\t\t\r\n\t\t}\r\n\t\t\r\n\t\t\r\n\t\t\r\n\r\n\tif (Dispenser==4)\r\n\t\t\r\n\t\t{\r\n\t\t\t\r\n//\t\tvar response1 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_01_Direct);\r\n\t\t\t\tif (((RD_LS_03_Direct & 0x04)!=0x04) && (Motor_Dir[4]==2))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\tif (((RD_LS_03_Direct & 0x20)!=0x20) && (Motor_Dir[4]==1))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\treturn 1;\t\t\r\n\t\t}\r\n\t\t\r\n\tif (Dispenser==5)\r\n\t\t\r\n\t\t{\r\n//\t\tvar response2 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_01_Direct);\r\n\t\t\t\tif (((RD_LS_03_Direct & 0x100)!=0x100) && (Motor_Dir[5]==2))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\tif (((RD_LS_03_Direct & 0x800)!=0x800) && (Motor_Dir[5]==1))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\treturn 1;\t\t\r\n\t\t}\r\n\t\t\r\n\r\n\tif (Dispenser==6)\r\n\t\t\r\n\t\t{\r\n\t\t\t\t\r\n\t\t//var response3 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_02_Direct);\r\n\t\t\t\tif (((RD_LS_04_Direct & 0x04)!=0x04) && (Motor_Dir[6]==2))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\tif (((RD_LS_04_Direct & 0x20)!=0x20) && (Motor_Dir[6]==1))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\treturn 1;\t\t\r\n\t\t\t\r\n\t\t}\r\n\t\t\r\n\tif (Dispenser==7)\r\n\t\t\r\n\t\t{\r\n//\t\tvar response4 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_02_Direct);\r\n\t\t\t\tif (((RD_LS_04_Direct & 0x100)!=0x100) && (Motor_Dir[7]==2))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\tif (((RD_LS_04_Direct & 0x800)!=0x800) && (Motor_Dir[7]==1))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\treturn 1;\t\t\r\n\t\t}\r\n\t\t\r\n\t\t\r\n\t\treturn 0;\r\n}\t\t\r\n\t\t\r\n\t \t\r\nInt32 Print_Time() \r\n{\t\r\n\t\tcontext.AppendToFile(Dispenser_Fname,\",Time is\\t,,\"+ DateTime.Now +\"\\n\" ); \r\n\r\n\t\treturn 1;\r\n}\t\r\n\r\n\r\n\r\nInt32 Calc_mBAR(Int32 Dispenser, bool save_press)\r\n{\t\t\r\nInt32 Data;\r\nInt32 Sense1;\r\nInt32 temp=0;\r\n\r\n\t\tData =A2D_Dispenser[Dispenser];\r\n\t\tif (Data<100)\r\n\t\t\ttemp=-1;\r\n\t\tData=Data-710;\r\n\t\tif (Data<0)\r\n\t\tData=0;\r\n\r\n\t\tData=Data*(10000+PressureSensorType*1000)/2840;\t//\tfor -1 to 10 bar Press_Sensor_Type=1 else 0\r\n\t\tData=Data-1000*PressureSensorType; \t\t\t// for -1 to 10 bar\r\n\r\n\t\tif (temp==-1)\t\t\t\t\t\t//if SamplingInBits <100 then No pressure sensor exist\r\n\t\tSense1=-9999\t;\r\n\t\telse\t\r\n\t\tSense1=Data\t;\r\n\t\tif (\t((msec_index) % (Dispenser_sample_rate)) == 0)\r\n\t\t{\r\n\t\t\tcontext.AppendToFile(Dispenser_Fname,\"\" + Sense1+\"\\n\");\r\n\t\t}\r\n\t\tDispenser_press[Dispenser]=Sense1;\r\n\treturn Sense1;\r\n\t\t\t\r\n } \t\r\n\r\n \r\n//--------------------------------\r\nint open_midtank_valve (Int32 valve_type,Int32 valve_nm)\t\t//valve_type=0 is Air ,1 is Ink ; valve_nm 0-7\r\n{\r\n\tSetBit (F3_VALVE_OUT,((valve_type+1)*8)- valve_nm-1, 1);\r\n\treturn 1;\r\n\r\n}\r\n//--------------------------------\t\r\nint close_midtank_valve (Int32 valve_type,Int32 valve_nm)\t\t//valve_type=0 is Air ,1 is Ink ; valve_nm 0-7\r\n{\r\n\tSetBit (F3_VALVE_OUT,((valve_type+1)*8)- valve_nm-1, 0);\r\n\treturn 1;\r\n}\r\n//--------------------------------\r\nInt32 SetBit(Int32 Adr, Int32 BitNo, Int32 Bit)\r\n{\r\n\tInt32 BitMask;\r\n\r\n var response = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" , F3_VALVE_OUT);\r\n\tInt32 RV = (Int32) response.Value & 0xffff;\r\n\t\r\n\t\r\n\tif (Bit == 0x1) \r\n\t{\r\n\t\tBitMask = 0x1 << BitNo;\r\n\t\tRV = RV | BitMask;\r\n\t\tcontext.Send<StubFpgaWriteRegResponse>(\"StubFpgaWriteRegRequest\" ,F3_VALVE_OUT , RV);\r\n\t}\r\n\telse if (Bit == 0x0)\r\n\t{\r\n\t\tBitMask = ~(0x1 << BitNo);\r\n\t\tRV = RV & BitMask;\r\n\t\tcontext.Send<StubFpgaWriteRegResponse>(\"StubFpgaWriteRegRequest\" ,F3_VALVE_OUT , RV);\r\n\t}\r\n\treturn 1;\r\n}\r\n//---------------------------------- \r\n void MotorStop(Int32 i)\r\n{\r\n \r\ncontext.Send<StubMotorStopResponse>(\"StubMotorStopRequest\" ,Dispenser_Motor1+i, 2);\r\nMotor_Dir[i]=0;\t//0 stop 1- up 2-dn\r\n\r\n}\r\n \r\n}","IsEntryPoint":true},{"$id":"4","Name":"Service.csx","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Entities;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}","IsEntryPoint":false}]},"Inputs":{"$id":"5","$values":[]},"Variables":{"$id":"6","$values":[{"$id":"7","Name":null,"Value":null}]},"ReferenceAssemblies":{"$id":"8","$values":[{"$id":"9","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"10","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"11","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"12","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"13","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"14","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"15","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"16","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"17","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"18","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"19","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"Resources":{"$id":"20","$values":[]},"Dialogs":{"$id":"21","$values":[]},"ID":"b5924fbd-808a-41e3-99fb-980cd8df910c","ApartmentState":"STA"} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Priming1.pproj b/Software/Stubs Collection/stubs/Scripts/Priming1.pproj
deleted file mode 100644
index 4a7f5fcc3..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Priming1.pproj
+++ /dev/null
@@ -1 +0,0 @@
-{"$id":"1","Visibility":"Public","Inputs":{"$id":"2","$values":[]},"Variables":{"$id":"3","$values":[]},"Resources":{"$id":"4","$values":[]},"Dialogs":{"$id":"5","$values":[]},"ID":"eb73dbd4-1e1e-4f5d-adc8-5f159edab802","Name":"Priming1","Description":"Used for a dispenser priming","ApartmentState":"STA","ReferenceAssemblies":{"$id":"6","$values":[{"$id":"7","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"8","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"9","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"10","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"11","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"12","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"13","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"14","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"15","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"16","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"17","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"Scripts":{"$id":"18","$values":[{"$id":"19","Name":"Program.csx","IsEntryPoint":true,"Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Entities;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\nusing System.IO;\r\nusing System.Diagnostics;\r\nusing System.Windows.Forms;\r\n\r\n\r\npublic class Program\r\n{\r\n\r\n\r\nprivate IProcedureContext context;\r\n\r\n//---------------------Start Command ----------------\r\nconst Int32\tCMD_RUN\t=\t0;\t\t//Run on Pulse Per Secound .positive run Up and negative run Down b\r\nconst Int32\tCMD_STOP=\t1;\t\t//0;Hard stop(Defualt);1-Soft stop;2-Hard Hiz;3-Soft Hiz\r\nconst Int32\tCMD_VALVE=\t2;\t\t//0-to Midtank ,1-to head \r\nconst Int32\tCMD_DLY\t=\t3;\t\t//delay in Seconds .\r\nconst Int32\tCMD_TIME=\t4;\t\t//Print Time .\r\nconst Int32\tCMD_PRESS=\t5;\t\t//return from Delay loop when pressure is high (on mBAR) .\r\nconst Int32 CMD_LOOP_NM=6;\t\t//NUMBER OF counter\r\nconst Int32 CMD_LOOP=\t7;\t\t//jump up(+) or down(-) command u\r\nconst Int32 CMD_MTV_OPEN =\t8;\t\t//0 Air ; 1 Ink\r\nconst Int32 CMD_MTV_CLOSE=\t9;\t\t//0 Air ; 1 Ink\r\nconst Int32 CMD_LBL=\t10;\t//label for user \r\nconst Int32 CMD_SMP=\t11; //sample rate ,defualt 100msec (1); for 1 second is 10.\r\nconst Int32 CMD_PRESL=\t12; //return from Delay loop when pressure is low (on mBAR) .\r\n\r\nconst Int32\tCMD_END\t=\t13;\t//end loop .\r\n \r\n\r\nInt32[] BuildUp_Table = new int []\r\n{\r\n\tCMD_LOOP_NM,3,\r\n\r\n\tCMD_VALVE,0,\r\n\tCMD_DLY,1, \r\n\tCMD_VALVE,1,\r\n\tCMD_DLY,1, \r\n\tCMD_LOOP,-4,\r\n\r\n\r\n\tCMD_VALVE,1,\r\n\tCMD_PRESL,800,\r\n\tCMD_DLY,60, \r\n\r\n\r\n\tCMD_VALVE,0,\r\n\tCMD_PRESS,1000,\t//mbar --> 1000 = 100% work, 4000 = 200% work, 350 = 20% work\r\n\tCMD_RUN,1068,\r\n\tCMD_DLY,150, \t\t\r\n\tCMD_LBL,1,\r\n\tCMD_PRESS,2000,\t//mbar --> 2000 = 100% work, 4000 = 200% work, 350 = 20% work\r\n\tCMD_DLY,60, \t\t\r\n\tCMD_LBL,2,\r\n\tCMD_PRESS,3000,\r\n\tCMD_DLY,60, // to limit\r\n\tCMD_STOP,0,\r\n\tCMD_VALVE,1,\r\n\tCMD_DLY,1, \r\n\r\n\t\r\n\tCMD_END,3,\r\n};\r\n\t\r\n\r\nInt32[] Up_Table = new int []\r\n{\r\n\tCMD_VALVE,0,\r\n\tCMD_DLY,1, \r\n\tCMD_VALVE,1,\r\n\tCMD_DLY,1, \r\n\tCMD_LOOP,-4,\r\n\r\n\tCMD_VALVE,1,\r\n\tCMD_PRESL,800,\r\n\tCMD_DLY,60, \r\n\t\r\n\tCMD_PRESS,3000,\t//mbar --> 1000 = 100% work, 4000 = 200% work, 350 = 20% work\r\n\tCMD_RUN,534, // 100%\r\n\tCMD_DLY,120,\r\n\tCMD_STOP,0,\r\n\tCMD_END,3,\r\n};\r\nInt32 Dispenser_sample_rate= 1; \r\n\r\n\tstring path = @\"C:\\Dispenser_setup\\Log\\\"; \t\r\n//----------------------\r\nconst UInt32 I2C_ID \t\t\t= \t4;\t\t\t\t\t//MCU_I2C4 \r\nconst UInt32 TCA9548A_address \t=\t0xE2;\t \t\r\nconst UInt32 I2C_Slave_Low_Add \t= \t0xA0;\t\t\t\t//eeprom address - 64k low \r\nconst UInt32 I2C_Slave_High_Add = \t0xA2;\t\t\t\t//eeprom address - 64k High\r\n//----------------------\r\nbyte [] EEPROM_Data = new byte [128];\r\n\r\n\r\n//---------------------End Command ----------------\r\n\r\nconst Int32\tDispenser_Motor1\t=\t6;\t\t \r\nconst Int32\tDispenser_Motor2\t=\t7;\t\t \r\nconst Int32\tDispenser_Motor3\t=\t8;\t\t \r\nconst Int32\tDispenser_Motor4\t=\t9;\t\t \r\nconst Int32\tDispenser_Motor5\t=\t10;\t\t \r\nconst Int32\tDispenser_Motor6\t=\t11;\t\t \r\nconst Int32\tDispenser_Motor7\t=\t12;\t\t \r\nconst Int32\tDispenser_Motor8\t=\t13;\t\t \r\n\r\nconst Int32 AN_IDS_PRESSENS_1\t=\t2;\r\nconst Int32 AN_IDS_PRESSENS_2\t=\t3;\r\nconst Int32 AN_IDS_PRESSENS_3\t=\t4;\r\nconst Int32 AN_IDS_PRESSENS_4\t=\t5;\r\nconst Int32 AN_IDS_PRESSENS_5\t=\t6;\r\nconst Int32 AN_IDS_PRESSENS_6\t=\t7;\r\nconst Int32 AN_IDS_PRESSENS_7\t=\t8;\r\nconst Int32 AN_IDS_PRESSENS_8\t=\t9;\r\n\r\nconst Int32\tF2_LS_01_Direct\t=\t0x60000420\t;\t//\tReads the direct values that are currently being sent to the fpga.\trsv\t\trsv\t\trsv\t\t\t\t\t\trsv\t\t\t\t\t\tF2_LS_DISPENSER_UP_2\tF2_LS_DISPENSER_25_2\tF2_LS_DISPENSER_75_2\tF2_LS_DISPENSER_DOWN_2 \tF2_LS_DISPENSER_50_2\tF2_LS_DISPENSER_SPARE_2\tF2_LS_DISPENSER_UP_1\tF2_LS_DISPENSER_25_1 \tF2_LS_DISPENSER_75_1\tF2_LS_DISPENSER_DOWN_1\tF2_LS_DISPENSER_50_1\tF2_LS_DISPENSER_SPARE_1\t\t\t\r\nconst Int32\tF2_LS_02_Direct\t=\t0x60000430\t;\t//\tReads the direct values that are currently being sent to the fpga.\trsv\t\trsv\t\trsv\t\t\t\t\t\trsv\t\t\t\t\t\tF2_LS_DISPENSER_UP_4\tF2_LS_DISPENSER_25_4\tF2_LS_DISPENSER_75_4\tF2_LS_DISPENSER_DOWN_4\tF2_LS_DISPENSER_50_4\tF2_LS_DISPENSER_SPARE_4\tF2_LS_DISPENSER_UP_3\tF2_LS_DISPENSER_25_3 \tF2_LS_DISPENSER_75_3\tF2_LS_DISPENSER_DOWN_3\tF2_LS_DISPENSER_50_3\tF2_LS_DISPENSER_SPARE_3\t\t\t\r\nconst Int32\tF2_LS_03_Direct\t=\t0x60000440\t;\t//\tReads the direct values that are currently being sent to the fpga.\trsv\t\trsv\t\trsv\t\t\t\t\t\trsv\t\t\t\t\t\tF2_LS_DISPENSER_UP_6 \tF2_LS_DISPENSER_25_6 \tF2_LS_DISPENSER_75_6 \tF2_LS_DISPENSER_DOWN_6\tF2_LS_DISPENSER_50_6\tF2_LS_DISPENSER_SPARE_6\tF2_LS_DISPENSER_UP_5\tF2_LS_DISPENSER_25_5 \tF2_LS_DISPENSER_75_5\tF2_LS_DISPENSER_DOWN_5\tF2_LS_DISPENSER_50_5\tF2_LS_DISPENSER_SPARE_5\t\t\t\r\nconst Int32\tF2_LS_04_Direct =\t0x60000480\t;\t//\tReads the direct values that are currently being sent to the fpga.\trsv\t\trsv\t\trsv\t\t\t\t\t\trsv\t\t\t\t\t\tF2_LS_DISPENSER_UP_8\tF2_LS_DISPENSER_25_8\tF2_LS_DISPENSER_75_8\tF2_LS_DISPENSER_DOWN_8\tF2_LS_DISPENSER_50_8\tF2_LS_DISPENSER_SPARE_8\tF2_LS_DISPENSER_UP_7\tF2_LS_DISPENSER_25_7 \tF2_LS_DISPENSER_75_7\tF2_LS_DISPENSER_DOWN_7\tF2_LS_DISPENSER_50_7\tF2_LS_DISPENSER_SPARE_7\t\t\t\r\n\r\nconst Int32 Dispenser_Valve1\t=\t0;\r\nconst Int32 Dispenser_Valve2\t=\t1;\r\nconst Int32 Dispenser_Valve3\t=\t2;\r\nconst Int32 Dispenser_Valve4\t=\t3;\r\nconst Int32 Dispenser_Valve5\t=\t4;\r\nconst Int32 Dispenser_Valve6\t=\t5;\r\nconst Int32 Dispenser_Valve7\t=\t6;\r\nconst Int32 Dispenser_Valve8\t=\t7;\r\n\r\nconst ushort MinPress_Mbar_Add =0x5c ;\r\nconst ushort MaxPress_Mbar_Add =0x60 ;\r\n\r\nconst Int32 F3_VALVE_OUT\t= 0x600000e2;\t\t\r\n\r\n//string path = \"C:\\\\Dispenser_setup\\\\Log\\\\\"; \r\n\r\n\r\n//Int32[] Start_Table;\r\n\r\nInt32[] Start_Table = new Int32 [10000];\r\n\r\nUInt32 [] Motor_Dir=new UInt32 [8] {0,0,0,0,0,0,0,0};\r\n\r\nstring Dispenser_Fname ;\r\n\r\nInt32 Dispenser_ptr =-1;\r\n\r\nInt32 [] Dispenser_press= new Int32[8]{0,0,0,0,0,0,0,0};\r\nInt32 max_pressure_level = 20000;\r\nInt32 min_pressure_level = -20000;\r\n\t\r\nInt32 [] A2D_Dispenser= new Int32[8]{0,0,0,0,0,0,0,0};\r\nInt32 Loop_cnt= 1;\r\nInt32 Loop_length=1;\r\n\r\nInt32 PressureSensorType= 1;\t\t//1- new -1up +10 . 0-old 0 to +10\r\nInt32\tTemp_Delay=0;\r\n\r\nInt32\tFirst_Delay=0;\r\n\r\n\r\nUInt32 RD_LS_01_Direct;\r\nUInt32 RD_LS_02_Direct;\r\nUInt32 RD_LS_03_Direct;\r\nUInt32 RD_LS_04_Direct;\r\n\r\nlong Lebel1_time;\r\nlong Lebel2_time;\r\nlong End_Time=0;\r\n\r\nlong elapsed_time =0;\r\n\r\nlong time_Table;\r\n\r\nInt32 msec_index=0;\r\n\r\nInt32 MaxPress_Mbar;\r\nInt32 MinPress_Mbar;\r\nstring state;\r\n\r\n\tpublic Int32 OnExecute(IProcedureContext context)\r\n {\r\n\t\tlong Max_PBU;\r\n\t\tInt32 Index=0;\r\n\t\tInt32 speed=0;\r\n\t\tInt32 Dispenser_Nm;\r\n\t\tthis.context = context;\r\n\t\tint Test_Index=0;\r\n \t\t\r\n \r\n\r\n\t\t\r\n\t\tstring box_msg = \"Make sure Mixer Hot \";\r\n\t\tMessageBox.Show(box_msg);\r\n\t\t\r\n\t\tvar response1 = context.RequestUserInputFor<String>(\"Dispenser Number\", \"Enter Dispenser number to make priming (1-8):\");\r\n\t\tcontext.WriteLine(response1);\r\n\t\tDispenser_Nm = Int32.Parse(response1);\r\n\t\t\r\n\t\tcheck_Min_Max_Mbar(Dispenser_Nm);\r\n\t\r\n\t\tif (Dispenser_Nm==8)\r\n\t\t\tMax_PBU=8000;\r\n\t\telse\r\n\t\t\tMax_PBU=6000;\r\n\t\t\t\r\n\t\r\n\tif (!Directory.Exists(path))\r\n\t\t{\r\n\t\t\tDirectory.CreateDirectory(path);\r\n\t\t}\t\r\n\t\t\tcontext.WriteLine(path);\r\n\t\t\t\r\n\tcontext.Send<ProgressResponse>(\"ProgressRequest\" ,0xe0, 1);\r\n\r\n\tDispenser_Fname=path + \"Dispenser_Nm_\" + Dispenser_Nm+\"_\" + DateTime.Now.ToString(\"MM-dd-yy hh-mm\")+ \".csv\" ;\r\n\r\n\tcontext.WriteLine(Dispenser_Fname);\r\n\r\n\tcontext.WriteToFile(Dispenser_Fname,\"Dispenser Nm,\" + Dispenser_Nm + \"\\n\" );\r\n\tcontext.AppendToFile(Dispenser_Fname,\"Pressure,Command,Value,DateTime,Remark\\n\" ); \r\n\t\r\n\tcontext.UpdateProgress(\"Priming\",false,Test_Index,10);\r\n\r\n\tfor(int j=0; j<2;j++)\r\n\t\t{\r\n\t\t\tfor(int i=0; i<4;i++)\r\n\t\t\t{\r\n\t\t\t\tstate=\"PBU No. \"+ (4*j+i+1 );\r\n\t\t\t\tStart_Table=BuildUp_Table;\r\n\t\t\t\tTable_Run(Dispenser_Nm );\r\n\t\t\t\tif (time_Table>300000)\r\n\t\t\t\t{\r\n\t\t\t\t\tcontext.AddResult(ResultType.Failed,\"PBU\", \"PBU No.\"+ (4*j+i+1 ) + \" Fail\");\r\n\t\t\t\t\treturn 0;\r\n\t\t\t\t}\r\n\t\t\t\t context.AddResult(ResultType.Passed,\"PBU\",\"PBU No.\"+ (4*j+i+1 ) + \" Pass\");\r\n \r\n\t\t\tTest_Index++;\r\n \t\t\tcontext.UpdateProgress(\"Priming\",false,Test_Index,10);\r\n\t\t\t\t\t\r\n\t\t\t}\r\n\t\t\tstate=\"Flow No.\"+ (j+1 ) ;\r\n\t\t\tStart_Table=Up_Table;\r\n\t\t\tTable_Run(Dispenser_Nm );\r\n\t\t\tif (time_Table<115000)\r\n\t\t\t\t{\r\n\t\t\t\t\tcontext.WriteLine(\"time_Table= \" +time_Table);\r\n\t\t\t\t\tcontext.AddResult(ResultType.Failed,\"Flow\", \"Flow No.\"+ (j+1) + \" Fail\");\r\n\t\t\t\t\treturn 0;\r\n\t\t\t\t}\r\n\t\t\t\t context.AddResult(ResultType.Passed,\"Flow\",\"Flow No.\"+ (j+1 ) + \" Pass\");\r\n\t\t\t\t \tTest_Index++;\r\n \t\t\t\t\tcontext.UpdateProgress(\"Priming\",false,Test_Index,10);\r\n\t\t\r\n\t\t}\r\n\t\t\t\t state=\"Last PBU \" ;\r\n\t\t\t\t Start_Table=BuildUp_Table;\r\n\t\t\t\tTable_Run(Dispenser_Nm );\r\n\t\t\t\t\tTest_Index++;\r\n \t\t\t\t\tcontext.UpdateProgress(\"Priming\",false,Test_Index,10);\r\n\r\n\t\t\t\tlong Time=Lebel2_time-Lebel1_time;\r\n\t\t\t\tif (Time>Max_PBU)\r\n\t\t\t\t { \r\n\t\t\t\t context.AddResult(ResultType.Failed,\"PBU\", \"PBU = \" +Time + \"msec \");\r\n\t\t\t\t state=\"PBU = \" +Time + \"msec \\tFail\";\r\n\t\t\t\t }\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t context.AddResult(ResultType.Passed,\"PBU\", \"PBU = \" +Time + \"msec \");\r\n\t\t\t\t state=\"PBU = \" +Time + \"msec \\tPass\";\r\n\t\t\t\t}\t\r\n\t\treturn 0;\r\n\t\t\r\n }\r\n\r\n/////////////////////////////////////////////\r\nvoid \t\tcheck_Min_Max_Mbar(Int32 i )\r\n{\r\n\tint k;\r\n\tstring s ;\r\n\ti--;\r\n\r\n\t\t\t\t\tcontext.WriteLine(\"-------------- write Enable Channel ------------\");\t//debug\r\n\t\tenable_channel(i); // Chanel 0-7 => Disp0enser 0-7 \r\n\t\t\t\t\tcontext.WriteLine(\"-------------- Read_header ------------\");\t//debug\r\n\r\n\t\t\t\t\tcontext.WriteLine(\"-------------- write_address_eeprom ------------\");\t//debug\r\n\t\twrite_address_eeprom (I2C_Slave_Low_Add,MinPress_Mbar_Add);\r\n\t\t\t\t\tcontext.WriteLine(\"-------------- read_data_from_eeprom ------------\");\t//debug\r\n\t\tread_data_from_eeprom (I2C_Slave_Low_Add,1);\r\n\t\tif \t(EEPROM_Data[0]==0\t)\r\n\t\t{\tPressureSensorType=0;\r\n\t\t\tcontext.WriteLine(\"PressureSensorType=0\" );\t//debug\r\n\t\t}\r\n\t\telse\t\r\n\t\t{\t\r\n\t\t\tPressureSensorType=1;\t\t\t\t\t\r\n\t\t\tcontext.WriteLine(\"PressureSensorType=1\" );\t//debug\r\n\t\t}\r\n\t\r\n}\t\r\n//----------------write address eeprom -------------------------\r\npublic void write_address_eeprom (UInt32 I2C_Add, UInt32 Eeprom_Add)\r\n{\t\r\n\tStubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();\r\n\tstubI2CWriteBytesRequest.I2CId = I2C_ID;\r\n\tstubI2CWriteBytesRequest.SlaveAddress = I2C_Add;\r\n\t\r\n\tUInt32 uInt32 = new UInt32();\r\n\tstubI2CWriteBytesRequest.BytesTWrite.Add(Convert.ToByte( (Eeprom_Add & 0xff00) >>8));\t//Byte High add to write\r\n\tstubI2CWriteBytesRequest.BytesTWrite.Add(Convert.ToByte(Eeprom_Add & 0xff));\t\t\t//Byte Low add to write\r\n\t\t\t\t\tcontext.WriteLine( (Eeprom_Add & 0xff00) >>8) ;\t//debug\r\n\t\t\t\t\tcontext.WriteLine( Eeprom_Add & 0xff);\t//debug\r\n\r\n\tcontext.Send<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);\t\r\n}\r\n//------------------- read Data from EEprom--------------------------\r\n\r\npublic void read_data_from_eeprom ( UInt32 I2C_Add, UInt32 cnt )\r\n{\r\n\tStubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();\r\n\tstubI2CReadBytesRequest.I2CId = I2C_ID;\r\n\tstubI2CReadBytesRequest.SlaveAddress = (I2C_Add + 1);\r\n\tstubI2CReadBytesRequest.NumberOfBytesToRead = cnt; // Number of bytes to read\r\n\r\n\tvar response1 = context.Send<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);\r\n\r\n\tfor(int i=0; i<cnt;i++)\r\n\t\t{\r\n\t\t\tEEPROM_Data[i]=Convert.ToByte(response1.ReadBytes[i]);\r\n\t\t\tcontext.WriteLine(EEPROM_Data[i] );\t//debug\r\n\r\n\t\t}\t\t\r\n}\t\r\n\r\n\r\n///////////////////////////////////////////////\r\n//----------- enable I2c channel --------------\r\npublic int enable_channel(Int32 Channel_ID) \r\n{\r\n\tuint Const_temp = 0x01;\t\r\n\t\r\n\tStubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();\r\n\tstubI2CWriteBytesRequest.I2CId = I2C_ID;\r\n\tstubI2CWriteBytesRequest.SlaveAddress = TCA9548A_address;\r\n\t\r\n\tConst_temp = Const_temp << Channel_ID;\r\n\tstubI2CWriteBytesRequest.BytesTWrite.Add(Const_temp);//enable i2c channel 0 Dispenser 1\r\n\r\n\tvar response = context.Send<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);\r\n\t\r\n\treturn 1;\r\n}\r\n\r\n\r\n////////////////////////////////////////////////////////////// \r\nInt32 Table_Run(Int32 Dispenser )\r\n\r\n{\r\n\tInt32 COMMAND=0;\r\n\tInt32 Data=0;\r\n\tInt32 count=0;\r\n\t\r\n\tDispenser--;\t\t//check from 0-7\r\n\t\r\n\tint j=0;\r\n\t\tvar stopwatch = new Stopwatch();\r\n\r\n\t\tstopwatch.Start();\r\n\t\r\n\t\t elapsed_time = stopwatch.ElapsedMilliseconds;\r\n\t\tcontext.WriteLine(elapsed_time);\r\n\t\t\r\n\twhile (count!=-1) \r\n\t{\r\n\tmsec_index=msec_index+1;\r\n\t\t\r\n\t\tif (Dispenser<2) \r\n\t\t\t{\r\n\t\t\t\tvar response1 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_01_Direct);\r\n\t\t\t\tRD_LS_01_Direct=response1.Value\t ;\r\n\t\t\t}\r\n\t\telse if ( (Dispenser<4) )\r\n\t\t\t{\r\n\t\t\t\tvar response1 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_02_Direct);\r\n\t\t\t\tRD_LS_02_Direct=response1.Value\t ;\r\n\t\t\t}\r\n\t\telse if ( (Dispenser<6) )\r\n\t\t\t{\r\n\t\t\t\tvar response1 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_03_Direct);\r\n\t\t\t\tRD_LS_03_Direct=response1.Value\t ;\r\n\t\t\t}\r\n\t\telse\r\n\t\t\t{\r\n\t\t\t\tvar response1 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_04_Direct);\r\n\t\t\t\tRD_LS_04_Direct=response1.Value\t ;\r\n\t\t\t}\r\n\t\tif (Dispenser<4) \r\n\t\t\t{\r\n\t\t\tvar response2 = context.Send<StubIntADCReadResponse>(\"StubIntADCReadRequest\" ,0x8000 + AN_IDS_PRESSENS_1);\r\n\t\t\t\tA2D_Dispenser[0]=(response2.SamplingInBits)>>16;\r\n\t\t\t\tA2D_Dispenser[1] =(response2.SamplingInBits) & 0x0000ffff;\r\n\t\t\t\tA2D_Dispenser[2] =(response2.VoltageSamplingMv)>>16;\r\n\t\t\t\tA2D_Dispenser[3] =(response2.VoltageSamplingMv) & 0x0000ffff;\r\n\t\t\t}\r\n\t\telse\r\n\t\t\t{\r\n\t\t\tvar\tresponse3 = context.Send<StubIntADCReadResponse>(\"StubIntADCReadRequest\" ,0x8000 + AN_IDS_PRESSENS_5);\r\n\t\t\t\tA2D_Dispenser[4] =(response3.SamplingInBits)>>16;\r\n\t\t\t\tA2D_Dispenser[5] =(response3.SamplingInBits)& 0x0000ffff;\r\n\t\t\t\tA2D_Dispenser[6] =(response3.VoltageSamplingMv)>>16;\r\n\t\t\t\tA2D_Dispenser[7] =(response3.VoltageSamplingMv)& 0x0000ffff;\r\n\t\t\t}\r\n\t\t\t\t\r\n\t\t\tCOMMAND=Start_Table[count];\r\n\t\t\tData=Start_Table[(count+1)];\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t//Index=Index+2;\r\n\t\t\tswitch (COMMAND)\r\n\t\t\t\t{\r\n\t\t\t\tcase CMD_RUN:\r\n\t\t\t\t\tMotor_Run(Data,Dispenser);\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_VALVE:\r\n\t\t\t\t\tValve_3W(Data,Dispenser);\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_STOP:\r\n\t\t\t\t\tMotor_Stop(Data,Dispenser);\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_DLY:\r\n\t\t\t\t\tDelay_on_second(Data,Dispenser,elapsed_time);\r\n\t\t\t\t\tif (Temp_Delay <1)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmax_pressure_level=20000;\t\r\n\t\t\t\t\t\tmin_pressure_level=-20000;\t\r\n\t\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_TIME:\r\n\t\t\t\t\tPrint_Time();\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_PRESS:\r\n\t\t\t\t\tmax_pressure_level=Data;\r\n\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",Max_pressure_level is, \" + Data +\",\"+DateTime.Now+\"\\n\");\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_PRESL:\r\n\t\t\t\t\tmin_pressure_level=Data;\r\n\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",Min_pressure_level is, \" + Data +\",\"+DateTime.Now+\"\\n\");\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_LBL:\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",Label,\" + Data+\",\"+DateTime.Now+\"\\n\");\r\n\t\t\t\t\tif(Data==1)\r\n\t\t\t\t\t\tLebel1_time=stopwatch.ElapsedMilliseconds;\r\n\t\t\t\t\tif(Data==2)\r\n\t\t\t\t\t\tLebel2_time=stopwatch.ElapsedMilliseconds;\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_SMP:\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",SampleRate,\" + Data+\",\"+DateTime.Now+\"\\n\");\r\n\t\t\t\t\tDispenser_sample_rate =Data;\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_END:\r\n\t\t\t\t\tcount=-1;\r\n\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",End testing,,\"+DateTime.Now+\"\\n\");\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\r\n\t\t\t\tcase CMD_MTV_OPEN:\r\n\t\t\t\t\topen_midtank_valve(Data,Dispenser);\r\n\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",OPEN MIDTANK, \" + Dispenser+\",\"+DateTime.Now+\"\\n\");\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase CMD_MTV_CLOSE:\r\n\t\t\t\t\tclose_midtank_valve(Data,Dispenser);\r\n\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",CLOSE MIDTANK, \" + Dispenser+\",\"+DateTime.Now+\"\\n\");\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\r\n\t\t\t\tcase CMD_LOOP_NM:\r\n\t\t\t\t\r\n\t\t\t\t\tLoop_cnt=Data-1;\r\n\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",Counter Loop,\"+ Data+\",\"+DateTime.Now +\"\\n\");\r\n\t\t\t\t\tcount = count+2;\t\t\t\t\t\t\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase CMD_LOOP:\r\n\t\t\t\t\r\n\t\t\t\t\tif (Loop_cnt!=0)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\"Counter Loop,\"+ Loop_cnt+\",\"+DateTime.Now+\"\\n\" );\r\n\t\t\t\t\t\tcount = count+2*Data;\r\n\t\t\t\t\t\tLoop_cnt--;\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",End loop,,\"+DateTime.Now +\"\\n\");\r\n\t\t\t\t\t\tcount = count+2;\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t}\t\r\n\t\t\t\r\n\t\t\tlong elapsed_time1 = stopwatch.ElapsedMilliseconds;\r\n\t\t\tlong elapsed_time2= elapsed_time1-elapsed_time;\r\n\t\t\tif (elapsed_time2>95)\r\n\t\t\telapsed_time2=95;\t\t//minimum time\r\n\t\t\t\tThread.Sleep(100-(int )(elapsed_time2));\r\n\r\n\t\t\telapsed_time = stopwatch.ElapsedMilliseconds;\t\t\r\n\r\n\r\n\t\t\tj++;\r\n\t\t\t\tif (j==10)\r\n\t\t\t\t{\r\n\t\t\t\t\tj=0;\r\n\t\t\t\t\tcontext.WriteLine(Dispenser_press[Dispenser]+ \" mBar\\t\"+state + \"\\tTime-\" + (elapsed_time/1000));\r\n\t\t\t\t}\r\n\t}\r\n\ttime_Table=elapsed_time;\r\n\treturn 0;\r\n}\r\n\r\n///////////////////////////////////////////////////////////////////\t\r\nInt32 Motor_Run(Int32 speed,Int32 Dispenser)\r\n\r\n{\r\n\r\n\tswitch (Dispenser)\r\n\t\t{\r\n\t\tcase 0:\r\n\t\t\t\tif ( speed<0)\r\n\t\t\t\t{\r\n\t\t\t\t\tMotor_Dir[0]=2;\r\n\t\t\t\t\tif ((RD_LS_01_Direct & 0x04)!=0x04)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor1, false, (-speed));\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\t\r\n\t\t\t\t\tMotor_Dir[0]=1;\r\n\t\t\t\t\tif ((RD_LS_01_Direct & 0x20)!=0x20)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor1, true, (speed));\r\n\t\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase 1:\r\n\t\t\t\tif ( speed<0)\r\n\t\t\t\t{\r\n\t\t\t\t\tMotor_Dir[1]=2;\r\n\t\t\t\t\tif ((RD_LS_01_Direct & 0x100)!=0x100)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor2, false, (-speed));\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\t\r\n\t\t\t\t\tMotor_Dir[1]=1;\r\n\t\t\t\t\tif ((RD_LS_01_Direct & 0x800)!=0x800)\r\n\t\t\t\t\t{\t\t\t\t\t\t\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor2, true, (speed));\r\n\t\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase 2:\r\n\t\t\t\tif ( speed<0)\r\n\t\t\t\t{\r\n\t\t\t\t\tMotor_Dir[2]=2;\r\n\t\t\t\t\tif ((RD_LS_02_Direct & 0x04)!=0x04)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor3, false, (-speed));\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\t\r\n\t\t\t\t\tMotor_Dir[2]=1;\r\n\t\t\t\t\tif ((RD_LS_02_Direct & 0x20)!=0x20)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now+ \",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor3, true, (speed));\r\n\t\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase 3:\r\n\t\t\t\tif ( speed<0)\r\n\t\t\t\t{\r\n\t\t\t\t\tMotor_Dir[3]=2;\r\n\r\n\t\t\t\t\tif ((RD_LS_02_Direct & 0x100)!=0x100)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now+ \",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor4, false, (-speed));\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\t\r\n\t\t\t\t\tMotor_Dir[3]=1;\r\n\r\n\t\t\t\t\tif ((RD_LS_02_Direct & 0x800)!=0x800)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor4, true, (speed));\r\n\t\t\t\t}\r\n\t\t\tbreak;\r\n\t\t\r\n\t\tcase 4:\r\n\t\t\t\tif ( speed<0)\r\n\t\t\t\t{\r\n\t\t\t\t\tMotor_Dir[4]=2;\r\n\t\t\t\t\tif ((RD_LS_03_Direct & 0x04)!=0x04)\r\n\t\t\t\t\t{ \r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now+ \",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor5, false, (-speed));\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\t\r\n\t\t\t\t\tMotor_Dir[4]=1;\r\n\t\t\t\t\tif ((RD_LS_03_Direct & 0x20)!=0x20)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now+ \",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor5, true, (speed));\r\n\t\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase 5:\r\n\t\t\t\tif ( speed<0)\r\n\t\t\t\t{\r\n\t\t\t\t\tMotor_Dir[5]=2;\r\n\t\t\t\t\tif ((RD_LS_03_Direct & 0x100)!=0x100)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor6, false, (-speed));\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\t\r\n\t\t\t\t\tMotor_Dir[5]=1;\r\n\t\t\t\t\tif ((RD_LS_03_Direct & 0x800)!=0x800)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now+ \",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor6, true, (speed));\r\n\t\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase 6:\r\n\t\t\t\tif ( speed<0)\r\n\t\t\t\t{\r\n\t\t\t\t\tMotor_Dir[6]=2;\r\n\t\t\t\t\tif ((RD_LS_04_Direct & 0x04)!=0x04)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor7, false, (-speed));\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\t\r\n\t\t\t\t\tMotor_Dir[6]=1;\r\n\t\t\t\t\tif ((RD_LS_04_Direct & 0x20)!=0x20)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor7, true, (speed));\r\n\t\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase 7:\r\n\t\t\t\tif ( speed<0)\r\n\t\t\t\t{\r\n\t\t\t\t\tMotor_Dir[7]=2;\r\n\r\n\t\t\t\t\tif ((RD_LS_04_Direct & 0x100)!=0x100)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor8, false, (-speed));\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\t\r\n\t\t\t\t\tMotor_Dir[7]=1;\r\n\r\n\t\t\t\t\tif ((RD_LS_04_Direct & 0x800)!=0x800)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor8, true, (speed));\r\n\t\t\t\t}\r\n\t\t\tbreak;\r\n\t\t\t\r\n\t\tdefault:\r\n\t\t\tbreak;\r\n\r\n\t\t}\r\n \tcontext.AppendToFile(Dispenser_Fname,\",Run,\" +speed+\",\"+DateTime.Now +\"\\n\" ); \r\n\r\n\treturn 1;\r\n} \r\n \r\n \t\r\n Int32 Valve_3W(Int32 Valve_Value,Int32 Dispenser)\r\n{\r\n\tif ( Valve_Value==1)\r\n\t\tcontext.Send<StubValveResponse>(\"StubValveRequest\" ,Dispenser_Valve1+Dispenser, 3, true);\t//3 3Way\r\n\telse\t\r\n\t\tcontext.Send<StubValveResponse>(\"StubValveRequest\" ,Dispenser_Valve1+Dispenser, 3, false); //3 3Way\r\n \r\n\tcontext.AppendToFile(Dispenser_Fname,\",Dispenser Valve position is, \" + Valve_Value+\",\"+DateTime.Now +\"\\n\" );\r\n\r\n\treturn 1;\t\r\n}\t\r\n//--------------------------------------- \r\n\r\n Int32 Motor_Stop(Int32 Stop_Value,Int32 Dispenser )\r\n{\r\n\tcontext.Send<StubMotorStopResponse>(\"StubMotorStopRequest\" ,Dispenser_Motor1+Dispenser, Stop_Value);\r\n\t\r\n\tcontext.AppendToFile(Dispenser_Fname,\",Motor Stop,\" + Stop_Value+\",\"+DateTime.Now +\"\\n\");\r\n\tMotor_Dir[Dispenser]=0;\r\n\treturn 1;\t\r\n}\r\n\r\n//--------------------------------------- \r\n\r\n Int32 Delay_on_second(Int32 Delay,Int32 Dispenser ,long time)\r\n{\r\n//Int32 temp1;\r\nInt32 pressure_om_mBAR=0;\r\n\tif \t(Temp_Delay ==0)\r\n\t{\r\n\t\tcontext.AppendToFile(Dispenser_Fname,\",DLY, \" + Delay +\",\"+DateTime.Now+\"\\n\");\r\n\t\tEnd_Time=time+Delay*1000-1;\r\n\r\n\t\tTemp_Delay = 1;\r\n//\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontext.Write(\"A\");\t\t//debug\r\n\t}\r\n\telse\t\r\nif (time>End_Time)\t\r\n\t\t{\t\t\t\t\r\n\t\tTemp_Delay=0;\r\n\t\t}\r\n\t\t\t\r\n\tif ( LimitSW_Dispenser(Dispenser)==0)\r\n \t {\t\r\n \t \tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now+\",Warning Motor on Limit\\n\");\r\n\t\t\tMotorStop(Dispenser);\r\n\t\t\tTemp_Delay =0;\t//end delay\r\n//\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontext.Write(\"C\");\t\t//debug\r\n\r\n\t\t\treturn 0 ;\r\n \t }\r\n\t\t\t\t\t\r\n\tpressure_om_mBAR=Calc_mBAR(Dispenser,true);\r\n \tif (pressure_om_mBAR > max_pressure_level)\r\n \t \t{\r\n\t\t//\tMotorStop(Dispenser);\r\n\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Pressure too high\\n\");\r\n\t\t\tTemp_Delay =0;\t//end delay\r\n//\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontext.Write(\"D\");\t\t//debug\r\n\t\t\t\r\n\t\t\treturn 0;\r\n\t\t}\r\n \tif (pressure_om_mBAR < min_pressure_level)\r\n \t \t{\r\n\t\t//\tMotorStop(Dispenser);\r\n\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Pressure too low\\n\");\r\n\t\t\tTemp_Delay =0;\t//end delay\r\n//\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontext.Write(\"D\");\t\t//debug\r\n\t\t\t\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\t\r\n\t\t\r\n \treturn 1;\r\n}\t\r\n \t \t\r\nInt32 LimitSW_Dispenser(Int32 Dispenser) \r\n{\r\n\r\n\tif (Dispenser==0)\r\n\t\t\r\n\t\t{\r\n\t\t\t\r\n//\t\tvar response1 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_01_Direct);\r\n\r\n\t\t\t\tif (((RD_LS_01_Direct & 0x04)!=0x04) && (Motor_Dir[0]==2))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\tif (((RD_LS_01_Direct & 0x20)!=0x20) && (Motor_Dir[0]==1))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\treturn 1;\t\t\r\n\t\t}\r\n\t\t\r\n\tif (Dispenser==1)\r\n\t\t\r\n\t\t{\r\n//\t\tvar response2 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_01_Direct);\r\n\t\t\t\tif (((RD_LS_01_Direct & 0x100)!=0x100) && (Motor_Dir[1]==2))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\tif (((RD_LS_01_Direct & 0x800)!=0x800) && (Motor_Dir[1]==1))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\treturn 1;\t\t\r\n\t\t}\r\n\t\t\r\n\r\n\tif (Dispenser==2)\r\n\t\t\r\n\t\t{\r\n\t\t\t\t\r\n\t\t//var response3 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_02_Direct);\r\n\t\t\t\tif (((RD_LS_02_Direct & 0x04)!=0x04) && (Motor_Dir[2]==2))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\tif (((RD_LS_02_Direct & 0x20)!=0x20) && (Motor_Dir[2]==1))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\treturn 1;\t\t\r\n\t\t\t\r\n\t\t}\r\n\t\t\r\n\tif (Dispenser==3)\r\n\t\t\r\n\t\t{\r\n\t\t\t\tvar response4 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_02_Direct);\r\n\t\t\t\tif (((RD_LS_02_Direct & 0x100)!=0x100) && (Motor_Dir[3]==2))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\tif (((RD_LS_02_Direct & 0x800)!=0x800) && (Motor_Dir[3]==1))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\treturn 1;\t\t\r\n\t\t}\r\n\t\t\r\n\t\t\r\n\t\t\r\n\r\n\tif (Dispenser==4)\r\n\t\t\r\n\t\t{\r\n\t\t\t\r\n//\t\tvar response1 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_01_Direct);\r\n\t\t\t\tif (((RD_LS_03_Direct & 0x04)!=0x04) && (Motor_Dir[4]==2))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\tif (((RD_LS_03_Direct & 0x20)!=0x20) && (Motor_Dir[4]==1))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\treturn 1;\t\t\r\n\t\t}\r\n\t\t\r\n\tif (Dispenser==5)\r\n\t\t\r\n\t\t{\r\n//\t\tvar response2 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_01_Direct);\r\n\t\t\t\tif (((RD_LS_03_Direct & 0x100)!=0x100) && (Motor_Dir[5]==2))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\tif (((RD_LS_03_Direct & 0x800)!=0x800) && (Motor_Dir[5]==1))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\treturn 1;\t\t\r\n\t\t}\r\n\t\t\r\n\r\n\tif (Dispenser==6)\r\n\t\t\r\n\t\t{\r\n\t\t\t\t\r\n\t\t//var response3 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_02_Direct);\r\n\t\t\t\tif (((RD_LS_04_Direct & 0x04)!=0x04) && (Motor_Dir[6]==2))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\tif (((RD_LS_04_Direct & 0x20)!=0x20) && (Motor_Dir[6]==1))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\treturn 1;\t\t\r\n\t\t\t\r\n\t\t}\r\n\t\t\r\n\tif (Dispenser==7)\r\n\t\t\r\n\t\t{\r\n//\t\tvar response4 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_02_Direct);\r\n\t\t\t\tif (((RD_LS_04_Direct & 0x100)!=0x100) && (Motor_Dir[7]==2))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\tif (((RD_LS_04_Direct & 0x800)!=0x800) && (Motor_Dir[7]==1))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\treturn 1;\t\t\r\n\t\t}\r\n\t\t\r\n\t\t\r\n\t\treturn 0;\r\n}\t\t\r\n\t\t\r\n\t \t\r\nInt32 Print_Time() \r\n{\t\r\n\t\tcontext.AppendToFile(Dispenser_Fname,\",Time is\\t,,\"+ DateTime.Now +\"\\n\" ); \r\n\r\n\t\treturn 1;\r\n}\t\r\n\r\n\r\n\r\nInt32 Calc_mBAR(Int32 Dispenser, bool save_press)\r\n{\t\t\r\nInt32 Data;\r\nInt32 Sense1;\r\nInt32 temp=0;\r\n\r\n\t\tData =A2D_Dispenser[Dispenser];\r\n\t\tif (Data<100)\r\n\t\t\ttemp=-1;\r\n\t\tData=Data-710;\r\n\t\tif (Data<0)\r\n\t\tData=0;\r\n\r\n\t\tData=Data*(10000+PressureSensorType*1000)/2840;\t//\tfor -1 to 10 bar Press_Sensor_Type=1 else 0\r\n\t\tData=Data-1000*PressureSensorType; \t\t\t// for -1 to 10 bar\r\n\r\n\t\tif (temp==-1)\t\t\t\t\t\t//if SamplingInBits <100 then No pressure sensor exist\r\n\t\tSense1=-9999\t;\r\n\t\telse\t\r\n\t\tSense1=Data\t;\r\n\t\tif (\t((msec_index) % (Dispenser_sample_rate)) == 0)\r\n\t\t{\r\n\t\t\tcontext.AppendToFile(Dispenser_Fname,\"\" + Sense1+\",,,\"+ DateTime.Now+\"\\n\");\r\n\t\t}\r\n\t\tDispenser_press[Dispenser]=Sense1;\r\n\treturn Sense1;\r\n\t\t\t\r\n } \t\r\n\r\n \r\n//--------------------------------\r\nint open_midtank_valve (Int32 valve_type,Int32 valve_nm)\t\t//valve_type=0 is Air ,1 is Ink ; valve_nm 0-7\r\n{\r\n\tSetBit (F3_VALVE_OUT,((valve_type+1)*8)- valve_nm-1, 1);\r\n\treturn 1;\r\n\r\n}\r\n//--------------------------------\t\r\nint close_midtank_valve (Int32 valve_type,Int32 valve_nm)\t\t//valve_type=0 is Air ,1 is Ink ; valve_nm 0-7\r\n{\r\n\tSetBit (F3_VALVE_OUT,((valve_type+1)*8)- valve_nm-1, 0);\r\n\treturn 1;\r\n}\r\n//--------------------------------\r\nInt32 SetBit(Int32 Adr, Int32 BitNo, Int32 Bit)\r\n{\r\n\tInt32 BitMask;\r\n\r\n var response = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" , F3_VALVE_OUT);\r\n\tInt32 RV = (Int32) response.Value & 0xffff;\r\n\t\r\n\t\r\n\tif (Bit == 0x1) \r\n\t{\r\n\t\tBitMask = 0x1 << BitNo;\r\n\t\tRV = RV | BitMask;\r\n\t\tcontext.Send<StubFpgaWriteRegResponse>(\"StubFpgaWriteRegRequest\" ,F3_VALVE_OUT , RV);\r\n\t}\r\n\telse if (Bit == 0x0)\r\n\t{\r\n\t\tBitMask = ~(0x1 << BitNo);\r\n\t\tRV = RV & BitMask;\r\n\t\tcontext.Send<StubFpgaWriteRegResponse>(\"StubFpgaWriteRegRequest\" ,F3_VALVE_OUT , RV);\r\n\t}\r\n\treturn 1;\r\n}\r\n//---------------------------------- \r\n void MotorStop(Int32 i)\r\n{\r\n \r\ncontext.Send<StubMotorStopResponse>(\"StubMotorStopRequest\" ,Dispenser_Motor1+i, 2);\r\nMotor_Dir[i]=0;\t//0 stop 1- up 2-dn\r\n\r\n}\r\n \r\n}"},{"$id":"20","Name":"Service.csx","IsEntryPoint":false,"Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Entities;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}"}]}} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Read Dancer new.cs b/Software/Stubs Collection/stubs/Scripts/Read Dancer new.cs
deleted file mode 100644
index 9d1572291..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Read Dancer new.cs
+++ /dev/null
@@ -1,138 +0,0 @@
-//-------------------------------------------
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-//include "..\..\Defines\Tango_Defines_Basic.cs"
-//include "..\Defines\Tango_Defines_Motors.cs"
-
- //--------------------------------------------------------------------------------
-
-//--------------------------------------------------------------------------------
-Int32 last_14bit_position;
-Int32 position_32bit;
-
-
-public void OnExecute(StubManager stubManager)
-{
-
-
-//Create form
- Form form1 = new Form();
-
-//--------------------------------------------------------------------------------
-
-// Create buttons to use as the accept and cancel buttons.
- Button button1 = new Button ()
- {
- Width = 100,
- Height = 100,
- };
-
- Button button2 = new Button ()
- {
- Width = 100,
- Height = 100,
- };
- Button button3 = new Button ()
- {
- Width = 100,
- Height = 100,
- };
-//--------------------------------------------------------------------------------
-// Set the text of button
-
- button1.Text = "Left Dancer";
- button2.Text = "Center Dancer";
- button3.Text = "Right Dancer";
-
-//--------------------------------------------------------------------------------
-// Set the position of the button on the form.
-
- button1.Location = new Point (40, 40);
-
- button2.Location
- = new Point (button1.Left + button1.Width + 10, 40);
-
- button3.Location
- = new Point (button2.Left + button2.Width + 10, 40);
-
-//--------------------------------------------------------------------------------
- // Add button to the form.
-
- form1.Controls.Add(button1);
-
- form1.Controls.Add(button2);
-
- form1.Controls.Add(button3);
-
-//--------------------------------------------------------------------------------
-
-// Set the caption bar text of the form.
-
- form1.Text = "Read Dancer";
-
-//--------------------------------------------------------------------------------
-
- // Define the border style of the form to a dialog box.
-
- form1.FormBorderStyle = FormBorderStyle.FixedDialog;
-
- // Set the MaximizeBox to false to remove the maximize box.
-
- form1.MaximizeBox = false;
-
- // Set the MinimizeBox to false to remove the minimize box.
-
- form1.MinimizeBox = false;
-
- // Set the start position of the form to the center of the screen.
-
- form1.StartPosition = FormStartPosition.CenterScreen;
-
-
- form1.AutoSize = true;
- form1.AutoSizeMode = AutoSizeMode.GrowAndShrink;
-//-----------------------------------------
- button1.Click += (_,__) =>
- {
- stubManager.Run<StubDancerPositionResponse>("StubDancerPositionRequest" ,0);
- Thread.Sleep(1000);
- };
-//-----------------------------------------
- button2.Click += (_,__) =>
-
- {
- stubManager.Run<StubDancerPositionResponse>("StubDancerPositionRequest" ,1);
- Thread.Sleep(1000);
-
- };
-//-----------------------------------------
-
- button3.Click += (_,__) =>
- {
- stubManager.Run<StubDancerPositionResponse>("StubDancerPositionRequest" ,2);
- Thread.Sleep(1000);
- };
-
-//--------------------------------------------------------------------------------
-
-// Display the form as a modal dialog box.
- form1.ShowDialog();
-
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,5, 3);
-
-
- return;
-}
-
-
-
diff --git a/Software/Stubs Collection/stubs/Scripts/Read Dancer.cs b/Software/Stubs Collection/stubs/Scripts/Read Dancer.cs
deleted file mode 100644
index 8fcfc94b0..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Read Dancer.cs
+++ /dev/null
@@ -1,32 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
- var response1 = stubManager.ShowResponseWindow("Please Enter Password:");
- if (response1=="Aa123456")
- {
- stubManager.WriteLine(response1);
-
-
- stubManager.RequestTimeout = 2000;
- //for (int i = 0; i < 100; i++)
- {
- var response = stubManager.Run<StubDancerPositionResponse>("StubDancerPositionRequest" ,0);
- Thread.Sleep(1000);
- response = stubManager.Run<StubDancerPositionResponse>("StubDancerPositionRequest" ,1);
- Thread.Sleep(1000);
- response = stubManager.Run<StubDancerPositionResponse>("StubDancerPositionRequest" ,2);
- Thread.Sleep(1000);
- }
- }
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Read Dispensers Serial Num.cs b/Software/Stubs Collection/stubs/Scripts/Read Dispensers Serial Num.cs
deleted file mode 100644
index 934371725..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Read Dispensers Serial Num.cs
+++ /dev/null
@@ -1,27 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
- uint i;
- string serialnum;
-
- StubDispenserEEpromRequest dispenserEEpromRequest = new StubDispenserEEpromRequest();
- for (i = 0; i<8;i++)
- {
- dispenserEEpromRequest.DispenserId = i;
- dispenserEEpromRequest.BurnRequest = false;
- var response = stubManager.Run<StubDispenserEEpromResponse>(dispenserEEpromRequest);
- stubManager.Write("Dispenser Serial # read \t"+ (i+1) + " serial number "+ response.DispenserEEprom.DispenserSN +"\n");
- }
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Read_Version.cs b/Software/Stubs Collection/stubs/Scripts/Read_Version.cs
index b3e3e2c1f..3bc9eb929 100644
--- a/Software/Stubs Collection/stubs/Scripts/Read_Version.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Read_Version.cs
@@ -53,6 +53,7 @@ public void OnExecute(StubManager stubManager)
stubManager.Write("\n");
+
var response_swid = stubManager.Run<StubReadEmbeddedVersionResponse>("StubReadEmbeddedVersionRequest" , true);
stubManager.Write("\nTIVA MCU SW Version (Major, Minor, Patch, Build, Version String): (");
stubManager.WriteHex(response_swid.VerMajor,4);
@@ -85,7 +86,21 @@ public void OnExecute(StubManager stubManager)
//ReadFPGATestReg(FPGA3);
stubManager.Write("\n");
-
+
+var response1 = stubManager.Run<StubReadEmbeddedVersionResponse>("StubReadEmbeddedVersionRequest" );
+
+ stubManager.Write("\nCPU Version: ");
+ stubManager.Write("\nVerMajor:");
+ stubManager.Write(response1.VerMajor);
+ stubManager.Write("\nVerMinor:");
+ stubManager.Write(response1.VerMinor);
+ stubManager.Write("\nVerMinor:");
+ stubManager.Write(response1.VerPatch);
+ stubManager.Write("\nVerPatch:");
+ stubManager.Write(response1.VerBuild);
+ stubManager.Write("\nVerBuild:");
+ stubManager.Write(response1.Version);
+
}
/* Example Script Output
diff --git a/Software/Stubs Collection/stubs/Scripts/SS Head Sensor board.cs b/Software/Stubs Collection/stubs/Scripts/SS Head Sensor board.cs
deleted file mode 100644
index 102029cf2..000000000
--- a/Software/Stubs Collection/stubs/Scripts/SS Head Sensor board.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-// Request ----
-// Int32 : Amount
-// Int32 : Delay
-
-// Response ----
-// Double : Progress
-var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xb10, 0x01);//S.S Head Sensor board
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Set cleaning sequence.cs b/Software/Stubs Collection/stubs/Scripts/Set cleaning sequence.cs
deleted file mode 100644
index 6f5357535..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Set cleaning sequence.cs
+++ /dev/null
@@ -1,23 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-
-
-ProgressRequest progressRequest = new ProgressRequest();
-progressRequest.Amount = 0xAD7;
-progressRequest.Delay = 1; // 1 - active, 0 - disabled
-
-var response = stubManager.Run<ProgressResponse>(progressRequest);
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Set loading arm center.cs b/Software/Stubs Collection/stubs/Scripts/Set loading arm center.cs
deleted file mode 100644
index bb502309e..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Set loading arm center.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-
-
-ProgressRequest progressRequest = new ProgressRequest();
-progressRequest.Amount = 0xB1;
-
-var response = stubManager.Run<ProgressResponse>(progressRequest);
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Tango_Main_PCB_ATP_sn_xxxxxxx.xlsx b/Software/Stubs Collection/stubs/Scripts/Tango_Main_PCB_ATP_sn_xxxxxxx.xlsx
deleted file mode 100644
index 57fd92df9..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Tango_Main_PCB_ATP_sn_xxxxxxx.xlsx
+++ /dev/null
Binary files differ
diff --git a/Software/Stubs Collection/stubs/Scripts/TestForVika.cs b/Software/Stubs Collection/stubs/Scripts/TestForVika.cs
deleted file mode 100644
index 7861bae7a..000000000
--- a/Software/Stubs Collection/stubs/Scripts/TestForVika.cs
+++ /dev/null
@@ -1,126 +0,0 @@
-using System;
-using System.Text;
-using System.IO;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
- bool i = true;
-//--------------------------------------------------------------------------------
-
-public void OnExecute(StubManager stubManager)
-{
- Form form1 = new Form();
-// Set the caption bar text of the form.
- form1.TopMost = true;
- form1.Text = "RTFU Test";
- form1.FormBorderStyle = FormBorderStyle.FixedDialog;
- form1.MaximizeBox = false;
- form1.MinimizeBox = false;
- form1.StartPosition = FormStartPosition.CenterScreen;
- form1.AutoSize = true;
- form1.AutoSizeMode = AutoSizeMode.GrowAndShrink;
-// Create buttons to Run.
- Button button1 = new Button ()
- {
- Width = 100,
- Height = 100,
- };
- button1.Text = "Run";
- button1.Location = new Point (40, 100);
- form1.Controls.Add(button1);
-//-----RTFU Serial Number -----------
-
- Label Label1 = new Label ()
- {
- Width = 150,
- Height = 20,
- Text =" RTFU S/N"
- };
- Label1.Location = new Point (30, 10);
- form1.Controls.Add(Label1);
- TextBox TextBox1 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text =""
- };
- TextBox1.Location = new Point (40, 40);
- form1.Controls.Add(TextBox1);
- //----------LOCATION----------
-
- Label Label3 = new Label ()
- {
- Width = 150,
- Height = 20,
- Text ="LOCATION"
- };
-Label3.Location = new Point (350, 10);
- form1.Controls.Add(Label3);
-
-
-
-TextBox TextBox3 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text =""
- };
-TextBox3.Location = new Point (360, 40);
- form1.Controls.Add(TextBox3);
-
-
-
-
- Label Label5 = new Label ()
- {
- Width = 120,
- Height =100,
- Text = ""
- };
- Label5.Location = new Point (300, 100);
- Label5.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
-
- Label5.Text="";
- Label5.Font = new Font("Arial", 24,FontStyle.Bold);
- form1.Controls.Add(Label5);
-
-
-
-
-//--------------------------------------------------------------------------------
-
-
- button1.Click += (_,__) =>
-
- {
-
-
- Label5.Text="Pros"; ///???? not working
-
-
-
-
-//------------------------------- start test -----------
- Thread.Sleep(5000); //delay 10 second
-
-if (i==true)
- Label5.Text="Fail";
-else
- Label5.Text="Pass";
-
- i= !i;
- TextBox1.Text="";
- };
-
- form1.ShowDialog();
-
- return ;
- }
-
diff --git a/Software/Stubs Collection/stubs/Scripts/Twine_Tango_Main_Test12.docx b/Software/Stubs Collection/stubs/Scripts/Twine_Tango_Main_Test12.docx
deleted file mode 100644
index f82f59d00..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Twine_Tango_Main_Test12.docx
+++ /dev/null
Binary files differ
diff --git a/Software/Stubs Collection/stubs/Scripts/Twine_Tango_Main_Test13.docx b/Software/Stubs Collection/stubs/Scripts/Twine_Tango_Main_Test13.docx
deleted file mode 100644
index d56728507..000000000
--- a/Software/Stubs Collection/stubs/Scripts/Twine_Tango_Main_Test13.docx
+++ /dev/null
Binary files differ
diff --git a/Software/Stubs Collection/stubs/Scripts/WHS_Test_EEPROM.cs b/Software/Stubs Collection/stubs/Scripts/WHS_Test_EEPROM.cs
deleted file mode 100644
index 88de4de01..000000000
--- a/Software/Stubs Collection/stubs/Scripts/WHS_Test_EEPROM.cs
+++ /dev/null
@@ -1,135 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-//----------------------
-const Int32 I2C_ID = 3; //MCU_I2C3
-const Int32 TCA9548A_address = 0xE2;
-const Int32 I2C_Slave_Add = 0xA0; // //eeprom address - 32kByte
-int Head_Mux_Channel_ID = 0; //WHS MUX channel
-//----------------------
-
-
-int enable_channel(int Channel_ID)
-{
- uint Const_temp = 0x01;
-
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = TCA9548A_address;
-
- Const_temp = Const_temp << Channel_ID;
- stubI2CWriteBytesRequest.BytesTWrite.Add(Const_temp);
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
-}
-
-
-int adc_write(uint I2C_Slave_Add, uint Page)
-{
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write
- //--------------------------------------------------------------
-
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x12 + Page);//Data 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x34 + Page);//Data 1 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x56 + Page);//Data 2 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x78 + Page);//Data 3 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x90 + Page);//Data 4 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(0xAB + Page);//Data 5 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(0xCD + Page);//Data 6 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(0xEF + Page);//Data 7 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x01 + Page);//Data 8 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x02 + Page);//Data 9 to write
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
-}
-
-int adc_set_for_read_ch(uint I2C_Slave_Add, uint Page)
-{
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
-}
-
-int adc_read_ch(uint I2C_Slave_Add)
-{
- StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();
- stubI2CReadBytesRequest.I2CId = I2C_ID;
- stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add + 1;
- stubI2CReadBytesRequest.NumberOfBytesToRead = 10; // Number of bytes to read
-
- var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);
- uint temph=0;
-
- for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++)
- {
- temph=response1.ReadBytes[i];
- stubManager.WriteHex(temph,2);
- }
-
- return 1;
-}
-
-
-public void OnExecute(StubManager stubManager)
-{
-
- //enable_all_channel();
- enable_channel(Head_Mux_Channel_ID); // Chanel 0-7 => Disp0enser 0-7
-
- for (int i = 0; i<1; i++)
- {
-
- adc_write(I2C_Slave_Add,0x10);
- Thread.Sleep(10); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet )
-
- adc_write(I2C_Slave_Add,0x00);
- Thread.Sleep(10); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet )
-
- stubManager.Write("\nPage 0x10 #");
- stubManager.Write(i);
- stubManager.Write("\t- The Buffer is: ");
- adc_set_for_read_ch(I2C_Slave_Add,0x10);
- //Thread.Sleep(1); //Sleep for 10 milli.
- adc_read_ch(I2C_Slave_Add);
-
- Thread.Sleep(10);
-
- stubManager.Write("\nPage 0x00 #");
- stubManager.Write(i);
- stubManager.Write("\t- The Buffer is: ");
- adc_set_for_read_ch(I2C_Slave_Add, 0x00);
- //Thread.Sleep(1); //Sleep for 10 milli.
- adc_read_ch(I2C_Slave_Add);
-
- Thread.Sleep(1000);
-
- }
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/WHS_waste_Tank_Calibration_Save_V0.pproj b/Software/Stubs Collection/stubs/Scripts/WHS_waste_Tank_Calibration_Save_V0.pproj
deleted file mode 100644
index 5932b58a0..000000000
--- a/Software/Stubs Collection/stubs/Scripts/WHS_waste_Tank_Calibration_Save_V0.pproj
+++ /dev/null
@@ -1 +0,0 @@
-{"$id":"1","Name":"untitled","Description":null,"Scripts":{"$id":"2","$values":[{"$id":"3","Name":"Program.csx","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Entities;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\n\r\npublic class Program\r\n{\r\n\tdouble V0_default_ml = 8.7433;\r\n\r\n public void OnExecute(IProcedureContext context)\r\n {\r\n \r\n\tvar response1 = context.RequestUserInputFor<String>(\"Warning - you are going to change the value of Vo in the eeprom !!!\\nPlease Enter Password to confirme:\",\"\");\r\n\tif (response1==\"Aa123456\")\r\n\t{\r\n\t\tcontext.WriteLine(response1);\r\n\t\t\r\n\t\t//Write_0_Vo_in_ml_to_eeprom\r\n\t\tcontext.WriteLine(\"\\nWrite_0_Vo_in_ml_to_eeprom\");\t\r\n\t\tStubWhsEEpromRequest stubWhsEEpromRequest = new StubWhsEEpromRequest();\r\n\t\tstubWhsEEpromRequest.BurnRequest = true; //write\r\n\t\tStubWhsEEpromData stubWhsEEpromData = new StubWhsEEpromData();\r\n\t\tstubWhsEEpromData.Orifice1Flow = 0;\r\n\t\tstubWhsEEpromRequest.WhsEEprom = stubWhsEEpromData;\r\n\t\tvar response = context.Send<StubWhsEEpromResponse>(stubWhsEEpromRequest);\r\n\t\t\t\t\r\n\t\t//wait_10mSec\r\n\t\tcontext.WriteLine(\"\\nwait_10mSec\");\t\r\n\t\tThread.Sleep(100); //Sleep for 10 milli.\r\n\t\t\r\n\t\t//Read_Vo_in_ml_from_eeprom\t& verify it is 0\r\n\t\tcontext.WriteLine(\"\\nRead_Vo_in_ml_from_eeprom\t& verify it is 0\");\r\n\t\tstubWhsEEpromRequest.BurnRequest = false; //write\r\n\t\tstubWhsEEpromRequest.WhsEEprom = stubWhsEEpromData;\r\n\t\tvar response2 = context.Send<StubWhsEEpromResponse>(stubWhsEEpromRequest);\r\n\t\t\r\n\t\t//Read_Vo_in_mV\r\n\t\tcontext.WriteLine(\"\\nRead_Vo_in_mV\");\r\n\t\tvar response3 = context.Send<ProgressResponse>(\"ProgressRequest\" ,0x3EC, 0x01);\r\n\t\t//Print_Vo_in_mV\r\n\t\tcontext.WriteLine(response3.Progress);\r\n\t\t\r\n\t\t//check validity\r\n\t\tcontext.WriteLine(\"\\ncheck validity\");\r\n\t\t if((response3.Progress <= 800) || (response3.Progress >=1200))\r\n\t\t {\r\n\t\t \tresponse3.Progress = 1076; //default\r\n\t\t \tcontext.Write(\"\\nERROR ------ Vreading value outside the defined range !!! ------\");\r\n\t\t \t context.AddResult(ResultType.Failed , \"Error\", \"ERROR ------ Vreading value outside the defined range !!! ------\");\r\n\t\t }\r\n\t\telse\r\n\t\t{\t\t\t\r\n\t\t\t//calculate_V0_in_ml\r\n\t\t\tcontext.WriteLine(\"\\ncalculate_V0_in_ml\");\r\n\t\t\tV0_default_ml = V0_default_ml * response3.Progress;\r\n\t\t\t\r\n\t\t\t//print_Vo_in_ml\r\n\t\t\tcontext.WriteLine(\"\\nprint_Vo_in_ml\");\r\n\t\t\tcontext.WriteLine(V0_default_ml);\r\n\t\t\tcontext.WriteLine(\"\");\r\n\t\t\t\r\n\t\t\t//Write_Vo_in_ml_to_eeprom\r\n\t\t\tcontext.WriteLine(\"\\nWrite_Vo_in_ml_to_eeprom\");\r\n\t\t\tstubWhsEEpromRequest.BurnRequest = true; //write\r\n\t\r\n\t\t\tstubWhsEEpromData.Orifice1Flow = V0_default_ml;\r\n\t\t\tstubWhsEEpromRequest.WhsEEprom = stubWhsEEpromData;\r\n\t\t\tvar response4 = context.Send<StubWhsEEpromResponse>(stubWhsEEpromRequest);\r\n\t\t\t\t\r\n\t\t\t//wait_10mSec\r\n\t\t\tcontext.WriteLine(\"\\nwait_10mSec\");\t\r\n\t\t\t Thread.Sleep(100); //Sleep for 10 milli.\r\n\t\t\t \t\t\r\n\t\t\t //Read_Vo_in_ml_from_eeprom\r\n\t\t\tcontext.WriteLine(\"\\nRead_Vo_in_ml_from_eeprom\");\r\n\t\t\tstubWhsEEpromRequest.BurnRequest = false; //write\r\n\t\t\tstubWhsEEpromRequest.WhsEEprom = stubWhsEEpromData;\r\n\t\t\tvar response5 = context.Send<StubWhsEEpromResponse>(stubWhsEEpromRequest);\r\n\t\t\t\r\n\t\t\t//Check if we read the correct value\r\n\t\t\tcontext.WriteLine(\"\\nVerify that we read the correct value of Orifice1Flow!!\");\r\n\t\t\t context.AddResult(ResultType.Passed , \"Pass\", \"Calibration Pass.\");\r\n\r\n\t\t\t}\r\n\t}\r\n\t\telse\r\n \t{\r\n\t\t\tcontext.AddResult(ResultType.Failed , \"Error\", \"Password Fail.\");\r\n\t\t}\r\n\t\tcontext.WriteLine(\"\\n -- END OF SCRIPT -- \");\r\n }\r\n}\r\n\r\n\r\n","IsEntryPoint":true},{"$id":"4","Name":"Service.csx","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Entities;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}","IsEntryPoint":false}]},"Inputs":{"$id":"5","$values":[]},"Variables":{"$id":"6","$values":[]},"ReferenceAssemblies":{"$id":"7","$values":[{"$id":"8","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"9","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"10","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"11","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"12","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"13","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"14","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"15","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"16","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"17","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"18","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"Resources":{"$id":"19","$values":[]},"Dialogs":{"$id":"20","$values":[]},"ID":"605a2ef0-71a6-450d-92f7-9b6d22850ad1","ApartmentState":"STA"} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/blower_Q.cs b/Software/Stubs Collection/stubs/Scripts/blower_Q.cs
deleted file mode 100644
index f6b595873..000000000
--- a/Software/Stubs Collection/stubs/Scripts/blower_Q.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-// Request ----
-// Int32 : Amount
-// Int32 : Delay
-
-// Response ----
-// Double : Progress
-//stop loop
-/*var response1 =*/ stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan1*/0x3E8, /*Head_Q=*/2500); //
-
-//enable loop
-/*var response1 =*/ stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan1*/0x3E7, /*Head_Q=*/5); //
-//500=1F4
-//250=FA
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/change sublimation time.cs b/Software/Stubs Collection/stubs/Scripts/change sublimation time.cs
deleted file mode 100644
index 3292a3b7e..000000000
--- a/Software/Stubs Collection/stubs/Scripts/change sublimation time.cs
+++ /dev/null
@@ -1,23 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-
-int SublimationDuration = 30;
-ProgressRequest progressRequest = new ProgressRequest();
-progressRequest.Amount = 0xB26;
-progressRequest.Delay = SublimationDuration;
-
- var response = stubManager.Run<ProgressResponse>(progressRequest);
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/check_kval_load_arm.cs b/Software/Stubs Collection/stubs/Scripts/check_kval_load_arm.cs
deleted file mode 100644
index 8276ad449..000000000
--- a/Software/Stubs Collection/stubs/Scripts/check_kval_load_arm.cs
+++ /dev/null
@@ -1,80 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-const Int32 x_KVAL_HOLD = 0x09;
-const Int32 x_KVAL_RUN = 0x0A;
-const Int32 x_KVAL_ACC = 0x0B;
-const Int32 x_KVAL_DEC = 0x0C;
-
-const Int32 x_GET_PARAM = 0x20;
-
-
-
-public void OnExecute(StubManager stubManager)
-{
-
- while (true)
- {
- stubManager.Write("\nLeft Load KVAL \t");
- var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,19, (x_GET_PARAM | x_KVAL_HOLD)<<8, 0, 0);
- stubManager.Write(response.RecivedData);
- stubManager.Write("\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,19, (x_GET_PARAM | x_KVAL_RUN)<<8, 0, 0);
- stubManager.Write(response.RecivedData);
- stubManager.Write("\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,19, (x_GET_PARAM | x_KVAL_ACC)<<8, 0, 0);
- stubManager.Write(response.RecivedData);
- stubManager.Write("\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,19, (x_GET_PARAM | x_KVAL_DEC)<<8, 0, 0);
- stubManager.Write(response.RecivedData);
- stubManager.Write("\n");
-
-
- stubManager.Write("Right Load KVAL \t");
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,24, (x_GET_PARAM | x_KVAL_HOLD)<<8, 0, 0);
- stubManager.Write(response.RecivedData);
- stubManager.Write("\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,24, (x_GET_PARAM | x_KVAL_RUN)<<8, 0, 0);
- stubManager.Write(response.RecivedData);
- stubManager.Write("\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,24, (x_GET_PARAM | x_KVAL_ACC)<<8, 0, 0);
- stubManager.Write(response.RecivedData);
- stubManager.Write("\t");
-
- response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,24, (x_GET_PARAM | x_KVAL_DEC)<<8, 0, 0);
- stubManager.Write(response.RecivedData);
- stubManager.Write("\n");
- stubManager.Write(DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss"));
- Thread.Sleep(1000);
-
-
-
-
-
-
-}
-
-
-
-
-
-
-
-
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/config head type to hed card eeprom.cs b/Software/Stubs Collection/stubs/Scripts/config head type to hed card eeprom.cs
deleted file mode 100644
index fd0f7fcf7..000000000
--- a/Software/Stubs Collection/stubs/Scripts/config head type to hed card eeprom.cs
+++ /dev/null
@@ -1,118 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-//----------------------
-const Int32 I2C_ID = 3; //MCU_I2C3
-const Int32 TCA9548A_address = 0xE2;
-const Int32 I2C_Slave_Add = 0xA0; // //eeprom address - 32kByte
-int Head_Mux_Channel_ID = 4; //Head MUX channel
-//----------------------
-
-const Int32 SerialNum = 0x01;
-
-
-int enable_channel(int Channel_ID)
-{
- uint Const_temp = 0x01;
-
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = TCA9548A_address;
-
- Const_temp = Const_temp << Channel_ID;
- stubI2CWriteBytesRequest.BytesTWrite.Add(Const_temp);
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
-}
-
-
-int adc_write(uint I2C_Slave_Add, uint Page)
-{
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write
- //--------------------------------------------------------------
-
- stubI2CWriteBytesRequest.BytesTWrite.Add(SerialNum);//S/N
- //stubI2CWriteBytesRequest.BytesTWrite.Add(0x03);//HEAD_TYPE_FLAT
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x04);//HEAD_TYPE_ARC
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
-}
-
-int adc_set_for_read_ch(uint I2C_Slave_Add, uint Page)
-{
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
-
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write
-
- var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
-}
-
-int adc_read_ch(uint I2C_Slave_Add)
-{
- StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();
- stubI2CReadBytesRequest.I2CId = I2C_ID;
- stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add + 1;
- stubI2CReadBytesRequest.NumberOfBytesToRead = 10; // Number of bytes to read
-
- var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);
- uint temph=0;
-
- for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++)
- {
- temph=response1.ReadBytes[i];
- stubManager.WriteHex(temph,2);
- }
-
- return 1;
-}
-
-
-public void OnExecute(StubManager stubManager)
-{
-
- //enable_all_channel();
- enable_channel(Head_Mux_Channel_ID); // Chanel 0-7 => Disp0enser 0-7
-
- for (int i = 0; i<1; i++)
- {
-
- adc_write(I2C_Slave_Add,0x00);
- Thread.Sleep(10); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet )
-
- stubManager.Write("\nPage 0x00 #");
- stubManager.Write(i);
- stubManager.Write("\t- The Buffer is: ");
- adc_set_for_read_ch(I2C_Slave_Add, 0x00);
- //Thread.Sleep(1); //Sleep for 10 milli.
- adc_read_ch(I2C_Slave_Add);
-
- Thread.Sleep(1000);
-
- }
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/eepromati2.c b/Software/Stubs Collection/stubs/Scripts/eepromati2.c
deleted file mode 100644
index bd0e44674..000000000
--- a/Software/Stubs Collection/stubs/Scripts/eepromati2.c
+++ /dev/null
@@ -1,458 +0,0 @@
-Read_Head_EEPROM union <unnamed> {bytes={Header=1437256755,TableLength=260,TableVersion=0,DyeHead_PN=[65 'A',77 'M',...,HeadPCB_SN=...,Buf=... 0x2002BB68
- bytes struct <unnamed> {Header=0x55AACC33,TableLength=0x00000104,TableVersion=0x00000000,DyeHead_PN=[0x41 'A',...,HeadPCB_SN=... (Hex) 0x2002BB68
- Header unsigned int 0x55AACC33 (Hex) 0x2002BB68
- TableLength unsigned int 0x00000104 (Hex) 0x2002BB6C
- TableVersion unsigned int 0x00000000 (Hex) 0x2002BB70
- DyeHead_PN unsigned char[20] [0x41 'A',0x4D 'M',0x30 '0',0x30 '0',0x32 '2'...] (Hex) 0x2002BB74
- [0] unsigned char 0x41 'A' (Hex) 0x2002BB74
- [1] unsigned char 0x4D 'M' (Hex) 0x2002BB75
- [2] unsigned char 0x30 '0' (Hex) 0x2002BB76
- [3] unsigned char 0x30 '0' (Hex) 0x2002BB77
- [4] unsigned char 0x32 '2' (Hex) 0x2002BB78
- [5] unsigned char 0x32 '2' (Hex) 0x2002BB79
- [6] unsigned char 0x32 '2' (Hex) 0x2002BB7A
- [7] unsigned char 0x33 '3' (Hex) 0x2002BB7B
- [8] unsigned char 0x2D '-' (Hex) 0x2002BB7C
- [9] unsigned char 0x30 '0' (Hex) 0x2002BB7D
- [10] unsigned char 0x30 '0' (Hex) 0x2002BB7E
- [11] unsigned char 0x00 '\x00' (Hex) 0x2002BB7F
- [12] unsigned char 0x00 '\x00' (Hex) 0x2002BB80
- [13] unsigned char 0x00 '\x00' (Hex) 0x2002BB81
- [14] unsigned char 0x00 '\x00' (Hex) 0x2002BB82
- [15] unsigned char 0x00 '\x00' (Hex) 0x2002BB83
- [16] unsigned char 0x00 '\x00' (Hex) 0x2002BB84
- [17] unsigned char 0x00 '\x00' (Hex) 0x2002BB85
- [18] unsigned char 0x00 '\x00' (Hex) 0x2002BB86
- [19] unsigned char 0x00 '\x00' (Hex) 0x2002BB87
- HeadPCB_SN unsigned char[20] [0x41 'A',0x50 'P',0x30 '0',0x30 '0',0x30 '0'...] (Hex) 0x2002BB88
- [0] unsigned char 0x41 'A' (Hex) 0x2002BB88
- [1] unsigned char 0x50 'P' (Hex) 0x2002BB89
- [2] unsigned char 0x30 '0' (Hex) 0x2002BB8A
- [3] unsigned char 0x30 '0' (Hex) 0x2002BB8B
- [4] unsigned char 0x30 '0' (Hex) 0x2002BB8C
- [5] unsigned char 0x39 '9' (Hex) 0x2002BB8D
- [6] unsigned char 0x33 '3' (Hex) 0x2002BB8E
- [7] unsigned char 0x31 '1' (Hex) 0x2002BB8F
- [8] unsigned char 0x00 '\x00' (Hex) 0x2002BB90
- [9] unsigned char 0x00 '\x00' (Hex) 0x2002BB91
- [10] unsigned char 0x00 '\x00' (Hex) 0x2002BB92
- [11] unsigned char 0x00 '\x00' (Hex) 0x2002BB93
- [12] unsigned char 0x00 '\x00' (Hex) 0x2002BB94
- [13] unsigned char 0x00 '\x00' (Hex) 0x2002BB95
- [14] unsigned char 0x00 '\x00' (Hex) 0x2002BB96
- [15] unsigned char 0x00 '\x00' (Hex) 0x2002BB97
- [16] unsigned char 0x00 '\x00' (Hex) 0x2002BB98
- [17] unsigned char 0x00 '\x00' (Hex) 0x2002BB99
- [18] unsigned char 0x00 '\x00' (Hex) 0x2002BB9A
- [19] unsigned char 0x00 '\x00' (Hex) 0x2002BB9B
- HeadPCB_PN unsigned char[20] [0x41 'A',0x50 'P',0x30 '0',0x30 '0',0x30 '0'...] (Hex) 0x2002BB9C
- [0] unsigned char 0x41 'A' (Hex) 0x2002BB9C
- [1] unsigned char 0x50 'P' (Hex) 0x2002BB9D
- [2] unsigned char 0x30 '0' (Hex) 0x2002BB9E
- [3] unsigned char 0x30 '0' (Hex) 0x2002BB9F
- [4] unsigned char 0x30 '0' (Hex) 0x2002BBA0
- [5] unsigned char 0x39 '9' (Hex) 0x2002BBA1
- [6] unsigned char 0x33 '3' (Hex) 0x2002BBA2
- [7] unsigned char 0x31 '1' (Hex) 0x2002BBA3
- [8] unsigned char 0x00 '\x00' (Hex) 0x2002BBA4
- [9] unsigned char 0x00 '\x00' (Hex) 0x2002BBA5
- [10] unsigned char 0x00 '\x00' (Hex) 0x2002BBA6
- [11] unsigned char 0x00 '\x00' (Hex) 0x2002BBA7
- [12] unsigned char 0x00 '\x00' (Hex) 0x2002BBA8
- [13] unsigned char 0x00 '\x00' (Hex) 0x2002BBA9
- [14] unsigned char 0x00 '\x00' (Hex) 0x2002BBAA
- [15] unsigned char 0x00 '\x00' (Hex) 0x2002BBAB
- [16] unsigned char 0x00 '\x00' (Hex) 0x2002BBAC
- [17] unsigned char 0x00 '\x00' (Hex) 0x2002BBAD
- [18] unsigned char 0x00 '\x00' (Hex) 0x2002BBAE
- [19] unsigned char 0x00 '\x00' (Hex) 0x2002BBAF
- DyeHead_SN unsigned char[20] [0x31 '1',0x32 '2',0x33 '3',0x34 '4',0x35 '5'...] (Hex) 0x2002BBB0
- [0] unsigned char 0x31 '1' (Hex) 0x2002BBB0
- [1] unsigned char 0x32 '2' (Hex) 0x2002BBB1
- [2] unsigned char 0x33 '3' (Hex) 0x2002BBB2
- [3] unsigned char 0x34 '4' (Hex) 0x2002BBB3
- [4] unsigned char 0x35 '5' (Hex) 0x2002BBB4
- [5] unsigned char 0x36 '6' (Hex) 0x2002BBB5
- [6] unsigned char 0x37 '7' (Hex) 0x2002BBB6
- [7] unsigned char 0x38 '8' (Hex) 0x2002BBB7
- [8] unsigned char 0x39 '9' (Hex) 0x2002BBB8
- [9] unsigned char 0x30 '0' (Hex) 0x2002BBB9
- [10] unsigned char 0x31 '1' (Hex) 0x2002BBBA
- [11] unsigned char 0x32 '2' (Hex) 0x2002BBBB
- [12] unsigned char 0x33 '3' (Hex) 0x2002BBBC
- [13] unsigned char 0x34 '4' (Hex) 0x2002BBBD
- [14] unsigned char 0x35 '5' (Hex) 0x2002BBBE
- [15] unsigned char 0x00 '\x00' (Hex) 0x2002BBBF
- [16] unsigned char 0x00 '\x00' (Hex) 0x2002BBC0
- [17] unsigned char 0x00 '\x00' (Hex) 0x2002BBC1
- [18] unsigned char 0x00 '\x00' (Hex) 0x2002BBC2
- [19] unsigned char 0x00 '\x00' (Hex) 0x2002BBC3
- HeadType unsigned int 0x00000020 (Hex) 0x2002BBC4
- BlowerRunHours1 unsigned int 0x00000000 (Hex) 0x2002BBC8
- BlowerRunHours2 unsigned int 0x00000000 (Hex) 0x2002BBCC
- FanFilterMaxLifecycle unsigned int 0x0000FFFF (Hex) 0x2002BBD0
- FansFilterUsageHours unsigned int 0x00000000 (Hex) 0x2002BBD4
- FilterSpare1 unsigned int 0x00000000 (Hex) 0x2002BBD8
- FilterSpare2 unsigned int 0x00000000 (Hex) 0x2002BBDC
- BenchTestD unsigned int 0x00000000 (Hex) 0x2002BBE0
- Spare1 unsigned int 0x00000000 (Hex) 0x2002BBE4
- Spare2 unsigned int 0x00000000 (Hex) 0x2002BBE8
- ProductionTestDate unsigned char[8] [0x32 '2',0x31 '1',0x2F '/',0x31 '1',0x30 '0'...] (Hex) 0x2002BBEC
- [0] unsigned char 0x32 '2' (Hex) 0x2002BBEC
- [1] unsigned char 0x31 '1' (Hex) 0x2002BBED
- [2] unsigned char 0x2F '/' (Hex) 0x2002BBEE
- [3] unsigned char 0x31 '1' (Hex) 0x2002BBEF
- [4] unsigned char 0x30 '0' (Hex) 0x2002BBF0
- [5] unsigned char 0x2F '/' (Hex) 0x2002BBF1
- [6] unsigned char 0x32 '2' (Hex) 0x2002BBF2
- [7] unsigned char 0x30 '0' (Hex) 0x2002BBF3
- FuncTestStatus unsigned int 0x00000046 (Hex) 0x2002BBF4
- PresSensPCB_SN unsigned char[20] [0x30 '0',0x30 '0',0x30 '0',0x31 '1',0x00 '\x00'...] (Hex) 0x2002BBF8
- [0] unsigned char 0x30 '0' (Hex) 0x2002BBF8
- [1] unsigned char 0x30 '0' (Hex) 0x2002BBF9
- [2] unsigned char 0x30 '0' (Hex) 0x2002BBFA
- [3] unsigned char 0x31 '1' (Hex) 0x2002BBFB
- [4] unsigned char 0x00 '\x00' (Hex) 0x2002BBFC
- [5] unsigned char 0x00 '\x00' (Hex) 0x2002BBFD
- [6] unsigned char 0x00 '\x00' (Hex) 0x2002BBFE
- [7] unsigned char 0x00 '\x00' (Hex) 0x2002BBFF
- [8] unsigned char 0x00 '\x00' (Hex) 0x2002BC00
- [9] unsigned char 0x00 '\x00' (Hex) 0x2002BC01
- [10] unsigned char 0x00 '\x00' (Hex) 0x2002BC02
- [11] unsigned char 0x00 '\x00' (Hex) 0x2002BC03
- [12] unsigned char 0x00 '\x00' (Hex) 0x2002BC04
- [13] unsigned char 0x00 '\x00' (Hex) 0x2002BC05
- [14] unsigned char 0x00 '\x00' (Hex) 0x2002BC06
- [15] unsigned char 0x00 '\x00' (Hex) 0x2002BC07
- [16] unsigned char 0x00 '\x00' (Hex) 0x2002BC08
- [17] unsigned char 0x00 '\x00' (Hex) 0x2002BC09
- [18] unsigned char 0x00 '\x00' (Hex) 0x2002BC0A
- [19] unsigned char 0x00 '\x00' (Hex) 0x2002BC0B
- PresSensPCB_PN unsigned char[20] [0x41 'A',0x50 'P',0x30 '0',0x30 '0',0x32 '2'...] (Hex) 0x2002BC0C
- [0] unsigned char 0x41 'A' (Hex) 0x2002BC0C
- [1] unsigned char 0x50 'P' (Hex) 0x2002BC0D
- [2] unsigned char 0x30 '0' (Hex) 0x2002BC0E
- [3] unsigned char 0x30 '0' (Hex) 0x2002BC0F
- [4] unsigned char 0x32 '2' (Hex) 0x2002BC10
- [5] unsigned char 0x32 '2' (Hex) 0x2002BC11
- [6] unsigned char 0x33 '3' (Hex) 0x2002BC12
- [7] unsigned char 0x31 '1' (Hex) 0x2002BC13
- [8] unsigned char 0x00 '\x00' (Hex) 0x2002BC14
- [9] unsigned char 0x00 '\x00' (Hex) 0x2002BC15
- [10] unsigned char 0x00 '\x00' (Hex) 0x2002BC16
- [11] unsigned char 0x00 '\x00' (Hex) 0x2002BC17
- [12] unsigned char 0x00 '\x00' (Hex) 0x2002BC18
- [13] unsigned char 0x00 '\x00' (Hex) 0x2002BC19
- [14] unsigned char 0x00 '\x00' (Hex) 0x2002BC1A
- [15] unsigned char 0x00 '\x00' (Hex) 0x2002BC1B
- [16] unsigned char 0x00 '\x00' (Hex) 0x2002BC1C
- [17] unsigned char 0x00 '\x00' (Hex) 0x2002BC1D
- [18] unsigned char 0x00 '\x00' (Hex) 0x2002BC1E
- [19] unsigned char 0x00 '\x00' (Hex) 0x2002BC1F
- PressCalibDate1 unsigned char[8] [0xFF '\xff',0xFF '\xff',0xFF '\xff',0xFF '\xff',0xFF '\xff'...] (Hex) 0x2002BC20
- [0] unsigned char 0xFF '\xff' (Hex) 0x2002BC20
- [1] unsigned char 0xFF '\xff' (Hex) 0x2002BC21
- [2] unsigned char 0xFF '\xff' (Hex) 0x2002BC22
- [3] unsigned char 0xFF '\xff' (Hex) 0x2002BC23
- [4] unsigned char 0xFF '\xff' (Hex) 0x2002BC24
- [5] unsigned char 0xFF '\xff' (Hex) 0x2002BC25
- [6] unsigned char 0xFF '\xff' (Hex) 0x2002BC26
- [7] unsigned char 0xFF '\xff' (Hex) 0x2002BC27
- PressWithoutBlower_mV1 unsigned int 0x00000002 (Hex) 0x2002BC28
- PressWithMinBlower_mV1 unsigned int 0x00000003 (Hex) 0x2002BC2C
- PressMaxPress_mV1 unsigned int 0x00000F50 (Hex) 0x2002BC30
- PressCalibDate2 unsigned char[8] [0x32 '2',0x31 '1',0x2F '/',0x31 '1',0x30 '0'...] (Hex) 0x2002BC34
- [0] unsigned char 0x32 '2' (Hex) 0x2002BC34
- [1] unsigned char 0x31 '1' (Hex) 0x2002BC35
- [2] unsigned char 0x2F '/' (Hex) 0x2002BC36
- [3] unsigned char 0x31 '1' (Hex) 0x2002BC37
- [4] unsigned char 0x30 '0' (Hex) 0x2002BC38
- [5] unsigned char 0x2F '/' (Hex) 0x2002BC39
- [6] unsigned char 0x32 '2' (Hex) 0x2002BC3A
- [7] unsigned char 0x30 '0' (Hex) 0x2002BC3B
- PressWithoutBlower_mV2 unsigned int 0x00000000 (Hex) 0x2002BC3C
- PressWithMinBlower_mV2 unsigned int 0x00000005 (Hex) 0x2002BC40
- PressMaxPress_mV2 unsigned int 0x00000F50 (Hex) 0x2002BC44
- FansMinPWM unsigned int 0x00000000 (Hex) 0x2002BC48
- FansMinRPM unsigned int 0x00000CE4 (Hex) 0x2002BC4C
- FansMaxPWM unsigned int 0x00000064 (Hex) 0x2002BC50
- FansMaxRPM unsigned int 0x0000044C (Hex) 0x2002BC54
- FansNomPWM unsigned int 0x00000046 (Hex) 0x2002BC58
- FansNomRPM unsigned int 0x00001F40 (Hex) 0x2002BC5C
- FansLimitRPM unsigned int 0x00001388 (Hex) 0x2002BC60
- FansTachoPPR unsigned int 0x00000002 (Hex) 0x2002BC64
- FansSpare1 unsigned int 0x00000000 (Hex) 0x2002BC68
- FansSpare2 unsigned int 0x00000000 (Hex) 0x2002BC6C
- CheckSum unsigned int 0x00002257 (Hex) 0x2002BC70
- Buf unsigned char[268] [51 '3',204 '\xcc',170 '\xaa',85 'U',4 '\x04'...] 0x2002BB68
- [0 ... 99]
- [0] unsigned char 51 '3' 0x2002BB68
- [1] unsigned char 204 '\xcc' 0x2002BB69
- [2] unsigned char 170 '\xaa' 0x2002BB6A
- [3] unsigned char 85 'U' 0x2002BB6B
- [4] unsigned char 4 '\x04' 0x2002BB6C
- [5] unsigned char 1 '\x01' 0x2002BB6D
- [6] unsigned char 0 '\x00' 0x2002BB6E
- [7] unsigned char 0 '\x00' 0x2002BB6F
- [8] unsigned char 0 '\x00' 0x2002BB70
- [9] unsigned char 0 '\x00' 0x2002BB71
- [10] unsigned char 0 '\x00' 0x2002BB72
- [11] unsigned char 0 '\x00' 0x2002BB73
- [12] unsigned char 65 'A' 0x2002BB74
- [13] unsigned char 77 'M' 0x2002BB75
- [14] unsigned char 48 '0' 0x2002BB76
- [15] unsigned char 48 '0' 0x2002BB77
- [16] unsigned char 50 '2' 0x2002BB78
- [17] unsigned char 50 '2' 0x2002BB79
- [18] unsigned char 50 '2' 0x2002BB7A
- [19] unsigned char 51 '3' 0x2002BB7B
- [20] unsigned char 45 '-' 0x2002BB7C
- [21] unsigned char 48 '0' 0x2002BB7D
- [22] unsigned char 48 '0' 0x2002BB7E
- [23] unsigned char 0 '\x00' 0x2002BB7F
- [24] unsigned char 0 '\x00' 0x2002BB80
- [25] unsigned char 0 '\x00' 0x2002BB81
- [26] unsigned char 0 '\x00' 0x2002BB82
- [27] unsigned char 0 '\x00' 0x2002BB83
- [28] unsigned char 0 '\x00' 0x2002BB84
- [29] unsigned char 0 '\x00' 0x2002BB85
- [30] unsigned char 0 '\x00' 0x2002BB86
- [31] unsigned char 0 '\x00' 0x2002BB87
- [32] unsigned char 65 'A' 0x2002BB88
- [33] unsigned char 80 'P' 0x2002BB89
- [34] unsigned char 48 '0' 0x2002BB8A
- [35] unsigned char 48 '0' 0x2002BB8B
- [36] unsigned char 48 '0' 0x2002BB8C
- [37] unsigned char 57 '9' 0x2002BB8D
- [38] unsigned char 51 '3' 0x2002BB8E
- [39] unsigned char 49 '1' 0x2002BB8F
- [40] unsigned char 0 '\x00' 0x2002BB90
- [41] unsigned char 0 '\x00' 0x2002BB91
- [42] unsigned char 0 '\x00' 0x2002BB92
- [43] unsigned char 0 '\x00' 0x2002BB93
- [44] unsigned char 0 '\x00' 0x2002BB94
- [45] unsigned char 0 '\x00' 0x2002BB95
- [46] unsigned char 0 '\x00' 0x2002BB96
- [47] unsigned char 0 '\x00' 0x2002BB97
- [48] unsigned char 0 '\x00' 0x2002BB98
- [49] unsigned char 0 '\x00' 0x2002BB99
- [50] unsigned char 0 '\x00' 0x2002BB9A
- [51] unsigned char 0 '\x00' 0x2002BB9B
- [52] unsigned char 65 'A' 0x2002BB9C
- [53] unsigned char 80 'P' 0x2002BB9D
- [54] unsigned char 48 '0' 0x2002BB9E
- [55] unsigned char 48 '0' 0x2002BB9F
- [56] unsigned char 48 '0' 0x2002BBA0
- [57] unsigned char 57 '9' 0x2002BBA1
- [58] unsigned char 51 '3' 0x2002BBA2
- [59] unsigned char 49 '1' 0x2002BBA3
- [60] unsigned char 0 '\x00' 0x2002BBA4
- [61] unsigned char 0 '\x00' 0x2002BBA5
- [62] unsigned char 0 '\x00' 0x2002BBA6
- [63] unsigned char 0 '\x00' 0x2002BBA7
- [64] unsigned char 0 '\x00' 0x2002BBA8
- [65] unsigned char 0 '\x00' 0x2002BBA9
- [66] unsigned char 0 '\x00' 0x2002BBAA
- [67] unsigned char 0 '\x00' 0x2002BBAB
- [68] unsigned char 0 '\x00' 0x2002BBAC
- [69] unsigned char 0 '\x00' 0x2002BBAD
- [70] unsigned char 0 '\x00' 0x2002BBAE
- [71] unsigned char 0 '\x00' 0x2002BBAF
- [72] unsigned char 49 '1' 0x2002BBB0
- [73] unsigned char 50 '2' 0x2002BBB1
- [74] unsigned char 51 '3' 0x2002BBB2
- [75] unsigned char 52 '4' 0x2002BBB3
- [76] unsigned char 53 '5' 0x2002BBB4
- [77] unsigned char 54 '6' 0x2002BBB5
- [78] unsigned char 55 '7' 0x2002BBB6
- [79] unsigned char 56 '8' 0x2002BBB7
- [80] unsigned char 57 '9' 0x2002BBB8
- [81] unsigned char 48 '0' 0x2002BBB9
- [82] unsigned char 49 '1' 0x2002BBBA
- [83] unsigned char 50 '2' 0x2002BBBB
- [84] unsigned char 51 '3' 0x2002BBBC
- [85] unsigned char 52 '4' 0x2002BBBD
- [86] unsigned char 53 '5' 0x2002BBBE
- [87] unsigned char 0 '\x00' 0x2002BBBF
- [88] unsigned char 0 '\x00' 0x2002BBC0
- [89] unsigned char 0 '\x00' 0x2002BBC1
- [90] unsigned char 0 '\x00' 0x2002BBC2
- [91] unsigned char 0 '\x00' 0x2002BBC3
- [92] unsigned char 32 ' ' 0x2002BBC4
- [93] unsigned char 0 '\x00' 0x2002BBC5
- [94] unsigned char 0 '\x00' 0x2002BBC6
- [95] unsigned char 0 '\x00' 0x2002BBC7
- [96] unsigned char 0 '\x00' 0x2002BBC8
- [97] unsigned char 0 '\x00' 0x2002BBC9
- [98] unsigned char 0 '\x00' 0x2002BBCA
- [99] unsigned char 0 '\x00' 0x2002BBCB
- [100 ... 199]
- [100] unsigned char 0 '\x00' 0x2002BBCC
- [101] unsigned char 0 '\x00' 0x2002BBCD
- [102] unsigned char 0 '\x00' 0x2002BBCE
- [103] unsigned char 0 '\x00' 0x2002BBCF
- [104] unsigned char 255 '\xff' 0x2002BBD0
- [105] unsigned char 255 '\xff' 0x2002BBD1
- [106] unsigned char 0 '\x00' 0x2002BBD2
- [107] unsigned char 0 '\x00' 0x2002BBD3
- [108] unsigned char 0 '\x00' 0x2002BBD4
- [109] unsigned char 0 '\x00' 0x2002BBD5
- [110] unsigned char 0 '\x00' 0x2002BBD6
- [111] unsigned char 0 '\x00' 0x2002BBD7
- [112] unsigned char 0 '\x00' 0x2002BBD8
- [113] unsigned char 0 '\x00' 0x2002BBD9
- [114] unsigned char 0 '\x00' 0x2002BBDA
- [115] unsigned char 0 '\x00' 0x2002BBDB
- [116] unsigned char 0 '\x00' 0x2002BBDC
- [117] unsigned char 0 '\x00' 0x2002BBDD
- [118] unsigned char 0 '\x00' 0x2002BBDE
- [119] unsigned char 0 '\x00' 0x2002BBDF
- [120] unsigned char 0 '\x00' 0x2002BBE0
- [121] unsigned char 0 '\x00' 0x2002BBE1
- [122] unsigned char 0 '\x00' 0x2002BBE2
- [123] unsigned char 0 '\x00' 0x2002BBE3
- [124] unsigned char 0 '\x00' 0x2002BBE4
- [125] unsigned char 0 '\x00' 0x2002BBE5
- [126] unsigned char 0 '\x00' 0x2002BBE6
- [127] unsigned char 0 '\x00' 0x2002BBE7
- [128] unsigned char 0 '\x00' 0x2002BBE8
- [129] unsigned char 0 '\x00' 0x2002BBE9
- [130] unsigned char 0 '\x00' 0x2002BBEA
- [131] unsigned char 0 '\x00' 0x2002BBEB
- [132] unsigned char 50 '2' 0x2002BBEC
- [133] unsigned char 49 '1' 0x2002BBED
- [134] unsigned char 47 '/' 0x2002BBEE
- [135] unsigned char 49 '1' 0x2002BBEF
- [136] unsigned char 48 '0' 0x2002BBF0
- [137] unsigned char 47 '/' 0x2002BBF1
- [138] unsigned char 50 '2' 0x2002BBF2
- [139] unsigned char 48 '0' 0x2002BBF3
- [140] unsigned char 70 'F' 0x2002BBF4
- [141] unsigned char 0 '\x00' 0x2002BBF5
- [142] unsigned char 0 '\x00' 0x2002BBF6
- [143] unsigned char 0 '\x00' 0x2002BBF7
- [144] unsigned char 48 '0' 0x2002BBF8
- [145] unsigned char 48 '0' 0x2002BBF9
- [146] unsigned char 48 '0' 0x2002BBFA
- [147] unsigned char 49 '1' 0x2002BBFB
- [148] unsigned char 0 '\x00' 0x2002BBFC
- [149] unsigned char 0 '\x00' 0x2002BBFD
- [150] unsigned char 0 '\x00' 0x2002BBFE
- [151] unsigned char 0 '\x00' 0x2002BBFF
- [152] unsigned char 0 '\x00' 0x2002BC00
- [153] unsigned char 0 '\x00' 0x2002BC01
- [154] unsigned char 0 '\x00' 0x2002BC02
- [155] unsigned char 0 '\x00' 0x2002BC03
- [156] unsigned char 0 '\x00' 0x2002BC04
- [157] unsigned char 0 '\x00' 0x2002BC05
- [158] unsigned char 0 '\x00' 0x2002BC06
- [159] unsigned char 0 '\x00' 0x2002BC07
- [160] unsigned char 0 '\x00' 0x2002BC08
- [161] unsigned char 0 '\x00' 0x2002BC09
- [162] unsigned char 0 '\x00' 0x2002BC0A
- [163] unsigned char 0 '\x00' 0x2002BC0B
- [164] unsigned char 65 'A' 0x2002BC0C
- [165] unsigned char 80 'P' 0x2002BC0D
- [166] unsigned char 48 '0' 0x2002BC0E
- [167] unsigned char 48 '0' 0x2002BC0F
- [168] unsigned char 50 '2' 0x2002BC10
- [169] unsigned char 50 '2' 0x2002BC11
- [170] unsigned char 51 '3' 0x2002BC12
- [171] unsigned char 49 '1' 0x2002BC13
- [172] unsigned char 0 '\x00' 0x2002BC14
- [173] unsigned char 0 '\x00' 0x2002BC15
- [174] unsigned char 0 '\x00' 0x2002BC16
- [175] unsigned char 0 '\x00' 0x2002BC17
- [176] unsigned char 0 '\x00' 0x2002BC18
- [177] unsigned char 0 '\x00' 0x2002BC19
- [178] unsigned char 0 '\x00' 0x2002BC1A
- [179] unsigned char 0 '\x00' 0x2002BC1B
- [180] unsigned char 0 '\x00' 0x2002BC1C
- [181] unsigned char 0 '\x00' 0x2002BC1D
- [182] unsigned char 0 '\x00' 0x2002BC1E
- [183] unsigned char 0 '\x00' 0x2002BC1F
- [184] unsigned char 255 '\xff' 0x2002BC20
- [185] unsigned char 255 '\xff' 0x2002BC21
- [186] unsigned char 255 '\xff' 0x2002BC22
- [187] unsigned char 255 '\xff' 0x2002BC23
- [188] unsigned char 255 '\xff' 0x2002BC24
- [189] unsigned char 255 '\xff' 0x2002BC25
- [190] unsigned char 255 '\xff' 0x2002BC26
- [191] unsigned char 255 '\xff' 0x2002BC27
- [192] unsigned char 2 '\x02' 0x2002BC28
- [193] unsigned char 0 '\x00' 0x2002BC29
- [194] unsigned char 0 '\x00' 0x2002BC2A
- [195] unsigned char 0 '\x00' 0x2002BC2B
- [196] unsigned char 3 '\x03' 0x2002BC2C
- [197] unsigned char 0 '\x00' 0x2002BC2D
- [198] unsigned char 0 '\x00' 0x2002BC2E
- [199] unsigned char 0 '\x00' 0x2002BC2F
- [200 ... 267]
- [200] unsigned char 80 'P' 0x2002BC30
- [201] unsigned char 15 '\x0f' 0x2002BC31
- [202] unsigned char 0 '\x00' 0x2002BC32
- [203] unsigned char 0 '\x00' 0x2002BC33
- [204] unsigned char 50 '2' 0x2002BC34
- [205] unsigned char 49 '1' 0x2002BC35
- [206] unsigned char 47 '/' 0x2002BC36
- [207] unsigned char 49 '1' 0x2002BC37
- [208] unsigned char 48 '0' 0x2002BC38
- [209] unsigned char 47 '/' 0x2002BC39
- [210] unsigned char 50 '2' 0x2002BC3A
- [211] unsigned char 48 '0' 0x2002BC3B
- [212] unsigned char 0 '\x00' 0x2002BC3C
- [213] unsigned char 0 '\x00' 0x2002BC3D
- [214] unsigned char 0 '\x00' 0x2002BC3E
- [215] unsigned char 0 '\x00' 0x2002BC3F
- [216] unsigned char 5 '\x05' 0x2002BC40
- [217] unsigned char 0 '\x00' 0x2002BC41
- [218] unsigned char 0 '\x00' 0x2002BC42
- [219] unsigned char 0 '\x00' 0x2002BC43
- [220] unsigned char 80 'P' 0x2002BC44
- [221] unsigned char 15 '\x0f' 0x2002BC45
- [222] unsigned char 0 '\x00' 0x2002BC46
- [223] unsigned char 0 '\x00' 0x2002BC47
- [224] unsigned char 0 '\x00' 0x2002BC48
- [225] unsigned char 0 '\x00' 0x2002BC49
- [226] unsigned char 0 '\x00' 0x2002BC4A
- [227] unsigned char 0 '\x00' 0x2002BC4B
- [228] unsigned char 228 '\xe4' 0x2002BC4C
- [229] unsigned char 12 '\x0c' 0x2002BC4D
- [230] unsigned char 0 '\x00' 0x2002BC4E
- [231] unsigned char 0 '\x00' 0x2002BC4F
- [232] unsigned char 100 'd' 0x2002BC50
- [233] unsigned char 0 '\x00' 0x2002BC51
- [234] unsigned char 0 '\x00' 0x2002BC52
- [235] unsigned char 0 '\x00' 0x2002BC53
- [236] unsigned char 76 'L' 0x2002BC54
- [237] unsigned char 4 '\x04' 0x2002BC55
- [238] unsigned char 0 '\x00' 0x2002BC56
- [239] unsigned char 0 '\x00' 0x2002BC57
- [240] unsigned char 70 'F' 0x2002BC58
- [241] unsigned char 0 '\x00' 0x2002BC59
- [242] unsigned char 0 '\x00' 0x2002BC5A
- [243] unsigned char 0 '\x00' 0x2002BC5B
- [244] unsigned char 64 '@' 0x2002BC5C
- [245] unsigned char 31 '\x1f' 0x2002BC5D
- [246] unsigned char 0 '\x00' 0x2002BC5E
- [247] unsigned char 0 '\x00' 0x2002BC5F
- [248] unsigned char 136 '\x88' 0x2002BC60
- [249] unsigned char 19 '\x13' 0x2002BC61
- [250] unsigned char 0 '\x00' 0x2002BC62
- [251] unsigned char 0 '\x00' 0x2002BC63
- [252] unsigned char 2 '\x02' 0x2002BC64
- [253] unsigned char 0 '\x00' 0x2002BC65
- [254] unsigned char 0 '\x00' 0x2002BC66
- [255] unsigned char 0 '\x00' 0x2002BC67
- [256] unsigned char 0 '\x00' 0x2002BC68
- [257] unsigned char 0 '\x00' 0x2002BC69
- [258] unsigned char 0 '\x00' 0x2002BC6A
- [259] unsigned char 0 '\x00' 0x2002BC6B
- [260] unsigned char 0 '\x00' 0x2002BC6C
- [261] unsigned char 0 '\x00' 0x2002BC6D
- [262] unsigned char 0 '\x00' 0x2002BC6E
- [263] unsigned char 0 '\x00' 0x2002BC6F
- [264] unsigned char 87 'W' 0x2002BC70
- [265] unsigned char 34 '"' 0x2002BC71
- [266] unsigned char 0 '\x00' 0x2002BC72
- [267] unsigned char 0 '\x00' 0x2002BC73
diff --git a/Software/Stubs Collection/stubs/Scripts/eepromati3.c b/Software/Stubs Collection/stubs/Scripts/eepromati3.c
deleted file mode 100644
index dfba43764..000000000
--- a/Software/Stubs Collection/stubs/Scripts/eepromati3.c
+++ /dev/null
@@ -1,272 +0,0 @@
-Buf unsigned char[268] [51 '3',204 '\xcc',170 '\xaa',85 'U',4 '\x04'...] 0x2002BB68
- [0 ... 99]
- [0] unsigned char 51 '3' 0x2002BB68
- [1] unsigned char 204 '\xcc' 0x2002BB69
- [2] unsigned char 170 '\xaa' 0x2002BB6A
- [3] unsigned char 85 'U' 0x2002BB6B
- [4] unsigned char 4 '\x04' 0x2002BB6C
- [5] unsigned char 1 '\x01' 0x2002BB6D
- [6] unsigned char 0 '\x00' 0x2002BB6E
- [7] unsigned char 0 '\x00' 0x2002BB6F
- [8] unsigned char 0 '\x00' 0x2002BB70
- [9] unsigned char 0 '\x00' 0x2002BB71
- [10] unsigned char 0 '\x00' 0x2002BB72
- [11] unsigned char 0 '\x00' 0x2002BB73
- [12] unsigned char 65 'A' 0x2002BB74
- [13] unsigned char 77 'M' 0x2002BB75
- [14] unsigned char 48 '0' 0x2002BB76
- [15] unsigned char 48 '0' 0x2002BB77
- [16] unsigned char 50 '2' 0x2002BB78
- [17] unsigned char 50 '2' 0x2002BB79
- [18] unsigned char 50 '2' 0x2002BB7A
- [19] unsigned char 51 '3' 0x2002BB7B
- [20] unsigned char 45 '-' 0x2002BB7C
- [21] unsigned char 49 '1' 0x2002BB7D
- [22] unsigned char 0 '\x00' 0x2002BB7E
- [23] unsigned char 0 '\x00' 0x2002BB7F
- [24] unsigned char 0 '\x00' 0x2002BB80
- [25] unsigned char 0 '\x00' 0x2002BB81
- [26] unsigned char 0 '\x00' 0x2002BB82
- [27] unsigned char 0 '\x00' 0x2002BB83
- [28] unsigned char 0 '\x00' 0x2002BB84
- [29] unsigned char 0 '\x00' 0x2002BB85
- [30] unsigned char 0 '\x00' 0x2002BB86
- [31] unsigned char 0 '\x00' 0x2002BB87
- [32] unsigned char 65 'A' 0x2002BB88
- [33] unsigned char 80 'P' 0x2002BB89
- [34] unsigned char 48 '0' 0x2002BB8A
- [35] unsigned char 48 '0' 0x2002BB8B
- [36] unsigned char 48 '0' 0x2002BB8C
- [37] unsigned char 57 '9' 0x2002BB8D
- [38] unsigned char 51 '3' 0x2002BB8E
- [39] unsigned char 49 '1' 0x2002BB8F
- [40] unsigned char 0 '\x00' 0x2002BB90
- [41] unsigned char 0 '\x00' 0x2002BB91
- [42] unsigned char 0 '\x00' 0x2002BB92
- [43] unsigned char 0 '\x00' 0x2002BB93
- [44] unsigned char 0 '\x00' 0x2002BB94
- [45] unsigned char 0 '\x00' 0x2002BB95
- [46] unsigned char 0 '\x00' 0x2002BB96
- [47] unsigned char 0 '\x00' 0x2002BB97
- [48] unsigned char 0 '\x00' 0x2002BB98
- [49] unsigned char 0 '\x00' 0x2002BB99
- [50] unsigned char 0 '\x00' 0x2002BB9A
- [51] unsigned char 0 '\x00' 0x2002BB9B
- [52] unsigned char 65 'A' 0x2002BB9C
- [53] unsigned char 80 'P' 0x2002BB9D
- [54] unsigned char 48 '0' 0x2002BB9E
- [55] unsigned char 48 '0' 0x2002BB9F
- [56] unsigned char 48 '0' 0x2002BBA0
- [57] unsigned char 57 '9' 0x2002BBA1
- [58] unsigned char 51 '3' 0x2002BBA2
- [59] unsigned char 49 '1' 0x2002BBA3
- [60] unsigned char 0 '\x00' 0x2002BBA4
- [61] unsigned char 0 '\x00' 0x2002BBA5
- [62] unsigned char 0 '\x00' 0x2002BBA6
- [63] unsigned char 0 '\x00' 0x2002BBA7
- [64] unsigned char 0 '\x00' 0x2002BBA8
- [65] unsigned char 0 '\x00' 0x2002BBA9
- [66] unsigned char 0 '\x00' 0x2002BBAA
- [67] unsigned char 0 '\x00' 0x2002BBAB
- [68] unsigned char 0 '\x00' 0x2002BBAC
- [69] unsigned char 0 '\x00' 0x2002BBAD
- [70] unsigned char 0 '\x00' 0x2002BBAE
- [71] unsigned char 0 '\x00' 0x2002BBAF
- [72] unsigned char 49 '1' 0x2002BBB0
- [73] unsigned char 50 '2' 0x2002BBB1
- [74] unsigned char 51 '3' 0x2002BBB2
- [75] unsigned char 52 '4' 0x2002BBB3
- [76] unsigned char 53 '5' 0x2002BBB4
- [77] unsigned char 54 '6' 0x2002BBB5
- [78] unsigned char 55 '7' 0x2002BBB6
- [79] unsigned char 56 '8' 0x2002BBB7
- [80] unsigned char 57 '9' 0x2002BBB8
- [81] unsigned char 48 '0' 0x2002BBB9
- [82] unsigned char 49 '1' 0x2002BBBA
- [83] unsigned char 50 '2' 0x2002BBBB
- [84] unsigned char 51 '3' 0x2002BBBC
- [85] unsigned char 52 '4' 0x2002BBBD
- [86] unsigned char 53 '5' 0x2002BBBE
- [87] unsigned char 0 '\x00' 0x2002BBBF
- [88] unsigned char 0 '\x00' 0x2002BBC0
- [89] unsigned char 0 '\x00' 0x2002BBC1
- [90] unsigned char 0 '\x00' 0x2002BBC2
- [91] unsigned char 0 '\x00' 0x2002BBC3
- [92] unsigned char 32 ' ' 0x2002BBC4
- [93] unsigned char 0 '\x00' 0x2002BBC5
- [94] unsigned char 0 '\x00' 0x2002BBC6
- [95] unsigned char 0 '\x00' 0x2002BBC7
- [96] unsigned char 0 '\x00' 0x2002BBC8
- [97] unsigned char 0 '\x00' 0x2002BBC9
- [98] unsigned char 0 '\x00' 0x2002BBCA
- [99] unsigned char 0 '\x00' 0x2002BBCB
- [100 ... 199]
- [100] unsigned char 0 '\x00' 0x2002BBCC
- [101] unsigned char 0 '\x00' 0x2002BBCD
- [102] unsigned char 0 '\x00' 0x2002BBCE
- [103] unsigned char 0 '\x00' 0x2002BBCF
- [104] unsigned char 255 '\xff' 0x2002BBD0
- [105] unsigned char 255 '\xff' 0x2002BBD1
- [106] unsigned char 0 '\x00' 0x2002BBD2
- [107] unsigned char 0 '\x00' 0x2002BBD3
- [108] unsigned char 0 '\x00' 0x2002BBD4
- [109] unsigned char 0 '\x00' 0x2002BBD5
- [110] unsigned char 0 '\x00' 0x2002BBD6
- [111] unsigned char 0 '\x00' 0x2002BBD7
- [112] unsigned char 0 '\x00' 0x2002BBD8
- [113] unsigned char 0 '\x00' 0x2002BBD9
- [114] unsigned char 0 '\x00' 0x2002BBDA
- [115] unsigned char 0 '\x00' 0x2002BBDB
- [116] unsigned char 0 '\x00' 0x2002BBDC
- [117] unsigned char 0 '\x00' 0x2002BBDD
- [118] unsigned char 0 '\x00' 0x2002BBDE
- [119] unsigned char 0 '\x00' 0x2002BBDF
- [120] unsigned char 0 '\x00' 0x2002BBE0
- [121] unsigned char 0 '\x00' 0x2002BBE1
- [122] unsigned char 0 '\x00' 0x2002BBE2
- [123] unsigned char 0 '\x00' 0x2002BBE3
- [124] unsigned char 0 '\x00' 0x2002BBE4
- [125] unsigned char 0 '\x00' 0x2002BBE5
- [126] unsigned char 0 '\x00' 0x2002BBE6
- [127] unsigned char 0 '\x00' 0x2002BBE7
- [128] unsigned char 0 '\x00' 0x2002BBE8
- [129] unsigned char 0 '\x00' 0x2002BBE9
- [130] unsigned char 0 '\x00' 0x2002BBEA
- [131] unsigned char 0 '\x00' 0x2002BBEB
- [132] unsigned char 50 '2' 0x2002BBEC
- [133] unsigned char 49 '1' 0x2002BBED
- [134] unsigned char 47 '/' 0x2002BBEE
- [135] unsigned char 49 '1' 0x2002BBEF
- [136] unsigned char 48 '0' 0x2002BBF0
- [137] unsigned char 47 '/' 0x2002BBF1
- [138] unsigned char 50 '2' 0x2002BBF2
- [139] unsigned char 48 '0' 0x2002BBF3
- [140] unsigned char 70 'F' 0x2002BBF4
- [141] unsigned char 0 '\x00' 0x2002BBF5
- [142] unsigned char 0 '\x00' 0x2002BBF6
- [143] unsigned char 0 '\x00' 0x2002BBF7
- [144] unsigned char 0 '\x00' 0x2002BBF8
- [145] unsigned char 0 '\x00' 0x2002BBF9
- [146] unsigned char 0 '\x00' 0x2002BBFA
- [147] unsigned char 0 '\x00' 0x2002BBFB
- [148] unsigned char 0 '\x00' 0x2002BBFC
- [149] unsigned char 0 '\x00' 0x2002BBFD
- [150] unsigned char 0 '\x00' 0x2002BBFE
- [151] unsigned char 0 '\x00' 0x2002BBFF
- [152] unsigned char 0 '\x00' 0x2002BC00
- [153] unsigned char 0 '\x00' 0x2002BC01
- [154] unsigned char 0 '\x00' 0x2002BC02
- [155] unsigned char 0 '\x00' 0x2002BC03
- [156] unsigned char 0 '\x00' 0x2002BC04
- [157] unsigned char 0 '\x00' 0x2002BC05
- [158] unsigned char 0 '\x00' 0x2002BC06
- [159] unsigned char 0 '\x00' 0x2002BC07
- [160] unsigned char 0 '\x00' 0x2002BC08
- [161] unsigned char 0 '\x00' 0x2002BC09
- [162] unsigned char 0 '\x00' 0x2002BC0A
- [163] unsigned char 0 '\x00' 0x2002BC0B
- [164] unsigned char 65 'A' 0x2002BC0C
- [165] unsigned char 80 'P' 0x2002BC0D
- [166] unsigned char 48 '0' 0x2002BC0E
- [167] unsigned char 48 '0' 0x2002BC0F
- [168] unsigned char 50 '2' 0x2002BC10
- [169] unsigned char 50 '2' 0x2002BC11
- [170] unsigned char 51 '3' 0x2002BC12
- [171] unsigned char 49 '1' 0x2002BC13
- [172] unsigned char 0 '\x00' 0x2002BC14
- [173] unsigned char 0 '\x00' 0x2002BC15
- [174] unsigned char 0 '\x00' 0x2002BC16
- [175] unsigned char 0 '\x00' 0x2002BC17
- [176] unsigned char 0 '\x00' 0x2002BC18
- [177] unsigned char 0 '\x00' 0x2002BC19
- [178] unsigned char 0 '\x00' 0x2002BC1A
- [179] unsigned char 0 '\x00' 0x2002BC1B
- [180] unsigned char 0 '\x00' 0x2002BC1C
- [181] unsigned char 0 '\x00' 0x2002BC1D
- [182] unsigned char 0 '\x00' 0x2002BC1E
- [183] unsigned char 0 '\x00' 0x2002BC1F
- [184] unsigned char 50 '2' 0x2002BC20
- [185] unsigned char 49 '1' 0x2002BC21
- [186] unsigned char 47 '/' 0x2002BC22
- [187] unsigned char 49 '1' 0x2002BC23
- [188] unsigned char 48 '0' 0x2002BC24
- [189] unsigned char 47 '/' 0x2002BC25
- [190] unsigned char 50 '2' 0x2002BC26
- [191] unsigned char 48 '0' 0x2002BC27
- [192] unsigned char 2 '\x02' 0x2002BC28
- [193] unsigned char 0 '\x00' 0x2002BC29
- [194] unsigned char 0 '\x00' 0x2002BC2A
- [195] unsigned char 0 '\x00' 0x2002BC2B
- [196] unsigned char 3 '\x03' 0x2002BC2C
- [197] unsigned char 0 '\x00' 0x2002BC2D
- [198] unsigned char 0 '\x00' 0x2002BC2E
- [199] unsigned char 0 '\x00' 0x2002BC2F
- [200 ... 267]
- [200] unsigned char 80 'P' 0x2002BC30
- [201] unsigned char 15 '\x0f' 0x2002BC31
- [202] unsigned char 0 '\x00' 0x2002BC32
- [203] unsigned char 0 '\x00' 0x2002BC33
- [204] unsigned char 50 '2' 0x2002BC34
- [205] unsigned char 49 '1' 0x2002BC35
- [206] unsigned char 47 '/' 0x2002BC36
- [207] unsigned char 49 '1' 0x2002BC37
- [208] unsigned char 48 '0' 0x2002BC38
- [209] unsigned char 47 '/' 0x2002BC39
- [210] unsigned char 50 '2' 0x2002BC3A
- [211] unsigned char 48 '0' 0x2002BC3B
- [212] unsigned char 4 '\x04' 0x2002BC3C
- [213] unsigned char 0 '\x00' 0x2002BC3D
- [214] unsigned char 0 '\x00' 0x2002BC3E
- [215] unsigned char 0 '\x00' 0x2002BC3F
- [216] unsigned char 5 '\x05' 0x2002BC40
- [217] unsigned char 0 '\x00' 0x2002BC41
- [218] unsigned char 0 '\x00' 0x2002BC42
- [219] unsigned char 0 '\x00' 0x2002BC43
- [220] unsigned char 80 'P' 0x2002BC44
- [221] unsigned char 15 '\x0f' 0x2002BC45
- [222] unsigned char 0 '\x00' 0x2002BC46
- [223] unsigned char 0 '\x00' 0x2002BC47
- [224] unsigned char 0 '\x00' 0x2002BC48
- [225] unsigned char 0 '\x00' 0x2002BC49
- [226] unsigned char 0 '\x00' 0x2002BC4A
- [227] unsigned char 0 '\x00' 0x2002BC4B
- [228] unsigned char 228 '\xe4' 0x2002BC4C
- [229] unsigned char 12 '\x0c' 0x2002BC4D
- [230] unsigned char 0 '\x00' 0x2002BC4E
- [231] unsigned char 0 '\x00' 0x2002BC4F
- [232] unsigned char 100 'd' 0x2002BC50
- [233] unsigned char 0 '\x00' 0x2002BC51
- [234] unsigned char 0 '\x00' 0x2002BC52
- [235] unsigned char 0 '\x00' 0x2002BC53
- [236] unsigned char 76 'L' 0x2002BC54
- [237] unsigned char 4 '\x04' 0x2002BC55
- [238] unsigned char 0 '\x00' 0x2002BC56
- [239] unsigned char 0 '\x00' 0x2002BC57
- [240] unsigned char 70 'F' 0x2002BC58
- [241] unsigned char 0 '\x00' 0x2002BC59
- [242] unsigned char 0 '\x00' 0x2002BC5A
- [243] unsigned char 0 '\x00' 0x2002BC5B
- [244] unsigned char 64 '@' 0x2002BC5C
- [245] unsigned char 31 '\x1f' 0x2002BC5D
- [246] unsigned char 0 '\x00' 0x2002BC5E
- [247] unsigned char 0 '\x00' 0x2002BC5F
- [248] unsigned char 136 '\x88' 0x2002BC60
- [249] unsigned char 19 '\x13' 0x2002BC61
- [250] unsigned char 0 '\x00' 0x2002BC62
- [251] unsigned char 0 '\x00' 0x2002BC63
- [252] unsigned char 2 '\x02' 0x2002BC64
- [253] unsigned char 0 '\x00' 0x2002BC65
- [254] unsigned char 0 '\x00' 0x2002BC66
- [255] unsigned char 0 '\x00' 0x2002BC67
- [256] unsigned char 0 '\x00' 0x2002BC68
- [257] unsigned char 0 '\x00' 0x2002BC69
- [258] unsigned char 0 '\x00' 0x2002BC6A
- [259] unsigned char 0 '\x00' 0x2002BC6B
- [260] unsigned char 0 '\x00' 0x2002BC6C
- [261] unsigned char 0 '\x00' 0x2002BC6D
- [262] unsigned char 0 '\x00' 0x2002BC6E
- [263] unsigned char 0 '\x00' 0x2002BC6F
- [264] unsigned char 247 '\xf7' 0x2002BC70
- [265] unsigned char 26 '\x1a' 0x2002BC71
- [266] unsigned char 0 '\x00' 0x2002BC72
- [267] unsigned char 0 '\x00' 0x2002BC73
diff --git a/Software/Stubs Collection/stubs/Scripts/embeddedparametersbuild_w_cleaning.cs b/Software/Stubs Collection/stubs/Scripts/embeddedparametersbuild_w_cleaning.cs
deleted file mode 100644
index 16a8324ba..000000000
--- a/Software/Stubs Collection/stubs/Scripts/embeddedparametersbuild_w_cleaning.cs
+++ /dev/null
@@ -1,215 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-using Google.Protobuf;
-using Tango.PMR.EmbeddedParameters;
-using System.IO;
-using Tango.PMR.IO;
-
-
-public void OnExecute(StubManager stubManager)
-{
-// parameters version for TESTING 1.5.0.2
-
-ConfigurationParameters configurationParameters = new ConfigurationParameters();
-
-configurationParameters.BreakSensorLimit = 10;
-
-//how many samples to collect in diagnostics before sending
-configurationParameters.DiagnosticCollectionLimit = 1;
-
-//how many consecutive readout before declaring DC over/underheat alarm
-configurationParameters.OverHeatCountLimit = 3;
-configurationParameters.UnderHeatCountLimit = 3;
-
-// time of motor activity before opening the valve or after closing the valve, in milliseconds
-configurationParameters.CloseValveTimeout = 20;
-configurationParameters.OpenValveTimeout = 20;
-
-//backlash after filling - target pressure, timoeout, time staps (speed will be added in general parameters)
-configurationParameters.InitialDispenserPressure = 3.85; //used for initial pre-run maximal pressure
-configurationParameters.InitialDispenserTimeout = 120000; ////used for initial pre-run target number of steps
-configurationParameters.InitialDispenserTimeLag = 100;
-
-//job prepare - build pressure in dispensers - target pressure, timoeout, time staps, speed
-configurationParameters.DispenserBuildPressureSpeed = 950; //no more than 1000
-configurationParameters.DispenserBuildPressureLimit = 0.85;
-configurationParameters.DispenserBuildPressureTimeout = 420000; // 7 minutes - long prepare for 5 cycles build
-configurationParameters.DispenserBuildPressureLag = 100;
-
-//temperature band 1000 = 100% - thresholds for job start around target temprature - AC
-configurationParameters.ACHeatersLowerOperationLimit = 995;
-configurationParameters.ACHeatersUpperOperationLimit = 1005;
-
-//temperature band 1000 = 100% - thresholds for job start around target temprature - DC
-configurationParameters.DCHeatersLowerOperationLimit = 978;
-configurationParameters.DCHeatersUpperOperationLimit = 1005;
-
-// mid tank reading offset to add to the readout (OBSOLETE!)
-configurationParameters.MidTankPressureCorrection = 0.0;
-
-//waste factor for intersegment pressure building
-configurationParameters.DispenserPresegmentWFCF = 40;
-//how much time to start the WFCF process (pressure buildup) before segment start
-configurationParameters.IDSPreSegmentWFCFTimeBeforeSegment = 12000;
-
-//flag: start heaters according to saved process parameters upon init?
-configurationParameters.StartHeatingOnInitSequence = true;
-
-// current test for the heaters - alarm thresholds
-configurationParameters.CurrentAlarmLowLimit = 0.78;
-configurationParameters.CurrentAlarmHighLimit = 1.07;
-
-//currently not in use
-configurationParameters.IDSSegmentRefillTimeout = 5000;
-configurationParameters.IDSPreSegmentBuildupTime = 5000;
-//cleaning!!!!!!!!!!
-configurationParameters.IDSCleaningSpeed = 800;
-configurationParameters.IDSCleaningStopBeforeSegmentTime = 10000; //end of presegemnt
-configurationParameters.IDSCleaningStartSprayPreSegmentTime =2000; //beginning of presegment
-
-int Tup = 10,Tdelay1 = 98,Tdelay2 = 198; //350nsec up, 1 second delay, 2 seconds before up again
-// Tup = LeftRockerSpeed/100;
-// Tdelay1 = LeftRockerSpeed%100;
-// Tdelay2 = RightRockerSpeed;
-int LeftRockerSpeed = Tup*100+Tdelay1;
-int RightRockerSpeed = Tdelay2;
-
-configurationParameters.IDSLeftCleaningMotorSpeed = LeftRockerSpeed;
-configurationParameters.IDSRightCleaningMotorSpeed = RightRockerSpeed;
-
-configurationParameters.SwitchToIdleTimeinSeconds = 3600;
-configurationParameters.IdleDrierTemperature = 80;
-configurationParameters.IdleHeadTemperature = 80;
-configurationParameters.IdleMixerTemperature = 0;
-configurationParameters.PowerOffTemperatureLimit = 100;
-
-//general parameters, ORDER MUST BE PRESERVED!!!!
-//check the dispensers hard limit alarms
-/*1*/
-Double checkHardLimitAlarms = new Double();
-
-checkHardLimitAlarms = 1.0;
-configurationParameters.GeneralParameters.Add(checkHardLimitAlarms);
-
-/*2*/
-Double checkCurrentAlarms = new Double();
-checkCurrentAlarms = 1.0;
-configurationParameters.GeneralParameters.Add(checkCurrentAlarms);
-//check the tamper alarms
-
-/*3*/
-Double checkTamperAlarms = new Double();
-checkTamperAlarms = 0.0;
-configurationParameters.GeneralParameters.Add(checkTamperAlarms);
-
-/*4*/
-Double checkMotorAlarms = new Double();
-checkMotorAlarms = 1.0;
-configurationParameters.GeneralParameters.Add(checkMotorAlarms);
-
-/*5*/
-Double WinderBackToBaseTime = new Double();
-WinderBackToBaseTime = 820.0;
-configurationParameters.GeneralParameters.Add(WinderBackToBaseTime);
-
-/*6*/
-Double DispenserInitialPressureSpeed = new Double();
-DispenserInitialPressureSpeed = 1050.0;
-configurationParameters.GeneralParameters.Add(DispenserInitialPressureSpeed);
-
-/*7*/
-Double SetDiagnosticMode = new Double();
-SetDiagnosticMode = 3.0;
-configurationParameters.GeneralParameters.Add(SetDiagnosticMode);
-
-/*8*/
-Double SetAutoFill = new Double();
-SetAutoFill = 3.0;
-configurationParameters.GeneralParameters.Add(SetAutoFill);
-
-double PowerOffDisableCleaning = new Double();
-PowerOffDisableCleaning = 0.0;
-configurationParameters.GeneralParameters.Add(PowerOffDisableCleaning);
-
-double SublimationBlowTime = new Double();
-SublimationBlowTime = 30.0;
-configurationParameters.GeneralParameters.Add(SublimationBlowTime);
-
-double AllowedRangeForHeadBlowerDeviation = new Double();
-AllowedRangeForHeadBlowerDeviation = 7;
-configurationParameters.GeneralParameters.Add(AllowedRangeForHeadBlowerDeviation);
-
-double AllowedRangeForWasteBlowerDeviation = new Double();
-AllowedRangeForWasteBlowerDeviation = 20;
-configurationParameters.GeneralParameters.Add(AllowedRangeForWasteBlowerDeviation);
-
-double Voltage_Hysteresis = new Double();
-Voltage_Hysteresis = 4;
-configurationParameters.GeneralParameters.Add(Voltage_Hysteresis);
-
-File.WriteAllBytes("C:/temp/EmbParam.cfg",configurationParameters.ToBytes());
-
-byte[] fileBytes = File.ReadAllBytes("C:/temp/EmbParam.cfg");
-
-
-var config = ConfigurationParameters.Parser.ParseFrom(fileBytes);
-
-stubManager.Write( config);
-Thread.Sleep(1000);
-
-
-stubManager.Write("\n\n Deleting old file");
-
-DeleteRequest deleteRequest = new DeleteRequest();
-deleteRequest.Path = "SYSINFO//EmbParam.cfg";
-deleteRequest.Attribute = Tango.PMR.IO.FileAttribute.Unspecified;
-DeleteResponse response5 = stubManager.Run<DeleteResponse>(deleteRequest);
-
-
-Thread.Sleep(1000);
-stubManager.Write("\n\n Loading new file file");
-
-FileUploadRequest fileUploadRequest = new FileUploadRequest();
-fileUploadRequest.Path = "SYSINFO//EmbParam.cfg";
-fileUploadRequest.Length = (int)fileBytes.Length;
-FileUploadResponse response2 = stubManager.Run<FileUploadResponse>(fileUploadRequest);
-Thread.Sleep(1000);
-long chunk_size = response2.MaxChunkLength;
-
-FileStream fs = new FileStream("C:/temp/EmbParam.cfg",FileMode.Open);
-
-while (fs.Position < fs.Length)
-{
- stubManager.Write("Position "+ fs.Position+ " Length "+ fs.Length +"\n\n");
- FileChunkUploadRequest fileChunkUploadRequest = new FileChunkUploadRequest();
- fileChunkUploadRequest.UploadID = response2.UploadID;
- byte[] chunk = new byte[Math.Min(chunk_size,fs.Length - fs.Position)];
- fs.Read(chunk,0,chunk.Length);
- fileChunkUploadRequest.Buffer = ByteString.CopyFrom(chunk);
- var response3 = stubManager.Run<FileChunkUploadResponse>(fileChunkUploadRequest);
- Thread.Sleep(2000);
-
-}
-
-// activating the new file
-ProgressRequest progressRequest = new ProgressRequest();
-progressRequest.Amount = 0xCD;
-progressRequest.Delay = 0xCD;
-var response1 = stubManager.Run<ProgressResponse>(progressRequest);
-
-
-/*
-13:46:42.38: Executing script 'embeddedparametersbuild.cs'...
-{ "BreakSensorLimit": 10, "DiagnosticCollectionLimit": 1, "OverHeatCountLimit": 3, "UnderHeatCountLimit": 3, "CloseValveTimeout": 255, "OpenValveTimeout": 255, "InitialDispenserPressure": 1.5, "InitialDispenserTimeout": 60000, "InitialDispenserTimeLag": 100, "DispenserBuildPressureSpeed": 800, "DispenserBuildPressureLimit": 0.9, "DispenserBuildPressureTimeout": 80000, "DispenserBuildPressureLag": 50, "ACHeatersLowerOperationLimit": 995, "ACHeatersUpperOperationLimit": 1005, "DCHeatersLowerOperationLimit": 978, "DCHeatersUpperOperationLimit": 1005, "DispenserPresegmentWFCF": 80, "StartHeatingOnInitSequence": true, "GeneralParameters": [ 1, 1, 1, 1, 800, 1000 ], "CurrentAlarmLowLimit": 0.8, "CurrentAlarmHighLimit": 1.07, "IDSSegmentRefillTimeout": 5000, "IDSPreSegmentBuildupTime": 5000, "IDSCleaningSpeed": 50, "IDSCleaningStopBeforeSegmentTime": 3000, "IDSCleaningStartSprayPreSegmentTime": 1000, "IDSLeftCleaningMotorSpeed": 30, "IDSRightCleaningMotorSpeed": 23, "SwitchToIdleTimeinSeconds": 3600, "IdleDrierTemperature": 80, "IdleHeadTemperature": 80, "PowerOffTemperatureLimit": 50, "IDSPreSegmentWFCFTimeBeforeSegment": 1500 } */
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/load parameters from machine.cs b/Software/Stubs Collection/stubs/Scripts/load parameters from machine.cs
deleted file mode 100644
index 62ceff195..000000000
--- a/Software/Stubs Collection/stubs/Scripts/load parameters from machine.cs
+++ /dev/null
@@ -1,59 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-using Google.Protobuf;
-using Tango.PMR.EmbeddedParameters;
-using System.IO;
-using Tango.PMR.IO;
-
-
-public void OnExecute(StubManager stubManager)
-{
-
-
-ConfigurationParameters configurationParameters = new ConfigurationParameters();
-
- Thread.Sleep(1000);
-
-stubManager.Write("\n\n Loading file from machine");
-
-FileDownloadRequest fileDownloadRequest = new FileDownloadRequest();
-fileDownloadRequest.FileName = "SYSINFO//EmbParam.cfg";
-FileDownloadResponse response2 = stubManager.Run<FileDownloadResponse>(fileDownloadRequest);
- Thread.Sleep(1000);
-long chunk_size = response2.MaxChunkLength;
-string Download_Id = response2.DownloadID;
-//FileStream fs = new FileStream("C:/temp/EmbParam.cfg",FileMode.Open);
-
-stubManager.Write("Position "+ response2.DownloadID+ " Length "+ response2.MaxChunkLength +"\n\n");
-FileChunkDownloadRequest fileChunkDownloadRequest = new FileChunkDownloadRequest();
-fileChunkDownloadRequest.DownloadID = response2.DownloadID;
-var response3 = stubManager.Run<FileChunkDownloadResponse>(fileChunkDownloadRequest);
-Thread.Sleep(2000);
-//byte[] chunk = new byte[500];//Math.Min(chunk_size,fs.Length - fs.Position)
-//chunk.Copy(response3.Buffer);
-//fs.Write(fs,chunk,chunk.Length);
- //fileChunkDownloadRequest.Buffer = ByteString.CopyFrom(chunk);
-//fs.Close(fs);
-
-//byte[] fileBytes = File.ReadAllBytes(fs);
-
-
-var config = ConfigurationParameters.Parser.ParseFrom(response3.Buffer);
-
- stubManager.Write( config);
-
-/*
-13:46:42.38: Executing script 'embeddedparametersbuild.cs'...
-{ "BreakSensorLimit": 10, "DiagnosticCollectionLimit": 1, "OverHeatCountLimit": 3, "UnderHeatCountLimit": 3, "CloseValveTimeout": 255, "OpenValveTimeout": 255, "InitialDispenserPressure": 1.5, "InitialDispenserTimeout": 60000, "InitialDispenserTimeLag": 100, "DispenserBuildPressureSpeed": 800, "DispenserBuildPressureLimit": 0.9, "DispenserBuildPressureTimeout": 80000, "DispenserBuildPressureLag": 50, "ACHeatersLowerOperationLimit": 995, "ACHeatersUpperOperationLimit": 1005, "DCHeatersLowerOperationLimit": 978, "DCHeatersUpperOperationLimit": 1005, "DispenserPresegmentWFCF": 80, "StartHeatingOnInitSequence": true, "GeneralParameters": [ 1, 1, 1, 1, 800, 1000 ], "CurrentAlarmLowLimit": 0.8, "CurrentAlarmHighLimit": 1.07, "IDSSegmentRefillTimeout": 5000, "IDSPreSegmentBuildupTime": 5000, "IDSCleaningSpeed": 50, "IDSCleaningStopBeforeSegmentTime": 3000, "IDSCleaningStartSprayPreSegmentTime": 1000, "IDSLeftCleaningMotorSpeed": 30, "IDSRightCleaningMotorSpeed": 23, "SwitchToIdleTimeinSeconds": 3600, "IdleDrierTemperature": 80, "IdleHeadTemperature": 80, "PowerOffTemperatureLimit": 50, "IDSPreSegmentWFCFTimeBeforeSegment": 1500 } */
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/magnet_new_head.cs b/Software/Stubs Collection/stubs/Scripts/magnet_new_head.cs
deleted file mode 100644
index bf48de49e..000000000
--- a/Software/Stubs Collection/stubs/Scripts/magnet_new_head.cs
+++ /dev/null
@@ -1,23 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
- for (int i = 0; i < 1000; i++)
- {
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,0x42F701); // turn magnet on //slave add 0x42, F for write, set bit 7
- Thread.Sleep(100);
-
-
-
- }
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/motormov.cs b/Software/Stubs Collection/stubs/Scripts/motormov.cs
deleted file mode 100644
index 94862a76a..000000000
--- a/Software/Stubs Collection/stubs/Scripts/motormov.cs
+++ /dev/null
@@ -1,23 +0,0 @@
-using System;
-using System.Text;
-using System.IO;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-
-
-StubMotorMovRequest stubMotorMovRequest = new StubMotorMovRequest();
-stubMotorMovRequest.MotorID = 21;
-stubMotorMovRequest.Direction = false;
-stubMotorMovRequest.Position = 1;
-}
-
diff --git a/Software/Stubs Collection/stubs/Scripts/new dispenser card GPIO.cs b/Software/Stubs Collection/stubs/Scripts/new dispenser card GPIO.cs
deleted file mode 100644
index 43d0dd76a..000000000
--- a/Software/Stubs Collection/stubs/Scripts/new dispenser card GPIO.cs
+++ /dev/null
@@ -1,90 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
- // Request ----
- // UInt32 : DispenserId
- // Boolean : Start --- true for ByPass
- // Boolean : SetDirection --- true for TestRelay
- // UInt32 : SetMicrostepDivision -- 1 for TestByPassTestRelay
- // Int32 : SetSpeed
-
- // Response ----
- // UInt32 : DispenserId
- // UInt32 : DispenserPosition --- MSB for Disp_UP, LSB for Disp_Down
- // UInt32 : InkWorningLevel ---- MSB for Realy_On, LSB for Over_Press
- // String : Status
- // UInt32 : StatusWord
-
- stubManager.Write("read inputs ");
- stubManager.WriteLine("");
- var response = stubManager.Run<StubDispenserResponse>("StubDispenserRequest" ,3, false, false, 0, 0);//read inputs
- stubManager.Write("MSB for Disp_UP, LSB for Disp_Down ");
- stubManager.WriteHex((response.DispenserPosition),4);
- stubManager.WriteLine("");
- stubManager.Write("MSB for Realy_On, LSB for Over_Press ");
- stubManager.WriteHex((response.InkWorningLevel),4);
- stubManager.WriteLine("");
- stubManager.WriteLine("----");
- stubManager.WriteLine("");
-
- stubManager.Write("TestRelay + read inputs ");
- stubManager.WriteLine("");
- response = stubManager.Run<StubDispenserResponse>("StubDispenserRequest" ,3, false, true, 0, 0);//TestRelay + read inputs
- stubManager.Write("MSB for Disp_UP, LSB for Disp_Down ");
- stubManager.WriteHex((response.DispenserPosition),4);
- stubManager.WriteLine("");
- stubManager.Write("MSB for Realy_On, LSB for Over_Press ");
- stubManager.WriteHex((response.InkWorningLevel),4);
- stubManager.WriteLine("");
- stubManager.WriteLine("----");
- stubManager.WriteLine("");
-
- stubManager.Write("ByPass + TestRelay + read inputs ");
- stubManager.WriteLine("");
- response = stubManager.Run<StubDispenserResponse>("StubDispenserRequest" ,3, true, true, 0, 0);//ByPass + TestRelay + read inputs
- stubManager.Write("MSB for Disp_UP, LSB for Disp_Down ");
- stubManager.WriteHex((response.DispenserPosition),4);
- stubManager.WriteLine("");
- stubManager.Write("MSB for Realy_On, LSB for Over_Press ");
- stubManager.WriteHex((response.InkWorningLevel),4);
- stubManager.WriteLine("");
- stubManager.WriteLine("----");
- stubManager.WriteLine("");
-
- stubManager.Write("Remove ByPass (TestRelay + read inputs) ");
- stubManager.WriteLine("");
- response = stubManager.Run<StubDispenserResponse>("StubDispenserRequest" ,3, false, true, 0, 0);//TestRelay + read inputs
- stubManager.Write("MSB for Disp_UP, LSB for Disp_Down ");
- stubManager.WriteHex((response.DispenserPosition),4);
- stubManager.WriteLine("");
- stubManager.Write("MSB for Realy_On, LSB for Over_Press ");
- stubManager.WriteHex((response.InkWorningLevel),4);
- stubManager.WriteLine("");
- stubManager.WriteLine("----");
- stubManager.WriteLine("");
-
-
- stubManager.Write("Rempve TestRelay and read inputs ");
- stubManager.WriteLine("");
- response = stubManager.Run<StubDispenserResponse>("StubDispenserRequest" ,3, false, false, 0, 0);//read input
- stubManager.Write("MSB for Disp_UP, LSB for Disp_Down ");
- stubManager.WriteHex((response.DispenserPosition),4);
- stubManager.WriteLine("");
- stubManager.Write("MSB for Realy_On, LSB for Over_Press ");
- stubManager.WriteHex((response.InkWorningLevel),4);
- stubManager.WriteLine("");
- stubManager.WriteLine("----");
- stubManager.WriteLine("");
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/process parameters.cs b/Software/Stubs Collection/stubs/Scripts/process parameters.cs
deleted file mode 100644
index d2b36b111..000000000
--- a/Software/Stubs Collection/stubs/Scripts/process parameters.cs
+++ /dev/null
@@ -1,57 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Printing;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-
-UploadProcessParametersRequest uploadProcessParametersRequest = new UploadProcessParametersRequest();
-
-ProcessParameters processParameters = new ProcessParameters();
-processParameters.DyeingSpeed = 0;
-processParameters.MinInkUptake = 0;
-processParameters.MaxInkUptake = 0;
-processParameters.FeederTension = 0;
-processParameters.PullerTension = 0;
-processParameters.WinderTension = 0;
-processParameters.MixerTemp = 0;
-processParameters.HeadZone1Temp = 0;
-processParameters.HeadZone2Temp = 0;
-processParameters.HeadZone3Temp = 0;
-processParameters.HeadZone4Temp = 0;
-processParameters.HeadZone5Temp = 0;
-processParameters.HeadZone6Temp = 0;
-processParameters.DryerAirFlow = 0;
-processParameters.DryerZone1Temp = 100;
-processParameters.DryerZone2Temp = 0;
-processParameters.DryerZone3Temp = 0;
-processParameters.DryerBufferLength = 0;
-processParameters.HeadAirFlow = 0;
-processParameters.TableIndex = 0;
-processParameters.HeadZone7Temp = 0;
-processParameters.HeadZone8Temp = 0;
-processParameters.HeadZone9Temp = 0;
-processParameters.HeadZone10Temp = 0;
-processParameters.HeadZone11Temp = 0;
-processParameters.HeadZone12Temp = 0;
-processParameters.RBlowerFlow = 0;
-processParameters.RBlowerTemp = 0;
-processParameters.LBlowerFlow = 0;
-processParameters.LBlowerTemp = 0;
-processParameters.PressureBuildUp = 0;
-
-uploadProcessParametersRequest.ProcessParameters = processParameters;
-
-
-
- var response = stubManager.Run<UploadProcessParametersResponse>(uploadProcessParametersRequest);
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/progress_test.pproj b/Software/Stubs Collection/stubs/Scripts/progress_test.pproj
deleted file mode 100644
index 29d02caa2..000000000
--- a/Software/Stubs Collection/stubs/Scripts/progress_test.pproj
+++ /dev/null
@@ -1 +0,0 @@
-{"$id":"1","Name":"untitled","Description":null,"Scripts":{"$id":"2","$values":[{"$id":"3","Name":"Program.csx","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Entities;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Program\r\n{\r\n public void OnExecute(IProcedureContext context)\r\n {\r\n context.AddResult(ResultType.Passed, \"My Value Name\", \"Test for this value has passed.\");\r\n\t\t\r\nfor (int i=0;i<10;i++)\r\n{\r\n Thread.Sleep(10000);\r\n context.UpdateProgress(\"11111\",true,i,10);\r\n\t}\t\r\n }\r\n}","IsEntryPoint":true},{"$id":"4","Name":"Service.csx","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Entities;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}","IsEntryPoint":false}]},"Inputs":{"$id":"5","$values":[]},"Variables":{"$id":"6","$values":[]},"ReferenceAssemblies":{"$id":"7","$values":[{"$id":"8","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"9","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"10","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"11","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"12","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"13","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"14","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"15","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"16","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"17","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"18","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"Resources":{"$id":"19","$values":[]},"Dialogs":{"$id":"20","$values":[]},"ID":"b99ea8ff-f5ff-44d5-8b33-4b534a14647b","ApartmentState":"STA"} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/read and store main card data.cs b/Software/Stubs Collection/stubs/Scripts/read and store main card data.cs
deleted file mode 100644
index aec6bef3d..000000000
--- a/Software/Stubs Collection/stubs/Scripts/read and store main card data.cs
+++ /dev/null
@@ -1,83 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.PMR.EmbeddedParameters;
-using Tango.Stubs;
-using System.IO;
-using Tango.PMR.IO;
-using Google.Protobuf;
-
-string[] Main_Card_EEpromAddress = {
-"DATA_SIZE",
-"DANCER_0",
-"DANCER_1",
-"DANCER_2",
-"DRYER_CENTER",
-"DRYER_CYCLES",
-"MIDTANK_1_A",
-"MIDTANK_1_B",
-"MIDTANK_2_A",
-"MIDTANK_2_B",
-"MIDTANK_3_A",
-"MIDTANK_3_B",
-"MIDTANK_4_A",
-"MIDTANK_4_B",
-"MIDTANK_5_A",
-"MIDTANK_5_B",
-"MIDTANK_6_A",
-"MIDTANK_6_B",
-"MIDTANK_7_A",
-"MIDTANK_7_B",
-"MIDTANK_8_A",
-"MIDTANK_8_B",
-"WINDER_CALIBRATION",
-"EMBEDDED_VERSION",
-"EEPROM_ALARM_SUPPORT",
-"EEPROM_ORIFICE1_ZERO_VALUE",
-"EEPROM_ORIFICE3_ZERO_VALUE",
-"EEPROM_WASTE_TANK_ZERO_VALUE",
-"EEPROM_PULLER_TENSION_POSITION",
-"EEPROM_WINDER_TENSION_POSITION",
-"EEPROM_INIT_FAILURE_COUNTER",
-"DANCER_3",
-"DANCER_4",
-"EEPROM_PRESSURE_SENSOR_V0_0",
-"EEPROM_PRESSURE_SENSOR_V0_1",
-"EEPROM_DRIER_LOADING_ARM_ANGLE"};
-
-
-private const string JSON_FILE_PATH = "C:/temp/maineeprom.json";
-private const string CSV_FILE_PATH = "C:/temp/maineeprom.csv";
-public void OnExecute(StubManager stubManager)
-{
- StubReadEmbeddedVersionRequest stubReadEmbeddedVersionRequest = new StubReadEmbeddedVersionRequest();
- var response2 = stubManager.Run<StubReadEmbeddedVersionResponse>(stubReadEmbeddedVersionRequest);
-
- if ((response2.VerMajor>=1)&&(response2.VerMinor>=5)&&(response2.VerPatch>=5)&&(response2.VerBuild>=2))
- {
- MainCardStoredDataRequest mainCardStoredDataRequest = new MainCardStoredDataRequest();
- var response3 = stubManager.Run<MainCardStoredDataResponse>(mainCardStoredDataRequest);
- stubManager.AppendToFile(JSON_FILE_PATH, "MainCardStoredData: "+ response3);
- }
- else
- {
- stubManager.AppendToFile(CSV_FILE_PATH, "Address,Name,Data");
- for (int i = 1; i < 36; i++)
- {
- StubMainCardEEpromReadRequest stubMainCardEEpromReadRequest = new StubMainCardEEpromReadRequest();
- stubMainCardEEpromReadRequest.Address = i;
- stubMainCardEEpromReadRequest.Data = 0;
-
- var response = stubManager.Run<StubMainCardEEpromReadResponse>(stubMainCardEEpromReadRequest);
- stubManager.AppendToFile(CSV_FILE_PATH, response.Address + "," + Main_Card_EEpromAddress[i] +"," + response.Data);
- }
- }
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/read write main eeprom fixed.cs b/Software/Stubs Collection/stubs/Scripts/read write main eeprom fixed.cs
deleted file mode 100644
index 0f3ca238e..000000000
--- a/Software/Stubs Collection/stubs/Scripts/read write main eeprom fixed.cs
+++ /dev/null
@@ -1,45 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-
- int WinderAddress =29;
- int pullerAddress = 28;
- StubMainCardEEpromReadRequest stubMainCardEEpromReadRequest = new StubMainCardEEpromReadRequest();
- StubMainCardEEpromWriteRequest stubMainCardEEpromWriteRequest = new StubMainCardEEpromWriteRequest();
-
- stubMainCardEEpromReadRequest.Address = WinderAddress;
- stubMainCardEEpromReadRequest.Data = 0;
-
- //var response = stubManager.Run<StubMainCardEEpromReadResponse>(stubMainCardEEpromReadRequest);
-
- stubMainCardEEpromWriteRequest.Address = WinderAddress;
- stubMainCardEEpromWriteRequest.Data = 0;
-
- var response1 = stubManager.Run<StubMainCardEEpromWriteResponse>(stubMainCardEEpromWriteRequest);
-
- var response = stubManager.Run<StubMainCardEEpromReadResponse>(stubMainCardEEpromReadRequest);
-
- stubMainCardEEpromReadRequest.Address = pullerAddress;
- stubMainCardEEpromReadRequest.Data = 0;
-
-// var response = stubManager.Run<StubMainCardEEpromReadResponse>(stubMainCardEEpromReadRequest);
-
- stubMainCardEEpromWriteRequest.Address = pullerAddress;
- stubMainCardEEpromWriteRequest.Data = 0;
-
- response1 = stubManager.Run<StubMainCardEEpromWriteResponse>(stubMainCardEEpromWriteRequest);
-
- response = stubManager.Run<StubMainCardEEpromReadResponse>(stubMainCardEEpromReadRequest);
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/read write main eeprom.cs b/Software/Stubs Collection/stubs/Scripts/read write main eeprom.cs
deleted file mode 100644
index d418d5e0e..000000000
--- a/Software/Stubs Collection/stubs/Scripts/read write main eeprom.cs
+++ /dev/null
@@ -1,45 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-
- int WinderAddress =29;
- int pullerAddress = 28;
- StubMainCardEEpromReadRequest stubMainCardEEpromReadRequest = new StubMainCardEEpromReadRequest();
- StubMainCardEEpromWriteRequest stubMainCardEEpromWriteRequest = new StubMainCardEEpromWriteRequest();
-
- stubMainCardEEpromReadRequest.Address = WinderAddress;
- stubMainCardEEpromReadRequest.Data = 0;
-
-// var response = stubManager.Run<StubMainCardEEpromReadResponse>(stubMainCardEEpromReadRequest);
-
- stubMainCardEEpromWriteRequest.Address = WinderAddress;
- stubMainCardEEpromWriteRequest.Data = 0;
-
- var response1 = stubManager.Run<StubMainCardEEpromWriteResponse>(stubMainCardEEpromWriteRequest);
-
- var response = stubManager.Run<StubMainCardEEpromReadResponse>(stubMainCardEEpromReadRequest);
-
- stubMainCardEEpromReadRequest.Address = pullerAddress;
- stubMainCardEEpromReadRequest.Data = 0;
-
-// var response = stubManager.Run<StubMainCardEEpromReadResponse>(stubMainCardEEpromReadRequest);
-
- stubMainCardEEpromWriteRequest.Address = pullerAddress;
- stubMainCardEEpromWriteRequest.Data = 0;
-
- var response1 = stubManager.Run<StubMainCardEEpromWriteResponse>(stubMainCardEEpromWriteRequest);
-
- var response = stubManager.Run<StubMainCardEEpromReadResponse>(stubMainCardEEpromReadRequest);
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/read_cpu_eeprom.cs b/Software/Stubs Collection/stubs/Scripts/read_cpu_eeprom.cs
deleted file mode 100644
index e5960c3f3..000000000
--- a/Software/Stubs Collection/stubs/Scripts/read_cpu_eeprom.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
- var response = stubManager.Run<StubMainCardEEpromReadResponse>("StubMainCardEEpromReadRequest" ,30, 0);
- stubManager.Write("\ninit counter: \t"+ response.Data );
- response = stubManager.Run<StubMainCardEEpromReadResponse>("StubMainCardEEpromReadRequest" ,40, 0);
- stubManager.Write("\nnumber of resets: \t"+ response.Data );
- int j = response.Data;
-
- for (Int32 i=0;i<j;i++)
- {
- response = stubManager.Run<StubMainCardEEpromReadResponse>("StubMainCardEEpromReadRequest" ,41+i, 3);
-
- stubManager.Write("\nAddress \t"+ i + "\tdata = " );
- stubManager.WriteHex(response.Data,4);
-
- }
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/single temperature.cs b/Software/Stubs Collection/stubs/Scripts/single temperature.cs
deleted file mode 100644
index a65e7ccca..000000000
--- a/Software/Stubs Collection/stubs/Scripts/single temperature.cs
+++ /dev/null
@@ -1,23 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-
-
-ProgressRequest progressRequest = new ProgressRequest();
-progressRequest.Amount = 0xCC;
-progressRequest.Delay = 1;
-
- var response = stubManager.Run<ProgressResponse>(progressRequest);
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/temp.cs b/Software/Stubs Collection/stubs/Scripts/temp.cs
deleted file mode 100644
index 23508b71b..000000000
--- a/Software/Stubs Collection/stubs/Scripts/temp.cs
+++ /dev/null
@@ -1,492 +0,0 @@
-using System;
-using System.Text;
-using System.IO;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-string path="";
- Form form1 = new Form();
- Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x14000000); //set kval ran to 0x14,0.65A
-
-// Set the caption bar text of the form.
- form1.TopMost = true;
- form1.Text = "RTFU Test";
- form1.FormBorderStyle = FormBorderStyle.FixedDialog;
- form1.MaximizeBox = false;
- form1.MinimizeBox = false;
- form1.StartPosition = FormStartPosition.CenterScreen;
- form1.AutoSize = true;
- form1.AutoSizeMode = AutoSizeMode.GrowAndShrink;
-// Create buttons to Run.
- Button button1 = new Button ()
- {
- Width = 100,
- Height = 100,
- };
- button1.Text = "Run";
- button1.Location = new Point (40, 100);
- form1.Controls.Add(button1);
-//-----RTFU Serial Number -----------
-
- Label Label1 = new Label ()
- {
- Width = 150,
- Height = 20,
- Text =" RTFU S/N"
- };
- Label1.Location = new Point (30, 10);
- form1.Controls.Add(Label1);
- TextBox TextBox1 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text =""
- };
- TextBox1.Location = new Point (40, 40);
- form1.Controls.Add(TextBox1);
- //----------LOCATION----------
-
- Label Label3 = new Label ()
- {
- Width = 150,
- Height = 20,
- Text ="LOCATION"
- };
-Label3.Location = new Point (350, 10);
- form1.Controls.Add(Label3);
-
-
-
-TextBox TextBox3 = new TextBox ()
- {
- Width = 100,
- Height = 10,
- Text =""
- };
-TextBox3.Location = new Point (360, 40);
- form1.Controls.Add(TextBox3);
-
-
-
-
- Label Label5 = new Label ()
- {
- Width = 120,
- Height =100,
- Text = ""
- };
- Label5.Location = new Point (300, 100);
- Label5.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
-
- Label5.Text="";
- Label5.Font = new Font("Arial", 24,FontStyle.Bold);
- form1.Controls.Add(Label5);
-
-
-
-
-//--------------------------------------------------------------------------------
-
- stubManager.Write("Counter is 2 \n");
-
- button1.Click += (_,__) =>
-
- {
-
- Label5.Text="Pros";
-
- if (!Directory.Exists(path1))
- {
- path=path2;
- if (!Directory.Exists(path2))
- Directory.CreateDirectory(path2);
- }
- else
- path=path1;
-
- File_Name1=path + TextBox1.Text +"_RTFU_" + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".log" ;
-
-
- stubManager.Write(File_Name1 +"\n");
- stubManager.WriteToFile(File_Name1,DateTime.Now +" " );
- stubManager.Write(DateTime.Now +"\n" );
-
- stubManager.AppendToFile(File_Name1,"RTFU Test Report" );
- stubManager.Write("RTFU Test Report\n" );
-
- stubManager.AppendToFile(File_Name1,"RTFU S/N: \t" + TextBox1.Text );
- stubManager.Write("RTFU S/N:" + TextBox1.Text +"\n" );
-
-
- stubManager.AppendToFile(File_Name1,"Location:\t" + TextBox3.Text );
- stubManager.Write("Location:" + TextBox3.Text +"\n" );
-
-
-//------------------------------- start test -----------
- Test_RLOADING_RTFU();
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading high z
- Thread.Sleep(100);
- Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x14000000); //set kval ran to 0x14,0.65A
-
- Test_RDRIVING_RTFU();
- Test_DANCER_RTFU();
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RDANCER_Motor, 3); //hold Rloading high z
-
- Status=write_to_file();
- stubManager.Write(Status +"\n");
-
- Label5.Text=Status;
- TextBox1.Text="";
- };
-
- form1.ShowDialog();
-
- return ;
- }
- //------------------------------------
-int Test_RLOADING_RTFU()
-{
- int temp=1;
- int counter;
-
- Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x2c000000); //set kval ran to 0x2c- 1.3A
- Thread.Sleep(100);
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RLOADING_Motor, true,200); //move Rloading down
- Thread.Sleep(3000);
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading high z
- Thread.Sleep(1000);
-//------------------------------------------ check F1_LS_RLOADMOTOR_up------------------------------------------------
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //read LS
- if ((response.Value & F1_LS_RLOADMOTOR_UP) !=F1_LS_RLOADMOTOR_UP ) //if LS_RLOADMOTOR_UP is up then error
- {
- DialogResult result = MessageBox.Show("Did RLOADIN MOTOR Move?", "Warning",MessageBoxButtons.YesNo);
- if(result == DialogResult.Yes)
- {
- Units_status[0,1]="Fail";
- stubManager.Write("LS_RLOADMOTOR_UP\tFail\n");
- return 0;
- }
- else
- {
- Units_status[2,1]="Fail";
- stubManager.Write("RLOADMOTOR\tFail\n");
- return 0;
- }
- }
-
-//----------------------------------------- mov RLOADING up -------------------------------------------------
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RLOADING_Motor,false,200); //move Rloading up
- counter =0;
- while ( counter < 150)
- {
- counter = counter + 1;
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if LS_RLOADMOTOR_UP is up then move down
- if ((response.Value & F1_LS_RLOADMOTOR_UP) != F1_LS_RLOADMOTOR_UP )
- counter=250;
-
- Thread.Sleep(100);
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading high z
-
- if (counter == 150)
- {
- Units_status[0,1]="Fail";
- stubManager.Write("LS_RLOADMOTOR_UP\tFail\n");
- return 0;
- }
- DialogResult result1 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo);
- if(result1 == DialogResult.No)
- {
- Units_status[0,1]="Fail";
- stubManager.Write("LS_RLOADMOTOR_UP Not calibrate\n");
- return 0;
- }
- Units_status[0,1]="Pass";
- Units_status[2,1]="Pass";
-
-//------------------------------------------ check F1_LS_RLOADMOTOR_DN------------------------------------------------
-
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //read LS
-
- if ((response.Value & F1_LS_RLOADMOTOR_DN) !=F1_LS_RLOADMOTOR_DN ) //if LS_RLOADMOTOR_DN is up then error
- {
- Units_status[1,1]="Fail";
- stubManager.Write("LS_RLOADMOTOR_DN\tFail\n");
- return 0;
- }
-//------------------------------------------ mov RLOADING dn ------------------------------------------------
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RLOADING_Motor, true,200); //move Rloading down
- counter =0;
- while ( counter < 150)
- {
- counter = counter + 1;
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if LS_RLOADMOTOR_UP is up then move down
- if ((response.Value & F1_LS_RLOADMOTOR_DN) != F1_LS_RLOADMOTOR_DN )
- counter=250;
-
- Thread.Sleep(100);
- }
-
- if (counter == 150)
- {
- Units_status[1,1]="Fail";
- stubManager.Write("LS_RLOADMOTOR_DN\tFail\n");
- return 0;
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading high z
-
- DialogResult result2 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo);
- if(result2 == DialogResult.No)
- {
- Units_status[1,1]="Fail";
- stubManager.Write("LS_RLOADMOTOR_DN Not calibrate\n");
- return 0;
- }
- Units_status[1,1]="Pass";
- stubManager.Write("RLOADMOTOR\tPass\n");
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RLOADING_Motor, true,200); //move Rloading down
- Thread.Sleep(2000);
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading high z
-
- return 1 ;
-
-}
-
-//----------------------------------
-
-Int32 ReadEncoder()
-{
- Int32 temp;
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F1_RDANCER_ROTENC_DATA_p_TX, 0x0000); //triggers a TX transmission
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_RDANCER_ROTENC_DATA_p_RX_lsb);
- var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_RDANCER_ROTENC_DATA_p_RX_msb);
-
- temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff));
-
-
- return temp;
-}
-//--------------------------------------------------------------------------------
-int Test_DANCER_RTFU()
-{
- int counter;
- Int32 temp;
- Int32 temp1;
-
-//------------------------------------------ check F1_LS_RDANCER_DOWN ------------------------------------------------
-
- MessageBox.Show("Make sure RDANCER Doun");
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //read LS
- if ((response.Value & F1_LS_RDANCER_DOWN) !=F1_LS_RDANCER_DOWN ) //if F1_LS_RDANCER_DOWN is up then error
- {
- Units_status[4,1]="Fail";
- stubManager.Write("LS_RDANCER_DOWN\tFail\n");
- return 0;
- }
-//----------------------------------------- mov RDANCER_Motor up and check F1_LS_RDANCER_DOWN -------------------------------------------------
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RDANCER_Motor,true,10); //move Rloading up
- counter =0;
- while ( counter < 150)
- {
- counter = counter + 1;
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if LS_RLOADMOTOR_UP is up then move down
- if ((response.Value & F1_LS_RDANCER_DOWN) != F1_LS_RDANCER_DOWN )
- counter=250;
-
- Thread.Sleep(100);
- }
- if (counter == 150)
- {
- Units_status[4,1]="Fail";
- stubManager.Write("LS_RDANCER_DOWN\tFail\n");
- return 0;
- }
- Units_status[4,1]="Pass";
- stubManager.Write("LS_RDANCER_DOWN\tPass\n");
-
-//----------------------------------------- check F1_LS_RDANCER_UP -------------------------------------------------
-
- if ((response.Value & F1_LS_RDANCER_UP) !=F1_LS_RDANCER_UP ) //if F1_LS_RDANCER_UP is up then error
- {
- Units_status[5,1]="Fail";
- stubManager.Write("LS_RDANCER_UP\tFail\n");
- return 0;
- }
- counter =0;
- while ( counter < 150)
- {
- counter = counter + 1;
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if F1_LS_RDANCER_UP is up then move down
- if ((response.Value & F1_LS_RDANCER_UP) != F1_LS_RDANCER_UP )
- counter=250;
-
- Thread.Sleep(100);
- }
- if (counter == 150)
- {
- Units_status[5,1]="Fail";
- stubManager.Write("LS_RDANCER_UP\tFail\n");
- return 0;
- }
- Units_status[5,1]="Pass";
- stubManager.Write("LS_RDANCER_UP\tPass\n");
-
-//----------------------------------------- check F1_LS_RLOADRAM_DOWN -------------------------------------------------
-
- if ((response.Value & F1_LS_RLOADRAM_DOWN) !=F1_LS_RLOADRAM_DOWN ) //if F1_LS_RLOADRAM_DOWN is up then error
- {
- Units_status[6,1]="Fail";
- stubManager.Write("LS_RLOADRAM_DOWN\tFail\n");
- return 0;
- }
- counter =0;
- while ( counter < 150)
- {
- counter = counter + 1;
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if F1_LS_RLOADRAM_DOWN is up then move down
- if ((response.Value & F1_LS_RLOADRAM_DOWN) != F1_LS_RLOADRAM_DOWN )
- counter=250;
-
- Thread.Sleep(100);
- }
- if (counter == 150)
- {
- Units_status[6,1]="Fail";
- stubManager.Write("LS_RLOADRAM_DOWN\tFail\n");
- return 0;
- }
- Units_status[6,1]="Pass";
- stubManager.Write("LS_RLOADRAM_DOWN\tPass\n");
-
-//----------------------------------------- mov RDANCER_Motor down and check rdancer encoder -------------------------------------------------
- temp= ReadEncoder();
-
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RDANCER_Motor,false,10); //move Rloading down
- counter =0;
- while ( counter < 150)
- {
- counter = counter + 1;
- response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if LS_RLOADMOTOR_UP is up then move down
- if ((response.Value & F1_LS_RDANCER_DOWN) != F1_LS_RDANCER_DOWN )
- counter=250;
-
- Thread.Sleep(100);
- }
- if (counter == 150)
- {
- Units_status[4,1]="Fail";
- stubManager.Write("LS_RDANCER_DOWN\tFail\n");
- return 0;
- }
- Units_status[7,1]="Pass";
- stubManager.Write("RDANCER_Motor\tPass\n");
-
- temp1= ReadEncoder();
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RDANCER_Motor, 3); //hold Rloading high z
-
- stubManager.Write("temp="+temp + "\temp1="+temp1 +"\n");
-
- DialogResult result = MessageBox.Show("SSI Dancer led is Green(not blinking)?", "Warning",MessageBoxButtons.YesNo);
- if(result == DialogResult.No)
- {
- Units_status[8,1]="Fail";
- stubManager.Write("RDANCER_SSI\tFail\n");
- return 0;
- }
-
- if (temp>temp1)
- temp1=temp1+0x4000;
-
- temp1=temp1-temp;
- if ((temp1> 15000) || (temp1 <1000))
- {
- Units_status[8,1]="Fail";
- stubManager.Write("RDANCER_SSI\tFail\n");
- return 0;
- }
- Units_status[8,1]="Pass";
- stubManager.Write("RDANCER_SSI\tPass\n");
-
- return 1;
-}
-
-
-//-------------------------------------------------------------
-int Test_RDRIVING_RTFU()
-{
- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RDRIVING_Motor, true,200); //move Rdriving clockwise
- stubManager.Write("RDRIVING_Motor Motor rotate \n ");
-
- DialogResult result = MessageBox.Show("Are RDRIVING Motor rotate?", "Warning",MessageBoxButtons.YesNo);
- if(result == DialogResult.No)
- {
- Units_status[3,1]="Fail";
- stubManager.Write("RDRIVING Motor not rotate\n");
- }
- else
- {
- Units_status[3,1]="Pass";
- stubManager.Write("RDRIVING Motor rotate\n");
- }
- stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RDRIVING_Motor,3); //stop motor
-
- return 0;
-}
-
-
-
-//--------------------------------------------------------------------------------
-int Motor_SetParam(Int32 HighAdr, Int32 LowAdr, Int32 ParaAddr, uint ParaData1)
-{
-
- Int32 Temp = 0;
- Temp = (ParaAddr << 8 ) + ( (Int32) ParaData1 >> 24);
-
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,HighAdr, (Temp & 0xffff));
- Temp = ((Int32)ParaData1 >> 8) & 0xffff;
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,LowAdr, (Temp));
-
- return 1;
-}
- //------------------------------------
-string write_to_file()
-{
- stubManager.Write("write_to_file\n");
-
-string Stemp="Pass";
- for (int i=0;i<UNIT_UNDER_TEST;i++)
- {
- stubManager.AppendToFile(File_Name1,Units_status[i,0]+"\t" + Units_status[i,1] );
- stubManager.Write(Units_status[i,0]+"\t" + Units_status[i,1]+"\n" );
-
- if ((Units_status[i,1]=="Fail")||(Units_status[i,1]=="Not Test"))
- Stemp="Fail";
- }
- if (Stemp=="Fail")
- {
- stubManager.AppendToFile(File_Name1,"-------------RTFU Fail ------------ ");
- stubManager.Write("-------------RTFU Fail ------------ ");
- }
- else
- {
- stubManager.AppendToFile(File_Name1,"-------------RTFU Pass ------------ )");
- stubManager.Write("-------------RTFU Pass ------------ ");
- }
-
- return Stemp;
-
-}
-
diff --git a/Software/Stubs Collection/stubs/Scripts/test halt.cs b/Software/Stubs Collection/stubs/Scripts/test halt.cs
deleted file mode 100644
index 289eb612a..000000000
--- a/Software/Stubs Collection/stubs/Scripts/test halt.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-
-//CF - initialize FFS
-//DF - reset
-ProgressRequest progressRequest = new ProgressRequest();
-progressRequest.Amount = 0xAD9;
-progressRequest.Delay = 0xAD9;
-
- var response = stubManager.Run<ProgressResponse>(progressRequest);
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/test.cs b/Software/Stubs Collection/stubs/Scripts/test.cs
deleted file mode 100644
index a0aebf743..000000000
--- a/Software/Stubs Collection/stubs/Scripts/test.cs
+++ /dev/null
@@ -1,76 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-//----------------------
-
-//----------------------
-const Int32 I2C_ID = 3; //MCU_I2C2
-const Int32 TCA9548A_address = 0xe2; //or 0xE0 or 0xE4
-const Int32 I2C_Slave_Add = 0xc0; // /MPC9600 address
-//const Int32 I2C_Slave_Add = 0x46; //must be 0x40, 0x44 or 0x46
-//----------------------
-
-
-int disable_all_channel1()
- {
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = 0xe0;
-
-// UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x10);//enable all 8 i2c channel
-
- stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
- Thread.Sleep(10);
-
- return 1;
- }
-int disable_all_channel2()
- {
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = 0xe2;
-
-// UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x00);//enable all 8 i2c channel
-
- stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
- Thread.Sleep(10);
-
- return 1;
- }
-
-int disable_all_channel3()
- {
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = 0xe4;
-
-// UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(0x00);//enable all 8 i2c channel
-
- stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
- Thread.Sleep(10);
-
- return 1;
- }
-
-
-
-public void OnExecute(StubManager stubManager)
-{
- disable_all_channel1();
- disable_all_channel2();
- disable_all_channel3();
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/waste level.cs b/Software/Stubs Collection/stubs/Scripts/waste level.cs
deleted file mode 100644
index a72f2a512..000000000
--- a/Software/Stubs Collection/stubs/Scripts/waste level.cs
+++ /dev/null
@@ -1,71 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-//private const string FILE_PATH = "D:\\Waste.txt";
-
-int i = 0;
-bool valve_openclose = false;
-//string temp;
-
-public void OnExecute(StubManager stubManager)
-{
-
- string File_Name2 = "D:\\Waste.txt" ;
-
- Thread.Sleep(1000);
-
- stubManager.WriteToFile(File_Name2,DateTime.Now +" " );
-
- //Open Valve
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EB, 0x0201);
-
- Thread.Sleep(500);
-
- //Close Valve
- var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EB, 0x0200);
-
- Thread.Sleep(2000);
-
- stubManager.AppendToFile(File_Name2," " );
- stubManager.AppendToFile(File_Name2," waste [mili-volts] " );
- stubManager.AppendToFile(File_Name2," " );
-
- for(i=0;i<5;i++)
- {
-
- if(valve_openclose == true)
- {
- //Open Valve
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EB, 0x0201);
-
- Thread.Sleep(500);
-
- //Close Valve
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EB, 0x0200);
-
- Thread.Sleep(2000);
- }
-
- //get waste level in mV
- stubManager.Write("waste [mili volts]: ");
-
- var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EC, 0x01);
-
- stubManager.WriteLine(response.Progress);
-
- stubManager.AppendToFile(File_Name2,"" + (i+1) + ". " + response.Progress/*.ToString("F4")*/);
-
- Thread.Sleep(2000);
- }
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/waste_level2.cs b/Software/Stubs Collection/stubs/Scripts/waste_level2.cs
deleted file mode 100644
index b70eb5023..000000000
--- a/Software/Stubs Collection/stubs/Scripts/waste_level2.cs
+++ /dev/null
@@ -1,85 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-//mark the line in the embedded software: waste_seq_step1();// include 1Sec delay <- to open !!!!
-
-int i = 0,j=0,k=0;
-bool valve_openclose = true;
-double[] temp = {0,0,0,0,0,0,0,0};
-double sum = 0,avg = 0;
-
-public void OnExecute(StubManager stubManager)
-{
-
- string File_Name2 = "D:\\Waste.txt" ;
-
- Thread.Sleep(1000);
-
- stubManager.WriteToFile(File_Name2,DateTime.Now +" " );
-
- //Open Valve
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EB, 0x0201);
-
- Thread.Sleep(500);
-
- //Close Valve
- var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EB, 0x0200);
-
- Thread.Sleep(2000);
-
- stubManager.AppendToFile(File_Name2," " );
- stubManager.AppendToFile(File_Name2," waste [mili-volts] " );
- stubManager.AppendToFile(File_Name2," " );
-
- for(i=0;i<33;i++)
- {
- for(j=0;j<8;j++)
- {
- if(valve_openclose == true)
- {
- //Open Valve
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EB, 0x0201);
-
- Thread.Sleep(500);
-
- //Close Valve
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EB, 0x0200);
-
- Thread.Sleep(2000);
- }
-
- //get waste level in mV
- stubManager.Write("waste [mili volts]: ");
-
- var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EC, 0x01);
-
- temp[j] = response.Progress;
-
- stubManager.WriteLine(response.Progress);
-
- //stubManager.AppendToFile(File_Name2,"" + (i+1) + ". " + response.Progress/*.ToString("F4")*/);
-
- Thread.Sleep(1000);
- }
- sum = 0;
- for(k=0;k<8;k++)
- sum = sum + temp[k];
- avg = sum/8;
- stubManager.AppendToFile(File_Name2,"" + (i+1) + ". " + avg);
-
- //Thread.Sleep(2000);
-
-
- }
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/wd_enable.cs b/Software/Stubs Collection/stubs/Scripts/wd_enable.cs
deleted file mode 100644
index 3919b7256..000000000
--- a/Software/Stubs Collection/stubs/Scripts/wd_enable.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
- for (int i = 0; i < 100; i++)
- {
-
-//var response = stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000160, 0x4001); //wd fpga1
-var response = stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000540, 0x4001); //wd fpga2
-//var response = stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000940, 0x4001); //wd fpga3
- Thread.Sleep(100);
-
-
- }
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/whs eeprom temporary 2.cs b/Software/Stubs Collection/stubs/Scripts/whs eeprom temporary 2.cs
deleted file mode 100644
index b5c7af2b1..000000000
--- a/Software/Stubs Collection/stubs/Scripts/whs eeprom temporary 2.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-
-
-StubWhsEEpromRequest stubWhsEEpromRequest = new StubWhsEEpromRequest();
-stubWhsEEpromRequest.BurnRequest = false; // false - read, true - write
-
-StubWhsEEpromData stubWhsEEpromData = new StubWhsEEpromData();
-stubWhsEEpromData.Header = 1;
-stubWhsEEpromData.TableLength = 2;
-stubWhsEEpromData.Tableversion = 3;
-stubWhsEEpromData.Orifice1Flow = 1067 * 8.7433; //mv * 8.7433 convert from mv to ml (1067 * 8.7433 = 9,329.1011)
-stubWhsEEpromData.CheckSum = 5;
-
-stubWhsEEpromRequest.WhsEEprom = stubWhsEEpromData;
-
-var response = stubManager.Run<StubWhsEEpromResponse>(stubWhsEEpromRequest);
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/whs eeprom temporary.cs b/Software/Stubs Collection/stubs/Scripts/whs eeprom temporary.cs
deleted file mode 100644
index 65dcd499e..000000000
--- a/Software/Stubs Collection/stubs/Scripts/whs eeprom temporary.cs
+++ /dev/null
@@ -1,42 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-
-
-StubWhsEEpromRequest stubWhsEEpromRequest = new StubWhsEEpromRequest();
-stubWhsEEpromRequest.BurnRequest = true;
-
-StubWhsEEpromData stubWhsEEpromData = new StubWhsEEpromData();
-stubWhsEEpromData.Header = 0;
-stubWhsEEpromData.TableLength = 0;
-stubWhsEEpromData.Tableversion = 0;
-stubWhsEEpromData.Orifice1Flow = 10.5;
-stubWhsEEpromData.CheckSum = 0;
-
-//stubWhsEEpromRequest.WhsEEprom = whsEEprom;
-
- for (int i = 0; i < 10; i++)
- {
- var response = stubManager.Run<CalculateResponse>("calculate", 1, i);
-
- if (response.Sum == 10)
- {
- stubManager.WriteLine("OK!");
- }
- else
- {
- stubManager.WriteLine(response.Sum);
- }
- }
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/whs fans stop.cs b/Software/Stubs Collection/stubs/Scripts/whs fans stop.cs
deleted file mode 100644
index f9e3cbd22..000000000
--- a/Software/Stubs Collection/stubs/Scripts/whs fans stop.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-
-
-ProgressRequest progressRequest = new ProgressRequest();
-progressRequest.Amount = 0xfAc0;
-progressRequest.Delay = 0;
-
-int i;
-
-for (i = 0; i<6;i++)
- {
- progressRequest.Amount = 0xfAc0+i;
- var response = stubManager.Run<ProgressResponse>(progressRequest);
- }
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Set CleaningSequence.cs b/Software/Stubs Collection/stubs/Set CleaningSequence.cs
deleted file mode 100644
index a73134e7b..000000000
--- a/Software/Stubs Collection/stubs/Set CleaningSequence.cs
+++ /dev/null
@@ -1,23 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-
-
-ProgressRequest progressRequest = new ProgressRequest();
-progressRequest.Amount = 0xAD7;
-progressRequest.Delay = 0; //disable
-
-var response = stubManager.Run<ProgressResponse>(progressRequest);
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Set loading arm center.cs b/Software/Stubs Collection/stubs/Set loading arm center.cs
deleted file mode 100644
index bb502309e..000000000
--- a/Software/Stubs Collection/stubs/Set loading arm center.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-
-
-ProgressRequest progressRequest = new ProgressRequest();
-progressRequest.Amount = 0xB1;
-
-var response = stubManager.Run<ProgressResponse>(progressRequest);
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/SetWindingRotations.cs b/Software/Stubs Collection/stubs/SetWindingRotations.cs
deleted file mode 100644
index e89bc04e5..000000000
--- a/Software/Stubs Collection/stubs/SetWindingRotations.cs
+++ /dev/null
@@ -1,27 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-
-// use this stub to set the number of thread rotation on each screw passage (bigger the number - slower the screw)
-ProgressRequest progressRequest = new ProgressRequest();
-//DO NOT CHANGE THIS LINE!!!!!!!!!!!!!!
-progressRequest.Amount = 0xF1; //DO NOT CHANGE THIS LINE!!!!!!!!!!!!!!
-//DO NOT CHANGE THIS LINE!!!!!!!!!!!!!!
-
-//set the number of rotations *1000
-progressRequest.Delay = 6123;
-
- var response = stubManager.Run<ProgressResponse>(progressRequest);
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/SetupDebugDisributors.cs b/Software/Stubs Collection/stubs/SetupDebugDisributors.cs
deleted file mode 100644
index 0a31c7878..000000000
--- a/Software/Stubs Collection/stubs/SetupDebugDisributors.cs
+++ /dev/null
@@ -1,79 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Debugging;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-
-SetupDebugDisributorsRequest setupDebugDisributorsRequest = new SetupDebugDisributorsRequest();
-
-Boolean ControlFilter = new Boolean();
- ControlFilter = true;
-setupDebugDisributorsRequest.DistributorActive.Add(ControlFilter);
-Boolean HeatersFilter = new Boolean();
- HeatersFilter = true;
-setupDebugDisributorsRequest.DistributorActive.Add(HeatersFilter);
-Boolean JobFilter = new Boolean();
- JobFilter = true;
-setupDebugDisributorsRequest.DistributorActive.Add(JobFilter);
-Boolean WasteFilter = new Boolean();
- WasteFilter = true;
-setupDebugDisributorsRequest.DistributorActive.Add(WasteFilter);
-Boolean AlarmFilter = new Boolean();
- AlarmFilter = true;
-setupDebugDisributorsRequest.DistributorActive.Add(AlarmFilter);
-Boolean DiagnosticsFilter = new Boolean();
- DiagnosticsFilter = true;
-setupDebugDisributorsRequest.DistributorActive.Add(DiagnosticsFilter);
-Boolean IDSFilter = new Boolean();
- IDSFilter = true;
-setupDebugDisributorsRequest.DistributorActive.Add(IDSFilter);
-Boolean ThreadFilter = new Boolean();
- ThreadFilter = true;
-setupDebugDisributorsRequest.DistributorActive.Add(ThreadFilter);
-Boolean GeneralFilter = new Boolean();
- GeneralFilter = true;
-setupDebugDisributorsRequest.DistributorActive.Add(GeneralFilter);
-Boolean CommFilter = new Boolean();
- CommFilter = true;
-setupDebugDisributorsRequest.DistributorActive.Add(CommFilter);
-Boolean FPGAFilter = new Boolean();
- FPGAFilter = true;
-setupDebugDisributorsRequest.DistributorActive.Add(FPGAFilter);
-Boolean LoadFilter = new Boolean();
- LoadFilter = true;
-setupDebugDisributorsRequest.DistributorActive.Add(LoadFilter);
-Boolean InitFilter = new Boolean();
- InitFilter = true;
-setupDebugDisributorsRequest.DistributorActive.Add(InitFilter);
-Boolean MaintFilter = new Boolean();
- MaintFilter = true;
-setupDebugDisributorsRequest.DistributorActive.Add(MaintFilter);
-/*
- DEBUG_DISTRIBUTOR__ControlFilter = 0,
- DEBUG_DISTRIBUTOR__HeatersFilter = 1,
- DEBUG_DISTRIBUTOR__JobFilter = 2,
- DEBUG_DISTRIBUTOR__WasteFilter = 3,
- DEBUG_DISTRIBUTOR__AlarmFilter = 4,
- DEBUG_DISTRIBUTOR__DiagnosticsFilter = 5,
- DEBUG_DISTRIBUTOR__IDSFilter = 6,
- DEBUG_DISTRIBUTOR__ThreadFilter = 7,
- DEBUG_DISTRIBUTOR__GeneralFilter = 8,
- DEBUG_DISTRIBUTOR__CommFilter = 9,
- DEBUG_DISTRIBUTOR__FPGAFilter = 10,
- DEBUG_DISTRIBUTOR__LoadFilter = 11,
- DEBUG_DISTRIBUTOR__InitFilter = 12,
- DEBUG_DISTRIBUTOR__MaintFilter = 13
-
- */
- SetupDebugDisributorsResponse response2 = stubManager.Run<SetupDebugDisributorsResponse>(setupDebugDisributorsRequest);
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Test_Bred_bord_Head_pressure_sensor_ARC.cs b/Software/Stubs Collection/stubs/Test_Bred_bord_Head_pressure_sensor_ARC.cs
deleted file mode 100644
index 894d806e3..000000000
--- a/Software/Stubs Collection/stubs/Test_Bred_bord_Head_pressure_sensor_ARC.cs
+++ /dev/null
@@ -1,83 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-const UInt32 HEAD_PT100_ZONE_5_0X84_0 = 14;
-const UInt32 HEAD_PT100_ZONE_7_0X86_0 = 15;
-const UInt32 HEAD_PT100_ZONE_8_0X86_1 = 23;
-
-double pressure = 0.0;
-
-
-public void OnExecute(StubManager stubManager)
-{
- //suplly 24V to the bred board
-
- var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xb10, 0x01);
- Thread.Sleep(5); // milliSec
-
- //loop
- for(int i=0;i<3;i++)
- {
-
- stubManager.WriteLine(i);
-/*
- // print config reghisters 0- 3 of 0x84
-
- var response0 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xC04f, 0x8400 + 0x00);
- var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xC04f, 0x8400 + 0x01);
- var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xC04f, 0x8400 + 0x02);
- var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xC04f, 0x8400 + 0x03);
-
- stubManager.WriteLineHex(response0.Progress,2);
- stubManager.WriteLineHex(response1.Progress,2);
- stubManager.WriteLineHex(response2.Progress,2);
- stubManager.WriteLineHex(response3.Progress,2);
-
- stubManager.WriteLine("");
-
- // print config reghisters 0- 3 of 0x86
-
- var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xC04f, 0x8600 + 0x00);
- var response5 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xC04f, 0x8600 + 0x01);
- var response6 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xC04f, 0x8600 + 0x02);
- var response7 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xC04f, 0x8600 + 0x03);
-
- stubManager.WriteLineHex(response4.Progress,2);
- stubManager.WriteLineHex(response5.Progress,2);
- stubManager.WriteLineHex(response6.Progress,2);
- stubManager.WriteLineHex(response7.Progress,2);
-*/
- stubManager.WriteLine("");
-
- //Print pressure in bits
- stubManager.WriteLine("Print pressure in bits:");
- var response8 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xC04f, HEAD_PT100_ZONE_5_0X84_0);
- var response9 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xC04f, HEAD_PT100_ZONE_7_0X86_0);
-
- stubManager.WriteLineHex(response8.Progress,2);
- stubManager.WriteLineHex(response9.Progress,2);
-
- stubManager.WriteLine("");
- stubManager.WriteLine("calculate pressure [V]:");
- // calculate pressure
- pressure = response8.Progress * 3.3;
- pressure = pressure / 8388608.0;
- stubManager.WriteLine(pressure);
-
- pressure = response9.Progress * 3.3;
- pressure = pressure / 8388608.0;
- stubManager.WriteLine(pressure);
-
- // delay 10mSec
- Thread.Sleep(1000); //150 milliSec
- }
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/ThreadLoading.cs b/Software/Stubs Collection/stubs/ThreadLoading.cs
new file mode 100644
index 000000000..375237184
--- /dev/null
+++ b/Software/Stubs Collection/stubs/ThreadLoading.cs
@@ -0,0 +1,119 @@
+using System;
+using System.Text;
+using System.Linq;
+using System.Drawing;
+using System.Diagnostics;
+using System.Windows.Forms;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+using Tango.PMR.Hardware;
+using Tango.PMR.Printing;
+using Tango.PMR.Stubs;
+using Tango.Stubs.UI;
+
+include "D:\stubs\addedfiles\ACHeatersDefinition.cs"
+include "D:\stubs\addedfiles\DCHeatersDefinition.cs"
+include "D:\stubs\addedfiles\DeskSystemThreadMotorsDefinition.cs"
+//include "D:\stubs\addedfiles\ThreadMotorsDefinition2.cs"
+
+public void OnExecute(StubManager stubManager)
+{
+ Thread.Sleep(10);
+
+
+UploadHardwareConfigurationRequest uploadHardwareConfigurationRequest = new UploadHardwareConfigurationRequest();
+
+HardwareConfiguration hardwareConfiguration = new HardwareConfiguration();
+
+hardwareConfiguration.Motors.Add(FeederMotor);
+hardwareConfiguration.Motors.Add(WinderMotor);
+hardwareConfiguration.Motors.Add(DryerMotor);
+hardwareConfiguration.Motors.Add(PoolerMotor);
+hardwareConfiguration.Motors.Add(ScrewMotor);
+hardwareConfiguration.Motors.Add(DryerLoadarm);
+
+
+//hardwareConfiguration.Dispensers.Add(hardwareDispenser);
+
+hardwareConfiguration.PidControls.Add(FeederPidControl);
+hardwareConfiguration.PidControls.Add(PoolerPidControl);
+hardwareConfiguration.PidControls.Add(WinderPidControl);
+
+hardwareConfiguration.Dancers.Add(FeederDancer);
+hardwareConfiguration.Dancers.Add(PoolerDancer);
+hardwareConfiguration.Dancers.Add(WinderDancer);
+
+hardwareConfiguration.Winders.Add(Winder);
+
+
+
+stubManager.WriteLine("data.data length = " + hardwareConfiguration.CalculateSize());
+
+
+uploadHardwareConfigurationRequest.HardwareConfiguration = hardwareConfiguration;
+var response = stubManager.Run<UploadHardwareConfigurationResponse>(uploadHardwareConfigurationRequest);
+ /*Thread.Sleep(5000);*/
+
+JobRequest jobRequest = new JobRequest();
+
+JobTicket jobTicket = new JobTicket();
+jobTicket.Name = "Stubs Job";
+jobTicket.EnableInterSegment = false;
+jobTicket.InterSegmentLength = 50;
+jobTicket.Length = 1000;
+
+ProcessParameters processParameters = new ProcessParameters();
+processParameters.DyeingSpeed = 20;
+
+jobTicket.ProcessParameters = processParameters;
+jobTicket.WindingMethod = Tango.PMR.Printing.JobWindingMethod.Embroidery;
+
+JobSpool jobSpool = new JobSpool();
+jobSpool.JobSpoolType = Tango.PMR.Printing.JobSpoolType.StandardSpool;
+jobSpool.Length = 800;
+jobSpool.Weight = 0;
+jobSpool.Diameter = 3.0;
+jobSpool.StartOffsetPulses = 300;
+jobSpool.BackingRate = 10;
+jobSpool.SegmentOffsetPulses = 600;
+jobSpool.BottomBackingRate = 70;
+jobSpool.RotationsPerPassage = 7;
+
+jobTicket.Spool = jobSpool;
+
+JobSegment jobSegment = new JobSegment();
+jobSegment.Name = "Segment1";
+jobSegment.Length = 400.0;
+
+JobBrushStop jobBrushStop = new JobBrushStop();
+jobBrushStop.Index = 0;
+jobBrushStop.OffsetPercent = 0;
+jobBrushStop.OffsetMeters = 0;
+
+JobDispenser jobDispenser = new JobDispenser();
+jobDispenser.Index = 6;
+jobDispenser.Volume = 10;
+jobDispenser.DispenserStepDivision = Tango.PMR.Printing.DispenserStepDivision.Auto;
+jobDispenser.NanolitterPerSecond = 0;
+jobDispenser.NanoliterPerCentimeter = 10;
+jobDispenser.PulsePerSecond = 500;
+jobDispenser.DispenserLiquidType = Tango.PMR.Printing.DispenserLiquidType.Cyan;
+jobDispenser.LiquidMaxNanoliterPerCentimeter = 40;
+jobDispenser.NanoliterPerPulse = 0;
+jobBrushStop.Dispensers.Add(jobDispenser);
+jobSegment.BrushStops.Add(jobBrushStop);
+jobTicket.Segments.Add(jobSegment);
+
+jobRequest.JobTicket = jobTicket;
+
+
+int i=0;
+stubManager.RunContinuous<JobResponse>(jobRequest,(response1) =>
+ {
+ stubManager.WriteLine (String.Format("Data, {0}, {1} meters, {2}",++i,response1.Status.Progress*jobSegment.Length,response1.Status.Message));
+
+ });
+
+
+} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/WD test.cs b/Software/Stubs Collection/stubs/WD test.cs
deleted file mode 100644
index f740ad54a..000000000
--- a/Software/Stubs Collection/stubs/WD test.cs
+++ /dev/null
@@ -1,49 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-/*
-stubManager.Run<StubGPIOWriteBitResponse>("StubGPIOWriteBitRequest" ,"N", 6, false);
-stubManager.Run<StubGPIOWriteBitResponse>("StubGPIOWriteBitRequest" ,"N", 6, true);
-
-stubManager.Run<StubGPIOWriteBitResponse>("StubGPIOWriteBitRequest" ,"H", 4, false);
-stubManager.Run<StubGPIOWriteBitResponse>("StubGPIOWriteBitRequest" ,"H", 4, true);
-
-stubManager.Run<StubGPIOWriteBitResponse>("StubGPIOWriteBitRequest" ,"F", 6, false);
-stubManager.Run<StubGPIOWriteBitResponse>("StubGPIOWriteBitRequest" ,"F", 6, true);
-*/
-
- for (int i = 0; i < 1; i++)
- {
-
-
- var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000000 + 0x160);
- var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000400 + 0x140);
- var response2 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000800 + 0x140);
- stubManager.WriteLineHex(response.Value,4);
- stubManager.WriteLineHex(response1.Value,4);
- stubManager.WriteLineHex(response2.Value,4);
- stubManager.WriteLine("");
-
- var response3 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000000 + 0x0B2);
- var response4 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000000 + 0x0C2);
- var response5 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000400 + 0x0B2);
- var response6 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000800 + 0x0B2);
- stubManager.WriteLineHex(response3.Value,4);
- stubManager.WriteLineHex(response4.Value,4);
- stubManager.WriteLineHex(response5.Value,4);
- stubManager.WriteLineHex(response6.Value,4);
-
- Thread.Sleep(1000); //Sleep for 1000 milli.
- }
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/WHS_EEPROM.cs b/Software/Stubs Collection/stubs/WHS_EEPROM.cs
deleted file mode 100644
index b5c7af2b1..000000000
--- a/Software/Stubs Collection/stubs/WHS_EEPROM.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-
-
-StubWhsEEpromRequest stubWhsEEpromRequest = new StubWhsEEpromRequest();
-stubWhsEEpromRequest.BurnRequest = false; // false - read, true - write
-
-StubWhsEEpromData stubWhsEEpromData = new StubWhsEEpromData();
-stubWhsEEpromData.Header = 1;
-stubWhsEEpromData.TableLength = 2;
-stubWhsEEpromData.Tableversion = 3;
-stubWhsEEpromData.Orifice1Flow = 1067 * 8.7433; //mv * 8.7433 convert from mv to ml (1067 * 8.7433 = 9,329.1011)
-stubWhsEEpromData.CheckSum = 5;
-
-stubWhsEEpromRequest.WhsEEprom = stubWhsEEpromData;
-
-var response = stubManager.Run<StubWhsEEpromResponse>(stubWhsEEpromRequest);
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/alarm.cfg b/Software/Stubs Collection/stubs/alarm.cfg
deleted file mode 100644
index 89f70357d..000000000
--- a/Software/Stubs Collection/stubs/alarm.cfg
+++ /dev/null
@@ -1,292 +0,0 @@
-
-èPÐ
-d 08@ÿHPÒ
-d 08@ÿHPÓ
-d 08@ÿHPÔ
-d 08@ÿHPÕ
-d 08@ÿHPÖ
-d 08@ÿHP×
-èPØ
-è(è8@ÿHPÙ
-è8@ÿHPÚ
-è (è8@ÿHPÛ
-è 8@ÿHPÜ
-
-è8PÝ
-èPÞ
-èPß
-èPà
-èPá
-èPâ
-èPã
-èPä
- è8@ÿP¸
- è8@ÿP¹
- è8@ÿPº
-è (€ 8@ÿHP»
-è (€ 8@ÿHP¼
-è (€ 8@ÿHP½
-è (€ 8@ÿHP¾
-è (€ 8@ÿHP¿
-è (€ 8@ÿHPÀ
-è (€ 8@ÿHPÁ
-è (€8@ÿHPÂ
-è (€8@ÿHPÃ
-è (€8@ÿHPÄ
-è (€8@ÿHPÅ
-è (€8@ÿHPÆ
-è (€8@ÿHPÇ
-è (€8@ÿHPÈ
-è (€@8@ÿHPÉ
-è (€@8@ÿHPÊ
-è (€@8@ÿHPË
-è (€@8@ÿHPÍ
-è (€@8@ÿHPÎ
-è (€@8@ÿHPÏ
-è (€8@ÿHPÐ
-è (€8@ÿHPÑ
-è (€8@ÿHPÒ
-è (€@8@ÿHPÓ
-è (€8@ÿHPÔ
-è (€8@ÿHPÕ
-è (€8@ÿHPÖ
-è (d08@ÿHP×
-è (d08@ÿHPØ
-è (d08@ÿHPÙ
-è (d08@ÿHPÚ
-è (d08@ÿHPÛ
-è (€ 8@ÿHPÜ
-è (€ 8@ÿHPÝ
-è (€ 8@ÿHPÞ
-è (€8@ÿHPß
-è (€8@ÿHPà
-è (€8@ÿHPá
-è (€@8@ÿHPâ
-è (€@8@ÿHPã
-è (€@8@ÿHPä
-è (€8@ÿHPå
-è (€8@ÿHPæ
-è (€8@ÿHPç
-
-è8Pè
-
-è8Pé
-è (€ 8@ÿHP 
-è (€8@ÿHP¡
-è (€@8@ÿHP¢
-è (€8@ÿHP£
- è8@ÿP¤
-d(Ž08@ÿP¥
-è( 8@ÿP§
-è( 8@ÿP¨
- è8@ÿPª
-è (08@ÿHP«
-è (È08@ÿHP¬
-è 8@ÿHP­
-è 8@ÿHP®
-è (è8@ÿHP¯
-è08@ÿHP°
-è (€ 8@ÿHP±
-è (€8@ÿHP²
-è (€@8@ÿHP³
-è (€8@ÿHP´
-d (Ž08@ÿPˆ'
-d (Ž08@ÿP‰'
-d (Ž08@ÿPŠ'
-d (Ž08@ÿP‹'
-d (Ž08@ÿPŒ'
-d (Ž08@ÿP'
-è ( 8@ÿPŽ'
-è ( 8@ÿP'
-è ( 8@ÿP'
-è ( 8@ÿP‘'
-è ( 8@ÿP’'
-è ( 8@ÿP“'
-è ( 8@ÿP”'
-è ( 8@ÿP•'
-è ( 8@ÿP–'
-è ( 8@ÿP—'
-è ( 8@ÿP˜'
-è ( 8@ÿP™'
-è(¸08@ÿHPš'
-è (»08@ÿHP›'
-è (»08@ÿHPœ'
-è (¸08@ÿHP'
-è (ô08@ÿHPž'
-è8@ÿHPŸ'
-è 8@ÿHP '
-è 8@ÿHP¡'
-è 8@ÿHP¢'
-è 8@ÿHP£'
-è (€ 8@ÿHP§'
-è (€8@ÿHP¨'
-è (€@8@ÿHP©'
-è (€8@ÿHPª'
-è (€ 8@ÿHP«'
-è (€8@ÿHP¬'
-è (€@8@ÿHP­'
-è (€8@ÿHP®'
-è(€ 8@ÿHP¯'
-è(€8@ÿHP°'
-è(€@8@ÿHP±'
-è(€8@ÿHP²'
-è (Ž08@ÿHP³'
-è (Ž08@ÿHP´'
-è (Ž08@ÿHPµ'
-è (Ž08@ÿHP¶'
-è
- (Ž08@ÿHP·'
-è (Ž08@ÿHP¸'
-è ( 8@ÿHP¹'
-è ( 8@ÿHPº'
-è ( 8@ÿHP»'
-è ( 8@ÿHP¼'
-è
- ( 8@ÿHP½'
-è ( 8@ÿHP¾'
-è ( 8@ÿHP¿'
-è ( 8@ÿHPÀ'
-è ( 8@ÿHPÁ'
-è ( 8@ÿHPÂ'
-è
- ( 8@ÿHPÃ'
-è ( 8@ÿHPÄ'
-è (¸08@ÿHPÅ'
-è (¸08@ÿHPÆ'
-è (¸08@ÿHPÇ'
-è (¸08@ÿHPÈ'
-è (¸08@ÿHPÉ'
-è
-
-(¸08@ÿHPÊ'
-è (¸08@ÿHPË'
-è 8@ÿHPÌ'
-è 8@ÿHPÍ'
-è 8@ÿHPÎ'
-è 8@ÿHPÏ'
-è 8@ÿHPÐ'
-è
-
-8@ÿHPÑ'
-è 8@ÿHPÒ'
-d (Ž08@ÿPð.
-è ( 8@ÿPñ.
-è ( 8@ÿPò.
-è (»08@ÿHPô.
-è8@ÿHPõ.
- è8@ÿPØ6
- è8@ÿPÙ6
- è8@ÿPÚ6
- è8@ÿPÛ6
- è8@ÿPÜ6
- è8@ÿPÝ6
- è8@ÿPÞ6
- è8@ÿPß6
-d08@ÿPè6
-d 08@ÿPé6
-d 08@ÿPê6
-d 08@ÿPë6
-d 08@ÿPì6
-d 08@ÿPí6
-d 08@ÿPî6
-d 08@ÿPï6
-è (€ 8@ÿHPø6
-è (€ 8@ÿHPù6
-è (€ 8@ÿHPú6
-è (€ 8@ÿHPû6
-è
-
-(€ 8@ÿHPü6
-è (€ 8@ÿHPý6
-è (€ 8@ÿHPþ6
-è (€ 8@ÿHPÿ6
-è (€8@ÿHP€7
-è (€8@ÿHP7
-è (€8@ÿHP‚7
-è (€8@ÿHPƒ7
-è
-
-(€8@ÿHP„7
-è (€8@ÿHP…7
-è (€8@ÿHP†7
-è (€8@ÿHP‡7
-è (€@8@ÿHPˆ7
-è (€@8@ÿHP‰7
-è (€@8@ÿHPŠ7
-è (€@8@ÿHP‹7
-è
-
-(€@8@ÿHPŒ7
-è (€@8@ÿHP7
-è (€@8@ÿHPŽ7
-è (€@8@ÿHP7
-è (€8@ÿHP7
-è (€8@ÿHP‘7
-è (€8@ÿHP’7
-è (€8@ÿHP“7
-è
-
-(€8@ÿHP”7
-è (€8@ÿHP•7
-è (€8@ÿHP–7
-è (€8@ÿHP—7
-è(08@ÿHP˜7
-è(08@ÿHP™7
-è(08@ÿHPš7
-è(08@ÿHP›7
-è(08@ÿHPœ7
-è(08@ÿHP7
-è(08@ÿHPž7
-è(08@ÿHPŸ7
-è(8@ÿHP 7
-è(8@ÿHP¡7
-è(8@ÿHP¢7
-è(8@ÿHP£7
-è(8@ÿHP¤7
-è(8@ÿHP¥7
-è(8@ÿHP¦7
-è(8@ÿHP§7
-è(08@ÿHP¨7
-è (08@ÿHP©7
-è (08@ÿHPª7
-è (08@ÿHP«7
-è (08@ÿHP¬7
-è (08@ÿHP­7
-è (08@ÿHP®7
-è (08@ÿHP¯7
- è(¬8@ÿHPÀ>
- è (¬8@ÿHPÁ>
- è (¬8@ÿHPÂ>
- è (¬8@ÿHPÃ>
- è (¬8@ÿHPÄ>
- è (¬8@ÿHPÅ>
- è (¬8@ÿHPÆ>
- è (¬8@ÿHPÇ>
- è(d8@ÿHPÈ>
- è (d8@ÿHPÉ>
- è (d8@ÿHPÊ>
- è (d8@ÿHPË>
- è (d8@ÿHPÌ>
- è (d8@ÿHPÍ>
- è (d8@ÿHPÎ>
- è (d8@ÿHPÏ>
- è(¤ 08@ÿHPÐ>
- è (¤ 08@ÿHPÑ>
- è (¤ 08@ÿHPÒ>
- è (¤ 08@ÿHPÓ>
- è (¤ 08@ÿHPÔ>
- è (¤ 08@ÿHPÕ>
- è (¤ 08@ÿHPÖ>
- è (¤ 08@ÿHP×>
- è8@ÿPØ>
-è 8@ÿPÙ>
-è 8@ÿPÚ>
-è 8@ÿPÛ>
-è 8@ÿPÜ>
-è 8@ÿPÝ>
-è 8@ÿPÞ>
-è 8@ÿPß>
- è8@ÿP¨F
- è8@ÿP«F
- è8@ÿP­F
- è8@ÿP°F \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/arm test.cs b/Software/Stubs Collection/stubs/arm test.cs
deleted file mode 100644
index ca1ff1771..000000000
--- a/Software/Stubs Collection/stubs/arm test.cs
+++ /dev/null
@@ -1,43 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-int i;
-ProgressRequest progressRequest = new ProgressRequest();
-
- for (i = 1;i<= 12; i++)
- {
- progressRequest.Amount = 0xB11;
- progressRequest.Delay = 7680+0;
- var response = stubManager.Run<ProgressResponse>(progressRequest);
- Thread.Sleep(12000);
- progressRequest.Amount = 0xB12;
- response = stubManager.Run<ProgressResponse>(progressRequest);
- Thread.Sleep(1000);
- stubManager.Write("Arm Test \t"+ i + " direction 0 progress "+ response.Progress +"\n");
-
- }
-
- for (i = 1;i<= 10; i++)
- {
- progressRequest.Amount = 0xB11;
- progressRequest.Delay = 7680+1;
- var response = stubManager.Run<ProgressResponse>(progressRequest);
- Thread.Sleep(12000);
- progressRequest.Amount = 0xB12;
- response = stubManager.Run<ProgressResponse>(progressRequest);
- stubManager.Write("Arm Test \t"+ i + " direction 1 progress "+ response.Progress +"\n");
-
- Thread.Sleep(1000);
- }
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/change sublimation time.cs b/Software/Stubs Collection/stubs/change sublimation time.cs
deleted file mode 100644
index 3292a3b7e..000000000
--- a/Software/Stubs Collection/stubs/change sublimation time.cs
+++ /dev/null
@@ -1,23 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-
-int SublimationDuration = 30;
-ProgressRequest progressRequest = new ProgressRequest();
-progressRequest.Amount = 0xB26;
-progressRequest.Delay = SublimationDuration;
-
- var response = stubManager.Run<ProgressResponse>(progressRequest);
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/cleaning sequence disable.cs b/Software/Stubs Collection/stubs/cleaning sequence disable.cs
deleted file mode 100644
index 49bf4d968..000000000
--- a/Software/Stubs Collection/stubs/cleaning sequence disable.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-
-//"Set WFCF Value
-ProgressRequest progressRequest = new ProgressRequest();
-progressRequest.Amount = 0xAD7;
-progressRequest.Delay = 0;
-
-var response = stubManager.Run<ProgressResponse>(progressRequest);
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/dye sequence stubs.cs b/Software/Stubs Collection/stubs/dye sequence stubs.cs
deleted file mode 100644
index 8aaf3a823..000000000
--- a/Software/Stubs Collection/stubs/dye sequence stubs.cs
+++ /dev/null
@@ -1,40 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-
-//"Set WFCF Value
- int WCFvalue = 40;
-ProgressRequest progressRequest = new ProgressRequest();
-progressRequest.Amount = 0xE3;
-progressRequest.Delay = WCFvalue;
-
-var response = stubManager.Run<ProgressResponse>(progressRequest);
-
-//Set WFCF build to waste Time Value
-int WCFBuildTime = 20000;
-
-progressRequest.Amount = 0xE4;
-progressRequest.Delay = WCFBuildTime;
-
-response = stubManager.Run<ProgressResponse>(progressRequest);
-
-// Set special dispensers true (close valve) or false (open valve)
-int ClosedValve = 1; //closed
-
-progressRequest.Amount = 0xE5;
-progressRequest.Delay = ClosedValve;
-
-response = stubManager.Run<ProgressResponse>(progressRequest);
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/embParamDownload.cs b/Software/Stubs Collection/stubs/embParamDownload.cs
deleted file mode 100644
index afdc14c92..000000000
--- a/Software/Stubs Collection/stubs/embParamDownload.cs
+++ /dev/null
@@ -1,74 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-using Google.Protobuf;
-using Tango.PMR.EmbeddedParameters;
-using System.IO;
-using Tango.PMR.IO;
-
-
-public void OnExecute(StubManager stubManager)
-{
-
-
-ConfigurationParameters configurationParameters = new ConfigurationParameters();
-
-File.WriteAllBytes("C:/temp/EmbParam.cfg",configurationParameters.ToBytes());
-
-byte[] fileBytes = File.ReadAllBytes("C:/temp/EmbParam.cfg");
-
-
-var config = ConfigurationParameters.Parser.ParseFrom(fileBytes);
-
- stubManager.Write( config);
- Thread.Sleep(1000);
-
-//1. read
-stubManager.Write("\n\n Deleting old file");
-
-stubManager.Write("\n\n Loading new file file");
-
-
-FileDownloadRequest fileDownloadRequest = new FileDownloadRequest();
-fileDownloadRequest.FileName = "SYSINFO//EmbParam.cfg";;
-
-FileDownloadResponse response = stubManager.Run<FileDownloadResponse>(fileDownloadRequest);
-
-
-FileChunkDownloadRequest fileChunkDownloadRequest = new FileChunkDownloadRequest();
-fileChunkDownloadRequest.DownloadID = response.
-fileChunkDownloadRequest.FileName = null;
-fileChunkDownloadRequest.Position = 0;
-
-Thread.Sleep(1000);
-long chunk_size = response2.MaxChunkLength;
-
-FileStream fs = new FileStream("C:/temp/EmbParam.cfg",FileMode.Open);
-
-while (fs.Position < fs.Length)
-{
- stubManager.Write("Position "+ fs.Position+ " Length "+ fs.Length +"\n\n");
- FileChunkUploadRequest fileChunkUploadRequest = new FileChunkUploadRequest();
- fileChunkUploadRequest.UploadID = response2.UploadID;
- byte[] chunk = new byte[Math.Min(chunk_size,fs.Length - fs.Position)];
- fs.Read(chunk,0,chunk.Length);
- fileChunkUploadRequest.Buffer = ByteString.CopyFrom(chunk);
- var response3 = stubManager.Run<FileChunkUploadResponse>(fileChunkUploadRequest);
- Thread.Sleep(2000);
-
-}
-
-/*
-13:46:42.38: Executing script 'embeddedparametersbuild.cs'...
-{ "BreakSensorLimit": 10, "DiagnosticCollectionLimit": 1, "OverHeatCountLimit": 3, "UnderHeatCountLimit": 3, "CloseValveTimeout": 255, "OpenValveTimeout": 255, "InitialDispenserPressure": 1.5, "InitialDispenserTimeout": 60000, "InitialDispenserTimeLag": 100, "DispenserBuildPressureSpeed": 800, "DispenserBuildPressureLimit": 0.9, "DispenserBuildPressureTimeout": 80000, "DispenserBuildPressureLag": 50, "ACHeatersLowerOperationLimit": 995, "ACHeatersUpperOperationLimit": 1005, "DCHeatersLowerOperationLimit": 978, "DCHeatersUpperOperationLimit": 1005, "DispenserPresegmentWFCF": 80, "StartHeatingOnInitSequence": true, "GeneralParameters": [ 1, 1, 1, 1, 800, 1000 ], "CurrentAlarmLowLimit": 0.8, "CurrentAlarmHighLimit": 1.07, "IDSSegmentRefillTimeout": 5000, "IDSPreSegmentBuildupTime": 5000, "IDSCleaningSpeed": 50, "IDSCleaningStopBeforeSegmentTime": 3000, "IDSCleaningStartSprayPreSegmentTime": 1000, "IDSLeftCleaningMotorSpeed": 30, "IDSRightCleaningMotorSpeed": 23, "SwitchToIdleTimeinSeconds": 3600, "IdleDrierTemperature": 80, "IdleHeadTemperature": 80, "PowerOffTemperatureLimit": 50, "IDSPreSegmentWFCFTimeBeforeSegment": 1500 } */
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/embeddedparametersbuild.cs b/Software/Stubs Collection/stubs/embeddedparametersbuild.cs
index 5092e6b6f..a08ca327a 100644
--- a/Software/Stubs Collection/stubs/Scripts/embeddedparametersbuild.cs
+++ b/Software/Stubs Collection/stubs/embeddedparametersbuild.cs
@@ -17,33 +17,33 @@ using Tango.PMR.IO;
public void OnExecute(StubManager stubManager)
{
-// parameters version for PRODUCTION 1.4.6.44
+
ConfigurationParameters configurationParameters = new ConfigurationParameters();
configurationParameters.BreakSensorLimit = 10;
//how many samples to collect in diagnostics before sending
-configurationParameters.DiagnosticCollectionLimit = 3;
+configurationParameters.DiagnosticCollectionLimit = 1;
//how many consecutive readout before declaring DC over/underheat alarm
configurationParameters.OverHeatCountLimit = 3;
configurationParameters.UnderHeatCountLimit = 3;
// time of motor activity before opening the valve or after closing the valve, in milliseconds
-configurationParameters.CloseValveTimeout = 20;
-configurationParameters.OpenValveTimeout = 20;
+configurationParameters.CloseValveTimeout = 10;
+configurationParameters.OpenValveTimeout = 10;
//backlash after filling - target pressure, timoeout, time staps (speed will be added in general parameters)
-configurationParameters.InitialDispenserPressure = 3.85; //used for initial pre-run maximal pressure
-configurationParameters.InitialDispenserTimeout = 120000; ////used for initial pre-run target number of steps
+configurationParameters.InitialDispenserPressure = 0.25;
+configurationParameters.InitialDispenserTimeout = 60000; //20 seconds
configurationParameters.InitialDispenserTimeLag = 100;
//job prepare - build pressure in dispensers - target pressure, timoeout, time staps, speed
configurationParameters.DispenserBuildPressureSpeed = 950; //no more than 1000
-configurationParameters.DispenserBuildPressureLimit = 0.85;
-configurationParameters.DispenserBuildPressureTimeout = 420000; // 7 minutes - long prepare for 5 cycles build
-configurationParameters.DispenserBuildPressureLag = 100;
+configurationParameters.DispenserBuildPressureLimit = 1.2;
+configurationParameters.DispenserBuildPressureTimeout = 80000;
+configurationParameters.DispenserBuildPressureLag = 50;
//temperature band 1000 = 100% - thresholds for job start around target temprature - AC
configurationParameters.ACHeatersLowerOperationLimit = 995;
@@ -59,50 +59,40 @@ configurationParameters.MidTankPressureCorrection = 0.0;
//waste factor for intersegment pressure building
configurationParameters.DispenserPresegmentWFCF = 40;
//how much time to start the WFCF process (pressure buildup) before segment start
-configurationParameters.IDSPreSegmentWFCFTimeBeforeSegment = 12000;
+configurationParameters.IDSPreSegmentWFCFTimeBeforeSegment = 30000;
//flag: start heaters according to saved process parameters upon init?
configurationParameters.StartHeatingOnInitSequence = true;
// current test for the heaters - alarm thresholds
-configurationParameters.CurrentAlarmLowLimit = 0.78;
+configurationParameters.CurrentAlarmLowLimit = 0.80;
configurationParameters.CurrentAlarmHighLimit = 1.07;
-//currently not in use
configurationParameters.IDSSegmentRefillTimeout = 5000;
configurationParameters.IDSPreSegmentBuildupTime = 5000;
//cleaning!!!!!!!!!!
configurationParameters.IDSCleaningSpeed = 800;
-configurationParameters.IDSCleaningStopBeforeSegmentTime = 10000; //end of presegemnt
-configurationParameters.IDSCleaningStartSprayPreSegmentTime =2000; //beginning of presegment
-
-int Tup = 10,Tdelay1 = 98,Tdelay2 = 198; //350nsec up, 1 second delay, 2 seconds before up again
-// Tup = LeftRockerSpeed/100;
-// Tdelay1 = LeftRockerSpeed%100;
-// Tdelay2 = RightRockerSpeed;
-int LeftRockerSpeed = Tup*100+Tdelay1;
-int RightRockerSpeed = Tdelay2;
-
-configurationParameters.IDSLeftCleaningMotorSpeed = LeftRockerSpeed;
-configurationParameters.IDSRightCleaningMotorSpeed = RightRockerSpeed;
+configurationParameters.IDSCleaningStopBeforeSegmentTime = 3000;
+configurationParameters.IDSCleaningStartSprayPreSegmentTime = 1000;
+configurationParameters.IDSLeftCleaningMotorSpeed = 30;
+configurationParameters.IDSRightCleaningMotorSpeed = 23;
configurationParameters.SwitchToIdleTimeinSeconds = 3600;
configurationParameters.IdleDrierTemperature = 80;
configurationParameters.IdleHeadTemperature = 80;
configurationParameters.IdleMixerTemperature = 0;
-configurationParameters.PowerOffTemperatureLimit = 100;
+configurationParameters.PowerOffTemperatureLimit = 50;
//general parameters, ORDER MUST BE PRESERVED!!!!
//check the dispensers hard limit alarms
/*1*/
Double checkHardLimitAlarms = new Double();
-
checkHardLimitAlarms = 1.0;
configurationParameters.GeneralParameters.Add(checkHardLimitAlarms);
/*2*/
Double checkCurrentAlarms = new Double();
-checkCurrentAlarms = 0.0;
+checkCurrentAlarms = 1.0;
configurationParameters.GeneralParameters.Add(checkCurrentAlarms);
//check the tamper alarms
@@ -118,22 +108,22 @@ configurationParameters.GeneralParameters.Add(checkMotorAlarms);
/*5*/
Double WinderBackToBaseTime = new Double();
-WinderBackToBaseTime = 820.0;
+WinderBackToBaseTime = 800.0;
configurationParameters.GeneralParameters.Add(WinderBackToBaseTime);
/*6*/
Double DispenserInitialPressureSpeed = new Double();
-DispenserInitialPressureSpeed = 1050.0;
+DispenserInitialPressureSpeed = 800.0;
configurationParameters.GeneralParameters.Add(DispenserInitialPressureSpeed);
/*7*/
Double SetDiagnosticMode = new Double();
-SetDiagnosticMode = 3.0;
+SetDiagnosticMode = 1.0;
configurationParameters.GeneralParameters.Add(SetDiagnosticMode);
/*8*/
Double SetAutoFill = new Double();
-SetAutoFill = 3.0;
+SetAutoFill = 0.0;
configurationParameters.GeneralParameters.Add(SetAutoFill);
File.WriteAllBytes("C:/temp/EmbParam.cfg",configurationParameters.ToBytes());
@@ -143,49 +133,7 @@ byte[] fileBytes = File.ReadAllBytes("C:/temp/EmbParam.cfg");
var config = ConfigurationParameters.Parser.ParseFrom(fileBytes);
-stubManager.Write( config);
-Thread.Sleep(1000);
-
-
-stubManager.Write("\n\n Deleting old file");
-
-DeleteRequest deleteRequest = new DeleteRequest();
-deleteRequest.Path = "SYSINFO//EmbParam.cfg";
-deleteRequest.Attribute = Tango.PMR.IO.FileAttribute.Unspecified;
-DeleteResponse response5 = stubManager.Run<DeleteResponse>(deleteRequest);
-
-
-Thread.Sleep(1000);
-stubManager.Write("\n\n Loading new file file");
-
-FileUploadRequest fileUploadRequest = new FileUploadRequest();
-fileUploadRequest.Path = "SYSINFO//EmbParam.cfg";
-fileUploadRequest.Length = (int)fileBytes.Length;
-FileUploadResponse response2 = stubManager.Run<FileUploadResponse>(fileUploadRequest);
-Thread.Sleep(1000);
-long chunk_size = response2.MaxChunkLength;
-
-FileStream fs = new FileStream("C:/temp/EmbParam.cfg",FileMode.Open);
-
-while (fs.Position < fs.Length)
-{
- stubManager.Write("Position "+ fs.Position+ " Length "+ fs.Length +"\n\n");
- FileChunkUploadRequest fileChunkUploadRequest = new FileChunkUploadRequest();
- fileChunkUploadRequest.UploadID = response2.UploadID;
- byte[] chunk = new byte[Math.Min(chunk_size,fs.Length - fs.Position)];
- fs.Read(chunk,0,chunk.Length);
- fileChunkUploadRequest.Buffer = ByteString.CopyFrom(chunk);
- var response3 = stubManager.Run<FileChunkUploadResponse>(fileChunkUploadRequest);
- Thread.Sleep(2000);
-
-}
-
-// activating the new file
-ProgressRequest progressRequest = new ProgressRequest();
-progressRequest.Amount = 0xCD;
-progressRequest.Delay = 0xCD;
-var response1 = stubManager.Run<ProgressResponse>(progressRequest);
-
+ stubManager.Write( config);
/*
13:46:42.38: Executing script 'embeddedparametersbuild.cs'...
diff --git a/Software/Stubs Collection/stubs/embeddedparametersbuild_w_cleaning.cs b/Software/Stubs Collection/stubs/embeddedparametersbuild_w_cleaning.cs
deleted file mode 100644
index 57501cc0f..000000000
--- a/Software/Stubs Collection/stubs/embeddedparametersbuild_w_cleaning.cs
+++ /dev/null
@@ -1,233 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-using Google.Protobuf;
-using Tango.PMR.EmbeddedParameters;
-using System.IO;
-using Tango.PMR.IO;
-
-
-public void OnExecute(StubManager stubManager)
-{
-// parameters version for TESTING 1.5.3.3
-string description = "";
-ConfigurationParameters configurationParameters = new ConfigurationParameters();
-
-description += "Version 1.5.3.4";
-configurationParameters.BreakSensorLimit = 10;
-
-//how many samples to collect in diagnostics before sending
-configurationParameters.DiagnosticCollectionLimit = 1;
-
-//how many consecutive readout before declaring DC over/underheat alarm
-configurationParameters.OverHeatCountLimit = 3;
-configurationParameters.UnderHeatCountLimit = 3;
-
-// time of motor activity before opening the valve or after closing the valve, in milliseconds
-configurationParameters.CloseValveTimeout = 20;
-configurationParameters.OpenValveTimeout = 20;
-
-//backlash after filling - target pressure, timoeout, time staps (speed will be added in general parameters)
-configurationParameters.InitialDispenserPressure = 3.85; //used for initial pre-run maximal pressure
-configurationParameters.InitialDispenserTimeout = 120000; ////used for initial pre-run target number of steps
-configurationParameters.InitialDispenserTimeLag = 100;
-description = description+" "+configurationParameters.InitialDispenserPressure+"-"+configurationParameters.InitialDispenserTimeout/1000;
-
-//job prepare - build pressure in dispensers - target pressure, timoeout, time staps, speed
-configurationParameters.DispenserBuildPressureSpeed = 950; //no more than 1000
-configurationParameters.DispenserBuildPressureLimit = 0.85;
-configurationParameters.DispenserBuildPressureTimeout = 420000; // 7 minutes - long prepare for 5 cycles build
-configurationParameters.DispenserBuildPressureLag = 100;
-description = description+" T "+configurationParameters.DispenserBuildPressureTimeout/1000;
-
-//temperature band 1000 = 100% - thresholds for job start around target temprature - AC
-configurationParameters.ACHeatersLowerOperationLimit = 995;
-configurationParameters.ACHeatersUpperOperationLimit = 1005;
-
-//temperature band 1000 = 100% - thresholds for job start around target temprature - DC
-configurationParameters.DCHeatersLowerOperationLimit = 978;
-configurationParameters.DCHeatersUpperOperationLimit = 1005;
-
-// mid tank reading offset to add to the readout (OBSOLETE!)
-configurationParameters.MidTankPressureCorrection = 0.0;
-
-//waste factor for intersegment pressure building
-configurationParameters.DispenserPresegmentWFCF = 40;
-description = description+" WF"+configurationParameters.DispenserPresegmentWFCF;
-//how much time to start the WFCF process (pressure buildup) before segment start
-configurationParameters.IDSPreSegmentWFCFTimeBeforeSegment = 12000;
-
-//flag: start heaters according to saved process parameters upon init?
-configurationParameters.StartHeatingOnInitSequence = true;
-
-// current test for the heaters - alarm thresholds
-configurationParameters.CurrentAlarmLowLimit = 0.78;
-configurationParameters.CurrentAlarmHighLimit = 1.07;
-
-//currently not in use
-configurationParameters.IDSSegmentRefillTimeout = 5000;
-configurationParameters.IDSPreSegmentBuildupTime = 5000;
-//cleaning!!!!!!!!!!
-configurationParameters.IDSCleaningSpeed = 800;
-configurationParameters.IDSCleaningStopBeforeSegmentTime = 10000; //end of presegemnt
-configurationParameters.IDSCleaningStartSprayPreSegmentTime =2000; //beginning of presegment
-description = description+" Cl"+configurationParameters.IDSCleaningStopBeforeSegmentTime/1000+"-"+configurationParameters.IDSCleaningStartSprayPreSegmentTime/1000;
-
-int Tup = 10,Tdelay1 = 98,Tdelay2 = 198; //350nsec up, 1 second delay, 2 seconds before up again
-// Tup = LeftRockerSpeed/100;
-// Tdelay1 = LeftRockerSpeed%100;
-// Tdelay2 = RightRockerSpeed;
-int LeftRockerSpeed = Tup*100+Tdelay1;
-int RightRockerSpeed = Tdelay2;
-
-configurationParameters.IDSLeftCleaningMotorSpeed = LeftRockerSpeed;
-configurationParameters.IDSRightCleaningMotorSpeed = RightRockerSpeed;
-description = description+"-"+Tup+"."+Tdelay1+"."+Tdelay2;
-
-configurationParameters.SwitchToIdleTimeinSeconds = 3600;
-configurationParameters.IdleDrierTemperature = 80;
-configurationParameters.IdleHeadTemperature = 80;
-configurationParameters.IdleMixerTemperature = 0;
-configurationParameters.PowerOffTemperatureLimit = 60;
-
-
-//general parameters, ORDER MUST BE PRESERVED!!!!
-//check the dispensers hard limit alarms
-/*1*/
-Double checkHardLimitAlarms = new Double();
-
-checkHardLimitAlarms = 1.0;
-configurationParameters.GeneralParameters.Add(checkHardLimitAlarms);
-
-/*2*/
-Double checkCurrentAlarms = new Double();
-checkCurrentAlarms = 1.0;
-configurationParameters.GeneralParameters.Add(checkCurrentAlarms);
-//check the tamper alarms
-
-/*3*/
-Double checkTamperAlarms = new Double();
-checkTamperAlarms = 0.0;
-configurationParameters.GeneralParameters.Add(checkTamperAlarms);
-
-/*4*/
-Double checkMotorAlarms = new Double();
-checkMotorAlarms = 1.0;
-configurationParameters.GeneralParameters.Add(checkMotorAlarms);
-
-/*5*/
-Double WinderBackToBaseTime = new Double();
-WinderBackToBaseTime = 820.0;
-configurationParameters.GeneralParameters.Add(WinderBackToBaseTime);
-
-/*6*/
-Double DispenserInitialPressureSpeed = new Double();
-DispenserInitialPressureSpeed = 1050.0;
-configurationParameters.GeneralParameters.Add(DispenserInitialPressureSpeed);
-
-/*7*/
-Double SetDiagnosticMode = new Double();
-SetDiagnosticMode = 3.0;
-configurationParameters.GeneralParameters.Add(SetDiagnosticMode);
-
-/*8*/
-Double SetAutoFill = new Double();
-SetAutoFill = 3.0;
-configurationParameters.GeneralParameters.Add(SetAutoFill);
-description = description+"-AF"+SetAutoFill+"DI"+SetDiagnosticMode;
-
-/*9*/
-double PowerOffDisableCleaning = new Double();
-PowerOffDisableCleaning = 0.0;
-configurationParameters.GeneralParameters.Add(PowerOffDisableCleaning);
-
-/*10*/
-double SublimationBlowTime = new Double();
-SublimationBlowTime = 30.0;
-configurationParameters.GeneralParameters.Add(SublimationBlowTime);
-
-/*11*/
-double AllowedRangeForHeadBlowerDeviation = new Double();
-AllowedRangeForHeadBlowerDeviation = 7;
-configurationParameters.GeneralParameters.Add(AllowedRangeForHeadBlowerDeviation);
-
-/*12*/
-double AllowedRangeForWasteBlowerDeviation = new Double();
-AllowedRangeForWasteBlowerDeviation = 20;
-configurationParameters.GeneralParameters.Add(AllowedRangeForWasteBlowerDeviation);
-
-/*13*/
-double Voltage_Hysteresis = new Double();
-Voltage_Hysteresis = 4;
-configurationParameters.GeneralParameters.Add(Voltage_Hysteresis);
-
-/*14*/
-double Head_Blower_Calculation_C = new Double();
-Head_Blower_Calculation_C = 0.242;
-configurationParameters.GeneralParameters.Add(Head_Blower_Calculation_C);
-
-/*15*/
-double Head_Blower_Calculation_B = new Double();
-Head_Blower_Calculation_B = -0.134;
-configurationParameters.GeneralParameters.Add(Head_Blower_Calculation_B);
-description = description+"-C"+Head_Blower_Calculation_C+"-B"+Head_Blower_Calculation_B;
-
-configurationParameters.Description = description;
-//stubManager.Write("\n\n"+description);
-stubManager.Write("\n\n"+configurationParameters.Description+"\n\n");
-
-
-File.WriteAllBytes("C:/temp/EmbParam.cfg",configurationParameters.ToBytes());
-
-
-byte[] fileBytes = configurationParameters.ToBytes();
-
-
-var config = ConfigurationParameters.Parser.ParseFrom(fileBytes);
-
-stubManager.Write( config);
-Thread.Sleep(1000);
-
-
-stubManager.Write("\n\n Deleting old file");
-
-DeleteRequest deleteRequest = new DeleteRequest();
-deleteRequest.Path = "SYSINFO//EmbParam.cfg";
-deleteRequest.Attribute = Tango.PMR.IO.FileAttribute.Unspecified;
-DeleteResponse response5 = stubManager.Run<DeleteResponse>(deleteRequest);
-
-
-Thread.Sleep(1000);
-stubManager.Write("\n\n Loading new file file");
-
-FileUploadRequest fileUploadRequest = new FileUploadRequest();
-fileUploadRequest.Path = "SYSINFO//EmbParam.cfg";
-fileUploadRequest.Length = (int)fileBytes.Length;
-FileUploadResponse response2 = stubManager.Run<FileUploadResponse>(fileUploadRequest);
-Thread.Sleep(1000);
-long chunk_size = response2.MaxChunkLength;
-
-stubManager.Write("Chunk size "+ chunk_size + " file size "+ fileBytes.Length +"\n\n");
-FileChunkUploadRequest fileChunkUploadRequest = new FileChunkUploadRequest();
-fileChunkUploadRequest.UploadID = response2.UploadID;
-fileChunkUploadRequest.Buffer = ByteString.CopyFrom(fileBytes);
-var response3 = stubManager.Run<FileChunkUploadResponse>(fileChunkUploadRequest);
-
-// activating the new file
-ProgressRequest progressRequest = new ProgressRequest();
-progressRequest.Amount = 0xCD;
-progressRequest.Delay = 0xCD;
-var response1 = stubManager.Run<ProgressResponse>(progressRequest);
-
-
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/head_card_fan_test.cs b/Software/Stubs Collection/stubs/head_card_fan_test.cs
deleted file mode 100644
index 95c3825e0..000000000
--- a/Software/Stubs Collection/stubs/head_card_fan_test.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-// Request ----
-// Int32 : Amount
-// Int32 : Delay
-
-// Response ----
-// Double : Progress
-var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfac0, 0x00);//Fan Click Head Card , Fan 1 Setting - 0xFF Full PWM 0x80 = 50% FF = 100% 0 - STOP
-stubManager.WriteLineHex(response.Progress,2);//100% = 0xDC0, 50% = 0x1790, 0% = 0xFFF0
-
-var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfac1, 0x00);//Fan Click Head Card , Fan 1 Setting - 0xFF Full PWM 0x80 = 50% FF = 100% 0 - STOP
-stubManager.WriteLineHex(response1.Progress,2);//100% = 0xDC0, 50% = 0x1790, 0% = 0xFFF0
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/load parameters from machine.cs b/Software/Stubs Collection/stubs/load parameters from machine.cs
deleted file mode 100644
index a43354785..000000000
--- a/Software/Stubs Collection/stubs/load parameters from machine.cs
+++ /dev/null
@@ -1,46 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-using Google.Protobuf;
-using Tango.PMR.EmbeddedParameters;
-using System.IO;
-using Tango.PMR.IO;
-
-
-public void OnExecute(StubManager stubManager)
-{
-
-
-ConfigurationParameters configurationParameters = new ConfigurationParameters();
-
- Thread.Sleep(1000);
-
-stubManager.Write("\n\n Loading file from machine");
-
-FileDownloadRequest fileDownloadRequest = new FileDownloadRequest();
-fileDownloadRequest.FileName = "SYSINFO//EmbParam.cfg";
-FileDownloadResponse response2 = stubManager.Run<FileDownloadResponse>(fileDownloadRequest);
- Thread.Sleep(1000);
-long chunk_size = response2.MaxChunkLength;
-string Download_Id = response2.DownloadID;
-//FileStream fs = new FileStream("C:/temp/EmbParam.cfg",FileMode.Open);
-
-stubManager.Write("Position "+ response2.DownloadID+ " Length "+ response2.MaxChunkLength +"\n\n");
-FileChunkDownloadRequest fileChunkDownloadRequest = new FileChunkDownloadRequest();
-fileChunkDownloadRequest.DownloadID = response2.DownloadID;
-var response3 = stubManager.Run<FileChunkDownloadResponse>(fileChunkDownloadRequest);
-
-var config = ConfigurationParameters.Parser.ParseFrom(response3.Buffer);
-stubManager.Write( config);
-
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/logs handles.cs b/Software/Stubs Collection/stubs/logs handles.cs
deleted file mode 100644
index 939af6bf1..000000000
--- a/Software/Stubs Collection/stubs/logs handles.cs
+++ /dev/null
@@ -1,38 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Debugging;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-/*
-0 ControlFilter;
-1 HeatersFilter;
-2 JobFilter ;
-3 WasteFilter ;
-4 AlarmFilter ;
-5 DiagnosticsFilter;
-6 IDSFilter;
-7 ThreadFilter;
-8 GeneralFilter;
-9 CommFilter;
-10 FPGAFilter;
-11 LoadFilter;
-12 InitFilter;
-13 MaintFilter;
-*/
-
-SetupDebugDisributorsRequest setupDebugDisributorsRequest = new SetupDebugDisributorsRequest();
-setupDebugDisributorsRequest.DebugDistributor = Tango.PMR.Debugging.DebugDistributorType.WasteFilter;
-setupDebugDisributorsRequest.DistributorActive = true;
-
- var response = stubManager.Run<SetupDebugDisributorsResponse>(setupDebugDisributorsRequest);
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/logs severity.cs b/Software/Stubs Collection/stubs/logs severity.cs
deleted file mode 100644
index cf3b4f1bc..000000000
--- a/Software/Stubs Collection/stubs/logs severity.cs
+++ /dev/null
@@ -1,27 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Debugging;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-/*
-Tango.PMR.Debugging.DebugLogCategory.Info:
-Tango.PMR.Debugging.DebugLogCategory.Warning:
-Tango.PMR.Debugging.DebugLogCategory.Error:
-Tango.PMR.Debugging.DebugLogCategory.Critical:
-Tango.PMR.Debugging.DebugLogCategory.Debug:
-*/
-SetDebugLogCategoryRequest setDebugLogCategoryRequest = new SetDebugLogCategoryRequest();
-setDebugLogCategoryRequest.MinimumCategory = Tango.PMR.Debugging.DebugLogCategory.Info;
-
- var response = stubManager.Run<SetDebugLogCategoryResponse>(setDebugLogCategoryRequest);
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/midtank calibration/Midtankcalibration.cs b/Software/Stubs Collection/stubs/midtank calibration/Midtankcalibration.cs
deleted file mode 100644
index 9a82365e1..000000000
--- a/Software/Stubs Collection/stubs/midtank calibration/Midtankcalibration.cs
+++ /dev/null
@@ -1,69 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.EmbeddedParameters;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-
-MidTankDataSetupRequest midTankDataSetupRequest = new MidTankDataSetupRequest();
-
-MidTankData midTankData = new MidTankData();
-midTankData.MidTankId = 0;
-midTankData.InitialOffsetA =2.54414609375 ;
-midTankData.SlopeB = 0.915453384418902 ;
-
-MidTankData midTankData1 = new MidTankData();
-midTankData1.MidTankId = 1;
-midTankData1.InitialOffsetA = 2.53565 ;
-midTankData1.SlopeB = 0.912075327649828;
-
-MidTankData midTankData2 = new MidTankData();
-midTankData2.MidTankId = 2;
-midTankData2.InitialOffsetA = 2.96895078125 ;
-midTankData2.SlopeB = 0.92228512609367;
-
-MidTankData midTankData3 = new MidTankData();
-midTankData3.MidTankId = 3;
-midTankData3.InitialOffsetA = 2.9264703125 ;
-midTankData3.SlopeB = 0.939819063852105;
-
-MidTankData midTankData4 = new MidTankData();
-midTankData4.MidTankId = 4;
-midTankData4.InitialOffsetA = 2.614946875 ;
-midTankData4.SlopeB = 0.92573937750226;
-
-MidTankData midTankData5 = new MidTankData();
-midTankData5.MidTankId = 5;
-midTankData5.InitialOffsetA = 2.1561578125;
-midTankData5.SlopeB = 0;
-
-MidTankData midTankData6 = new MidTankData();
-midTankData6.MidTankId = 6;
-midTankData6.InitialOffsetA = 2.8924859375;
-midTankData6.SlopeB = 0.932726089785296;
-
-MidTankData midTankData7 = new MidTankData();
-midTankData7.MidTankId = 7;
-midTankData7.InitialOffsetA = 2.92080625;
-midTankData7.SlopeB = 0.919540229;
-
-midTankDataSetupRequest.MidTankInfo.Add(midTankData);
-midTankDataSetupRequest.MidTankInfo.Add(midTankData1);
-midTankDataSetupRequest.MidTankInfo.Add(midTankData2);
-midTankDataSetupRequest.MidTankInfo.Add(midTankData3);
-midTankDataSetupRequest.MidTankInfo.Add(midTankData4);
-midTankDataSetupRequest.MidTankInfo.Add(midTankData5);
-midTankDataSetupRequest.MidTankInfo.Add(midTankData6);
-midTankDataSetupRequest.MidTankInfo.Add(midTankData7);
-
-var response = stubManager.Run<MidTankDataSetupResponse>(midTankDataSetupRequest);
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/midtank calibration/read_midtank_calibration.cs b/Software/Stubs Collection/stubs/midtank calibration/read_midtank_calibration.cs
deleted file mode 100644
index 469772888..000000000
--- a/Software/Stubs Collection/stubs/midtank calibration/read_midtank_calibration.cs
+++ /dev/null
@@ -1,37 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
- int i;
-
- for(i=0;i<8;i++)
- {
-
- var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xA, i);
- stubManager.Write("\n Initial_Offset_A [#");
- stubManager.Write(i);
- stubManager.Write("] = ");
- stubManager.WriteLine(response.Progress);
- }
-
- for(i=0;i<8;i++)
- {
- var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xB, i);
- stubManager.Write("\n Slope_B [#");
- stubManager.Write(i);
- stubManager.Write("] = ");
- stubManager.WriteLine(response1.Progress);
- }
-
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/moveloadarmback.cs b/Software/Stubs Collection/stubs/moveloadarmback.cs
deleted file mode 100644
index b7f5e0fa6..000000000
--- a/Software/Stubs Collection/stubs/moveloadarmback.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-// Request ----
-// UInt32 : MotorID
-// Boolean : Direction
-// UInt32 : Position
-
-// Response ----
-// UInt32 : MotorID
-// UInt32 : Position
-// UInt32 : StatusReg
-// Boolean : Direction
-// UInt32 : MotStatus
-// Boolean : STEPLOSSA
-// Boolean : STEPLOSSB
-var response = stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,5, true, 15);
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/powestep01_change_mode.cs b/Software/Stubs Collection/stubs/powestep01_change_mode.cs
deleted file mode 100644
index 75939ea87..000000000
--- a/Software/Stubs Collection/stubs/powestep01_change_mode.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-
-Int32 i = 6; // to run only for specific motor
-
-public void OnExecute(StubManager stubManager)
-{
- for (i = 6; i < 14; i++)
- {
- //stubManager.Run<ProgressResponse>("ProgressRequest" ,0x01, 0x010000 + (i<<8) + 0x00); //change motor driver 25 to voltage mode;
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x01, 0x010000 + (i<<8) + 0x08); //change motor driver 06 to current mode;
- Thread.Sleep(10); //Sleep for 10 milli.
-
- }
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/read WHS V0.cs b/Software/Stubs Collection/stubs/read WHS V0.cs
deleted file mode 100644
index fb67ba2cc..000000000
--- a/Software/Stubs Collection/stubs/read WHS V0.cs
+++ /dev/null
@@ -1,33 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-
- ProgressRequest progressRequest = new ProgressRequest();
- progressRequest.Amount = 0xD11; //turn off blower and PID
- progressRequest.Delay = 0;
-
- var response = stubManager.Run<ProgressResponse>(progressRequest);
-
- Thread.Sleep(3000);
-
- progressRequest.Amount = 0xD12; //run V0 recalculation
- response = stubManager.Run<ProgressResponse>(progressRequest);
-
-
- Thread.Sleep(20000);
-
- progressRequest.Amount = 0xD11; //turn on blower and PID
- progressRequest.Delay = 1;
- response = stubManager.Run<ProgressResponse>(progressRequest);
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/read and store main card data.cs b/Software/Stubs Collection/stubs/read and store main card data.cs
deleted file mode 100644
index cf0cb7278..000000000
--- a/Software/Stubs Collection/stubs/read and store main card data.cs
+++ /dev/null
@@ -1,84 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.PMR.EmbeddedParameters;
-using Tango.Stubs;
-using System.IO;
-using Tango.PMR.IO;
-using Google.Protobuf;
-
-string[] Main_Card_EEpromAddress = {
-"DATA_SIZE",
-"DANCER_0",
-"DANCER_1",
-"DANCER_2",
-"DRYER_CENTER",
-"DRYER_CYCLES",
-"MIDTANK_1_A",
-"MIDTANK_1_B",
-"MIDTANK_2_A",
-"MIDTANK_2_B",
-"MIDTANK_3_A",
-"MIDTANK_3_B",
-"MIDTANK_4_A",
-"MIDTANK_4_B",
-"MIDTANK_5_A",
-"MIDTANK_5_B",
-"MIDTANK_6_A",
-"MIDTANK_6_B",
-"MIDTANK_7_A",
-"MIDTANK_7_B",
-"MIDTANK_8_A",
-"MIDTANK_8_B",
-"WINDER_CALIBRATION",
-"EMBEDDED_VERSION",
-"EEPROM_ALARM_SUPPORT",
-"EEPROM_ORIFICE1_ZERO_VALUE",
-"EEPROM_ORIFICE3_ZERO_VALUE",
-"EEPROM_WASTE_TANK_ZERO_VALUE",
-"EEPROM_PULLER_TENSION_POSITION",
-"EEPROM_WINDER_TENSION_POSITION",
-"EEPROM_INIT_FAILURE_COUNTER",
-"DANCER_3",
-"DANCER_4",
-"EEPROM_PRESSURE_SENSOR_V0_0",
-"EEPROM_PRESSURE_SENSOR_V0_1",
-"EEPROM_DRIER_LOADING_ARM_ANGLE"};
-
-
-public void OnExecute(StubManager stubManager)
-{
- string FileName;
- StubReadEmbeddedVersionRequest stubReadEmbeddedVersionRequest = new StubReadEmbeddedVersionRequest();
- var response2 = stubManager.Run<StubReadEmbeddedVersionResponse>(stubReadEmbeddedVersionRequest);
-
- if ((response2.VerMajor>=1)&&(response2.VerMinor>=5)&&(response2.VerPatch>=2)&&(response2.VerBuild>=2))
- {
- MainCardStoredDataRequest mainCardStoredDataRequest = new MainCardStoredDataRequest();
- var response3 = stubManager.Run<MainCardStoredDataResponse>(mainCardStoredDataRequest);
- FileName = "C:/temp/mainEEProm"/*+stubManager.ConnectedMachine.SerialNumber*/+".json";
- stubManager.AppendToFile(FileName, "MainCardStoredData: "+ response3);
- }
- else
- {
- FileName = "C:/temp/mainEEProm"/*+stubManager.ConnectedMachine.SerialNumber*/+".csv";
- stubManager.AppendToFile(FileName, "Address,Name,Data");
- for (int i = 1; i < 36; i++)
- {
- StubMainCardEEpromReadRequest stubMainCardEEpromReadRequest = new StubMainCardEEpromReadRequest();
- stubMainCardEEpromReadRequest.Address = i;
- stubMainCardEEpromReadRequest.Data = 0;
-
- var response = stubManager.Run<StubMainCardEEpromReadResponse>(stubMainCardEEpromReadRequest);
- stubManager.AppendToFile(FileName, "\r\n"+response.Address + "," + Main_Card_EEpromAddress[i] +"," + response.Data);
- }
- }
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/read eeprom advanced.cs b/Software/Stubs Collection/stubs/read eeprom advanced.cs
deleted file mode 100644
index cf0cb7278..000000000
--- a/Software/Stubs Collection/stubs/read eeprom advanced.cs
+++ /dev/null
@@ -1,84 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.PMR.EmbeddedParameters;
-using Tango.Stubs;
-using System.IO;
-using Tango.PMR.IO;
-using Google.Protobuf;
-
-string[] Main_Card_EEpromAddress = {
-"DATA_SIZE",
-"DANCER_0",
-"DANCER_1",
-"DANCER_2",
-"DRYER_CENTER",
-"DRYER_CYCLES",
-"MIDTANK_1_A",
-"MIDTANK_1_B",
-"MIDTANK_2_A",
-"MIDTANK_2_B",
-"MIDTANK_3_A",
-"MIDTANK_3_B",
-"MIDTANK_4_A",
-"MIDTANK_4_B",
-"MIDTANK_5_A",
-"MIDTANK_5_B",
-"MIDTANK_6_A",
-"MIDTANK_6_B",
-"MIDTANK_7_A",
-"MIDTANK_7_B",
-"MIDTANK_8_A",
-"MIDTANK_8_B",
-"WINDER_CALIBRATION",
-"EMBEDDED_VERSION",
-"EEPROM_ALARM_SUPPORT",
-"EEPROM_ORIFICE1_ZERO_VALUE",
-"EEPROM_ORIFICE3_ZERO_VALUE",
-"EEPROM_WASTE_TANK_ZERO_VALUE",
-"EEPROM_PULLER_TENSION_POSITION",
-"EEPROM_WINDER_TENSION_POSITION",
-"EEPROM_INIT_FAILURE_COUNTER",
-"DANCER_3",
-"DANCER_4",
-"EEPROM_PRESSURE_SENSOR_V0_0",
-"EEPROM_PRESSURE_SENSOR_V0_1",
-"EEPROM_DRIER_LOADING_ARM_ANGLE"};
-
-
-public void OnExecute(StubManager stubManager)
-{
- string FileName;
- StubReadEmbeddedVersionRequest stubReadEmbeddedVersionRequest = new StubReadEmbeddedVersionRequest();
- var response2 = stubManager.Run<StubReadEmbeddedVersionResponse>(stubReadEmbeddedVersionRequest);
-
- if ((response2.VerMajor>=1)&&(response2.VerMinor>=5)&&(response2.VerPatch>=2)&&(response2.VerBuild>=2))
- {
- MainCardStoredDataRequest mainCardStoredDataRequest = new MainCardStoredDataRequest();
- var response3 = stubManager.Run<MainCardStoredDataResponse>(mainCardStoredDataRequest);
- FileName = "C:/temp/mainEEProm"/*+stubManager.ConnectedMachine.SerialNumber*/+".json";
- stubManager.AppendToFile(FileName, "MainCardStoredData: "+ response3);
- }
- else
- {
- FileName = "C:/temp/mainEEProm"/*+stubManager.ConnectedMachine.SerialNumber*/+".csv";
- stubManager.AppendToFile(FileName, "Address,Name,Data");
- for (int i = 1; i < 36; i++)
- {
- StubMainCardEEpromReadRequest stubMainCardEEpromReadRequest = new StubMainCardEEpromReadRequest();
- stubMainCardEEpromReadRequest.Address = i;
- stubMainCardEEpromReadRequest.Data = 0;
-
- var response = stubManager.Run<StubMainCardEEpromReadResponse>(stubMainCardEEpromReadRequest);
- stubManager.AppendToFile(FileName, "\r\n"+response.Address + "," + Main_Card_EEpromAddress[i] +"," + response.Data);
- }
- }
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/read embedded version.cs b/Software/Stubs Collection/stubs/read embedded version.cs
index 8990fc2cd..27424c029 100644
--- a/Software/Stubs Collection/stubs/read embedded version.cs
+++ b/Software/Stubs Collection/stubs/read embedded version.cs
@@ -8,7 +8,7 @@ using System.Threading;
using System.Threading.Tasks;
using System.Collections.Generic;
using Tango.PMR.Stubs;
-using Tango.Stubs;
+using Tango.Stubs.UI;
public void OnExecute(StubManager stubManager)
{
diff --git a/Software/Stubs Collection/stubs/read main card eeprom.cs b/Software/Stubs Collection/stubs/read main card eeprom.cs
deleted file mode 100644
index 3ba77a86b..000000000
--- a/Software/Stubs Collection/stubs/read main card eeprom.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-
-
- for (int i = 0; i < 30; i++)
- {
- StubMainCardEEpromReadRequest stubMainCardEEpromReadRequest = new StubMainCardEEpromReadRequest();
- stubMainCardEEpromReadRequest.Address = i;
- stubMainCardEEpromReadRequest.Data = 0;
-
- var response = stubManager.Run<StubMainCardEEpromReadResponse>(stubMainCardEEpromReadRequest);
- }
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/reload main card EEPROM.cs b/Software/Stubs Collection/stubs/reload main card EEPROM.cs
deleted file mode 100644
index 3ddaf6c40..000000000
--- a/Software/Stubs Collection/stubs/reload main card EEPROM.cs
+++ /dev/null
@@ -1,101 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.PMR.EmbeddedParameters;
-using Tango.Stubs;
-using System.IO;
-using Tango.PMR.IO;
-using Google.Protobuf;
-
-string[] Main_Card_EEpromAddress = {
-"DATA_SIZE",
-"DANCER_0",
-"DANCER_1",
-"DANCER_2",
-"DRYER_CENTER",
-"DRYER_CYCLES",
-"MIDTANK_1_A",
-"MIDTANK_1_B",
-"MIDTANK_2_A",
-"MIDTANK_2_B",
-"MIDTANK_3_A",
-"MIDTANK_3_B",
-"MIDTANK_4_A",
-"MIDTANK_4_B",
-"MIDTANK_5_A",
-"MIDTANK_5_B",
-"MIDTANK_6_A",
-"MIDTANK_6_B",
-"MIDTANK_7_A",
-"MIDTANK_7_B",
-"MIDTANK_8_A",
-"MIDTANK_8_B",
-"WINDER_CALIBRATION",
-"EMBEDDED_VERSION",
-"EEPROM_ALARM_SUPPORT",
-"EEPROM_ORIFICE1_ZERO_VALUE",
-"EEPROM_ORIFICE3_ZERO_VALUE",
-"EEPROM_WASTE_TANK_ZERO_VALUE",
-"EEPROM_PULLER_TENSION_POSITION",
-"EEPROM_WINDER_TENSION_POSITION",
-"EEPROM_INIT_FAILURE_COUNTER",
-"DANCER_3",
-"DANCER_4",
-"EEPROM_PRESSURE_SENSOR_V0_0",
-"EEPROM_PRESSURE_SENSOR_V0_1",
-"EEPROM_DRIER_LOADING_ARM_ANGLE"};
-
-
-public void OnExecute(StubManager stubManager)
-{
- string filename = "c:\\temp\\mainEEProm10104.csv";//stubManager.ShowResponseWindow("Please Enter FileName");
- string line;
- string[] Table1 = new string [4] ;
- int i;
-
- // Read the file and display it line by line.
-
- stubManager.Write("\r\nfile name " + filename);
- System.IO.StreamReader file = new System.IO.StreamReader(filename);
-
- line = file.ReadLine();
- stubManager.Write("\r\n line " + line);
- line = file.ReadLine();
- stubManager.Write("\r\n line " + line);
- int j=0;
- while(line != null)
- {
- j++;
- //stubManager.Write("\r\n line " + line + " null? " + (line==null));
- string[] words = line.Split(',');
- i=0;
- foreach (var word in words)
- {
- Table1[i]=word;
- i=i+1;
- }
- //stubManager.Write("\r\nfile read\t"+ (i) + " " + Table1[1] + " "+ Table1[2] + " "+ Table1[3] + " ");
- int Address = Convert.ToInt32(Table1[0]);
- int Data = Convert.ToInt32(Table1[2]);
- string name = Table1[1];
- //stubManager.Write("\r\nfile read\t"+ (i) + " " + j + " "+ Table1[2] + " "+ Data + " ");
- if (Address>0)
- {
- StubMainCardEEpromWriteRequest stubMainCardEEpromWriteRequest = new StubMainCardEEpromWriteRequest();
- stubMainCardEEpromWriteRequest.Address = j;
- stubMainCardEEpromWriteRequest.Data = Data;
-
- var response = stubManager.Run<StubMainCardEEpromWriteResponse>(stubMainCardEEpromWriteRequest);
- stubManager.Write("\r\nMain_Card_Data write \t"+ j + " " +Table1[1] + " address \t "+ j+" data: \t" + Data);
- }
- line = file.ReadLine();
- }
- stubManager.Write("\r\n last line " + line + "null? " + (line==null));
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/set test VAC.cs b/Software/Stubs Collection/stubs/set test VAC.cs
deleted file mode 100644
index b3f0ff27f..000000000
--- a/Software/Stubs Collection/stubs/set test VAC.cs
+++ /dev/null
@@ -1,23 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-
-
-ProgressRequest progressRequest = new ProgressRequest();
-progressRequest.Amount = 0xB6;
-progressRequest.Delay = 160;
-
- var response = stubManager.Run<ProgressResponse>(progressRequest);
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/stop whs blower control.cs b/Software/Stubs Collection/stubs/stop whs blower control.cs
deleted file mode 100644
index b2bfbe23e..000000000
--- a/Software/Stubs Collection/stubs/stop whs blower control.cs
+++ /dev/null
@@ -1,23 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-
-
-ProgressRequest progressRequest = new ProgressRequest();
-progressRequest.Amount = 0x3e8;
-progressRequest.Delay = 100;
-
- var response = stubManager.Run<ProgressResponse>(progressRequest);
-
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/technician view files/ARC head techboard.tpf b/Software/Stubs Collection/stubs/technician view files/ARC head techboard.tpf
deleted file mode 100644
index 902c1d414..000000000
--- a/Software/Stubs Collection/stubs/technician view files/ARC head techboard.tpf
+++ /dev/null
@@ -1,2722 +0,0 @@
-<?xml version="1.0"?>
-<MachineTechViewProject xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <Items />
- <Tabs>
- <MachineTechViewProjectTab>
- <Name>Temperatures</Name>
- <Items>
- <TechItem xsi:type="DigitalOutItem">
- <ID>e4892498-fa1a-413c-9dd8-633efaade51c</ID>
- <Left>461</Left>
- <Top>703.30530973452176</Top>
- <Width>160</Width>
- <Height>102.34070796460173</Height>
- <Angle>0</Angle>
- <ItemGuid>6b9cba1d-4acf-4992-97ad-e422bca6ada2</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>a15665e3-af39-42d8-8c06-97d770632e10</ID>
- <Left>1015</Left>
- <Top>597.31415929203365</Top>
- <Width>207</Width>
- <Height>184.4159292035398</Height>
- <Angle>0</Angle>
- <ItemGuid>6D6CFA18-5922-4AFE-84B3-2721CE128681</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>DryerAirHeater</HeaterType>
- <SetPoint>180</SetPoint>
- <CurrentValue>180.04999999999998</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>180</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>0ac64716-d30c-489b-939e-a26d06445866</ID>
- <Left>909</Left>
- <Top>676.91592920354287</Top>
- <Width>130</Width>
- <Height>100.31415929203541</Height>
- <Angle>0</Angle>
- <ItemGuid>A5DFC2DB-3B36-4377-96A0-D492CE785C00</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>DryerMainHeater</HeaterType>
- <SetPoint>36</SetPoint>
- <CurrentValue>195.07</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>36</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>181796d8-64f6-420a-8f37-9af9df67d6a9</ID>
- <Left>776</Left>
- <Top>676.15044247787159</Top>
- <Width>127</Width>
- <Height>101.3274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>86808B48-B7F9-43AD-840E-2A6A5987C305</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>DryerSecondaryHeater</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>196.38</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>fd2bb3a3-a411-470d-bde7-0beaf84da059</ID>
- <Left>848</Left>
- <Top>115.38495575221202</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>8E764A14-0F84-4FEC-928B-32A2509CAD57</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone3</HeaterType>
- <SetPoint>85</SetPoint>
- <CurrentValue>85.02</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>85</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>7e8dd386-cca6-4d07-8a3e-af5403756002</ID>
- <Left>1024</Left>
- <Top>116.35840707964502</Top>
- <Width>200</Width>
- <Height>194.90707964601751</Height>
- <Angle>0</Angle>
- <ItemGuid>B4EE8CC0-EE2B-4ABE-BF09-9226860E756B</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone2</HeaterType>
- <SetPoint>80</SetPoint>
- <CurrentValue>80.52</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>80</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>32a91e5f-27c8-490d-b187-8e39b6626a13</ID>
- <Left>1221</Left>
- <Top>116.60619469026824</Top>
- <Width>170</Width>
- <Height>192.69026548672593</Height>
- <Angle>0</Angle>
- <ItemGuid>27E7BB74-81C3-4EF2-80AE-962F111C441F</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone1</HeaterType>
- <SetPoint>80</SetPoint>
- <CurrentValue>80.19</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>80</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>c844235a-8a29-4c2e-a964-e8f546d2ced7</ID>
- <Left>1212</Left>
- <Top>599.55752212389427</Top>
- <Width>173</Width>
- <Height>183.40265486725662</Height>
- <Angle>0</Angle>
- <ItemGuid>42A62A48-F1D5-4BB6-AFEA-6A7DF6DCF626</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>MixerHeater</HeaterType>
- <SetPoint>80</SetPoint>
- <CurrentValue>79.08</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>80</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>e6b3eb18-482b-450e-b8a8-d2ac6bba4fd4</ID>
- <Left>1033</Left>
- <Top>341.74778761061987</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>D6771DF4-771E-4D62-B6BA-BDE361C0A0F3</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone5</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>1.22</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>f9936dba-cef8-41e3-a715-eb629dca1870</ID>
- <Left>327</Left>
- <Top>682.06637168140855</Top>
- <Width>131</Width>
- <Height>109.43362831858394</Height>
- <Angle>0</Angle>
- <ItemGuid>1778C1A7-AFB5-42F9-9E00-E80D30D9FC0A</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>5f2610dc-3b9d-4302-b8f5-77a5e1c73b8c</ID>
- <Left>1027.9999999999973</Left>
- <Top>291.07079646017547</Top>
- <Width>44</Width>
- <Height>42.557522123893705</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text />
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>eadb5257-47a2-4336-a72a-f2d157fe70cb</ID>
- <Left>907.99999999999909</Left>
- <Top>295.35840707964616</Top>
- <Width>44</Width>
- <Height>42.557522123893705</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text />
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>6c59af66-169a-46e0-89ae-a81e3e619043</ID>
- <Left>785.00000000000159</Left>
- <Top>288.5000000000004</Top>
- <Width>44</Width>
- <Height>42.557522123893705</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text />
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>3b32b9a8-f300-443f-950e-c49f81678bac</ID>
- <Left>624.99999999999966</Left>
- <Top>285.86725663716874</Top>
- <Width>44</Width>
- <Height>42.557522123893705</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text />
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>f6d44793-ed44-46ed-8854-eacbc11af10c</ID>
- <Left>624</Left>
- <Top>697.74778761062794</Top>
- <Width>155</Width>
- <Height>96.261061946902714</Height>
- <Angle>0</Angle>
- <ItemGuid>df38139e-0026-46bc-b72f-df5f9eec80f7</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MonitorRecorderItem">
- <ID>43793f93-da64-4409-b583-bca498f641e6</ID>
- <Left>345.00000000002086</Left>
- <Top>136.75221238937925</Top>
- <Width>203</Width>
- <Height>107.40707964601774</Height>
- <Angle>0</Angle>
- <ColorNumber>-1</ColorNumber>
- <SelectedMonitorsGuids>
- <string>D023F15D-3555-48E9-A9E9-5DF99F60D791</string>
- <string>94F3E5A1-413E-4EA0-BDE1-F0625BFF7910</string>
- <string>AFB7B6F7-8FFB-4A7F-B814-04F0C163CAA1</string>
- <string>C8AB34C4-F921-4329-817A-7698DDAD01C6</string>
- <string>48E8DD1B-46EC-4576-B513-7E734503B6DA</string>
- <string>A8DB1D27-6B25-4FB4-A3F5-46A29BA51955</string>
- <string>D7585119-4A42-4370-8F1E-F3E62553E588</string>
- <string>098F7CAB-030C-46B0-B2B8-A85AF2253032</string>
- </SelectedMonitorsGuids>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>be9db1fd-d408-4f1c-a15a-d6ffe58fafb6</ID>
- <Left>1225</Left>
- <Top>341.14159292034878</Top>
- <Width>175</Width>
- <Height>193.42920353982305</Height>
- <Angle>0</Angle>
- <ItemGuid>188285E5-1493-4BED-8269-91743770A631</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone7</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>1.17</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>f129ea0d-9abb-437f-928e-1cd1f569db2a</ID>
- <Left>1190.0000000000025</Left>
- <Top>294.69026548672929</Top>
- <Width>39</Width>
- <Height>38.504424778760836</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text />
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>217c677a-3e11-4a7c-959b-616dae1259dd</ID>
- <Left>1369</Left>
- <Top>295.87168141592934</Top>
- <Width>44</Width>
- <Height>42.557522123893705</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text />
- </TechItem>
- <TechItem xsi:type="ProcessParametersItem">
- <ID>21aa11c9-3d35-4902-901a-b9ed45117e09</ID>
- <Left>653</Left>
- <Top>860.82743362831877</Top>
- <Width>382</Width>
- <Height>223.93362831858394</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <ProcessParameters>
- <ID>0</ID>
- <Guid>811430c0-2afc-4e9b-8077-a74e1fd2f825</Guid>
- <LastUpdated>2020-01-14T11:41:02.8729031Z</LastUpdated>
- <Name>Process parameters 3</Name>
- <DyeingSpeed>0</DyeingSpeed>
- <MinInkUptake>0</MinInkUptake>
- <MaxInkUptake>0</MaxInkUptake>
- <FeederTension>0</FeederTension>
- <PullerTension>0</PullerTension>
- <WinderTension>0</WinderTension>
- <MixerTemp>0</MixerTemp>
- <HeadZone1Temp>0</HeadZone1Temp>
- <HeadZone2Temp>100</HeadZone2Temp>
- <HeadZone3Temp>0</HeadZone3Temp>
- <HeadZone4Temp>0</HeadZone4Temp>
- <HeadZone5Temp>0</HeadZone5Temp>
- <HeadZone6Temp>0</HeadZone6Temp>
- <DryerAirFlow>0</DryerAirFlow>
- <DryerZone1Temp>0</DryerZone1Temp>
- <DryerZone2Temp>0</DryerZone2Temp>
- <DryerZone3Temp>0</DryerZone3Temp>
- <DryerBufferLength>0</DryerBufferLength>
- <HeadAirFlow>0</HeadAirFlow>
- <TableIndex>0</TableIndex>
- <HeadZone7Temp>0</HeadZone7Temp>
- <HeadZone8Temp>0</HeadZone8Temp>
- <HeadZone9Temp>0</HeadZone9Temp>
- <HeadZone10Temp>0</HeadZone10Temp>
- <HeadZone11Temp>0</HeadZone11Temp>
- <HeadZone12Temp>0</HeadZone12Temp>
- <RBlowerFlow>0</RBlowerFlow>
- <RBlowerTemp>0</RBlowerTemp>
- <LBlowerFlow>0</LBlowerFlow>
- <LBlowerTemp>0</LBlowerTemp>
- <PressureBuildUp>0</PressureBuildUp>
- </ProcessParameters>
- <ParametersIndices>
- <ParameterIndex>
- <Name>Name</Name>
- <Index>0</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dyeing Speed</Name>
- <Index>1</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Min Ink Uptake</Name>
- <Index>2</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Max Ink Uptake</Name>
- <Index>3</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Feeder Tension</Name>
- <Index>4</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Puller Tension</Name>
- <Index>5</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Winder Tension</Name>
- <Index>6</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Mixer Temp</Name>
- <Index>7</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 1 Temp</Name>
- <Index>8</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 2 Temp</Name>
- <Index>9</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 3 Temp</Name>
- <Index>10</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 4 Temp</Name>
- <Index>11</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 5 Temp</Name>
- <Index>12</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 6 Temp</Name>
- <Index>13</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Air Flow</Name>
- <Index>14</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Zone 1 Temp</Name>
- <Index>15</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Zone 2 Temp</Name>
- <Index>16</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Zone 3 Temp</Name>
- <Index>17</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Buffer Length</Name>
- <Index>18</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Air Flow</Name>
- <Index>19</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Process Parameters Tables Group Guid</Name>
- <Index>20</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Table Index</Name>
- <Index>21</Index>
- </ParameterIndex>
- </ParametersIndices>
- </TechItem>
- <TechItem xsi:type="DancerItem">
- <ID>d3f502ea-76dd-48c3-b401-7f5fb7925a72</ID>
- <Left>283</Left>
- <Top>565.19469026548632</Top>
- <Width>93</Width>
- <Height>82.774336283185448</Height>
- <Angle>0</Angle>
- <ItemGuid>3EEE3B24-55DD-49F2-9339-F83F883BB908</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>e502555c-95b0-4688-b5e3-8becb30fc62c</ID>
- <Left>1382.875</Left>
- <Top>116.79102777534303</Top>
- <Width>212</Width>
- <Height>190.06194690265767</Height>
- <Angle>0</Angle>
- <ItemGuid>F8C1BA7F-F6DF-414D-BAF5-D4CB292F91F6</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeadCoverHeater1</HeaterType>
- <SetPoint>250</SetPoint>
- <CurrentValue>250</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>250</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>0f7a35fc-e363-45b2-948d-ba66f91e4f0d</ID>
- <Left>1401.8333333333333</Left>
- <Top>342.54486112328044</Top>
- <Width>187</Width>
- <Height>189.87168141593145</Height>
- <Angle>0</Angle>
- <ItemGuid>F39B952A-6194-4055-A5CB-A3421BFE0F9B</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeadCoverHeater2</HeaterType>
- <SetPoint>250</SetPoint>
- <CurrentValue>250.04999999999998</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>250</SetPoint>
- </TechItem>
- <TechItem xsi:type="ProcessParametersItem">
- <ID>379cc480-084f-4349-bb87-2c18b3c839e4</ID>
- <Left>17</Left>
- <Top>26.340707964601791</Top>
- <Width>255</Width>
- <Height>317.65929203539906</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <ProcessParameters>
- <ID>0</ID>
- <Guid>77e783e1-c5bb-4eac-8768-c9a28fc69c97</Guid>
- <LastUpdated>2020-03-04T15:02:12.3146789Z</LastUpdated>
- <Name>Process parameters 4</Name>
- <DyeingSpeed>50</DyeingSpeed>
- <MinInkUptake>0</MinInkUptake>
- <MaxInkUptake>0</MaxInkUptake>
- <FeederTension>9</FeederTension>
- <PullerTension>0</PullerTension>
- <WinderTension>0</WinderTension>
- <MixerTemp>80</MixerTemp>
- <HeadZone1Temp>80</HeadZone1Temp>
- <HeadZone2Temp>80</HeadZone2Temp>
- <HeadZone3Temp>90</HeadZone3Temp>
- <HeadZone4Temp>100</HeadZone4Temp>
- <HeadZone5Temp>110</HeadZone5Temp>
- <HeadZone6Temp>120</HeadZone6Temp>
- <DryerAirFlow>6</DryerAirFlow>
- <DryerZone1Temp>180</DryerZone1Temp>
- <DryerZone2Temp>0</DryerZone2Temp>
- <DryerZone3Temp>0</DryerZone3Temp>
- <DryerBufferLength>30</DryerBufferLength>
- <HeadAirFlow>6</HeadAirFlow>
- <TableIndex>0</TableIndex>
- <HeadZone7Temp>135</HeadZone7Temp>
- <HeadZone8Temp>135</HeadZone8Temp>
- <HeadZone9Temp>135</HeadZone9Temp>
- <HeadZone10Temp>135</HeadZone10Temp>
- <HeadZone11Temp>140</HeadZone11Temp>
- <HeadZone12Temp>140</HeadZone12Temp>
- <RBlowerFlow>120</RBlowerFlow>
- <RBlowerTemp>169</RBlowerTemp>
- <LBlowerFlow>110</LBlowerFlow>
- <LBlowerTemp>169</LBlowerTemp>
- <PressureBuildUp>0</PressureBuildUp>
- </ProcessParameters>
- <ParametersIndices>
- <ParameterIndex>
- <Name>Process Parameters Tables Group Guid</Name>
- <Index>0</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Name</Name>
- <Index>1</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Table Index</Name>
- <Index>2</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dyeing Speed</Name>
- <Index>3</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Min Ink Uptake</Name>
- <Index>4</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Max Ink Uptake</Name>
- <Index>5</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Feeder Tension</Name>
- <Index>6</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Puller Tension</Name>
- <Index>7</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Winder Tension</Name>
- <Index>8</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Mixer Temp</Name>
- <Index>9</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 1 Temp</Name>
- <Index>10</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 2 Temp</Name>
- <Index>11</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 3 Temp</Name>
- <Index>12</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 4 Temp</Name>
- <Index>13</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 5 Temp</Name>
- <Index>14</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 6 Temp</Name>
- <Index>15</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 7 Temp</Name>
- <Index>16</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 8 Temp</Name>
- <Index>17</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 9 Temp</Name>
- <Index>18</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 10 Temp</Name>
- <Index>19</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 11 Temp</Name>
- <Index>20</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 12 Temp</Name>
- <Index>21</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>R Blower Flow</Name>
- <Index>22</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>R Blower Temp</Name>
- <Index>23</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>L Blower Flow</Name>
- <Index>24</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>L Blower Temp</Name>
- <Index>25</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Zone 1 Temp</Name>
- <Index>26</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Zone 2 Temp</Name>
- <Index>27</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Zone 3 Temp</Name>
- <Index>28</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Air Flow</Name>
- <Index>29</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Air Flow</Name>
- <Index>30</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Buffer Length</Name>
- <Index>31</Index>
- </ParameterIndex>
- </ParametersIndices>
- </TechItem>
- <TechItem xsi:type="ProcessParametersItem">
- <ID>9b9fde94-ce8c-4401-8961-9d1d44ae2bcf</ID>
- <Left>24</Left>
- <Top>364.40265486725747</Top>
- <Width>250</Width>
- <Height>310.15486725663669</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <ProcessParameters>
- <ID>0</ID>
- <Guid>e7434743-ec18-4ae3-91a9-e25db760963d</Guid>
- <LastUpdated>2020-03-04T15:03:44.3914568Z</LastUpdated>
- <Name>Process parameters 5</Name>
- <DyeingSpeed>0</DyeingSpeed>
- <MinInkUptake>0</MinInkUptake>
- <MaxInkUptake>0</MaxInkUptake>
- <FeederTension>0</FeederTension>
- <PullerTension>0</PullerTension>
- <WinderTension>0</WinderTension>
- <MixerTemp>0</MixerTemp>
- <HeadZone1Temp>0</HeadZone1Temp>
- <HeadZone2Temp>0</HeadZone2Temp>
- <HeadZone3Temp>0</HeadZone3Temp>
- <HeadZone4Temp>0</HeadZone4Temp>
- <HeadZone5Temp>0</HeadZone5Temp>
- <HeadZone6Temp>0</HeadZone6Temp>
- <DryerAirFlow>5</DryerAirFlow>
- <DryerZone1Temp>180</DryerZone1Temp>
- <DryerZone2Temp>0</DryerZone2Temp>
- <DryerZone3Temp>0</DryerZone3Temp>
- <DryerBufferLength>0</DryerBufferLength>
- <HeadAirFlow>5</HeadAirFlow>
- <TableIndex>0</TableIndex>
- <HeadZone7Temp>0</HeadZone7Temp>
- <HeadZone8Temp>0</HeadZone8Temp>
- <HeadZone9Temp>0</HeadZone9Temp>
- <HeadZone10Temp>0</HeadZone10Temp>
- <HeadZone11Temp>0</HeadZone11Temp>
- <HeadZone12Temp>0</HeadZone12Temp>
- <RBlowerFlow>120</RBlowerFlow>
- <RBlowerTemp>0</RBlowerTemp>
- <LBlowerFlow>120</LBlowerFlow>
- <LBlowerTemp>0</LBlowerTemp>
- <PressureBuildUp>0</PressureBuildUp>
- </ProcessParameters>
- <ParametersIndices>
- <ParameterIndex>
- <Name>Process Parameters Tables Group Guid</Name>
- <Index>0</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Name</Name>
- <Index>1</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Table Index</Name>
- <Index>2</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dyeing Speed</Name>
- <Index>3</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Min Ink Uptake</Name>
- <Index>4</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Max Ink Uptake</Name>
- <Index>5</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Feeder Tension</Name>
- <Index>6</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Puller Tension</Name>
- <Index>7</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Winder Tension</Name>
- <Index>8</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Mixer Temp</Name>
- <Index>9</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 1 Temp</Name>
- <Index>10</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 2 Temp</Name>
- <Index>11</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 3 Temp</Name>
- <Index>12</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 4 Temp</Name>
- <Index>13</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 5 Temp</Name>
- <Index>14</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 6 Temp</Name>
- <Index>15</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 7 Temp</Name>
- <Index>16</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 8 Temp</Name>
- <Index>17</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 9 Temp</Name>
- <Index>18</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 10 Temp</Name>
- <Index>19</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 11 Temp</Name>
- <Index>20</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 12 Temp</Name>
- <Index>21</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>R Blower Flow</Name>
- <Index>22</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>R Blower Temp</Name>
- <Index>23</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>L Blower Flow</Name>
- <Index>24</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>L Blower Temp</Name>
- <Index>25</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Zone 1 Temp</Name>
- <Index>26</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Zone 2 Temp</Name>
- <Index>27</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Zone 3 Temp</Name>
- <Index>28</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Air Flow</Name>
- <Index>29</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Air Flow</Name>
- <Index>30</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Buffer Length</Name>
- <Index>31</Index>
- </ParameterIndex>
- </ParametersIndices>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>82576c3f-1790-4074-97a3-65a12bd812c1</ID>
- <Left>448</Left>
- <Top>562.51327433628489</Top>
- <Width>131</Width>
- <Height>109.43362831858394</Height>
- <Angle>0</Angle>
- <ItemGuid>94F3E5A1-413E-4EA0-BDE1-F0625BFF7910</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>8a68cdf4-136b-4db4-bc4e-b3157790be6a</ID>
- <Left>596</Left>
- <Top>565.796460176992</Top>
- <Width>131</Width>
- <Height>109.43362831858394</Height>
- <Angle>0</Angle>
- <ItemGuid>FE0D0A56-5795-4C5A-8E09-939FBB35C441</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>a842a172-2661-4190-961d-af98e9eb63e5</ID>
- <Left>554</Left>
- <Top>9.1150442477876368</Top>
- <Width>167</Width>
- <Height>69.9159292035398</Height>
- <Angle>0</Angle>
- <ItemGuid>D59EFB38-79D9-446C-BCB5-92D8FDA900E4</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>8979f624-9190-4eaf-9157-0a74be19c198</ID>
- <Left>750</Left>
- <Top>8.1017699115044479</Top>
- <Width>161</Width>
- <Height>62.823008849557539</Height>
- <Angle>0</Angle>
- <ItemGuid>9F98B9D3-F989-4D03-90E8-721671835E0B</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>c2e5796d-c2cb-495c-becb-a52993a5729f</ID>
- <Left>346</Left>
- <Top>6.07522123893807</Top>
- <Width>181</Width>
- <Height>68.902654867256615</Height>
- <Angle>0</Angle>
- <ItemGuid>1778C1A7-AFB5-42F9-9E00-E80D30D9FC02</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>65283da8-5813-4769-a803-43c97cacab10</ID>
- <Left>953</Left>
- <Top>19.769911504424272</Top>
- <Width>161</Width>
- <Height>62.823008849557539</Height>
- <Angle>0</Angle>
- <ItemGuid>055D0A38-09BD-490D-9852-12B06A4B22F2</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="BlowerItem">
- <ID>c667e35c-8a9d-4f6f-bd45-37bf90f05e2a</ID>
- <Left>77</Left>
- <Top>710.30088495575228</Top>
- <Width>227</Width>
- <Height>69.915929203539918</Height>
- <Angle>0</Angle>
- <ItemGuid>B6FE07F8-2435-495D-ABFE-358C76812413</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>b5524d9f-9c3a-4ef1-b9da-410335621cbb</ID>
- <Left>780</Left>
- <Top>346.53539823008856</Top>
- <Width>188</Width>
- <Height>74.982300884955748</Height>
- <Angle>0</Angle>
- <ItemGuid>0E3AB840-8B2C-4930-9208-E1EBB1F0134B</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>7ae4982d-57a1-4aef-a12e-bfd9507bee5f</ID>
- <Left>798</Left>
- <Top>446.84955752212392</Top>
- <Width>194</Width>
- <Height>81.061946902654824</Height>
- <Angle>0</Angle>
- <ItemGuid>A7064ADF-D57C-4F3C-ADBB-EE7606E2BD12</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>872b0d70-353a-4358-b47a-fa6a816cb3d7</ID>
- <Left>585</Left>
- <Top>344.50884955752218</Top>
- <Width>172</Width>
- <Height>86.128318584070826</Height>
- <Angle>0</Angle>
- <ItemGuid>A405F987-73B5-4B3C-93D5-C9F968BD1FF5</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>104fcafe-6135-4784-88ee-8cd3ca8732a2</ID>
- <Left>596</Left>
- <Top>450.90265486725667</Top>
- <Width>172</Width>
- <Height>72.955752212389314</Height>
- <Angle>0</Angle>
- <ItemGuid>20768F26-8D03-4660-8355-B29C595DFCB2</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="BlowerItem">
- <ID>1ef4079e-925c-41b6-a5b0-5710a7258526</ID>
- <Left>318</Left>
- <Top>344.50884955752218</Top>
- <Width>227</Width>
- <Height>69.915929203539918</Height>
- <Angle>0</Angle>
- <ItemGuid>998B5E61-3119-443D-ABAA-EFBC283B1021</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="BlowerItem">
- <ID>d0bc8dfb-339b-477f-93cd-53d23f50930e</ID>
- <Left>331</Left>
- <Top>457.99557522123888</Top>
- <Width>227</Width>
- <Height>69.915929203539918</Height>
- <Angle>0</Angle>
- <ItemGuid>080EB945-8E52-4876-9704-F9908FD26967</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- <MachineTechViewProjectTab>
- <Name>Thread</Name>
- <Items>
- <TechItem xsi:type="MonitorItem">
- <ID>50bae43f-8b1a-4279-9238-b976a0c72af3</ID>
- <Left>1530</Left>
- <Top>193.19911504424795</Top>
- <Width>169</Width>
- <Height>181.37610619469029</Height>
- <Angle>0</Angle>
- <ItemGuid>A8DB1D27-6B25-4FB4-A3F5-46A29BA51955</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>68eef943-2151-4df5-be61-044c3865606e</ID>
- <Left>1172</Left>
- <Top>145.78318584070678</Top>
- <Width>175</Width>
- <Height>167.827433628319</Height>
- <Angle>0</Angle>
- <ItemGuid>96B89605-F999-43FE-A1CD-2645BFB33A36</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>6be024c6-3d1b-4267-9b77-44473aba56b7</ID>
- <Left>988</Left>
- <Top>143.32300884955998</Top>
- <Width>190</Width>
- <Height>167.09734513274049</Height>
- <Angle>0</Angle>
- <ItemGuid>FC60060A-3736-4910-B41A-FF6DABDF0E9E</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>7c720f3b-00e1-49dd-92f9-fdd1e9686623</ID>
- <Left>817</Left>
- <Top>142.42035398230098</Top>
- <Width>169</Width>
- <Height>168.31858407079625</Height>
- <Angle>0</Angle>
- <ItemGuid>4CE6A82E-D841-4D33-BBB2-11F0743A441C</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>3ebd6759-521b-4ed1-a353-ee1ad7801f28</ID>
- <Left>922</Left>
- <Top>516.43362831858417</Top>
- <Width>439</Width>
- <Height>304.995575221239</Height>
- <Angle>0</Angle>
- <ItemGuid>D126DB23-784B-4F0C-8F88-D89A65A7549F</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>1</DecimalPlaces>
- <Duration>1460</Duration>
- <Min>0</Min>
- <Max>16384</Max>
- <UseAutoRange>true</UseAutoRange>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>984b4126-3dda-4624-a79f-0646eb0e1358</ID>
- <Left>465</Left>
- <Top>515.420353982301</Top>
- <Width>439</Width>
- <Height>304.995575221239</Height>
- <Angle>0</Angle>
- <ItemGuid>10102BC3-0EAE-47FF-A8E5-8640780CAA3D</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>1</DecimalPlaces>
- <Duration>1516</Duration>
- <Min>0</Min>
- <Max>16384</Max>
- <UseAutoRange>true</UseAutoRange>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>8ebc3ab7-a02d-4b12-93b3-2563443831d7</ID>
- <Left>15</Left>
- <Top>518.46017699115032</Top>
- <Width>439</Width>
- <Height>304.995575221239</Height>
- <Angle>0</Angle>
- <ItemGuid>C0BCCD5C-346B-4C4A-A080-39D28E9E1A0C</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>1</DecimalPlaces>
- <Duration>1398</Duration>
- <Min>0</Min>
- <Max>16384</Max>
- <UseAutoRange>true</UseAutoRange>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>acafb268-5e97-4277-8dc8-173250a9e3f8</ID>
- <Left>12</Left>
- <Top>13.849557522123973</Top>
- <Width>439</Width>
- <Height>304.995575221239</Height>
- <Angle>0</Angle>
- <ItemGuid>9FBC5460-BA59-486B-8D85-BD7D8A959F98</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>1</DecimalPlaces>
- <Duration>1273</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>be4cb8d9-b516-4604-a6a5-1638cbc50251</ID>
- <Left>860</Left>
- <Top>-24.18584070796669</Top>
- <Width>345</Width>
- <Height>169.21681415929209</Height>
- <Angle>0</Angle>
- <ItemGuid>4CE6A82E-D841-4D33-BBB2-11F0743A441C</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>1</DecimalPlaces>
- <Duration>514</Duration>
- <Min>0</Min>
- <Max>100000</Max>
- <UseAutoRange>true</UseAutoRange>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>75b99507-4eba-4b11-b52e-26732d4c5479</ID>
- <Left>19</Left>
- <Top>324.14159292035305</Top>
- <Width>429</Width>
- <Height>193.26548672566258</Height>
- <Angle>0</Angle>
- <ItemGuid>F1DF490B-0577-4FA7-ACA1-0EEF4F934E8F</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>4</DecimalPlaces>
- <Duration>1398</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>a30e48de-be76-4230-92d0-d27d6f37b940</ID>
- <Left>474</Left>
- <Top>320.03097345132551</Top>
- <Width>429</Width>
- <Height>193.26548672566258</Height>
- <Angle>0</Angle>
- <ItemGuid>5F12B974-2C9E-4DDD-9B20-733251A5D7E6</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>4</DecimalPlaces>
- <Duration>1398</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>5ac4b368-093a-4192-98d4-e9d24f229b13</ID>
- <Left>928</Left>
- <Top>321.64601769912122</Top>
- <Width>429</Width>
- <Height>193.26548672566258</Height>
- <Angle>0</Angle>
- <ItemGuid>84CF23C9-D20D-4C08-BE1D-80201FC43C06</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>4</DecimalPlaces>
- <Duration>1398</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- </TechItem>
- <TechItem xsi:type="MonitorRecorderItem">
- <ID>9c34dc69-cfaa-48b4-9d02-8f0d9bba79dd</ID>
- <Left>1303</Left>
- <Top>34.380530973454768</Top>
- <Width>176</Width>
- <Height>83.05309734512457</Height>
- <Angle>0</Angle>
- <ColorNumber>-1</ColorNumber>
- <SelectedMonitorsGuids>
- <string>89B7B89D-8050-4188-B568-35B1910CFB6F</string>
- <string>96B89605-F999-43FE-A1CD-2645BFB33A36</string>
- <string>84CF23C9-D20D-4C08-BE1D-80201FC43C06</string>
- <string>FC60060A-3736-4910-B41A-FF6DABDF0E9E</string>
- <string>5F12B974-2C9E-4DDD-9B20-733251A5D7E6</string>
- <string>9ADF7823-B293-4275-9999-F62474D246AA</string>
- <string>4CE6A82E-D841-4D33-BBB2-11F0743A441C</string>
- <string>F1DF490B-0577-4FA7-ACA1-0EEF4F934E8F</string>
- </SelectedMonitorsGuids>
- </TechItem>
- <TechItem xsi:type="ThreadMotionItem">
- <ID>51e66b20-f2a9-4f32-9e4e-ba06a0adccfc</ID>
- <Left>453</Left>
- <Top>19.247787610619469</Top>
- <Width>346</Width>
- <Height>195.56194690265488</Height>
- <Angle>0</Angle>
- <ColorNumber>-1</ColorNumber>
- <Speed>40</Speed>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- <MachineTechViewProjectTab>
- <Name>Dispensers</Name>
- <Items>
- <TechItem xsi:type="DispenserItem">
- <ID>dce78f33-c966-4848-8c6e-a4a01dbc7577</ID>
- <Left>1322.1428571428571</Left>
- <Top>214.15929203538531</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>2CC8E461-E91F-4D4C-A402-922477F06C87</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>20</Speed>
- <DisplayName>Dispenser 1</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>2d03fc19-0502-43e1-a3ff-4012a612112b</ID>
- <Left>1149</Left>
- <Top>218.48230088495342</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>C8D8FE90-0375-44A2-A6D1-E997789E065C</ItemGuid>
- <ColorNumber>-16724737</ColorNumber>
- <Speed>20</Speed>
- <DisplayName>Dispenser 2</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>81958374-3fa3-48b3-a554-5653fe1934b1</ID>
- <Left>959</Left>
- <Top>210.32743362830422</Top>
- <Width>156</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>08ED9044-CAD6-4492-94B2-C07206E0164B</ItemGuid>
- <ColorNumber>-65325</ColorNumber>
- <Speed>20</Speed>
- <DisplayName>Dispenser 3</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>8fead411-7198-4428-a364-e32f3035ed94</ID>
- <Left>775</Left>
- <Top>206.42920353980952</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>179F34BB-3252-4D3A-965C-E6EB43D6FE7C</ItemGuid>
- <ColorNumber>-524544</ColorNumber>
- <Speed>20</Speed>
- <DisplayName>Dispenser 4</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>31bfa89f-e64d-4a3b-8585-c4a1b2e5a139</ID>
- <Left>585</Left>
- <Top>208.47345132741418</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>716B35CF-46E0-47D5-AF85-5233D212568F</ItemGuid>
- <ColorNumber>-2108246</ColorNumber>
- <Speed>1000</Speed>
- <DisplayName>Dispenser 5</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>c2bff5f3-6dc9-4b07-87ba-9e3a5814804e</ID>
- <Left>372</Left>
- <Top>216.75221238937439</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>99528449-4D76-4874-AB95-522951560E01</ItemGuid>
- <ColorNumber>-263685</ColorNumber>
- <Speed>20</Speed>
- <DisplayName>Dispenser 6</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>071281a5-3569-4a62-8b68-7bea850a3c07</ID>
- <Left>217</Left>
- <Top>211.63716814158107</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>E8ED07E2-7C36-459C-B9E5-6A23A1E24F03</ItemGuid>
- <ColorNumber>-723724</ColorNumber>
- <Speed>20</Speed>
- <DisplayName>Dispenser 7</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>7b703b9a-a626-4ae5-8e31-fa1cfe5718f4</ID>
- <Left>45</Left>
- <Top>216.04867256635521</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>8A957565-4165-49F7-854D-D21F95FFBE1B</ItemGuid>
- <ColorNumber>-724238</ColorNumber>
- <Speed>13</Speed>
- <DisplayName>Dispenser 8</DisplayName>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>caca40a2-310c-452e-adcf-c28ee38f6bdc</ID>
- <Left>1305</Left>
- <Top>31.606194690259713</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid>
- <ColorNumber>-15856114</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>af52d36f-27a2-4a31-8ceb-9c43fedbed22</ID>
- <Left>1127</Left>
- <Top>32.535398230081626</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid>
- <ColorNumber>-15293470</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>d40eada8-d22a-4521-bd2a-d998ed93106f</ID>
- <Left>955</Left>
- <Top>32.61946902653176</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid>
- <ColorNumber>-1570857</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>b2d6364d-8b5c-43d2-8838-927c85b017b1</ID>
- <Left>774</Left>
- <Top>31.960176991142362</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid>
- <ColorNumber>-1379575</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>3980e685-73b3-4af1-9593-9235be147322</ID>
- <Left>596</Left>
- <Top>32.889380530964274</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid>
- <ColorNumber>-7763381</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>51465293-58d5-40a4-8302-81856f8b4f47</ID>
- <Left>424</Left>
- <Top>32.973451327414409</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>AF3FD56C-95BF-4DE1-8EDC-8426B0DB2A26</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>c2a8c5b2-891b-4f9f-862c-c1c294366c78</ID>
- <Left>252</Left>
- <Top>31.703539823006281</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>60DA9EA3-C8A6-4D41-8AD8-3EB1BAA79CC9</ItemGuid>
- <ColorNumber>-8391822</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>9618e441-8973-4e16-a90b-06ce5798bd29</ID>
- <Left>80</Left>
- <Top>31.787610619456416</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>EF66F95A-E166-4FA2-B1AF-D6F55621817A</ItemGuid>
- <ColorNumber>-2186185</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>bce8c8e8-a317-4991-9aa7-cd99a45d1509</ID>
- <Left>28.22352941176473</Left>
- <Top>682.03174474303751</Top>
- <Width>247</Width>
- <Height>122.24778761061873</Height>
- <Angle>0</Angle>
- <ItemGuid>66cc8510-db9c-4e13-9151-01e705ec04de</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>72a23702-31bb-4ab8-aee5-2a02bcb1270b</ID>
- <Left>235.16470588235291</Left>
- <Top>699.99460095802579</Top>
- <Width>200</Width>
- <Height>94.15929203539747</Height>
- <Angle>0</Angle>
- <ItemGuid>36ba0ba4-e41d-45ff-8f68-1699e00c7107</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="ControllerItem">
- <ID>2dd6ff17-e515-4d8f-814f-a9683f404a8e</ID>
- <Left>140</Left>
- <Top>867.73893805310092</Top>
- <Width>160</Width>
- <Height>85.49115044247776</Height>
- <Angle>0</Angle>
- <ItemGuid>78482AA4-3DF6-421F-944C-64328D3C3EF2</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <OptimalRangeMinimum>0</OptimalRangeMinimum>
- <OptimalRangeMaximum>70</OptimalRangeMaximum>
- <UpdateInterval>10</UpdateInterval>
- <IsSetToDefault>true</IsSetToDefault>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>06843009-1da0-4811-8e77-50576d0edcb1</ID>
- <Left>507</Left>
- <Top>792.77433628318749</Top>
- <Width>219</Width>
- <Height>125.75221238938025</Height>
- <Angle>0</Angle>
- <ItemGuid>0c5dc1e9-da17-4ff8-86aa-6b39fd796ba9</ItemGuid>
- <ColorNumber>-16777216</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>935dddd0-0c6f-4766-8173-f9118006a12b</ID>
- <Left>1303</Left>
- <Top>475.87168141593065</Top>
- <Width>160</Width>
- <Height>124.6504424778754</Height>
- <Angle>0</Angle>
- <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid>
- <ColorNumber>-15856114</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MultiGraphItem">
- <ID>97e39a59-dba8-4e42-a124-b37de9453baf</ID>
- <Left>370</Left>
- <Top>781.46902654866153</Top>
- <Width>710</Width>
- <Height>401.24778761063465</Height>
- <Angle>0</Angle>
- <ItemGuid>D023F15D-3555-48E9-A9E9-5DF99F60D791</ItemGuid>
- <ColorNumber>0</ColorNumber>
- <DecimalPlaces>2</DecimalPlaces>
- <Duration>1956</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>46bdfce3-1c69-45dd-bbe9-582d1ac1e6f2</ID>
- <Left>1128</Left>
- <Top>482.80530973451141</Top>
- <Width>140</Width>
- <Height>117.32300884955743</Height>
- <Angle>0</Angle>
- <ItemGuid>0FE216B2-A097-4F2C-B465-08593F2532B3</ItemGuid>
- <ColorNumber>-15293470</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>429154a5-9a16-4423-85ca-ee4bae9aec3c</ID>
- <Left>968</Left>
- <Top>481.35398230088504</Top>
- <Width>140</Width>
- <Height>117.32300884955743</Height>
- <Angle>0</Angle>
- <ItemGuid>3271FD82-46D3-4789-B612-564967826C75</ItemGuid>
- <ColorNumber>-1570857</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>0f6ab8e8-99a7-4468-bde8-690a63467688</ID>
- <Left>766</Left>
- <Top>476.07964601769811</Top>
- <Width>140</Width>
- <Height>117.32300884955743</Height>
- <Angle>0</Angle>
- <ItemGuid>FBB806E7-42FA-4BAA-BDA1-3B8B07913AAD</ItemGuid>
- <ColorNumber>-1379575</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>bc0ac903-9c1f-4580-8b9e-670a76350473</ID>
- <Left>586</Left>
- <Top>474.38938053097161</Top>
- <Width>140</Width>
- <Height>117.32300884955743</Height>
- <Angle>0</Angle>
- <ItemGuid>436A22BB-AF79-4CB2-8A7D-DD4D9E54A81E</ItemGuid>
- <ColorNumber>-7763381</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>f9c960b2-b93e-46d5-b892-30337c0b55af</ID>
- <Left>391</Left>
- <Top>474.87168141592781</Top>
- <Width>140</Width>
- <Height>117.32300884955743</Height>
- <Angle>0</Angle>
- <ItemGuid>89EA6CC8-5363-4BEC-A370-D906611087A7</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>5ac157ab-2d53-4307-bf0b-b069854701ac</ID>
- <Left>226</Left>
- <Top>471.66814159292005</Top>
- <Width>140</Width>
- <Height>117.32300884955743</Height>
- <Angle>0</Angle>
- <ItemGuid>D5EBE52B-E2DF-4C97-80B1-F111F6B15854</ItemGuid>
- <ColorNumber>-8391822</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>65a19d7e-c524-48a0-bd70-28b99b113dd1</ID>
- <Left>69</Left>
- <Top>473.97787610619389</Top>
- <Width>140</Width>
- <Height>117.32300884955743</Height>
- <Angle>0</Angle>
- <ItemGuid>FE521D1B-A0EA-4FEA-AE64-33998A6CE138</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>5bf7a681-ee47-477e-8b47-ba7a2eb6e115</ID>
- <Left>1130</Left>
- <Top>624.9557522123913</Top>
- <Width>144</Width>
- <Height>80.495575221237516</Height>
- <Angle>0</Angle>
- <ItemGuid>3174ADCF-5793-4B5A-A3C6-B96E146A903D</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>29b17a4b-fd4e-49cc-a3cd-418730176bf7</ID>
- <Left>969</Left>
- <Top>625.95575221239</Top>
- <Width>144</Width>
- <Height>80.495575221237516</Height>
- <Angle>0</Angle>
- <ItemGuid>AD50C358-5BAF-4A2F-8593-51A22C85B3D1</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>21a5429f-c3a2-4e3b-ae77-c5538f30130d</ID>
- <Left>775</Left>
- <Top>623.66814159292062</Top>
- <Width>144</Width>
- <Height>82.535398230087083</Height>
- <Angle>0</Angle>
- <ItemGuid>E2F0FC31-CE7E-416B-ACEA-8EB6CA9B850B</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>96a46b0c-37b1-4457-93fb-b3dc301c5743</ID>
- <Left>588</Left>
- <Top>625.06637168141322</Top>
- <Width>144</Width>
- <Height>80.495575221237516</Height>
- <Angle>0</Angle>
- <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C09F</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>d4ad8603-9929-415f-9990-1869fcff36e4</ID>
- <Left>1310</Left>
- <Top>628.69469026548632</Top>
- <Width>144</Width>
- <Height>80.495575221237516</Height>
- <Angle>0</Angle>
- <ItemGuid>84682E90-6926-42AA-BF8C-2CCCF5C26C97</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="ValveItem">
- <ID>25249d78-ee37-42a8-b5aa-96f60e97c3ea</ID>
- <Left>20.870588235294122</Left>
- <Top>784.26605504587133</Top>
- <Width>327</Width>
- <Height>108.53097345133028</Height>
- <Angle>0</Angle>
- <ItemGuid>8B1FCBC3-FEEA-4F87-B56F-CE5D28B7ACA4</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>fc1d62f7-d13b-4a7b-8f9f-c687c987c7a9</ID>
- <Left>1065</Left>
- <Top>788.41592920352355</Top>
- <Width>370</Width>
- <Height>362.10619469026585</Height>
- <Angle>0</Angle>
- <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>3</DecimalPlaces>
- <Duration>1426</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>cc99a514-1498-4b93-a4eb-4e0a2a2e9de6</ID>
- <Left>628</Left>
- <Top>765.4469026548752</Top>
- <Width>394</Width>
- <Height>372.88495575221242</Height>
- <Angle>0</Angle>
- <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>1</DecimalPlaces>
- <Duration>1282</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- </TechItem>
- <TechItem xsi:type="ValveItem">
- <ID>cdddd48e-422d-48f4-8397-5032c3705fdb</ID>
- <Left>1069</Left>
- <Top>698.04867256637226</Top>
- <Width>382</Width>
- <Height>136.79203539823016</Height>
- <Angle>0</Angle>
- <ItemGuid>7F9C5DE0-9E24-494D-841F-976DB440DBFD</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>ee6d4c5a-ca5b-4557-8012-dacf700cdc08</ID>
- <Left>231</Left>
- <Top>624.06637168142413</Top>
- <Width>144</Width>
- <Height>80.495575221237516</Height>
- <Angle>0</Angle>
- <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C010</ItemGuid>
- <ColorNumber>-8391822</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>20576bb2-202f-4170-9af5-f3c18b410112</ID>
- <Left>77</Left>
- <Top>624.46460176991513</Top>
- <Width>144</Width>
- <Height>80.495575221237516</Height>
- <Angle>0</Angle>
- <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C011</ItemGuid>
- <ColorNumber>-2186185</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- <MachineTechViewProjectTab>
- <Name>Thread insertion</Name>
- <Items>
- <TechItem xsi:type="MotorItem">
- <ID>443a977c-8e89-4a56-82e4-684bac7945c9</ID>
- <Left>25</Left>
- <Top>22.761061946902203</Top>
- <Width>247</Width>
- <Height>172.25663716814159</Height>
- <Angle>0</Angle>
- <ItemGuid>08d15ca1-d7d1-460f-8f37-42c37c287cd1</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>500</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>a821b716-cb7d-4951-84ee-e56955431099</ID>
- <Left>355</Left>
- <Top>20.592920353981697</Top>
- <Width>260</Width>
- <Height>153.00442477876106</Height>
- <Angle>0</Angle>
- <ItemGuid>b90a4e78-ebbf-44db-829b-949517d6400b</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>500</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>e36e321b-d48d-4199-a1ee-75ac18e9de1e</ID>
- <Left>694</Left>
- <Top>19.367256637167998</Top>
- <Width>217</Width>
- <Height>155.26106194690203</Height>
- <Angle>0</Angle>
- <ItemGuid>b7c1aea4-32c1-41cb-bca3-4aa665529b49</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>500</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>8790db03-4dfd-4d49-aec0-706babb55af9</ID>
- <Left>364</Left>
- <Top>222.16814159291846</Top>
- <Width>240</Width>
- <Height>172.30973451327589</Height>
- <Angle>0</Angle>
- <ItemGuid>2d3eaca5-4dfd-40d9-9d1f-aa4ae794eddc</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>500</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>69ebcb28-13d9-41b3-a9ef-b2be51584141</ID>
- <Left>29</Left>
- <Top>241.34955752210982</Top>
- <Width>263</Width>
- <Height>174.296460176989</Height>
- <Angle>0</Angle>
- <ItemGuid>c6099065-a735-4cc5-b575-c31a45bb9262</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>400</Speed>
- </TechItem>
- <TechItem xsi:type="ThreadMotionItem">
- <ID>4d562029-3fdf-40a4-a5a7-9a322253c912</ID>
- <Left>1168</Left>
- <Top>47.305309734517039</Top>
- <Width>304</Width>
- <Height>167.26548672566202</Height>
- <Angle>0</Angle>
- <ColorNumber>-1</ColorNumber>
- <Speed>50</Speed>
- </TechItem>
- <TechItem xsi:type="BreakSensorItem">
- <ID>92607e12-2dd6-41c9-8f89-f051f386b734</ID>
- <Left>1258</Left>
- <Top>277.55752212389069</Top>
- <Width>240</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>DCE08A06-6711-43AE-AB7C-EADD5AB70EE0</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>7b5b6896-f626-4e59-a5cf-2600e603c0f6</ID>
- <Left>695</Left>
- <Top>223.44247787610908</Top>
- <Width>228</Width>
- <Height>175.0353982300901</Height>
- <Angle>0</Angle>
- <ItemGuid>7b6d0a93-5a91-4e1f-af47-353afd8b5ea6</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>83.833754740833143</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>2052a2d3-843c-4a1c-87fd-acd0832fd1b9</ID>
- <Left>29</Left>
- <Top>572.89380530973028</Top>
- <Width>221</Width>
- <Height>176.93805309734751</Height>
- <Angle>0</Angle>
- <ItemGuid>7c03f12f-ab2a-4421-8575-aefd6dec0001</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>1000</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>339b7d00-d688-41cf-926a-8171d5e62740</ID>
- <Left>599</Left>
- <Top>578.80973451326713</Top>
- <Width>240</Width>
- <Height>157.80088495575205</Height>
- <Angle>0</Angle>
- <ItemGuid>f3b5076e-cba3-4ad2-b3cc-0c4e907bd9ef</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>5</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>7644a8f9-00a2-4e37-8f48-0667b1541114</ID>
- <Left>1037</Left>
- <Top>247.03097345133062</Top>
- <Width>240</Width>
- <Height>172.30973451327589</Height>
- <Angle>0</Angle>
- <ItemGuid>92237d83-9f85-48db-aa6f-2fc5c9e0d8cd</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>500</Speed>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>c706d31b-48b0-44cc-a9c4-11d3acdcf667</ID>
- <Left>548</Left>
- <Top>418.71652683599893</Top>
- <Width>269</Width>
- <Height>127.67256637168134</Height>
- <Angle>0</Angle>
- <ItemGuid>2a454081-bd5e-41de-ae5d-97aefe1d76de</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>7ccff69d-50f9-4e9b-a997-72a67917df5e</ID>
- <Left>900</Left>
- <Top>580.00442477876311</Top>
- <Width>227</Width>
- <Height>145.08849557522183</Height>
- <Angle>0</Angle>
- <ItemGuid>9c02effb-7deb-40a1-90c3-df1fb48e6431</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>30</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>a88a74cb-418b-4ed0-89ec-c42ff560528e</ID>
- <Left>1182</Left>
- <Top>572.30088495575171</Top>
- <Width>227</Width>
- <Height>145.08849557522183</Height>
- <Angle>0</Angle>
- <ItemGuid>a359e9d0-adcc-40a5-b3d9-b9cb26eca092</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>30</Speed>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>bba24461-e18d-497a-b85d-808668d0c750</ID>
- <Left>892</Left>
- <Top>457.57079646017365</Top>
- <Width>170</Width>
- <Height>87.999999999997613</Height>
- <Angle>0</Angle>
- <ItemGuid>6f48e18c-d472-425a-ba7e-633630605e11</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>9ccdbff6-031d-4364-8732-daade6b88551</ID>
- <Left>1062</Left>
- <Top>452.95575221238948</Top>
- <Width>170</Width>
- <Height>87.999999999997613</Height>
- <Angle>0</Angle>
- <ItemGuid>8a65badb-3d7d-4b7b-8dcd-783e443b0689</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>22bb90e5-f05c-4a47-925e-516a252de2ac</ID>
- <Left>324</Left>
- <Top>546.82743362833332</Top>
- <Width>213</Width>
- <Height>211.8141592920241</Height>
- <Angle>0</Angle>
- <ItemGuid>c9482395-35e6-4340-8dab-83d5dfe907a7</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>5</Speed>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- <MachineTechViewProjectTab>
- <Name>Head graphs</Name>
- <Items>
- <TechItem xsi:type="SingleGraphItem">
- <ID>ffe980da-dbbe-4bac-9595-46f587e9df00</ID>
- <Left>683</Left>
- <Top>6.8230088495575387</Top>
- <Width>585</Width>
- <Height>254.03097345132755</Height>
- <Angle>0</Angle>
- <ItemGuid>A8DB1D27-6B25-4FB4-A3F5-46A29BA51955</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>2</DecimalPlaces>
- <Duration>2962</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>81b78212-14d8-4a66-bf3a-eeea9900e0d6</ID>
- <Left>536</Left>
- <Top>184.21238938053108</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>7FCA67CB-785B-49F7-B9F2-191E3ACC6CB7</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>3941a557-05e6-4c1b-bb98-4f2a59892431</ID>
- <Left>533</Left>
- <Top>22.663716814159159</Top>
- <Width>141</Width>
- <Height>109.433628318584</Height>
- <Angle>0</Angle>
- <ItemGuid>F8C1BA7F-F6DF-414D-BAF5-D4CB292F91F6</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeadCoverHeater1</HeaterType>
- <SetPoint>250</SetPoint>
- <CurrentValue>249.95</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>250</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>85b25b0b-cd3d-4a8a-88f5-f832623d7ec2</ID>
- <Left>5.75</Left>
- <Top>316.7892753877166</Top>
- <Width>516</Width>
- <Height>326.98672566371658</Height>
- <Angle>0</Angle>
- <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E448DD</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>2</DecimalPlaces>
- <Duration>2962</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>85e9ecc2-3bce-4055-89a9-1712752898a9</ID>
- <Left>375.66666666666663</Left>
- <Top>902.19714360816624</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>500698E0-5623-4A47-9537-FCAAF5D0B725</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>8d9b0d4b-ac5e-4c17-b7eb-4d59825064c7</ID>
- <Left>523.04166666666652</Left>
- <Top>895.90015771488663</Top>
- <Width>103</Width>
- <Height>121.59292035398221</Height>
- <Angle>0</Angle>
- <ItemGuid>F39B952A-6194-4055-A5CB-A3421BFE0F9B</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeadCoverHeater2</HeaterType>
- <SetPoint>250</SetPoint>
- <CurrentValue>249.98999999999998</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>250</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>63ccee8d-ce38-4c69-b8d1-141f320d11f9</ID>
- <Left>5</Left>
- <Top>5.0619469026551087</Top>
- <Width>518</Width>
- <Height>295.5752212389379</Height>
- <Angle>0</Angle>
- <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E448CC</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>2</DecimalPlaces>
- <Duration>2962</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>b339a7c0-7555-4e54-9834-6193ed7c2b7a</ID>
- <Left>536</Left>
- <Top>334.00442477876118</Top>
- <Width>137</Width>
- <Height>105.3805309734513</Height>
- <Angle>0</Angle>
- <ItemGuid>F39B952A-6194-4055-A5CB-A3421BFE0F9B</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeadCoverHeater2</HeaterType>
- <SetPoint>250</SetPoint>
- <CurrentValue>249.98999999999998</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>250</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>40d16753-8448-4af9-8fbd-98c1ed301de5</ID>
- <Left>684</Left>
- <Top>264.46017699115009</Top>
- <Width>584</Width>
- <Height>252.004424778761</Height>
- <Angle>0</Angle>
- <ItemGuid>D7585119-4A42-4370-8F1E-F3E62553E588</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>2</DecimalPlaces>
- <Duration>2962</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>b3826c8e-1d82-4f4f-ad9f-d88f257dffb2</ID>
- <Left>1279</Left>
- <Top>61.871681415929345</Top>
- <Width>128</Width>
- <Height>99.57522123893591</Height>
- <Angle>0</Angle>
- <ItemGuid>d59b64f7-a8cf-4a2b-935a-943ae35fb78c</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>d3631074-68c4-4377-b0c5-9213a6b1b2c0</ID>
- <Left>1415</Left>
- <Top>526.52654867256626</Top>
- <Width>103</Width>
- <Height>113.4867256637167</Height>
- <Angle>0</Angle>
- <ItemGuid>8E764A14-0F84-4FEC-928B-32A2509CAD57</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone3</HeaterType>
- <SetPoint>85</SetPoint>
- <CurrentValue>84.94</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>85</SetPoint>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>233f0076-7595-4ecb-8496-41eeb7b457ea</ID>
- <Left>1283</Left>
- <Top>538.11061946902646</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>9de55ec4-201f-4f62-9003-f63ebea06f8f</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>f815ebb5-61af-45ff-8109-5f5e717a5c4d</ID>
- <Left>1411</Left>
- <Top>25.969026548672616</Top>
- <Width>107</Width>
- <Height>165.16371681415916</Height>
- <Angle>0</Angle>
- <ItemGuid>27E7BB74-81C3-4EF2-80AE-962F111C441F</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone1</HeaterType>
- <SetPoint>80</SetPoint>
- <CurrentValue>80.02</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>80</SetPoint>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>72d7192b-dd27-4064-9f5f-90062388a81c</ID>
- <Left>1284</Left>
- <Top>298.97787610619486</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>df38139e-0026-46bc-b72f-df5f9eec80f7</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>915f8dfc-5407-43ca-a0c7-d774867dfb5f</ID>
- <Left>1415</Left>
- <Top>286.38053097345141</Top>
- <Width>103</Width>
- <Height>113.4867256637167</Height>
- <Angle>0</Angle>
- <ItemGuid>B4EE8CC0-EE2B-4ABE-BF09-9226860E756B</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone2</HeaterType>
- <SetPoint>80</SetPoint>
- <CurrentValue>79</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>80</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>4f3b4ecd-759a-4ba5-80f3-74cc485d7085</ID>
- <Left>684</Left>
- <Top>518.79203539822981</Top>
- <Width>586</Width>
- <Height>276.32300884955743</Height>
- <Angle>0</Angle>
- <ItemGuid>098F7CAB-030C-46B0-B2B8-A85AF2253032</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>2</DecimalPlaces>
- <Duration>2962</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>b53a74f3-8e91-40ce-b980-c5b237baeee9</ID>
- <Left>536</Left>
- <Top>482.38053097345153</Top>
- <Width>143</Width>
- <Height>92.482300884953418</Height>
- <Angle>0</Angle>
- <ItemGuid>500698E0-5623-4A47-9537-FCAAF5D0B725</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>f786b4da-3291-4ccb-a280-196fd8697ac1</ID>
- <Left>5.7499999999999858</Left>
- <Top>866.06435643564362</Top>
- <Width>350</Width>
- <Height>152.70353982300856</Height>
- <Angle>0</Angle>
- <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E448DD</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>2</DecimalPlaces>
- <Duration>2962</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>05eab3d7-3af6-4d3f-b3b3-468eeb77a503</ID>
- <Left>644.29166666666674</Left>
- <Top>874.00000000000011</Top>
- <Width>350</Width>
- <Height>152.70353982300856</Height>
- <Angle>0</Angle>
- <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E448CC</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>2</DecimalPlaces>
- <Duration>2962</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>c1f48bf1-9cb3-475a-b152-e8b9a211b694</ID>
- <Left>1010.1666666666667</Left>
- <Top>895.60597564181194</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>7FCA67CB-785B-49F7-B9F2-191E3ACC6CB7</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>c5fbeda2-230d-40e4-9d52-5b3236e0c561</ID>
- <Left>1161.708333333333</Left>
- <Top>885.907999649522</Top>
- <Width>103</Width>
- <Height>121.59292035398221</Height>
- <Angle>0</Angle>
- <ItemGuid>F8C1BA7F-F6DF-414D-BAF5-D4CB292F91F6</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeadCoverHeater1</HeaterType>
- <SetPoint>250</SetPoint>
- <CurrentValue>249.95</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>250</SetPoint>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- <MachineTechViewProjectTab>
- <Name>waste</Name>
- <Items>
- <TechItem xsi:type="DigitalOutItem">
- <ID>bb9bf273-0a3d-4202-98ce-37a5f206ed75</ID>
- <Left>118</Left>
- <Top>74.380530973451243</Top>
- <Width>339</Width>
- <Height>184.4159292035398</Height>
- <Angle>0</Angle>
- <ItemGuid>7e1f53ec-8176-4efa-ac3d-c8f2436e60d1</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>59678a51-f995-4952-b250-e449f1fcbeac</ID>
- <Left>468</Left>
- <Top>80.336283185839477</Top>
- <Width>280</Width>
- <Height>166.17699115044252</Height>
- <Angle>0</Angle>
- <ItemGuid>78db28d0-0407-4942-bb62-c44da81c4f9e</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalInItem">
- <ID>8f9ff579-0e9d-4f48-8ed0-6fa563f2aba7</ID>
- <Left>873</Left>
- <Top>63.831858407079665</Top>
- <Width>174</Width>
- <Height>133.75221238938059</Height>
- <Angle>0</Angle>
- <ItemGuid>06bd7c0b-5aef-445a-86c0-853becf8594b</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalInItem">
- <ID>70d1bd1e-acdb-436a-b205-6eeb9d137120</ID>
- <Left>1070</Left>
- <Top>70.106194690265909</Top>
- <Width>221</Width>
- <Height>123.61946902654864</Height>
- <Angle>0</Angle>
- <ItemGuid>4048bf02-27dc-4049-9284-fe913a7e0ebe</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalInItem">
- <ID>dcc7ce16-5b89-4ff8-acd5-7fb0b9ebb6d1</ID>
- <Left>877</Left>
- <Top>248.24778761061947</Top>
- <Width>186</Width>
- <Height>126.65929203539827</Height>
- <Angle>0</Angle>
- <ItemGuid>00ea1771-efee-4f3e-a0d2-8b2a4214e9fd</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>2b99bbf7-94da-4bb2-acc9-91b35e543c5d</ID>
- <Left>897</Left>
- <Top>358.69469026548683</Top>
- <Width>147</Width>
- <Height>69.9159292035398</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>Waste lower presence</Text>
- </TechItem>
- <TechItem xsi:type="DigitalInItem">
- <ID>c150533c-abe4-4edf-b6ad-fa475b133142</ID>
- <Left>1112</Left>
- <Top>253.66814159291806</Top>
- <Width>186</Width>
- <Height>126.65929203539827</Height>
- <Angle>0</Angle>
- <ItemGuid>d2f266e3-779b-4dfe-b513-26ce61c529a4</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>d96f2a6d-0ccb-401e-8931-09086ca81fae</ID>
- <Left>1143</Left>
- <Top>366.78318584070507</Top>
- <Width>147</Width>
- <Height>69.9159292035398</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>Waste middle presence</Text>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>bb9847ba-9671-4613-bf23-a0c637ebc79d</ID>
- <Left>151</Left>
- <Top>271.55309734513281</Top>
- <Width>200</Width>
- <Height>63.836283185840671</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>pump</Text>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>d13a2df4-3f54-4c31-8f9a-ee7810fb6af5</ID>
- <Left>504</Left>
- <Top>283.71238938053096</Top>
- <Width>192</Width>
- <Height>67.88938053097354</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>valve</Text>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>fbe2670f-6d9b-4361-9332-1ceb1692c91a</ID>
- <Left>76</Left>
- <Top>313.99115044248094</Top>
- <Width>356</Width>
- <Height>208.10619469026472</Height>
- <Angle>0</Angle>
- <ItemGuid>78db28d0-0407-4942-bb62-c44da81c4f9e</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>6cbf28b4-4e53-4aae-9c6e-a506f8538f51</ID>
- <Left>414</Left>
- <Top>342.61504424777644</Top>
- <Width>187</Width>
- <Height>142.7477876106214</Height>
- <Angle>0</Angle>
- <ItemGuid>31000237-0c0e-40f0-a400-1d8055fa230e</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>e45af3fe-dda1-49a8-ba8e-183c98de3952</ID>
- <Left>642</Left>
- <Top>437.73008849557533</Top>
- <Width>181</Width>
- <Height>95.247787610619469</Height>
- <Angle>0</Angle>
- <ItemGuid>1778C1A7-AFB5-42F9-9E00-E80D30D9FC0A</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>c29a04b8-eeec-4a16-91b4-d1c63dddb868</ID>
- <Left>853</Left>
- <Top>443.80973451327435</Top>
- <Width>467</Width>
- <Height>286.75663716814171</Height>
- <Angle>0</Angle>
- <ItemGuid>1778C1A7-AFB5-42F9-9E00-E80D30D9FC0A</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>1</DecimalPlaces>
- <Duration>10</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>f93bb87b-d029-42af-99bd-57db41ed1329</ID>
- <Left>55</Left>
- <Top>576.54867256637181</Top>
- <Width>190</Width>
- <Height>106.53982300885139</Height>
- <Angle>0</Angle>
- <ItemGuid>FE0D0A56-5795-4C5A-8E09-939FBB35C441</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>5dff5069-ad45-4ed2-a2d2-e58121c4de56</ID>
- <Left>263</Left>
- <Top>529.49557522123735</Top>
- <Width>467</Width>
- <Height>286.75663716814171</Height>
- <Angle>0</Angle>
- <ItemGuid>FE0D0A56-5795-4C5A-8E09-939FBB35C441</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>1</DecimalPlaces>
- <Duration>10</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- <MachineTechViewProjectTab>
- <Name>disp</Name>
- <Items>
- <TechItem xsi:type="SingleGraphItem">
- <ID>f9531a72-3742-47a7-86bb-b589f8b3eb55</ID>
- <Left>123</Left>
- <Top>128.33628318584061</Top>
- <Width>390</Width>
- <Height>249.67699115047321</Height>
- <Angle>0</Angle>
- <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>3</DecimalPlaces>
- <Duration>3600</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>aae29286-81b3-476a-9f58-c0fd246cae96</ID>
- <Left>880</Left>
- <Top>158.81415929204155</Top>
- <Width>442</Width>
- <Height>241.88495575221771</Height>
- <Angle>0</Angle>
- <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>3</DecimalPlaces>
- <Duration>3600</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>7d94c7c4-1288-4f9d-b0e6-a06794829642</ID>
- <Left>1055</Left>
- <Top>14.181415929203524</Top>
- <Width>161</Width>
- <Height>111.46017699115049</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>Y</Text>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>c95f9ad1-b607-4606-8217-400bea76f3d6</ID>
- <Left>384</Left>
- <Top>23.991150442480944</Top>
- <Width>161</Width>
- <Height>111.46017699115049</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>C</Text>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>8f141fa5-fb24-4557-adcf-a6aa55a28fb4</ID>
- <Left>121</Left>
- <Top>-8.8495575221214722</Top>
- <Width>169</Width>
- <Height>132.73893805309734</Height>
- <Angle>0</Angle>
- <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>3</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>7eab018a-ef43-4bca-a6cf-857d69767bba</ID>
- <Left>839</Left>
- <Top>-4.7079646017762684</Top>
- <Width>169</Width>
- <Height>132.73893805309734</Height>
- <Angle>0</Angle>
- <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>3</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorRecorderItem">
- <ID>2a9e89d4-5d60-4a83-9527-cb77fdf35c14</ID>
- <Left>1276</Left>
- <Top>22.287610619469035</Top>
- <Width>187</Width>
- <Height>102.34070796460179</Height>
- <Angle>0</Angle>
- <ColorNumber>-1</ColorNumber>
- <SelectedMonitorsGuids>
- <string>D023F15D-3555-48E9-A9E9-5DF99F60D791</string>
- <string>94F3E5A1-413E-4EA0-BDE1-F0625BFF7910</string>
- <string>AFB7B6F7-8FFB-4A7F-B814-04F0C163CAA1</string>
- <string>FE0D0A56-5795-4C5A-8E09-939FBB35C441</string>
- <string>A8DB1D27-6B25-4FB4-A3F5-46A29BA51955</string>
- <string>D7585119-4A42-4370-8F1E-F3E62553E588</string>
- <string>098F7CAB-030C-46B0-B2B8-A85AF2253032</string>
- <string>1778C1A7-AFB5-42F9-9E00-E80D30D9FC02</string>
- </SelectedMonitorsGuids>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>6d2e7962-b3ae-4682-b20e-9654f48dcffe</ID>
- <Left>587</Left>
- <Top>5.0619469026548813</Top>
- <Width>155</Width>
- <Height>131.72566371681415</Height>
- <Angle>0</Angle>
- <ItemGuid>2CC8E461-E91F-4D4C-A402-922477F06C87</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>500</Speed>
- <DisplayName>Dispenser 1</DisplayName>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>5ee2718f-f068-427b-a31e-d586c7d7682c</ID>
- <Left>131</Left>
- <Top>552.94690265486338</Top>
- <Width>390</Width>
- <Height>249.67699115047321</Height>
- <Angle>0</Angle>
- <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>3</DecimalPlaces>
- <Duration>3600</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>1c254a92-c075-453f-9667-cdcc91cf8e6a</ID>
- <Left>399</Left>
- <Top>455.67256637168265</Top>
- <Width>161</Width>
- <Height>111.46017699115049</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>K</Text>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>d1087b1a-c36b-4242-96f5-07c2bb602cc4</ID>
- <Left>145</Left>
- <Top>409.52212389380446</Top>
- <Width>169</Width>
- <Height>132.73893805309734</Height>
- <Angle>0</Angle>
- <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>3</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>53fe93a2-88a5-4d4d-9cd5-eb4d8a8fefae</ID>
- <Left>604</Left>
- <Top>561.16371681414739</Top>
- <Width>390</Width>
- <Height>249.67699115047321</Height>
- <Angle>0</Angle>
- <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>3</DecimalPlaces>
- <Duration>3600</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>0bef6e9d-6da0-4f06-9e1a-c00142bde4c1</ID>
- <Left>832</Left>
- <Top>440.91150442477635</Top>
- <Width>161</Width>
- <Height>111.46017699115049</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>M</Text>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>762c5a97-a3bc-45b4-aa9f-0b50afa9cb9b</ID>
- <Left>633</Left>
- <Top>434.0132743362783</Top>
- <Width>169</Width>
- <Height>132.73893805309734</Height>
- <Angle>0</Angle>
- <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>3</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>be584f80-3250-494c-87fc-250d6deae051</ID>
- <Left>1045</Left>
- <Top>559.4070796459921</Top>
- <Width>390</Width>
- <Height>249.67699115047321</Height>
- <Angle>0</Angle>
- <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>3</DecimalPlaces>
- <Duration>3600</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>39f6a02c-c4d9-47d0-b92d-bdea0ed5d3ce</ID>
- <Left>1056</Left>
- <Top>435.43805309733875</Top>
- <Width>169</Width>
- <Height>132.73893805309734</Height>
- <Angle>0</Angle>
- <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>3</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>5b924929-9b16-4598-94cc-b2f4bca26798</ID>
- <Left>1304</Left>
- <Top>448.0884955752224</Top>
- <Width>161</Width>
- <Height>111.46017699115049</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>TI</Text>
- </TechItem>
- <TechItem xsi:type="ValveItem">
- <ID>89ae1fa5-1ad1-469e-ae76-0a29c35805cd</ID>
- <Left>588</Left>
- <Top>317.1504424778762</Top>
- <Width>283</Width>
- <Height>74.982300884955748</Height>
- <Angle>0</Angle>
- <ItemGuid>E144A221-4859-4DC3-9A7E-4A2969FB0826</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="ValveItem">
- <ID>c218cf34-74c2-41bb-8c3b-3030abce451a</ID>
- <Left>1363</Left>
- <Top>384.02654867256643</Top>
- <Width>156</Width>
- <Height>94.234513274336337</Height>
- <Angle>0</Angle>
- <ItemGuid>E144A221-4859-4DC3-9A7E-4A2969FB0826</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="ValveItem">
- <ID>75af30c6-d7f8-4745-bfb5-d6dc5d50479a</ID>
- <Left>767</Left>
- <Top>362.74778761061958</Top>
- <Width>283</Width>
- <Height>74.982300884955748</Height>
- <Angle>0</Angle>
- <ItemGuid>E144A221-4859-4DC3-9A7E-4A2969FB0826</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>df1fd958-fd8a-4b00-98e1-679455494d60</ID>
- <Left>309</Left>
- <Top>13.168141592920392</Top>
- <Width>112</Width>
- <Height>107.40707964601768</Height>
- <Angle>0</Angle>
- <ItemGuid>3174ADCF-5793-4B5A-A3C6-B96E146A903D</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>f07225b3-1522-4cb6-9ba8-5b9697f05467</ID>
- <Left>1180</Left>
- <Top>60.7920353982301</Top>
- <Width>102</Width>
- <Height>88.1548672566372</Height>
- <Angle>0</Angle>
- <ItemGuid>E2F0FC31-CE7E-416B-ACEA-8EB6CA9B850B</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>45b87322-e1f5-42eb-88c6-71c2eeb2899a</ID>
- <Left>1258</Left>
- <Top>463.06194690265494</Top>
- <Width>88</Width>
- <Height>75.995575221239</Height>
- <Angle>0</Angle>
- <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C09F</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>0c1c25e8-3ce3-4994-bbb9-bd6b2367a413</ID>
- <Left>810</Left>
- <Top>462.04867256637175</Top>
- <Width>77</Width>
- <Height>80.048672566371636</Height>
- <Angle>0</Angle>
- <ItemGuid>AD50C358-5BAF-4A2F-8593-51A22C85B3D1</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>fa2f697e-b229-418a-bae6-78b92bf0458b</ID>
- <Left>336</Left>
- <Top>428.61061946902663</Top>
- <Width>95</Width>
- <Height>96.261061946902657</Height>
- <Angle>0</Angle>
- <ItemGuid>84682E90-6926-42AA-BF8C-2CCCF5C26C97</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- <MachineTechViewProjectTab>
- <Name>Priming</Name>
- <Items>
- <TechItem xsi:type="MonitorItem">
- <ID>ea45a516-9dac-4c9a-9261-0c44e22aa065</ID>
- <Left>808</Left>
- <Top>155.02654867256638</Top>
- <Width>219</Width>
- <Height>200.62831858407088</Height>
- <Angle>0</Angle>
- <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>3e2cb7dc-a5f3-4ba6-a520-2bae8ff0e4a8</ID>
- <Left>832</Left>
- <Top>451.91592920353986</Top>
- <Width>332</Width>
- <Height>326.27433628318596</Height>
- <Angle>0</Angle>
- <ItemGuid>C8D8FE90-0375-44A2-A6D1-E997789E065C</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 2</DisplayName>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>6f8dfd8d-ed50-4923-b908-e0b5bc5d6ae5</ID>
- <Left>154</Left>
- <Top>131.72123893805315</Top>
- <Width>474</Width>
- <Height>410.37610619469024</Height>
- <Angle>0</Angle>
- <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>1</DecimalPlaces>
- <Duration>1942</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- </TechItem>
- <TechItem xsi:type="ValveItem">
- <ID>604e031b-89c3-4c9d-90ef-7b861a77e5e0</ID>
- <Left>243</Left>
- <Top>595.80088495575228</Top>
- <Width>497</Width>
- <Height>189.48230088495575</Height>
- <Angle>0</Angle>
- <ItemGuid>8B1FCBC3-FEEA-4F87-B56F-CE5D28B7ACA4</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>c414ae0e-323a-48c1-9165-2c05cc4234c6</ID>
- <Left>1291</Left>
- <Top>584.65486725663732</Top>
- <Width>200</Width>
- <Height>171.24336283185835</Height>
- <Angle>0</Angle>
- <ItemGuid>0bd10306-2944-4cda-bc59-0264da2883d2</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- </Tabs>
- <SelectedTabIndex>0</SelectedTabIndex>
-</MachineTechViewProject> \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/technician view files/FSE Draft 1.tpf b/Software/Stubs Collection/stubs/technician view files/FSE Draft 1.tpf
deleted file mode 100644
index fa2679a29..000000000
--- a/Software/Stubs Collection/stubs/technician view files/FSE Draft 1.tpf
+++ /dev/null
@@ -1,1401 +0,0 @@
-<?xml version="1.0"?>
-<MachineTechViewProject xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <Items />
- <Tabs>
- <MachineTechViewProjectTab>
- <Name>Temperatures</Name>
- <Items>
- <TechItem xsi:type="HeaterItem">
- <ID>a15665e3-af39-42d8-8c06-97d770632e10</ID>
- <Left>660.29166666666652</Left>
- <Top>9.9377026198189924</Top>
- <Width>207</Width>
- <Height>184.4159292035398</Height>
- <Angle>0</Angle>
- <ItemGuid>6D6CFA18-5922-4AFE-84B3-2721CE128681</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>DryerAirHeater</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>69.85</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>0ac64716-d30c-489b-939e-a26d06445866</ID>
- <Left>460.29166666666669</Left>
- <Top>19.687461666518857</Top>
- <Width>192.50000000000023</Width>
- <Height>171.73495137124343</Height>
- <Angle>0</Angle>
- <ItemGuid>A5DFC2DB-3B36-4377-96A0-D492CE785C00</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>DryerMainHeater</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>92.97</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>181796d8-64f6-420a-8f37-9af9df67d6a9</ID>
- <Left>302.41666666666669</Left>
- <Top>15.607640410059048</Top>
- <Width>161.37500000000006</Width>
- <Height>176.14921580653623</Height>
- <Angle>0</Angle>
- <ItemGuid>86808B48-B7F9-43AD-840E-2A6A5987C305</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>DryerSecondaryHeater</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>92.94</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>fd2bb3a3-a411-470d-bde7-0beaf84da059</ID>
- <Left>604.9583333333336</Left>
- <Top>254.26723911329191</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>8E764A14-0F84-4FEC-928B-32A2509CAD57</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone3</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>39.55</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>7e8dd386-cca6-4d07-8a3e-af5403756002</ID>
- <Left>779.958333333334</Left>
- <Top>259.33361079470779</Top>
- <Width>200</Width>
- <Height>187.45575221238937</Height>
- <Angle>0</Angle>
- <ItemGuid>B4EE8CC0-EE2B-4ABE-BF09-9226860E756B</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone2</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>37.29</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>32a91e5f-27c8-490d-b187-8e39b6626a13</ID>
- <Left>986.00000000000057</Left>
- <Top>258.07955839831766</Top>
- <Width>157</Width>
- <Height>194.54867256637175</Height>
- <Angle>0</Angle>
- <ItemGuid>27E7BB74-81C3-4EF2-80AE-962F111C441F</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone1</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>34.27</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>c844235a-8a29-4c2e-a964-e8f546d2ced7</ID>
- <Left>872.291666666667</Left>
- <Top>4.8713309384033892</Top>
- <Width>173</Width>
- <Height>183.40265486725662</Height>
- <Angle>0</Angle>
- <ItemGuid>42A62A48-F1D5-4BB6-AFEA-6A7DF6DCF626</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>MixerHeater</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>54.669999999999995</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>45b121b5-cf7c-41f7-8089-6d4d6b1ed2c8</ID>
- <Left>424.9583333333336</Left>
- <Top>251.60352229913406</Top>
- <Width>169</Width>
- <Height>197.27876106194645</Height>
- <Angle>0</Angle>
- <ItemGuid>94574D69-46E1-4144-A8B5-D4BF0DA96D18</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone4</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>40.71</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>e6b3eb18-482b-450e-b8a8-d2ac6bba4fd4</ID>
- <Left>220.95833333333351</Left>
- <Top>256.66546920178428</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>D6771DF4-771E-4D62-B6BA-BDE361C0A0F3</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone5</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>43.389999999999993</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>efff2e67-e3a3-4667-9208-4704707d7cda</ID>
- <Left>30.083333333333513</Left>
- <Top>256.74861999474194</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>D2B6CAA0-055E-4871-8D91-A5370F1ACB22</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone6</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>46.809999999999995</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>be9db1fd-d408-4f1c-a15a-d6ffe58fafb6</ID>
- <Left>965.95833333333428</Left>
- <Top>514.749539998249</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>188285E5-1493-4BED-8269-91743770A631</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone7</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>50.449999999999996</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>381f67cf-b7c6-4f6d-b089-37130798a5d8</ID>
- <Left>780.958333333334</Left>
- <Top>513.73626566196572</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>461FA2D7-1918-4958-AAA7-37A1A329FA12</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone8</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>48.22</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>3c923a93-4d15-4bbc-b1b3-be1876a77cfc</ID>
- <Left>597.9583333333336</Left>
- <Top>514.749539998249</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>63E2AFE0-0746-4AAB-AA74-C26EC1F282AE</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone9</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>47.269999999999996</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>26e078e6-df8c-4fbf-b10e-4b3f7c7e9500</ID>
- <Left>32.958333333333485</Left>
- <Top>513.736265661966</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>2D578A37-D808-40D0-ACE4-4A868EDD6BDC</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone12</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>39.64</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>7a8c3948-bb3d-4eb1-9276-315d34038f91</ID>
- <Left>223.9583333333334</Left>
- <Top>514.74953999824925</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>D41BBB23-6EB5-4743-89DB-9191000B475F</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone11</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>45.449999999999996</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>f7d4c8ac-28cb-4779-83ef-3ede5e5a612c</ID>
- <Left>411.9583333333336</Left>
- <Top>515.76281433453232</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>B4D0A1C8-711C-49A9-82A3-B5B9F35FC131</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone10</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>48.459999999999994</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>e502555c-95b0-4688-b5e3-8becb30fc62c</ID>
- <Left>590.65211589505361</Left>
- <Top>741.78705872367811</Top>
- <Width>200</Width>
- <Height>187.45575221238937</Height>
- <Angle>0</Angle>
- <ItemGuid>F8C1BA7F-F6DF-414D-BAF5-D4CB292F91F6</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeadCoverHeater1</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>283.75</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>0f7a35fc-e363-45b2-948d-ba66f91e4f0d</ID>
- <Left>40.197317631796878</Left>
- <Top>749.47260403204439</Top>
- <Width>200</Width>
- <Height>187.45575221238937</Height>
- <Angle>0</Angle>
- <ItemGuid>F39B952A-6194-4055-A5CB-A3421BFE0F9B</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeadCoverHeater2</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>283.75</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>748a5cd1-815b-4ffb-92fb-0c01cf381102</ID>
- <Left>1494.0091846051309</Left>
- <Top>431.98134057113157</Top>
- <Width>167.70833333333334</Width>
- <Height>104.29702970297035</Height>
- <Angle>0</Angle>
- <ItemGuid>1778C1A7-AFB5-42F9-9E00-E80D30D9FC0A</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>d462f0fc-2c71-4ba9-b3bd-1e8c64f36707</ID>
- <Left>1128.2727185092199</Left>
- <Top>850.9809690133618</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>8E764A14-0F84-4FEC-928B-32A2509CAD57</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>DryerAirHeater</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>0</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>false</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>8e2c2474-5764-493f-ac2c-33a8a4a0ffdc</ID>
- <Left>1315.9696925879443</Left>
- <Top>853.53491694908257</Top>
- <Width>200</Width>
- <Height>187.45575221238937</Height>
- <Angle>0</Angle>
- <ItemGuid>B4EE8CC0-EE2B-4ABE-BF09-9226860E756B</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>DryerAirHeater</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>0</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>false</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>71a948e8-676f-4b97-916b-edce26c01370</ID>
- <Left>1520.8570888838171</Left>
- <Top>845.99980518845655</Top>
- <Width>157</Width>
- <Height>194.54867256637175</Height>
- <Angle>0</Angle>
- <ItemGuid>27E7BB74-81C3-4EF2-80AE-962F111C441F</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>DryerAirHeater</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>0</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>false</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>d5bc68e3-a665-4951-a377-f9e0df4112be</ID>
- <Left>1109.7519712733683</Left>
- <Top>50.901960902201267</Top>
- <Width>449.5089477623826</Width>
- <Height>55.327112636891911</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>Common</Text>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>4a8362d4-e873-46a1-afbb-f56036c0f2cb</ID>
- <Left>1045.9458963394222</Left>
- <Top>460.86118629158989</Top>
- <Width>449.5089477623826</Width>
- <Height>55.327112636891911</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>Flat Head</Text>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>7e7868fd-3c47-4d5f-8c6f-fa4b18ae05b3</ID>
- <Left>1260.3013710587918</Left>
- <Top>791.39094759212651</Top>
- <Width>232.78141937694795</Width>
- <Height>45.135276098517238</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>Arc</Text>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>1de56a7a-e25e-4508-a87e-de0230e91dc3</ID>
- <Left>1516.0481568975797</Left>
- <Top>366.24959926534439</Top>
- <Width>117.72853393776677</Width>
- <Height>48.047229395195586</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>Ambient</Text>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>51ce86b2-0063-48c6-89f6-182a189ffaaa</ID>
- <Left>70.075574021778309</Left>
- <Top>976.2041030585757</Top>
- <Width>140.47154617574461</Width>
- <Height>104.83031868042667</Height>
- <Angle>0</Angle>
- <ItemGuid>20768F26-8D03-4660-8355-B29C595DFCB2</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>9001f8a5-c4c2-4be8-820f-2174b580c53b</ID>
- <Left>252.40090220375726</Left>
- <Top>947.54574115036348</Top>
- <Width>148.7597052289122</Width>
- <Height>121.44535613863422</Height>
- <Angle>0</Angle>
- <ItemGuid>20768F26-8D03-4660-8355-B29C595DFCB2</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="BlowerItem">
- <ID>9f31d14c-d7ec-45c1-b87c-3f4923a6af58</ID>
- <Left>260.2054564281259</Left>
- <Top>787.10370299452848</Top>
- <Width>142.5965330388309</Width>
- <Height>127.53048371566092</Height>
- <Angle>0</Angle>
- <ItemGuid>080EB945-8E52-4876-9704-F9908FD26967</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="BlowerItem">
- <ID>5c687318-7840-4196-af07-2455e10d1bcf</ID>
- <Left>816.2919957682775</Left>
- <Top>836.89502513753882</Top>
- <Width>153.84978866867277</Width>
- <Height>58.239065933570373</Height>
- <Angle>0</Angle>
- <ItemGuid>998B5E61-3119-443D-ABAA-EFBC283B1021</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>95a693e0-816b-4edc-a2ae-98ac393c6f48</ID>
- <Left>819.83243778511473</Left>
- <Top>957.65691621970711</Top>
- <Width>128.43112793210935</Width>
- <Height>104.83031868042667</Height>
- <Angle>0</Angle>
- <ItemGuid>20768F26-8D03-4660-8355-B29C595DFCB2</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>8d26a1fe-4293-413d-9f4e-b3a562bf25db</ID>
- <Left>628.1918504863404</Left>
- <Top>971.65955281411607</Top>
- <Width>128.43112793210935</Width>
- <Height>104.83031868042667</Height>
- <Angle>0</Angle>
- <ItemGuid>20768F26-8D03-4660-8355-B29C595DFCB2</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>e1273b48-af58-4acd-9e8a-11bc59516b16</ID>
- <Left>612.48035467271029</Left>
- <Top>949.40114439880108</Top>
- <Width>163.52519712936567</Width>
- <Height>30.060733624349837</Height>
- <Angle>0</Angle>
- <ColorNumber>-12968193</ColorNumber>
- <Text>air flow 1</Text>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>31a7f747-9569-473c-a345-696d1acb8044</ID>
- <Left>61.998970290683857</Left>
- <Top>953.87279414695115</Top>
- <Width>160.0623860169863</Width>
- <Height>26.292098005808043</Height>
- <Angle>0</Angle>
- <ColorNumber>-12968193</ColorNumber>
- <Text>air flow 2</Text>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- <MachineTechViewProjectTab>
- <Name>Dispensers</Name>
- <Items>
- <TechItem xsi:type="DispenserItem">
- <ID>dce78f33-c966-4848-8c6e-a4a01dbc7577</ID>
- <Left>1322.1428571428571</Left>
- <Top>214.15929203538531</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>2CC8E461-E91F-4D4C-A402-922477F06C87</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>800</Speed>
- <DisplayName>Dispenser 1</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>2d03fc19-0502-43e1-a3ff-4012a612112b</ID>
- <Left>1149</Left>
- <Top>218.48230088495342</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>C8D8FE90-0375-44A2-A6D1-E997789E065C</ItemGuid>
- <ColorNumber>-16724737</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 2</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>81958374-3fa3-48b3-a554-5653fe1934b1</ID>
- <Left>959</Left>
- <Top>210.32743362830422</Top>
- <Width>156</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>08ED9044-CAD6-4492-94B2-C07206E0164B</ItemGuid>
- <ColorNumber>-65325</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 3</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>8fead411-7198-4428-a364-e32f3035ed94</ID>
- <Left>775</Left>
- <Top>206.42920353980952</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>179F34BB-3252-4D3A-965C-E6EB43D6FE7C</ItemGuid>
- <ColorNumber>-524544</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 4</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>31bfa89f-e64d-4a3b-8585-c4a1b2e5a139</ID>
- <Left>585</Left>
- <Top>208.47345132741418</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>716B35CF-46E0-47D5-AF85-5233D212568F</ItemGuid>
- <ColorNumber>-2108246</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 5</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>c2bff5f3-6dc9-4b07-87ba-9e3a5814804e</ID>
- <Left>372</Left>
- <Top>216.75221238937439</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>99528449-4D76-4874-AB95-522951560E01</ItemGuid>
- <ColorNumber>-263685</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 6</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>071281a5-3569-4a62-8b68-7bea850a3c07</ID>
- <Left>217</Left>
- <Top>211.63716814158107</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>E8ED07E2-7C36-459C-B9E5-6A23A1E24F03</ItemGuid>
- <ColorNumber>-723724</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 7</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>7b703b9a-a626-4ae5-8e31-fa1cfe5718f4</ID>
- <Left>45</Left>
- <Top>216.04867256635521</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>8A957565-4165-49F7-854D-D21F95FFBE1B</ItemGuid>
- <ColorNumber>-724238</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 8</DisplayName>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>caca40a2-310c-452e-adcf-c28ee38f6bdc</ID>
- <Left>1305</Left>
- <Top>31.606194690259713</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid>
- <ColorNumber>-15856114</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>af52d36f-27a2-4a31-8ceb-9c43fedbed22</ID>
- <Left>1127</Left>
- <Top>32.535398230081626</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid>
- <ColorNumber>-15293470</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>d40eada8-d22a-4521-bd2a-d998ed93106f</ID>
- <Left>955</Left>
- <Top>32.61946902653176</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid>
- <ColorNumber>-1570857</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>b2d6364d-8b5c-43d2-8838-927c85b017b1</ID>
- <Left>774</Left>
- <Top>31.960176991142362</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid>
- <ColorNumber>-1379575</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>3980e685-73b3-4af1-9593-9235be147322</ID>
- <Left>596</Left>
- <Top>32.889380530964274</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid>
- <ColorNumber>-7763381</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>51465293-58d5-40a4-8302-81856f8b4f47</ID>
- <Left>424</Left>
- <Top>32.973451327414409</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>AF3FD56C-95BF-4DE1-8EDC-8426B0DB2A26</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>c2a8c5b2-891b-4f9f-862c-c1c294366c78</ID>
- <Left>252</Left>
- <Top>31.703539823006281</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>60DA9EA3-C8A6-4D41-8AD8-3EB1BAA79CC9</ItemGuid>
- <ColorNumber>-8391822</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>9618e441-8973-4e16-a90b-06ce5798bd29</ID>
- <Left>80</Left>
- <Top>31.787610619456416</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>EF66F95A-E166-4FA2-B1AF-D6F55621817A</ItemGuid>
- <ColorNumber>-2186185</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>5bf7a681-ee47-477e-8b47-ba7a2eb6e115</ID>
- <Left>1113.3333333333337</Left>
- <Top>463.97555419258936</Top>
- <Width>144</Width>
- <Height>80.495575221237516</Height>
- <Angle>0</Angle>
- <ItemGuid>3174ADCF-5793-4B5A-A3C6-B96E146A903D</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>29b17a4b-fd4e-49cc-a3cd-418730176bf7</ID>
- <Left>952.33333333333326</Left>
- <Top>464.97555419258811</Top>
- <Width>144</Width>
- <Height>80.495575221237516</Height>
- <Angle>0</Angle>
- <ItemGuid>AD50C358-5BAF-4A2F-8593-51A22C85B3D1</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>21a5429f-c3a2-4e3b-ae77-c5538f30130d</ID>
- <Left>758.33333333333326</Left>
- <Top>462.68794357311867</Top>
- <Width>144</Width>
- <Height>82.535398230087083</Height>
- <Angle>0</Angle>
- <ItemGuid>E2F0FC31-CE7E-416B-ACEA-8EB6CA9B850B</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>96a46b0c-37b1-4457-93fb-b3dc301c5743</ID>
- <Left>571.33333333333326</Left>
- <Top>464.08617366161127</Top>
- <Width>144</Width>
- <Height>80.495575221237516</Height>
- <Angle>0</Angle>
- <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C09F</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>d4ad8603-9929-415f-9990-1869fcff36e4</ID>
- <Left>1293.3333333333337</Left>
- <Top>467.71449224568437</Top>
- <Width>144</Width>
- <Height>80.495575221237516</Height>
- <Angle>0</Angle>
- <ItemGuid>84682E90-6926-42AA-BF8C-2CCCF5C26C97</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="ValveItem">
- <ID>25249d78-ee37-42a8-b5aa-96f60e97c3ea</ID>
- <Left>607.32892156862749</Left>
- <Top>598.34526296666354</Top>
- <Width>327</Width>
- <Height>108.53097345133028</Height>
- <Angle>0</Angle>
- <ItemGuid>8B1FCBC3-FEEA-4F87-B56F-CE5D28B7ACA4</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="ValveItem">
- <ID>cdddd48e-422d-48f4-8397-5032c3705fdb</ID>
- <Left>1071.0833333333335</Left>
- <Top>577.88035573468915</Top>
- <Width>382</Width>
- <Height>136.79203539823016</Height>
- <Angle>0</Angle>
- <ItemGuid>04C58CA0-9719-4BB0-8D3B-D4C71129D8E4</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>ee6d4c5a-ca5b-4557-8012-dacf700cdc08</ID>
- <Left>214.33333333333326</Left>
- <Top>463.08617366162218</Top>
- <Width>144</Width>
- <Height>80.495575221237516</Height>
- <Angle>0</Angle>
- <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C010</ItemGuid>
- <ColorNumber>-8391822</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>20576bb2-202f-4170-9af5-f3c18b410112</ID>
- <Left>60.333333333333258</Left>
- <Top>463.48440375011319</Top>
- <Width>144</Width>
- <Height>80.495575221237516</Height>
- <Angle>0</Angle>
- <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C011</ItemGuid>
- <ColorNumber>-2186185</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>3b484b31-da50-4861-abce-70a06193fe6f</ID>
- <Left>395.33333333333331</Left>
- <Top>465.89108910891088</Top>
- <Width>144</Width>
- <Height>80.495575221237516</Height>
- <Angle>0</Angle>
- <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C092</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- <MachineTechViewProjectTab>
- <Name>Waste</Name>
- <Items>
- <TechItem xsi:type="MonitorItem">
- <ID>73486478-cffe-43f9-a949-0a6b0e522e9e</ID>
- <Left>25.541666666666686</Left>
- <Top>24.896039603960332</Top>
- <Width>179.16666666666666</Width>
- <Height>143.97524752475249</Height>
- <Angle>0</Angle>
- <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>880c81c4-a02d-4c6e-a861-11a1ca0699d2</ID>
- <Left>789.08333333333326</Left>
- <Top>24.896039603960446</Top>
- <Width>179.16666666666666</Width>
- <Height>143.97524752475249</Height>
- <Angle>0</Angle>
- <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>47231575-fde1-4ab7-9032-86d48a7fef7b</ID>
- <Left>596.37500000000011</Left>
- <Top>23.762376237623698</Top>
- <Width>179.16666666666666</Width>
- <Height>143.97524752475249</Height>
- <Angle>0</Angle>
- <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>ba429140-e9ef-4257-8666-c1ad03b81e1c</ID>
- <Left>217.20833333333343</Left>
- <Top>22.628712871287121</Top>
- <Width>179.16666666666666</Width>
- <Height>143.97524752475249</Height>
- <Angle>0</Angle>
- <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>ece2bc5a-5a2b-4ff9-a409-4f130e8155ff</ID>
- <Left>984.91666666666674</Left>
- <Top>26.029702970296967</Top>
- <Width>179.16666666666666</Width>
- <Height>143.97524752475249</Height>
- <Angle>0</Angle>
- <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>4dacd4d7-046e-4478-b7d1-f96539c21d89</ID>
- <Left>1183.8750000000002</Left>
- <Top>22.628712871287121</Top>
- <Width>179.16666666666666</Width>
- <Height>143.97524752475249</Height>
- <Angle>0</Angle>
- <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>b5c670f3-59c6-40a7-872c-00a128ef5bbe</ID>
- <Left>1371.3749999999998</Left>
- <Top>23.762376237623698</Top>
- <Width>179.16666666666666</Width>
- <Height>143.97524752475249</Height>
- <Angle>0</Angle>
- <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>f58afef3-9825-4139-8975-fa91c3f3e10d</ID>
- <Left>405.74999999999994</Left>
- <Top>26.029702970297024</Top>
- <Width>179.16666666666666</Width>
- <Height>143.97524752475249</Height>
- <Angle>0</Angle>
- <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>ba8f119b-4c4c-45ed-8bd3-4bdfe2f6dd78</ID>
- <Left>1395.3333333333335</Left>
- <Top>593.99504950495043</Top>
- <Width>179.16666666666666</Width>
- <Height>143.97524752475249</Height>
- <Angle>0</Angle>
- <ItemGuid>79AD6611-82A2-4B4C-AB5E-A11A33E1243D</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>4a6a278a-633d-4917-acf4-83e9f3818a75</ID>
- <Left>29.708333333333115</Left>
- <Top>249.36138613861391</Top>
- <Width>179.16666666666666</Width>
- <Height>143.97524752475249</Height>
- <Angle>0</Angle>
- <ItemGuid>055D0A38-09BD-490D-9852-12B06A4B22F2</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>71d506d0-4dcc-4b66-8e26-f5b0fd807b5f</ID>
- <Left>714.08333333333348</Left>
- <Top>245.96039603960367</Top>
- <Width>179.16666666666666</Width>
- <Height>143.97524752475249</Height>
- <Angle>0</Angle>
- <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>14c6bcd8-c314-444f-939b-340f989c8c8a</ID>
- <Left>924.5</Left>
- <Top>241.42574257425736</Top>
- <Width>179.16666666666666</Width>
- <Height>143.97524752475249</Height>
- <Angle>0</Angle>
- <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>93c19fe3-5f8e-4260-a908-a6eb2cd83d82</ID>
- <Left>730.75000000000011</Left>
- <Top>430.7475247524751</Top>
- <Width>381.25</Width>
- <Height>91.826732673267259</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>WHS Temperatures</Text>
- </TechItem>
- <TechItem xsi:type="DigitalInItem">
- <ID>77de4fd1-a2e1-46c2-8997-f8a22b4eb906</ID>
- <Left>1406.7916666666663</Left>
- <Top>226.68811881188123</Top>
- <Width>146.87500000000046</Width>
- <Height>99.762376237623585</Height>
- <Angle>0</Angle>
- <ItemGuid>d7bef231-9cb6-4394-b871-d9b52be73304</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalInItem">
- <ID>8cd5e67b-34c0-428b-8b74-41d27d2c22cf</ID>
- <Left>1405.7499999999998</Left>
- <Top>419.41089108910887</Top>
- <Width>144.79166666666674</Width>
- <Height>95.227722772277275</Height>
- <Angle>0</Angle>
- <ItemGuid>d7bef231-9cb6-4394-b871-d9b52be73304</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalInItem">
- <ID>4988f409-07c8-4cd5-b173-02bd88e67999</ID>
- <Left>1402.6250000000009</Left>
- <Top>332.11881188118815</Top>
- <Width>143.75</Width>
- <Height>86.158415841584088</Height>
- <Angle>0</Angle>
- <ItemGuid>d7bef231-9cb6-4394-b871-d9b52be73304</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>a0f6a227-e63f-44b1-b375-e287dffaadd6</ID>
- <Left>1290.125</Left>
- <Top>531.64356435643606</Top>
- <Width>239.58333333333349</Width>
- <Height>36.277227722772295</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>Cartridge</Text>
- </TechItem>
- <TechItem xsi:type="DigitalInItem">
- <ID>716466da-4b1e-4ef6-82a6-a257f0ece033</ID>
- <Left>1259.9166666666661</Left>
- <Top>241.42574257425764</Top>
- <Width>125</Width>
- <Height>100.89603960396016</Height>
- <Angle>0</Angle>
- <ItemGuid>d7bef231-9cb6-4394-b871-d9b52be73304</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalInItem">
- <ID>b181b88a-f448-45c0-ad49-5570b2540b4b</ID>
- <Left>1259.9166666666665</Left>
- <Top>427.34653465346491</Top>
- <Width>129.16666666666652</Width>
- <Height>91.826732673267315</Height>
- <Angle>0</Angle>
- <ItemGuid>d7bef231-9cb6-4394-b871-d9b52be73304</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalInItem">
- <ID>5905f078-74e3-455d-ad6a-1e1a52da21c3</ID>
- <Left>1247.4166666666667</Left>
- <Top>332.11881188118809</Top>
- <Width>148.95833333333326</Width>
- <Height>89.559405940594047</Height>
- <Angle>0</Angle>
- <ItemGuid>d7bef231-9cb6-4394-b871-d9b52be73304</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>48eeab5d-b535-4206-886f-d176da3e950f</ID>
- <Left>221.37500000000006</Left>
- <Top>464.75742574257436</Top>
- <Width>172.91666666666677</Width>
- <Height>109.96534653465358</Height>
- <Angle>0</Angle>
- <ItemGuid>FE0D0A56-5795-4C5A-8E09-939FBB35C441</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>a866ff20-1f1c-4aa0-891f-4ac5e37db38a</ID>
- <Left>233.87499999999989</Left>
- <Top>599.66336633663366</Top>
- <Width>143.74999999999992</Width>
- <Height>88.425742574257583</Height>
- <Angle>0</Angle>
- <ItemGuid>94F3E5A1-413E-4EA0-BDE1-F0625BFF7910</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>cbb20fba-d713-4521-8410-148b1156cae5</ID>
- <Left>25.541666666666771</Left>
- <Top>455.68811881188083</Top>
- <Width>172.91666666666669</Width>
- <Height>126.97029702970292</Height>
- <Angle>0</Angle>
- <ItemGuid>1778C1A7-AFB5-42F9-9E00-E80D30D9FC0A</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="BlowerItem">
- <ID>f707fe47-9f48-4be2-b0cd-29022c9ec79a</ID>
- <Left>39.083333333333357</Left>
- <Top>621.20297029702988</Top>
- <Width>160.41666666666671</Width>
- <Height>72.554455445544363</Height>
- <Angle>0</Angle>
- <ItemGuid>0B1752D6-7D4B-4957-BCDE-15465EA8EB55</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>87f906c6-e8b9-4d8c-bdef-3ef38c69aa33</ID>
- <Left>407.8333333333328</Left>
- <Top>250.49504950495043</Top>
- <Width>152.08333333333385</Width>
- <Height>140.57425742574253</Height>
- <Angle>0</Angle>
- <ItemGuid>27CEDD42-FDDD-45DF-A9D0-FDBF277FFB0F</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>08ffbe8d-0392-495e-9af0-aa386ee2fad9</ID>
- <Left>225.54166666666697</Left>
- <Top>249.36138613861385</Top>
- <Width>170.83333333333317</Width>
- <Height>145.10891089108895</Height>
- <Angle>0</Angle>
- <ItemGuid>FA21BC1D-04FA-4626-82A4-F77D2A4120C4</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>5c3b1479-5875-4e3f-9ed9-00529b403f4f</ID>
- <Left>1239.083333333333</Left>
- <Top>685.82178217821775</Top>
- <Width>173.95833333333354</Width>
- <Height>113.36633663366342</Height>
- <Angle>0</Angle>
- <ItemGuid>7e1f53ec-8176-4efa-ac3d-c8f2436e60d1</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>43e7bf4f-e7ee-4f86-bfe7-dfbe538e4586</ID>
- <Left>1238.0416666666667</Left>
- <Top>567.9207920792079</Top>
- <Width>153.12500000000006</Width>
- <Height>114.5</Height>
- <Angle>0</Angle>
- <ItemGuid>78db28d0-0407-4942-bb62-c44da81c4f9e</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- <MachineTechViewProjectTab>
- <Name>Thread insertion</Name>
- <Items>
- <TechItem xsi:type="MotorItem">
- <ID>443a977c-8e89-4a56-82e4-684bac7945c9</ID>
- <Left>21.874999999999972</Left>
- <Top>32.9640322439318</Top>
- <Width>247</Width>
- <Height>172.25663716814159</Height>
- <Angle>0</Angle>
- <ItemGuid>08d15ca1-d7d1-460f-8f37-42c37c287cd1</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>500</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>a821b716-cb7d-4951-84ee-e56955431099</ID>
- <Left>340.41666666666674</Left>
- <Top>230.32064312625903</Top>
- <Width>271.45833333333326</Width>
- <Height>166.60838517480056</Height>
- <Angle>0</Angle>
- <ItemGuid>b90a4e78-ebbf-44db-829b-949517d6400b</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>350</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>e36e321b-d48d-4199-a1ee-75ac18e9de1e</ID>
- <Left>988.91666666666652</Left>
- <Top>244.36432138789076</Top>
- <Width>217</Width>
- <Height>155.26106194690203</Height>
- <Angle>0</Angle>
- <ItemGuid>c6099065-a735-4cc5-b575-c31a45bb9262</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>350</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>8790db03-4dfd-4d49-aec0-706babb55af9</ID>
- <Left>346</Left>
- <Top>438.23254183824758</Top>
- <Width>240</Width>
- <Height>172.30973451327589</Height>
- <Angle>0</Angle>
- <ItemGuid>2d3eaca5-4dfd-40d9-9d1f-aa4ae794eddc</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>500</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>69ebcb28-13d9-41b3-a9ef-b2be51584141</ID>
- <Left>17.25</Left>
- <Top>239.82725838954167</Top>
- <Width>255</Width>
- <Height>170.15044247787392</Height>
- <Angle>0</Angle>
- <ItemGuid>b71ad55d-d296-4371-a6d2-9d3c637c0380</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>1000</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>7b5b6896-f626-4e59-a5cf-2600e603c0f6</ID>
- <Left>1280.291666666667</Left>
- <Top>435.1617453780857</Top>
- <Width>237</Width>
- <Height>179.22123893805463</Height>
- <Angle>0</Angle>
- <ItemGuid>7b6d0a93-5a91-4e1f-af47-353afd8b5ea6</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>20</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>2052a2d3-843c-4a1c-87fd-acd0832fd1b9</ID>
- <Left>688.125</Left>
- <Top>27.933978796104839</Top>
- <Width>220</Width>
- <Height>168.473451327436</Height>
- <Angle>0</Angle>
- <ItemGuid>c9482395-35e6-4340-8dab-83d5dfe907a7</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>1000</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>339b7d00-d688-41cf-926a-8171d5e62740</ID>
- <Left>683.20833333333337</Left>
- <Top>436.40050819241503</Top>
- <Width>240</Width>
- <Height>159.84070796460173</Height>
- <Angle>0</Angle>
- <ItemGuid>f3b5076e-cba3-4ad2-b3cc-0c4e907bd9ef</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>200</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>7644a8f9-00a2-4e37-8f48-0667b1541114</ID>
- <Left>1285.5416666666665</Left>
- <Top>39.867782353458267</Top>
- <Width>233</Width>
- <Height>159.57079646017985</Height>
- <Angle>0</Angle>
- <ItemGuid>92237d83-9f85-48db-aa6f-2fc5c9e0d8cd</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>500</Speed>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>c706d31b-48b0-44cc-a9c4-11d3acdcf667</ID>
- <Left>1018.3333333333334</Left>
- <Top>603.18879530178208</Top>
- <Width>169</Width>
- <Height>83.45969508455255</Height>
- <Angle>0</Angle>
- <ItemGuid>2a454081-bd5e-41de-ae5d-97aefe1d76de</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>7ccff69d-50f9-4e9b-a997-72a67917df5e</ID>
- <Left>683.25</Left>
- <Top>239.17940068343398</Top>
- <Width>239.95833333333337</Width>
- <Height>154.99115044247867</Height>
- <Angle>0</Angle>
- <ItemGuid>7c03f12f-ab2a-4421-8575-aefd6dec0001</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>10</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>a88a74cb-418b-4ed0-89ec-c42ff560528e</ID>
- <Left>1281.333333333333</Left>
- <Top>233.20743888547975</Top>
- <Width>234.29166666666652</Width>
- <Height>157.55879260492486</Height>
- <Angle>0</Angle>
- <ItemGuid>b7c1aea4-32c1-41cb-bca3-4aa665529b49</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>500</Speed>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>37267035-ae9d-4c72-a04f-215f754d0900</ID>
- <Left>700.70833333333326</Left>
- <Top>639.25891527204931</Top>
- <Width>205.625</Width>
- <Height>105.8987996144798</Height>
- <Angle>0</Angle>
- <ItemGuid>6b9cba1d-4acf-4992-97ad-e422bca6ada2</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>ca4a5397-68a1-4a2f-b614-80132cd513ee</ID>
- <Left>1003.0416666666667</Left>
- <Top>53.154034872515865</Top>
- <Width>240</Width>
- <Height>116.10176991150968</Height>
- <Angle>0</Angle>
- <ItemGuid>6f48e18c-d472-425a-ba7e-633630605e11</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>6313cc40-15b2-41b0-ba61-cd0849421176</ID>
- <Left>20.333333333333371</Left>
- <Top>440.95049504950487</Top>
- <Width>255</Width>
- <Height>170.15044247787392</Height>
- <Angle>0</Angle>
- <ItemGuid>54695c85-b4a5-4e9d-95b1-b9e55844cde2</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>500</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>122528e8-77bc-40fa-afbc-534c2fb3b0cc</ID>
- <Left>348.45833333333331</Left>
- <Top>30.56435643564356</Top>
- <Width>255</Width>
- <Height>170.15044247787392</Height>
- <Angle>0</Angle>
- <ItemGuid>bda5aa4d-13aa-4259-92e5-b969276cb2b1</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>1000</Speed>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>99884eb7-051d-4e72-97dd-1c52fcd25fff</ID>
- <Left>979.70833333333326</Left>
- <Top>180.20792079207939</Top>
- <Width>196.87499999999977</Width>
- <Height>36.277227722772068</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>Right Actuator</Text>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>a4b1a4ee-38ed-48a0-82eb-76b96f06a3ac</ID>
- <Left>1000.9583333333335</Left>
- <Top>444.351485148515</Top>
- <Width>240</Width>
- <Height>116.10176991150968</Height>
- <Angle>0</Angle>
- <ItemGuid>698f79a5-0bb1-4f19-a679-0294031ec43d</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>fae05523-674c-4b14-a860-b6cc8e351d76</ID>
- <Left>992.208333333333</Left>
- <Top>553.26675720669289</Top>
- <Width>221.87499999999955</Width>
- <Height>56.683168316831029</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>Left Actuator</Text>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>a1fb6ece-dcdb-4d85-b06c-a8df718b6eef</ID>
- <Left>1023.4583333333336</Left>
- <Top>694.891089108911</Top>
- <Width>162.50000000000023</Width>
- <Height>49.881188118811338</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>Magnet</Text>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- </Tabs>
- <SelectedTabIndex>0</SelectedTabIndex>
-</MachineTechViewProject> \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/technician view files/FSE Draft 2.tpf b/Software/Stubs Collection/stubs/technician view files/FSE Draft 2.tpf
deleted file mode 100644
index fa2679a29..000000000
--- a/Software/Stubs Collection/stubs/technician view files/FSE Draft 2.tpf
+++ /dev/null
@@ -1,1401 +0,0 @@
-<?xml version="1.0"?>
-<MachineTechViewProject xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <Items />
- <Tabs>
- <MachineTechViewProjectTab>
- <Name>Temperatures</Name>
- <Items>
- <TechItem xsi:type="HeaterItem">
- <ID>a15665e3-af39-42d8-8c06-97d770632e10</ID>
- <Left>660.29166666666652</Left>
- <Top>9.9377026198189924</Top>
- <Width>207</Width>
- <Height>184.4159292035398</Height>
- <Angle>0</Angle>
- <ItemGuid>6D6CFA18-5922-4AFE-84B3-2721CE128681</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>DryerAirHeater</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>69.85</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>0ac64716-d30c-489b-939e-a26d06445866</ID>
- <Left>460.29166666666669</Left>
- <Top>19.687461666518857</Top>
- <Width>192.50000000000023</Width>
- <Height>171.73495137124343</Height>
- <Angle>0</Angle>
- <ItemGuid>A5DFC2DB-3B36-4377-96A0-D492CE785C00</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>DryerMainHeater</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>92.97</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>181796d8-64f6-420a-8f37-9af9df67d6a9</ID>
- <Left>302.41666666666669</Left>
- <Top>15.607640410059048</Top>
- <Width>161.37500000000006</Width>
- <Height>176.14921580653623</Height>
- <Angle>0</Angle>
- <ItemGuid>86808B48-B7F9-43AD-840E-2A6A5987C305</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>DryerSecondaryHeater</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>92.94</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>fd2bb3a3-a411-470d-bde7-0beaf84da059</ID>
- <Left>604.9583333333336</Left>
- <Top>254.26723911329191</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>8E764A14-0F84-4FEC-928B-32A2509CAD57</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone3</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>39.55</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>7e8dd386-cca6-4d07-8a3e-af5403756002</ID>
- <Left>779.958333333334</Left>
- <Top>259.33361079470779</Top>
- <Width>200</Width>
- <Height>187.45575221238937</Height>
- <Angle>0</Angle>
- <ItemGuid>B4EE8CC0-EE2B-4ABE-BF09-9226860E756B</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone2</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>37.29</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>32a91e5f-27c8-490d-b187-8e39b6626a13</ID>
- <Left>986.00000000000057</Left>
- <Top>258.07955839831766</Top>
- <Width>157</Width>
- <Height>194.54867256637175</Height>
- <Angle>0</Angle>
- <ItemGuid>27E7BB74-81C3-4EF2-80AE-962F111C441F</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone1</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>34.27</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>c844235a-8a29-4c2e-a964-e8f546d2ced7</ID>
- <Left>872.291666666667</Left>
- <Top>4.8713309384033892</Top>
- <Width>173</Width>
- <Height>183.40265486725662</Height>
- <Angle>0</Angle>
- <ItemGuid>42A62A48-F1D5-4BB6-AFEA-6A7DF6DCF626</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>MixerHeater</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>54.669999999999995</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>45b121b5-cf7c-41f7-8089-6d4d6b1ed2c8</ID>
- <Left>424.9583333333336</Left>
- <Top>251.60352229913406</Top>
- <Width>169</Width>
- <Height>197.27876106194645</Height>
- <Angle>0</Angle>
- <ItemGuid>94574D69-46E1-4144-A8B5-D4BF0DA96D18</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone4</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>40.71</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>e6b3eb18-482b-450e-b8a8-d2ac6bba4fd4</ID>
- <Left>220.95833333333351</Left>
- <Top>256.66546920178428</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>D6771DF4-771E-4D62-B6BA-BDE361C0A0F3</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone5</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>43.389999999999993</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>efff2e67-e3a3-4667-9208-4704707d7cda</ID>
- <Left>30.083333333333513</Left>
- <Top>256.74861999474194</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>D2B6CAA0-055E-4871-8D91-A5370F1ACB22</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone6</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>46.809999999999995</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>be9db1fd-d408-4f1c-a15a-d6ffe58fafb6</ID>
- <Left>965.95833333333428</Left>
- <Top>514.749539998249</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>188285E5-1493-4BED-8269-91743770A631</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone7</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>50.449999999999996</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>381f67cf-b7c6-4f6d-b089-37130798a5d8</ID>
- <Left>780.958333333334</Left>
- <Top>513.73626566196572</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>461FA2D7-1918-4958-AAA7-37A1A329FA12</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone8</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>48.22</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>3c923a93-4d15-4bbc-b1b3-be1876a77cfc</ID>
- <Left>597.9583333333336</Left>
- <Top>514.749539998249</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>63E2AFE0-0746-4AAB-AA74-C26EC1F282AE</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone9</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>47.269999999999996</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>26e078e6-df8c-4fbf-b10e-4b3f7c7e9500</ID>
- <Left>32.958333333333485</Left>
- <Top>513.736265661966</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>2D578A37-D808-40D0-ACE4-4A868EDD6BDC</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone12</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>39.64</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>7a8c3948-bb3d-4eb1-9276-315d34038f91</ID>
- <Left>223.9583333333334</Left>
- <Top>514.74953999824925</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>D41BBB23-6EB5-4743-89DB-9191000B475F</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone11</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>45.449999999999996</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>f7d4c8ac-28cb-4779-83ef-3ede5e5a612c</ID>
- <Left>411.9583333333336</Left>
- <Top>515.76281433453232</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>B4D0A1C8-711C-49A9-82A3-B5B9F35FC131</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone10</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>48.459999999999994</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>e502555c-95b0-4688-b5e3-8becb30fc62c</ID>
- <Left>590.65211589505361</Left>
- <Top>741.78705872367811</Top>
- <Width>200</Width>
- <Height>187.45575221238937</Height>
- <Angle>0</Angle>
- <ItemGuid>F8C1BA7F-F6DF-414D-BAF5-D4CB292F91F6</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeadCoverHeater1</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>283.75</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>0f7a35fc-e363-45b2-948d-ba66f91e4f0d</ID>
- <Left>40.197317631796878</Left>
- <Top>749.47260403204439</Top>
- <Width>200</Width>
- <Height>187.45575221238937</Height>
- <Angle>0</Angle>
- <ItemGuid>F39B952A-6194-4055-A5CB-A3421BFE0F9B</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeadCoverHeater2</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>283.75</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>748a5cd1-815b-4ffb-92fb-0c01cf381102</ID>
- <Left>1494.0091846051309</Left>
- <Top>431.98134057113157</Top>
- <Width>167.70833333333334</Width>
- <Height>104.29702970297035</Height>
- <Angle>0</Angle>
- <ItemGuid>1778C1A7-AFB5-42F9-9E00-E80D30D9FC0A</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>d462f0fc-2c71-4ba9-b3bd-1e8c64f36707</ID>
- <Left>1128.2727185092199</Left>
- <Top>850.9809690133618</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>8E764A14-0F84-4FEC-928B-32A2509CAD57</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>DryerAirHeater</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>0</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>false</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>8e2c2474-5764-493f-ac2c-33a8a4a0ffdc</ID>
- <Left>1315.9696925879443</Left>
- <Top>853.53491694908257</Top>
- <Width>200</Width>
- <Height>187.45575221238937</Height>
- <Angle>0</Angle>
- <ItemGuid>B4EE8CC0-EE2B-4ABE-BF09-9226860E756B</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>DryerAirHeater</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>0</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>false</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>71a948e8-676f-4b97-916b-edce26c01370</ID>
- <Left>1520.8570888838171</Left>
- <Top>845.99980518845655</Top>
- <Width>157</Width>
- <Height>194.54867256637175</Height>
- <Angle>0</Angle>
- <ItemGuid>27E7BB74-81C3-4EF2-80AE-962F111C441F</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>DryerAirHeater</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>0</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>false</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>d5bc68e3-a665-4951-a377-f9e0df4112be</ID>
- <Left>1109.7519712733683</Left>
- <Top>50.901960902201267</Top>
- <Width>449.5089477623826</Width>
- <Height>55.327112636891911</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>Common</Text>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>4a8362d4-e873-46a1-afbb-f56036c0f2cb</ID>
- <Left>1045.9458963394222</Left>
- <Top>460.86118629158989</Top>
- <Width>449.5089477623826</Width>
- <Height>55.327112636891911</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>Flat Head</Text>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>7e7868fd-3c47-4d5f-8c6f-fa4b18ae05b3</ID>
- <Left>1260.3013710587918</Left>
- <Top>791.39094759212651</Top>
- <Width>232.78141937694795</Width>
- <Height>45.135276098517238</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>Arc</Text>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>1de56a7a-e25e-4508-a87e-de0230e91dc3</ID>
- <Left>1516.0481568975797</Left>
- <Top>366.24959926534439</Top>
- <Width>117.72853393776677</Width>
- <Height>48.047229395195586</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>Ambient</Text>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>51ce86b2-0063-48c6-89f6-182a189ffaaa</ID>
- <Left>70.075574021778309</Left>
- <Top>976.2041030585757</Top>
- <Width>140.47154617574461</Width>
- <Height>104.83031868042667</Height>
- <Angle>0</Angle>
- <ItemGuid>20768F26-8D03-4660-8355-B29C595DFCB2</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>9001f8a5-c4c2-4be8-820f-2174b580c53b</ID>
- <Left>252.40090220375726</Left>
- <Top>947.54574115036348</Top>
- <Width>148.7597052289122</Width>
- <Height>121.44535613863422</Height>
- <Angle>0</Angle>
- <ItemGuid>20768F26-8D03-4660-8355-B29C595DFCB2</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="BlowerItem">
- <ID>9f31d14c-d7ec-45c1-b87c-3f4923a6af58</ID>
- <Left>260.2054564281259</Left>
- <Top>787.10370299452848</Top>
- <Width>142.5965330388309</Width>
- <Height>127.53048371566092</Height>
- <Angle>0</Angle>
- <ItemGuid>080EB945-8E52-4876-9704-F9908FD26967</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="BlowerItem">
- <ID>5c687318-7840-4196-af07-2455e10d1bcf</ID>
- <Left>816.2919957682775</Left>
- <Top>836.89502513753882</Top>
- <Width>153.84978866867277</Width>
- <Height>58.239065933570373</Height>
- <Angle>0</Angle>
- <ItemGuid>998B5E61-3119-443D-ABAA-EFBC283B1021</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>95a693e0-816b-4edc-a2ae-98ac393c6f48</ID>
- <Left>819.83243778511473</Left>
- <Top>957.65691621970711</Top>
- <Width>128.43112793210935</Width>
- <Height>104.83031868042667</Height>
- <Angle>0</Angle>
- <ItemGuid>20768F26-8D03-4660-8355-B29C595DFCB2</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>8d26a1fe-4293-413d-9f4e-b3a562bf25db</ID>
- <Left>628.1918504863404</Left>
- <Top>971.65955281411607</Top>
- <Width>128.43112793210935</Width>
- <Height>104.83031868042667</Height>
- <Angle>0</Angle>
- <ItemGuid>20768F26-8D03-4660-8355-B29C595DFCB2</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>e1273b48-af58-4acd-9e8a-11bc59516b16</ID>
- <Left>612.48035467271029</Left>
- <Top>949.40114439880108</Top>
- <Width>163.52519712936567</Width>
- <Height>30.060733624349837</Height>
- <Angle>0</Angle>
- <ColorNumber>-12968193</ColorNumber>
- <Text>air flow 1</Text>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>31a7f747-9569-473c-a345-696d1acb8044</ID>
- <Left>61.998970290683857</Left>
- <Top>953.87279414695115</Top>
- <Width>160.0623860169863</Width>
- <Height>26.292098005808043</Height>
- <Angle>0</Angle>
- <ColorNumber>-12968193</ColorNumber>
- <Text>air flow 2</Text>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- <MachineTechViewProjectTab>
- <Name>Dispensers</Name>
- <Items>
- <TechItem xsi:type="DispenserItem">
- <ID>dce78f33-c966-4848-8c6e-a4a01dbc7577</ID>
- <Left>1322.1428571428571</Left>
- <Top>214.15929203538531</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>2CC8E461-E91F-4D4C-A402-922477F06C87</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>800</Speed>
- <DisplayName>Dispenser 1</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>2d03fc19-0502-43e1-a3ff-4012a612112b</ID>
- <Left>1149</Left>
- <Top>218.48230088495342</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>C8D8FE90-0375-44A2-A6D1-E997789E065C</ItemGuid>
- <ColorNumber>-16724737</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 2</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>81958374-3fa3-48b3-a554-5653fe1934b1</ID>
- <Left>959</Left>
- <Top>210.32743362830422</Top>
- <Width>156</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>08ED9044-CAD6-4492-94B2-C07206E0164B</ItemGuid>
- <ColorNumber>-65325</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 3</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>8fead411-7198-4428-a364-e32f3035ed94</ID>
- <Left>775</Left>
- <Top>206.42920353980952</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>179F34BB-3252-4D3A-965C-E6EB43D6FE7C</ItemGuid>
- <ColorNumber>-524544</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 4</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>31bfa89f-e64d-4a3b-8585-c4a1b2e5a139</ID>
- <Left>585</Left>
- <Top>208.47345132741418</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>716B35CF-46E0-47D5-AF85-5233D212568F</ItemGuid>
- <ColorNumber>-2108246</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 5</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>c2bff5f3-6dc9-4b07-87ba-9e3a5814804e</ID>
- <Left>372</Left>
- <Top>216.75221238937439</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>99528449-4D76-4874-AB95-522951560E01</ItemGuid>
- <ColorNumber>-263685</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 6</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>071281a5-3569-4a62-8b68-7bea850a3c07</ID>
- <Left>217</Left>
- <Top>211.63716814158107</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>E8ED07E2-7C36-459C-B9E5-6A23A1E24F03</ItemGuid>
- <ColorNumber>-723724</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 7</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>7b703b9a-a626-4ae5-8e31-fa1cfe5718f4</ID>
- <Left>45</Left>
- <Top>216.04867256635521</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>8A957565-4165-49F7-854D-D21F95FFBE1B</ItemGuid>
- <ColorNumber>-724238</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 8</DisplayName>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>caca40a2-310c-452e-adcf-c28ee38f6bdc</ID>
- <Left>1305</Left>
- <Top>31.606194690259713</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid>
- <ColorNumber>-15856114</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>af52d36f-27a2-4a31-8ceb-9c43fedbed22</ID>
- <Left>1127</Left>
- <Top>32.535398230081626</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid>
- <ColorNumber>-15293470</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>d40eada8-d22a-4521-bd2a-d998ed93106f</ID>
- <Left>955</Left>
- <Top>32.61946902653176</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid>
- <ColorNumber>-1570857</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>b2d6364d-8b5c-43d2-8838-927c85b017b1</ID>
- <Left>774</Left>
- <Top>31.960176991142362</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid>
- <ColorNumber>-1379575</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>3980e685-73b3-4af1-9593-9235be147322</ID>
- <Left>596</Left>
- <Top>32.889380530964274</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid>
- <ColorNumber>-7763381</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>51465293-58d5-40a4-8302-81856f8b4f47</ID>
- <Left>424</Left>
- <Top>32.973451327414409</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>AF3FD56C-95BF-4DE1-8EDC-8426B0DB2A26</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>c2a8c5b2-891b-4f9f-862c-c1c294366c78</ID>
- <Left>252</Left>
- <Top>31.703539823006281</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>60DA9EA3-C8A6-4D41-8AD8-3EB1BAA79CC9</ItemGuid>
- <ColorNumber>-8391822</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>9618e441-8973-4e16-a90b-06ce5798bd29</ID>
- <Left>80</Left>
- <Top>31.787610619456416</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>EF66F95A-E166-4FA2-B1AF-D6F55621817A</ItemGuid>
- <ColorNumber>-2186185</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>5bf7a681-ee47-477e-8b47-ba7a2eb6e115</ID>
- <Left>1113.3333333333337</Left>
- <Top>463.97555419258936</Top>
- <Width>144</Width>
- <Height>80.495575221237516</Height>
- <Angle>0</Angle>
- <ItemGuid>3174ADCF-5793-4B5A-A3C6-B96E146A903D</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>29b17a4b-fd4e-49cc-a3cd-418730176bf7</ID>
- <Left>952.33333333333326</Left>
- <Top>464.97555419258811</Top>
- <Width>144</Width>
- <Height>80.495575221237516</Height>
- <Angle>0</Angle>
- <ItemGuid>AD50C358-5BAF-4A2F-8593-51A22C85B3D1</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>21a5429f-c3a2-4e3b-ae77-c5538f30130d</ID>
- <Left>758.33333333333326</Left>
- <Top>462.68794357311867</Top>
- <Width>144</Width>
- <Height>82.535398230087083</Height>
- <Angle>0</Angle>
- <ItemGuid>E2F0FC31-CE7E-416B-ACEA-8EB6CA9B850B</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>96a46b0c-37b1-4457-93fb-b3dc301c5743</ID>
- <Left>571.33333333333326</Left>
- <Top>464.08617366161127</Top>
- <Width>144</Width>
- <Height>80.495575221237516</Height>
- <Angle>0</Angle>
- <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C09F</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>d4ad8603-9929-415f-9990-1869fcff36e4</ID>
- <Left>1293.3333333333337</Left>
- <Top>467.71449224568437</Top>
- <Width>144</Width>
- <Height>80.495575221237516</Height>
- <Angle>0</Angle>
- <ItemGuid>84682E90-6926-42AA-BF8C-2CCCF5C26C97</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="ValveItem">
- <ID>25249d78-ee37-42a8-b5aa-96f60e97c3ea</ID>
- <Left>607.32892156862749</Left>
- <Top>598.34526296666354</Top>
- <Width>327</Width>
- <Height>108.53097345133028</Height>
- <Angle>0</Angle>
- <ItemGuid>8B1FCBC3-FEEA-4F87-B56F-CE5D28B7ACA4</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="ValveItem">
- <ID>cdddd48e-422d-48f4-8397-5032c3705fdb</ID>
- <Left>1071.0833333333335</Left>
- <Top>577.88035573468915</Top>
- <Width>382</Width>
- <Height>136.79203539823016</Height>
- <Angle>0</Angle>
- <ItemGuid>04C58CA0-9719-4BB0-8D3B-D4C71129D8E4</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>ee6d4c5a-ca5b-4557-8012-dacf700cdc08</ID>
- <Left>214.33333333333326</Left>
- <Top>463.08617366162218</Top>
- <Width>144</Width>
- <Height>80.495575221237516</Height>
- <Angle>0</Angle>
- <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C010</ItemGuid>
- <ColorNumber>-8391822</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>20576bb2-202f-4170-9af5-f3c18b410112</ID>
- <Left>60.333333333333258</Left>
- <Top>463.48440375011319</Top>
- <Width>144</Width>
- <Height>80.495575221237516</Height>
- <Angle>0</Angle>
- <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C011</ItemGuid>
- <ColorNumber>-2186185</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>3b484b31-da50-4861-abce-70a06193fe6f</ID>
- <Left>395.33333333333331</Left>
- <Top>465.89108910891088</Top>
- <Width>144</Width>
- <Height>80.495575221237516</Height>
- <Angle>0</Angle>
- <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C092</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- <MachineTechViewProjectTab>
- <Name>Waste</Name>
- <Items>
- <TechItem xsi:type="MonitorItem">
- <ID>73486478-cffe-43f9-a949-0a6b0e522e9e</ID>
- <Left>25.541666666666686</Left>
- <Top>24.896039603960332</Top>
- <Width>179.16666666666666</Width>
- <Height>143.97524752475249</Height>
- <Angle>0</Angle>
- <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>880c81c4-a02d-4c6e-a861-11a1ca0699d2</ID>
- <Left>789.08333333333326</Left>
- <Top>24.896039603960446</Top>
- <Width>179.16666666666666</Width>
- <Height>143.97524752475249</Height>
- <Angle>0</Angle>
- <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>47231575-fde1-4ab7-9032-86d48a7fef7b</ID>
- <Left>596.37500000000011</Left>
- <Top>23.762376237623698</Top>
- <Width>179.16666666666666</Width>
- <Height>143.97524752475249</Height>
- <Angle>0</Angle>
- <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>ba429140-e9ef-4257-8666-c1ad03b81e1c</ID>
- <Left>217.20833333333343</Left>
- <Top>22.628712871287121</Top>
- <Width>179.16666666666666</Width>
- <Height>143.97524752475249</Height>
- <Angle>0</Angle>
- <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>ece2bc5a-5a2b-4ff9-a409-4f130e8155ff</ID>
- <Left>984.91666666666674</Left>
- <Top>26.029702970296967</Top>
- <Width>179.16666666666666</Width>
- <Height>143.97524752475249</Height>
- <Angle>0</Angle>
- <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>4dacd4d7-046e-4478-b7d1-f96539c21d89</ID>
- <Left>1183.8750000000002</Left>
- <Top>22.628712871287121</Top>
- <Width>179.16666666666666</Width>
- <Height>143.97524752475249</Height>
- <Angle>0</Angle>
- <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>b5c670f3-59c6-40a7-872c-00a128ef5bbe</ID>
- <Left>1371.3749999999998</Left>
- <Top>23.762376237623698</Top>
- <Width>179.16666666666666</Width>
- <Height>143.97524752475249</Height>
- <Angle>0</Angle>
- <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>f58afef3-9825-4139-8975-fa91c3f3e10d</ID>
- <Left>405.74999999999994</Left>
- <Top>26.029702970297024</Top>
- <Width>179.16666666666666</Width>
- <Height>143.97524752475249</Height>
- <Angle>0</Angle>
- <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>ba8f119b-4c4c-45ed-8bd3-4bdfe2f6dd78</ID>
- <Left>1395.3333333333335</Left>
- <Top>593.99504950495043</Top>
- <Width>179.16666666666666</Width>
- <Height>143.97524752475249</Height>
- <Angle>0</Angle>
- <ItemGuid>79AD6611-82A2-4B4C-AB5E-A11A33E1243D</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>4a6a278a-633d-4917-acf4-83e9f3818a75</ID>
- <Left>29.708333333333115</Left>
- <Top>249.36138613861391</Top>
- <Width>179.16666666666666</Width>
- <Height>143.97524752475249</Height>
- <Angle>0</Angle>
- <ItemGuid>055D0A38-09BD-490D-9852-12B06A4B22F2</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>71d506d0-4dcc-4b66-8e26-f5b0fd807b5f</ID>
- <Left>714.08333333333348</Left>
- <Top>245.96039603960367</Top>
- <Width>179.16666666666666</Width>
- <Height>143.97524752475249</Height>
- <Angle>0</Angle>
- <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>14c6bcd8-c314-444f-939b-340f989c8c8a</ID>
- <Left>924.5</Left>
- <Top>241.42574257425736</Top>
- <Width>179.16666666666666</Width>
- <Height>143.97524752475249</Height>
- <Angle>0</Angle>
- <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>93c19fe3-5f8e-4260-a908-a6eb2cd83d82</ID>
- <Left>730.75000000000011</Left>
- <Top>430.7475247524751</Top>
- <Width>381.25</Width>
- <Height>91.826732673267259</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>WHS Temperatures</Text>
- </TechItem>
- <TechItem xsi:type="DigitalInItem">
- <ID>77de4fd1-a2e1-46c2-8997-f8a22b4eb906</ID>
- <Left>1406.7916666666663</Left>
- <Top>226.68811881188123</Top>
- <Width>146.87500000000046</Width>
- <Height>99.762376237623585</Height>
- <Angle>0</Angle>
- <ItemGuid>d7bef231-9cb6-4394-b871-d9b52be73304</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalInItem">
- <ID>8cd5e67b-34c0-428b-8b74-41d27d2c22cf</ID>
- <Left>1405.7499999999998</Left>
- <Top>419.41089108910887</Top>
- <Width>144.79166666666674</Width>
- <Height>95.227722772277275</Height>
- <Angle>0</Angle>
- <ItemGuid>d7bef231-9cb6-4394-b871-d9b52be73304</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalInItem">
- <ID>4988f409-07c8-4cd5-b173-02bd88e67999</ID>
- <Left>1402.6250000000009</Left>
- <Top>332.11881188118815</Top>
- <Width>143.75</Width>
- <Height>86.158415841584088</Height>
- <Angle>0</Angle>
- <ItemGuid>d7bef231-9cb6-4394-b871-d9b52be73304</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>a0f6a227-e63f-44b1-b375-e287dffaadd6</ID>
- <Left>1290.125</Left>
- <Top>531.64356435643606</Top>
- <Width>239.58333333333349</Width>
- <Height>36.277227722772295</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>Cartridge</Text>
- </TechItem>
- <TechItem xsi:type="DigitalInItem">
- <ID>716466da-4b1e-4ef6-82a6-a257f0ece033</ID>
- <Left>1259.9166666666661</Left>
- <Top>241.42574257425764</Top>
- <Width>125</Width>
- <Height>100.89603960396016</Height>
- <Angle>0</Angle>
- <ItemGuid>d7bef231-9cb6-4394-b871-d9b52be73304</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalInItem">
- <ID>b181b88a-f448-45c0-ad49-5570b2540b4b</ID>
- <Left>1259.9166666666665</Left>
- <Top>427.34653465346491</Top>
- <Width>129.16666666666652</Width>
- <Height>91.826732673267315</Height>
- <Angle>0</Angle>
- <ItemGuid>d7bef231-9cb6-4394-b871-d9b52be73304</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalInItem">
- <ID>5905f078-74e3-455d-ad6a-1e1a52da21c3</ID>
- <Left>1247.4166666666667</Left>
- <Top>332.11881188118809</Top>
- <Width>148.95833333333326</Width>
- <Height>89.559405940594047</Height>
- <Angle>0</Angle>
- <ItemGuid>d7bef231-9cb6-4394-b871-d9b52be73304</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>48eeab5d-b535-4206-886f-d176da3e950f</ID>
- <Left>221.37500000000006</Left>
- <Top>464.75742574257436</Top>
- <Width>172.91666666666677</Width>
- <Height>109.96534653465358</Height>
- <Angle>0</Angle>
- <ItemGuid>FE0D0A56-5795-4C5A-8E09-939FBB35C441</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>a866ff20-1f1c-4aa0-891f-4ac5e37db38a</ID>
- <Left>233.87499999999989</Left>
- <Top>599.66336633663366</Top>
- <Width>143.74999999999992</Width>
- <Height>88.425742574257583</Height>
- <Angle>0</Angle>
- <ItemGuid>94F3E5A1-413E-4EA0-BDE1-F0625BFF7910</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>cbb20fba-d713-4521-8410-148b1156cae5</ID>
- <Left>25.541666666666771</Left>
- <Top>455.68811881188083</Top>
- <Width>172.91666666666669</Width>
- <Height>126.97029702970292</Height>
- <Angle>0</Angle>
- <ItemGuid>1778C1A7-AFB5-42F9-9E00-E80D30D9FC0A</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="BlowerItem">
- <ID>f707fe47-9f48-4be2-b0cd-29022c9ec79a</ID>
- <Left>39.083333333333357</Left>
- <Top>621.20297029702988</Top>
- <Width>160.41666666666671</Width>
- <Height>72.554455445544363</Height>
- <Angle>0</Angle>
- <ItemGuid>0B1752D6-7D4B-4957-BCDE-15465EA8EB55</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>87f906c6-e8b9-4d8c-bdef-3ef38c69aa33</ID>
- <Left>407.8333333333328</Left>
- <Top>250.49504950495043</Top>
- <Width>152.08333333333385</Width>
- <Height>140.57425742574253</Height>
- <Angle>0</Angle>
- <ItemGuid>27CEDD42-FDDD-45DF-A9D0-FDBF277FFB0F</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>08ffbe8d-0392-495e-9af0-aa386ee2fad9</ID>
- <Left>225.54166666666697</Left>
- <Top>249.36138613861385</Top>
- <Width>170.83333333333317</Width>
- <Height>145.10891089108895</Height>
- <Angle>0</Angle>
- <ItemGuid>FA21BC1D-04FA-4626-82A4-F77D2A4120C4</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>5c3b1479-5875-4e3f-9ed9-00529b403f4f</ID>
- <Left>1239.083333333333</Left>
- <Top>685.82178217821775</Top>
- <Width>173.95833333333354</Width>
- <Height>113.36633663366342</Height>
- <Angle>0</Angle>
- <ItemGuid>7e1f53ec-8176-4efa-ac3d-c8f2436e60d1</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>43e7bf4f-e7ee-4f86-bfe7-dfbe538e4586</ID>
- <Left>1238.0416666666667</Left>
- <Top>567.9207920792079</Top>
- <Width>153.12500000000006</Width>
- <Height>114.5</Height>
- <Angle>0</Angle>
- <ItemGuid>78db28d0-0407-4942-bb62-c44da81c4f9e</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- <MachineTechViewProjectTab>
- <Name>Thread insertion</Name>
- <Items>
- <TechItem xsi:type="MotorItem">
- <ID>443a977c-8e89-4a56-82e4-684bac7945c9</ID>
- <Left>21.874999999999972</Left>
- <Top>32.9640322439318</Top>
- <Width>247</Width>
- <Height>172.25663716814159</Height>
- <Angle>0</Angle>
- <ItemGuid>08d15ca1-d7d1-460f-8f37-42c37c287cd1</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>500</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>a821b716-cb7d-4951-84ee-e56955431099</ID>
- <Left>340.41666666666674</Left>
- <Top>230.32064312625903</Top>
- <Width>271.45833333333326</Width>
- <Height>166.60838517480056</Height>
- <Angle>0</Angle>
- <ItemGuid>b90a4e78-ebbf-44db-829b-949517d6400b</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>350</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>e36e321b-d48d-4199-a1ee-75ac18e9de1e</ID>
- <Left>988.91666666666652</Left>
- <Top>244.36432138789076</Top>
- <Width>217</Width>
- <Height>155.26106194690203</Height>
- <Angle>0</Angle>
- <ItemGuid>c6099065-a735-4cc5-b575-c31a45bb9262</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>350</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>8790db03-4dfd-4d49-aec0-706babb55af9</ID>
- <Left>346</Left>
- <Top>438.23254183824758</Top>
- <Width>240</Width>
- <Height>172.30973451327589</Height>
- <Angle>0</Angle>
- <ItemGuid>2d3eaca5-4dfd-40d9-9d1f-aa4ae794eddc</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>500</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>69ebcb28-13d9-41b3-a9ef-b2be51584141</ID>
- <Left>17.25</Left>
- <Top>239.82725838954167</Top>
- <Width>255</Width>
- <Height>170.15044247787392</Height>
- <Angle>0</Angle>
- <ItemGuid>b71ad55d-d296-4371-a6d2-9d3c637c0380</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>1000</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>7b5b6896-f626-4e59-a5cf-2600e603c0f6</ID>
- <Left>1280.291666666667</Left>
- <Top>435.1617453780857</Top>
- <Width>237</Width>
- <Height>179.22123893805463</Height>
- <Angle>0</Angle>
- <ItemGuid>7b6d0a93-5a91-4e1f-af47-353afd8b5ea6</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>20</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>2052a2d3-843c-4a1c-87fd-acd0832fd1b9</ID>
- <Left>688.125</Left>
- <Top>27.933978796104839</Top>
- <Width>220</Width>
- <Height>168.473451327436</Height>
- <Angle>0</Angle>
- <ItemGuid>c9482395-35e6-4340-8dab-83d5dfe907a7</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>1000</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>339b7d00-d688-41cf-926a-8171d5e62740</ID>
- <Left>683.20833333333337</Left>
- <Top>436.40050819241503</Top>
- <Width>240</Width>
- <Height>159.84070796460173</Height>
- <Angle>0</Angle>
- <ItemGuid>f3b5076e-cba3-4ad2-b3cc-0c4e907bd9ef</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>200</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>7644a8f9-00a2-4e37-8f48-0667b1541114</ID>
- <Left>1285.5416666666665</Left>
- <Top>39.867782353458267</Top>
- <Width>233</Width>
- <Height>159.57079646017985</Height>
- <Angle>0</Angle>
- <ItemGuid>92237d83-9f85-48db-aa6f-2fc5c9e0d8cd</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>500</Speed>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>c706d31b-48b0-44cc-a9c4-11d3acdcf667</ID>
- <Left>1018.3333333333334</Left>
- <Top>603.18879530178208</Top>
- <Width>169</Width>
- <Height>83.45969508455255</Height>
- <Angle>0</Angle>
- <ItemGuid>2a454081-bd5e-41de-ae5d-97aefe1d76de</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>7ccff69d-50f9-4e9b-a997-72a67917df5e</ID>
- <Left>683.25</Left>
- <Top>239.17940068343398</Top>
- <Width>239.95833333333337</Width>
- <Height>154.99115044247867</Height>
- <Angle>0</Angle>
- <ItemGuid>7c03f12f-ab2a-4421-8575-aefd6dec0001</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>10</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>a88a74cb-418b-4ed0-89ec-c42ff560528e</ID>
- <Left>1281.333333333333</Left>
- <Top>233.20743888547975</Top>
- <Width>234.29166666666652</Width>
- <Height>157.55879260492486</Height>
- <Angle>0</Angle>
- <ItemGuid>b7c1aea4-32c1-41cb-bca3-4aa665529b49</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>500</Speed>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>37267035-ae9d-4c72-a04f-215f754d0900</ID>
- <Left>700.70833333333326</Left>
- <Top>639.25891527204931</Top>
- <Width>205.625</Width>
- <Height>105.8987996144798</Height>
- <Angle>0</Angle>
- <ItemGuid>6b9cba1d-4acf-4992-97ad-e422bca6ada2</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>ca4a5397-68a1-4a2f-b614-80132cd513ee</ID>
- <Left>1003.0416666666667</Left>
- <Top>53.154034872515865</Top>
- <Width>240</Width>
- <Height>116.10176991150968</Height>
- <Angle>0</Angle>
- <ItemGuid>6f48e18c-d472-425a-ba7e-633630605e11</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>6313cc40-15b2-41b0-ba61-cd0849421176</ID>
- <Left>20.333333333333371</Left>
- <Top>440.95049504950487</Top>
- <Width>255</Width>
- <Height>170.15044247787392</Height>
- <Angle>0</Angle>
- <ItemGuid>54695c85-b4a5-4e9d-95b1-b9e55844cde2</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>500</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>122528e8-77bc-40fa-afbc-534c2fb3b0cc</ID>
- <Left>348.45833333333331</Left>
- <Top>30.56435643564356</Top>
- <Width>255</Width>
- <Height>170.15044247787392</Height>
- <Angle>0</Angle>
- <ItemGuid>bda5aa4d-13aa-4259-92e5-b969276cb2b1</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>1000</Speed>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>99884eb7-051d-4e72-97dd-1c52fcd25fff</ID>
- <Left>979.70833333333326</Left>
- <Top>180.20792079207939</Top>
- <Width>196.87499999999977</Width>
- <Height>36.277227722772068</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>Right Actuator</Text>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>a4b1a4ee-38ed-48a0-82eb-76b96f06a3ac</ID>
- <Left>1000.9583333333335</Left>
- <Top>444.351485148515</Top>
- <Width>240</Width>
- <Height>116.10176991150968</Height>
- <Angle>0</Angle>
- <ItemGuid>698f79a5-0bb1-4f19-a679-0294031ec43d</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>fae05523-674c-4b14-a860-b6cc8e351d76</ID>
- <Left>992.208333333333</Left>
- <Top>553.26675720669289</Top>
- <Width>221.87499999999955</Width>
- <Height>56.683168316831029</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>Left Actuator</Text>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>a1fb6ece-dcdb-4d85-b06c-a8df718b6eef</ID>
- <Left>1023.4583333333336</Left>
- <Top>694.891089108911</Top>
- <Width>162.50000000000023</Width>
- <Height>49.881188118811338</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>Magnet</Text>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- </Tabs>
- <SelectedTabIndex>0</SelectedTabIndex>
-</MachineTechViewProject> \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/technician view files/alpha.tpf b/Software/Stubs Collection/stubs/technician view files/alpha.tpf
deleted file mode 100644
index 66d243885..000000000
--- a/Software/Stubs Collection/stubs/technician view files/alpha.tpf
+++ /dev/null
@@ -1,2149 +0,0 @@
-<?xml version="1.0"?>
-<MachineTechViewProject xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <Items />
- <Tabs>
- <MachineTechViewProjectTab>
- <Name>Temperatures</Name>
- <Items>
- <TechItem xsi:type="MonitorItem">
- <ID>50bae43f-8b1a-4279-9238-b976a0c72af3</ID>
- <Left>1530</Left>
- <Top>193.19911504424795</Top>
- <Width>169</Width>
- <Height>181.37610619469029</Height>
- <Angle>0</Angle>
- <ItemGuid>A8DB1D27-6B25-4FB4-A3F5-46A29BA51955</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>88d1ed8f-752b-4eb0-9dad-b47aee34d5db</ID>
- <Left>677</Left>
- <Top>64.513274336283189</Top>
- <Width>575</Width>
- <Height>201.64159292035407</Height>
- <Angle>0</Angle>
- <ItemGuid>48E8DD1B-46EC-4576-B513-7E734503B6DA</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>701</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>1</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>e4892498-fa1a-413c-9dd8-633efaade51c</ID>
- <Left>561</Left>
- <Top>638.02654867256649</Top>
- <Width>203</Width>
- <Height>160.09734513274339</Height>
- <Angle>0</Angle>
- <ItemGuid>6b9cba1d-4acf-4992-97ad-e422bca6ada2</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>1a243586-f54c-4208-bc29-458c45acd578</ID>
- <Left>776</Left>
- <Top>641.06637168141606</Top>
- <Width>215</Width>
- <Height>159.08407079646031</Height>
- <Angle>0</Angle>
- <ItemGuid>b05b8324-022b-4d61-ae4a-33c97cd1f51b</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>c399ec1f-152e-4517-b6a3-c17bb445fc79</ID>
- <Left>57</Left>
- <Top>853.73451327433634</Top>
- <Width>251</Width>
- <Height>184.41592920353969</Height>
- <Angle>0</Angle>
- <ItemGuid>6f851979-d69c-4243-9383-1517a8bdc656</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>500</Speed>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>211ad3c8-3c39-47a1-88c0-089fb13678a0</ID>
- <Left>361</Left>
- <Top>858.80088495575251</Top>
- <Width>245</Width>
- <Height>204.68141592920335</Height>
- <Angle>0</Angle>
- <ItemGuid>C8D8FE90-0375-44A2-A6D1-E997789E065C</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>1700</Speed>
- <DisplayName>Dispenser 2</DisplayName>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>07ad9c30-c4cf-461a-904e-f6661d464c26</ID>
- <Left>665</Left>
- <Top>870.96017699115055</Top>
- <Width>216</Width>
- <Height>147.93805309734523</Height>
- <Angle>0</Angle>
- <ItemGuid>3bed8c31-bcd6-479b-8a5d-92ce8a5e4d41</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>500</Speed>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>de829cd4-0493-48d3-ac3a-4b9db77f2f42</ID>
- <Left>969</Left>
- <Top>866.90707964601779</Top>
- <Width>190</Width>
- <Height>145.91150442477886</Height>
- <Angle>0</Angle>
- <ItemGuid>08ED9044-CAD6-4492-94B2-C07206E0164B</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>1700</Speed>
- <DisplayName>Dispenser 3</DisplayName>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>a15665e3-af39-42d8-8c06-97d770632e10</ID>
- <Left>1289</Left>
- <Top>72.951327433628364</Top>
- <Width>207</Width>
- <Height>184.4159292035398</Height>
- <Angle>0</Angle>
- <ItemGuid>6D6CFA18-5922-4AFE-84B3-2721CE128681</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>DryerAirHeater</HeaterType>
- <SetPoint>190</SetPoint>
- <CurrentValue>104.97999999999999</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>true</IsRampingUp>
- <IsInSetPoint>false</IsInSetPoint>
- </HeaterState>
- <SetPoint>190</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>0ac64716-d30c-489b-939e-a26d06445866</ID>
- <Left>450</Left>
- <Top>54.65044247787489</Top>
- <Width>212</Width>
- <Height>177.32300884955754</Height>
- <Angle>0</Angle>
- <ItemGuid>A5DFC2DB-3B36-4377-96A0-D492CE785C00</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>DryerMainHeater</HeaterType>
- <SetPoint>100</SetPoint>
- <CurrentValue>167.04999999999998</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>100</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>181796d8-64f6-420a-8f37-9af9df67d6a9</ID>
- <Left>245</Left>
- <Top>50.159292035398948</Top>
- <Width>199</Width>
- <Height>180.36283185840711</Height>
- <Angle>0</Angle>
- <ItemGuid>86808B48-B7F9-43AD-840E-2A6A5987C305</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>DryerSecondaryHeater</HeaterType>
- <SetPoint>100</SetPoint>
- <CurrentValue>171.27999999999997</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>100</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>fd2bb3a3-a411-470d-bde7-0beaf84da059</ID>
- <Left>667</Left>
- <Top>320.19026548672576</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>8E764A14-0F84-4FEC-928B-32A2509CAD57</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone3</HeaterType>
- <SetPoint>135</SetPoint>
- <CurrentValue>126.22999999999999</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>true</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>135</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>7e8dd386-cca6-4d07-8a3e-af5403756002</ID>
- <Left>894</Left>
- <Top>321.20353982300895</Top>
- <Width>200</Width>
- <Height>187.45575221238937</Height>
- <Angle>0</Angle>
- <ItemGuid>B4EE8CC0-EE2B-4ABE-BF09-9226860E756B</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone2</HeaterType>
- <SetPoint>120</SetPoint>
- <CurrentValue>107.83</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>true</IsRampingUp>
- <IsInSetPoint>false</IsInSetPoint>
- </HeaterState>
- <SetPoint>120</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>32a91e5f-27c8-490d-b187-8e39b6626a13</ID>
- <Left>1128</Left>
- <Top>326.26991150442478</Top>
- <Width>157</Width>
- <Height>194.54867256637175</Height>
- <Angle>0</Angle>
- <ItemGuid>27E7BB74-81C3-4EF2-80AE-962F111C441F</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone1</HeaterType>
- <SetPoint>80</SetPoint>
- <CurrentValue>79.42</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>80</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>c844235a-8a29-4c2e-a964-e8f546d2ced7</ID>
- <Left>1281</Left>
- <Top>587.69469026548677</Top>
- <Width>173</Width>
- <Height>183.40265486725662</Height>
- <Angle>0</Angle>
- <ItemGuid>42A62A48-F1D5-4BB6-AFEA-6A7DF6DCF626</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>MixerHeater</HeaterType>
- <SetPoint>80</SetPoint>
- <CurrentValue>78.4</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>80</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>45b121b5-cf7c-41f7-8089-6d4d6b1ed2c8</ID>
- <Left>469</Left>
- <Top>324.61946902655012</Top>
- <Width>178</Width>
- <Height>207.41150442477846</Height>
- <Angle>0</Angle>
- <ItemGuid>94574D69-46E1-4144-A8B5-D4BF0DA96D18</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone4</HeaterType>
- <SetPoint>135</SetPoint>
- <CurrentValue>132.57</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>135</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>e6b3eb18-482b-450e-b8a8-d2ac6bba4fd4</ID>
- <Left>257</Left>
- <Top>328.66814159291738</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>D6771DF4-771E-4D62-B6BA-BDE361C0A0F3</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone5</HeaterType>
- <SetPoint>140</SetPoint>
- <CurrentValue>138.66</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>140</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>efff2e67-e3a3-4667-9208-4704707d7cda</ID>
- <Left>65</Left>
- <Top>331.91150442477812</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>D2B6CAA0-055E-4871-8D91-A5370F1ACB22</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone6</HeaterType>
- <SetPoint>145</SetPoint>
- <CurrentValue>112.38</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>true</IsRampingUp>
- <IsInSetPoint>false</IsInSetPoint>
- </HeaterState>
- <SetPoint>145</SetPoint>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>f9936dba-cef8-41e3-a715-eb629dca1870</ID>
- <Left>1311</Left>
- <Top>346.53539823008856</Top>
- <Width>199</Width>
- <Height>114.5</Height>
- <Angle>0</Angle>
- <ItemGuid>1778C1A7-AFB5-42F9-9E00-E80D30D9FC0A</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>217c677a-3e11-4a7c-959b-616dae1259dd</ID>
- <Left>1167</Left>
- <Top>280.67256637168151</Top>
- <Width>44</Width>
- <Height>42.557522123893705</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>A</Text>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>f129ea0d-9abb-437f-928e-1cd1f569db2a</ID>
- <Left>980.0000000000025</Left>
- <Top>272.39823008849913</Top>
- <Width>44</Width>
- <Height>42.557522123893705</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>C</Text>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>5f2610dc-3b9d-4302-b8f5-77a5e1c73b8c</ID>
- <Left>739.99999999999727</Left>
- <Top>269.79203539822839</Top>
- <Width>44</Width>
- <Height>42.557522123893705</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>D</Text>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>eadb5257-47a2-4336-a72a-f2d157fe70cb</ID>
- <Left>552.99999999999909</Left>
- <Top>277.11946902654887</Top>
- <Width>44</Width>
- <Height>42.557522123893705</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>F</Text>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>6c59af66-169a-46e0-89ae-a81e3e619043</ID>
- <Left>334.00000000000153</Left>
- <Top>280.39380530973477</Top>
- <Width>44</Width>
- <Height>42.557522123893705</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>I</Text>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>3b32b9a8-f300-443f-950e-c49f81678bac</ID>
- <Left>133.99999999999966</Left>
- <Top>283.84070796460247</Top>
- <Width>44</Width>
- <Height>42.557522123893705</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>L</Text>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>f6d44793-ed44-46ed-8854-eacbc11af10c</ID>
- <Left>909</Left>
- <Top>544.12389380530976</Top>
- <Width>219</Width>
- <Height>97.2743362831859</Height>
- <Angle>0</Angle>
- <ItemGuid>df38139e-0026-46bc-b72f-df5f9eec80f7</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>dd8f8a58-c09f-43dc-af6f-13fe83471be4</ID>
- <Left>1005</Left>
- <Top>624.17256637168157</Top>
- <Width>237</Width>
- <Height>170.23008849557505</Height>
- <Angle>0</Angle>
- <ItemGuid>cac03991-b332-4dfa-b491-c0e381b74fb9</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MonitorRecorderItem">
- <ID>43793f93-da64-4409-b583-bca498f641e6</ID>
- <Left>18</Left>
- <Top>25.3274336283186</Top>
- <Width>203</Width>
- <Height>107.40707964601774</Height>
- <Angle>0</Angle>
- <ColorNumber>-1</ColorNumber>
- <SelectedMonitorsGuids />
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>5827ad17-c283-41f2-b527-9c869786eed7</ID>
- <Left>14</Left>
- <Top>131.72123893805315</Top>
- <Width>164</Width>
- <Height>90.181415929203524</Height>
- <Angle>0</Angle>
- <ItemGuid>D59EFB38-79D9-446C-BCB5-92D8FDA900E4</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>d857cded-6617-4b22-aeb6-dc21be26a48f</ID>
- <Left>20</Left>
- <Top>247.23451327433628</Top>
- <Width>169</Width>
- <Height>62.823008849557596</Height>
- <Angle>0</Angle>
- <ItemGuid>9F98B9D3-F989-4D03-90E8-721671835E0B</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="BlowerItem">
- <ID>b284df29-a008-4c51-949f-42ee8bfbfe5f</ID>
- <Left>27</Left>
- <Top>692.06194690265488</Top>
- <Width>227</Width>
- <Height>103.35398230088504</Height>
- <Angle>0</Angle>
- <ItemGuid>0B1752D6-7D4B-4957-BCDE-15465EA8EB55</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>967f9229-fe28-4700-bc67-292027037a5f</ID>
- <Left>66</Left>
- <Top>561.54424778760892</Top>
- <Width>332</Width>
- <Height>98.358407079648259</Height>
- <Angle>0</Angle>
- <ItemGuid>F1DF490B-0577-4FA7-ACA1-0EEF4F934100</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>66f93adf-70f5-48b0-ae42-4cd6f0a7a821</ID>
- <Left>49</Left>
- <Top>665.87610619468933</Top>
- <Width>391</Width>
- <Height>45.429203539825039</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>Ambiet temp * 1000 + electric cabinet temp</Text>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- <MachineTechViewProjectTab>
- <Name>Thread</Name>
- <Items>
- <TechItem xsi:type="MonitorItem">
- <ID>50bae43f-8b1a-4279-9238-b976a0c72af3</ID>
- <Left>1530</Left>
- <Top>193.19911504424795</Top>
- <Width>169</Width>
- <Height>181.37610619469029</Height>
- <Angle>0</Angle>
- <ItemGuid>A8DB1D27-6B25-4FB4-A3F5-46A29BA51955</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>68eef943-2151-4df5-be61-044c3865606e</ID>
- <Left>1172</Left>
- <Top>145.78318584070678</Top>
- <Width>175</Width>
- <Height>167.827433628319</Height>
- <Angle>0</Angle>
- <ItemGuid>96B89605-F999-43FE-A1CD-2645BFB33A36</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>6be024c6-3d1b-4267-9b77-44473aba56b7</ID>
- <Left>988</Left>
- <Top>143.32300884955998</Top>
- <Width>190</Width>
- <Height>167.09734513274049</Height>
- <Angle>0</Angle>
- <ItemGuid>FC60060A-3736-4910-B41A-FF6DABDF0E9E</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>7c720f3b-00e1-49dd-92f9-fdd1e9686623</ID>
- <Left>817</Left>
- <Top>142.42035398230098</Top>
- <Width>169</Width>
- <Height>168.31858407079625</Height>
- <Angle>0</Angle>
- <ItemGuid>4CE6A82E-D841-4D33-BBB2-11F0743A441C</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>3ebd6759-521b-4ed1-a353-ee1ad7801f28</ID>
- <Left>922</Left>
- <Top>516.43362831858417</Top>
- <Width>439</Width>
- <Height>304.995575221239</Height>
- <Angle>0</Angle>
- <ItemGuid>D126DB23-784B-4F0C-8F88-D89A65A7549F</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>1460</Duration>
- <Min>0</Min>
- <Max>16384</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>1</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>984b4126-3dda-4624-a79f-0646eb0e1358</ID>
- <Left>465</Left>
- <Top>515.420353982301</Top>
- <Width>439</Width>
- <Height>304.995575221239</Height>
- <Angle>0</Angle>
- <ItemGuid>10102BC3-0EAE-47FF-A8E5-8640780CAA3D</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>1516</Duration>
- <Min>0</Min>
- <Max>16384</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>1</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>8ebc3ab7-a02d-4b12-93b3-2563443831d7</ID>
- <Left>15</Left>
- <Top>518.46017699115032</Top>
- <Width>439</Width>
- <Height>304.995575221239</Height>
- <Angle>0</Angle>
- <ItemGuid>C0BCCD5C-346B-4C4A-A080-39D28E9E1A0C</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>1398</Duration>
- <Min>0</Min>
- <Max>16384</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>1</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>acafb268-5e97-4277-8dc8-173250a9e3f8</ID>
- <Left>12</Left>
- <Top>13.849557522123973</Top>
- <Width>439</Width>
- <Height>304.995575221239</Height>
- <Angle>0</Angle>
- <ItemGuid>9FBC5460-BA59-486B-8D85-BD7D8A959F98</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>1273</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>1</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>3ccb1485-b0e9-4d36-a931-a1b3865edeaa</ID>
- <Left>460</Left>
- <Top>38.28761061946841</Top>
- <Width>267</Width>
- <Height>221.90707964601768</Height>
- <Angle>0</Angle>
- <ItemGuid>08d15ca1-d7d1-460f-8f37-42c37c287cd1</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>952.3546144121359</Speed>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>be4cb8d9-b516-4604-a6a5-1638cbc50251</ID>
- <Left>860</Left>
- <Top>-24.18584070796669</Top>
- <Width>345</Width>
- <Height>169.21681415929209</Height>
- <Angle>0</Angle>
- <ItemGuid>4CE6A82E-D841-4D33-BBB2-11F0743A441C</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>514</Duration>
- <Min>0</Min>
- <Max>100000</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>1</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>75b99507-4eba-4b11-b52e-26732d4c5479</ID>
- <Left>19</Left>
- <Top>324.14159292035305</Top>
- <Width>429</Width>
- <Height>193.26548672566258</Height>
- <Angle>0</Angle>
- <ItemGuid>F1DF490B-0577-4FA7-ACA1-0EEF4F934E8F</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>1398</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>4</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>a30e48de-be76-4230-92d0-d27d6f37b940</ID>
- <Left>474</Left>
- <Top>320.03097345132551</Top>
- <Width>429</Width>
- <Height>193.26548672566258</Height>
- <Angle>0</Angle>
- <ItemGuid>5F12B974-2C9E-4DDD-9B20-733251A5D7E6</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>1398</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>4</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>5ac4b368-093a-4192-98d4-e9d24f229b13</ID>
- <Left>928</Left>
- <Top>321.64601769912122</Top>
- <Width>429</Width>
- <Height>193.26548672566258</Height>
- <Angle>0</Angle>
- <ItemGuid>84CF23C9-D20D-4C08-BE1D-80201FC43C06</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>1398</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>4</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="MonitorRecorderItem">
- <ID>9c34dc69-cfaa-48b4-9d02-8f0d9bba79dd</ID>
- <Left>1303</Left>
- <Top>34.380530973454768</Top>
- <Width>176</Width>
- <Height>83.05309734512457</Height>
- <Angle>0</Angle>
- <ColorNumber>-1</ColorNumber>
- <SelectedMonitorsGuids>
- <string>89B7B89D-8050-4188-B568-35B1910CFB6F</string>
- <string>96B89605-F999-43FE-A1CD-2645BFB33A36</string>
- <string>84CF23C9-D20D-4C08-BE1D-80201FC43C06</string>
- <string>FC60060A-3736-4910-B41A-FF6DABDF0E9E</string>
- <string>5F12B974-2C9E-4DDD-9B20-733251A5D7E6</string>
- <string>9ADF7823-B293-4275-9999-F62474D246AA</string>
- <string>4CE6A82E-D841-4D33-BBB2-11F0743A441C</string>
- <string>F1DF490B-0577-4FA7-ACA1-0EEF4F934E8F</string>
- </SelectedMonitorsGuids>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- <MachineTechViewProjectTab>
- <Name>Dispensers</Name>
- <Items>
- <TechItem xsi:type="DispenserItem">
- <ID>dce78f33-c966-4848-8c6e-a4a01dbc7577</ID>
- <Left>1322.1428571428571</Left>
- <Top>214.15929203538531</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>2CC8E461-E91F-4D4C-A402-922477F06C87</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 1</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>2d03fc19-0502-43e1-a3ff-4012a612112b</ID>
- <Left>1149</Left>
- <Top>218.48230088495342</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>C8D8FE90-0375-44A2-A6D1-E997789E065C</ItemGuid>
- <ColorNumber>-16724737</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 2</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>81958374-3fa3-48b3-a554-5653fe1934b1</ID>
- <Left>959</Left>
- <Top>210.32743362830422</Top>
- <Width>156</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>08ED9044-CAD6-4492-94B2-C07206E0164B</ItemGuid>
- <ColorNumber>-65325</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 3</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>8fead411-7198-4428-a364-e32f3035ed94</ID>
- <Left>775</Left>
- <Top>206.42920353980952</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>179F34BB-3252-4D3A-965C-E6EB43D6FE7C</ItemGuid>
- <ColorNumber>-524544</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 4</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>31bfa89f-e64d-4a3b-8585-c4a1b2e5a139</ID>
- <Left>585</Left>
- <Top>208.47345132741418</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>716B35CF-46E0-47D5-AF85-5233D212568F</ItemGuid>
- <ColorNumber>-2108246</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 5</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>c2bff5f3-6dc9-4b07-87ba-9e3a5814804e</ID>
- <Left>372</Left>
- <Top>216.75221238937439</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>99528449-4D76-4874-AB95-522951560E01</ItemGuid>
- <ColorNumber>-263685</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 6</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>071281a5-3569-4a62-8b68-7bea850a3c07</ID>
- <Left>217</Left>
- <Top>211.63716814158107</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>E8ED07E2-7C36-459C-B9E5-6A23A1E24F03</ItemGuid>
- <ColorNumber>-723724</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 7</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>7b703b9a-a626-4ae5-8e31-fa1cfe5718f4</ID>
- <Left>45</Left>
- <Top>216.04867256635521</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>8A957565-4165-49F7-854D-D21F95FFBE1B</ItemGuid>
- <ColorNumber>-724238</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 8</DisplayName>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>caca40a2-310c-452e-adcf-c28ee38f6bdc</ID>
- <Left>1305</Left>
- <Top>31.606194690259713</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid>
- <ColorNumber>-15856114</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>af52d36f-27a2-4a31-8ceb-9c43fedbed22</ID>
- <Left>1127</Left>
- <Top>32.535398230081626</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid>
- <ColorNumber>-15293470</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>d40eada8-d22a-4521-bd2a-d998ed93106f</ID>
- <Left>955</Left>
- <Top>32.61946902653176</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid>
- <ColorNumber>-1570857</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>b2d6364d-8b5c-43d2-8838-927c85b017b1</ID>
- <Left>774</Left>
- <Top>31.960176991142362</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid>
- <ColorNumber>-1379575</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>3980e685-73b3-4af1-9593-9235be147322</ID>
- <Left>596</Left>
- <Top>32.889380530964274</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid>
- <ColorNumber>-7763381</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>51465293-58d5-40a4-8302-81856f8b4f47</ID>
- <Left>424</Left>
- <Top>32.973451327414409</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>AF3FD56C-95BF-4DE1-8EDC-8426B0DB2A26</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>c2a8c5b2-891b-4f9f-862c-c1c294366c78</ID>
- <Left>252</Left>
- <Top>31.703539823006281</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>60DA9EA3-C8A6-4D41-8AD8-3EB1BAA79CC9</ItemGuid>
- <ColorNumber>-8391822</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>9618e441-8973-4e16-a90b-06ce5798bd29</ID>
- <Left>80</Left>
- <Top>31.787610619456416</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>EF66F95A-E166-4FA2-B1AF-D6F55621817A</ItemGuid>
- <ColorNumber>-2186185</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>bce8c8e8-a317-4991-9aa7-cd99a45d1509</ID>
- <Left>28.22352941176473</Left>
- <Top>682.03174474303751</Top>
- <Width>247</Width>
- <Height>122.24778761061873</Height>
- <Angle>0</Angle>
- <ItemGuid>66cc8510-db9c-4e13-9151-01e705ec04de</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>72a23702-31bb-4ab8-aee5-2a02bcb1270b</ID>
- <Left>235.16470588235291</Left>
- <Top>699.99460095802579</Top>
- <Width>200</Width>
- <Height>94.15929203539747</Height>
- <Angle>0</Angle>
- <ItemGuid>36ba0ba4-e41d-45ff-8f68-1699e00c7107</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="ControllerItem">
- <ID>2dd6ff17-e515-4d8f-814f-a9683f404a8e</ID>
- <Left>140</Left>
- <Top>867.73893805310092</Top>
- <Width>160</Width>
- <Height>85.49115044247776</Height>
- <Angle>0</Angle>
- <ItemGuid>78482AA4-3DF6-421F-944C-64328D3C3EF2</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <OptimalRangeMinimum>0</OptimalRangeMinimum>
- <OptimalRangeMaximum>70</OptimalRangeMaximum>
- <IsSetToDefault>true</IsSetToDefault>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>06843009-1da0-4811-8e77-50576d0edcb1</ID>
- <Left>507</Left>
- <Top>792.77433628318749</Top>
- <Width>219</Width>
- <Height>125.75221238938025</Height>
- <Angle>0</Angle>
- <ItemGuid>0c5dc1e9-da17-4ff8-86aa-6b39fd796ba9</ItemGuid>
- <ColorNumber>-16777216</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>935dddd0-0c6f-4766-8173-f9118006a12b</ID>
- <Left>1303</Left>
- <Top>475.87168141593065</Top>
- <Width>160</Width>
- <Height>124.6504424778754</Height>
- <Angle>0</Angle>
- <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid>
- <ColorNumber>-15856114</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MultiGraphItem">
- <ID>97e39a59-dba8-4e42-a124-b37de9453baf</ID>
- <Left>370</Left>
- <Top>781.46902654866153</Top>
- <Width>710</Width>
- <Height>401.24778761063465</Height>
- <Angle>0</Angle>
- <ItemGuid>D023F15D-3555-48E9-A9E9-5DF99F60D791</ItemGuid>
- <ColorNumber>0</ColorNumber>
- <Duration>1956</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>46bdfce3-1c69-45dd-bbe9-582d1ac1e6f2</ID>
- <Left>1128</Left>
- <Top>482.80530973451141</Top>
- <Width>140</Width>
- <Height>117.32300884955743</Height>
- <Angle>0</Angle>
- <ItemGuid>0FE216B2-A097-4F2C-B465-08593F2532B3</ItemGuid>
- <ColorNumber>-15293470</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>429154a5-9a16-4423-85ca-ee4bae9aec3c</ID>
- <Left>968</Left>
- <Top>481.35398230088504</Top>
- <Width>140</Width>
- <Height>117.32300884955743</Height>
- <Angle>0</Angle>
- <ItemGuid>3271FD82-46D3-4789-B612-564967826C75</ItemGuid>
- <ColorNumber>-1570857</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>0f6ab8e8-99a7-4468-bde8-690a63467688</ID>
- <Left>766</Left>
- <Top>476.07964601769811</Top>
- <Width>140</Width>
- <Height>117.32300884955743</Height>
- <Angle>0</Angle>
- <ItemGuid>FBB806E7-42FA-4BAA-BDA1-3B8B07913AAD</ItemGuid>
- <ColorNumber>-1379575</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>bc0ac903-9c1f-4580-8b9e-670a76350473</ID>
- <Left>586</Left>
- <Top>474.38938053097161</Top>
- <Width>140</Width>
- <Height>117.32300884955743</Height>
- <Angle>0</Angle>
- <ItemGuid>436A22BB-AF79-4CB2-8A7D-DD4D9E54A81E</ItemGuid>
- <ColorNumber>-7763381</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>f9c960b2-b93e-46d5-b892-30337c0b55af</ID>
- <Left>391</Left>
- <Top>474.87168141592781</Top>
- <Width>140</Width>
- <Height>117.32300884955743</Height>
- <Angle>0</Angle>
- <ItemGuid>89EA6CC8-5363-4BEC-A370-D906611087A7</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>5ac157ab-2d53-4307-bf0b-b069854701ac</ID>
- <Left>226</Left>
- <Top>471.66814159292005</Top>
- <Width>140</Width>
- <Height>117.32300884955743</Height>
- <Angle>0</Angle>
- <ItemGuid>D5EBE52B-E2DF-4C97-80B1-F111F6B15854</ItemGuid>
- <ColorNumber>-8391822</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>65a19d7e-c524-48a0-bd70-28b99b113dd1</ID>
- <Left>69</Left>
- <Top>473.97787610619389</Top>
- <Width>140</Width>
- <Height>117.32300884955743</Height>
- <Angle>0</Angle>
- <ItemGuid>FE521D1B-A0EA-4FEA-AE64-33998A6CE138</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>5bf7a681-ee47-477e-8b47-ba7a2eb6e115</ID>
- <Left>1130</Left>
- <Top>624.9557522123913</Top>
- <Width>144</Width>
- <Height>80.495575221237516</Height>
- <Angle>0</Angle>
- <ItemGuid>3174ADCF-5793-4B5A-A3C6-B96E146A903D</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>29b17a4b-fd4e-49cc-a3cd-418730176bf7</ID>
- <Left>969</Left>
- <Top>625.95575221239</Top>
- <Width>144</Width>
- <Height>80.495575221237516</Height>
- <Angle>0</Angle>
- <ItemGuid>AD50C358-5BAF-4A2F-8593-51A22C85B3D1</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>21a5429f-c3a2-4e3b-ae77-c5538f30130d</ID>
- <Left>775</Left>
- <Top>623.66814159292062</Top>
- <Width>144</Width>
- <Height>82.535398230087083</Height>
- <Angle>0</Angle>
- <ItemGuid>E2F0FC31-CE7E-416B-ACEA-8EB6CA9B850B</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>96a46b0c-37b1-4457-93fb-b3dc301c5743</ID>
- <Left>588</Left>
- <Top>625.06637168141322</Top>
- <Width>144</Width>
- <Height>80.495575221237516</Height>
- <Angle>0</Angle>
- <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C09F</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>d4ad8603-9929-415f-9990-1869fcff36e4</ID>
- <Left>1310</Left>
- <Top>628.69469026548632</Top>
- <Width>144</Width>
- <Height>80.495575221237516</Height>
- <Angle>0</Angle>
- <ItemGuid>84682E90-6926-42AA-BF8C-2CCCF5C26C97</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="ValveItem">
- <ID>25249d78-ee37-42a8-b5aa-96f60e97c3ea</ID>
- <Left>20.870588235294122</Left>
- <Top>784.26605504587133</Top>
- <Width>327</Width>
- <Height>108.53097345133028</Height>
- <Angle>0</Angle>
- <ItemGuid>8B1FCBC3-FEEA-4F87-B56F-CE5D28B7ACA4</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>fc1d62f7-d13b-4a7b-8f9f-c687c987c7a9</ID>
- <Left>1065</Left>
- <Top>788.41592920352355</Top>
- <Width>370</Width>
- <Height>362.10619469026585</Height>
- <Angle>0</Angle>
- <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>1426</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>3</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>cc99a514-1498-4b93-a4eb-4e0a2a2e9de6</ID>
- <Left>628</Left>
- <Top>765.4469026548752</Top>
- <Width>394</Width>
- <Height>372.88495575221242</Height>
- <Angle>0</Angle>
- <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>1282</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>1</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="ValveItem">
- <ID>cdddd48e-422d-48f4-8397-5032c3705fdb</ID>
- <Left>1069</Left>
- <Top>698.04867256637226</Top>
- <Width>382</Width>
- <Height>136.79203539823016</Height>
- <Angle>0</Angle>
- <ItemGuid>16C0F85C-0479-42F4-A67E-3E0CD3B23C2D</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>ee6d4c5a-ca5b-4557-8012-dacf700cdc08</ID>
- <Left>231</Left>
- <Top>624.06637168142413</Top>
- <Width>144</Width>
- <Height>80.495575221237516</Height>
- <Angle>0</Angle>
- <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C010</ItemGuid>
- <ColorNumber>-8391822</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>20576bb2-202f-4170-9af5-f3c18b410112</ID>
- <Left>77</Left>
- <Top>624.46460176991513</Top>
- <Width>144</Width>
- <Height>80.495575221237516</Height>
- <Angle>0</Angle>
- <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C011</ItemGuid>
- <ColorNumber>-2186185</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- <MachineTechViewProjectTab>
- <Name>Thread insertion</Name>
- <Items>
- <TechItem xsi:type="MotorItem">
- <ID>443a977c-8e89-4a56-82e4-684bac7945c9</ID>
- <Left>25</Left>
- <Top>22.761061946902203</Top>
- <Width>247</Width>
- <Height>172.25663716814159</Height>
- <Angle>0</Angle>
- <ItemGuid>08d15ca1-d7d1-460f-8f37-42c37c287cd1</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>500</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>a821b716-cb7d-4951-84ee-e56955431099</ID>
- <Left>355</Left>
- <Top>20.592920353981697</Top>
- <Width>260</Width>
- <Height>153.00442477876106</Height>
- <Angle>0</Angle>
- <ItemGuid>b90a4e78-ebbf-44db-829b-949517d6400b</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>50</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>e36e321b-d48d-4199-a1ee-75ac18e9de1e</ID>
- <Left>694</Left>
- <Top>19.367256637167998</Top>
- <Width>217</Width>
- <Height>155.26106194690203</Height>
- <Angle>0</Angle>
- <ItemGuid>b7c1aea4-32c1-41cb-bca3-4aa665529b49</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>50</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>8790db03-4dfd-4d49-aec0-706babb55af9</ID>
- <Left>364</Left>
- <Top>222.16814159291846</Top>
- <Width>240</Width>
- <Height>172.30973451327589</Height>
- <Angle>0</Angle>
- <ItemGuid>2d3eaca5-4dfd-40d9-9d1f-aa4ae794eddc</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>500</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>69ebcb28-13d9-41b3-a9ef-b2be51584141</ID>
- <Left>29</Left>
- <Top>241.34955752210982</Top>
- <Width>263</Width>
- <Height>174.296460176989</Height>
- <Angle>0</Angle>
- <ItemGuid>c6099065-a735-4cc5-b575-c31a45bb9262</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>400</Speed>
- </TechItem>
- <TechItem xsi:type="ThreadMotionItem">
- <ID>4d562029-3fdf-40a4-a5a7-9a322253c912</ID>
- <Left>1168</Left>
- <Top>47.305309734517039</Top>
- <Width>304</Width>
- <Height>167.26548672566202</Height>
- <Angle>0</Angle>
- <ColorNumber>-1</ColorNumber>
- <Speed>40</Speed>
- </TechItem>
- <TechItem xsi:type="BreakSensorItem">
- <ID>92607e12-2dd6-41c9-8f89-f051f386b734</ID>
- <Left>1258</Left>
- <Top>277.55752212389069</Top>
- <Width>240</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>DCE08A06-6711-43AE-AB7C-EADD5AB70EE0</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>7b5b6896-f626-4e59-a5cf-2600e603c0f6</ID>
- <Left>695</Left>
- <Top>223.44247787610908</Top>
- <Width>228</Width>
- <Height>175.0353982300901</Height>
- <Angle>0</Angle>
- <ItemGuid>7b6d0a93-5a91-4e1f-af47-353afd8b5ea6</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>83.833754740833143</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>2052a2d3-843c-4a1c-87fd-acd0832fd1b9</ID>
- <Left>81</Left>
- <Top>542.88495575220634</Top>
- <Width>220</Width>
- <Height>168.473451327436</Height>
- <Angle>0</Angle>
- <ItemGuid>7c03f12f-ab2a-4421-8575-aefd6dec0001</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>1000</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>339b7d00-d688-41cf-926a-8171d5e62740</ID>
- <Left>376</Left>
- <Top>553.11061946903</Top>
- <Width>240</Width>
- <Height>159.84070796460173</Height>
- <Angle>0</Angle>
- <ItemGuid>f3b5076e-cba3-4ad2-b3cc-0c4e907bd9ef</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>98</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>7644a8f9-00a2-4e37-8f48-0667b1541114</ID>
- <Left>1014</Left>
- <Top>290.60619469026437</Top>
- <Width>240</Width>
- <Height>172.30973451327589</Height>
- <Angle>0</Angle>
- <ItemGuid>92237d83-9f85-48db-aa6f-2fc5c9e0d8cd</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>500</Speed>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>c706d31b-48b0-44cc-a9c4-11d3acdcf667</ID>
- <Left>548</Left>
- <Top>418.71652683599893</Top>
- <Width>269</Width>
- <Height>127.67256637168134</Height>
- <Angle>0</Angle>
- <ItemGuid>2a454081-bd5e-41de-ae5d-97aefe1d76de</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>7ccff69d-50f9-4e9b-a997-72a67917df5e</ID>
- <Left>803</Left>
- <Top>569.80530973451619</Top>
- <Width>227</Width>
- <Height>145.08849557522183</Height>
- <Angle>0</Angle>
- <ItemGuid>9c02effb-7deb-40a1-90c3-df1fb48e6431</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>30</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>a88a74cb-418b-4ed0-89ec-c42ff560528e</ID>
- <Left>1107</Left>
- <Top>573.87168141592883</Top>
- <Width>227</Width>
- <Height>145.08849557522183</Height>
- <Angle>0</Angle>
- <ItemGuid>a359e9d0-adcc-40a5-b3d9-b9cb26eca092</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>30</Speed>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- <MachineTechViewProjectTab>
- <Name>Head graphs</Name>
- <Items>
- <TechItem xsi:type="SingleGraphItem">
- <ID>ffe980da-dbbe-4bac-9595-46f587e9df00</ID>
- <Left>1</Left>
- <Top>57.486725663716754</Top>
- <Width>430</Width>
- <Height>187.15486725663709</Height>
- <Angle>0</Angle>
- <ItemGuid>D7585119-4A42-4370-8F1E-F3E62553E588</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>2962</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>c4e19f7c-e6e9-4f45-987e-f124456b2529</ID>
- <Left>784</Left>
- <Top>57.265486725668495</Top>
- <Width>412</Width>
- <Height>195.38938053097343</Height>
- <Angle>0</Angle>
- <ItemGuid>A8DB1D27-6B25-4FB4-A3F5-46A29BA51955</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>2817</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>3</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>b8b24455-1c20-417d-bd78-5fe4c7e3d023</ID>
- <Left>0</Left>
- <Top>240.77433628319324</Top>
- <Width>430</Width>
- <Height>224.47345132743214</Height>
- <Angle>0</Angle>
- <ItemGuid>6C0C1AB0-3EE9-40D7-8424-A79436FBC804</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>2982</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>2129a0cd-454f-4834-8197-3b048bf4b978</ID>
- <Left>779</Left>
- <Top>253.09292035398954</Top>
- <Width>414</Width>
- <Height>208.6194690265487</Height>
- <Angle>0</Angle>
- <ItemGuid>098F7CAB-030C-46B0-B2B8-A85AF2253032</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>2949</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>892fabb7-01fa-4b39-a19e-a557fafae0ac</ID>
- <Left>3</Left>
- <Top>465.50884955753315</Top>
- <Width>423</Width>
- <Height>226.97345132743362</Height>
- <Angle>0</Angle>
- <ItemGuid>DACEBF90-E2B4-4CC9-A973-B8B429AA0089</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>2628</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>4859974c-7224-42d5-97ca-0e2e549372f5</ID>
- <Left>788</Left>
- <Top>469.56194690266409</Top>
- <Width>409</Width>
- <Height>220.55752212389314</Height>
- <Angle>0</Angle>
- <ItemGuid>246C2551-5EFD-48E9-94F6-6313C5E5018F</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>3153</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>81b78212-14d8-4a66-bf3a-eeea9900e0d6</ID>
- <Left>423</Left>
- <Top>69.712389380530908</Top>
- <Width>179</Width>
- <Height>131.99999999999773</Height>
- <Angle>0</Angle>
- <ItemGuid>df38139e-0026-46bc-b72f-df5f9eec80f7</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>34c56855-114d-4c94-b8b7-16881430d626</ID>
- <Left>1198</Left>
- <Top>60.787610619475856</Top>
- <Width>144</Width>
- <Height>147.96017699114969</Height>
- <Angle>0</Angle>
- <ItemGuid>d59b64f7-a8cf-4a2b-935a-943ae35fb78c</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>0d35c220-41f5-49e8-99ba-72d5134e4c81</ID>
- <Left>1200</Left>
- <Top>269.79646017698923</Top>
- <Width>148</Width>
- <Height>154.90265486725662</Height>
- <Angle>0</Angle>
- <ItemGuid>9de55ec4-201f-4f62-9003-f63ebea06f8f</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>e72a263a-41c2-408c-ac98-7345c787a3b0</ID>
- <Left>1204</Left>
- <Top>471.31858407080483</Top>
- <Width>148</Width>
- <Height>160.278761061948</Height>
- <Angle>0</Angle>
- <ItemGuid>d28bfa3c-edce-4f19-a296-3da251fcc0e2</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>62fd293e-9461-4c91-a5b3-26ef7893f780</ID>
- <Left>420</Left>
- <Top>250.1769911504424</Top>
- <Width>189</Width>
- <Height>145.75221238937741</Height>
- <Angle>0</Angle>
- <ItemGuid>81a3ae80-f4ea-4857-bc4e-2055d3b5fbc7</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>10c62974-d2f9-4849-b88f-f223e04bacc6</ID>
- <Left>435</Left>
- <Top>474.43362831858008</Top>
- <Width>178</Width>
- <Height>153.6504424778766</Height>
- <Angle>0</Angle>
- <ItemGuid>16D0DEF7-A2E0-4163-9F4B-FBEC2573BCC7</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>37657a24-40d2-4c10-be0b-0587406d77bf</ID>
- <Left>10</Left>
- <Top>691.58849557522046</Top>
- <Width>415</Width>
- <Height>203.57522123893648</Height>
- <Angle>0</Angle>
- <ItemGuid>AFB7B6F7-8FFB-4A7F-B814-04F0C163CAA1</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>3153</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>9330a6be-17f1-4ecb-978d-719adf9fec1f</ID>
- <Left>781</Left>
- <Top>692.69911504425033</Top>
- <Width>409</Width>
- <Height>220.55752212389314</Height>
- <Angle>0</Angle>
- <ItemGuid>9A3877B2-9F98-4A5C-9A93-DECA2836FA8A</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>3153</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>3228b2ba-83f3-4eb2-a6d2-7200301758a4</ID>
- <Left>1191</Left>
- <Top>723.03539823007986</Top>
- <Width>186</Width>
- <Height>110.3451327433603</Height>
- <Angle>0</Angle>
- <ItemGuid>105ac1be-e6db-4a57-9f4a-bb9c780afd33</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>6fd0eeb3-6a2a-435f-a877-0c17c26c6692</ID>
- <Left>411</Left>
- <Top>727.73008849557368</Top>
- <Width>204</Width>
- <Height>114.92035398229848</Height>
- <Angle>0</Angle>
- <ItemGuid>9d403aad-157a-4128-874c-704da4ed9ac1</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>f9b4095c-4e87-41f2-955c-3b572ebee370</ID>
- <Left>611</Left>
- <Top>269.90265486725662</Top>
- <Width>142</Width>
- <Height>151.99115044247787</Height>
- <Angle>0</Angle>
- <ItemGuid>94574D69-46E1-4144-A8B5-D4BF0DA96D18</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone4</HeaterType>
- <SetPoint>150</SetPoint>
- <CurrentValue>150</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>150</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>4fa7a50d-5155-4785-95a0-508cd40fad4d</ID>
- <Left>1360</Left>
- <Top>77.818584070796476</Top>
- <Width>140</Width>
- <Height>168.77876106194691</Height>
- <Angle>0</Angle>
- <ItemGuid>27E7BB74-81C3-4EF2-80AE-962F111C441F</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone1</HeaterType>
- <SetPoint>80</SetPoint>
- <CurrentValue>80.02</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>80</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>9da56601-7b5b-4f0f-afbf-2b31970b104f</ID>
- <Left>1352</Left>
- <Top>292.19469026548552</Top>
- <Width>166</Width>
- <Height>148.95132743362956</Height>
- <Angle>0</Angle>
- <ItemGuid>8E764A14-0F84-4FEC-928B-32A2509CAD57</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone3</HeaterType>
- <SetPoint>150</SetPoint>
- <CurrentValue>149.94</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>150</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>b700e59d-f923-4f13-9dcc-942050548c22</ID>
- <Left>1359</Left>
- <Top>501.84513274336314</Top>
- <Width>160</Width>
- <Height>139.92920353982277</Height>
- <Angle>0</Angle>
- <ItemGuid>D6771DF4-771E-4D62-B6BA-BDE361C0A0F3</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone5</HeaterType>
- <SetPoint>150</SetPoint>
- <CurrentValue>150</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>150</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>97bf8fa2-b07f-4f0e-87ac-820ea52d236e</ID>
- <Left>1358</Left>
- <Top>716.707964601771</Top>
- <Width>160</Width>
- <Height>128.73451327433531</Height>
- <Angle>0</Angle>
- <ItemGuid>42A62A48-F1D5-4BB6-AFEA-6A7DF6DCF626</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>MixerHeater</HeaterType>
- <SetPoint>80</SetPoint>
- <CurrentValue>80</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>80</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>3941a557-05e6-4c1b-bb98-4f2a59892431</ID>
- <Left>606</Left>
- <Top>66.234513274336223</Top>
- <Width>155</Width>
- <Height>157.05752212389382</Height>
- <Angle>0</Angle>
- <ItemGuid>B4EE8CC0-EE2B-4ABE-BF09-9226860E756B</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone2</HeaterType>
- <SetPoint>120</SetPoint>
- <CurrentValue>119.97</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>120</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>3020fbc5-305e-4adf-9f1e-d7a48168e2e7</ID>
- <Left>628</Left>
- <Top>488.76991150442484</Top>
- <Width>133</Width>
- <Height>155.03097345132744</Height>
- <Angle>0</Angle>
- <ItemGuid>D2B6CAA0-055E-4871-8D91-A5370F1ACB22</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone6</HeaterType>
- <SetPoint>160</SetPoint>
- <CurrentValue>159.97</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>160</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>a4049a51-7417-4eab-8bc1-837574307e93</ID>
- <Left>599</Left>
- <Top>716.27876106194685</Top>
- <Width>161</Width>
- <Height>143.34955752212409</Height>
- <Angle>0</Angle>
- <ItemGuid>6D6CFA18-5922-4AFE-84B3-2721CE128681</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>DryerAirHeater</HeaterType>
- <SetPoint>190</SetPoint>
- <CurrentValue>190.13</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>190</SetPoint>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- <MachineTechViewProjectTab>
- <Name>waste</Name>
- <Items>
- <TechItem xsi:type="DigitalOutItem">
- <ID>bb9bf273-0a3d-4202-98ce-37a5f206ed75</ID>
- <Left>119</Left>
- <Top>68.898230088495609</Top>
- <Width>339</Width>
- <Height>184.4159292035398</Height>
- <Angle>0</Angle>
- <ItemGuid>7e1f53ec-8176-4efa-ac3d-c8f2436e60d1</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>59678a51-f995-4952-b250-e449f1fcbeac</ID>
- <Left>468</Left>
- <Top>80.336283185839477</Top>
- <Width>280</Width>
- <Height>166.17699115044252</Height>
- <Angle>0</Angle>
- <ItemGuid>78db28d0-0407-4942-bb62-c44da81c4f9e</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalInItem">
- <ID>8f9ff579-0e9d-4f48-8ed0-6fa563f2aba7</ID>
- <Left>873</Left>
- <Top>63.831858407079665</Top>
- <Width>174</Width>
- <Height>133.75221238938059</Height>
- <Angle>0</Angle>
- <ItemGuid>06bd7c0b-5aef-445a-86c0-853becf8594b</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalInItem">
- <ID>70d1bd1e-acdb-436a-b205-6eeb9d137120</ID>
- <Left>1070</Left>
- <Top>70.106194690265909</Top>
- <Width>221</Width>
- <Height>123.61946902654864</Height>
- <Angle>0</Angle>
- <ItemGuid>4048bf02-27dc-4049-9284-fe913a7e0ebe</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalInItem">
- <ID>dcc7ce16-5b89-4ff8-acd5-7fb0b9ebb6d1</ID>
- <Left>877</Left>
- <Top>248.24778761061947</Top>
- <Width>186</Width>
- <Height>126.65929203539827</Height>
- <Angle>0</Angle>
- <ItemGuid>00ea1771-efee-4f3e-a0d2-8b2a4214e9fd</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>2b99bbf7-94da-4bb2-acc9-91b35e543c5d</ID>
- <Left>897</Left>
- <Top>358.69469026548683</Top>
- <Width>147</Width>
- <Height>69.9159292035398</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>Waste lower presence</Text>
- </TechItem>
- <TechItem xsi:type="DigitalInItem">
- <ID>c150533c-abe4-4edf-b6ad-fa475b133142</ID>
- <Left>1112</Left>
- <Top>253.66814159291806</Top>
- <Width>186</Width>
- <Height>126.65929203539827</Height>
- <Angle>0</Angle>
- <ItemGuid>d2f266e3-779b-4dfe-b513-26ce61c529a4</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>d96f2a6d-0ccb-401e-8931-09086ca81fae</ID>
- <Left>1143</Left>
- <Top>366.78318584070507</Top>
- <Width>147</Width>
- <Height>69.9159292035398</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>Waste middle presence</Text>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>bb9847ba-9671-4613-bf23-a0c637ebc79d</ID>
- <Left>151</Left>
- <Top>271.55309734513281</Top>
- <Width>200</Width>
- <Height>63.836283185840671</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>pump</Text>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>d13a2df4-3f54-4c31-8f9a-ee7810fb6af5</ID>
- <Left>504</Left>
- <Top>283.71238938053096</Top>
- <Width>192</Width>
- <Height>67.88938053097354</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>valve</Text>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>fbe2670f-6d9b-4361-9332-1ceb1692c91a</ID>
- <Left>108</Left>
- <Top>484.61946902655154</Top>
- <Width>356</Width>
- <Height>208.10619469026472</Height>
- <Angle>0</Angle>
- <ItemGuid>78db28d0-0407-4942-bb62-c44da81c4f9e</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- <MachineTechViewProjectTab>
- <Name>disp</Name>
- <Items>
- <TechItem xsi:type="SingleGraphItem">
- <ID>f9531a72-3742-47a7-86bb-b589f8b3eb55</ID>
- <Left>123</Left>
- <Top>128.33628318584061</Top>
- <Width>390</Width>
- <Height>249.67699115047321</Height>
- <Angle>0</Angle>
- <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>3600</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>3</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>aae29286-81b3-476a-9f58-c0fd246cae96</ID>
- <Left>880</Left>
- <Top>158.81415929204155</Top>
- <Width>442</Width>
- <Height>241.88495575221771</Height>
- <Angle>0</Angle>
- <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>3600</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>3</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>7d94c7c4-1288-4f9d-b0e6-a06794829642</ID>
- <Left>1055</Left>
- <Top>14.181415929203524</Top>
- <Width>161</Width>
- <Height>111.46017699115049</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>Y</Text>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>c95f9ad1-b607-4606-8217-400bea76f3d6</ID>
- <Left>384</Left>
- <Top>23.991150442480944</Top>
- <Width>161</Width>
- <Height>111.46017699115049</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>C</Text>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>8f141fa5-fb24-4557-adcf-a6aa55a28fb4</ID>
- <Left>121</Left>
- <Top>-8.8495575221214722</Top>
- <Width>169</Width>
- <Height>132.73893805309734</Height>
- <Angle>0</Angle>
- <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>3</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>7eab018a-ef43-4bca-a6cf-857d69767bba</ID>
- <Left>839</Left>
- <Top>-4.7079646017762684</Top>
- <Width>169</Width>
- <Height>132.73893805309734</Height>
- <Angle>0</Angle>
- <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>3</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorRecorderItem">
- <ID>2a9e89d4-5d60-4a83-9527-cb77fdf35c14</ID>
- <Left>1276</Left>
- <Top>22.287610619469035</Top>
- <Width>187</Width>
- <Height>102.34070796460179</Height>
- <Angle>0</Angle>
- <ColorNumber>-1</ColorNumber>
- <SelectedMonitorsGuids>
- <string>1F0F907A-EC16-4386-AFC8-B2B156F2A822</string>
- <string>A499E5E0-A812-4032-8F96-B38C6762C4BD</string>
- <string>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</string>
- <string>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</string>
- <string>19645882-6587-4A50-BD85-AF06617DC654</string>
- <string>96B89605-F999-43FE-A1CD-2645BFB33A36</string>
- <string>84CF23C9-D20D-4C08-BE1D-80201FC43C06</string>
- <string>C0BCCD5C-346B-4C4A-A080-39D28E9E1A0C</string>
- <string>10102BC3-0EAE-47FF-A8E5-8640780CAA3D</string>
- <string>FC60060A-3736-4910-B41A-FF6DABDF0E9E</string>
- <string>5F12B974-2C9E-4DDD-9B20-733251A5D7E6</string>
- <string>D126DB23-784B-4F0C-8F88-D89A65A7549F</string>
- </SelectedMonitorsGuids>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>6d2e7962-b3ae-4682-b20e-9654f48dcffe</ID>
- <Left>587</Left>
- <Top>5.0619469026548813</Top>
- <Width>155</Width>
- <Height>131.72566371681415</Height>
- <Angle>0</Angle>
- <ItemGuid>2CC8E461-E91F-4D4C-A402-922477F06C87</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>500</Speed>
- <DisplayName>Dispenser 1</DisplayName>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>5ee2718f-f068-427b-a31e-d586c7d7682c</ID>
- <Left>131</Left>
- <Top>552.94690265486338</Top>
- <Width>390</Width>
- <Height>249.67699115047321</Height>
- <Angle>0</Angle>
- <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>3600</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>3</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>1c254a92-c075-453f-9667-cdcc91cf8e6a</ID>
- <Left>399</Left>
- <Top>455.67256637168265</Top>
- <Width>161</Width>
- <Height>111.46017699115049</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>K</Text>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>d1087b1a-c36b-4242-96f5-07c2bb602cc4</ID>
- <Left>145</Left>
- <Top>409.52212389380446</Top>
- <Width>169</Width>
- <Height>132.73893805309734</Height>
- <Angle>0</Angle>
- <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>3</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>53fe93a2-88a5-4d4d-9cd5-eb4d8a8fefae</ID>
- <Left>604</Left>
- <Top>561.16371681414739</Top>
- <Width>390</Width>
- <Height>249.67699115047321</Height>
- <Angle>0</Angle>
- <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>3600</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>3</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>0bef6e9d-6da0-4f06-9e1a-c00142bde4c1</ID>
- <Left>832</Left>
- <Top>440.91150442477635</Top>
- <Width>161</Width>
- <Height>111.46017699115049</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>M</Text>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>762c5a97-a3bc-45b4-aa9f-0b50afa9cb9b</ID>
- <Left>633</Left>
- <Top>434.0132743362783</Top>
- <Width>169</Width>
- <Height>132.73893805309734</Height>
- <Angle>0</Angle>
- <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>3</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>be584f80-3250-494c-87fc-250d6deae051</ID>
- <Left>1045</Left>
- <Top>559.4070796459921</Top>
- <Width>390</Width>
- <Height>249.67699115047321</Height>
- <Angle>0</Angle>
- <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>3600</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>3</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>39f6a02c-c4d9-47d0-b92d-bdea0ed5d3ce</ID>
- <Left>1056</Left>
- <Top>435.43805309733875</Top>
- <Width>169</Width>
- <Height>132.73893805309734</Height>
- <Angle>0</Angle>
- <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>3</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>5b924929-9b16-4598-94cc-b2f4bca26798</ID>
- <Left>1304</Left>
- <Top>448.0884955752224</Top>
- <Width>161</Width>
- <Height>111.46017699115049</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>TI</Text>
- </TechItem>
- <TechItem xsi:type="ValveItem">
- <ID>89ae1fa5-1ad1-469e-ae76-0a29c35805cd</ID>
- <Left>588</Left>
- <Top>317.1504424778762</Top>
- <Width>283</Width>
- <Height>74.982300884955748</Height>
- <Angle>0</Angle>
- <ItemGuid>E144A221-4859-4DC3-9A7E-4A2969FB0826</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="ValveItem">
- <ID>c218cf34-74c2-41bb-8c3b-3030abce451a</ID>
- <Left>1363</Left>
- <Top>384.02654867256643</Top>
- <Width>156</Width>
- <Height>94.234513274336337</Height>
- <Angle>0</Angle>
- <ItemGuid>E144A221-4859-4DC3-9A7E-4A2969FB0826</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="ValveItem">
- <ID>75af30c6-d7f8-4745-bfb5-d6dc5d50479a</ID>
- <Left>767</Left>
- <Top>362.74778761061958</Top>
- <Width>283</Width>
- <Height>74.982300884955748</Height>
- <Angle>0</Angle>
- <ItemGuid>E144A221-4859-4DC3-9A7E-4A2969FB0826</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>df1fd958-fd8a-4b00-98e1-679455494d60</ID>
- <Left>309</Left>
- <Top>13.168141592920392</Top>
- <Width>112</Width>
- <Height>107.40707964601768</Height>
- <Angle>0</Angle>
- <ItemGuid>3174ADCF-5793-4B5A-A3C6-B96E146A903D</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>f07225b3-1522-4cb6-9ba8-5b9697f05467</ID>
- <Left>1180</Left>
- <Top>60.7920353982301</Top>
- <Width>102</Width>
- <Height>88.1548672566372</Height>
- <Angle>0</Angle>
- <ItemGuid>E2F0FC31-CE7E-416B-ACEA-8EB6CA9B850B</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>45b87322-e1f5-42eb-88c6-71c2eeb2899a</ID>
- <Left>1258</Left>
- <Top>463.06194690265494</Top>
- <Width>88</Width>
- <Height>75.995575221239</Height>
- <Angle>0</Angle>
- <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C09F</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>0c1c25e8-3ce3-4994-bbb9-bd6b2367a413</ID>
- <Left>810</Left>
- <Top>462.04867256637175</Top>
- <Width>77</Width>
- <Height>80.048672566371636</Height>
- <Angle>0</Angle>
- <ItemGuid>AD50C358-5BAF-4A2F-8593-51A22C85B3D1</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>fa2f697e-b229-418a-bae6-78b92bf0458b</ID>
- <Left>336</Left>
- <Top>428.61061946902663</Top>
- <Width>95</Width>
- <Height>96.261061946902657</Height>
- <Angle>0</Angle>
- <ItemGuid>84682E90-6926-42AA-BF8C-2CCCF5C26C97</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- <MachineTechViewProjectTab>
- <Name>Priming</Name>
- <Items>
- <TechItem xsi:type="MonitorItem">
- <ID>ea45a516-9dac-4c9a-9261-0c44e22aa065</ID>
- <Left>808</Left>
- <Top>155.02654867256638</Top>
- <Width>219</Width>
- <Height>200.62831858407088</Height>
- <Angle>0</Angle>
- <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>3e2cb7dc-a5f3-4ba6-a520-2bae8ff0e4a8</ID>
- <Left>832</Left>
- <Top>451.91592920353986</Top>
- <Width>332</Width>
- <Height>326.27433628318596</Height>
- <Angle>0</Angle>
- <ItemGuid>C8D8FE90-0375-44A2-A6D1-E997789E065C</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 2</DisplayName>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>6f8dfd8d-ed50-4923-b908-e0b5bc5d6ae5</ID>
- <Left>154</Left>
- <Top>131.72123893805315</Top>
- <Width>474</Width>
- <Height>410.37610619469024</Height>
- <Angle>0</Angle>
- <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>1942</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>1</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="ValveItem">
- <ID>604e031b-89c3-4c9d-90ef-7b861a77e5e0</ID>
- <Left>243</Left>
- <Top>595.80088495575228</Top>
- <Width>497</Width>
- <Height>189.48230088495575</Height>
- <Angle>0</Angle>
- <ItemGuid>8B1FCBC3-FEEA-4F87-B56F-CE5D28B7ACA4</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>c414ae0e-323a-48c1-9165-2c05cc4234c6</ID>
- <Left>1291</Left>
- <Top>584.65486725663732</Top>
- <Width>200</Width>
- <Height>171.24336283185835</Height>
- <Angle>0</Angle>
- <ItemGuid>0bd10306-2944-4cda-bc59-0264da2883d2</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- </Tabs>
- <SelectedTabIndex>0</SelectedTabIndex>
-</MachineTechViewProject> \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/technician view files/new head.tpf b/Software/Stubs Collection/stubs/technician view files/new head.tpf
deleted file mode 100644
index 2ae59d2ed..000000000
--- a/Software/Stubs Collection/stubs/technician view files/new head.tpf
+++ /dev/null
@@ -1,3096 +0,0 @@
-<?xml version="1.0"?>
-<MachineTechViewProject xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <Items />
- <Tabs>
- <MachineTechViewProjectTab>
- <Name>Temperatures</Name>
- <Items>
- <TechItem xsi:type="DigitalOutItem">
- <ID>e4892498-fa1a-413c-9dd8-633efaade51c</ID>
- <Left>415</Left>
- <Top>692.74336283185824</Top>
- <Width>160</Width>
- <Height>102.34070796460173</Height>
- <Angle>0</Angle>
- <ItemGuid>6b9cba1d-4acf-4992-97ad-e422bca6ada2</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>a15665e3-af39-42d8-8c06-97d770632e10</ID>
- <Left>928</Left>
- <Top>593.77433628318579</Top>
- <Width>207</Width>
- <Height>184.4159292035398</Height>
- <Angle>0</Angle>
- <ItemGuid>6D6CFA18-5922-4AFE-84B3-2721CE128681</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>DryerAirHeater</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>176.1</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>0ac64716-d30c-489b-939e-a26d06445866</ID>
- <Left>828</Left>
- <Top>682.88053097345</Top>
- <Width>130</Width>
- <Height>100.31415929203541</Height>
- <Angle>0</Angle>
- <ItemGuid>A5DFC2DB-3B36-4377-96A0-D492CE785C00</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>DryerMainHeater</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>208.58999999999998</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>181796d8-64f6-420a-8f37-9af9df67d6a9</ID>
- <Left>717</Left>
- <Top>684.46902654867324</Top>
- <Width>127</Width>
- <Height>101.3274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>86808B48-B7F9-43AD-840E-2A6A5987C305</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>DryerSecondaryHeater</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>209.10999999999999</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>fd2bb3a3-a411-470d-bde7-0beaf84da059</ID>
- <Left>931</Left>
- <Top>83.08407079646031</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>8E764A14-0F84-4FEC-928B-32A2509CAD57</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone3</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>96.71</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>7e8dd386-cca6-4d07-8a3e-af5403756002</ID>
- <Left>1106</Left>
- <Top>88.1504424778762</Top>
- <Width>200</Width>
- <Height>187.45575221238937</Height>
- <Angle>0</Angle>
- <ItemGuid>B4EE8CC0-EE2B-4ABE-BF09-9226860E756B</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone2</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>88.699999999999989</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>32a91e5f-27c8-490d-b187-8e39b6626a13</ID>
- <Left>1311</Left>
- <Top>89.163716814159329</Top>
- <Width>157</Width>
- <Height>194.54867256637175</Height>
- <Angle>0</Angle>
- <ItemGuid>27E7BB74-81C3-4EF2-80AE-962F111C441F</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone1</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>76.08</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>c844235a-8a29-4c2e-a964-e8f546d2ced7</ID>
- <Left>1140</Left>
- <Top>588.70796460177</Top>
- <Width>173</Width>
- <Height>183.40265486725662</Height>
- <Angle>0</Angle>
- <ItemGuid>42A62A48-F1D5-4BB6-AFEA-6A7DF6DCF626</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>MixerHeater</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>78.37</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>45b121b5-cf7c-41f7-8089-6d4d6b1ed2c8</ID>
- <Left>751</Left>
- <Top>80.420353982302458</Top>
- <Width>169</Width>
- <Height>197.27876106194645</Height>
- <Angle>0</Angle>
- <ItemGuid>94574D69-46E1-4144-A8B5-D4BF0DA96D18</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone4</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>40.71</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>e6b3eb18-482b-450e-b8a8-d2ac6bba4fd4</ID>
- <Left>547</Left>
- <Top>85.482300884952679</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>D6771DF4-771E-4D62-B6BA-BDE361C0A0F3</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone5</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>0</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>efff2e67-e3a3-4667-9208-4704707d7cda</ID>
- <Left>353</Left>
- <Top>86.69911504424698</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>D2B6CAA0-055E-4871-8D91-A5370F1ACB22</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone6</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>46.809999999999995</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>f9936dba-cef8-41e3-a715-eb629dca1870</ID>
- <Left>265</Left>
- <Top>683.95575221238948</Top>
- <Width>131</Width>
- <Height>109.43362831858394</Height>
- <Angle>0</Angle>
- <ItemGuid>1778C1A7-AFB5-42F9-9E00-E80D30D9FC0A</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>5f2610dc-3b9d-4302-b8f5-77a5e1c73b8c</ID>
- <Left>1027.9999999999973</Left>
- <Top>291.07079646017547</Top>
- <Width>44</Width>
- <Height>42.557522123893705</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>D</Text>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>eadb5257-47a2-4336-a72a-f2d157fe70cb</ID>
- <Left>907.99999999999909</Left>
- <Top>295.35840707964616</Top>
- <Width>44</Width>
- <Height>42.557522123893705</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>F</Text>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>6c59af66-169a-46e0-89ae-a81e3e619043</ID>
- <Left>785.00000000000159</Left>
- <Top>288.5000000000004</Top>
- <Width>44</Width>
- <Height>42.557522123893705</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>I</Text>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>3b32b9a8-f300-443f-950e-c49f81678bac</ID>
- <Left>624.99999999999966</Left>
- <Top>285.86725663716874</Top>
- <Width>44</Width>
- <Height>42.557522123893705</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>L</Text>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>f6d44793-ed44-46ed-8854-eacbc11af10c</ID>
- <Left>569</Left>
- <Top>688.00884955752213</Top>
- <Width>155</Width>
- <Height>96.261061946902714</Height>
- <Angle>0</Angle>
- <ItemGuid>df38139e-0026-46bc-b72f-df5f9eec80f7</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MonitorRecorderItem">
- <ID>43793f93-da64-4409-b583-bca498f641e6</ID>
- <Left>1308</Left>
- <Top>656.59734513274338</Top>
- <Width>203</Width>
- <Height>107.40707964601774</Height>
- <Angle>0</Angle>
- <ColorNumber>-1</ColorNumber>
- <SelectedMonitorsGuids />
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>be9db1fd-d408-4f1c-a15a-d6ffe58fafb6</ID>
- <Left>1292</Left>
- <Top>343.56637168141606</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>188285E5-1493-4BED-8269-91743770A631</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone7</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>6.59</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>f129ea0d-9abb-437f-928e-1cd1f569db2a</ID>
- <Left>1190.0000000000025</Left>
- <Top>294.69026548672929</Top>
- <Width>39</Width>
- <Height>38.504424778760836</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>C</Text>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>217c677a-3e11-4a7c-959b-616dae1259dd</ID>
- <Left>1369</Left>
- <Top>295.87168141592934</Top>
- <Width>44</Width>
- <Height>42.557522123893705</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>A</Text>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>381f67cf-b7c6-4f6d-b089-37130798a5d8</ID>
- <Left>1107</Left>
- <Top>342.55309734513293</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>461FA2D7-1918-4958-AAA7-37A1A329FA12</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone8</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>48.22</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>3c923a93-4d15-4bbc-b1b3-be1876a77cfc</ID>
- <Left>924</Left>
- <Top>343.56637168141606</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>63E2AFE0-0746-4AAB-AA74-C26EC1F282AE</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone9</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>47.269999999999996</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>26e078e6-df8c-4fbf-b10e-4b3f7c7e9500</ID>
- <Left>359</Left>
- <Top>342.55309734513304</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>2D578A37-D808-40D0-ACE4-4A868EDD6BDC</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone12</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>39.64</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>7a8c3948-bb3d-4eb1-9276-315d34038f91</ID>
- <Left>550</Left>
- <Top>343.56637168141611</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>D41BBB23-6EB5-4743-89DB-9191000B475F</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone11</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>45.449999999999996</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>f7d4c8ac-28cb-4779-83ef-3ede5e5a612c</ID>
- <Left>738</Left>
- <Top>344.57964601769908</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>B4D0A1C8-711C-49A9-82A3-B5B9F35FC131</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone10</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>48.459999999999994</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="ProcessParametersItem">
- <ID>120a9bea-5b5a-4ba4-92f5-40135f49a344</ID>
- <Left>6</Left>
- <Top>535.07522123893818</Top>
- <Width>338</Width>
- <Height>137.80530973451323</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <ProcessParameters>
- <ID>0</ID>
- <Guid>674d92c5-e6f8-4a62-bc62-b8e2fe0882a0</Guid>
- <LastUpdated>2020-01-14T07:44:15.1425366Z</LastUpdated>
- <Name>Process parameters 2</Name>
- <DyeingSpeed>0</DyeingSpeed>
- <MinInkUptake>0</MinInkUptake>
- <MaxInkUptake>0</MaxInkUptake>
- <FeederTension>0</FeederTension>
- <PullerTension>0</PullerTension>
- <WinderTension>0</WinderTension>
- <MixerTemp>0</MixerTemp>
- <HeadZone1Temp>0</HeadZone1Temp>
- <HeadZone2Temp>0</HeadZone2Temp>
- <HeadZone3Temp>0</HeadZone3Temp>
- <HeadZone4Temp>0</HeadZone4Temp>
- <HeadZone5Temp>0</HeadZone5Temp>
- <HeadZone6Temp>0</HeadZone6Temp>
- <DryerAirFlow>7</DryerAirFlow>
- <DryerZone1Temp>0</DryerZone1Temp>
- <DryerZone2Temp>0</DryerZone2Temp>
- <DryerZone3Temp>0</DryerZone3Temp>
- <DryerBufferLength>0</DryerBufferLength>
- <HeadAirFlow>7</HeadAirFlow>
- <TableIndex>0</TableIndex>
- <HeadZone7Temp>0</HeadZone7Temp>
- <HeadZone8Temp>0</HeadZone8Temp>
- <HeadZone9Temp>0</HeadZone9Temp>
- <HeadZone10Temp>0</HeadZone10Temp>
- <HeadZone11Temp>0</HeadZone11Temp>
- <HeadZone12Temp>0</HeadZone12Temp>
- <RBlowerFlow>0</RBlowerFlow>
- <RBlowerTemp>0</RBlowerTemp>
- <LBlowerFlow>0</LBlowerFlow>
- <LBlowerTemp>0</LBlowerTemp>
- <PressureBuildUp>0</PressureBuildUp>
- </ProcessParameters>
- <ParametersIndices>
- <ParameterIndex>
- <Name>Name</Name>
- <Index>0</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dyeing Speed</Name>
- <Index>1</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Min Ink Uptake</Name>
- <Index>2</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Max Ink Uptake</Name>
- <Index>3</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Feeder Tension</Name>
- <Index>4</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Puller Tension</Name>
- <Index>5</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Winder Tension</Name>
- <Index>6</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Mixer Temp</Name>
- <Index>7</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 1 Temp</Name>
- <Index>8</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 2 Temp</Name>
- <Index>9</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 3 Temp</Name>
- <Index>10</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 4 Temp</Name>
- <Index>11</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 5 Temp</Name>
- <Index>12</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 6 Temp</Name>
- <Index>13</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Air Flow</Name>
- <Index>14</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Zone 1 Temp</Name>
- <Index>15</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Zone 2 Temp</Name>
- <Index>16</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Zone 3 Temp</Name>
- <Index>17</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Buffer Length</Name>
- <Index>18</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Air Flow</Name>
- <Index>19</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Process Parameters Tables Group Guid</Name>
- <Index>20</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Table Index</Name>
- <Index>21</Index>
- </ParameterIndex>
- </ParametersIndices>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>e502555c-95b0-4688-b5e3-8becb30fc62c</ID>
- <Left>1458.875</Left>
- <Top>91.7821782178217</Top>
- <Width>200</Width>
- <Height>187.45575221238937</Height>
- <Angle>0</Angle>
- <ItemGuid>F8C1BA7F-F6DF-414D-BAF5-D4CB292F91F6</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeadCoverHeater1</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>174.69</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>0f7a35fc-e363-45b2-948d-ba66f91e4f0d</ID>
- <Left>1457.8333333333333</Left>
- <Top>344.58910891089096</Top>
- <Width>200</Width>
- <Height>187.45575221238937</Height>
- <Angle>0</Angle>
- <ItemGuid>F39B952A-6194-4055-A5CB-A3421BFE0F9B</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeadCoverHeater2</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>174.95999999999998</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>0214c2bd-98e2-4435-b55f-ec165b0782dd</ID>
- <Left>532</Left>
- <Top>587.69469026548677</Top>
- <Width>163</Width>
- <Height>77.008849557522126</Height>
- <Angle>0</Angle>
- <ItemGuid>FE0D0A56-5795-4C5A-8E09-939FBB35C441</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>387e9a45-e608-47b8-9f3c-5572d0544e41</ID>
- <Left>708</Left>
- <Top>584.65486725663732</Top>
- <Width>168</Width>
- <Height>84.101769911504334</Height>
- <Angle>0</Angle>
- <ItemGuid>94F3E5A1-413E-4EA0-BDE1-F0625BFF7910</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="BlowerItem">
- <ID>18f62f2f-dbc0-4a3e-8af6-efdffc9562a5</ID>
- <Left>12</Left>
- <Top>699.86283185840716</Top>
- <Width>234</Width>
- <Height>96.2610619469026</Height>
- <Angle>0</Angle>
- <ItemGuid>B6FE07F8-2435-495D-ABFE-358C76812413</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>cb7b89a1-cdb4-408e-acc8-40e8dcb8d6ac</ID>
- <Left>7</Left>
- <Top>5.995575221238937</Top>
- <Width>142</Width>
- <Height>84.101769911504391</Height>
- <Angle>0</Angle>
- <ItemGuid>9F98B9D3-F989-4D03-90E8-721671835E0B</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>6be6ca7d-3ca6-4206-9c67-415174b71ace</ID>
- <Left>168</Left>
- <Top>7.3893805309738809</Top>
- <Width>146</Width>
- <Height>83.088495575221259</Height>
- <Angle>0</Angle>
- <ItemGuid>D59EFB38-79D9-446C-BCB5-92D8FDA900E4</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>2dca972d-3c41-4b07-a047-b63a23470a7e</ID>
- <Left>347</Left>
- <Top>574.92035398230325</Top>
- <Width>160</Width>
- <Height>102.34070796460173</Height>
- <Angle>0</Angle>
- <ItemGuid>75f69efe-1c7e-4015-a6eb-2686d4f67a67</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="ProcessParametersItem">
- <ID>d2e09fbf-2ac8-4c32-a4f5-45e50e305098</ID>
- <Left>1016</Left>
- <Top>821.96460176991263</Top>
- <Width>361</Width>
- <Height>233.95575221238948</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <ProcessParameters>
- <ID>0</ID>
- <Guid>9b265a7c-cc48-4c5a-abed-dfa8c8e3099f</Guid>
- <LastUpdated>2020-02-09T13:11:03.3185652Z</LastUpdated>
- <Name>Process parameters 2</Name>
- <DyeingSpeed>0</DyeingSpeed>
- <MinInkUptake>0</MinInkUptake>
- <MaxInkUptake>0</MaxInkUptake>
- <FeederTension>0</FeederTension>
- <PullerTension>0</PullerTension>
- <WinderTension>0</WinderTension>
- <MixerTemp>0</MixerTemp>
- <HeadZone1Temp>0</HeadZone1Temp>
- <HeadZone2Temp>0</HeadZone2Temp>
- <HeadZone3Temp>0</HeadZone3Temp>
- <HeadZone4Temp>0</HeadZone4Temp>
- <HeadZone5Temp>0</HeadZone5Temp>
- <HeadZone6Temp>0</HeadZone6Temp>
- <DryerAirFlow>0</DryerAirFlow>
- <DryerZone1Temp>100</DryerZone1Temp>
- <DryerZone2Temp>0</DryerZone2Temp>
- <DryerZone3Temp>0</DryerZone3Temp>
- <DryerBufferLength>0</DryerBufferLength>
- <HeadAirFlow>0</HeadAirFlow>
- <TableIndex>0</TableIndex>
- <HeadZone7Temp>0</HeadZone7Temp>
- <HeadZone8Temp>0</HeadZone8Temp>
- <HeadZone9Temp>0</HeadZone9Temp>
- <HeadZone10Temp>0</HeadZone10Temp>
- <HeadZone11Temp>0</HeadZone11Temp>
- <HeadZone12Temp>0</HeadZone12Temp>
- <RBlowerFlow>0</RBlowerFlow>
- <RBlowerTemp>0</RBlowerTemp>
- <LBlowerFlow>0</LBlowerFlow>
- <LBlowerTemp>0</LBlowerTemp>
- <PressureBuildUp>0</PressureBuildUp>
- </ProcessParameters>
- <ParametersIndices>
- <ParameterIndex>
- <Name>Name</Name>
- <Index>0</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dyeing Speed</Name>
- <Index>1</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Min Ink Uptake</Name>
- <Index>2</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Max Ink Uptake</Name>
- <Index>3</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Feeder Tension</Name>
- <Index>4</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Puller Tension</Name>
- <Index>5</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Winder Tension</Name>
- <Index>6</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Mixer Temp</Name>
- <Index>7</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 1 Temp</Name>
- <Index>8</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 2 Temp</Name>
- <Index>9</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 3 Temp</Name>
- <Index>10</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 4 Temp</Name>
- <Index>11</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 5 Temp</Name>
- <Index>12</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 6 Temp</Name>
- <Index>13</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Air Flow</Name>
- <Index>14</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Zone 1 Temp</Name>
- <Index>15</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Zone 2 Temp</Name>
- <Index>16</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Zone 3 Temp</Name>
- <Index>17</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Buffer Length</Name>
- <Index>18</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Air Flow</Name>
- <Index>19</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Process Parameters Tables Group Guid</Name>
- <Index>20</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Table Index</Name>
- <Index>21</Index>
- </ParameterIndex>
- </ParametersIndices>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>11f4748e-ed30-48d6-a08a-afeaa0277e2e</ID>
- <Left>330</Left>
- <Top>12.154867256637203</Top>
- <Width>205</Width>
- <Height>90.181415929203524</Height>
- <Angle>0</Angle>
- <ItemGuid>1778C1A7-AFB5-42F9-9E00-E80D30D9FC02</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>dcf78507-ea09-4529-b635-ec1eeed31141</ID>
- <Left>145</Left>
- <Top>842.58849557522137</Top>
- <Width>357</Width>
- <Height>215.82743362831855</Height>
- <Angle>0</Angle>
- <ItemGuid>FE0D0A56-5795-4C5A-8E09-939FBB35C441</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>1275</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>85762a06-25d4-457a-9974-7eab916d65c5</ID>
- <Left>540</Left>
- <Top>4.0486725663717493</Top>
- <Width>205</Width>
- <Height>90.181415929203524</Height>
- <Angle>0</Angle>
- <ItemGuid>055D0A38-09BD-490D-9852-12B06A4B22F2</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="ProcessParametersItem">
- <ID>36f69103-89b6-4076-b8f3-bf4a0806ba05</ID>
- <Left>18.250000000000007</Left>
- <Top>132.59405940594058</Top>
- <Width>317.70833333333337</Width>
- <Height>392.24752475247521</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <ProcessParameters>
- <ID>0</ID>
- <Guid>0025b28d-1475-4af2-b50e-ecc344c3e43a</Guid>
- <LastUpdated>2020-07-05T08:17:42.9870702Z</LastUpdated>
- <Name>Process parameters 4</Name>
- <DyeingSpeed>50</DyeingSpeed>
- <MinInkUptake>0</MinInkUptake>
- <MaxInkUptake>0</MaxInkUptake>
- <FeederTension>0</FeederTension>
- <PullerTension>0</PullerTension>
- <WinderTension>0</WinderTension>
- <MixerTemp>80</MixerTemp>
- <HeadZone1Temp>80</HeadZone1Temp>
- <HeadZone2Temp>90</HeadZone2Temp>
- <HeadZone3Temp>100</HeadZone3Temp>
- <HeadZone4Temp>0</HeadZone4Temp>
- <HeadZone5Temp>0</HeadZone5Temp>
- <HeadZone6Temp>0</HeadZone6Temp>
- <DryerAirFlow>0</DryerAirFlow>
- <DryerZone1Temp>180</DryerZone1Temp>
- <DryerZone2Temp>0</DryerZone2Temp>
- <DryerZone3Temp>0</DryerZone3Temp>
- <DryerBufferLength>0</DryerBufferLength>
- <HeadAirFlow>3</HeadAirFlow>
- <TableIndex>0</TableIndex>
- <HeadZone7Temp>0</HeadZone7Temp>
- <HeadZone8Temp>0</HeadZone8Temp>
- <HeadZone9Temp>0</HeadZone9Temp>
- <HeadZone10Temp>0</HeadZone10Temp>
- <HeadZone11Temp>0</HeadZone11Temp>
- <HeadZone12Temp>0</HeadZone12Temp>
- <RBlowerFlow>180</RBlowerFlow>
- <RBlowerTemp>180</RBlowerTemp>
- <LBlowerFlow>180</LBlowerFlow>
- <LBlowerTemp>180</LBlowerTemp>
- <PressureBuildUp>0</PressureBuildUp>
- </ProcessParameters>
- <ParametersIndices>
- <ParameterIndex>
- <Name>Process Parameters Tables Group Guid</Name>
- <Index>0</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Name</Name>
- <Index>1</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Table Index</Name>
- <Index>2</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dyeing Speed</Name>
- <Index>3</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Min Ink Uptake</Name>
- <Index>4</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Max Ink Uptake</Name>
- <Index>5</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Feeder Tension</Name>
- <Index>6</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Puller Tension</Name>
- <Index>7</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Winder Tension</Name>
- <Index>8</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Mixer Temp</Name>
- <Index>9</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 1 Temp</Name>
- <Index>10</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 2 Temp</Name>
- <Index>11</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 3 Temp</Name>
- <Index>12</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 4 Temp</Name>
- <Index>13</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 5 Temp</Name>
- <Index>14</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 6 Temp</Name>
- <Index>15</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 7 Temp</Name>
- <Index>16</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 8 Temp</Name>
- <Index>17</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 9 Temp</Name>
- <Index>18</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 10 Temp</Name>
- <Index>19</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 11 Temp</Name>
- <Index>20</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 12 Temp</Name>
- <Index>21</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>R Blower Flow</Name>
- <Index>22</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>R Blower Temp</Name>
- <Index>23</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>L Blower Flow</Name>
- <Index>24</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>L Blower Temp</Name>
- <Index>25</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Zone 1 Temp</Name>
- <Index>26</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Zone 2 Temp</Name>
- <Index>27</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Zone 3 Temp</Name>
- <Index>28</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Air Flow</Name>
- <Index>29</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Air Flow</Name>
- <Index>30</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Buffer Length</Name>
- <Index>31</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Pressure Build Up</Name>
- <Index>32</Index>
- </ParameterIndex>
- </ParametersIndices>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- <MachineTechViewProjectTab>
- <Name>Thread</Name>
- <Items>
- <TechItem xsi:type="MonitorItem">
- <ID>50bae43f-8b1a-4279-9238-b976a0c72af3</ID>
- <Left>1530</Left>
- <Top>193.19911504424795</Top>
- <Width>169</Width>
- <Height>181.37610619469029</Height>
- <Angle>0</Angle>
- <ItemGuid>A8DB1D27-6B25-4FB4-A3F5-46A29BA51955</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>68eef943-2151-4df5-be61-044c3865606e</ID>
- <Left>1172</Left>
- <Top>145.78318584070678</Top>
- <Width>175</Width>
- <Height>167.827433628319</Height>
- <Angle>0</Angle>
- <ItemGuid>96B89605-F999-43FE-A1CD-2645BFB33A36</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>6be024c6-3d1b-4267-9b77-44473aba56b7</ID>
- <Left>988</Left>
- <Top>143.32300884955998</Top>
- <Width>190</Width>
- <Height>167.09734513274049</Height>
- <Angle>0</Angle>
- <ItemGuid>FC60060A-3736-4910-B41A-FF6DABDF0E9E</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>7c720f3b-00e1-49dd-92f9-fdd1e9686623</ID>
- <Left>817</Left>
- <Top>142.42035398230098</Top>
- <Width>169</Width>
- <Height>168.31858407079625</Height>
- <Angle>0</Angle>
- <ItemGuid>4CE6A82E-D841-4D33-BBB2-11F0743A441C</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>3ebd6759-521b-4ed1-a353-ee1ad7801f28</ID>
- <Left>922</Left>
- <Top>516.43362831858417</Top>
- <Width>439</Width>
- <Height>304.995575221239</Height>
- <Angle>0</Angle>
- <ItemGuid>D126DB23-784B-4F0C-8F88-D89A65A7549F</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>1460</Duration>
- <Min>0</Min>
- <Max>16384</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>1</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>984b4126-3dda-4624-a79f-0646eb0e1358</ID>
- <Left>465</Left>
- <Top>515.420353982301</Top>
- <Width>439</Width>
- <Height>304.995575221239</Height>
- <Angle>0</Angle>
- <ItemGuid>10102BC3-0EAE-47FF-A8E5-8640780CAA3D</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>1516</Duration>
- <Min>0</Min>
- <Max>16384</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>1</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>8ebc3ab7-a02d-4b12-93b3-2563443831d7</ID>
- <Left>15</Left>
- <Top>518.46017699115032</Top>
- <Width>439</Width>
- <Height>304.995575221239</Height>
- <Angle>0</Angle>
- <ItemGuid>C0BCCD5C-346B-4C4A-A080-39D28E9E1A0C</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>1398</Duration>
- <Min>0</Min>
- <Max>16384</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>1</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>acafb268-5e97-4277-8dc8-173250a9e3f8</ID>
- <Left>12</Left>
- <Top>13.849557522123973</Top>
- <Width>439</Width>
- <Height>304.995575221239</Height>
- <Angle>0</Angle>
- <ItemGuid>9FBC5460-BA59-486B-8D85-BD7D8A959F98</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>1273</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>1</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>be4cb8d9-b516-4604-a6a5-1638cbc50251</ID>
- <Left>860</Left>
- <Top>-24.18584070796669</Top>
- <Width>345</Width>
- <Height>169.21681415929209</Height>
- <Angle>0</Angle>
- <ItemGuid>4CE6A82E-D841-4D33-BBB2-11F0743A441C</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>514</Duration>
- <Min>0</Min>
- <Max>100000</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>1</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>75b99507-4eba-4b11-b52e-26732d4c5479</ID>
- <Left>19</Left>
- <Top>324.14159292035305</Top>
- <Width>429</Width>
- <Height>193.26548672566258</Height>
- <Angle>0</Angle>
- <ItemGuid>F1DF490B-0577-4FA7-ACA1-0EEF4F934E8F</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>1398</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>4</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>a30e48de-be76-4230-92d0-d27d6f37b940</ID>
- <Left>474</Left>
- <Top>320.03097345132551</Top>
- <Width>429</Width>
- <Height>193.26548672566258</Height>
- <Angle>0</Angle>
- <ItemGuid>5F12B974-2C9E-4DDD-9B20-733251A5D7E6</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>1398</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>4</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>5ac4b368-093a-4192-98d4-e9d24f229b13</ID>
- <Left>928</Left>
- <Top>321.64601769912122</Top>
- <Width>429</Width>
- <Height>193.26548672566258</Height>
- <Angle>0</Angle>
- <ItemGuid>84CF23C9-D20D-4C08-BE1D-80201FC43C06</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>1398</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>4</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="MonitorRecorderItem">
- <ID>9c34dc69-cfaa-48b4-9d02-8f0d9bba79dd</ID>
- <Left>1303</Left>
- <Top>34.380530973454768</Top>
- <Width>176</Width>
- <Height>83.05309734512457</Height>
- <Angle>0</Angle>
- <ColorNumber>-1</ColorNumber>
- <SelectedMonitorsGuids>
- <string>89B7B89D-8050-4188-B568-35B1910CFB6F</string>
- <string>96B89605-F999-43FE-A1CD-2645BFB33A36</string>
- <string>84CF23C9-D20D-4C08-BE1D-80201FC43C06</string>
- <string>FC60060A-3736-4910-B41A-FF6DABDF0E9E</string>
- <string>5F12B974-2C9E-4DDD-9B20-733251A5D7E6</string>
- <string>9ADF7823-B293-4275-9999-F62474D246AA</string>
- <string>4CE6A82E-D841-4D33-BBB2-11F0743A441C</string>
- <string>F1DF490B-0577-4FA7-ACA1-0EEF4F934E8F</string>
- </SelectedMonitorsGuids>
- </TechItem>
- <TechItem xsi:type="ThreadMotionItem">
- <ID>be5b2c37-4481-4293-b957-bf65d8516fee</ID>
- <Left>464</Left>
- <Top>21.274336283185846</Top>
- <Width>315</Width>
- <Height>177.3230088495576</Height>
- <Angle>0</Angle>
- <ColorNumber>-1</ColorNumber>
- <Speed>20</Speed>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>aace77b8-02ca-4c88-abc1-590fc2592b99</ID>
- <Left>1355</Left>
- <Top>146.70796460176933</Top>
- <Width>175</Width>
- <Height>167.827433628319</Height>
- <Angle>0</Angle>
- <ItemGuid>89B7B89D-8050-4188-B568-35B1910CFB6F</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- <MachineTechViewProjectTab>
- <Name>Dispensers</Name>
- <Items>
- <TechItem xsi:type="DispenserItem">
- <ID>dce78f33-c966-4848-8c6e-a4a01dbc7577</ID>
- <Left>1322.1428571428571</Left>
- <Top>214.15929203538531</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>2CC8E461-E91F-4D4C-A402-922477F06C87</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>800</Speed>
- <DisplayName>Dispenser 1</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>2d03fc19-0502-43e1-a3ff-4012a612112b</ID>
- <Left>1149</Left>
- <Top>218.48230088495342</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>C8D8FE90-0375-44A2-A6D1-E997789E065C</ItemGuid>
- <ColorNumber>-16724737</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 2</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>81958374-3fa3-48b3-a554-5653fe1934b1</ID>
- <Left>959</Left>
- <Top>210.32743362830422</Top>
- <Width>156</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>08ED9044-CAD6-4492-94B2-C07206E0164B</ItemGuid>
- <ColorNumber>-65325</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 3</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>8fead411-7198-4428-a364-e32f3035ed94</ID>
- <Left>775</Left>
- <Top>206.42920353980952</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>179F34BB-3252-4D3A-965C-E6EB43D6FE7C</ItemGuid>
- <ColorNumber>-524544</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 4</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>31bfa89f-e64d-4a3b-8585-c4a1b2e5a139</ID>
- <Left>585</Left>
- <Top>208.47345132741418</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>716B35CF-46E0-47D5-AF85-5233D212568F</ItemGuid>
- <ColorNumber>-2108246</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 5</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>c2bff5f3-6dc9-4b07-87ba-9e3a5814804e</ID>
- <Left>372</Left>
- <Top>216.75221238937439</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>99528449-4D76-4874-AB95-522951560E01</ItemGuid>
- <ColorNumber>-263685</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 6</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>071281a5-3569-4a62-8b68-7bea850a3c07</ID>
- <Left>217</Left>
- <Top>211.63716814158107</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>E8ED07E2-7C36-459C-B9E5-6A23A1E24F03</ItemGuid>
- <ColorNumber>-723724</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 7</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>7b703b9a-a626-4ae5-8e31-fa1cfe5718f4</ID>
- <Left>45</Left>
- <Top>216.04867256635521</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>8A957565-4165-49F7-854D-D21F95FFBE1B</ItemGuid>
- <ColorNumber>-724238</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 8</DisplayName>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>caca40a2-310c-452e-adcf-c28ee38f6bdc</ID>
- <Left>1305</Left>
- <Top>31.606194690259713</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid>
- <ColorNumber>-15856114</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>af52d36f-27a2-4a31-8ceb-9c43fedbed22</ID>
- <Left>1127</Left>
- <Top>32.535398230081626</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid>
- <ColorNumber>-15293470</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>d40eada8-d22a-4521-bd2a-d998ed93106f</ID>
- <Left>955</Left>
- <Top>32.61946902653176</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid>
- <ColorNumber>-1570857</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>b2d6364d-8b5c-43d2-8838-927c85b017b1</ID>
- <Left>774</Left>
- <Top>31.960176991142362</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid>
- <ColorNumber>-1379575</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>3980e685-73b3-4af1-9593-9235be147322</ID>
- <Left>596</Left>
- <Top>32.889380530964274</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid>
- <ColorNumber>-7763381</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>51465293-58d5-40a4-8302-81856f8b4f47</ID>
- <Left>424</Left>
- <Top>32.973451327414409</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>AF3FD56C-95BF-4DE1-8EDC-8426B0DB2A26</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>c2a8c5b2-891b-4f9f-862c-c1c294366c78</ID>
- <Left>252</Left>
- <Top>31.703539823006281</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>60DA9EA3-C8A6-4D41-8AD8-3EB1BAA79CC9</ItemGuid>
- <ColorNumber>-8391822</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>9618e441-8973-4e16-a90b-06ce5798bd29</ID>
- <Left>80</Left>
- <Top>31.787610619456416</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>EF66F95A-E166-4FA2-B1AF-D6F55621817A</ItemGuid>
- <ColorNumber>-2186185</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>bce8c8e8-a317-4991-9aa7-cd99a45d1509</ID>
- <Left>28.22352941176473</Left>
- <Top>682.03174474303751</Top>
- <Width>247</Width>
- <Height>122.24778761061873</Height>
- <Angle>0</Angle>
- <ItemGuid>66cc8510-db9c-4e13-9151-01e705ec04de</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>72a23702-31bb-4ab8-aee5-2a02bcb1270b</ID>
- <Left>235.16470588235291</Left>
- <Top>699.99460095802579</Top>
- <Width>200</Width>
- <Height>94.15929203539747</Height>
- <Angle>0</Angle>
- <ItemGuid>36ba0ba4-e41d-45ff-8f68-1699e00c7107</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="ControllerItem">
- <ID>2dd6ff17-e515-4d8f-814f-a9683f404a8e</ID>
- <Left>140</Left>
- <Top>867.73893805310092</Top>
- <Width>160</Width>
- <Height>85.49115044247776</Height>
- <Angle>0</Angle>
- <ItemGuid>78482AA4-3DF6-421F-944C-64328D3C3EF2</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <OptimalRangeMinimum>0</OptimalRangeMinimum>
- <OptimalRangeMaximum>70</OptimalRangeMaximum>
- <IsSetToDefault>true</IsSetToDefault>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>06843009-1da0-4811-8e77-50576d0edcb1</ID>
- <Left>507</Left>
- <Top>792.77433628318749</Top>
- <Width>219</Width>
- <Height>125.75221238938025</Height>
- <Angle>0</Angle>
- <ItemGuid>0c5dc1e9-da17-4ff8-86aa-6b39fd796ba9</ItemGuid>
- <ColorNumber>-16777216</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>935dddd0-0c6f-4766-8173-f9118006a12b</ID>
- <Left>1303</Left>
- <Top>475.87168141593065</Top>
- <Width>160</Width>
- <Height>124.6504424778754</Height>
- <Angle>0</Angle>
- <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid>
- <ColorNumber>-15856114</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MultiGraphItem">
- <ID>97e39a59-dba8-4e42-a124-b37de9453baf</ID>
- <Left>370</Left>
- <Top>781.46902654866153</Top>
- <Width>710</Width>
- <Height>401.24778761063465</Height>
- <Angle>0</Angle>
- <ItemGuid>D023F15D-3555-48E9-A9E9-5DF99F60D791</ItemGuid>
- <ColorNumber>0</ColorNumber>
- <Duration>1956</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>46bdfce3-1c69-45dd-bbe9-582d1ac1e6f2</ID>
- <Left>1128</Left>
- <Top>482.80530973451141</Top>
- <Width>140</Width>
- <Height>117.32300884955743</Height>
- <Angle>0</Angle>
- <ItemGuid>0FE216B2-A097-4F2C-B465-08593F2532B3</ItemGuid>
- <ColorNumber>-15293470</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>429154a5-9a16-4423-85ca-ee4bae9aec3c</ID>
- <Left>968</Left>
- <Top>481.35398230088504</Top>
- <Width>140</Width>
- <Height>117.32300884955743</Height>
- <Angle>0</Angle>
- <ItemGuid>3271FD82-46D3-4789-B612-564967826C75</ItemGuid>
- <ColorNumber>-1570857</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>0f6ab8e8-99a7-4468-bde8-690a63467688</ID>
- <Left>766</Left>
- <Top>476.07964601769811</Top>
- <Width>140</Width>
- <Height>117.32300884955743</Height>
- <Angle>0</Angle>
- <ItemGuid>FBB806E7-42FA-4BAA-BDA1-3B8B07913AAD</ItemGuid>
- <ColorNumber>-1379575</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>bc0ac903-9c1f-4580-8b9e-670a76350473</ID>
- <Left>586</Left>
- <Top>474.38938053097161</Top>
- <Width>140</Width>
- <Height>117.32300884955743</Height>
- <Angle>0</Angle>
- <ItemGuid>436A22BB-AF79-4CB2-8A7D-DD4D9E54A81E</ItemGuid>
- <ColorNumber>-7763381</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>f9c960b2-b93e-46d5-b892-30337c0b55af</ID>
- <Left>391</Left>
- <Top>474.87168141592781</Top>
- <Width>140</Width>
- <Height>117.32300884955743</Height>
- <Angle>0</Angle>
- <ItemGuid>89EA6CC8-5363-4BEC-A370-D906611087A7</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>5ac157ab-2d53-4307-bf0b-b069854701ac</ID>
- <Left>226</Left>
- <Top>471.66814159292005</Top>
- <Width>140</Width>
- <Height>117.32300884955743</Height>
- <Angle>0</Angle>
- <ItemGuid>D5EBE52B-E2DF-4C97-80B1-F111F6B15854</ItemGuid>
- <ColorNumber>-8391822</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>65a19d7e-c524-48a0-bd70-28b99b113dd1</ID>
- <Left>69</Left>
- <Top>473.97787610619389</Top>
- <Width>140</Width>
- <Height>117.32300884955743</Height>
- <Angle>0</Angle>
- <ItemGuid>FE521D1B-A0EA-4FEA-AE64-33998A6CE138</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>5bf7a681-ee47-477e-8b47-ba7a2eb6e115</ID>
- <Left>1130</Left>
- <Top>624.9557522123913</Top>
- <Width>144</Width>
- <Height>80.495575221237516</Height>
- <Angle>0</Angle>
- <ItemGuid>3174ADCF-5793-4B5A-A3C6-B96E146A903D</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>29b17a4b-fd4e-49cc-a3cd-418730176bf7</ID>
- <Left>969</Left>
- <Top>625.95575221239</Top>
- <Width>144</Width>
- <Height>80.495575221237516</Height>
- <Angle>0</Angle>
- <ItemGuid>AD50C358-5BAF-4A2F-8593-51A22C85B3D1</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>21a5429f-c3a2-4e3b-ae77-c5538f30130d</ID>
- <Left>775</Left>
- <Top>623.66814159292062</Top>
- <Width>144</Width>
- <Height>82.535398230087083</Height>
- <Angle>0</Angle>
- <ItemGuid>E2F0FC31-CE7E-416B-ACEA-8EB6CA9B850B</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>96a46b0c-37b1-4457-93fb-b3dc301c5743</ID>
- <Left>588</Left>
- <Top>625.06637168141322</Top>
- <Width>144</Width>
- <Height>80.495575221237516</Height>
- <Angle>0</Angle>
- <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C09F</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>d4ad8603-9929-415f-9990-1869fcff36e4</ID>
- <Left>1310</Left>
- <Top>628.69469026548632</Top>
- <Width>144</Width>
- <Height>80.495575221237516</Height>
- <Angle>0</Angle>
- <ItemGuid>84682E90-6926-42AA-BF8C-2CCCF5C26C97</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="ValveItem">
- <ID>25249d78-ee37-42a8-b5aa-96f60e97c3ea</ID>
- <Left>20.870588235294122</Left>
- <Top>784.26605504587133</Top>
- <Width>327</Width>
- <Height>108.53097345133028</Height>
- <Angle>0</Angle>
- <ItemGuid>8B1FCBC3-FEEA-4F87-B56F-CE5D28B7ACA4</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>fc1d62f7-d13b-4a7b-8f9f-c687c987c7a9</ID>
- <Left>1065</Left>
- <Top>788.41592920352355</Top>
- <Width>370</Width>
- <Height>362.10619469026585</Height>
- <Angle>0</Angle>
- <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>1426</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>3</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>cc99a514-1498-4b93-a4eb-4e0a2a2e9de6</ID>
- <Left>628</Left>
- <Top>765.4469026548752</Top>
- <Width>394</Width>
- <Height>372.88495575221242</Height>
- <Angle>0</Angle>
- <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>1282</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>1</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="ValveItem">
- <ID>cdddd48e-422d-48f4-8397-5032c3705fdb</ID>
- <Left>1069</Left>
- <Top>698.04867256637226</Top>
- <Width>382</Width>
- <Height>136.79203539823016</Height>
- <Angle>0</Angle>
- <ItemGuid>04C58CA0-9719-4BB0-8D3B-D4C71129D8E4</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>ee6d4c5a-ca5b-4557-8012-dacf700cdc08</ID>
- <Left>231</Left>
- <Top>624.06637168142413</Top>
- <Width>144</Width>
- <Height>80.495575221237516</Height>
- <Angle>0</Angle>
- <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C010</ItemGuid>
- <ColorNumber>-8391822</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>20576bb2-202f-4170-9af5-f3c18b410112</ID>
- <Left>77</Left>
- <Top>624.46460176991513</Top>
- <Width>144</Width>
- <Height>80.495575221237516</Height>
- <Angle>0</Angle>
- <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C011</ItemGuid>
- <ColorNumber>-2186185</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- <MachineTechViewProjectTab>
- <Name>Thread insertion</Name>
- <Items>
- <TechItem xsi:type="MotorItem">
- <ID>443a977c-8e89-4a56-82e4-684bac7945c9</ID>
- <Left>25</Left>
- <Top>22.761061946902203</Top>
- <Width>247</Width>
- <Height>172.25663716814159</Height>
- <Angle>0</Angle>
- <ItemGuid>08d15ca1-d7d1-460f-8f37-42c37c287cd1</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>500</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>a821b716-cb7d-4951-84ee-e56955431099</ID>
- <Left>355</Left>
- <Top>20.592920353981697</Top>
- <Width>260</Width>
- <Height>153.00442477876106</Height>
- <Angle>0</Angle>
- <ItemGuid>b90a4e78-ebbf-44db-829b-949517d6400b</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>350</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>e36e321b-d48d-4199-a1ee-75ac18e9de1e</ID>
- <Left>694</Left>
- <Top>19.367256637167998</Top>
- <Width>217</Width>
- <Height>155.26106194690203</Height>
- <Angle>0</Angle>
- <ItemGuid>b7c1aea4-32c1-41cb-bca3-4aa665529b49</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>350</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>8790db03-4dfd-4d49-aec0-706babb55af9</ID>
- <Left>396</Left>
- <Top>244.37610619468319</Top>
- <Width>240</Width>
- <Height>172.30973451327589</Height>
- <Angle>0</Angle>
- <ItemGuid>2d3eaca5-4dfd-40d9-9d1f-aa4ae794eddc</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>500</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>69ebcb28-13d9-41b3-a9ef-b2be51584141</ID>
- <Left>36</Left>
- <Top>245.4955752212249</Top>
- <Width>255</Width>
- <Height>170.15044247787392</Height>
- <Angle>0</Angle>
- <ItemGuid>c6099065-a735-4cc5-b575-c31a45bb9262</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>400</Speed>
- </TechItem>
- <TechItem xsi:type="ThreadMotionItem">
- <ID>4d562029-3fdf-40a4-a5a7-9a322253c912</ID>
- <Left>1168</Left>
- <Top>47.305309734517039</Top>
- <Width>304</Width>
- <Height>167.26548672566202</Height>
- <Angle>0</Angle>
- <ColorNumber>-1</ColorNumber>
- <Speed>40</Speed>
- </TechItem>
- <TechItem xsi:type="BreakSensorItem">
- <ID>92607e12-2dd6-41c9-8f89-f051f386b734</ID>
- <Left>1316</Left>
- <Top>380.876106194693</Top>
- <Width>240</Width>
- <Height>144.699115044238</Height>
- <Angle>0</Angle>
- <ItemGuid>DCE08A06-6711-43AE-AB7C-EADD5AB70EE0</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>7b5b6896-f626-4e59-a5cf-2600e603c0f6</ID>
- <Left>723</Left>
- <Top>241.30530973452125</Top>
- <Width>237</Width>
- <Height>179.22123893805463</Height>
- <Angle>0</Angle>
- <ItemGuid>7b6d0a93-5a91-4e1f-af47-353afd8b5ea6</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>20</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>2052a2d3-843c-4a1c-87fd-acd0832fd1b9</ID>
- <Left>85</Left>
- <Top>589.09734513273827</Top>
- <Width>220</Width>
- <Height>168.473451327436</Height>
- <Angle>0</Angle>
- <ItemGuid>c9482395-35e6-4340-8dab-83d5dfe907a7</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>2200</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>339b7d00-d688-41cf-926a-8171d5e62740</ID>
- <Left>403</Left>
- <Top>591.712389380534</Top>
- <Width>240</Width>
- <Height>159.84070796460173</Height>
- <Angle>0</Angle>
- <ItemGuid>f3b5076e-cba3-4ad2-b3cc-0c4e907bd9ef</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>400</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>7644a8f9-00a2-4e37-8f48-0667b1541114</ID>
- <Left>1047</Left>
- <Top>251.86283185840875</Top>
- <Width>233</Width>
- <Height>159.57079646017985</Height>
- <Angle>0</Angle>
- <ItemGuid>bda5aa4d-13aa-4259-92e5-b969276cb2b1</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>500</Speed>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>c706d31b-48b0-44cc-a9c4-11d3acdcf667</ID>
- <Left>535</Left>
- <Top>441.07493391564333</Top>
- <Width>269</Width>
- <Height>127.67256637168134</Height>
- <Angle>0</Angle>
- <ItemGuid>2a454081-bd5e-41de-ae5d-97aefe1d76de</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>7ccff69d-50f9-4e9b-a997-72a67917df5e</ID>
- <Left>727</Left>
- <Top>590.61504424779025</Top>
- <Width>241</Width>
- <Height>154.99115044247867</Height>
- <Angle>0</Angle>
- <ItemGuid>7c03f12f-ab2a-4421-8575-aefd6dec0001</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>500</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>a88a74cb-418b-4ed0-89ec-c42ff560528e</ID>
- <Left>1073</Left>
- <Top>593.7123893805292</Top>
- <Width>227</Width>
- <Height>145.08849557522183</Height>
- <Angle>0</Angle>
- <ItemGuid>4d097acc-df45-46af-bb7e-3d177ab27a9b</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>2</Speed>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>37267035-ae9d-4c72-a04f-215f754d0900</ID>
- <Left>283</Left>
- <Top>451.07079646016848</Top>
- <Width>240</Width>
- <Height>116.10176991150968</Height>
- <Angle>0</Angle>
- <ItemGuid>8a65badb-3d7d-4b7b-8dcd-783e443b0689</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>ca4a5397-68a1-4a2f-b614-80132cd513ee</ID>
- <Left>52</Left>
- <Top>452.20353982301083</Top>
- <Width>240</Width>
- <Height>116.10176991150968</Height>
- <Angle>0</Angle>
- <ItemGuid>6f48e18c-d472-425a-ba7e-633630605e11</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- <MachineTechViewProjectTab>
- <Name>Head graphs</Name>
- <Items>
- <TechItem xsi:type="SingleGraphItem">
- <ID>ffe980da-dbbe-4bac-9595-46f587e9df00</ID>
- <Left>3</Left>
- <Top>5.8097345132742362</Top>
- <Width>363</Width>
- <Height>157.76991150442467</Height>
- <Angle>0</Angle>
- <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E448FB</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>2962</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>81b78212-14d8-4a66-bf3a-eeea9900e0d6</ID>
- <Left>371</Left>
- <Top>21.075221238938013</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>AA1CF164-76FE-49C6-AA73-0EBA29816E92</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>3941a557-05e6-4c1b-bb98-4f2a59892431</ID>
- <Left>517</Left>
- <Top>11.517699115044195</Top>
- <Width>103</Width>
- <Height>113.4867256637167</Height>
- <Angle>0</Angle>
- <ItemGuid>188285E5-1493-4BED-8269-91743770A631</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone7</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>77.96</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>7e0942e7-a87a-402a-b580-5091ed6b29ee</ID>
- <Left>8</Left>
- <Top>276.6194690265491</Top>
- <Width>357</Width>
- <Height>143.58407079645986</Height>
- <Angle>0</Angle>
- <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E44809</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>2962</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>064bd571-4250-4ea3-8ed5-96f1ddc8fe6b</ID>
- <Left>374</Left>
- <Top>280.73893805309746</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>8FEB7F10-E1FB-465A-A987-6E8659C2186A</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>4845ec5b-067b-43c2-aaf1-314dcb358a7c</ID>
- <Left>519</Left>
- <Top>283.3407079646019</Top>
- <Width>103</Width>
- <Height>121.59292035398221</Height>
- <Angle>0</Angle>
- <ItemGuid>63E2AFE0-0746-4AAB-AA74-C26EC1F282AE</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone9</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>78.1</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>85b25b0b-cd3d-4a8a-88f5-f832623d7ec2</ID>
- <Left>8.75</Left>
- <Top>704.87334618417651</Top>
- <Width>350</Width>
- <Height>152.70353982300856</Height>
- <Angle>0</Angle>
- <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E44812</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>2962</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>85e9ecc2-3bce-4055-89a9-1712752898a9</ID>
- <Left>375.66666666666663</Left>
- <Top>902.19714360816624</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>500698E0-5623-4A47-9537-FCAAF5D0B725</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>8d9b0d4b-ac5e-4c17-b7eb-4d59825064c7</ID>
- <Left>523.04166666666652</Left>
- <Top>895.90015771488663</Top>
- <Width>103</Width>
- <Height>121.59292035398221</Height>
- <Angle>0</Angle>
- <ItemGuid>F39B952A-6194-4055-A5CB-A3421BFE0F9B</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeadCoverHeater2</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>283.75</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>63ccee8d-ce38-4c69-b8d1-141f320d11f9</ID>
- <Left>6</Left>
- <Top>563.37610619469046</Top>
- <Width>358</Width>
- <Height>141.55752212389359</Height>
- <Angle>0</Angle>
- <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E44811</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>2962</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>5ed86083-bdd6-4648-b7ca-f17fa97f034a</ID>
- <Left>379</Left>
- <Top>573.57522123893818</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>C113AA1D-25F5-4095-A1F3-18BEDFC0EEEE</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>8269194e-5348-4367-8ae9-e6c0647febaf</ID>
- <Left>523</Left>
- <Top>571.1106194690268</Top>
- <Width>103</Width>
- <Height>116.52654867256626</Height>
- <Angle>0</Angle>
- <ItemGuid>D41BBB23-6EB5-4743-89DB-9191000B475F</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone11</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>74.32</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>182492d7-b240-4162-b8ec-39996eec3cc7</ID>
- <Left>9</Left>
- <Top>418.47787610619497</Top>
- <Width>353</Width>
- <Height>145.61061946902635</Height>
- <Angle>0</Angle>
- <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E44810</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>2962</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>e8130372-e0ee-4c1c-a43d-4ab15ff57bd8</ID>
- <Left>378</Left>
- <Top>430.703539823009</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>DCCCCF68-5895-40BE-9E90-1FA35E44D2E4</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>af0d953f-45de-4c0d-9eeb-d7a5c17681e4</ID>
- <Left>519</Left>
- <Top>428.23893805309746</Top>
- <Width>103</Width>
- <Height>121.59292035398221</Height>
- <Angle>0</Angle>
- <ItemGuid>B4D0A1C8-711C-49A9-82A3-B5B9F35FC131</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone10</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>74.7</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>00dda04e-1853-422f-ac47-29bdbab642d7</ID>
- <Left>7</Left>
- <Top>142.86725663716828</Top>
- <Width>357</Width>
- <Height>152.70353982300867</Height>
- <Angle>0</Angle>
- <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E44808</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>2962</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>e7935033-56c6-42a4-a2b3-f5eedb0a11e7</ID>
- <Left>382</Left>
- <Top>151.03982300884968</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>E772ECA1-24EB-446A-AB28-F5E3D853B9F6</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>b339a7c0-7555-4e54-9834-6193ed7c2b7a</ID>
- <Left>519</Left>
- <Top>147.561946902655</Top>
- <Width>104</Width>
- <Height>109.43362831858406</Height>
- <Angle>0</Angle>
- <ItemGuid>461FA2D7-1918-4958-AAA7-37A1A329FA12</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone8</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>79.4</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>40d16753-8448-4af9-8fbd-98c1ed301de5</ID>
- <Left>623</Left>
- <Top>117.5353982300885</Top>
- <Width>363</Width>
- <Height>157.76991150442467</Height>
- <Angle>0</Angle>
- <ItemGuid>D7585119-4A42-4370-8F1E-F3E62553E588</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>2962</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>b3826c8e-1d82-4f4f-ad9f-d88f257dffb2</ID>
- <Left>1005</Left>
- <Top>12.221238938053205</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>d59b64f7-a8cf-4a2b-935a-943ae35fb78c</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>d3631074-68c4-4377-b0c5-9213a6b1b2c0</ID>
- <Left>1148</Left>
- <Top>293.47345132743362</Top>
- <Width>103</Width>
- <Height>113.4867256637167</Height>
- <Angle>0</Angle>
- <ItemGuid>8E764A14-0F84-4FEC-928B-32A2509CAD57</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone3</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>70.97</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>99af8946-4971-4913-9382-705c4e05b7ce</ID>
- <Left>621</Left>
- <Top>275.60619469026591</Top>
- <Width>363</Width>
- <Height>157.76991150442467</Height>
- <Angle>0</Angle>
- <ItemGuid>098F7CAB-030C-46B0-B2B8-A85AF2253032</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>2962</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>233f0076-7595-4ecb-8496-41eeb7b457ea</ID>
- <Left>993</Left>
- <Top>279.72566371681404</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>9de55ec4-201f-4f62-9003-f63ebea06f8f</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>f815ebb5-61af-45ff-8109-5f5e717a5c4d</ID>
- <Left>1146</Left>
- <Top>14.823008849557596</Top>
- <Width>103</Width>
- <Height>113.4867256637167</Height>
- <Angle>0</Angle>
- <ItemGuid>27E7BB74-81C3-4EF2-80AE-962F111C441F</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone1</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>57.9</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>7b7d9bea-29df-4f94-8ab6-2a6d7105bccf</ID>
- <Left>627</Left>
- <Top>6.07522123893807</Top>
- <Width>363</Width>
- <Height>157.76991150442467</Height>
- <Angle>0</Angle>
- <ItemGuid>A8DB1D27-6B25-4FB4-A3F5-46A29BA51955</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>2962</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>72d7192b-dd27-4064-9f5f-90062388a81c</ID>
- <Left>1003</Left>
- <Top>151.03982300884974</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>df38139e-0026-46bc-b72f-df5f9eec80f7</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>915f8dfc-5407-43ca-a0c7-d774867dfb5f</ID>
- <Left>1145</Left>
- <Top>153.64159292035396</Top>
- <Width>103</Width>
- <Height>113.4867256637167</Height>
- <Angle>0</Angle>
- <ItemGuid>B4EE8CC0-EE2B-4ABE-BF09-9226860E756B</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone2</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>67.04</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>64fba32f-3c03-42b3-b1ed-e2bdbe454bd6</ID>
- <Left>630</Left>
- <Top>535.00442477876129</Top>
- <Width>363</Width>
- <Height>157.76991150442467</Height>
- <Angle>0</Angle>
- <ItemGuid>246C2551-5EFD-48E9-94F6-6313C5E5018F</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>2962</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>5f451443-fab2-4bf6-8f21-5e038ca2c726</ID>
- <Left>1008</Left>
- <Top>707.327433628319</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>16D0DEF7-A2E0-4163-9F4B-FBEC2573BCC7</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>e5c1becb-1402-45fa-b252-60a03d4401cc</ID>
- <Left>1150</Left>
- <Top>716.00884955752235</Top>
- <Width>103</Width>
- <Height>113.4867256637167</Height>
- <Angle>0</Angle>
- <ItemGuid>D2B6CAA0-055E-4871-8D91-A5370F1ACB22</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone6</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>73.69</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>4f3b4ecd-759a-4ba5-80f3-74cc485d7085</ID>
- <Left>629</Left>
- <Top>387.066371681416</Top>
- <Width>363</Width>
- <Height>157.76991150442467</Height>
- <Angle>0</Angle>
- <ItemGuid>6C0C1AB0-3EE9-40D7-8424-A79436FBC804</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>2962</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>665593d6-e689-459e-94f9-2cdcce6150ac</ID>
- <Left>1004</Left>
- <Top>562.42920353982311</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>d28bfa3c-edce-4f19-a296-3da251fcc0e2</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>42b4b029-e8bc-4156-b6c1-bb64aae83f9e</ID>
- <Left>1149</Left>
- <Top>571.1106194690268</Top>
- <Width>103</Width>
- <Height>113.4867256637167</Height>
- <Angle>0</Angle>
- <ItemGuid>D6771DF4-771E-4D62-B6BA-BDE361C0A0F3</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone5</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>72.69</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>60dff2b2-7ddc-47a9-90b1-3f45968c1790</ID>
- <Left>630</Left>
- <Top>692.06194690265511</Top>
- <Width>363</Width>
- <Height>157.76991150442467</Height>
- <Angle>0</Angle>
- <ItemGuid>DACEBF90-E2B4-4CC9-A973-B8B429AA0089</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>2962</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>b53a74f3-8e91-40ce-b980-c5b237baeee9</ID>
- <Left>1002</Left>
- <Top>413.47787610619491</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>81a3ae80-f4ea-4857-bc4e-2055d3b5fbc7</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>8c438e59-d87c-46d2-8050-acc8a0c455d7</ID>
- <Left>1148</Left>
- <Top>434.31858407079636</Top>
- <Width>103</Width>
- <Height>113.4867256637167</Height>
- <Angle>0</Angle>
- <ItemGuid>94574D69-46E1-4144-A8B5-D4BF0DA96D18</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone4</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>73.54</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>f786b4da-3291-4ccb-a280-196fd8697ac1</ID>
- <Left>5.7499999999999858</Left>
- <Top>866.06435643564362</Top>
- <Width>350</Width>
- <Height>152.70353982300856</Height>
- <Angle>0</Angle>
- <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E448DD</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>2962</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>584c7f29-49cc-4845-a7ab-09239bd3a986</ID>
- <Left>377.875</Left>
- <Top>735.75944098834611</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>96A8AF31-B489-4FA2-BF99-C66D7DEC94C8</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>5c6da8d4-bd2e-44cc-8d99-a6b8bca7df3f</ID>
- <Left>524.20833333333337</Left>
- <Top>721.52681153071046</Top>
- <Width>103</Width>
- <Height>121.59292035398221</Height>
- <Angle>0</Angle>
- <ItemGuid>2D578A37-D808-40D0-ACE4-4A868EDD6BDC</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone12</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>72.72</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>05eab3d7-3af6-4d3f-b3b3-468eeb77a503</ID>
- <Left>644.29166666666674</Left>
- <Top>874.00000000000011</Top>
- <Width>350</Width>
- <Height>152.70353982300856</Height>
- <Angle>0</Angle>
- <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E448CC</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>2962</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>c1f48bf1-9cb3-475a-b152-e8b9a211b694</ID>
- <Left>1010.1666666666667</Left>
- <Top>895.60597564181194</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>7FCA67CB-785B-49F7-B9F2-191E3ACC6CB7</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>c5fbeda2-230d-40e4-9d52-5b3236e0c561</ID>
- <Left>1161.708333333333</Left>
- <Top>885.907999649522</Top>
- <Width>103</Width>
- <Height>121.59292035398221</Height>
- <Angle>0</Angle>
- <ItemGuid>F8C1BA7F-F6DF-414D-BAF5-D4CB292F91F6</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeadCoverHeater1</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>283.75</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- <MachineTechViewProjectTab>
- <Name>waste</Name>
- <Items>
- <TechItem xsi:type="DigitalOutItem">
- <ID>bb9bf273-0a3d-4202-98ce-37a5f206ed75</ID>
- <Left>119</Left>
- <Top>68.898230088495609</Top>
- <Width>339</Width>
- <Height>184.4159292035398</Height>
- <Angle>0</Angle>
- <ItemGuid>7e1f53ec-8176-4efa-ac3d-c8f2436e60d1</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>59678a51-f995-4952-b250-e449f1fcbeac</ID>
- <Left>468</Left>
- <Top>80.336283185839477</Top>
- <Width>280</Width>
- <Height>166.17699115044252</Height>
- <Angle>0</Angle>
- <ItemGuid>78db28d0-0407-4942-bb62-c44da81c4f9e</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalInItem">
- <ID>8f9ff579-0e9d-4f48-8ed0-6fa563f2aba7</ID>
- <Left>873</Left>
- <Top>63.831858407079665</Top>
- <Width>174</Width>
- <Height>133.75221238938059</Height>
- <Angle>0</Angle>
- <ItemGuid>06bd7c0b-5aef-445a-86c0-853becf8594b</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalInItem">
- <ID>70d1bd1e-acdb-436a-b205-6eeb9d137120</ID>
- <Left>1070</Left>
- <Top>70.106194690265909</Top>
- <Width>221</Width>
- <Height>123.61946902654864</Height>
- <Angle>0</Angle>
- <ItemGuid>4048bf02-27dc-4049-9284-fe913a7e0ebe</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalInItem">
- <ID>dcc7ce16-5b89-4ff8-acd5-7fb0b9ebb6d1</ID>
- <Left>877</Left>
- <Top>248.24778761061947</Top>
- <Width>186</Width>
- <Height>126.65929203539827</Height>
- <Angle>0</Angle>
- <ItemGuid>00ea1771-efee-4f3e-a0d2-8b2a4214e9fd</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>2b99bbf7-94da-4bb2-acc9-91b35e543c5d</ID>
- <Left>897</Left>
- <Top>358.69469026548683</Top>
- <Width>147</Width>
- <Height>69.9159292035398</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>Waste lower presence</Text>
- </TechItem>
- <TechItem xsi:type="DigitalInItem">
- <ID>c150533c-abe4-4edf-b6ad-fa475b133142</ID>
- <Left>1112</Left>
- <Top>253.66814159291806</Top>
- <Width>186</Width>
- <Height>126.65929203539827</Height>
- <Angle>0</Angle>
- <ItemGuid>d2f266e3-779b-4dfe-b513-26ce61c529a4</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>d96f2a6d-0ccb-401e-8931-09086ca81fae</ID>
- <Left>1143</Left>
- <Top>366.78318584070507</Top>
- <Width>147</Width>
- <Height>69.9159292035398</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>Waste middle presence</Text>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>bb9847ba-9671-4613-bf23-a0c637ebc79d</ID>
- <Left>151</Left>
- <Top>271.55309734513281</Top>
- <Width>200</Width>
- <Height>63.836283185840671</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>pump</Text>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>d13a2df4-3f54-4c31-8f9a-ee7810fb6af5</ID>
- <Left>504</Left>
- <Top>283.71238938053096</Top>
- <Width>192</Width>
- <Height>67.88938053097354</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>valve</Text>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>a79322a7-fbb8-469b-a4d9-a0ffb3c17a5d</ID>
- <Left>639</Left>
- <Top>358.69469026548683</Top>
- <Width>134</Width>
- <Height>99.300884955752167</Height>
- <Angle>0</Angle>
- <ItemGuid>94F3E5A1-413E-4EA0-BDE1-F0625BFF7910</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>979459b4-b609-487f-b6d7-55f435659658</ID>
- <Left>1027</Left>
- <Top>391.93362831858775</Top>
- <Width>118</Width>
- <Height>93.221238938053034</Height>
- <Angle>0</Angle>
- <ItemGuid>FE0D0A56-5795-4C5A-8E09-939FBB35C441</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>8b11bfca-091d-4461-8713-ba2fd9c8484e</ID>
- <Left>432</Left>
- <Top>511.69911504424789</Top>
- <Width>461</Width>
- <Height>250.27876106194691</Height>
- <Angle>0</Angle>
- <ItemGuid>94F3E5A1-413E-4EA0-BDE1-F0625BFF7910</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>419</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>8aa4b451-71d6-429c-94e4-2581e3c62a7a</ID>
- <Left>956</Left>
- <Top>513.80973451327361</Top>
- <Width>461</Width>
- <Height>250.27876106194691</Height>
- <Angle>0</Angle>
- <ItemGuid>FE0D0A56-5795-4C5A-8E09-939FBB35C441</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>419</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="BlowerItem">
- <ID>1f85047c-0b3e-49c6-a80a-c2585de00a81</ID>
- <Left>288</Left>
- <Top>366.80088495575222</Top>
- <Width>217</Width>
- <Height>97.2743362831859</Height>
- <Angle>0</Angle>
- <ItemGuid>B6FE07F8-2435-495D-ABFE-358C76812413</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>c296a84d-7af4-4a26-9a35-0b82d378edce</ID>
- <Left>41</Left>
- <Top>351.6017699115045</Top>
- <Width>209</Width>
- <Height>120.57964601769913</Height>
- <Angle>0</Angle>
- <ItemGuid>1778C1A7-AFB5-42F9-9E00-E80D30D9FC0A</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="ControllerItem">
- <ID>ab6714cc-04d8-471f-a263-db28c30e229d</ID>
- <Left>59</Left>
- <Top>550.2035398230089</Top>
- <Width>294</Width>
- <Height>171.24336283185835</Height>
- <Angle>0</Angle>
- <ItemGuid>78482AA4-3DF6-421F-944C-64328D3C3EF2</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <OptimalRangeMinimum>0</OptimalRangeMinimum>
- <OptimalRangeMaximum>7000</OptimalRangeMaximum>
- <IsSetToDefault>true</IsSetToDefault>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>cde1d5a8-7238-44b8-8d4e-30a2dba70c12</ID>
- <Left>1294</Left>
- <Top>166.17256637168146</Top>
- <Width>217</Width>
- <Height>132.73893805309734</Height>
- <Angle>0</Angle>
- <ItemGuid>2a454081-bd5e-41de-ae5d-97aefe1d76de</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- <MachineTechViewProjectTab>
- <Name>disp</Name>
- <Items>
- <TechItem xsi:type="SingleGraphItem">
- <ID>f9531a72-3742-47a7-86bb-b589f8b3eb55</ID>
- <Left>123</Left>
- <Top>128.33628318584061</Top>
- <Width>390</Width>
- <Height>249.67699115047321</Height>
- <Angle>0</Angle>
- <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>3600</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>3</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>aae29286-81b3-476a-9f58-c0fd246cae96</ID>
- <Left>880</Left>
- <Top>158.81415929204155</Top>
- <Width>442</Width>
- <Height>241.88495575221771</Height>
- <Angle>0</Angle>
- <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>3600</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>3</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>7d94c7c4-1288-4f9d-b0e6-a06794829642</ID>
- <Left>1055</Left>
- <Top>14.181415929203524</Top>
- <Width>161</Width>
- <Height>111.46017699115049</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>Y</Text>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>c95f9ad1-b607-4606-8217-400bea76f3d6</ID>
- <Left>384</Left>
- <Top>23.991150442480944</Top>
- <Width>161</Width>
- <Height>111.46017699115049</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>C</Text>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>8f141fa5-fb24-4557-adcf-a6aa55a28fb4</ID>
- <Left>121</Left>
- <Top>-8.8495575221214722</Top>
- <Width>169</Width>
- <Height>132.73893805309734</Height>
- <Angle>0</Angle>
- <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>3</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>7eab018a-ef43-4bca-a6cf-857d69767bba</ID>
- <Left>839</Left>
- <Top>-4.7079646017762684</Top>
- <Width>169</Width>
- <Height>132.73893805309734</Height>
- <Angle>0</Angle>
- <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>3</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorRecorderItem">
- <ID>2a9e89d4-5d60-4a83-9527-cb77fdf35c14</ID>
- <Left>1276</Left>
- <Top>22.287610619469035</Top>
- <Width>187</Width>
- <Height>102.34070796460179</Height>
- <Angle>0</Angle>
- <ColorNumber>-1</ColorNumber>
- <SelectedMonitorsGuids>
- <string>1F0F907A-EC16-4386-AFC8-B2B156F2A822</string>
- <string>A499E5E0-A812-4032-8F96-B38C6762C4BD</string>
- <string>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</string>
- <string>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</string>
- <string>19645882-6587-4A50-BD85-AF06617DC654</string>
- <string>96B89605-F999-43FE-A1CD-2645BFB33A36</string>
- <string>84CF23C9-D20D-4C08-BE1D-80201FC43C06</string>
- <string>C0BCCD5C-346B-4C4A-A080-39D28E9E1A0C</string>
- <string>10102BC3-0EAE-47FF-A8E5-8640780CAA3D</string>
- <string>FC60060A-3736-4910-B41A-FF6DABDF0E9E</string>
- <string>5F12B974-2C9E-4DDD-9B20-733251A5D7E6</string>
- <string>D126DB23-784B-4F0C-8F88-D89A65A7549F</string>
- </SelectedMonitorsGuids>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>6d2e7962-b3ae-4682-b20e-9654f48dcffe</ID>
- <Left>587</Left>
- <Top>5.0619469026548813</Top>
- <Width>155</Width>
- <Height>131.72566371681415</Height>
- <Angle>0</Angle>
- <ItemGuid>2CC8E461-E91F-4D4C-A402-922477F06C87</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>500</Speed>
- <DisplayName>Dispenser 1</DisplayName>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>5ee2718f-f068-427b-a31e-d586c7d7682c</ID>
- <Left>131</Left>
- <Top>552.94690265486338</Top>
- <Width>390</Width>
- <Height>249.67699115047321</Height>
- <Angle>0</Angle>
- <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>3600</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>3</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>1c254a92-c075-453f-9667-cdcc91cf8e6a</ID>
- <Left>399</Left>
- <Top>455.67256637168265</Top>
- <Width>161</Width>
- <Height>111.46017699115049</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>K</Text>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>d1087b1a-c36b-4242-96f5-07c2bb602cc4</ID>
- <Left>145</Left>
- <Top>409.52212389380446</Top>
- <Width>169</Width>
- <Height>132.73893805309734</Height>
- <Angle>0</Angle>
- <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>3</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>53fe93a2-88a5-4d4d-9cd5-eb4d8a8fefae</ID>
- <Left>604</Left>
- <Top>561.16371681414739</Top>
- <Width>390</Width>
- <Height>249.67699115047321</Height>
- <Angle>0</Angle>
- <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>3600</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>3</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>0bef6e9d-6da0-4f06-9e1a-c00142bde4c1</ID>
- <Left>832</Left>
- <Top>440.91150442477635</Top>
- <Width>161</Width>
- <Height>111.46017699115049</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>M</Text>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>762c5a97-a3bc-45b4-aa9f-0b50afa9cb9b</ID>
- <Left>633</Left>
- <Top>434.0132743362783</Top>
- <Width>169</Width>
- <Height>132.73893805309734</Height>
- <Angle>0</Angle>
- <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>3</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>be584f80-3250-494c-87fc-250d6deae051</ID>
- <Left>1045</Left>
- <Top>559.4070796459921</Top>
- <Width>390</Width>
- <Height>249.67699115047321</Height>
- <Angle>0</Angle>
- <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>3600</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>3</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>39f6a02c-c4d9-47d0-b92d-bdea0ed5d3ce</ID>
- <Left>1056</Left>
- <Top>435.43805309733875</Top>
- <Width>169</Width>
- <Height>132.73893805309734</Height>
- <Angle>0</Angle>
- <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>3</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>5b924929-9b16-4598-94cc-b2f4bca26798</ID>
- <Left>1304</Left>
- <Top>448.0884955752224</Top>
- <Width>161</Width>
- <Height>111.46017699115049</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>TI</Text>
- </TechItem>
- <TechItem xsi:type="ValveItem">
- <ID>89ae1fa5-1ad1-469e-ae76-0a29c35805cd</ID>
- <Left>588</Left>
- <Top>317.1504424778762</Top>
- <Width>283</Width>
- <Height>74.982300884955748</Height>
- <Angle>0</Angle>
- <ItemGuid>E144A221-4859-4DC3-9A7E-4A2969FB0826</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="ValveItem">
- <ID>c218cf34-74c2-41bb-8c3b-3030abce451a</ID>
- <Left>1363</Left>
- <Top>384.02654867256643</Top>
- <Width>156</Width>
- <Height>94.234513274336337</Height>
- <Angle>0</Angle>
- <ItemGuid>E144A221-4859-4DC3-9A7E-4A2969FB0826</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="ValveItem">
- <ID>75af30c6-d7f8-4745-bfb5-d6dc5d50479a</ID>
- <Left>767</Left>
- <Top>362.74778761061958</Top>
- <Width>283</Width>
- <Height>74.982300884955748</Height>
- <Angle>0</Angle>
- <ItemGuid>E144A221-4859-4DC3-9A7E-4A2969FB0826</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>df1fd958-fd8a-4b00-98e1-679455494d60</ID>
- <Left>309</Left>
- <Top>13.168141592920392</Top>
- <Width>112</Width>
- <Height>107.40707964601768</Height>
- <Angle>0</Angle>
- <ItemGuid>3174ADCF-5793-4B5A-A3C6-B96E146A903D</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>f07225b3-1522-4cb6-9ba8-5b9697f05467</ID>
- <Left>1180</Left>
- <Top>60.7920353982301</Top>
- <Width>102</Width>
- <Height>88.1548672566372</Height>
- <Angle>0</Angle>
- <ItemGuid>E2F0FC31-CE7E-416B-ACEA-8EB6CA9B850B</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>45b87322-e1f5-42eb-88c6-71c2eeb2899a</ID>
- <Left>1258</Left>
- <Top>463.06194690265494</Top>
- <Width>88</Width>
- <Height>75.995575221239</Height>
- <Angle>0</Angle>
- <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C09F</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>0c1c25e8-3ce3-4994-bbb9-bd6b2367a413</ID>
- <Left>810</Left>
- <Top>462.04867256637175</Top>
- <Width>77</Width>
- <Height>80.048672566371636</Height>
- <Angle>0</Angle>
- <ItemGuid>AD50C358-5BAF-4A2F-8593-51A22C85B3D1</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>fa2f697e-b229-418a-bae6-78b92bf0458b</ID>
- <Left>336</Left>
- <Top>428.61061946902663</Top>
- <Width>95</Width>
- <Height>96.261061946902657</Height>
- <Angle>0</Angle>
- <ItemGuid>84682E90-6926-42AA-BF8C-2CCCF5C26C97</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- <MachineTechViewProjectTab>
- <Name>Priming</Name>
- <Items>
- <TechItem xsi:type="MonitorItem">
- <ID>ea45a516-9dac-4c9a-9261-0c44e22aa065</ID>
- <Left>808</Left>
- <Top>155.02654867256638</Top>
- <Width>219</Width>
- <Height>200.62831858407088</Height>
- <Angle>0</Angle>
- <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>3e2cb7dc-a5f3-4ba6-a520-2bae8ff0e4a8</ID>
- <Left>832</Left>
- <Top>451.91592920353986</Top>
- <Width>332</Width>
- <Height>326.27433628318596</Height>
- <Angle>0</Angle>
- <ItemGuid>C8D8FE90-0375-44A2-A6D1-E997789E065C</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 2</DisplayName>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>6f8dfd8d-ed50-4923-b908-e0b5bc5d6ae5</ID>
- <Left>154</Left>
- <Top>131.72123893805315</Top>
- <Width>474</Width>
- <Height>410.37610619469024</Height>
- <Angle>0</Angle>
- <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>1942</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>1</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="ValveItem">
- <ID>604e031b-89c3-4c9d-90ef-7b861a77e5e0</ID>
- <Left>243</Left>
- <Top>595.80088495575228</Top>
- <Width>497</Width>
- <Height>189.48230088495575</Height>
- <Angle>0</Angle>
- <ItemGuid>8B1FCBC3-FEEA-4F87-B56F-CE5D28B7ACA4</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>c414ae0e-323a-48c1-9165-2c05cc4234c6</ID>
- <Left>1291</Left>
- <Top>584.65486725663732</Top>
- <Width>200</Width>
- <Height>171.24336283185835</Height>
- <Angle>0</Angle>
- <ItemGuid>0bd10306-2944-4cda-bc59-0264da2883d2</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- </Tabs>
- <SelectedTabIndex>0</SelectedTabIndex>
-</MachineTechViewProject> \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/technician view files/teach board 2.tpf b/Software/Stubs Collection/stubs/technician view files/teach board 2.tpf
deleted file mode 100644
index f3580a1b0..000000000
--- a/Software/Stubs Collection/stubs/technician view files/teach board 2.tpf
+++ /dev/null
@@ -1,3144 +0,0 @@
-<?xml version="1.0"?>
-<MachineTechViewProject xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <Items />
- <Tabs>
- <MachineTechViewProjectTab>
- <Name>Temperatures</Name>
- <Items>
- <TechItem xsi:type="DigitalOutItem">
- <ID>e4892498-fa1a-413c-9dd8-633efaade51c</ID>
- <Left>415</Left>
- <Top>692.74336283185824</Top>
- <Width>160</Width>
- <Height>102.34070796460173</Height>
- <Angle>0</Angle>
- <ItemGuid>6b9cba1d-4acf-4992-97ad-e422bca6ada2</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>a15665e3-af39-42d8-8c06-97d770632e10</ID>
- <Left>928</Left>
- <Top>593.77433628318579</Top>
- <Width>207</Width>
- <Height>184.4159292035398</Height>
- <Angle>0</Angle>
- <ItemGuid>6D6CFA18-5922-4AFE-84B3-2721CE128681</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>DryerAirHeater</HeaterType>
- <SetPoint>180</SetPoint>
- <CurrentValue>120.07</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>true</IsRampingUp>
- <IsInSetPoint>false</IsInSetPoint>
- </HeaterState>
- <SetPoint>180</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>0ac64716-d30c-489b-939e-a26d06445866</ID>
- <Left>828</Left>
- <Top>682.88053097345</Top>
- <Width>130</Width>
- <Height>100.31415929203541</Height>
- <Angle>0</Angle>
- <ItemGuid>A5DFC2DB-3B36-4377-96A0-D492CE785C00</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>DryerMainHeater</HeaterType>
- <SetPoint>100</SetPoint>
- <CurrentValue>139.38</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>100</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>181796d8-64f6-420a-8f37-9af9df67d6a9</ID>
- <Left>717</Left>
- <Top>684.46902654867324</Top>
- <Width>127</Width>
- <Height>101.3274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>86808B48-B7F9-43AD-840E-2A6A5987C305</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>DryerSecondaryHeater</HeaterType>
- <SetPoint>100</SetPoint>
- <CurrentValue>145.96</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>100</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>fd2bb3a3-a411-470d-bde7-0beaf84da059</ID>
- <Left>924</Left>
- <Top>112.5486725663713</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>8E764A14-0F84-4FEC-928B-32A2509CAD57</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone3</HeaterType>
- <SetPoint>120</SetPoint>
- <CurrentValue>119.94</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>120</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>7e8dd386-cca6-4d07-8a3e-af5403756002</ID>
- <Left>1103</Left>
- <Top>115.97787610619525</Top>
- <Width>200</Width>
- <Height>187.45575221238937</Height>
- <Angle>0</Angle>
- <ItemGuid>B4EE8CC0-EE2B-4ABE-BF09-9226860E756B</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone2</HeaterType>
- <SetPoint>100</SetPoint>
- <CurrentValue>100.11</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>100</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>32a91e5f-27c8-490d-b187-8e39b6626a13</ID>
- <Left>1302</Left>
- <Top>109.1592920353977</Top>
- <Width>157</Width>
- <Height>194.54867256637175</Height>
- <Angle>0</Angle>
- <ItemGuid>27E7BB74-81C3-4EF2-80AE-962F111C441F</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone1</HeaterType>
- <SetPoint>80</SetPoint>
- <CurrentValue>80.13</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>80</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>c844235a-8a29-4c2e-a964-e8f546d2ced7</ID>
- <Left>1140</Left>
- <Top>588.70796460177</Top>
- <Width>173</Width>
- <Height>183.40265486725662</Height>
- <Angle>0</Angle>
- <ItemGuid>42A62A48-F1D5-4BB6-AFEA-6A7DF6DCF626</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>MixerHeater</HeaterType>
- <SetPoint>80</SetPoint>
- <CurrentValue>79.66</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>80</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>45b121b5-cf7c-41f7-8089-6d4d6b1ed2c8</ID>
- <Left>743</Left>
- <Top>113.36725663717004</Top>
- <Width>169</Width>
- <Height>197.27876106194645</Height>
- <Angle>0</Angle>
- <ItemGuid>94574D69-46E1-4144-A8B5-D4BF0DA96D18</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone4</HeaterType>
- <SetPoint>120</SetPoint>
- <CurrentValue>120.07</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>120</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>e6b3eb18-482b-450e-b8a8-d2ac6bba4fd4</ID>
- <Left>542</Left>
- <Top>109.74336283185721</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>D6771DF4-771E-4D62-B6BA-BDE361C0A0F3</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone5</HeaterType>
- <SetPoint>135</SetPoint>
- <CurrentValue>135.02</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>135</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>efff2e67-e3a3-4667-9208-4704707d7cda</ID>
- <Left>353</Left>
- <Top>108.93805309734404</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>D2B6CAA0-055E-4871-8D91-A5370F1ACB22</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone6</HeaterType>
- <SetPoint>135</SetPoint>
- <CurrentValue>135.11</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>135</SetPoint>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>f9936dba-cef8-41e3-a715-eb629dca1870</ID>
- <Left>265</Left>
- <Top>683.95575221238948</Top>
- <Width>131</Width>
- <Height>109.43362831858394</Height>
- <Angle>0</Angle>
- <ItemGuid>1778C1A7-AFB5-42F9-9E00-E80D30D9FC0A</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>5f2610dc-3b9d-4302-b8f5-77a5e1c73b8c</ID>
- <Left>1027.9999999999973</Left>
- <Top>291.07079646017547</Top>
- <Width>44</Width>
- <Height>42.557522123893705</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>D</Text>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>eadb5257-47a2-4336-a72a-f2d157fe70cb</ID>
- <Left>907.99999999999909</Left>
- <Top>295.35840707964616</Top>
- <Width>44</Width>
- <Height>42.557522123893705</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>F</Text>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>6c59af66-169a-46e0-89ae-a81e3e619043</ID>
- <Left>785.00000000000159</Left>
- <Top>288.5000000000004</Top>
- <Width>44</Width>
- <Height>42.557522123893705</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>I</Text>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>3b32b9a8-f300-443f-950e-c49f81678bac</ID>
- <Left>624.99999999999966</Left>
- <Top>285.86725663716874</Top>
- <Width>44</Width>
- <Height>42.557522123893705</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>L</Text>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>f6d44793-ed44-46ed-8854-eacbc11af10c</ID>
- <Left>569</Left>
- <Top>688.00884955752213</Top>
- <Width>155</Width>
- <Height>96.261061946902714</Height>
- <Angle>0</Angle>
- <ItemGuid>df38139e-0026-46bc-b72f-df5f9eec80f7</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MonitorRecorderItem">
- <ID>43793f93-da64-4409-b583-bca498f641e6</ID>
- <Left>1308</Left>
- <Top>656.59734513274338</Top>
- <Width>203</Width>
- <Height>107.40707964601774</Height>
- <Angle>0</Angle>
- <ColorNumber>-1</ColorNumber>
- <SelectedMonitorsGuids />
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>be9db1fd-d408-4f1c-a15a-d6ffe58fafb6</ID>
- <Left>1292</Left>
- <Top>343.56637168141606</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>188285E5-1493-4BED-8269-91743770A631</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone7</HeaterType>
- <SetPoint>135</SetPoint>
- <CurrentValue>135.13</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>135</SetPoint>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>f129ea0d-9abb-437f-928e-1cd1f569db2a</ID>
- <Left>1190.0000000000025</Left>
- <Top>294.69026548672929</Top>
- <Width>39</Width>
- <Height>38.504424778760836</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>C</Text>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>217c677a-3e11-4a7c-959b-616dae1259dd</ID>
- <Left>1369</Left>
- <Top>295.87168141592934</Top>
- <Width>44</Width>
- <Height>42.557522123893705</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>A</Text>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>381f67cf-b7c6-4f6d-b089-37130798a5d8</ID>
- <Left>1107</Left>
- <Top>342.55309734513293</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>461FA2D7-1918-4958-AAA7-37A1A329FA12</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone8</HeaterType>
- <SetPoint>140</SetPoint>
- <CurrentValue>139.92</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>140</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>3c923a93-4d15-4bbc-b1b3-be1876a77cfc</ID>
- <Left>924</Left>
- <Top>343.56637168141606</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>63E2AFE0-0746-4AAB-AA74-C26EC1F282AE</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone9</HeaterType>
- <SetPoint>140</SetPoint>
- <CurrentValue>140</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>140</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>26e078e6-df8c-4fbf-b10e-4b3f7c7e9500</ID>
- <Left>359</Left>
- <Top>342.55309734513304</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>2D578A37-D808-40D0-ACE4-4A868EDD6BDC</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone12</HeaterType>
- <SetPoint>145</SetPoint>
- <CurrentValue>145.06</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>145</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>7a8c3948-bb3d-4eb1-9276-315d34038f91</ID>
- <Left>550</Left>
- <Top>343.56637168141611</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>D41BBB23-6EB5-4743-89DB-9191000B475F</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone11</HeaterType>
- <SetPoint>140</SetPoint>
- <CurrentValue>140.2</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>140</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>f7d4c8ac-28cb-4779-83ef-3ede5e5a612c</ID>
- <Left>738</Left>
- <Top>344.57964601769908</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>B4D0A1C8-711C-49A9-82A3-B5B9F35FC131</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone10</HeaterType>
- <SetPoint>140</SetPoint>
- <CurrentValue>140.04</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>140</SetPoint>
- </TechItem>
- <TechItem xsi:type="ProcessParametersItem">
- <ID>120a9bea-5b5a-4ba4-92f5-40135f49a344</ID>
- <Left>6</Left>
- <Top>535.07522123893818</Top>
- <Width>338</Width>
- <Height>137.80530973451323</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <ProcessParameters>
- <ID>0</ID>
- <Guid>674d92c5-e6f8-4a62-bc62-b8e2fe0882a0</Guid>
- <LastUpdated>2020-01-14T07:44:15.1425366Z</LastUpdated>
- <Name>Process parameters 2</Name>
- <DyeingSpeed>0</DyeingSpeed>
- <MinInkUptake>0</MinInkUptake>
- <MaxInkUptake>0</MaxInkUptake>
- <FeederTension>0</FeederTension>
- <PullerTension>0</PullerTension>
- <WinderTension>0</WinderTension>
- <MixerTemp>0</MixerTemp>
- <HeadZone1Temp>0</HeadZone1Temp>
- <HeadZone2Temp>0</HeadZone2Temp>
- <HeadZone3Temp>0</HeadZone3Temp>
- <HeadZone4Temp>0</HeadZone4Temp>
- <HeadZone5Temp>0</HeadZone5Temp>
- <HeadZone6Temp>0</HeadZone6Temp>
- <DryerAirFlow>7</DryerAirFlow>
- <DryerZone1Temp>0</DryerZone1Temp>
- <DryerZone2Temp>0</DryerZone2Temp>
- <DryerZone3Temp>0</DryerZone3Temp>
- <DryerBufferLength>0</DryerBufferLength>
- <HeadAirFlow>7</HeadAirFlow>
- <TableIndex>0</TableIndex>
- <HeadZone7Temp>0</HeadZone7Temp>
- <HeadZone8Temp>0</HeadZone8Temp>
- <HeadZone9Temp>0</HeadZone9Temp>
- <HeadZone10Temp>0</HeadZone10Temp>
- <HeadZone11Temp>0</HeadZone11Temp>
- <HeadZone12Temp>0</HeadZone12Temp>
- <RBlowerFlow>0</RBlowerFlow>
- <RBlowerTemp>0</RBlowerTemp>
- <LBlowerFlow>0</LBlowerFlow>
- <LBlowerTemp>0</LBlowerTemp>
- <PressureBuildUp>0</PressureBuildUp>
- </ProcessParameters>
- <ParametersIndices>
- <ParameterIndex>
- <Name>Name</Name>
- <Index>0</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dyeing Speed</Name>
- <Index>1</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Min Ink Uptake</Name>
- <Index>2</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Max Ink Uptake</Name>
- <Index>3</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Feeder Tension</Name>
- <Index>4</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Puller Tension</Name>
- <Index>5</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Winder Tension</Name>
- <Index>6</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Mixer Temp</Name>
- <Index>7</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 1 Temp</Name>
- <Index>8</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 2 Temp</Name>
- <Index>9</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 3 Temp</Name>
- <Index>10</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 4 Temp</Name>
- <Index>11</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 5 Temp</Name>
- <Index>12</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 6 Temp</Name>
- <Index>13</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Air Flow</Name>
- <Index>14</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Zone 1 Temp</Name>
- <Index>15</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Zone 2 Temp</Name>
- <Index>16</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Zone 3 Temp</Name>
- <Index>17</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Buffer Length</Name>
- <Index>18</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Air Flow</Name>
- <Index>19</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Process Parameters Tables Group Guid</Name>
- <Index>20</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Table Index</Name>
- <Index>21</Index>
- </ParameterIndex>
- </ParametersIndices>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>e502555c-95b0-4688-b5e3-8becb30fc62c</ID>
- <Left>1463.875</Left>
- <Top>114.15828441251023</Top>
- <Width>200</Width>
- <Height>187.45575221238937</Height>
- <Angle>0</Angle>
- <ItemGuid>F8C1BA7F-F6DF-414D-BAF5-D4CB292F91F6</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeadCoverHeater1</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>283.75</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>0f7a35fc-e363-45b2-948d-ba66f91e4f0d</ID>
- <Left>1457.8333333333333</Left>
- <Top>344.58910891089096</Top>
- <Width>200</Width>
- <Height>187.45575221238937</Height>
- <Angle>0</Angle>
- <ItemGuid>F39B952A-6194-4055-A5CB-A3421BFE0F9B</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeadCoverHeater2</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>283.75</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>0214c2bd-98e2-4435-b55f-ec165b0782dd</ID>
- <Left>532</Left>
- <Top>587.69469026548677</Top>
- <Width>163</Width>
- <Height>77.008849557522126</Height>
- <Angle>0</Angle>
- <ItemGuid>FE0D0A56-5795-4C5A-8E09-939FBB35C441</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>387e9a45-e608-47b8-9f3c-5572d0544e41</ID>
- <Left>708</Left>
- <Top>584.65486725663732</Top>
- <Width>168</Width>
- <Height>84.101769911504334</Height>
- <Angle>0</Angle>
- <ItemGuid>94F3E5A1-413E-4EA0-BDE1-F0625BFF7910</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="BlowerItem">
- <ID>18f62f2f-dbc0-4a3e-8af6-efdffc9562a5</ID>
- <Left>12</Left>
- <Top>699.86283185840716</Top>
- <Width>234</Width>
- <Height>96.2610619469026</Height>
- <Angle>0</Angle>
- <ItemGuid>B6FE07F8-2435-495D-ABFE-358C76812413</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>cb7b89a1-cdb4-408e-acc8-40e8dcb8d6ac</ID>
- <Left>146</Left>
- <Top>4.8628318584048884</Top>
- <Width>172</Width>
- <Height>77.336283185840216</Height>
- <Angle>0</Angle>
- <ItemGuid>9F98B9D3-F989-4D03-90E8-721671835E0B</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>6be6ca7d-3ca6-4206-9c67-415174b71ace</ID>
- <Left>340</Left>
- <Top>7.4336283185855336</Top>
- <Width>180</Width>
- <Height>72.305309734513685</Height>
- <Angle>0</Angle>
- <ItemGuid>D59EFB38-79D9-446C-BCB5-92D8FDA900E4</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>2dca972d-3c41-4b07-a047-b63a23470a7e</ID>
- <Left>347</Left>
- <Top>574.92035398230325</Top>
- <Width>160</Width>
- <Height>102.34070796460173</Height>
- <Angle>0</Angle>
- <ItemGuid>75f69efe-1c7e-4015-a6eb-2686d4f67a67</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="ProcessParametersItem">
- <ID>38e5d1ac-40a5-4c5f-822c-51813cb15b7b</ID>
- <Left>31</Left>
- <Top>144.3584070796461</Top>
- <Width>310</Width>
- <Height>315.12831858407088</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <ProcessParameters>
- <ID>0</ID>
- <Guid>ce709f03-59be-410d-a928-e942c0c46ce3</Guid>
- <LastUpdated>2020-02-09T12:45:24.1272815Z</LastUpdated>
- <Name>Process parameters 6</Name>
- <DyeingSpeed>50</DyeingSpeed>
- <MinInkUptake>0</MinInkUptake>
- <MaxInkUptake>0</MaxInkUptake>
- <FeederTension>0</FeederTension>
- <PullerTension>5000</PullerTension>
- <WinderTension>5000</WinderTension>
- <MixerTemp>80</MixerTemp>
- <HeadZone1Temp>80</HeadZone1Temp>
- <HeadZone2Temp>90</HeadZone2Temp>
- <HeadZone3Temp>110</HeadZone3Temp>
- <HeadZone4Temp>120</HeadZone4Temp>
- <HeadZone5Temp>130</HeadZone5Temp>
- <HeadZone6Temp>135</HeadZone6Temp>
- <DryerAirFlow>7</DryerAirFlow>
- <DryerZone1Temp>190</DryerZone1Temp>
- <DryerZone2Temp>0</DryerZone2Temp>
- <DryerZone3Temp>0</DryerZone3Temp>
- <DryerBufferLength>0</DryerBufferLength>
- <HeadAirFlow>7</HeadAirFlow>
- <TableIndex>0</TableIndex>
- <HeadZone7Temp>135</HeadZone7Temp>
- <HeadZone8Temp>135</HeadZone8Temp>
- <HeadZone9Temp>135</HeadZone9Temp>
- <HeadZone10Temp>135</HeadZone10Temp>
- <HeadZone11Temp>140</HeadZone11Temp>
- <HeadZone12Temp>140</HeadZone12Temp>
- <RBlowerFlow>0</RBlowerFlow>
- <RBlowerTemp>0</RBlowerTemp>
- <LBlowerFlow>0</LBlowerFlow>
- <LBlowerTemp>0</LBlowerTemp>
- <PressureBuildUp>0</PressureBuildUp>
- </ProcessParameters>
- <ParametersIndices>
- <ParameterIndex>
- <Name>Process Parameters Tables Group Guid</Name>
- <Index>0</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Name</Name>
- <Index>1</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Table Index</Name>
- <Index>2</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dyeing Speed</Name>
- <Index>3</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Min Ink Uptake</Name>
- <Index>4</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Max Ink Uptake</Name>
- <Index>5</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Feeder Tension</Name>
- <Index>6</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Puller Tension</Name>
- <Index>7</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Winder Tension</Name>
- <Index>8</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Mixer Temp</Name>
- <Index>9</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 1 Temp</Name>
- <Index>10</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 2 Temp</Name>
- <Index>11</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 3 Temp</Name>
- <Index>12</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 4 Temp</Name>
- <Index>13</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 5 Temp</Name>
- <Index>14</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 6 Temp</Name>
- <Index>15</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 7 Temp</Name>
- <Index>16</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 8 Temp</Name>
- <Index>17</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 9 Temp</Name>
- <Index>18</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 10 Temp</Name>
- <Index>19</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 11 Temp</Name>
- <Index>20</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 12 Temp</Name>
- <Index>21</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>St Sp Zone 1 Temp</Name>
- <Index>22</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>St Sp Zone 2 Temp</Name>
- <Index>23</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Zone 1 Temp</Name>
- <Index>24</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Zone 2 Temp</Name>
- <Index>25</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Zone 3 Temp</Name>
- <Index>26</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Air Flow</Name>
- <Index>27</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Air Flow</Name>
- <Index>28</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Buffer Length</Name>
- <Index>29</Index>
- </ParameterIndex>
- </ParametersIndices>
- </TechItem>
- <TechItem xsi:type="ProcessParametersItem">
- <ID>d2e09fbf-2ac8-4c32-a4f5-45e50e305098</ID>
- <Left>1016</Left>
- <Top>821.96460176991263</Top>
- <Width>361</Width>
- <Height>233.95575221238948</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <ProcessParameters>
- <ID>0</ID>
- <Guid>9b265a7c-cc48-4c5a-abed-dfa8c8e3099f</Guid>
- <LastUpdated>2020-02-09T13:11:03.3185652Z</LastUpdated>
- <Name>Process parameters 2</Name>
- <DyeingSpeed>0</DyeingSpeed>
- <MinInkUptake>0</MinInkUptake>
- <MaxInkUptake>0</MaxInkUptake>
- <FeederTension>0</FeederTension>
- <PullerTension>0</PullerTension>
- <WinderTension>0</WinderTension>
- <MixerTemp>0</MixerTemp>
- <HeadZone1Temp>0</HeadZone1Temp>
- <HeadZone2Temp>0</HeadZone2Temp>
- <HeadZone3Temp>0</HeadZone3Temp>
- <HeadZone4Temp>0</HeadZone4Temp>
- <HeadZone5Temp>0</HeadZone5Temp>
- <HeadZone6Temp>0</HeadZone6Temp>
- <DryerAirFlow>0</DryerAirFlow>
- <DryerZone1Temp>100</DryerZone1Temp>
- <DryerZone2Temp>0</DryerZone2Temp>
- <DryerZone3Temp>0</DryerZone3Temp>
- <DryerBufferLength>0</DryerBufferLength>
- <HeadAirFlow>0</HeadAirFlow>
- <TableIndex>0</TableIndex>
- <HeadZone7Temp>0</HeadZone7Temp>
- <HeadZone8Temp>0</HeadZone8Temp>
- <HeadZone9Temp>0</HeadZone9Temp>
- <HeadZone10Temp>0</HeadZone10Temp>
- <HeadZone11Temp>0</HeadZone11Temp>
- <HeadZone12Temp>0</HeadZone12Temp>
- <RBlowerFlow>0</RBlowerFlow>
- <RBlowerTemp>0</RBlowerTemp>
- <LBlowerFlow>0</LBlowerFlow>
- <LBlowerTemp>0</LBlowerTemp>
- <PressureBuildUp>0</PressureBuildUp>
- </ProcessParameters>
- <ParametersIndices>
- <ParameterIndex>
- <Name>Name</Name>
- <Index>0</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dyeing Speed</Name>
- <Index>1</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Min Ink Uptake</Name>
- <Index>2</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Max Ink Uptake</Name>
- <Index>3</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Feeder Tension</Name>
- <Index>4</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Puller Tension</Name>
- <Index>5</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Winder Tension</Name>
- <Index>6</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Mixer Temp</Name>
- <Index>7</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 1 Temp</Name>
- <Index>8</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 2 Temp</Name>
- <Index>9</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 3 Temp</Name>
- <Index>10</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 4 Temp</Name>
- <Index>11</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 5 Temp</Name>
- <Index>12</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 6 Temp</Name>
- <Index>13</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Air Flow</Name>
- <Index>14</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Zone 1 Temp</Name>
- <Index>15</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Zone 2 Temp</Name>
- <Index>16</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Zone 3 Temp</Name>
- <Index>17</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Buffer Length</Name>
- <Index>18</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Air Flow</Name>
- <Index>19</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Process Parameters Tables Group Guid</Name>
- <Index>20</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Table Index</Name>
- <Index>21</Index>
- </ParameterIndex>
- </ParametersIndices>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>11f4748e-ed30-48d6-a08a-afeaa0277e2e</ID>
- <Left>548</Left>
- <Top>7.0132743362775614</Top>
- <Width>185</Width>
- <Height>69.3451327433653</Height>
- <Angle>0</Angle>
- <ItemGuid>1778C1A7-AFB5-42F9-9E00-E80D30D9FC02</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>dcf78507-ea09-4529-b635-ec1eeed31141</ID>
- <Left>145</Left>
- <Top>842.58849557522137</Top>
- <Width>357</Width>
- <Height>215.82743362831855</Height>
- <Angle>0</Angle>
- <ItemGuid>FE0D0A56-5795-4C5A-8E09-939FBB35C441</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>2</DecimalPlaces>
- <Duration>1275</Duration>
- <UseAutoRange>true</UseAutoRange>
- <Min>0</Min>
- <Max>100</Max>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>85d4727d-4be2-4854-8584-5fcb0a1bb19f</ID>
- <Left>759</Left>
- <Top>8.9778761061942873</Top>
- <Width>164</Width>
- <Height>70.929203539822993</Height>
- <Angle>0</Angle>
- <ItemGuid>055D0A38-09BD-490D-9852-12B06A4B22F2</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>09b1e471-50a5-41e4-9dea-d16518fb3b59</ID>
- <Left>1330</Left>
- <Top>581.61504424778764</Top>
- <Width>178</Width>
- <Height>70.929203539822993</Height>
- <Angle>0</Angle>
- <ItemGuid>79AD6611-82A2-4B4C-AB5E-A11A33E1243D</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>3</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>fa6e2e6b-d807-415a-a04a-ca5877cf1838</ID>
- <Left>948</Left>
- <Top>9.3185840707968737</Top>
- <Width>182</Width>
- <Height>72.783185840710189</Height>
- <Angle>0</Angle>
- <ItemGuid>F1DF490B-0577-4FA7-ACA1-0EEF4F934100</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>13640918-ad09-4aa8-8d5b-f3da45179831</ID>
- <Left>1157</Left>
- <Top>5.8185840707953389</Top>
- <Width>173</Width>
- <Height>81.265486725664175</Height>
- <Angle>0</Angle>
- <ItemGuid>79AD6611-82A2-4B4C-AB5E-A11A33E1243D</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- <MachineTechViewProjectTab>
- <Name>Thread</Name>
- <Items>
- <TechItem xsi:type="MonitorItem">
- <ID>50bae43f-8b1a-4279-9238-b976a0c72af3</ID>
- <Left>1530</Left>
- <Top>193.19911504424795</Top>
- <Width>169</Width>
- <Height>181.37610619469029</Height>
- <Angle>0</Angle>
- <ItemGuid>A8DB1D27-6B25-4FB4-A3F5-46A29BA51955</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>68eef943-2151-4df5-be61-044c3865606e</ID>
- <Left>1172</Left>
- <Top>145.78318584070678</Top>
- <Width>175</Width>
- <Height>167.827433628319</Height>
- <Angle>0</Angle>
- <ItemGuid>96B89605-F999-43FE-A1CD-2645BFB33A36</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>6be024c6-3d1b-4267-9b77-44473aba56b7</ID>
- <Left>988</Left>
- <Top>143.32300884955998</Top>
- <Width>190</Width>
- <Height>167.09734513274049</Height>
- <Angle>0</Angle>
- <ItemGuid>FC60060A-3736-4910-B41A-FF6DABDF0E9E</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>7c720f3b-00e1-49dd-92f9-fdd1e9686623</ID>
- <Left>817</Left>
- <Top>142.42035398230098</Top>
- <Width>169</Width>
- <Height>168.31858407079625</Height>
- <Angle>0</Angle>
- <ItemGuid>4CE6A82E-D841-4D33-BBB2-11F0743A441C</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>3ebd6759-521b-4ed1-a353-ee1ad7801f28</ID>
- <Left>922</Left>
- <Top>516.43362831858417</Top>
- <Width>439</Width>
- <Height>304.995575221239</Height>
- <Angle>0</Angle>
- <ItemGuid>D126DB23-784B-4F0C-8F88-D89A65A7549F</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>1</DecimalPlaces>
- <Duration>1460</Duration>
- <UseAutoRange>true</UseAutoRange>
- <Min>0</Min>
- <Max>16384</Max>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>984b4126-3dda-4624-a79f-0646eb0e1358</ID>
- <Left>465</Left>
- <Top>515.420353982301</Top>
- <Width>439</Width>
- <Height>304.995575221239</Height>
- <Angle>0</Angle>
- <ItemGuid>10102BC3-0EAE-47FF-A8E5-8640780CAA3D</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>1</DecimalPlaces>
- <Duration>1516</Duration>
- <UseAutoRange>true</UseAutoRange>
- <Min>0</Min>
- <Max>16384</Max>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>8ebc3ab7-a02d-4b12-93b3-2563443831d7</ID>
- <Left>15</Left>
- <Top>518.46017699115032</Top>
- <Width>439</Width>
- <Height>304.995575221239</Height>
- <Angle>0</Angle>
- <ItemGuid>C0BCCD5C-346B-4C4A-A080-39D28E9E1A0C</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>1</DecimalPlaces>
- <Duration>1398</Duration>
- <UseAutoRange>true</UseAutoRange>
- <Min>0</Min>
- <Max>16384</Max>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>acafb268-5e97-4277-8dc8-173250a9e3f8</ID>
- <Left>12</Left>
- <Top>13.849557522123973</Top>
- <Width>439</Width>
- <Height>304.995575221239</Height>
- <Angle>0</Angle>
- <ItemGuid>9FBC5460-BA59-486B-8D85-BD7D8A959F98</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>1</DecimalPlaces>
- <Duration>1273</Duration>
- <UseAutoRange>true</UseAutoRange>
- <Min>0</Min>
- <Max>100</Max>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>be4cb8d9-b516-4604-a6a5-1638cbc50251</ID>
- <Left>860</Left>
- <Top>-24.18584070796669</Top>
- <Width>345</Width>
- <Height>169.21681415929209</Height>
- <Angle>0</Angle>
- <ItemGuid>4CE6A82E-D841-4D33-BBB2-11F0743A441C</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>1</DecimalPlaces>
- <Duration>514</Duration>
- <UseAutoRange>true</UseAutoRange>
- <Min>0</Min>
- <Max>100000</Max>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>75b99507-4eba-4b11-b52e-26732d4c5479</ID>
- <Left>19</Left>
- <Top>324.14159292035305</Top>
- <Width>429</Width>
- <Height>193.26548672566258</Height>
- <Angle>0</Angle>
- <ItemGuid>F1DF490B-0577-4FA7-ACA1-0EEF4F934E8F</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>4</DecimalPlaces>
- <Duration>1398</Duration>
- <UseAutoRange>true</UseAutoRange>
- <Min>0</Min>
- <Max>100</Max>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>a30e48de-be76-4230-92d0-d27d6f37b940</ID>
- <Left>478</Left>
- <Top>328.89823008849282</Top>
- <Width>429</Width>
- <Height>193.26548672566258</Height>
- <Angle>0</Angle>
- <ItemGuid>5F12B974-2C9E-4DDD-9B20-733251A5D7E6</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>4</DecimalPlaces>
- <Duration>1398</Duration>
- <UseAutoRange>true</UseAutoRange>
- <Min>0</Min>
- <Max>100</Max>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>5ac4b368-093a-4192-98d4-e9d24f229b13</ID>
- <Left>928</Left>
- <Top>321.64601769912122</Top>
- <Width>429</Width>
- <Height>193.26548672566258</Height>
- <Angle>0</Angle>
- <ItemGuid>84CF23C9-D20D-4C08-BE1D-80201FC43C06</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>4</DecimalPlaces>
- <Duration>1398</Duration>
- <UseAutoRange>true</UseAutoRange>
- <Min>0</Min>
- <Max>100</Max>
- </TechItem>
- <TechItem xsi:type="MonitorRecorderItem">
- <ID>9c34dc69-cfaa-48b4-9d02-8f0d9bba79dd</ID>
- <Left>1303</Left>
- <Top>34.380530973454768</Top>
- <Width>176</Width>
- <Height>83.05309734512457</Height>
- <Angle>0</Angle>
- <ColorNumber>-1</ColorNumber>
- <SelectedMonitorsGuids>
- <string>89B7B89D-8050-4188-B568-35B1910CFB6F</string>
- <string>96B89605-F999-43FE-A1CD-2645BFB33A36</string>
- <string>84CF23C9-D20D-4C08-BE1D-80201FC43C06</string>
- <string>FC60060A-3736-4910-B41A-FF6DABDF0E9E</string>
- <string>5F12B974-2C9E-4DDD-9B20-733251A5D7E6</string>
- <string>9ADF7823-B293-4275-9999-F62474D246AA</string>
- <string>4CE6A82E-D841-4D33-BBB2-11F0743A441C</string>
- <string>F1DF490B-0577-4FA7-ACA1-0EEF4F934E8F</string>
- </SelectedMonitorsGuids>
- </TechItem>
- <TechItem xsi:type="ThreadMotionItem">
- <ID>be5b2c37-4481-4293-b957-bf65d8516fee</ID>
- <Left>464</Left>
- <Top>21.274336283185846</Top>
- <Width>315</Width>
- <Height>177.3230088495576</Height>
- <Angle>0</Angle>
- <ColorNumber>-1</ColorNumber>
- <Speed>20</Speed>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>aace77b8-02ca-4c88-abc1-590fc2592b99</ID>
- <Left>1355</Left>
- <Top>146.70796460176933</Top>
- <Width>175</Width>
- <Height>167.827433628319</Height>
- <Angle>0</Angle>
- <ItemGuid>89B7B89D-8050-4188-B568-35B1910CFB6F</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- <MachineTechViewProjectTab>
- <Name>Dispensers</Name>
- <Items>
- <TechItem xsi:type="DispenserItem">
- <ID>dce78f33-c966-4848-8c6e-a4a01dbc7577</ID>
- <Left>1322.1428571428571</Left>
- <Top>214.15929203538531</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>2CC8E461-E91F-4D4C-A402-922477F06C87</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>800</Speed>
- <DisplayName>Dispenser 1</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>2d03fc19-0502-43e1-a3ff-4012a612112b</ID>
- <Left>1149</Left>
- <Top>218.48230088495342</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>2CC8E461-E91F-4D4C-A402-922477F06C87</ItemGuid>
- <ColorNumber>-16724737</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 2</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>81958374-3fa3-48b3-a554-5653fe1934b1</ID>
- <Left>959</Left>
- <Top>210.32743362830422</Top>
- <Width>156</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>08ED9044-CAD6-4492-94B2-C07206E0164B</ItemGuid>
- <ColorNumber>-65325</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 3</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>8fead411-7198-4428-a364-e32f3035ed94</ID>
- <Left>775</Left>
- <Top>206.42920353980952</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>179F34BB-3252-4D3A-965C-E6EB43D6FE7C</ItemGuid>
- <ColorNumber>-524544</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 4</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>31bfa89f-e64d-4a3b-8585-c4a1b2e5a139</ID>
- <Left>585</Left>
- <Top>208.47345132741418</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>716B35CF-46E0-47D5-AF85-5233D212568F</ItemGuid>
- <ColorNumber>-2108246</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 5</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>c2bff5f3-6dc9-4b07-87ba-9e3a5814804e</ID>
- <Left>372</Left>
- <Top>216.75221238937439</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>99528449-4D76-4874-AB95-522951560E01</ItemGuid>
- <ColorNumber>-263685</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 6</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>071281a5-3569-4a62-8b68-7bea850a3c07</ID>
- <Left>217</Left>
- <Top>211.63716814158107</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>E8ED07E2-7C36-459C-B9E5-6A23A1E24F03</ItemGuid>
- <ColorNumber>-723724</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 7</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>7b703b9a-a626-4ae5-8e31-fa1cfe5718f4</ID>
- <Left>45</Left>
- <Top>216.04867256635521</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>8A957565-4165-49F7-854D-D21F95FFBE1B</ItemGuid>
- <ColorNumber>-724238</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 8</DisplayName>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>caca40a2-310c-452e-adcf-c28ee38f6bdc</ID>
- <Left>1305</Left>
- <Top>31.606194690259713</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid>
- <ColorNumber>-15856114</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>af52d36f-27a2-4a31-8ceb-9c43fedbed22</ID>
- <Left>1127</Left>
- <Top>32.535398230081626</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid>
- <ColorNumber>-15293470</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>d40eada8-d22a-4521-bd2a-d998ed93106f</ID>
- <Left>955</Left>
- <Top>32.61946902653176</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid>
- <ColorNumber>-1570857</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>b2d6364d-8b5c-43d2-8838-927c85b017b1</ID>
- <Left>774</Left>
- <Top>31.960176991142362</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid>
- <ColorNumber>-1379575</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>3980e685-73b3-4af1-9593-9235be147322</ID>
- <Left>596</Left>
- <Top>32.889380530964274</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid>
- <ColorNumber>-7763381</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>51465293-58d5-40a4-8302-81856f8b4f47</ID>
- <Left>424</Left>
- <Top>32.973451327414409</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>AF3FD56C-95BF-4DE1-8EDC-8426B0DB2A26</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>c2a8c5b2-891b-4f9f-862c-c1c294366c78</ID>
- <Left>252</Left>
- <Top>31.703539823006281</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>60DA9EA3-C8A6-4D41-8AD8-3EB1BAA79CC9</ItemGuid>
- <ColorNumber>-8391822</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>9618e441-8973-4e16-a90b-06ce5798bd29</ID>
- <Left>80</Left>
- <Top>31.787610619456416</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>EF66F95A-E166-4FA2-B1AF-D6F55621817A</ItemGuid>
- <ColorNumber>-2186185</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>bce8c8e8-a317-4991-9aa7-cd99a45d1509</ID>
- <Left>28.22352941176473</Left>
- <Top>682.03174474303751</Top>
- <Width>247</Width>
- <Height>122.24778761061873</Height>
- <Angle>0</Angle>
- <ItemGuid>66cc8510-db9c-4e13-9151-01e705ec04de</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>72a23702-31bb-4ab8-aee5-2a02bcb1270b</ID>
- <Left>235.16470588235291</Left>
- <Top>699.99460095802579</Top>
- <Width>200</Width>
- <Height>94.15929203539747</Height>
- <Angle>0</Angle>
- <ItemGuid>36ba0ba4-e41d-45ff-8f68-1699e00c7107</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="ControllerItem">
- <ID>2dd6ff17-e515-4d8f-814f-a9683f404a8e</ID>
- <Left>140</Left>
- <Top>867.73893805310092</Top>
- <Width>160</Width>
- <Height>85.49115044247776</Height>
- <Angle>0</Angle>
- <ItemGuid>78482AA4-3DF6-421F-944C-64328D3C3EF2</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <OptimalRangeMinimum>0</OptimalRangeMinimum>
- <OptimalRangeMaximum>70</OptimalRangeMaximum>
- <IsSetToDefault>true</IsSetToDefault>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>06843009-1da0-4811-8e77-50576d0edcb1</ID>
- <Left>507</Left>
- <Top>792.77433628318749</Top>
- <Width>219</Width>
- <Height>125.75221238938025</Height>
- <Angle>0</Angle>
- <ItemGuid>0c5dc1e9-da17-4ff8-86aa-6b39fd796ba9</ItemGuid>
- <ColorNumber>-16777216</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>935dddd0-0c6f-4766-8173-f9118006a12b</ID>
- <Left>1325</Left>
- <Top>482.17699115044343</Top>
- <Width>135</Width>
- <Height>112.47787610619827</Height>
- <Angle>0</Angle>
- <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid>
- <ColorNumber>-15856114</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MultiGraphItem">
- <ID>97e39a59-dba8-4e42-a124-b37de9453baf</ID>
- <Left>370</Left>
- <Top>781.46902654866153</Top>
- <Width>710</Width>
- <Height>401.24778761063465</Height>
- <Angle>0</Angle>
- <ItemGuid>D023F15D-3555-48E9-A9E9-5DF99F60D791</ItemGuid>
- <ColorNumber>0</ColorNumber>
- <Duration>1956</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>46bdfce3-1c69-45dd-bbe9-582d1ac1e6f2</ID>
- <Left>1149</Left>
- <Top>481.79203539822822</Top>
- <Width>140</Width>
- <Height>117.32300884955743</Height>
- <Angle>0</Angle>
- <ItemGuid>0FE216B2-A097-4F2C-B465-08593F2532B3</ItemGuid>
- <ColorNumber>-15293470</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>429154a5-9a16-4423-85ca-ee4bae9aec3c</ID>
- <Left>968</Left>
- <Top>481.35398230088504</Top>
- <Width>140</Width>
- <Height>117.32300884955743</Height>
- <Angle>0</Angle>
- <ItemGuid>3271FD82-46D3-4789-B612-564967826C75</ItemGuid>
- <ColorNumber>-1570857</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>0f6ab8e8-99a7-4468-bde8-690a63467688</ID>
- <Left>766</Left>
- <Top>476.07964601769811</Top>
- <Width>140</Width>
- <Height>117.32300884955743</Height>
- <Angle>0</Angle>
- <ItemGuid>FBB806E7-42FA-4BAA-BDA1-3B8B07913AAD</ItemGuid>
- <ColorNumber>-1379575</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>bc0ac903-9c1f-4580-8b9e-670a76350473</ID>
- <Left>586</Left>
- <Top>474.38938053097161</Top>
- <Width>140</Width>
- <Height>117.32300884955743</Height>
- <Angle>0</Angle>
- <ItemGuid>436A22BB-AF79-4CB2-8A7D-DD4D9E54A81E</ItemGuid>
- <ColorNumber>-7763381</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>f9c960b2-b93e-46d5-b892-30337c0b55af</ID>
- <Left>391</Left>
- <Top>474.87168141592781</Top>
- <Width>140</Width>
- <Height>117.32300884955743</Height>
- <Angle>0</Angle>
- <ItemGuid>89EA6CC8-5363-4BEC-A370-D906611087A7</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>5ac157ab-2d53-4307-bf0b-b069854701ac</ID>
- <Left>226</Left>
- <Top>471.66814159292005</Top>
- <Width>140</Width>
- <Height>117.32300884955743</Height>
- <Angle>0</Angle>
- <ItemGuid>D5EBE52B-E2DF-4C97-80B1-F111F6B15854</ItemGuid>
- <ColorNumber>-8391822</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>65a19d7e-c524-48a0-bd70-28b99b113dd1</ID>
- <Left>69</Left>
- <Top>473.97787610619389</Top>
- <Width>140</Width>
- <Height>117.32300884955743</Height>
- <Angle>0</Angle>
- <ItemGuid>FE521D1B-A0EA-4FEA-AE64-33998A6CE138</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>5bf7a681-ee47-477e-8b47-ba7a2eb6e115</ID>
- <Left>1130</Left>
- <Top>624.9557522123913</Top>
- <Width>144</Width>
- <Height>80.495575221237516</Height>
- <Angle>0</Angle>
- <ItemGuid>3174ADCF-5793-4B5A-A3C6-B96E146A903D</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>29b17a4b-fd4e-49cc-a3cd-418730176bf7</ID>
- <Left>969</Left>
- <Top>625.95575221239</Top>
- <Width>144</Width>
- <Height>80.495575221237516</Height>
- <Angle>0</Angle>
- <ItemGuid>AD50C358-5BAF-4A2F-8593-51A22C85B3D1</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>21a5429f-c3a2-4e3b-ae77-c5538f30130d</ID>
- <Left>775</Left>
- <Top>623.66814159292062</Top>
- <Width>144</Width>
- <Height>82.535398230087083</Height>
- <Angle>0</Angle>
- <ItemGuid>E2F0FC31-CE7E-416B-ACEA-8EB6CA9B850B</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>96a46b0c-37b1-4457-93fb-b3dc301c5743</ID>
- <Left>588</Left>
- <Top>625.06637168141322</Top>
- <Width>144</Width>
- <Height>80.495575221237516</Height>
- <Angle>0</Angle>
- <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C09F</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>d4ad8603-9929-415f-9990-1869fcff36e4</ID>
- <Left>1310</Left>
- <Top>628.69469026548632</Top>
- <Width>144</Width>
- <Height>80.495575221237516</Height>
- <Angle>0</Angle>
- <ItemGuid>84682E90-6926-42AA-BF8C-2CCCF5C26C97</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="ValveItem">
- <ID>25249d78-ee37-42a8-b5aa-96f60e97c3ea</ID>
- <Left>20.870588235294122</Left>
- <Top>784.26605504587133</Top>
- <Width>327</Width>
- <Height>108.53097345133028</Height>
- <Angle>0</Angle>
- <ItemGuid>E8E103A6-85F3-465C-98BD-998FBA26AEC6</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>fc1d62f7-d13b-4a7b-8f9f-c687c987c7a9</ID>
- <Left>1065</Left>
- <Top>788.41592920352355</Top>
- <Width>370</Width>
- <Height>362.10619469026585</Height>
- <Angle>0</Angle>
- <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>3</DecimalPlaces>
- <Duration>1426</Duration>
- <UseAutoRange>true</UseAutoRange>
- <Min>0</Min>
- <Max>100</Max>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>cc99a514-1498-4b93-a4eb-4e0a2a2e9de6</ID>
- <Left>628</Left>
- <Top>765.4469026548752</Top>
- <Width>394</Width>
- <Height>372.88495575221242</Height>
- <Angle>0</Angle>
- <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>1</DecimalPlaces>
- <Duration>1282</Duration>
- <UseAutoRange>true</UseAutoRange>
- <Min>0</Min>
- <Max>100</Max>
- </TechItem>
- <TechItem xsi:type="ValveItem">
- <ID>cdddd48e-422d-48f4-8397-5032c3705fdb</ID>
- <Left>1069</Left>
- <Top>698.04867256637226</Top>
- <Width>382</Width>
- <Height>136.79203539823016</Height>
- <Angle>0</Angle>
- <ItemGuid>04C58CA0-9719-4BB0-8D3B-D4C71129D8E4</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>ee6d4c5a-ca5b-4557-8012-dacf700cdc08</ID>
- <Left>231</Left>
- <Top>624.06637168142413</Top>
- <Width>144</Width>
- <Height>80.495575221237516</Height>
- <Angle>0</Angle>
- <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C010</ItemGuid>
- <ColorNumber>-8391822</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>20576bb2-202f-4170-9af5-f3c18b410112</ID>
- <Left>77</Left>
- <Top>624.46460176991513</Top>
- <Width>144</Width>
- <Height>80.495575221237516</Height>
- <Angle>0</Angle>
- <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C011</ItemGuid>
- <ColorNumber>-2186185</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- <MachineTechViewProjectTab>
- <Name>Thread insertion</Name>
- <Items>
- <TechItem xsi:type="MotorItem">
- <ID>443a977c-8e89-4a56-82e4-684bac7945c9</ID>
- <Left>25</Left>
- <Top>22.761061946902203</Top>
- <Width>247</Width>
- <Height>172.25663716814159</Height>
- <Angle>0</Angle>
- <ItemGuid>08d15ca1-d7d1-460f-8f37-42c37c287cd1</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>500</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>a821b716-cb7d-4951-84ee-e56955431099</ID>
- <Left>355</Left>
- <Top>20.592920353981697</Top>
- <Width>260</Width>
- <Height>153.00442477876106</Height>
- <Angle>0</Angle>
- <ItemGuid>b90a4e78-ebbf-44db-829b-949517d6400b</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>350</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>e36e321b-d48d-4199-a1ee-75ac18e9de1e</ID>
- <Left>694</Left>
- <Top>19.367256637167998</Top>
- <Width>217</Width>
- <Height>155.26106194690203</Height>
- <Angle>0</Angle>
- <ItemGuid>92237d83-9f85-48db-aa6f-2fc5c9e0d8cd</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>350</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>8790db03-4dfd-4d49-aec0-706babb55af9</ID>
- <Left>364</Left>
- <Top>222.16814159291846</Top>
- <Width>240</Width>
- <Height>172.30973451327589</Height>
- <Angle>0</Angle>
- <ItemGuid>2d3eaca5-4dfd-40d9-9d1f-aa4ae794eddc</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>500</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>69ebcb28-13d9-41b3-a9ef-b2be51584141</ID>
- <Left>29</Left>
- <Top>241.34955752210982</Top>
- <Width>263</Width>
- <Height>174.296460176989</Height>
- <Angle>0</Angle>
- <ItemGuid>c6099065-a735-4cc5-b575-c31a45bb9262</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>400</Speed>
- </TechItem>
- <TechItem xsi:type="ThreadMotionItem">
- <ID>4d562029-3fdf-40a4-a5a7-9a322253c912</ID>
- <Left>1168</Left>
- <Top>47.305309734517039</Top>
- <Width>304</Width>
- <Height>167.26548672566202</Height>
- <Angle>0</Angle>
- <ColorNumber>-1</ColorNumber>
- <Speed>40</Speed>
- </TechItem>
- <TechItem xsi:type="BreakSensorItem">
- <ID>92607e12-2dd6-41c9-8f89-f051f386b734</ID>
- <Left>1258</Left>
- <Top>277.55752212389069</Top>
- <Width>240</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>DCE08A06-6711-43AE-AB7C-EADD5AB70EE0</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>7b5b6896-f626-4e59-a5cf-2600e603c0f6</ID>
- <Left>695</Left>
- <Top>223.44247787610908</Top>
- <Width>228</Width>
- <Height>175.0353982300901</Height>
- <Angle>0</Angle>
- <ItemGuid>54695c85-b4a5-4e9d-95b1-b9e55844cde2</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>500</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>2052a2d3-843c-4a1c-87fd-acd0832fd1b9</ID>
- <Left>81</Left>
- <Top>542.88495575220634</Top>
- <Width>220</Width>
- <Height>168.473451327436</Height>
- <Angle>0</Angle>
- <ItemGuid>7c03f12f-ab2a-4421-8575-aefd6dec0001</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>1000</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>339b7d00-d688-41cf-926a-8171d5e62740</ID>
- <Left>376</Left>
- <Top>553.11061946903</Top>
- <Width>240</Width>
- <Height>159.84070796460173</Height>
- <Angle>0</Angle>
- <ItemGuid>f3b5076e-cba3-4ad2-b3cc-0c4e907bd9ef</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>20</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>7644a8f9-00a2-4e37-8f48-0667b1541114</ID>
- <Left>1014</Left>
- <Top>290.60619469026437</Top>
- <Width>240</Width>
- <Height>172.30973451327589</Height>
- <Angle>0</Angle>
- <ItemGuid>bda5aa4d-13aa-4259-92e5-b969276cb2b1</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>500</Speed>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>c706d31b-48b0-44cc-a9c4-11d3acdcf667</ID>
- <Left>548</Left>
- <Top>418.71652683599893</Top>
- <Width>269</Width>
- <Height>127.67256637168134</Height>
- <Angle>0</Angle>
- <ItemGuid>2a454081-bd5e-41de-ae5d-97aefe1d76de</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>7ccff69d-50f9-4e9b-a997-72a67917df5e</ID>
- <Left>758</Left>
- <Top>616.02212389380963</Top>
- <Width>227</Width>
- <Height>145.08849557522183</Height>
- <Angle>0</Angle>
- <ItemGuid>b71ad55d-d296-4371-a6d2-9d3c637c0380</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>300</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>a88a74cb-418b-4ed0-89ec-c42ff560528e</ID>
- <Left>1107</Left>
- <Top>573.87168141592883</Top>
- <Width>227</Width>
- <Height>145.08849557522183</Height>
- <Angle>0</Angle>
- <ItemGuid>4d097acc-df45-46af-bb7e-3d177ab27a9b</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>20</Speed>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>37267035-ae9d-4c72-a04f-215f754d0900</ID>
- <Left>264</Left>
- <Top>417.77433628317885</Top>
- <Width>240</Width>
- <Height>116.10176991150968</Height>
- <Angle>0</Angle>
- <ItemGuid>8a65badb-3d7d-4b7b-8dcd-783e443b0689</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>c74a22d7-136b-4ec5-8f84-ab54842453e8</ID>
- <Left>849</Left>
- <Top>425.59734513274515</Top>
- <Width>240</Width>
- <Height>116.10176991150968</Height>
- <Angle>0</Angle>
- <ItemGuid>6f48e18c-d472-425a-ba7e-633630605e11</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>4562bd70-4bd7-4f9b-b5fe-899b344295bf</ID>
- <Left>996</Left>
- <Top>62.097345132743214</Top>
- <Width>155</Width>
- <Height>101.4690265486671</Height>
- <Angle>0</Angle>
- <ItemGuid>b7c1aea4-32c1-41cb-bca3-4aa665529b49</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>300</Speed>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- <MachineTechViewProjectTab>
- <Name>Head graphs</Name>
- <Items>
- <TechItem xsi:type="SingleGraphItem">
- <ID>ffe980da-dbbe-4bac-9595-46f587e9df00</ID>
- <Left>3</Left>
- <Top>5.8097345132742362</Top>
- <Width>363</Width>
- <Height>157.76991150442467</Height>
- <Angle>0</Angle>
- <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E448FB</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>2</DecimalPlaces>
- <Duration>2962</Duration>
- <UseAutoRange>true</UseAutoRange>
- <Min>0</Min>
- <Max>300</Max>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>81b78212-14d8-4a66-bf3a-eeea9900e0d6</ID>
- <Left>371</Left>
- <Top>21.075221238938013</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>AA1CF164-76FE-49C6-AA73-0EBA29816E92</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>3941a557-05e6-4c1b-bb98-4f2a59892431</ID>
- <Left>517</Left>
- <Top>11.517699115044195</Top>
- <Width>103</Width>
- <Height>113.4867256637167</Height>
- <Angle>0</Angle>
- <ItemGuid>188285E5-1493-4BED-8269-91743770A631</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone7</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>81.63</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>7e0942e7-a87a-402a-b580-5091ed6b29ee</ID>
- <Left>8</Left>
- <Top>276.6194690265491</Top>
- <Width>357</Width>
- <Height>143.58407079645986</Height>
- <Angle>0</Angle>
- <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E44809</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>2</DecimalPlaces>
- <Duration>2962</Duration>
- <UseAutoRange>true</UseAutoRange>
- <Min>0</Min>
- <Max>300</Max>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>064bd571-4250-4ea3-8ed5-96f1ddc8fe6b</ID>
- <Left>374</Left>
- <Top>280.73893805309746</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>8FEB7F10-E1FB-465A-A987-6E8659C2186A</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>4845ec5b-067b-43c2-aaf1-314dcb358a7c</ID>
- <Left>519</Left>
- <Top>283.3407079646019</Top>
- <Width>103</Width>
- <Height>121.59292035398221</Height>
- <Angle>0</Angle>
- <ItemGuid>63E2AFE0-0746-4AAB-AA74-C26EC1F282AE</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone9</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>81.35</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>85b25b0b-cd3d-4a8a-88f5-f832623d7ec2</ID>
- <Left>8.75</Left>
- <Top>704.87334618417651</Top>
- <Width>350</Width>
- <Height>152.70353982300856</Height>
- <Angle>0</Angle>
- <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E44812</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>2</DecimalPlaces>
- <Duration>2962</Duration>
- <UseAutoRange>true</UseAutoRange>
- <Min>0</Min>
- <Max>300</Max>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>85e9ecc2-3bce-4055-89a9-1712752898a9</ID>
- <Left>375.66666666666663</Left>
- <Top>902.19714360816624</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>500698E0-5623-4A47-9537-FCAAF5D0B725</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>8d9b0d4b-ac5e-4c17-b7eb-4d59825064c7</ID>
- <Left>523.04166666666652</Left>
- <Top>895.90015771488663</Top>
- <Width>103</Width>
- <Height>121.59292035398221</Height>
- <Angle>0</Angle>
- <ItemGuid>F39B952A-6194-4055-A5CB-A3421BFE0F9B</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeadCoverHeater2</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>283.75</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>63ccee8d-ce38-4c69-b8d1-141f320d11f9</ID>
- <Left>6</Left>
- <Top>563.37610619469046</Top>
- <Width>358</Width>
- <Height>141.55752212389359</Height>
- <Angle>0</Angle>
- <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E44811</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>2</DecimalPlaces>
- <Duration>2962</Duration>
- <UseAutoRange>true</UseAutoRange>
- <Min>0</Min>
- <Max>300</Max>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>5ed86083-bdd6-4648-b7ca-f17fa97f034a</ID>
- <Left>379</Left>
- <Top>573.57522123893818</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>C113AA1D-25F5-4095-A1F3-18BEDFC0EEEE</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>8269194e-5348-4367-8ae9-e6c0647febaf</ID>
- <Left>523</Left>
- <Top>571.1106194690268</Top>
- <Width>103</Width>
- <Height>116.52654867256626</Height>
- <Angle>0</Angle>
- <ItemGuid>D41BBB23-6EB5-4743-89DB-9191000B475F</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone11</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>83.05</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>182492d7-b240-4162-b8ec-39996eec3cc7</ID>
- <Left>9</Left>
- <Top>418.47787610619497</Top>
- <Width>353</Width>
- <Height>145.61061946902635</Height>
- <Angle>0</Angle>
- <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E44810</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>2</DecimalPlaces>
- <Duration>2962</Duration>
- <UseAutoRange>true</UseAutoRange>
- <Min>0</Min>
- <Max>300</Max>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>e8130372-e0ee-4c1c-a43d-4ab15ff57bd8</ID>
- <Left>378</Left>
- <Top>430.703539823009</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>DCCCCF68-5895-40BE-9E90-1FA35E44D2E4</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>af0d953f-45de-4c0d-9eeb-d7a5c17681e4</ID>
- <Left>519</Left>
- <Top>428.23893805309746</Top>
- <Width>103</Width>
- <Height>121.59292035398221</Height>
- <Angle>0</Angle>
- <ItemGuid>B4D0A1C8-711C-49A9-82A3-B5B9F35FC131</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone10</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>82.029999999999987</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>00dda04e-1853-422f-ac47-29bdbab642d7</ID>
- <Left>7</Left>
- <Top>142.86725663716828</Top>
- <Width>357</Width>
- <Height>152.70353982300867</Height>
- <Angle>0</Angle>
- <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E44808</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>2</DecimalPlaces>
- <Duration>2962</Duration>
- <UseAutoRange>true</UseAutoRange>
- <Min>0</Min>
- <Max>300</Max>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>e7935033-56c6-42a4-a2b3-f5eedb0a11e7</ID>
- <Left>382</Left>
- <Top>151.03982300884968</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>E772ECA1-24EB-446A-AB28-F5E3D853B9F6</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>b339a7c0-7555-4e54-9834-6193ed7c2b7a</ID>
- <Left>519</Left>
- <Top>147.561946902655</Top>
- <Width>104</Width>
- <Height>109.43362831858406</Height>
- <Angle>0</Angle>
- <ItemGuid>461FA2D7-1918-4958-AAA7-37A1A329FA12</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone8</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>79.66</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>40d16753-8448-4af9-8fbd-98c1ed301de5</ID>
- <Left>623</Left>
- <Top>117.5353982300885</Top>
- <Width>363</Width>
- <Height>157.76991150442467</Height>
- <Angle>0</Angle>
- <ItemGuid>D7585119-4A42-4370-8F1E-F3E62553E588</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>2</DecimalPlaces>
- <Duration>2962</Duration>
- <UseAutoRange>true</UseAutoRange>
- <Min>0</Min>
- <Max>300</Max>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>b3826c8e-1d82-4f4f-ad9f-d88f257dffb2</ID>
- <Left>1005</Left>
- <Top>12.221238938053205</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>d59b64f7-a8cf-4a2b-935a-943ae35fb78c</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>d3631074-68c4-4377-b0c5-9213a6b1b2c0</ID>
- <Left>1148</Left>
- <Top>293.47345132743362</Top>
- <Width>103</Width>
- <Height>113.4867256637167</Height>
- <Angle>0</Angle>
- <ItemGuid>8E764A14-0F84-4FEC-928B-32A2509CAD57</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone3</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>82.94</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>99af8946-4971-4913-9382-705c4e05b7ce</ID>
- <Left>621</Left>
- <Top>275.60619469026591</Top>
- <Width>363</Width>
- <Height>157.76991150442467</Height>
- <Angle>0</Angle>
- <ItemGuid>098F7CAB-030C-46B0-B2B8-A85AF2253032</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>2</DecimalPlaces>
- <Duration>2962</Duration>
- <UseAutoRange>true</UseAutoRange>
- <Min>0</Min>
- <Max>100</Max>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>233f0076-7595-4ecb-8496-41eeb7b457ea</ID>
- <Left>993</Left>
- <Top>279.72566371681404</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>9de55ec4-201f-4f62-9003-f63ebea06f8f</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>f815ebb5-61af-45ff-8109-5f5e717a5c4d</ID>
- <Left>1146</Left>
- <Top>14.823008849557596</Top>
- <Width>103</Width>
- <Height>113.4867256637167</Height>
- <Angle>0</Angle>
- <ItemGuid>27E7BB74-81C3-4EF2-80AE-962F111C441F</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone1</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>65.62</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>7b7d9bea-29df-4f94-8ab6-2a6d7105bccf</ID>
- <Left>627</Left>
- <Top>6.07522123893807</Top>
- <Width>363</Width>
- <Height>157.76991150442467</Height>
- <Angle>0</Angle>
- <ItemGuid>A8DB1D27-6B25-4FB4-A3F5-46A29BA51955</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>2</DecimalPlaces>
- <Duration>2962</Duration>
- <UseAutoRange>true</UseAutoRange>
- <Min>0</Min>
- <Max>300</Max>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>72d7192b-dd27-4064-9f5f-90062388a81c</ID>
- <Left>1003</Left>
- <Top>151.03982300884974</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>df38139e-0026-46bc-b72f-df5f9eec80f7</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>915f8dfc-5407-43ca-a0c7-d774867dfb5f</ID>
- <Left>1145</Left>
- <Top>153.64159292035396</Top>
- <Width>103</Width>
- <Height>113.4867256637167</Height>
- <Angle>0</Angle>
- <ItemGuid>B4EE8CC0-EE2B-4ABE-BF09-9226860E756B</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone2</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>75.59</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>64fba32f-3c03-42b3-b1ed-e2bdbe454bd6</ID>
- <Left>630</Left>
- <Top>535.00442477876129</Top>
- <Width>363</Width>
- <Height>157.76991150442467</Height>
- <Angle>0</Angle>
- <ItemGuid>246C2551-5EFD-48E9-94F6-6313C5E5018F</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>2</DecimalPlaces>
- <Duration>2962</Duration>
- <UseAutoRange>true</UseAutoRange>
- <Min>0</Min>
- <Max>300</Max>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>5f451443-fab2-4bf6-8f21-5e038ca2c726</ID>
- <Left>1008</Left>
- <Top>707.327433628319</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>16D0DEF7-A2E0-4163-9F4B-FBEC2573BCC7</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>e5c1becb-1402-45fa-b252-60a03d4401cc</ID>
- <Left>1150</Left>
- <Top>716.00884955752235</Top>
- <Width>103</Width>
- <Height>113.4867256637167</Height>
- <Angle>0</Angle>
- <ItemGuid>D2B6CAA0-055E-4871-8D91-A5370F1ACB22</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone6</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>79.04</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>4f3b4ecd-759a-4ba5-80f3-74cc485d7085</ID>
- <Left>629</Left>
- <Top>387.066371681416</Top>
- <Width>363</Width>
- <Height>157.76991150442467</Height>
- <Angle>0</Angle>
- <ItemGuid>6C0C1AB0-3EE9-40D7-8424-A79436FBC804</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>2</DecimalPlaces>
- <Duration>2962</Duration>
- <UseAutoRange>true</UseAutoRange>
- <Min>0</Min>
- <Max>300</Max>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>665593d6-e689-459e-94f9-2cdcce6150ac</ID>
- <Left>1004</Left>
- <Top>562.42920353982311</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>d28bfa3c-edce-4f19-a296-3da251fcc0e2</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>42b4b029-e8bc-4156-b6c1-bb64aae83f9e</ID>
- <Left>1149</Left>
- <Top>571.1106194690268</Top>
- <Width>103</Width>
- <Height>113.4867256637167</Height>
- <Angle>0</Angle>
- <ItemGuid>D6771DF4-771E-4D62-B6BA-BDE361C0A0F3</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone5</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>79.13</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>60dff2b2-7ddc-47a9-90b1-3f45968c1790</ID>
- <Left>630</Left>
- <Top>692.06194690265511</Top>
- <Width>363</Width>
- <Height>157.76991150442467</Height>
- <Angle>0</Angle>
- <ItemGuid>DACEBF90-E2B4-4CC9-A973-B8B429AA0089</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>2</DecimalPlaces>
- <Duration>2962</Duration>
- <UseAutoRange>true</UseAutoRange>
- <Min>0</Min>
- <Max>300</Max>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>b53a74f3-8e91-40ce-b980-c5b237baeee9</ID>
- <Left>1002</Left>
- <Top>413.47787610619491</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>81a3ae80-f4ea-4857-bc4e-2055d3b5fbc7</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>8c438e59-d87c-46d2-8050-acc8a0c455d7</ID>
- <Left>1148</Left>
- <Top>434.31858407079636</Top>
- <Width>103</Width>
- <Height>113.4867256637167</Height>
- <Angle>0</Angle>
- <ItemGuid>94574D69-46E1-4144-A8B5-D4BF0DA96D18</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone4</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>84.699999999999989</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>f786b4da-3291-4ccb-a280-196fd8697ac1</ID>
- <Left>5.7499999999999858</Left>
- <Top>866.06435643564362</Top>
- <Width>350</Width>
- <Height>152.70353982300856</Height>
- <Angle>0</Angle>
- <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E448DD</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>2</DecimalPlaces>
- <Duration>2962</Duration>
- <UseAutoRange>true</UseAutoRange>
- <Min>0</Min>
- <Max>300</Max>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>584c7f29-49cc-4845-a7ab-09239bd3a986</ID>
- <Left>377.875</Left>
- <Top>735.75944098834611</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>96A8AF31-B489-4FA2-BF99-C66D7DEC94C8</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>5c6da8d4-bd2e-44cc-8d99-a6b8bca7df3f</ID>
- <Left>524.20833333333337</Left>
- <Top>721.52681153071046</Top>
- <Width>103</Width>
- <Height>121.59292035398221</Height>
- <Angle>0</Angle>
- <ItemGuid>2D578A37-D808-40D0-ACE4-4A868EDD6BDC</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone12</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>81.06</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>05eab3d7-3af6-4d3f-b3b3-468eeb77a503</ID>
- <Left>644.29166666666674</Left>
- <Top>874.00000000000011</Top>
- <Width>350</Width>
- <Height>152.70353982300856</Height>
- <Angle>0</Angle>
- <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E448CC</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>2</DecimalPlaces>
- <Duration>2962</Duration>
- <UseAutoRange>true</UseAutoRange>
- <Min>0</Min>
- <Max>300</Max>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>c1f48bf1-9cb3-475a-b152-e8b9a211b694</ID>
- <Left>1010.1666666666667</Left>
- <Top>895.60597564181194</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>7FCA67CB-785B-49F7-B9F2-191E3ACC6CB7</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>c5fbeda2-230d-40e4-9d52-5b3236e0c561</ID>
- <Left>1161.708333333333</Left>
- <Top>885.907999649522</Top>
- <Width>103</Width>
- <Height>121.59292035398221</Height>
- <Angle>0</Angle>
- <ItemGuid>F8C1BA7F-F6DF-414D-BAF5-D4CB292F91F6</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeadCoverHeater1</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>283.75</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- <MachineTechViewProjectTab>
- <Name>waste</Name>
- <Items>
- <TechItem xsi:type="DigitalOutItem">
- <ID>bb9bf273-0a3d-4202-98ce-37a5f206ed75</ID>
- <Left>119</Left>
- <Top>68.898230088495609</Top>
- <Width>339</Width>
- <Height>184.4159292035398</Height>
- <Angle>0</Angle>
- <ItemGuid>7e1f53ec-8176-4efa-ac3d-c8f2436e60d1</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>59678a51-f995-4952-b250-e449f1fcbeac</ID>
- <Left>468</Left>
- <Top>80.336283185839477</Top>
- <Width>280</Width>
- <Height>166.17699115044252</Height>
- <Angle>0</Angle>
- <ItemGuid>78db28d0-0407-4942-bb62-c44da81c4f9e</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalInItem">
- <ID>8f9ff579-0e9d-4f48-8ed0-6fa563f2aba7</ID>
- <Left>873</Left>
- <Top>63.831858407079665</Top>
- <Width>174</Width>
- <Height>133.75221238938059</Height>
- <Angle>0</Angle>
- <ItemGuid>06bd7c0b-5aef-445a-86c0-853becf8594b</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalInItem">
- <ID>70d1bd1e-acdb-436a-b205-6eeb9d137120</ID>
- <Left>1070</Left>
- <Top>70.106194690265909</Top>
- <Width>221</Width>
- <Height>123.61946902654864</Height>
- <Angle>0</Angle>
- <ItemGuid>4048bf02-27dc-4049-9284-fe913a7e0ebe</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalInItem">
- <ID>dcc7ce16-5b89-4ff8-acd5-7fb0b9ebb6d1</ID>
- <Left>877</Left>
- <Top>248.24778761061947</Top>
- <Width>186</Width>
- <Height>126.65929203539827</Height>
- <Angle>0</Angle>
- <ItemGuid>00ea1771-efee-4f3e-a0d2-8b2a4214e9fd</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>2b99bbf7-94da-4bb2-acc9-91b35e543c5d</ID>
- <Left>897</Left>
- <Top>358.69469026548683</Top>
- <Width>147</Width>
- <Height>69.9159292035398</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>Waste lower presence</Text>
- </TechItem>
- <TechItem xsi:type="DigitalInItem">
- <ID>c150533c-abe4-4edf-b6ad-fa475b133142</ID>
- <Left>1112</Left>
- <Top>253.66814159291806</Top>
- <Width>186</Width>
- <Height>126.65929203539827</Height>
- <Angle>0</Angle>
- <ItemGuid>d2f266e3-779b-4dfe-b513-26ce61c529a4</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>d96f2a6d-0ccb-401e-8931-09086ca81fae</ID>
- <Left>1143</Left>
- <Top>366.78318584070507</Top>
- <Width>147</Width>
- <Height>69.9159292035398</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>Waste middle presence</Text>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>bb9847ba-9671-4613-bf23-a0c637ebc79d</ID>
- <Left>151</Left>
- <Top>271.55309734513281</Top>
- <Width>200</Width>
- <Height>63.836283185840671</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>pump</Text>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>d13a2df4-3f54-4c31-8f9a-ee7810fb6af5</ID>
- <Left>504</Left>
- <Top>283.71238938053096</Top>
- <Width>192</Width>
- <Height>67.88938053097354</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>valve</Text>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>a79322a7-fbb8-469b-a4d9-a0ffb3c17a5d</ID>
- <Left>858</Left>
- <Top>394.15929203539821</Top>
- <Width>134</Width>
- <Height>99.300884955752167</Height>
- <Angle>0</Angle>
- <ItemGuid>94F3E5A1-413E-4EA0-BDE1-F0625BFF7910</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>979459b4-b609-487f-b6d7-55f435659658</ID>
- <Left>1027</Left>
- <Top>391.93362831858775</Top>
- <Width>118</Width>
- <Height>93.221238938053034</Height>
- <Angle>0</Angle>
- <ItemGuid>FE0D0A56-5795-4C5A-8E09-939FBB35C441</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>8b11bfca-091d-4461-8713-ba2fd9c8484e</ID>
- <Left>432</Left>
- <Top>511.69911504424789</Top>
- <Width>461</Width>
- <Height>250.27876106194691</Height>
- <Angle>0</Angle>
- <ItemGuid>94F3E5A1-413E-4EA0-BDE1-F0625BFF7910</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>2</DecimalPlaces>
- <Duration>419</Duration>
- <UseAutoRange>true</UseAutoRange>
- <Min>0</Min>
- <Max>100</Max>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>8aa4b451-71d6-429c-94e4-2581e3c62a7a</ID>
- <Left>956</Left>
- <Top>513.80973451327361</Top>
- <Width>461</Width>
- <Height>250.27876106194691</Height>
- <Angle>0</Angle>
- <ItemGuid>FE0D0A56-5795-4C5A-8E09-939FBB35C441</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>2</DecimalPlaces>
- <Duration>419</Duration>
- <UseAutoRange>true</UseAutoRange>
- <Min>0</Min>
- <Max>100</Max>
- </TechItem>
- <TechItem xsi:type="BlowerItem">
- <ID>1f85047c-0b3e-49c6-a80a-c2585de00a81</ID>
- <Left>1217</Left>
- <Top>395.17256637168151</Top>
- <Width>217</Width>
- <Height>97.2743362831859</Height>
- <Angle>0</Angle>
- <ItemGuid>B6FE07F8-2435-495D-ABFE-358C76812413</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>c296a84d-7af4-4a26-9a35-0b82d378edce</ID>
- <Left>575</Left>
- <Top>354.64159292035436</Top>
- <Width>209</Width>
- <Height>123.61946902654859</Height>
- <Angle>0</Angle>
- <ItemGuid>1778C1A7-AFB5-42F9-9E00-E80D30D9FC0A</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>cde1d5a8-7238-44b8-8d4e-30a2dba70c12</ID>
- <Left>1294</Left>
- <Top>166.17256637168146</Top>
- <Width>217</Width>
- <Height>132.73893805309734</Height>
- <Angle>0</Angle>
- <ItemGuid>2a454081-bd5e-41de-ae5d-97aefe1d76de</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>51ca3d43-e098-4ed7-a94d-ac0e46744aa8</ID>
- <Left>-39</Left>
- <Top>510.96460176990968</Top>
- <Width>461</Width>
- <Height>250.27876106194691</Height>
- <Angle>0</Angle>
- <ItemGuid>1778C1A7-AFB5-42F9-9E00-E80D30D9FC0A</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>2</DecimalPlaces>
- <Duration>419</Duration>
- <UseAutoRange>true</UseAutoRange>
- <Min>0</Min>
- <Max>100</Max>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>034716b2-eb98-4a27-a32e-2a1217f0a6b1</ID>
- <Left>150.24235516816566</Left>
- <Top>341.47687867152945</Top>
- <Width>310</Width>
- <Height>140.56766191129225</Height>
- <Angle>0</Angle>
- <ItemGuid>79AD6611-82A2-4B4C-AB5E-A11A33E1243D</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- <MachineTechViewProjectTab>
- <Name>disp</Name>
- <Items>
- <TechItem xsi:type="SingleGraphItem">
- <ID>f9531a72-3742-47a7-86bb-b589f8b3eb55</ID>
- <Left>123</Left>
- <Top>128.33628318584061</Top>
- <Width>390</Width>
- <Height>249.67699115047321</Height>
- <Angle>0</Angle>
- <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>3</DecimalPlaces>
- <Duration>3600</Duration>
- <UseAutoRange>true</UseAutoRange>
- <Min>0</Min>
- <Max>100</Max>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>aae29286-81b3-476a-9f58-c0fd246cae96</ID>
- <Left>880</Left>
- <Top>158.81415929204155</Top>
- <Width>442</Width>
- <Height>241.88495575221771</Height>
- <Angle>0</Angle>
- <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>3</DecimalPlaces>
- <Duration>3600</Duration>
- <UseAutoRange>true</UseAutoRange>
- <Min>0</Min>
- <Max>100</Max>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>7d94c7c4-1288-4f9d-b0e6-a06794829642</ID>
- <Left>1055</Left>
- <Top>14.181415929203524</Top>
- <Width>161</Width>
- <Height>111.46017699115049</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>Y</Text>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>c95f9ad1-b607-4606-8217-400bea76f3d6</ID>
- <Left>384</Left>
- <Top>23.991150442480944</Top>
- <Width>161</Width>
- <Height>111.46017699115049</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>C</Text>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>8f141fa5-fb24-4557-adcf-a6aa55a28fb4</ID>
- <Left>121</Left>
- <Top>-8.8495575221214722</Top>
- <Width>169</Width>
- <Height>132.73893805309734</Height>
- <Angle>0</Angle>
- <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>3</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>7eab018a-ef43-4bca-a6cf-857d69767bba</ID>
- <Left>839</Left>
- <Top>-4.7079646017762684</Top>
- <Width>169</Width>
- <Height>132.73893805309734</Height>
- <Angle>0</Angle>
- <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>3</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorRecorderItem">
- <ID>2a9e89d4-5d60-4a83-9527-cb77fdf35c14</ID>
- <Left>1276</Left>
- <Top>22.287610619469035</Top>
- <Width>187</Width>
- <Height>102.34070796460179</Height>
- <Angle>0</Angle>
- <ColorNumber>-1</ColorNumber>
- <SelectedMonitorsGuids>
- <string>1F0F907A-EC16-4386-AFC8-B2B156F2A822</string>
- <string>A499E5E0-A812-4032-8F96-B38C6762C4BD</string>
- <string>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</string>
- <string>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</string>
- <string>19645882-6587-4A50-BD85-AF06617DC654</string>
- <string>96B89605-F999-43FE-A1CD-2645BFB33A36</string>
- <string>84CF23C9-D20D-4C08-BE1D-80201FC43C06</string>
- <string>C0BCCD5C-346B-4C4A-A080-39D28E9E1A0C</string>
- <string>10102BC3-0EAE-47FF-A8E5-8640780CAA3D</string>
- <string>FC60060A-3736-4910-B41A-FF6DABDF0E9E</string>
- <string>5F12B974-2C9E-4DDD-9B20-733251A5D7E6</string>
- <string>D126DB23-784B-4F0C-8F88-D89A65A7549F</string>
- </SelectedMonitorsGuids>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>6d2e7962-b3ae-4682-b20e-9654f48dcffe</ID>
- <Left>587</Left>
- <Top>5.0619469026548813</Top>
- <Width>155</Width>
- <Height>131.72566371681415</Height>
- <Angle>0</Angle>
- <ItemGuid>2CC8E461-E91F-4D4C-A402-922477F06C87</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>500</Speed>
- <DisplayName>Dispenser 1</DisplayName>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>5ee2718f-f068-427b-a31e-d586c7d7682c</ID>
- <Left>131</Left>
- <Top>552.94690265486338</Top>
- <Width>390</Width>
- <Height>249.67699115047321</Height>
- <Angle>0</Angle>
- <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>3</DecimalPlaces>
- <Duration>3600</Duration>
- <UseAutoRange>true</UseAutoRange>
- <Min>0</Min>
- <Max>100</Max>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>1c254a92-c075-453f-9667-cdcc91cf8e6a</ID>
- <Left>399</Left>
- <Top>455.67256637168265</Top>
- <Width>161</Width>
- <Height>111.46017699115049</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>K</Text>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>d1087b1a-c36b-4242-96f5-07c2bb602cc4</ID>
- <Left>145</Left>
- <Top>409.52212389380446</Top>
- <Width>169</Width>
- <Height>132.73893805309734</Height>
- <Angle>0</Angle>
- <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>3</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>53fe93a2-88a5-4d4d-9cd5-eb4d8a8fefae</ID>
- <Left>604</Left>
- <Top>561.16371681414739</Top>
- <Width>390</Width>
- <Height>249.67699115047321</Height>
- <Angle>0</Angle>
- <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>3</DecimalPlaces>
- <Duration>3600</Duration>
- <UseAutoRange>true</UseAutoRange>
- <Min>0</Min>
- <Max>100</Max>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>0bef6e9d-6da0-4f06-9e1a-c00142bde4c1</ID>
- <Left>832</Left>
- <Top>440.91150442477635</Top>
- <Width>161</Width>
- <Height>111.46017699115049</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>M</Text>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>762c5a97-a3bc-45b4-aa9f-0b50afa9cb9b</ID>
- <Left>633</Left>
- <Top>434.0132743362783</Top>
- <Width>169</Width>
- <Height>132.73893805309734</Height>
- <Angle>0</Angle>
- <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>3</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>be584f80-3250-494c-87fc-250d6deae051</ID>
- <Left>1045</Left>
- <Top>559.4070796459921</Top>
- <Width>390</Width>
- <Height>249.67699115047321</Height>
- <Angle>0</Angle>
- <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>3</DecimalPlaces>
- <Duration>3600</Duration>
- <UseAutoRange>true</UseAutoRange>
- <Min>0</Min>
- <Max>100</Max>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>39f6a02c-c4d9-47d0-b92d-bdea0ed5d3ce</ID>
- <Left>1056</Left>
- <Top>435.43805309733875</Top>
- <Width>169</Width>
- <Height>132.73893805309734</Height>
- <Angle>0</Angle>
- <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>3</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>5b924929-9b16-4598-94cc-b2f4bca26798</ID>
- <Left>1304</Left>
- <Top>448.0884955752224</Top>
- <Width>161</Width>
- <Height>111.46017699115049</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>TI</Text>
- </TechItem>
- <TechItem xsi:type="ValveItem">
- <ID>89ae1fa5-1ad1-469e-ae76-0a29c35805cd</ID>
- <Left>588</Left>
- <Top>317.1504424778762</Top>
- <Width>283</Width>
- <Height>74.982300884955748</Height>
- <Angle>0</Angle>
- <ItemGuid>E144A221-4859-4DC3-9A7E-4A2969FB0826</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="ValveItem">
- <ID>c218cf34-74c2-41bb-8c3b-3030abce451a</ID>
- <Left>1363</Left>
- <Top>384.02654867256643</Top>
- <Width>156</Width>
- <Height>94.234513274336337</Height>
- <Angle>0</Angle>
- <ItemGuid>E144A221-4859-4DC3-9A7E-4A2969FB0826</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="ValveItem">
- <ID>75af30c6-d7f8-4745-bfb5-d6dc5d50479a</ID>
- <Left>767</Left>
- <Top>362.74778761061958</Top>
- <Width>283</Width>
- <Height>74.982300884955748</Height>
- <Angle>0</Angle>
- <ItemGuid>E144A221-4859-4DC3-9A7E-4A2969FB0826</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>df1fd958-fd8a-4b00-98e1-679455494d60</ID>
- <Left>309</Left>
- <Top>13.168141592920392</Top>
- <Width>112</Width>
- <Height>107.40707964601768</Height>
- <Angle>0</Angle>
- <ItemGuid>3174ADCF-5793-4B5A-A3C6-B96E146A903D</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>f07225b3-1522-4cb6-9ba8-5b9697f05467</ID>
- <Left>1180</Left>
- <Top>60.7920353982301</Top>
- <Width>102</Width>
- <Height>88.1548672566372</Height>
- <Angle>0</Angle>
- <ItemGuid>E2F0FC31-CE7E-416B-ACEA-8EB6CA9B850B</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>45b87322-e1f5-42eb-88c6-71c2eeb2899a</ID>
- <Left>1258</Left>
- <Top>463.06194690265494</Top>
- <Width>88</Width>
- <Height>75.995575221239</Height>
- <Angle>0</Angle>
- <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C09F</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>0c1c25e8-3ce3-4994-bbb9-bd6b2367a413</ID>
- <Left>810</Left>
- <Top>462.04867256637175</Top>
- <Width>77</Width>
- <Height>80.048672566371636</Height>
- <Angle>0</Angle>
- <ItemGuid>AD50C358-5BAF-4A2F-8593-51A22C85B3D1</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>fa2f697e-b229-418a-bae6-78b92bf0458b</ID>
- <Left>336</Left>
- <Top>428.61061946902663</Top>
- <Width>95</Width>
- <Height>96.261061946902657</Height>
- <Angle>0</Angle>
- <ItemGuid>84682E90-6926-42AA-BF8C-2CCCF5C26C97</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- <MachineTechViewProjectTab>
- <Name>Priming</Name>
- <Items>
- <TechItem xsi:type="MonitorItem">
- <ID>ea45a516-9dac-4c9a-9261-0c44e22aa065</ID>
- <Left>808</Left>
- <Top>155.02654867256638</Top>
- <Width>219</Width>
- <Height>200.62831858407088</Height>
- <Angle>0</Angle>
- <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>3e2cb7dc-a5f3-4ba6-a520-2bae8ff0e4a8</ID>
- <Left>832</Left>
- <Top>451.91592920353986</Top>
- <Width>332</Width>
- <Height>326.27433628318596</Height>
- <Angle>0</Angle>
- <ItemGuid>C8D8FE90-0375-44A2-A6D1-E997789E065C</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 2</DisplayName>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>6f8dfd8d-ed50-4923-b908-e0b5bc5d6ae5</ID>
- <Left>154</Left>
- <Top>131.72123893805315</Top>
- <Width>474</Width>
- <Height>410.37610619469024</Height>
- <Angle>0</Angle>
- <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <DecimalPlaces>1</DecimalPlaces>
- <Duration>1942</Duration>
- <UseAutoRange>true</UseAutoRange>
- <Min>0</Min>
- <Max>100</Max>
- </TechItem>
- <TechItem xsi:type="ValveItem">
- <ID>604e031b-89c3-4c9d-90ef-7b861a77e5e0</ID>
- <Left>243</Left>
- <Top>595.80088495575228</Top>
- <Width>497</Width>
- <Height>189.48230088495575</Height>
- <Angle>0</Angle>
- <ItemGuid>8B1FCBC3-FEEA-4F87-B56F-CE5D28B7ACA4</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>c414ae0e-323a-48c1-9165-2c05cc4234c6</ID>
- <Left>1291</Left>
- <Top>584.65486725663732</Top>
- <Width>200</Width>
- <Height>171.24336283185835</Height>
- <Angle>0</Angle>
- <ItemGuid>0bd10306-2944-4cda-bc59-0264da2883d2</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- </Tabs>
- <SelectedTabIndex>0</SelectedTabIndex>
-</MachineTechViewProject> \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/technician view files/tech board 1.tpf b/Software/Stubs Collection/stubs/technician view files/tech board 1.tpf
deleted file mode 100644
index a6bfa792c..000000000
--- a/Software/Stubs Collection/stubs/technician view files/tech board 1.tpf
+++ /dev/null
@@ -1,2974 +0,0 @@
-<?xml version="1.0"?>
-<MachineTechViewProject xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <Items />
- <Tabs>
- <MachineTechViewProjectTab>
- <Name>Temperatures</Name>
- <Items>
- <TechItem xsi:type="DigitalOutItem">
- <ID>e4892498-fa1a-413c-9dd8-633efaade51c</ID>
- <Left>415</Left>
- <Top>692.74336283185824</Top>
- <Width>160</Width>
- <Height>102.34070796460173</Height>
- <Angle>0</Angle>
- <ItemGuid>6b9cba1d-4acf-4992-97ad-e422bca6ada2</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>a15665e3-af39-42d8-8c06-97d770632e10</ID>
- <Left>928</Left>
- <Top>593.77433628318579</Top>
- <Width>207</Width>
- <Height>184.4159292035398</Height>
- <Angle>0</Angle>
- <ItemGuid>6D6CFA18-5922-4AFE-84B3-2721CE128681</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>DryerAirHeater</HeaterType>
- <SetPoint>180</SetPoint>
- <CurrentValue>179.94</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>180</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>0ac64716-d30c-489b-939e-a26d06445866</ID>
- <Left>828</Left>
- <Top>682.88053097345</Top>
- <Width>130</Width>
- <Height>100.31415929203541</Height>
- <Angle>0</Angle>
- <ItemGuid>A5DFC2DB-3B36-4377-96A0-D492CE785C00</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>DryerMainHeater</HeaterType>
- <SetPoint>41</SetPoint>
- <CurrentValue>187.35</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>41</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>181796d8-64f6-420a-8f37-9af9df67d6a9</ID>
- <Left>717</Left>
- <Top>684.46902654867324</Top>
- <Width>127</Width>
- <Height>101.3274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>86808B48-B7F9-43AD-840E-2A6A5987C305</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>DryerSecondaryHeater</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>190.80999999999997</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>fd2bb3a3-a411-470d-bde7-0beaf84da059</ID>
- <Left>931</Left>
- <Top>83.08407079646031</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>8E764A14-0F84-4FEC-928B-32A2509CAD57</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone3</HeaterType>
- <SetPoint>120</SetPoint>
- <CurrentValue>120.41999999999999</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>120</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>7e8dd386-cca6-4d07-8a3e-af5403756002</ID>
- <Left>1106</Left>
- <Top>88.1504424778762</Top>
- <Width>200</Width>
- <Height>187.45575221238937</Height>
- <Angle>0</Angle>
- <ItemGuid>B4EE8CC0-EE2B-4ABE-BF09-9226860E756B</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone2</HeaterType>
- <SetPoint>100</SetPoint>
- <CurrentValue>100.41999999999999</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>100</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>32a91e5f-27c8-490d-b187-8e39b6626a13</ID>
- <Left>1311</Left>
- <Top>89.163716814159329</Top>
- <Width>157</Width>
- <Height>194.54867256637175</Height>
- <Angle>0</Angle>
- <ItemGuid>27E7BB74-81C3-4EF2-80AE-962F111C441F</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone1</HeaterType>
- <SetPoint>80</SetPoint>
- <CurrentValue>80.16</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>80</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>c844235a-8a29-4c2e-a964-e8f546d2ced7</ID>
- <Left>1140</Left>
- <Top>588.70796460177</Top>
- <Width>173</Width>
- <Height>183.40265486725662</Height>
- <Angle>0</Angle>
- <ItemGuid>42A62A48-F1D5-4BB6-AFEA-6A7DF6DCF626</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>MixerHeater</HeaterType>
- <SetPoint>80</SetPoint>
- <CurrentValue>79.95</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>80</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>45b121b5-cf7c-41f7-8089-6d4d6b1ed2c8</ID>
- <Left>751</Left>
- <Top>80.420353982302458</Top>
- <Width>169</Width>
- <Height>197.27876106194645</Height>
- <Angle>0</Angle>
- <ItemGuid>94574D69-46E1-4144-A8B5-D4BF0DA96D18</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone4</HeaterType>
- <SetPoint>120</SetPoint>
- <CurrentValue>120.27999999999999</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>120</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>e6b3eb18-482b-450e-b8a8-d2ac6bba4fd4</ID>
- <Left>547</Left>
- <Top>85.482300884952679</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>D6771DF4-771E-4D62-B6BA-BDE361C0A0F3</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone5</HeaterType>
- <SetPoint>135</SetPoint>
- <CurrentValue>135.21</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>135</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>efff2e67-e3a3-4667-9208-4704707d7cda</ID>
- <Left>353</Left>
- <Top>86.69911504424698</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>D2B6CAA0-055E-4871-8D91-A5370F1ACB22</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone6</HeaterType>
- <SetPoint>135</SetPoint>
- <CurrentValue>135.33</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>135</SetPoint>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>f9936dba-cef8-41e3-a715-eb629dca1870</ID>
- <Left>265</Left>
- <Top>683.95575221238948</Top>
- <Width>131</Width>
- <Height>109.43362831858394</Height>
- <Angle>0</Angle>
- <ItemGuid>1778C1A7-AFB5-42F9-9E00-E80D30D9FC0A</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>5f2610dc-3b9d-4302-b8f5-77a5e1c73b8c</ID>
- <Left>1027.9999999999973</Left>
- <Top>291.07079646017547</Top>
- <Width>44</Width>
- <Height>42.557522123893705</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>D</Text>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>eadb5257-47a2-4336-a72a-f2d157fe70cb</ID>
- <Left>907.99999999999909</Left>
- <Top>295.35840707964616</Top>
- <Width>44</Width>
- <Height>42.557522123893705</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>F</Text>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>6c59af66-169a-46e0-89ae-a81e3e619043</ID>
- <Left>785.00000000000159</Left>
- <Top>288.5000000000004</Top>
- <Width>44</Width>
- <Height>42.557522123893705</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>I</Text>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>3b32b9a8-f300-443f-950e-c49f81678bac</ID>
- <Left>624.99999999999966</Left>
- <Top>285.86725663716874</Top>
- <Width>44</Width>
- <Height>42.557522123893705</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>L</Text>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>f6d44793-ed44-46ed-8854-eacbc11af10c</ID>
- <Left>569</Left>
- <Top>688.00884955752213</Top>
- <Width>155</Width>
- <Height>96.261061946902714</Height>
- <Angle>0</Angle>
- <ItemGuid>df38139e-0026-46bc-b72f-df5f9eec80f7</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MonitorRecorderItem">
- <ID>43793f93-da64-4409-b583-bca498f641e6</ID>
- <Left>1308</Left>
- <Top>656.59734513274338</Top>
- <Width>203</Width>
- <Height>107.40707964601774</Height>
- <Angle>0</Angle>
- <ColorNumber>-1</ColorNumber>
- <SelectedMonitorsGuids>
- <string>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</string>
- <string>AD50C358-5BAF-4A2F-8593-51A22C85B3D1</string>
- <string>9FBC5460-BA59-486B-8D85-BD7D8A959F98</string>
- <string>F1DF490B-0577-4FA7-ACA1-0EEF4F934E8F</string>
- <string>C0BCCD5C-346B-4C4A-A080-39D28E9E1A0C</string>
- </SelectedMonitorsGuids>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>be9db1fd-d408-4f1c-a15a-d6ffe58fafb6</ID>
- <Left>1292</Left>
- <Top>343.56637168141606</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>188285E5-1493-4BED-8269-91743770A631</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone7</HeaterType>
- <SetPoint>140</SetPoint>
- <CurrentValue>140.37</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>140</SetPoint>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>f129ea0d-9abb-437f-928e-1cd1f569db2a</ID>
- <Left>1190.0000000000025</Left>
- <Top>294.69026548672929</Top>
- <Width>39</Width>
- <Height>38.504424778760836</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>C</Text>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>217c677a-3e11-4a7c-959b-616dae1259dd</ID>
- <Left>1369</Left>
- <Top>295.87168141592934</Top>
- <Width>44</Width>
- <Height>42.557522123893705</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>A</Text>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>381f67cf-b7c6-4f6d-b089-37130798a5d8</ID>
- <Left>1107</Left>
- <Top>342.55309734513293</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>461FA2D7-1918-4958-AAA7-37A1A329FA12</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone8</HeaterType>
- <SetPoint>140</SetPoint>
- <CurrentValue>140.28</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>140</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>3c923a93-4d15-4bbc-b1b3-be1876a77cfc</ID>
- <Left>924</Left>
- <Top>343.56637168141606</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>63E2AFE0-0746-4AAB-AA74-C26EC1F282AE</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone9</HeaterType>
- <SetPoint>140</SetPoint>
- <CurrentValue>140.16</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>140</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>26e078e6-df8c-4fbf-b10e-4b3f7c7e9500</ID>
- <Left>359</Left>
- <Top>342.55309734513304</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>2D578A37-D808-40D0-ACE4-4A868EDD6BDC</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone12</HeaterType>
- <SetPoint>145</SetPoint>
- <CurrentValue>145.11</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>145</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>7a8c3948-bb3d-4eb1-9276-315d34038f91</ID>
- <Left>550</Left>
- <Top>343.56637168141611</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>D41BBB23-6EB5-4743-89DB-9191000B475F</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone11</HeaterType>
- <SetPoint>140</SetPoint>
- <CurrentValue>140.21</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>140</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>f7d4c8ac-28cb-4779-83ef-3ede5e5a612c</ID>
- <Left>738</Left>
- <Top>344.57964601769908</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>B4D0A1C8-711C-49A9-82A3-B5B9F35FC131</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone10</HeaterType>
- <SetPoint>140</SetPoint>
- <CurrentValue>140.27</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>140</SetPoint>
- </TechItem>
- <TechItem xsi:type="ProcessParametersItem">
- <ID>21aa11c9-3d35-4902-901a-b9ed45117e09</ID>
- <Left>653</Left>
- <Top>860.82743362831877</Top>
- <Width>382</Width>
- <Height>223.93362831858394</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <ProcessParameters>
- <ID>0</ID>
- <Guid>811430c0-2afc-4e9b-8077-a74e1fd2f825</Guid>
- <LastUpdated>2020-01-14T11:41:02.8729031Z</LastUpdated>
- <Name>Process parameters 3</Name>
- <DyeingSpeed>0</DyeingSpeed>
- <MinInkUptake>0</MinInkUptake>
- <MaxInkUptake>0</MaxInkUptake>
- <FeederTension>0</FeederTension>
- <PullerTension>0</PullerTension>
- <WinderTension>0</WinderTension>
- <MixerTemp>0</MixerTemp>
- <HeadZone1Temp>0</HeadZone1Temp>
- <HeadZone2Temp>100</HeadZone2Temp>
- <HeadZone3Temp>0</HeadZone3Temp>
- <HeadZone4Temp>0</HeadZone4Temp>
- <HeadZone5Temp>0</HeadZone5Temp>
- <HeadZone6Temp>0</HeadZone6Temp>
- <DryerAirFlow>0</DryerAirFlow>
- <DryerZone1Temp>0</DryerZone1Temp>
- <DryerZone2Temp>0</DryerZone2Temp>
- <DryerZone3Temp>0</DryerZone3Temp>
- <DryerBufferLength>0</DryerBufferLength>
- <HeadAirFlow>0</HeadAirFlow>
- <TableIndex>0</TableIndex>
- <HeadZone7Temp>0</HeadZone7Temp>
- <HeadZone8Temp>0</HeadZone8Temp>
- <HeadZone9Temp>0</HeadZone9Temp>
- <HeadZone10Temp>0</HeadZone10Temp>
- <HeadZone11Temp>0</HeadZone11Temp>
- <HeadZone12Temp>0</HeadZone12Temp>
- <RBlowerFlow>0</RBlowerFlow>
- <RBlowerTemp>0</RBlowerTemp>
- <LBlowerFlow>0</LBlowerFlow>
- <LBlowerTemp>0</LBlowerTemp>
- <PressureBuildUp>0</PressureBuildUp>
- </ProcessParameters>
- <ParametersIndices>
- <ParameterIndex>
- <Name>Name</Name>
- <Index>0</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dyeing Speed</Name>
- <Index>1</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Min Ink Uptake</Name>
- <Index>2</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Max Ink Uptake</Name>
- <Index>3</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Feeder Tension</Name>
- <Index>4</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Puller Tension</Name>
- <Index>5</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Winder Tension</Name>
- <Index>6</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Mixer Temp</Name>
- <Index>7</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 1 Temp</Name>
- <Index>8</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 2 Temp</Name>
- <Index>9</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 3 Temp</Name>
- <Index>10</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 4 Temp</Name>
- <Index>11</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 5 Temp</Name>
- <Index>12</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 6 Temp</Name>
- <Index>13</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Air Flow</Name>
- <Index>14</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Zone 1 Temp</Name>
- <Index>15</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Zone 2 Temp</Name>
- <Index>16</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Zone 3 Temp</Name>
- <Index>17</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Buffer Length</Name>
- <Index>18</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Air Flow</Name>
- <Index>19</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Process Parameters Tables Group Guid</Name>
- <Index>20</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Table Index</Name>
- <Index>21</Index>
- </ParameterIndex>
- </ParametersIndices>
- </TechItem>
- <TechItem xsi:type="DancerItem">
- <ID>d3f502ea-76dd-48c3-b401-7f5fb7925a72</ID>
- <Left>337</Left>
- <Top>586.991150442477</Top>
- <Width>93</Width>
- <Height>82.774336283185448</Height>
- <Angle>0</Angle>
- <ItemGuid>3EEE3B24-55DD-49F2-9339-F83F883BB908</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>e502555c-95b0-4688-b5e3-8becb30fc62c</ID>
- <Left>1458.875</Left>
- <Top>91.7821782178217</Top>
- <Width>200</Width>
- <Height>187.45575221238937</Height>
- <Angle>0</Angle>
- <ItemGuid>F8C1BA7F-F6DF-414D-BAF5-D4CB292F91F6</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeadCoverHeater1</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>283.75</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>0f7a35fc-e363-45b2-948d-ba66f91e4f0d</ID>
- <Left>1457.8333333333333</Left>
- <Top>344.58910891089096</Top>
- <Width>200</Width>
- <Height>187.45575221238937</Height>
- <Angle>0</Angle>
- <ItemGuid>F39B952A-6194-4055-A5CB-A3421BFE0F9B</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeadCoverHeater2</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>283.75</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="ProcessParametersItem">
- <ID>379cc480-084f-4349-bb87-2c18b3c839e4</ID>
- <Left>17</Left>
- <Top>26.340707964601791</Top>
- <Width>312</Width>
- <Height>465.09292035398232</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <ProcessParameters>
- <ID>0</ID>
- <Guid>77e783e1-c5bb-4eac-8768-c9a28fc69c97</Guid>
- <LastUpdated>2020-03-04T15:02:12.3146789Z</LastUpdated>
- <Name>Process parameters 4</Name>
- <DyeingSpeed>50</DyeingSpeed>
- <MinInkUptake>0</MinInkUptake>
- <MaxInkUptake>0</MaxInkUptake>
- <FeederTension>9</FeederTension>
- <PullerTension>0</PullerTension>
- <WinderTension>0</WinderTension>
- <MixerTemp>80</MixerTemp>
- <HeadZone1Temp>80</HeadZone1Temp>
- <HeadZone2Temp>80</HeadZone2Temp>
- <HeadZone3Temp>90</HeadZone3Temp>
- <HeadZone4Temp>100</HeadZone4Temp>
- <HeadZone5Temp>110</HeadZone5Temp>
- <HeadZone6Temp>120</HeadZone6Temp>
- <DryerAirFlow>7</DryerAirFlow>
- <DryerZone1Temp>180</DryerZone1Temp>
- <DryerZone2Temp>0</DryerZone2Temp>
- <DryerZone3Temp>0</DryerZone3Temp>
- <DryerBufferLength>30</DryerBufferLength>
- <HeadAirFlow>7</HeadAirFlow>
- <TableIndex>0</TableIndex>
- <HeadZone7Temp>135</HeadZone7Temp>
- <HeadZone8Temp>135</HeadZone8Temp>
- <HeadZone9Temp>135</HeadZone9Temp>
- <HeadZone10Temp>135</HeadZone10Temp>
- <HeadZone11Temp>140</HeadZone11Temp>
- <HeadZone12Temp>140</HeadZone12Temp>
- <RBlowerFlow>0</RBlowerFlow>
- <RBlowerTemp>0</RBlowerTemp>
- <LBlowerFlow>0</LBlowerFlow>
- <LBlowerTemp>0</LBlowerTemp>
- <PressureBuildUp>0</PressureBuildUp>
- </ProcessParameters>
- <ParametersIndices>
- <ParameterIndex>
- <Name>Process Parameters Tables Group Guid</Name>
- <Index>0</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Name</Name>
- <Index>1</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Table Index</Name>
- <Index>2</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dyeing Speed</Name>
- <Index>3</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Min Ink Uptake</Name>
- <Index>4</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Max Ink Uptake</Name>
- <Index>5</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Feeder Tension</Name>
- <Index>6</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Puller Tension</Name>
- <Index>7</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Winder Tension</Name>
- <Index>8</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Mixer Temp</Name>
- <Index>9</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 1 Temp</Name>
- <Index>10</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 2 Temp</Name>
- <Index>11</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 3 Temp</Name>
- <Index>12</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 4 Temp</Name>
- <Index>13</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 5 Temp</Name>
- <Index>14</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 6 Temp</Name>
- <Index>15</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 7 Temp</Name>
- <Index>16</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 8 Temp</Name>
- <Index>17</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 9 Temp</Name>
- <Index>18</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 10 Temp</Name>
- <Index>19</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 11 Temp</Name>
- <Index>20</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 12 Temp</Name>
- <Index>21</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>R Blower Flow</Name>
- <Index>22</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>R Blower Temp</Name>
- <Index>23</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>L Blower Flow</Name>
- <Index>24</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>L Blower Temp</Name>
- <Index>25</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Zone 1 Temp</Name>
- <Index>26</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Zone 2 Temp</Name>
- <Index>27</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Zone 3 Temp</Name>
- <Index>28</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Air Flow</Name>
- <Index>29</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Air Flow</Name>
- <Index>30</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Buffer Length</Name>
- <Index>31</Index>
- </ParameterIndex>
- </ParametersIndices>
- </TechItem>
- <TechItem xsi:type="ProcessParametersItem">
- <ID>9b9fde94-ce8c-4401-8961-9d1d44ae2bcf</ID>
- <Left>10</Left>
- <Top>504.60619469026557</Top>
- <Width>315</Width>
- <Height>159.08407079646025</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <ProcessParameters>
- <ID>0</ID>
- <Guid>e7434743-ec18-4ae3-91a9-e25db760963d</Guid>
- <LastUpdated>2020-03-04T15:03:44.3914568Z</LastUpdated>
- <Name>Process parameters 5</Name>
- <DyeingSpeed>0</DyeingSpeed>
- <MinInkUptake>0</MinInkUptake>
- <MaxInkUptake>0</MaxInkUptake>
- <FeederTension>0</FeederTension>
- <PullerTension>0</PullerTension>
- <WinderTension>0</WinderTension>
- <MixerTemp>0</MixerTemp>
- <HeadZone1Temp>0</HeadZone1Temp>
- <HeadZone2Temp>0</HeadZone2Temp>
- <HeadZone3Temp>0</HeadZone3Temp>
- <HeadZone4Temp>0</HeadZone4Temp>
- <HeadZone5Temp>0</HeadZone5Temp>
- <HeadZone6Temp>0</HeadZone6Temp>
- <DryerAirFlow>4</DryerAirFlow>
- <DryerZone1Temp>0</DryerZone1Temp>
- <DryerZone2Temp>0</DryerZone2Temp>
- <DryerZone3Temp>0</DryerZone3Temp>
- <DryerBufferLength>0</DryerBufferLength>
- <HeadAirFlow>4</HeadAirFlow>
- <TableIndex>0</TableIndex>
- <HeadZone7Temp>0</HeadZone7Temp>
- <HeadZone8Temp>0</HeadZone8Temp>
- <HeadZone9Temp>0</HeadZone9Temp>
- <HeadZone10Temp>0</HeadZone10Temp>
- <HeadZone11Temp>0</HeadZone11Temp>
- <HeadZone12Temp>0</HeadZone12Temp>
- <RBlowerFlow>0</RBlowerFlow>
- <RBlowerTemp>0</RBlowerTemp>
- <LBlowerFlow>0</LBlowerFlow>
- <LBlowerTemp>0</LBlowerTemp>
- <PressureBuildUp>0</PressureBuildUp>
- </ProcessParameters>
- <ParametersIndices>
- <ParameterIndex>
- <Name>Process Parameters Tables Group Guid</Name>
- <Index>0</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Name</Name>
- <Index>1</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Table Index</Name>
- <Index>2</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dyeing Speed</Name>
- <Index>3</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Min Ink Uptake</Name>
- <Index>4</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Max Ink Uptake</Name>
- <Index>5</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Feeder Tension</Name>
- <Index>6</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Puller Tension</Name>
- <Index>7</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Winder Tension</Name>
- <Index>8</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Mixer Temp</Name>
- <Index>9</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 1 Temp</Name>
- <Index>10</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 2 Temp</Name>
- <Index>11</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 3 Temp</Name>
- <Index>12</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 4 Temp</Name>
- <Index>13</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 5 Temp</Name>
- <Index>14</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 6 Temp</Name>
- <Index>15</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 7 Temp</Name>
- <Index>16</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 8 Temp</Name>
- <Index>17</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 9 Temp</Name>
- <Index>18</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 10 Temp</Name>
- <Index>19</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 11 Temp</Name>
- <Index>20</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 12 Temp</Name>
- <Index>21</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>R Blower Flow</Name>
- <Index>22</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>R Blower Temp</Name>
- <Index>23</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>L Blower Flow</Name>
- <Index>24</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>L Blower Temp</Name>
- <Index>25</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Zone 1 Temp</Name>
- <Index>26</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Zone 2 Temp</Name>
- <Index>27</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Zone 3 Temp</Name>
- <Index>28</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Air Flow</Name>
- <Index>29</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Air Flow</Name>
- <Index>30</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Buffer Length</Name>
- <Index>31</Index>
- </ParameterIndex>
- </ParametersIndices>
- </TechItem>
- <TechItem xsi:type="BlowerItem">
- <ID>a9ac7e80-c612-4b2b-b35a-669d6d8697aa</ID>
- <Left>-1</Left>
- <Top>686.995575221239</Top>
- <Width>252</Width>
- <Height>103.35398230088481</Height>
- <Angle>0</Angle>
- <ItemGuid>B6FE07F8-2435-495D-ABFE-358C76812413</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>82576c3f-1790-4074-97a3-65a12bd812c1</ID>
- <Left>435</Left>
- <Top>573.99557522124167</Top>
- <Width>131</Width>
- <Height>109.43362831858394</Height>
- <Angle>0</Angle>
- <ItemGuid>94F3E5A1-413E-4EA0-BDE1-F0625BFF7910</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>8a68cdf4-136b-4db4-bc4e-b3157790be6a</ID>
- <Left>580</Left>
- <Top>572.7168141592922</Top>
- <Width>131</Width>
- <Height>109.43362831858394</Height>
- <Angle>0</Angle>
- <ItemGuid>FE0D0A56-5795-4C5A-8E09-939FBB35C441</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- <MachineTechViewProjectTab>
- <Name>Thread</Name>
- <Items>
- <TechItem xsi:type="MonitorItem">
- <ID>50bae43f-8b1a-4279-9238-b976a0c72af3</ID>
- <Left>1530</Left>
- <Top>193.19911504424795</Top>
- <Width>169</Width>
- <Height>181.37610619469029</Height>
- <Angle>0</Angle>
- <ItemGuid>A8DB1D27-6B25-4FB4-A3F5-46A29BA51955</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>68eef943-2151-4df5-be61-044c3865606e</ID>
- <Left>1172</Left>
- <Top>145.78318584070678</Top>
- <Width>175</Width>
- <Height>167.827433628319</Height>
- <Angle>0</Angle>
- <ItemGuid>96B89605-F999-43FE-A1CD-2645BFB33A36</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>6be024c6-3d1b-4267-9b77-44473aba56b7</ID>
- <Left>988</Left>
- <Top>143.32300884955998</Top>
- <Width>190</Width>
- <Height>167.09734513274049</Height>
- <Angle>0</Angle>
- <ItemGuid>FC60060A-3736-4910-B41A-FF6DABDF0E9E</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>7c720f3b-00e1-49dd-92f9-fdd1e9686623</ID>
- <Left>817</Left>
- <Top>142.42035398230098</Top>
- <Width>169</Width>
- <Height>168.31858407079625</Height>
- <Angle>0</Angle>
- <ItemGuid>4CE6A82E-D841-4D33-BBB2-11F0743A441C</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>3ebd6759-521b-4ed1-a353-ee1ad7801f28</ID>
- <Left>922</Left>
- <Top>516.43362831858417</Top>
- <Width>439</Width>
- <Height>304.995575221239</Height>
- <Angle>0</Angle>
- <ItemGuid>D126DB23-784B-4F0C-8F88-D89A65A7549F</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>1460</Duration>
- <Min>0</Min>
- <Max>16384</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>1</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>984b4126-3dda-4624-a79f-0646eb0e1358</ID>
- <Left>465</Left>
- <Top>515.420353982301</Top>
- <Width>439</Width>
- <Height>304.995575221239</Height>
- <Angle>0</Angle>
- <ItemGuid>10102BC3-0EAE-47FF-A8E5-8640780CAA3D</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>1516</Duration>
- <Min>0</Min>
- <Max>16384</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>1</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>8ebc3ab7-a02d-4b12-93b3-2563443831d7</ID>
- <Left>15</Left>
- <Top>518.46017699115032</Top>
- <Width>439</Width>
- <Height>304.995575221239</Height>
- <Angle>0</Angle>
- <ItemGuid>C0BCCD5C-346B-4C4A-A080-39D28E9E1A0C</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>1398</Duration>
- <Min>0</Min>
- <Max>16384</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>1</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>acafb268-5e97-4277-8dc8-173250a9e3f8</ID>
- <Left>12</Left>
- <Top>13.849557522123973</Top>
- <Width>439</Width>
- <Height>304.995575221239</Height>
- <Angle>0</Angle>
- <ItemGuid>9FBC5460-BA59-486B-8D85-BD7D8A959F98</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>1273</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>1</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>3ccb1485-b0e9-4d36-a931-a1b3865edeaa</ID>
- <Left>460</Left>
- <Top>38.28761061946841</Top>
- <Width>267</Width>
- <Height>221.90707964601768</Height>
- <Angle>0</Angle>
- <ItemGuid>08d15ca1-d7d1-460f-8f37-42c37c287cd1</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>952.3546144121359</Speed>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>be4cb8d9-b516-4604-a6a5-1638cbc50251</ID>
- <Left>860</Left>
- <Top>-24.18584070796669</Top>
- <Width>345</Width>
- <Height>169.21681415929209</Height>
- <Angle>0</Angle>
- <ItemGuid>4CE6A82E-D841-4D33-BBB2-11F0743A441C</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>514</Duration>
- <Min>0</Min>
- <Max>100000</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>1</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>75b99507-4eba-4b11-b52e-26732d4c5479</ID>
- <Left>19</Left>
- <Top>324.14159292035305</Top>
- <Width>429</Width>
- <Height>193.26548672566258</Height>
- <Angle>0</Angle>
- <ItemGuid>F1DF490B-0577-4FA7-ACA1-0EEF4F934E8F</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>1398</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>4</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>a30e48de-be76-4230-92d0-d27d6f37b940</ID>
- <Left>474</Left>
- <Top>320.03097345132551</Top>
- <Width>429</Width>
- <Height>193.26548672566258</Height>
- <Angle>0</Angle>
- <ItemGuid>5F12B974-2C9E-4DDD-9B20-733251A5D7E6</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>1398</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>4</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>5ac4b368-093a-4192-98d4-e9d24f229b13</ID>
- <Left>928</Left>
- <Top>321.64601769912122</Top>
- <Width>429</Width>
- <Height>193.26548672566258</Height>
- <Angle>0</Angle>
- <ItemGuid>84CF23C9-D20D-4C08-BE1D-80201FC43C06</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>1398</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>4</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="MonitorRecorderItem">
- <ID>9c34dc69-cfaa-48b4-9d02-8f0d9bba79dd</ID>
- <Left>1303</Left>
- <Top>34.380530973454768</Top>
- <Width>176</Width>
- <Height>83.05309734512457</Height>
- <Angle>0</Angle>
- <ColorNumber>-1</ColorNumber>
- <SelectedMonitorsGuids>
- <string>89B7B89D-8050-4188-B568-35B1910CFB6F</string>
- <string>96B89605-F999-43FE-A1CD-2645BFB33A36</string>
- <string>84CF23C9-D20D-4C08-BE1D-80201FC43C06</string>
- <string>FC60060A-3736-4910-B41A-FF6DABDF0E9E</string>
- <string>5F12B974-2C9E-4DDD-9B20-733251A5D7E6</string>
- <string>9ADF7823-B293-4275-9999-F62474D246AA</string>
- <string>4CE6A82E-D841-4D33-BBB2-11F0743A441C</string>
- <string>F1DF490B-0577-4FA7-ACA1-0EEF4F934E8F</string>
- </SelectedMonitorsGuids>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- <MachineTechViewProjectTab>
- <Name>Dispensers</Name>
- <Items>
- <TechItem xsi:type="DispenserItem">
- <ID>dce78f33-c966-4848-8c6e-a4a01dbc7577</ID>
- <Left>1322.1428571428571</Left>
- <Top>214.15929203538531</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>2CC8E461-E91F-4D4C-A402-922477F06C87</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 1</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>2d03fc19-0502-43e1-a3ff-4012a612112b</ID>
- <Left>1149</Left>
- <Top>218.48230088495342</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>C8D8FE90-0375-44A2-A6D1-E997789E065C</ItemGuid>
- <ColorNumber>-16724737</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 2</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>81958374-3fa3-48b3-a554-5653fe1934b1</ID>
- <Left>959</Left>
- <Top>210.32743362830422</Top>
- <Width>156</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>08ED9044-CAD6-4492-94B2-C07206E0164B</ItemGuid>
- <ColorNumber>-65325</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 3</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>8fead411-7198-4428-a364-e32f3035ed94</ID>
- <Left>775</Left>
- <Top>206.42920353980952</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>179F34BB-3252-4D3A-965C-E6EB43D6FE7C</ItemGuid>
- <ColorNumber>-524544</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 4</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>31bfa89f-e64d-4a3b-8585-c4a1b2e5a139</ID>
- <Left>585</Left>
- <Top>208.47345132741418</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>716B35CF-46E0-47D5-AF85-5233D212568F</ItemGuid>
- <ColorNumber>-2108246</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 5</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>c2bff5f3-6dc9-4b07-87ba-9e3a5814804e</ID>
- <Left>372</Left>
- <Top>216.75221238937439</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>99528449-4D76-4874-AB95-522951560E01</ItemGuid>
- <ColorNumber>-263685</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 6</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>071281a5-3569-4a62-8b68-7bea850a3c07</ID>
- <Left>217</Left>
- <Top>211.63716814158107</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>E8ED07E2-7C36-459C-B9E5-6A23A1E24F03</ItemGuid>
- <ColorNumber>-723724</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 7</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>7b703b9a-a626-4ae5-8e31-fa1cfe5718f4</ID>
- <Left>45</Left>
- <Top>216.04867256635521</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>8A957565-4165-49F7-854D-D21F95FFBE1B</ItemGuid>
- <ColorNumber>-724238</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 8</DisplayName>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>caca40a2-310c-452e-adcf-c28ee38f6bdc</ID>
- <Left>1305</Left>
- <Top>31.606194690259713</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid>
- <ColorNumber>-15856114</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>af52d36f-27a2-4a31-8ceb-9c43fedbed22</ID>
- <Left>1127</Left>
- <Top>32.535398230081626</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid>
- <ColorNumber>-15293470</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>d40eada8-d22a-4521-bd2a-d998ed93106f</ID>
- <Left>955</Left>
- <Top>32.61946902653176</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid>
- <ColorNumber>-1570857</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>b2d6364d-8b5c-43d2-8838-927c85b017b1</ID>
- <Left>774</Left>
- <Top>31.960176991142362</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid>
- <ColorNumber>-1379575</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>3980e685-73b3-4af1-9593-9235be147322</ID>
- <Left>596</Left>
- <Top>32.889380530964274</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid>
- <ColorNumber>-7763381</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>51465293-58d5-40a4-8302-81856f8b4f47</ID>
- <Left>424</Left>
- <Top>32.973451327414409</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>AF3FD56C-95BF-4DE1-8EDC-8426B0DB2A26</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>c2a8c5b2-891b-4f9f-862c-c1c294366c78</ID>
- <Left>252</Left>
- <Top>31.703539823006281</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>60DA9EA3-C8A6-4D41-8AD8-3EB1BAA79CC9</ItemGuid>
- <ColorNumber>-8391822</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>9618e441-8973-4e16-a90b-06ce5798bd29</ID>
- <Left>80</Left>
- <Top>31.787610619456416</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>EF66F95A-E166-4FA2-B1AF-D6F55621817A</ItemGuid>
- <ColorNumber>-2186185</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>bce8c8e8-a317-4991-9aa7-cd99a45d1509</ID>
- <Left>28.22352941176473</Left>
- <Top>682.03174474303751</Top>
- <Width>247</Width>
- <Height>122.24778761061873</Height>
- <Angle>0</Angle>
- <ItemGuid>66cc8510-db9c-4e13-9151-01e705ec04de</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>72a23702-31bb-4ab8-aee5-2a02bcb1270b</ID>
- <Left>235.16470588235291</Left>
- <Top>699.99460095802579</Top>
- <Width>200</Width>
- <Height>94.15929203539747</Height>
- <Angle>0</Angle>
- <ItemGuid>36ba0ba4-e41d-45ff-8f68-1699e00c7107</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="ControllerItem">
- <ID>2dd6ff17-e515-4d8f-814f-a9683f404a8e</ID>
- <Left>140</Left>
- <Top>867.73893805310092</Top>
- <Width>160</Width>
- <Height>85.49115044247776</Height>
- <Angle>0</Angle>
- <ItemGuid>78482AA4-3DF6-421F-944C-64328D3C3EF2</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <OptimalRangeMinimum>0</OptimalRangeMinimum>
- <OptimalRangeMaximum>70</OptimalRangeMaximum>
- <IsSetToDefault>true</IsSetToDefault>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>06843009-1da0-4811-8e77-50576d0edcb1</ID>
- <Left>507</Left>
- <Top>792.77433628318749</Top>
- <Width>219</Width>
- <Height>125.75221238938025</Height>
- <Angle>0</Angle>
- <ItemGuid>0c5dc1e9-da17-4ff8-86aa-6b39fd796ba9</ItemGuid>
- <ColorNumber>-16777216</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>935dddd0-0c6f-4766-8173-f9118006a12b</ID>
- <Left>1303</Left>
- <Top>475.87168141593065</Top>
- <Width>160</Width>
- <Height>124.6504424778754</Height>
- <Angle>0</Angle>
- <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid>
- <ColorNumber>-15856114</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MultiGraphItem">
- <ID>97e39a59-dba8-4e42-a124-b37de9453baf</ID>
- <Left>370</Left>
- <Top>781.46902654866153</Top>
- <Width>710</Width>
- <Height>401.24778761063465</Height>
- <Angle>0</Angle>
- <ItemGuid>D023F15D-3555-48E9-A9E9-5DF99F60D791</ItemGuid>
- <ColorNumber>0</ColorNumber>
- <Duration>1956</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>46bdfce3-1c69-45dd-bbe9-582d1ac1e6f2</ID>
- <Left>1128</Left>
- <Top>482.80530973451141</Top>
- <Width>140</Width>
- <Height>117.32300884955743</Height>
- <Angle>0</Angle>
- <ItemGuid>0FE216B2-A097-4F2C-B465-08593F2532B3</ItemGuid>
- <ColorNumber>-15293470</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>429154a5-9a16-4423-85ca-ee4bae9aec3c</ID>
- <Left>968</Left>
- <Top>481.35398230088504</Top>
- <Width>140</Width>
- <Height>117.32300884955743</Height>
- <Angle>0</Angle>
- <ItemGuid>3271FD82-46D3-4789-B612-564967826C75</ItemGuid>
- <ColorNumber>-1570857</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>0f6ab8e8-99a7-4468-bde8-690a63467688</ID>
- <Left>766</Left>
- <Top>476.07964601769811</Top>
- <Width>140</Width>
- <Height>117.32300884955743</Height>
- <Angle>0</Angle>
- <ItemGuid>FBB806E7-42FA-4BAA-BDA1-3B8B07913AAD</ItemGuid>
- <ColorNumber>-1379575</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>bc0ac903-9c1f-4580-8b9e-670a76350473</ID>
- <Left>586</Left>
- <Top>474.38938053097161</Top>
- <Width>140</Width>
- <Height>117.32300884955743</Height>
- <Angle>0</Angle>
- <ItemGuid>436A22BB-AF79-4CB2-8A7D-DD4D9E54A81E</ItemGuid>
- <ColorNumber>-7763381</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>f9c960b2-b93e-46d5-b892-30337c0b55af</ID>
- <Left>391</Left>
- <Top>474.87168141592781</Top>
- <Width>140</Width>
- <Height>117.32300884955743</Height>
- <Angle>0</Angle>
- <ItemGuid>89EA6CC8-5363-4BEC-A370-D906611087A7</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>5ac157ab-2d53-4307-bf0b-b069854701ac</ID>
- <Left>226</Left>
- <Top>471.66814159292005</Top>
- <Width>140</Width>
- <Height>117.32300884955743</Height>
- <Angle>0</Angle>
- <ItemGuid>D5EBE52B-E2DF-4C97-80B1-F111F6B15854</ItemGuid>
- <ColorNumber>-8391822</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>65a19d7e-c524-48a0-bd70-28b99b113dd1</ID>
- <Left>69</Left>
- <Top>473.97787610619389</Top>
- <Width>140</Width>
- <Height>117.32300884955743</Height>
- <Angle>0</Angle>
- <ItemGuid>FE521D1B-A0EA-4FEA-AE64-33998A6CE138</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>5bf7a681-ee47-477e-8b47-ba7a2eb6e115</ID>
- <Left>1130</Left>
- <Top>624.9557522123913</Top>
- <Width>144</Width>
- <Height>80.495575221237516</Height>
- <Angle>0</Angle>
- <ItemGuid>3174ADCF-5793-4B5A-A3C6-B96E146A903D</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>29b17a4b-fd4e-49cc-a3cd-418730176bf7</ID>
- <Left>969</Left>
- <Top>625.95575221239</Top>
- <Width>144</Width>
- <Height>80.495575221237516</Height>
- <Angle>0</Angle>
- <ItemGuid>AD50C358-5BAF-4A2F-8593-51A22C85B3D1</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>21a5429f-c3a2-4e3b-ae77-c5538f30130d</ID>
- <Left>775</Left>
- <Top>623.66814159292062</Top>
- <Width>144</Width>
- <Height>82.535398230087083</Height>
- <Angle>0</Angle>
- <ItemGuid>E2F0FC31-CE7E-416B-ACEA-8EB6CA9B850B</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>96a46b0c-37b1-4457-93fb-b3dc301c5743</ID>
- <Left>588</Left>
- <Top>625.06637168141322</Top>
- <Width>144</Width>
- <Height>80.495575221237516</Height>
- <Angle>0</Angle>
- <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C09F</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>d4ad8603-9929-415f-9990-1869fcff36e4</ID>
- <Left>1310</Left>
- <Top>628.69469026548632</Top>
- <Width>144</Width>
- <Height>80.495575221237516</Height>
- <Angle>0</Angle>
- <ItemGuid>84682E90-6926-42AA-BF8C-2CCCF5C26C97</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="ValveItem">
- <ID>25249d78-ee37-42a8-b5aa-96f60e97c3ea</ID>
- <Left>20.870588235294122</Left>
- <Top>784.26605504587133</Top>
- <Width>327</Width>
- <Height>108.53097345133028</Height>
- <Angle>0</Angle>
- <ItemGuid>8B1FCBC3-FEEA-4F87-B56F-CE5D28B7ACA4</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>fc1d62f7-d13b-4a7b-8f9f-c687c987c7a9</ID>
- <Left>1065</Left>
- <Top>788.41592920352355</Top>
- <Width>370</Width>
- <Height>362.10619469026585</Height>
- <Angle>0</Angle>
- <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>1426</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>3</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>cc99a514-1498-4b93-a4eb-4e0a2a2e9de6</ID>
- <Left>628</Left>
- <Top>765.4469026548752</Top>
- <Width>394</Width>
- <Height>372.88495575221242</Height>
- <Angle>0</Angle>
- <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>1282</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>1</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="ValveItem">
- <ID>cdddd48e-422d-48f4-8397-5032c3705fdb</ID>
- <Left>1069</Left>
- <Top>698.04867256637226</Top>
- <Width>382</Width>
- <Height>136.79203539823016</Height>
- <Angle>0</Angle>
- <ItemGuid>16C0F85C-0479-42F4-A67E-3E0CD3B23C2D</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>ee6d4c5a-ca5b-4557-8012-dacf700cdc08</ID>
- <Left>231</Left>
- <Top>624.06637168142413</Top>
- <Width>144</Width>
- <Height>80.495575221237516</Height>
- <Angle>0</Angle>
- <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C010</ItemGuid>
- <ColorNumber>-8391822</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>20576bb2-202f-4170-9af5-f3c18b410112</ID>
- <Left>77</Left>
- <Top>624.46460176991513</Top>
- <Width>144</Width>
- <Height>80.495575221237516</Height>
- <Angle>0</Angle>
- <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C011</ItemGuid>
- <ColorNumber>-2186185</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- <MachineTechViewProjectTab>
- <Name>Thread insertion</Name>
- <Items>
- <TechItem xsi:type="MotorItem">
- <ID>443a977c-8e89-4a56-82e4-684bac7945c9</ID>
- <Left>25</Left>
- <Top>22.761061946902203</Top>
- <Width>247</Width>
- <Height>172.25663716814159</Height>
- <Angle>0</Angle>
- <ItemGuid>08d15ca1-d7d1-460f-8f37-42c37c287cd1</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>500</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>a821b716-cb7d-4951-84ee-e56955431099</ID>
- <Left>355</Left>
- <Top>20.592920353981697</Top>
- <Width>260</Width>
- <Height>153.00442477876106</Height>
- <Angle>0</Angle>
- <ItemGuid>b90a4e78-ebbf-44db-829b-949517d6400b</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>500</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>e36e321b-d48d-4199-a1ee-75ac18e9de1e</ID>
- <Left>694</Left>
- <Top>19.367256637167998</Top>
- <Width>217</Width>
- <Height>155.26106194690203</Height>
- <Angle>0</Angle>
- <ItemGuid>b7c1aea4-32c1-41cb-bca3-4aa665529b49</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>500</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>8790db03-4dfd-4d49-aec0-706babb55af9</ID>
- <Left>364</Left>
- <Top>222.16814159291846</Top>
- <Width>240</Width>
- <Height>172.30973451327589</Height>
- <Angle>0</Angle>
- <ItemGuid>2d3eaca5-4dfd-40d9-9d1f-aa4ae794eddc</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>500</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>69ebcb28-13d9-41b3-a9ef-b2be51584141</ID>
- <Left>29</Left>
- <Top>241.34955752210982</Top>
- <Width>263</Width>
- <Height>174.296460176989</Height>
- <Angle>0</Angle>
- <ItemGuid>c6099065-a735-4cc5-b575-c31a45bb9262</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>400</Speed>
- </TechItem>
- <TechItem xsi:type="ThreadMotionItem">
- <ID>4d562029-3fdf-40a4-a5a7-9a322253c912</ID>
- <Left>1168</Left>
- <Top>47.305309734517039</Top>
- <Width>304</Width>
- <Height>167.26548672566202</Height>
- <Angle>0</Angle>
- <ColorNumber>-1</ColorNumber>
- <Speed>50</Speed>
- </TechItem>
- <TechItem xsi:type="BreakSensorItem">
- <ID>92607e12-2dd6-41c9-8f89-f051f386b734</ID>
- <Left>1258</Left>
- <Top>277.55752212389069</Top>
- <Width>240</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>DCE08A06-6711-43AE-AB7C-EADD5AB70EE0</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>7b5b6896-f626-4e59-a5cf-2600e603c0f6</ID>
- <Left>695</Left>
- <Top>223.44247787610908</Top>
- <Width>228</Width>
- <Height>175.0353982300901</Height>
- <Angle>0</Angle>
- <ItemGuid>7b6d0a93-5a91-4e1f-af47-353afd8b5ea6</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>83.833754740833143</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>2052a2d3-843c-4a1c-87fd-acd0832fd1b9</ID>
- <Left>81</Left>
- <Top>542.88495575220634</Top>
- <Width>220</Width>
- <Height>168.473451327436</Height>
- <Angle>0</Angle>
- <ItemGuid>7c03f12f-ab2a-4421-8575-aefd6dec0001</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>1000</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>339b7d00-d688-41cf-926a-8171d5e62740</ID>
- <Left>376</Left>
- <Top>553.11061946903</Top>
- <Width>240</Width>
- <Height>159.84070796460173</Height>
- <Angle>0</Angle>
- <ItemGuid>f3b5076e-cba3-4ad2-b3cc-0c4e907bd9ef</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>5</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>7644a8f9-00a2-4e37-8f48-0667b1541114</ID>
- <Left>1037</Left>
- <Top>247.03097345133062</Top>
- <Width>240</Width>
- <Height>172.30973451327589</Height>
- <Angle>0</Angle>
- <ItemGuid>92237d83-9f85-48db-aa6f-2fc5c9e0d8cd</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>500</Speed>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>c706d31b-48b0-44cc-a9c4-11d3acdcf667</ID>
- <Left>548</Left>
- <Top>418.71652683599893</Top>
- <Width>269</Width>
- <Height>127.67256637168134</Height>
- <Angle>0</Angle>
- <ItemGuid>2a454081-bd5e-41de-ae5d-97aefe1d76de</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>7ccff69d-50f9-4e9b-a997-72a67917df5e</ID>
- <Left>803</Left>
- <Top>569.80530973451619</Top>
- <Width>227</Width>
- <Height>145.08849557522183</Height>
- <Angle>0</Angle>
- <ItemGuid>9c02effb-7deb-40a1-90c3-df1fb48e6431</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>30</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>a88a74cb-418b-4ed0-89ec-c42ff560528e</ID>
- <Left>1107</Left>
- <Top>573.87168141592883</Top>
- <Width>227</Width>
- <Height>145.08849557522183</Height>
- <Angle>0</Angle>
- <ItemGuid>a359e9d0-adcc-40a5-b3d9-b9cb26eca092</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>30</Speed>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>bba24461-e18d-497a-b85d-808668d0c750</ID>
- <Left>892</Left>
- <Top>457.57079646017365</Top>
- <Width>170</Width>
- <Height>87.999999999997613</Height>
- <Angle>0</Angle>
- <ItemGuid>6f48e18c-d472-425a-ba7e-633630605e11</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>9ccdbff6-031d-4364-8732-daade6b88551</ID>
- <Left>1062</Left>
- <Top>452.95575221238948</Top>
- <Width>170</Width>
- <Height>87.999999999997613</Height>
- <Angle>0</Angle>
- <ItemGuid>8a65badb-3d7d-4b7b-8dcd-783e443b0689</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- <MachineTechViewProjectTab>
- <Name>Head graphs</Name>
- <Items>
- <TechItem xsi:type="SingleGraphItem">
- <ID>ffe980da-dbbe-4bac-9595-46f587e9df00</ID>
- <Left>3</Left>
- <Top>5.8097345132742362</Top>
- <Width>363</Width>
- <Height>157.76991150442467</Height>
- <Angle>0</Angle>
- <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E448FB</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>2962</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>81b78212-14d8-4a66-bf3a-eeea9900e0d6</ID>
- <Left>371</Left>
- <Top>21.075221238938013</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>AA1CF164-76FE-49C6-AA73-0EBA29816E92</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>3941a557-05e6-4c1b-bb98-4f2a59892431</ID>
- <Left>517</Left>
- <Top>11.517699115044195</Top>
- <Width>103</Width>
- <Height>113.4867256637167</Height>
- <Angle>0</Angle>
- <ItemGuid>188285E5-1493-4BED-8269-91743770A631</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone7</HeaterType>
- <SetPoint>100</SetPoint>
- <CurrentValue>100.02</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>100</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>7e0942e7-a87a-402a-b580-5091ed6b29ee</ID>
- <Left>8</Left>
- <Top>276.6194690265491</Top>
- <Width>357</Width>
- <Height>143.58407079645986</Height>
- <Angle>0</Angle>
- <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E44809</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>2962</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>064bd571-4250-4ea3-8ed5-96f1ddc8fe6b</ID>
- <Left>374</Left>
- <Top>280.73893805309746</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>8FEB7F10-E1FB-465A-A987-6E8659C2186A</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>4845ec5b-067b-43c2-aaf1-314dcb358a7c</ID>
- <Left>519</Left>
- <Top>283.3407079646019</Top>
- <Width>103</Width>
- <Height>121.59292035398221</Height>
- <Angle>0</Angle>
- <ItemGuid>63E2AFE0-0746-4AAB-AA74-C26EC1F282AE</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone9</HeaterType>
- <SetPoint>95</SetPoint>
- <CurrentValue>95.05</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>95</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>85b25b0b-cd3d-4a8a-88f5-f832623d7ec2</ID>
- <Left>8.75</Left>
- <Top>704.87334618417651</Top>
- <Width>350</Width>
- <Height>152.70353982300856</Height>
- <Angle>0</Angle>
- <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E44812</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>2962</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>85e9ecc2-3bce-4055-89a9-1712752898a9</ID>
- <Left>375.66666666666663</Left>
- <Top>902.19714360816624</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>500698E0-5623-4A47-9537-FCAAF5D0B725</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>8d9b0d4b-ac5e-4c17-b7eb-4d59825064c7</ID>
- <Left>523.04166666666652</Left>
- <Top>895.90015771488663</Top>
- <Width>103</Width>
- <Height>121.59292035398221</Height>
- <Angle>0</Angle>
- <ItemGuid>F39B952A-6194-4055-A5CB-A3421BFE0F9B</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone12</HeaterType>
- <SetPoint>99</SetPoint>
- <CurrentValue>99</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>99</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>63ccee8d-ce38-4c69-b8d1-141f320d11f9</ID>
- <Left>6</Left>
- <Top>563.37610619469046</Top>
- <Width>358</Width>
- <Height>141.55752212389359</Height>
- <Angle>0</Angle>
- <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E44811</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>2962</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>5ed86083-bdd6-4648-b7ca-f17fa97f034a</ID>
- <Left>379</Left>
- <Top>573.57522123893818</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>C113AA1D-25F5-4095-A1F3-18BEDFC0EEEE</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>8269194e-5348-4367-8ae9-e6c0647febaf</ID>
- <Left>523</Left>
- <Top>571.1106194690268</Top>
- <Width>103</Width>
- <Height>116.52654867256626</Height>
- <Angle>0</Angle>
- <ItemGuid>D41BBB23-6EB5-4743-89DB-9191000B475F</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone11</HeaterType>
- <SetPoint>100</SetPoint>
- <CurrentValue>100.02</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>100</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>182492d7-b240-4162-b8ec-39996eec3cc7</ID>
- <Left>9</Left>
- <Top>418.47787610619497</Top>
- <Width>353</Width>
- <Height>145.61061946902635</Height>
- <Angle>0</Angle>
- <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E44810</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>2962</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>e8130372-e0ee-4c1c-a43d-4ab15ff57bd8</ID>
- <Left>378</Left>
- <Top>430.703539823009</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>DCCCCF68-5895-40BE-9E90-1FA35E44D2E4</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>af0d953f-45de-4c0d-9eeb-d7a5c17681e4</ID>
- <Left>519</Left>
- <Top>428.23893805309746</Top>
- <Width>103</Width>
- <Height>121.59292035398221</Height>
- <Angle>0</Angle>
- <ItemGuid>B4D0A1C8-711C-49A9-82A3-B5B9F35FC131</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone10</HeaterType>
- <SetPoint>100</SetPoint>
- <CurrentValue>100.02</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>100</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>00dda04e-1853-422f-ac47-29bdbab642d7</ID>
- <Left>7</Left>
- <Top>142.86725663716828</Top>
- <Width>357</Width>
- <Height>152.70353982300867</Height>
- <Angle>0</Angle>
- <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E44808</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>2962</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>e7935033-56c6-42a4-a2b3-f5eedb0a11e7</ID>
- <Left>382</Left>
- <Top>151.03982300884968</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>E772ECA1-24EB-446A-AB28-F5E3D853B9F6</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>b339a7c0-7555-4e54-9834-6193ed7c2b7a</ID>
- <Left>519</Left>
- <Top>147.561946902655</Top>
- <Width>104</Width>
- <Height>109.43362831858406</Height>
- <Angle>0</Angle>
- <ItemGuid>461FA2D7-1918-4958-AAA7-37A1A329FA12</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone8</HeaterType>
- <SetPoint>100</SetPoint>
- <CurrentValue>99.97</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>100</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>40d16753-8448-4af9-8fbd-98c1ed301de5</ID>
- <Left>623</Left>
- <Top>117.5353982300885</Top>
- <Width>363</Width>
- <Height>157.76991150442467</Height>
- <Angle>0</Angle>
- <ItemGuid>D7585119-4A42-4370-8F1E-F3E62553E588</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>2962</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>b3826c8e-1d82-4f4f-ad9f-d88f257dffb2</ID>
- <Left>1005</Left>
- <Top>12.221238938053205</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>d59b64f7-a8cf-4a2b-935a-943ae35fb78c</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>d3631074-68c4-4377-b0c5-9213a6b1b2c0</ID>
- <Left>1148</Left>
- <Top>293.47345132743362</Top>
- <Width>103</Width>
- <Height>113.4867256637167</Height>
- <Angle>0</Angle>
- <ItemGuid>8E764A14-0F84-4FEC-928B-32A2509CAD57</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone3</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>8.5</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>99af8946-4971-4913-9382-705c4e05b7ce</ID>
- <Left>621</Left>
- <Top>275.60619469026591</Top>
- <Width>363</Width>
- <Height>157.76991150442467</Height>
- <Angle>0</Angle>
- <ItemGuid>098F7CAB-030C-46B0-B2B8-A85AF2253032</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>2962</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>233f0076-7595-4ecb-8496-41eeb7b457ea</ID>
- <Left>993</Left>
- <Top>279.72566371681404</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>9de55ec4-201f-4f62-9003-f63ebea06f8f</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>f815ebb5-61af-45ff-8109-5f5e717a5c4d</ID>
- <Left>1146</Left>
- <Top>14.823008849557596</Top>
- <Width>103</Width>
- <Height>113.4867256637167</Height>
- <Angle>0</Angle>
- <ItemGuid>27E7BB74-81C3-4EF2-80AE-962F111C441F</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone1</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>8.5</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>7b7d9bea-29df-4f94-8ab6-2a6d7105bccf</ID>
- <Left>627</Left>
- <Top>6.07522123893807</Top>
- <Width>363</Width>
- <Height>157.76991150442467</Height>
- <Angle>0</Angle>
- <ItemGuid>A8DB1D27-6B25-4FB4-A3F5-46A29BA51955</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>2962</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>72d7192b-dd27-4064-9f5f-90062388a81c</ID>
- <Left>1003</Left>
- <Top>151.03982300884974</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>df38139e-0026-46bc-b72f-df5f9eec80f7</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>915f8dfc-5407-43ca-a0c7-d774867dfb5f</ID>
- <Left>1145</Left>
- <Top>153.64159292035396</Top>
- <Width>103</Width>
- <Height>113.4867256637167</Height>
- <Angle>0</Angle>
- <ItemGuid>B4EE8CC0-EE2B-4ABE-BF09-9226860E756B</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone2</HeaterType>
- <SetPoint>30</SetPoint>
- <CurrentValue>225.29</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>true</IsRampingUp>
- <IsInSetPoint>false</IsInSetPoint>
- </HeaterState>
- <SetPoint>30</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>64fba32f-3c03-42b3-b1ed-e2bdbe454bd6</ID>
- <Left>630</Left>
- <Top>535.00442477876129</Top>
- <Width>363</Width>
- <Height>157.76991150442467</Height>
- <Angle>0</Angle>
- <ItemGuid>246C2551-5EFD-48E9-94F6-6313C5E5018F</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>2962</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>5f451443-fab2-4bf6-8f21-5e038ca2c726</ID>
- <Left>1008</Left>
- <Top>707.327433628319</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>16D0DEF7-A2E0-4163-9F4B-FBEC2573BCC7</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>e5c1becb-1402-45fa-b252-60a03d4401cc</ID>
- <Left>1150</Left>
- <Top>716.00884955752235</Top>
- <Width>103</Width>
- <Height>113.4867256637167</Height>
- <Angle>0</Angle>
- <ItemGuid>D2B6CAA0-055E-4871-8D91-A5370F1ACB22</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone6</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>279.81</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>4f3b4ecd-759a-4ba5-80f3-74cc485d7085</ID>
- <Left>629</Left>
- <Top>387.066371681416</Top>
- <Width>363</Width>
- <Height>157.76991150442467</Height>
- <Angle>0</Angle>
- <ItemGuid>6C0C1AB0-3EE9-40D7-8424-A79436FBC804</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>2962</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>665593d6-e689-459e-94f9-2cdcce6150ac</ID>
- <Left>1004</Left>
- <Top>562.42920353982311</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>d28bfa3c-edce-4f19-a296-3da251fcc0e2</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>42b4b029-e8bc-4156-b6c1-bb64aae83f9e</ID>
- <Left>1149</Left>
- <Top>571.1106194690268</Top>
- <Width>103</Width>
- <Height>113.4867256637167</Height>
- <Angle>0</Angle>
- <ItemGuid>D6771DF4-771E-4D62-B6BA-BDE361C0A0F3</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone5</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>8.5</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>60dff2b2-7ddc-47a9-90b1-3f45968c1790</ID>
- <Left>630</Left>
- <Top>692.06194690265511</Top>
- <Width>363</Width>
- <Height>157.76991150442467</Height>
- <Angle>0</Angle>
- <ItemGuid>DACEBF90-E2B4-4CC9-A973-B8B429AA0089</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>2962</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>b53a74f3-8e91-40ce-b980-c5b237baeee9</ID>
- <Left>1002</Left>
- <Top>413.47787610619491</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>81a3ae80-f4ea-4857-bc4e-2055d3b5fbc7</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>8c438e59-d87c-46d2-8050-acc8a0c455d7</ID>
- <Left>1148</Left>
- <Top>434.31858407079636</Top>
- <Width>103</Width>
- <Height>113.4867256637167</Height>
- <Angle>0</Angle>
- <ItemGuid>94574D69-46E1-4144-A8B5-D4BF0DA96D18</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone4</HeaterType>
- <SetPoint>30</SetPoint>
- <CurrentValue>170.98999999999998</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>true</IsRampingUp>
- <IsInSetPoint>false</IsInSetPoint>
- </HeaterState>
- <SetPoint>30</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>f786b4da-3291-4ccb-a280-196fd8697ac1</ID>
- <Left>5.7499999999999858</Left>
- <Top>866.06435643564362</Top>
- <Width>350</Width>
- <Height>152.70353982300856</Height>
- <Angle>0</Angle>
- <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E448DD</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>2962</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>584c7f29-49cc-4845-a7ab-09239bd3a986</ID>
- <Left>377.875</Left>
- <Top>735.75944098834611</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>96A8AF31-B489-4FA2-BF99-C66D7DEC94C8</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>5c6da8d4-bd2e-44cc-8d99-a6b8bca7df3f</ID>
- <Left>524.20833333333337</Left>
- <Top>721.52681153071046</Top>
- <Width>103</Width>
- <Height>121.59292035398221</Height>
- <Angle>0</Angle>
- <ItemGuid>2D578A37-D808-40D0-ACE4-4A868EDD6BDC</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>DryerAirHeater</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>0</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>false</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>05eab3d7-3af6-4d3f-b3b3-468eeb77a503</ID>
- <Left>644.29166666666674</Left>
- <Top>874.00000000000011</Top>
- <Width>350</Width>
- <Height>152.70353982300856</Height>
- <Angle>0</Angle>
- <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E448CC</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>2962</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>c1f48bf1-9cb3-475a-b152-e8b9a211b694</ID>
- <Left>1010.1666666666667</Left>
- <Top>895.60597564181194</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>7FCA67CB-785B-49F7-B9F2-191E3ACC6CB7</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>c5fbeda2-230d-40e4-9d52-5b3236e0c561</ID>
- <Left>1161.708333333333</Left>
- <Top>885.907999649522</Top>
- <Width>103</Width>
- <Height>121.59292035398221</Height>
- <Angle>0</Angle>
- <ItemGuid>F8C1BA7F-F6DF-414D-BAF5-D4CB292F91F6</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>DryerAirHeater</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>0</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>false</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- <MachineTechViewProjectTab>
- <Name>waste</Name>
- <Items>
- <TechItem xsi:type="DigitalOutItem">
- <ID>bb9bf273-0a3d-4202-98ce-37a5f206ed75</ID>
- <Left>119</Left>
- <Top>68.898230088495609</Top>
- <Width>339</Width>
- <Height>184.4159292035398</Height>
- <Angle>0</Angle>
- <ItemGuid>7e1f53ec-8176-4efa-ac3d-c8f2436e60d1</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>59678a51-f995-4952-b250-e449f1fcbeac</ID>
- <Left>468</Left>
- <Top>80.336283185839477</Top>
- <Width>280</Width>
- <Height>166.17699115044252</Height>
- <Angle>0</Angle>
- <ItemGuid>78db28d0-0407-4942-bb62-c44da81c4f9e</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalInItem">
- <ID>8f9ff579-0e9d-4f48-8ed0-6fa563f2aba7</ID>
- <Left>873</Left>
- <Top>63.831858407079665</Top>
- <Width>174</Width>
- <Height>133.75221238938059</Height>
- <Angle>0</Angle>
- <ItemGuid>06bd7c0b-5aef-445a-86c0-853becf8594b</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalInItem">
- <ID>70d1bd1e-acdb-436a-b205-6eeb9d137120</ID>
- <Left>1070</Left>
- <Top>70.106194690265909</Top>
- <Width>221</Width>
- <Height>123.61946902654864</Height>
- <Angle>0</Angle>
- <ItemGuid>4048bf02-27dc-4049-9284-fe913a7e0ebe</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalInItem">
- <ID>dcc7ce16-5b89-4ff8-acd5-7fb0b9ebb6d1</ID>
- <Left>877</Left>
- <Top>248.24778761061947</Top>
- <Width>186</Width>
- <Height>126.65929203539827</Height>
- <Angle>0</Angle>
- <ItemGuid>00ea1771-efee-4f3e-a0d2-8b2a4214e9fd</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>2b99bbf7-94da-4bb2-acc9-91b35e543c5d</ID>
- <Left>897</Left>
- <Top>358.69469026548683</Top>
- <Width>147</Width>
- <Height>69.9159292035398</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>Waste lower presence</Text>
- </TechItem>
- <TechItem xsi:type="DigitalInItem">
- <ID>c150533c-abe4-4edf-b6ad-fa475b133142</ID>
- <Left>1112</Left>
- <Top>253.66814159291806</Top>
- <Width>186</Width>
- <Height>126.65929203539827</Height>
- <Angle>0</Angle>
- <ItemGuid>d2f266e3-779b-4dfe-b513-26ce61c529a4</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>d96f2a6d-0ccb-401e-8931-09086ca81fae</ID>
- <Left>1143</Left>
- <Top>366.78318584070507</Top>
- <Width>147</Width>
- <Height>69.9159292035398</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>Waste middle presence</Text>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>bb9847ba-9671-4613-bf23-a0c637ebc79d</ID>
- <Left>151</Left>
- <Top>271.55309734513281</Top>
- <Width>200</Width>
- <Height>63.836283185840671</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>pump</Text>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>d13a2df4-3f54-4c31-8f9a-ee7810fb6af5</ID>
- <Left>504</Left>
- <Top>283.71238938053096</Top>
- <Width>192</Width>
- <Height>67.88938053097354</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>valve</Text>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>fbe2670f-6d9b-4361-9332-1ceb1692c91a</ID>
- <Left>108</Left>
- <Top>484.61946902655154</Top>
- <Width>356</Width>
- <Height>208.10619469026472</Height>
- <Angle>0</Angle>
- <ItemGuid>78db28d0-0407-4942-bb62-c44da81c4f9e</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- <MachineTechViewProjectTab>
- <Name>disp</Name>
- <Items>
- <TechItem xsi:type="SingleGraphItem">
- <ID>f9531a72-3742-47a7-86bb-b589f8b3eb55</ID>
- <Left>123</Left>
- <Top>128.33628318584061</Top>
- <Width>390</Width>
- <Height>249.67699115047321</Height>
- <Angle>0</Angle>
- <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>3600</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>3</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>aae29286-81b3-476a-9f58-c0fd246cae96</ID>
- <Left>880</Left>
- <Top>158.81415929204155</Top>
- <Width>442</Width>
- <Height>241.88495575221771</Height>
- <Angle>0</Angle>
- <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>3600</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>3</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>7d94c7c4-1288-4f9d-b0e6-a06794829642</ID>
- <Left>1055</Left>
- <Top>14.181415929203524</Top>
- <Width>161</Width>
- <Height>111.46017699115049</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>Y</Text>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>c95f9ad1-b607-4606-8217-400bea76f3d6</ID>
- <Left>384</Left>
- <Top>23.991150442480944</Top>
- <Width>161</Width>
- <Height>111.46017699115049</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>C</Text>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>8f141fa5-fb24-4557-adcf-a6aa55a28fb4</ID>
- <Left>121</Left>
- <Top>-8.8495575221214722</Top>
- <Width>169</Width>
- <Height>132.73893805309734</Height>
- <Angle>0</Angle>
- <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>3</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>7eab018a-ef43-4bca-a6cf-857d69767bba</ID>
- <Left>839</Left>
- <Top>-4.7079646017762684</Top>
- <Width>169</Width>
- <Height>132.73893805309734</Height>
- <Angle>0</Angle>
- <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>3</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorRecorderItem">
- <ID>2a9e89d4-5d60-4a83-9527-cb77fdf35c14</ID>
- <Left>1276</Left>
- <Top>22.287610619469035</Top>
- <Width>187</Width>
- <Height>102.34070796460179</Height>
- <Angle>0</Angle>
- <ColorNumber>-1</ColorNumber>
- <SelectedMonitorsGuids>
- <string>1F0F907A-EC16-4386-AFC8-B2B156F2A822</string>
- <string>A499E5E0-A812-4032-8F96-B38C6762C4BD</string>
- <string>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</string>
- <string>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</string>
- <string>19645882-6587-4A50-BD85-AF06617DC654</string>
- <string>96B89605-F999-43FE-A1CD-2645BFB33A36</string>
- <string>84CF23C9-D20D-4C08-BE1D-80201FC43C06</string>
- <string>C0BCCD5C-346B-4C4A-A080-39D28E9E1A0C</string>
- <string>10102BC3-0EAE-47FF-A8E5-8640780CAA3D</string>
- <string>FC60060A-3736-4910-B41A-FF6DABDF0E9E</string>
- <string>5F12B974-2C9E-4DDD-9B20-733251A5D7E6</string>
- <string>D126DB23-784B-4F0C-8F88-D89A65A7549F</string>
- </SelectedMonitorsGuids>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>6d2e7962-b3ae-4682-b20e-9654f48dcffe</ID>
- <Left>587</Left>
- <Top>5.0619469026548813</Top>
- <Width>155</Width>
- <Height>131.72566371681415</Height>
- <Angle>0</Angle>
- <ItemGuid>2CC8E461-E91F-4D4C-A402-922477F06C87</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>500</Speed>
- <DisplayName>Dispenser 1</DisplayName>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>5ee2718f-f068-427b-a31e-d586c7d7682c</ID>
- <Left>131</Left>
- <Top>552.94690265486338</Top>
- <Width>390</Width>
- <Height>249.67699115047321</Height>
- <Angle>0</Angle>
- <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>3600</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>3</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>1c254a92-c075-453f-9667-cdcc91cf8e6a</ID>
- <Left>399</Left>
- <Top>455.67256637168265</Top>
- <Width>161</Width>
- <Height>111.46017699115049</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>K</Text>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>d1087b1a-c36b-4242-96f5-07c2bb602cc4</ID>
- <Left>145</Left>
- <Top>409.52212389380446</Top>
- <Width>169</Width>
- <Height>132.73893805309734</Height>
- <Angle>0</Angle>
- <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>3</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>53fe93a2-88a5-4d4d-9cd5-eb4d8a8fefae</ID>
- <Left>604</Left>
- <Top>561.16371681414739</Top>
- <Width>390</Width>
- <Height>249.67699115047321</Height>
- <Angle>0</Angle>
- <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>3600</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>3</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>0bef6e9d-6da0-4f06-9e1a-c00142bde4c1</ID>
- <Left>832</Left>
- <Top>440.91150442477635</Top>
- <Width>161</Width>
- <Height>111.46017699115049</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>M</Text>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>762c5a97-a3bc-45b4-aa9f-0b50afa9cb9b</ID>
- <Left>633</Left>
- <Top>434.0132743362783</Top>
- <Width>169</Width>
- <Height>132.73893805309734</Height>
- <Angle>0</Angle>
- <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>3</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>be584f80-3250-494c-87fc-250d6deae051</ID>
- <Left>1045</Left>
- <Top>559.4070796459921</Top>
- <Width>390</Width>
- <Height>249.67699115047321</Height>
- <Angle>0</Angle>
- <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>3600</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>3</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>39f6a02c-c4d9-47d0-b92d-bdea0ed5d3ce</ID>
- <Left>1056</Left>
- <Top>435.43805309733875</Top>
- <Width>169</Width>
- <Height>132.73893805309734</Height>
- <Angle>0</Angle>
- <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>3</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>5b924929-9b16-4598-94cc-b2f4bca26798</ID>
- <Left>1304</Left>
- <Top>448.0884955752224</Top>
- <Width>161</Width>
- <Height>111.46017699115049</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>TI</Text>
- </TechItem>
- <TechItem xsi:type="ValveItem">
- <ID>89ae1fa5-1ad1-469e-ae76-0a29c35805cd</ID>
- <Left>588</Left>
- <Top>317.1504424778762</Top>
- <Width>283</Width>
- <Height>74.982300884955748</Height>
- <Angle>0</Angle>
- <ItemGuid>E144A221-4859-4DC3-9A7E-4A2969FB0826</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="ValveItem">
- <ID>c218cf34-74c2-41bb-8c3b-3030abce451a</ID>
- <Left>1363</Left>
- <Top>384.02654867256643</Top>
- <Width>156</Width>
- <Height>94.234513274336337</Height>
- <Angle>0</Angle>
- <ItemGuid>E144A221-4859-4DC3-9A7E-4A2969FB0826</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="ValveItem">
- <ID>75af30c6-d7f8-4745-bfb5-d6dc5d50479a</ID>
- <Left>767</Left>
- <Top>362.74778761061958</Top>
- <Width>283</Width>
- <Height>74.982300884955748</Height>
- <Angle>0</Angle>
- <ItemGuid>E144A221-4859-4DC3-9A7E-4A2969FB0826</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>df1fd958-fd8a-4b00-98e1-679455494d60</ID>
- <Left>309</Left>
- <Top>13.168141592920392</Top>
- <Width>112</Width>
- <Height>107.40707964601768</Height>
- <Angle>0</Angle>
- <ItemGuid>3174ADCF-5793-4B5A-A3C6-B96E146A903D</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>f07225b3-1522-4cb6-9ba8-5b9697f05467</ID>
- <Left>1180</Left>
- <Top>60.7920353982301</Top>
- <Width>102</Width>
- <Height>88.1548672566372</Height>
- <Angle>0</Angle>
- <ItemGuid>E2F0FC31-CE7E-416B-ACEA-8EB6CA9B850B</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>45b87322-e1f5-42eb-88c6-71c2eeb2899a</ID>
- <Left>1258</Left>
- <Top>463.06194690265494</Top>
- <Width>88</Width>
- <Height>75.995575221239</Height>
- <Angle>0</Angle>
- <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C09F</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>0c1c25e8-3ce3-4994-bbb9-bd6b2367a413</ID>
- <Left>810</Left>
- <Top>462.04867256637175</Top>
- <Width>77</Width>
- <Height>80.048672566371636</Height>
- <Angle>0</Angle>
- <ItemGuid>AD50C358-5BAF-4A2F-8593-51A22C85B3D1</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>fa2f697e-b229-418a-bae6-78b92bf0458b</ID>
- <Left>336</Left>
- <Top>428.61061946902663</Top>
- <Width>95</Width>
- <Height>96.261061946902657</Height>
- <Angle>0</Angle>
- <ItemGuid>84682E90-6926-42AA-BF8C-2CCCF5C26C97</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- <MachineTechViewProjectTab>
- <Name>Priming</Name>
- <Items>
- <TechItem xsi:type="MonitorItem">
- <ID>ea45a516-9dac-4c9a-9261-0c44e22aa065</ID>
- <Left>808</Left>
- <Top>155.02654867256638</Top>
- <Width>219</Width>
- <Height>200.62831858407088</Height>
- <Angle>0</Angle>
- <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>3e2cb7dc-a5f3-4ba6-a520-2bae8ff0e4a8</ID>
- <Left>832</Left>
- <Top>451.91592920353986</Top>
- <Width>332</Width>
- <Height>326.27433628318596</Height>
- <Angle>0</Angle>
- <ItemGuid>C8D8FE90-0375-44A2-A6D1-E997789E065C</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 2</DisplayName>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>6f8dfd8d-ed50-4923-b908-e0b5bc5d6ae5</ID>
- <Left>154</Left>
- <Top>131.72123893805315</Top>
- <Width>474</Width>
- <Height>410.37610619469024</Height>
- <Angle>0</Angle>
- <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>1942</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>1</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="ValveItem">
- <ID>604e031b-89c3-4c9d-90ef-7b861a77e5e0</ID>
- <Left>243</Left>
- <Top>595.80088495575228</Top>
- <Width>497</Width>
- <Height>189.48230088495575</Height>
- <Angle>0</Angle>
- <ItemGuid>8B1FCBC3-FEEA-4F87-B56F-CE5D28B7ACA4</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>c414ae0e-323a-48c1-9165-2c05cc4234c6</ID>
- <Left>1291</Left>
- <Top>584.65486725663732</Top>
- <Width>200</Width>
- <Height>171.24336283185835</Height>
- <Angle>0</Angle>
- <ItemGuid>0bd10306-2944-4cda-bc59-0264da2883d2</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- </Tabs>
- <SelectedTabIndex>2</SelectedTabIndex>
-</MachineTechViewProject> \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/test_reg_readback.cs b/Software/Stubs Collection/stubs/test_reg_readback.cs
deleted file mode 100644
index d5ef91a3b..000000000
--- a/Software/Stubs Collection/stubs/test_reg_readback.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-
-var response = stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000000 + 0x3F0, 0xAAAA);
-
-var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000000 + 0x3F0);
-stubManager.WriteLineHex(response1.Value,4);
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/test_uart3_whs.cs b/Software/Stubs Collection/stubs/test_uart3_whs.cs
deleted file mode 100644
index b36179d8c..000000000
--- a/Software/Stubs Collection/stubs/test_uart3_whs.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-
- stubManager.Run<ProgressResponse>("ProgressRequest" ,0xb05, 0); //init
-
- Thread.Sleep(3000);
-
- for(int i=0;i<1;i++)
- {
- var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xb05, 1); // - Test_Reading_Shinko_Request_PV
- }
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/update thread PID during run.cs b/Software/Stubs Collection/stubs/update thread PID during run.cs
deleted file mode 100644
index b312440e5..000000000
--- a/Software/Stubs Collection/stubs/update thread PID during run.cs
+++ /dev/null
@@ -1,57 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Hardware;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-
-StubHeatingTestRequest stubHeatingTestRequest = new StubHeatingTestRequest();
-/*FEEDER*/
-HardwarePidControl hardwarePidControl = new HardwarePidControl();
-hardwarePidControl.HardwarePidControlType = Tango.PMR.Hardware.HardwarePidControlType.MotorFeeder;
-//hardwarePidControl.HardwarePidControlType = Tango.PMR.Hardware.HardwarePidControlType.MotorPooler;
-//hardwarePidControl.HardwarePidControlType = Tango.PMR.Hardware.HardwarePidControlType.MotorWinder;
-hardwarePidControl.IntegralTime = 0;
-hardwarePidControl.DerivativeTime = 0;
-hardwarePidControl.ProportionalGain = 0;
-hardwarePidControl.Epsilon = 0;
-// hardwarePidControl.ControlOutputType = 0; //Dt - can change to 20/25
-stubHeatingTestRequest.HardwarePidControl1 = hardwarePidControl;
-var response = stubManager.Run<StubHeatingTestResponse>(stubHeatingTestRequest);
-
-/*Puller*/
-/*
-//hardwarePidControl.HardwarePidControlType = Tango.PMR.Hardware.HardwarePidControlType.MotorFeeder;
-hardwarePidControl.HardwarePidControlType = Tango.PMR.Hardware.HardwarePidControlType.MotorPooler;
-//hardwarePidControl.HardwarePidControlType = Tango.PMR.Hardware.HardwarePidControlType.MotorWinder;
-hardwarePidControl.IntegralTime = 0;
-hardwarePidControl.DerivativeTime = 0;
-hardwarePidControl.ProportionalGain = 0;
-hardwarePidControl.Epsilon = 0;
-// hardwarePidControl.ControlOutputType = 0; //Dt - can change to 20/25
-stubHeatingTestRequest.HardwarePidControl1 = hardwarePidControl;
-response = stubManager.Run<StubHeatingTestResponse>(stubHeatingTestRequest);
-*/
-/*WINDER*/
-/*
-//hardwarePidControl.HardwarePidControlType = Tango.PMR.Hardware.HardwarePidControlType.MotorFeeder;
-//hardwarePidControl.HardwarePidControlType = Tango.PMR.Hardware.HardwarePidControlType.MotorPooler;
-hardwarePidControl.HardwarePidControlType = Tango.PMR.Hardware.HardwarePidControlType.MotorWinder;
-hardwarePidControl.IntegralTime = 0;
-hardwarePidControl.DerivativeTime = 0;
-hardwarePidControl.ProportionalGain = 0;
-hardwarePidControl.Epsilon = 0;
-// hardwarePidControl.ControlOutputType = 0; //Dt - can change to 20/25
-stubHeatingTestRequest.HardwarePidControl1 = hardwarePidControl;
-response = stubManager.Run<StubHeatingTestResponse>(stubHeatingTestRequest);
-*/
-} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/whs control loop disable.cs b/Software/Stubs Collection/stubs/whs control loop disable.cs
deleted file mode 100644
index 01bd67d0a..000000000
--- a/Software/Stubs Collection/stubs/whs control loop disable.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-using System;
-using System.Text;
-using System.Linq;
-using System.Drawing;
-using System.Diagnostics;
-using System.Windows.Forms;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Generic;
-using Tango.PMR.Stubs;
-using Tango.Stubs;
-
-public void OnExecute(StubManager stubManager)
-{
-//Loading Arm Calibration - this command writes the arm position to a non-volatile memory
-
-int ControlLoopEnable = 0x1000;
-int ControlLoopDisable = 0x0000;
-
-ProgressRequest progressRequest = new ProgressRequest();
-progressRequest.Amount = 0x3e8;
-progressRequest.Delay = ControlLoopDisable+2700;
-
- var response = stubManager.Run<ProgressResponse>(progressRequest);
-
-} \ No newline at end of file