diff options
| author | Mirta <mirta@twine-s.com> | 2020-12-30 16:39:52 +0200 |
|---|---|---|
| committer | Mirta <mirta@twine-s.com> | 2020-12-30 16:39:52 +0200 |
| commit | 00a491d93733d4625ad329b2ba8237f445364b3f (patch) | |
| tree | 4b24c6fa78d7648f4bb7cefafa464bb0b063fec4 /Software/Stubs Collection/stubs/Scripts/Assemblies | |
| parent | 124ad4150f80c6846fdee41dbbda9848c105f6e5 (diff) | |
| download | Tango-00a491d9.tar.gz Tango-00a491d9.zip | |
merge
Diffstat (limited to 'Software/Stubs Collection/stubs/Scripts/Assemblies')
120 files changed, 320 insertions, 48153 deletions
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/ArcHead/Write Arc head eeprom.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/ArcHead/Write Arc head eeprom.cs deleted file mode 100644 index 8d0056de2..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/ArcHead/Write Arc head eeprom.cs +++ /dev/null @@ -1,146 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -//---------------------- -const Int32 I2C_ID = 3; //MCU_I2C3 -const Int32 TCA9548A_address = 0xE2; -const Int32 I2C_Slave_Add = 0xA0; // //eeprom address - 32kByte -int Head_Mux_Channel_ID = 4; //Head MUX channel -//---------------------- - -const Int32 SerialNum = 0x01; - - -int enable_channel(int Channel_ID) -{ - uint Const_temp = 0x01; - - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = TCA9548A_address; - - Const_temp = Const_temp << Channel_ID; - stubI2CWriteBytesRequest.BytesTWrite.Add(Const_temp); - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; -} - - -int WriteFlatEpprom(uint I2C_Slave_Add) -{ - uint Page=0; - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write - //-------------------------------------------------------------- - - stubI2CWriteBytesRequest.BytesTWrite.Add(0x33); //header - stubI2CWriteBytesRequest.BytesTWrite.Add(0xcc); - stubI2CWriteBytesRequest.BytesTWrite.Add(0xaa); - stubI2CWriteBytesRequest.BytesTWrite.Add(0x55); - - //stubI2CWriteBytesRequest.BytesTWrite.Add(0x04);//HEAD_TYPE_STAPLE_SPUN - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - Thread.Sleep(100); - - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(92);//Byte 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write - //-------------------------------------------------------------- - - stubI2CWriteBytesRequest.BytesTWrite.Add(0x20); //flat - stubI2CWriteBytesRequest.BytesTWrite.Add(0x00); - stubI2CWriteBytesRequest.BytesTWrite.Add(0x00); - stubI2CWriteBytesRequest.BytesTWrite.Add(0x00); - - //stubI2CWriteBytesRequest.BytesTWrite.Add(0x04);//HEAD_TYPE_STAPLE_SPUN - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - Thread.Sleep(100); - - - - - - return 1; -} - -int adc_set_for_read_ch(uint I2C_Slave_Add, uint Page) -{ - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; -} - -int adc_read_ch(uint I2C_Slave_Add) -{ - StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest(); - stubI2CReadBytesRequest.I2CId = I2C_ID; - stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add + 1; - stubI2CReadBytesRequest.NumberOfBytesToRead = 10; // Number of bytes to read - - var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest); - uint temph=0; - - for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++) - { - temph=response1.ReadBytes[i]; - stubManager.WriteHex(temph,2); - } - - return 1; -} - - -public void OnExecute(StubManager stubManager) -{ - - //enable_all_channel(); - enable_channel(Head_Mux_Channel_ID); // Chanel 0-7 => Disp0enser 0-7 - - for (int i = 0; i<1; i++) - { - - WriteFlatEpprom(I2C_Slave_Add); - Thread.Sleep(10); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet ) - - stubManager.Write("\nPage 0x00 #"); - stubManager.Write(i); - stubManager.Write("\t- The Buffer is: "); - adc_set_for_read_ch(I2C_Slave_Add, 0x00); - //Thread.Sleep(1); //Sleep for 10 milli. - adc_read_ch(I2C_Slave_Add); - - Thread.Sleep(1000); - - } -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/ArcHead/clean_motor_ls.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/ArcHead/clean_motor_ls.cs deleted file mode 100644 index 2a0fc12cf..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/ArcHead/clean_motor_ls.cs +++ /dev/null @@ -1,278 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - - -const Int32 LS_FRONT=0X460110; -const Int32 LS_REAR=0X460120; -const Int32 LS_UPPER=0X460140; -const Int32 LS_SPARE=0X460180; - -const Int32 DyeingHeadLid_Motor = 2; - -const Int32 F1_MOTO_DH_LID_A1_TX_00 = 0x600002F0 ; -const Int32 F1_MOTO_DH_LID_A1_TX_01 = 0x600002F2 ; -const Int32 F1_MOTO_DH_LID_A1_RX_00 = 0x600002F4 ; -const Int32 F1_MOTO_DH_LID_A1_RX_01 = 0x600002F6 ; - -//---------------------Start Command ---------------- -const Int32 CMD_RUN = 0; //Run on Pulse Per Secound .positive run Up and negative run Down -const Int32 CMD_STOP= 1; //0;Hard stop(Defualt);1-Soft stop;2-Hard Hiz;3-Soft Hiz -const Int32 CMD_HOME= 2; //Run until home .positive run Up and negative run Down -const Int32 CMD_DLY = 3; //delay in Seconds . -const Int32 CMD_MOVE= 4; //Move step. positive move Up and negative move Down -const Int32 CMD_MAX_SPEED = 5; //set Maximum speed.motor will stop before that command - -const Int32 CMD_LOOP_NM=6; //NUMBER OF counter -const Int32 CMD_LOOP= 7; //jump up(+) or down(-) command u -const Int32 CMD_END = 13; //end loop . - - -const Int32 x_STEP_MODE = 0x16; -const Int32 x_STATUS = 0x19; -const Int32 x_GET_PARAM = 0x20; -const Int32 x_POWERSTEP01_STATUS = 0x1B; - - -//-------------------------------------------- Flow Test Double PBU ------------------------------------------------ - -Int32[] Start_Table = new int [] -{ - CMD_RUN,-40, - CMD_DLY,200, - CMD_STOP,0, - CMD_DLY,10, - CMD_HOME,40, - CMD_END,3, -}; - -//////////////////////////////////// - -public void OnExecute(StubManager stubManager) -{ -Int32 COMMAND=0; -Int32 Data=0; -Int32 Index=0; -Int32 speed=0; -Int32 Loop_cnt=1; -Int32 j=0; - - - - var stopwatch = new Stopwatch(); - stopwatch.Start(); - - long elapsed_time = stopwatch.ElapsedMilliseconds; - stubManager.WriteLine(elapsed_time); - - while (j!=-1) - { - { - COMMAND=Start_Table[j]; - Data=Start_Table[j+1]; - - switch (COMMAND) - { - case CMD_RUN: - stubManager.WriteLine("CMD_RUN"); - Motor_Run(Data); - break; - - case CMD_STOP: - stubManager.WriteLine("CMD_stop"); - Motor_Stop(Data); - break; - - case CMD_DLY: - stubManager.WriteLine("CMD_delay"); - - for (;Data>0;Data--) - { - Thread.Sleep(100); //100msec delay - stubManager.WriteLine("CMD_delay " + Data ); - } - break; - - - case CMD_MOVE: - stubManager.WriteLine("CMD_move"); - - Motor_Move(Data); - break; - - case CMD_END: - stubManager.WriteLine("CMD_end"); - - j=-3; - break; - - case CMD_MAX_SPEED: - stubManager.WriteLine("CMD_MAX_SPEED"); - - Motor_Max_speed(Data); - break; - - case CMD_HOME: - stubManager.WriteLine("CMD_home"); - - Move_Home(Data); - break; - - - case CMD_LOOP_NM: - stubManager.WriteLine("LOOP_NM" + Data ); - - Loop_cnt=Data-1; - break; - - case CMD_LOOP: - stubManager.WriteLine("CMD_loop"); - - if (Loop_cnt!=0) - { - j = j+2*Data; - Loop_cnt-- ; - } - break; - - default: - break; - - } - - j = j + 2; - - - } - - } - -} -Int32 Motor_Max_speed(Int32 speed) -{ - UInt32 i=Convert.ToUInt32((speed *4/61)*256*256 ) ; - stubManager.WriteHex(i,8); - - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor,0); //hold motor - - - Motor_SetParam(F1_MOTO_DH_LID_A1_TX_01,F1_MOTO_DH_LID_A1_TX_00,0x07,i); //set max speed - - return 1; -} - - -int Motor_SetParam(Int32 HighAdr, Int32 LowAdr, Int32 ParaAddr, uint ParaData1) -{ - - Int32 Temp = 0; - Temp = (ParaAddr << 8 ) + ( (Int32) ParaData1 >> 24); - - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,HighAdr, (Temp & 0xffff)); - Temp = ((Int32)ParaData1 >> 8) & 0xffff; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,LowAdr, (Temp)); - - return 1; -} - -Int32 Move_Home(Int32 speed) -{ - Int32 Bit = 1; - if (speed <0 ) - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DyeingHeadLid_Motor, false, (-speed) ); - else - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DyeingHeadLid_Motor, true, speed); - int i=0; - while ((Bit != 0x0)&& (i<20000) ) //wait until Limit Switch or timeout 200*50msec=10sec - { - Bit=read_pio (LS_FRONT); // read LS_FRONT - Thread.Sleep(20); - i++; - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor,0); //hold motor - return 0; -} - -Int32 read_pio(Int32 i2c_input) -{ - Int32 temp=0; - var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,i2c_input); // read break - - temp = (Int32) (response.Progress); - stubManager.WriteHex(temp, 4); - stubManager.WriteLine(" "); - temp =temp & (i2c_input& 0xff); //if break ok - - return temp; -} - - - -////////////////////////////////////////////////////////////// -Int32 Motor_Move (Int32 position) - - { - Int32 x=16; - var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,DyeingHeadLid_Motor, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0); - - response.RecivedData=response.RecivedData & 0x0007; - if (response.RecivedData == 0) - x=1; - if (response.RecivedData == 1) - x=2; - if (response.RecivedData == 2) - x=4; - if (response.RecivedData == 3) - x=8; - - - int i=0; - if (position<0 ) - stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,DyeingHeadLid_Motor, false, (-position * x) ); - else - stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,DyeingHeadLid_Motor, true, position * x); - - Thread.Sleep(100); //100msec delay - - while (i==0) - { - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,DyeingHeadLid_Motor, (x_GET_PARAM | x_POWERSTEP01_STATUS)<<16, 0, 0); - - stubManager.WriteHex(response.RecivedData,4); - response.RecivedData=response.RecivedData & 0x0002; - if (response.RecivedData==0x0002) - i=1; - Thread.Sleep(100); //100msec delay - - - } - return 0; - } - -////////////////////////////////////////////////////////////// -Int32 Motor_Run (Int32 speed) - - { - if (speed<0 ) - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DyeingHeadLid_Motor, false, (-speed) ); - else - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DyeingHeadLid_Motor, true, speed); - return 0; - } - -//--------------------------------------- - - Int32 Motor_Stop(Int32 Stop_Value ) -{ - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor, Stop_Value); - return 1; -} - diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser ByPass - getout from loewer safety.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser ByPass - getout from loewer safety.cs deleted file mode 100644 index 34dce79fe..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser ByPass - getout from loewer safety.cs +++ /dev/null @@ -1,46 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - UInt32 Dispenser_ID = 3; //Software Dispensers 0..7, BP Dispensers 1..8 (4 for bp disp 5) - - stubManager.Write("ByPass + TestRelay + read inputs "); - stubManager.WriteLine(""); - var response = stubManager.Run<StubDispenserResponse>("StubDispenserRequest" ,Dispenser_ID, true, false, 0, 0);//ByPass + read inputs - stubManager.Write("MSB for Disp_UP, LSB for Disp_Down "); - stubManager.WriteHex((response.DispenserPosition),4); - stubManager.WriteLine(""); - stubManager.Write("MSB for Realy_On, LSB for Over_Press "); - stubManager.WriteHex((response.InkWorningLevel),4); - stubManager.WriteLine(""); - stubManager.WriteLine("----"); - stubManager.WriteLine(""); - - stubManager.Run("StubMotorRunRequest" ,(Dispenser_ID + 6), true, 1200 );//Dispenser ID -> motor ID - - Thread.Sleep(30000); //Sleep - stubManager.Run("StubMotorStopRequest" ,15, 3); - - stubManager.Write("Remove ByPass ( + read inputs) "); - stubManager.WriteLine(""); - response = stubManager.Run<StubDispenserResponse>("StubDispenserRequest" ,Dispenser_ID, false, false, 0, 0);// read inputs - stubManager.Write("MSB for Disp_UP, LSB for Disp_Down "); - stubManager.WriteHex((response.DispenserPosition),4); - stubManager.WriteLine(""); - stubManager.Write("MSB for Realy_On, LSB for Over_Press "); - stubManager.WriteHex((response.InkWorningLevel),4); - stubManager.WriteLine(""); - stubManager.WriteLine("----"); - stubManager.WriteLine(""); - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser ByPass - getout from upper safety.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser ByPass - getout from upper safety.cs deleted file mode 100644 index 1887d433c..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser ByPass - getout from upper safety.cs +++ /dev/null @@ -1,46 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - UInt32 Dispenser_ID = 1; //Software Dispensers 0..7, BP Dispensers 1..8 (4 for bp disp 5) - - stubManager.Write("ByPass + TestRelay + read inputs "); - stubManager.WriteLine(""); - var response = stubManager.Run<StubDispenserResponse>("StubDispenserRequest" ,Dispenser_ID, true, false, 0, 0);//ByPass + read inputs - stubManager.Write("MSB for Disp_UP, LSB for Disp_Down "); - stubManager.WriteHex((response.DispenserPosition),4); - stubManager.WriteLine(""); - stubManager.Write("MSB for Realy_On, LSB for Over_Press "); - stubManager.WriteHex((response.InkWorningLevel),4); - stubManager.WriteLine(""); - stubManager.WriteLine("----"); - stubManager.WriteLine(""); - - stubManager.Run("StubMotorRunRequest" ,(Dispenser_ID + 6), false, 1200 );//Dispenser ID -> motor ID - - Thread.Sleep(30000); //Sleep - stubManager.Run("StubMotorStopRequest" ,15, 3); - - stubManager.Write("Remove ByPass ( + read inputs) "); - stubManager.WriteLine(""); - response = stubManager.Run<StubDispenserResponse>("StubDispenserRequest" ,Dispenser_ID, false, false, 0, 0);// read inputs - stubManager.Write("MSB for Disp_UP, LSB for Disp_Down "); - stubManager.WriteHex((response.DispenserPosition),4); - stubManager.WriteLine(""); - stubManager.Write("MSB for Realy_On, LSB for Over_Press "); - stubManager.WriteHex((response.InkWorningLevel),4); - stubManager.WriteLine(""); - stubManager.WriteLine("----"); - stubManager.WriteLine(""); - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser_LimitSwitch.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser_LimitSwitch.cs index 7eb048556..90ad540f9 100644 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser_LimitSwitch.cs +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser_LimitSwitch.cs @@ -37,8 +37,6 @@ int LimitSW_Dispenser(Int32 Fpga, Int32 Adr, int DispenserNo) counter = counter + 1; } Thread.Sleep(100); - Temp = RetVal.Value; - } diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser_PressureSensor.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser_PressureSensor.cs index 342d2fdb2..11a419576 100644 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser_PressureSensor.cs +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dispenser/Dispenser_PressureSensor.cs @@ -27,7 +27,7 @@ public void OnExecute(StubManager stubManager) for (int i=2; i<10; i++) { - Thread.Sleep(100); + Thread.Sleep(1000); var response = stubManager.Run<StubIntADCReadResponse>("StubIntADCReadRequest" ,i); stubManager.Write("\nADC VALUE, DISPENSER "); stubManager.Write(i-1); stubManager.Write("\t"); stubManager.WriteHex(response.SamplingInBits, 4); stubManager.Write("\t"); stubManager.Write(response.VoltageSamplingMv); stubManager.Write(" mV"); } diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Blowe_RMO_LOG.CSV b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Blowe_RMO_LOG.CSV deleted file mode 100644 index c91b21308..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Blowe_RMO_LOG.CSV +++ /dev/null @@ -1,4 +0,0 @@ -,RPM -0,2675 -1,2688 -2,2688 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test.cs deleted file mode 100644 index c88a17313..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test.cs +++ /dev/null @@ -1,204 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -Int32 position_32bit=0; -Int32 last_14bit_position; - -const Int32 HomeStart=1024; -const Int32 DrierLoadingArm_Motor = 5; -const Int32 NM_ROUND =30; -public void OnExecute(StubManager stubManager) -{ - Test_Load_Arm(); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3); - - -} - -bool Encoder_Dryer_Exist() -{ - Int32 temp; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190); - var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192); - - temp = Convert.ToInt32 (response.Value & 0x0300); - if (temp==0) - return true; - else - return false; -} - - - -void ReadEncoder_Dryer() -{ - Int32 temp; - Int32 temp1; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190); - var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192); - - temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff)); - if (temp>last_14bit_position) - { - temp1=temp-last_14bit_position; - position_32bit=position_32bit+temp1; - if (temp1>0x2000) - position_32bit=position_32bit-0x4000; - } - else if (temp<last_14bit_position) - - { - temp1=last_14bit_position-temp; - position_32bit=position_32bit-temp1; - if (temp1>0x2000) - position_32bit=position_32bit+0x4000; - } - - last_14bit_position=temp; - - return ; -} - -int Test_Load_Arm() -{ - int Loop_Nm = 1; - - Int32 temp3=0; - Int32 j=0; - Int32 i=0; - - if (!Encoder_Dryer_Exist()) - { - - stubManager.Write("Encoder of Dryer Fail \n"); - return 0; - - } - - var response = stubManager.ShowResponseWindow("Enter Loop Number for Dryer.", ""); - //stubManager.WriteLine(response); - Loop_Nm = int.Parse(response); - - ReadEncoder_Dryer(); - position_32bit=0; - ReadEncoder_Dryer(); - Int32 temp=position_32bit; - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, false, 100);//40 - Thread.Sleep(50); -// temp=ReadEncoder_Dryer(); - while ((temp3<2)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min - { - i++; - Thread.Sleep(50); - ReadEncoder_Dryer(); -// stubManager.Write("position_32bit " + position_32bit +"\t"); - - if (Math.Abs(position_32bit)> (50*0x4000)) - temp3=3; - if ((position_32bit-temp)>20) - temp3++; -// stubManager.Write("Temp " + temp +"\n"); - temp=position_32bit; -// stubManager.Write("Temp3 " + temp3 +"\n"); - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3); - - DialogResult result1 = MessageBox.Show("Arm Motor rotate ?", "Warning",MessageBoxButtons.YesNo); - if(result1 == DialogResult.No) - { - - stubManager.Write("Arm Motor Not rotate\n"); - return 0; - } - - DialogResult result2 = MessageBox.Show("Did Arm Motor arrive to mechanical stopper?", "Warning",MessageBoxButtons.YesNo); - if(result2 == DialogResult.No) - { - - stubManager.Write("Arm Motor Not arrive to mecahnicl stopper \n"); - return 0; - } - position_32bit=0; - -for (int loop=0;i<Loop_Nm;i++) - - { - stubManager.Write("Loop Nm " + (loop+1) +" strat up posision \n"); - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, true, 200); -// Thread.Sleep(50); - i=0; - temp3=0; - - - while ((temp3<3)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min - { - Thread.Sleep(50); - i++; - ReadEncoder_Dryer(); - - if (Math.Abs(position_32bit)> (NM_ROUND*0x4000)) - temp3=3; - if ((temp-position_32bit)>20) - temp3++; - temp=position_32bit; - - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3); - - DialogResult result5 = MessageBox.Show("Did Arm Motor make 30 rounds? See picture on document", "Warning",MessageBoxButtons.YesNo); - if(temp3 >2 ) - { - stubManager.Write("Arm Motor not make 30 rounds\n"); - return 0; - } - - Thread.Sleep(50); - stubManager.Write("Loop Nm " + (loop+1) +" strat down posision \n"); - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, false, 200); - i=0; - temp3=0; - - while ((temp3<3)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min - { - Thread.Sleep(50); - i++; - ReadEncoder_Dryer(); - - if (Math.Abs(position_32bit)< HomeStart) - temp3=3; - if ((position_32bit-temp)>20) - temp3++; - temp=position_32bit; - - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3); - - DialogResult result3 = MessageBox.Show("Did Arm Motor make 30 rounds? See picture on document", "Warning",MessageBoxButtons.YesNo); - if(temp3 >2 ) - { - stubManager.Write("Arm Motor not make 30 rounds\n"); - return 0; - } - Thread.Sleep(50); - - - - - } - return 0; -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test1.cs deleted file mode 100644 index c4c3f13f4..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test1.cs +++ /dev/null @@ -1,217 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -Int32 position_32bit=0; -Int32 last_14bit_position; - -const Int32 HomeStart=2048; -const Int32 DrierLoadingArm_Motor = 5; -const Int32 NM_ROUND =30; -public void OnExecute(StubManager stubManager) -{ - Test_Load_Arm(); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3); - - -} - -bool Encoder_Dryer_Exist() -{ - Int32 temp; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190); - var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192); - - temp = Convert.ToInt32 (response.Value & 0x0300); - if (temp==0) - return true; - else - return false; -} - - - -void ReadEncoder_Dryer() -{ - Int32 temp; - Int32 temp1; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190); - var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192); - - temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff)); - if (temp>last_14bit_position) - { - temp1=temp-last_14bit_position; - position_32bit=position_32bit+temp1; - if (temp1>0x2000) - position_32bit=position_32bit-0x4000; - } - else if (temp<last_14bit_position) - - { - temp1=last_14bit_position-temp; - position_32bit=position_32bit-temp1; - if (temp1>0x2000) - position_32bit=position_32bit+0x4000; - } - - last_14bit_position=temp; - - return ; -} - -int Test_Load_Arm() -{ - int Loop_Nm = 1; - - Int32 temp3=0; - Int32 j=0; - Int32 i=0; - - if (!Encoder_Dryer_Exist()) - { - - stubManager.Write("Encoder of Dryer Fail \n"); - return 0; - - } - - var response = stubManager.ShowResponseWindow("Enter Loop Number for Dryer.", ""); - //stubManager.WriteLine(response); - Loop_Nm = int.Parse(response); - - ReadEncoder_Dryer(); - position_32bit=0; - ReadEncoder_Dryer(); - Int32 temp=position_32bit; - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, false, 100);//40 - Thread.Sleep(50); -// temp=ReadEncoder_Dryer(); - while ((temp3<2)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min - { - i++; - Thread.Sleep(30); - ReadEncoder_Dryer(); -// stubManager.Write("position_32bit " + position_32bit +"\t"); - - if (Math.Abs(position_32bit)> (50*0x4000)) - temp3=3; - if ((position_32bit-temp)>20) - temp3++; -// stubManager.Write("Temp " + temp +"\n"); - temp=position_32bit; -// stubManager.Write("Temp3 " + temp3 +"\n"); - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3); - - DialogResult result1 = MessageBox.Show("Arm Motor rotate ?", "Warning",MessageBoxButtons.YesNo); - if(result1 == DialogResult.No) - { - - stubManager.Write("Arm Motor Not rotate\n"); - return 0; - } - - DialogResult result2 = MessageBox.Show("Did Arm Motor arrive to mechanical stopper?", "Warning",MessageBoxButtons.YesNo); - if(result2 == DialogResult.No) - { - - stubManager.Write("Arm Motor Not arrive to mecahnicl stopper \n"); - return 0; - } - - Thread.Sleep(1000); - - ReadEncoder_Dryer(); - position_32bit=0; - ReadEncoder_Dryer(); - position_32bit=0; -for (int loop=0;loop<Loop_Nm;loop++) - - { - stubManager.Write("Loop Nm " + (loop+1) +" strat up posision \n"); - temp=position_32bit; - stubManager.Write("position_32bit = " + position_32bit +"\n"); - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, true, 200); -// Thread.Sleep(50); - i=0; - temp3=-2; - - - while ((temp3<2)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min - { - Thread.Sleep(30); - i++; - ReadEncoder_Dryer(); - - if (Math.Abs(position_32bit)> (NM_ROUND*0x4000)) - temp3=3; - if ((temp-position_32bit)>20) - temp3++; - temp=position_32bit; - -// stubManager.Write("position_32bit = " +position_32bit +"\ttemp3 = " + temp3 +"\n"); - - - - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 0); - - if(temp3 !=3 ) - { - stubManager.Write("Arm Motor not make 30 rounds\n"); - return 0; - } - - Thread.Sleep(1000); - stubManager.Write("Loop Nm " + (loop+1) +" strat down posision \n"); - stubManager.Write("position_32bit = " + position_32bit +"\n"); - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, false, 200); - i=0; - temp3=-2; - temp=position_32bit; - - while ((temp3<2)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min - { - Thread.Sleep(50); - i++; - ReadEncoder_Dryer(); - - if (Math.Abs(position_32bit)< HomeStart) - temp3=3; - if ((position_32bit-temp)>20) - temp3++; - temp=position_32bit; -// stubManager.Write("position_32bit = " +position_32bit +"\ttemp3 = " + temp3 +"\n"); - - - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 0); - - if(temp3 !=3 ) - { - stubManager.Write("Arm Motor not make 30 rounds\n"); - return 0; - } - Thread.Sleep(1000); - - - - - } - return 0; -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test2.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test2.cs deleted file mode 100644 index 7670a8708..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test2.cs +++ /dev/null @@ -1,227 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -Int32 position_32bit=0; -Int32 last_14bit_position; - -const Int32 HomeStart=2048; -const Int32 DrierLoadingArm_Motor = 5; -const Int32 NM_ROUND =30; -public void OnExecute(StubManager stubManager) -{ - Test_Load_Arm(); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3); - - -} - -bool Encoder_Dryer_Exist() -{ - Int32 temp; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190); - var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192); - - temp = Convert.ToInt32 (response.Value & 0x0300); - if (temp==0) - return true; - else - return false; -} - - - -void ReadEncoder_Dryer() -{ - Int32 temp; - Int32 temp1; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190); - var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192); - - temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff)); - if (temp>last_14bit_position) - { - temp1=temp-last_14bit_position; - position_32bit=position_32bit+temp1; - if (temp1>0x2000) - position_32bit=position_32bit-0x4000; - } - else if (temp<last_14bit_position) - - { - temp1=last_14bit_position-temp; - position_32bit=position_32bit-temp1; - if (temp1>0x2000) - position_32bit=position_32bit+0x4000; - } - - last_14bit_position=temp; - - return ; -} - -int Test_Load_Arm() -{ - int Loop_Nm = 1; - - Int32 temp3=0; - Int32 j=0; - Int32 i=0; - - if (!Encoder_Dryer_Exist()) - { - - stubManager.Write("Encoder of Dryer Fail \n"); - return 0; - - } - - var response = stubManager.ShowResponseWindow("Enter Loop Number for Dryer.", ""); - //stubManager.WriteLine(response); - Loop_Nm = int.Parse(response); - - ReadEncoder_Dryer(); - position_32bit=0; - ReadEncoder_Dryer(); - Int32 temp=position_32bit; - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, false, 100);//40 - Thread.Sleep(50); -// temp=ReadEncoder_Dryer(); - while ((temp3<2)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min - { - i++; - Thread.Sleep(30); - ReadEncoder_Dryer(); -// stubManager.Write("position_32bit " + position_32bit +"\t"); - - if (Math.Abs(position_32bit)> (50*0x4000)) - temp3=3; - if ((position_32bit-temp)>20) - temp3++; -// stubManager.Write("Temp " + temp +"\n"); - temp=position_32bit; -// stubManager.Write("Temp3 " + temp3 +"\n"); - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3); - - DialogResult result1 = MessageBox.Show("Arm Motor rotate ?", "Warning",MessageBoxButtons.YesNo); - if(result1 == DialogResult.No) - { - - stubManager.Write("Arm Motor Not rotate\n"); - return 0; - } - - DialogResult result2 = MessageBox.Show("Did Arm Motor arrive to mechanical stopper?", "Warning",MessageBoxButtons.YesNo); - if(result2 == DialogResult.No) - { - - stubManager.Write("Arm Motor Not arrive to mecahnicl stopper \n"); - return 0; - } - - Thread.Sleep(1000); - stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,5, true, 50); - Thread.Sleep(1000); - - ReadEncoder_Dryer(); - position_32bit=0; - ReadEncoder_Dryer(); - position_32bit=0; -for (int loop=0;loop<Loop_Nm;loop++) - - { - stubManager.Write("Loop Nm " + (loop+1) +" strat up posision \n"); - temp=position_32bit; - stubManager.Write("position_32bit = " + position_32bit +"\n"); - -// stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, true, 200); - stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,5, true, 7680 * NM_ROUND); - -// Thread.Sleep(50); - i=0; - temp3=-2; - - - while ((temp3<2)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min - { - Thread.Sleep(30); - i++; - ReadEncoder_Dryer(); - -// if (Math.Abs(position_32bit)> (NM_ROUND*0x4000)) -// temp3=3; - if (temp==position_32bit) - temp3++; - temp=position_32bit; - -// stubManager.Write("position_32bit = " +position_32bit +"\ttemp3 = " + temp3 +"\n"); - - - - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3); - - if (Math.Abs(position_32bit - NM_ROUND*0x4000 )> 500) - - { - stubManager.Write("Arm Motor not make 30 rounds\n"); - return 0; - } - - - Thread.Sleep(1000); - stubManager.Write("Loop Nm " + (loop+1) +" strat down posision \n"); - stubManager.Write("position_32bit = " + position_32bit +"\n"); - -// stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, false, 200); - stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,5, false, 7680 * NM_ROUND); - i=0; - temp3=-2; - temp=position_32bit; - - while ((temp3<2)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min - { - Thread.Sleep(50); - i++; - ReadEncoder_Dryer(); - - // if (Math.Abs(position_32bit)< HomeStart) - // temp3=3; - if (position_32bit==temp) - temp3++; - temp=position_32bit; -// stubManager.Write("position_32bit = " +position_32bit +"\ttemp3 = " + temp3 +"\n"); - - - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3); - - - if (Math.Abs(position_32bit )> 500) - - { - stubManager.Write("Arm Motor not make 30 rounds\n"); - return 0; - } - - Thread.Sleep(1000); - - - - - } - return 0; -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test3.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test3.cs deleted file mode 100644 index 7a7542ab7..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test3.cs +++ /dev/null @@ -1,229 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -Int32 position_32bit=0; -Int32 last_14bit_position; - -const Int32 HomeStart=2048; -const Int32 DrierLoadingArm_Motor = 5; -const Int32 NM_ROUND =30; -public void OnExecute(StubManager stubManager) -{ - Test_Load_Arm(); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 1); - - -} - -bool Encoder_Dryer_Exist() -{ - Int32 temp; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190); - var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192); - - temp = Convert.ToInt32 (response.Value & 0x0300); - if (temp==0) - return true; - else - return false; -} - - - -void ReadEncoder_Dryer() -{ - Int32 temp; - Int32 temp1; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190); - var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192); - - temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff)); - if (temp>last_14bit_position) - { - temp1=temp-last_14bit_position; - position_32bit=position_32bit+temp1; - if (temp1>0x2000) - position_32bit=position_32bit-0x4000; - } - else if (temp<last_14bit_position) - - { - temp1=last_14bit_position-temp; - position_32bit=position_32bit-temp1; - if (temp1>0x2000) - position_32bit=position_32bit+0x4000; - } - - last_14bit_position=temp; - - return ; -} - -int Test_Load_Arm() -{ - int Loop_Nm = 1; - - Int32 temp3=0; - Int32 j=0; - Int32 i=0; - - if (!Encoder_Dryer_Exist()) - { - - stubManager.Write("Encoder of Dryer Fail \n"); - return 0; - - } - - var response = stubManager.ShowResponseWindow("Enter Loop Number for Dryer.", ""); - //stubManager.WriteLine(response); - Loop_Nm = int.Parse(response); - - ReadEncoder_Dryer(); - position_32bit=0; - ReadEncoder_Dryer(); - Int32 temp=position_32bit; - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, false, 100);//40 - Thread.Sleep(50); -// temp=ReadEncoder_Dryer(); - while ((temp3<2)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min - { - i++; - Thread.Sleep(30); - ReadEncoder_Dryer(); -// stubManager.Write("position_32bit " + position_32bit +"\t"); - - if (Math.Abs(position_32bit)> (50*0x4000)) - temp3=3; - if ((position_32bit-temp)>20) - temp3++; -// stubManager.Write("Temp " + temp +"\n"); - temp=position_32bit; -// stubManager.Write("Temp3 " + temp3 +"\n"); - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3); - - DialogResult result1 = MessageBox.Show("Arm Motor rotate ?", "Warning",MessageBoxButtons.YesNo); - if(result1 == DialogResult.No) - { - - stubManager.Write("Arm Motor Not rotate\n"); - return 0; - } - - DialogResult result2 = MessageBox.Show("Did Arm Motor arrive to mechanical stopper?", "Warning",MessageBoxButtons.YesNo); - if(result2 == DialogResult.No) - { - - stubManager.Write("Arm Motor Not arrive to mecahnicl stopper \n"); - return 0; - } - - Thread.Sleep(1000); - stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,5, true, 50); - Thread.Sleep(1000); - - ReadEncoder_Dryer(); - position_32bit=0; - ReadEncoder_Dryer(); - position_32bit=0; -for (int loop=0;loop<Loop_Nm;loop++) - - { - stubManager.Write("Loop Nm " + (loop+1) +" strat up posision \n"); - temp=position_32bit; - stubManager.Write("position_32bit = " + position_32bit +"\n"); - -// stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, true, 200); - stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,5, true, 7680 * NM_ROUND); - -// Thread.Sleep(50); - i=0; - temp3=-2; - - - while ((temp3<2)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min - { - Thread.Sleep(30); - i++; - ReadEncoder_Dryer(); - -// if (Math.Abs(position_32bit)> (NM_ROUND*0x4000)) -// temp3=3; - if (temp==position_32bit) - temp3++; - temp=position_32bit; - -// stubManager.Write("position_32bit = " +position_32bit +"\ttemp3 = " + temp3 +"\n"); - - - - } - Thread.Sleep(1000); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 1); - - if (Math.Abs(position_32bit - NM_ROUND*0x4000 )> 500) - - { - stubManager.Write("Arm Motor not make 30 rounds\n"); - return 0; - } - - - Thread.Sleep(1000); - stubManager.Write("Loop Nm " + (loop+1) +" strat down posision \n"); - stubManager.Write("position_32bit = " + position_32bit +"\n"); - -// stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, false, 200); - stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,5, false, 7680 * NM_ROUND); - i=0; - temp3=-2; - temp=position_32bit; - - while ((temp3<2)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min - { - Thread.Sleep(50); - i++; - ReadEncoder_Dryer(); - - // if (Math.Abs(position_32bit)< HomeStart) - // temp3=3; - if (position_32bit==temp) - temp3++; - temp=position_32bit; -// stubManager.Write("position_32bit = " +position_32bit +"\ttemp3 = " + temp3 +"\n"); - - - } - Thread.Sleep(1000); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 1); - - - if (Math.Abs(position_32bit )> 500) - - { - stubManager.Write("Arm Motor not make 30 rounds\n"); - return 0; - } - - Thread.Sleep(1000); - - - - - } - return 0; -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Jig.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Jig.cs deleted file mode 100644 index 42f35b8ef..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Jig.cs +++ /dev/null @@ -1,542 +0,0 @@ -using System; -using System.Text; -using System.IO; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - - -include "..\..\Defines\Tango_Defines_Basic.cs" -include "Tango_Defines_LimitSwitch.cs" -include "Tango_Defines_SSR.cs" -include "Tango_Defines_Tacho.cs" - - -const int UNIT_UNDER_TEST=3+1+2+6; -//-------------------------------------------------------------------------------- -string path1="P:\\Scripts\\Assemblies\\Dryer\\DryerLog\\"; -string path2="C:\\DryerLog\\"; - -string File_Name1 ; -string Status; -//--------------------------- -Int32 last_14bit_position; -Int32 position_32bit=0; -float [] DryerTemp = new float[3] ; - - -string [,] Units_status = new string[UNIT_UNDER_TEST,2] { - {"Lid_Motor","Not Test"}, - {"LS_Lid_Open","Not Test"}, - {"LS_Lid_Close","Not Test"}, - {"DRIVING_Motor","Not Test"}, - {"SSI_Encoder","Not Test"}, - {"LoadArm_Motor","Not Test"}, - {"Blower_test","Not Test"}, - {"Air_PT100_test","Not Test"}, - {"Main_PT100_test","Not Test"}, - {"Sec.PT100","Not Test"}, - {"SSR1_heater","Not Test"}, - {"SSR2_heater","Not Test"}, - }; - - - -//----------------------------------------------------- -string Dryer_Sn; -//-------------------------------------------------------------------------------- - -public void OnExecute(StubManager stubManager) -{ -string path=""; - Form form1 = new Form(); - -// Set the caption bar text of the form. - form1.TopMost = true; - form1.Text = "Dryer Test"; - form1.FormBorderStyle = FormBorderStyle.FixedDialog; - form1.MaximizeBox = false; - form1.MinimizeBox = false; - form1.StartPosition = FormStartPosition.CenterScreen; - form1.AutoSize = true; - form1.AutoSizeMode = AutoSizeMode.GrowAndShrink; -// Create buttons to Run. - Button button1 = new Button () - { - Width = 100, - Height = 100, - }; - button1.Text = "Run"; - button1.Location = new Point (40, 100); - form1.Controls.Add(button1); -//-----Dryer Serial Number ----------- - - Label Label1 = new Label () - { - Width = 150, - Height = 20, - Text =" Dryer S/N" - }; - Label1.Location = new Point (30, 10); - form1.Controls.Add(Label1); - TextBox TextBox1 = new TextBox () - { - Width = 100, - Height = 10, - Text ="" - }; - TextBox1.Location = new Point (40, 40); - form1.Controls.Add(TextBox1); - //----------LOCATION---------- - - Label Label3 = new Label () - { - Width = 150, - Height = 20, - Text ="LOCATION" - }; -Label3.Location = new Point (350, 10); - form1.Controls.Add(Label3); - - - -TextBox TextBox3 = new TextBox () - { - Width = 100, - Height = 10, - Text ="" - }; -TextBox3.Location = new Point (360, 40); - form1.Controls.Add(TextBox3); - -//-------------------------------------------------------------------------------- - - stubManager.Write("Counter is 2 \n"); - - button1.Click += (_,__) => - - { -if (!Directory.Exists(path1)) - { - path=path2; - if (!Directory.Exists(path2)) - Directory.CreateDirectory(path2); - } -else -path=path1; - - -File_Name1=path + TextBox1.Text +"_Dryer_" + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".log" ; - - -stubManager.Write(File_Name1 +"\n"); -stubManager.WriteToFile(File_Name1,DateTime.Now +" " ); -stubManager.Write(DateTime.Now +"\n" ); - -stubManager.AppendToFile(File_Name1,"Dryer Test Report" ); -stubManager.Write("Dryer Test Report\n" ); - -stubManager.AppendToFile(File_Name1,"Dryer S/N: \t" + TextBox1.Text ); -stubManager.Write("Dryer S/N:" + TextBox1.Text +"\n" ); - - -stubManager.AppendToFile(File_Name1,"Location:\t" + TextBox3.Text ); -stubManager.Write("Location:" + TextBox3.Text +"\n" ); - - - -Label Label5 = new Label () - { - Width = 120, - Height =100, - Text = "" - }; -Label5.Location = new Point (300, 100); -Label5.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; - -Label5.Text="Pros"; -Label5.Font = new Font("Arial", 24,FontStyle.Bold); -form1.Controls.Add(Label5); - - -//------------------------------- start test ----------- -// Test_LId(); -// Test_motor_driving(); -// Test_Load_Arm (); - Test_Blower_heaters_pt100(); - Status=write_to_file(); - - Label5.Text=Status; - TextBox1.Text=""; -}; - - form1.ShowDialog(); - - return ; - } -//------------------------------------------ -int Test_Blower_heaters_pt100() -{ - - float ftemp=0; - float ftemp1=0; - - SetBit(FPGA1,0x3d2,5,1); //turn off Blower - Thread.Sleep(500); - - var RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg8, 0); - - DialogResult result = MessageBox.Show("Close Dryer Door", "Warning"); - RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg8, 0); - if(RetVal.Value>20) - { - Units_status[6,1]="Fail"; - stubManager.Write("Error,Fan rotate\n"); - return 0; - } - - SetBit(FPGA1,0x3d2,4,1); //Dir - SetBit(FPGA1,0x3d2,3,1); //Torqer High - SetBit(FPGA1,0x3d2,5,0); //turn on Blower - - const int LOW = 70;//0 - 100% - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000400 | 0x112, 0xFF);//Freq 8 bit - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000400 | 0x3EC, LOW+1);//Low 8 bit - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000400 | 0x3EE, 101 - LOW);//High 8 bit - - Thread.Sleep(1000); - RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg8, 0); - stubManager.Write("blower Speed- " + RetVal.Value + "\n"); - if ((RetVal.Value<150)||(RetVal.Value>250) ) - { - Units_status[6,1]="Fail"; - stubManager.Write("Error,Fan rotate\n"); - return 0; - } - Units_status[6,1]="Pass"; - - - stubManager.Write("Temp Befor heating \n"); - if (test_pt100()!=0) - return 0; - -float temp=0; -float temp1=4096*95*5; - - //Write GPO_DRYER_SSR1_CTRL SSR/SSR no. 1 - SetBit (FPGA2, F2_CTRL, 10, 1); //turn SSR1 on - stubManager.Write("\tTesting SSR no. 1\t"); - Thread.Sleep(1000); -var response1 = stubManager.Run<StubIntADCReadResponse>("StubIntADCReadRequest" ,16); - temp=Convert.ToUInt32 (response1.SamplingInBits); - temp=temp*800*3*100; - temp=temp/(4096*95*50); - stubManager.Write("Current = "+ temp + "A\n"); - if ((temp>6) || (temp<3)) - Units_status[10,1]="Fail"; - else - Units_status[10,1]="Pass"; - - //Write GPO_DRYER_SSR2_CTRL SSR/SSR no. 2 - SetBit (FPGA2, F2_CTRL, 9, 1); - stubManager.Write("\tTesting SSR no. 2\t"); - Thread.Sleep(1000); - response1 = stubManager.Run<StubIntADCReadResponse>("StubIntADCReadRequest" ,17); - temp=Convert.ToUInt32 (response1.SamplingInBits); - stubManager.WriteLine(temp); - temp=temp*800*3*100; - temp=temp/(4096*95*120); - stubManager.Write("Current = "+ temp + "A\n"); - if ((temp>3) || (temp<1)) - Units_status[11,1]="Fail"; - else - Units_status[11,1]="Pass"; - - Thread.Sleep(50000); - -//check air temp - ftemp=Read_pt100(0); - stubManager.Write("After heating air temp is " + ftemp + "\n"); - ftemp = ftemp - DryerTemp[0]; - if ((ftemp<5)||(ftemp>25)) - Units_status[7,1]="Fail"; - else - Units_status[7,1]="Pass"; - - - -//check Main temp - ftemp=Read_pt100(1); - stubManager.Write("After heating Main temp is " + ftemp + "\n"); - ftemp = ftemp - DryerTemp[1]; - if ((ftemp<5)||(ftemp>40)) - Units_status[8,1]="Fail"; - else - Units_status[8,1]="Pass"; - -//check Sec. temp - ftemp=Read_pt100(2); - stubManager.Write("After heating Sec. temp is " + ftemp + "\n"); - ftemp = ftemp - DryerTemp[2]; - if ((ftemp<5)||(ftemp>40)) - Units_status[9,1]="Fail"; - else - Units_status[9,1]="Pass"; - - SetBit (FPGA2, F2_CTRL, 10, 0); //turn SSR1 off - SetBit (FPGA2, F2_CTRL, 9, 0); //turn SSR2 off - - SetBit(FPGA1,0x3d2,5,1); //turn off Blower - return 1; - -} - - int test_pt100() - { - float ftemp=0; - int temp=0; - int j=0; - for (int i = 0; i < 3; i++) - { - DryerTemp[i]=Read_pt100(i); - ftemp=DryerTemp[i]; - if ((ftemp>100)|| (ftemp<10)) - { - Units_status[i+7,1]="Fail"; - } - else - { - Units_status[i+7,1]="Pass"; - } - stubManager.Write(Units_status[i+7,0] +"\t"+ ftemp.ToString("F2")); - stubManager.Write("°C\n"); - - } - return 0; - } -//------------------------------------------------ -float Read_pt100(int i) -{ - int j=i+6; - var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,j); // - float ftemp = (float)response.TemperatureCMultBy100; - ftemp = ftemp / 100; - return (ftemp); -} - - -//------------------------------------------ -int Test_motor_driving () - -{ - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,3, true, 500); //rotate Dryer Motor. - stubManager.Write("Dryer Motor rotate \n "); - DialogResult result = MessageBox.Show("Are Dryer Motor rotate?", "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.No) - { - Units_status[3,1]="Fail"; - stubManager.Write("Dryer Motor not rotate\n"); - } - else - { - Units_status[3,1]="Pass"; - stubManager.Write("Dryer Motor rotate\n"); - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,3,3); //stop motor - - return 0; -} -//---------------------------------- -int Test_Load_Arm() -{ - - Int32 temp3=0; - Int32 j=0; - Int32 i=0; - position_32bit=0; - Int32 temp=position_32bit; - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,5, false, 60);//40 - Thread.Sleep(50); - temp=ReadEncoder(); - while ((temp3==0)&& (i<600) ) //wait until Limit Switch or timeout 200*50msec=10sec - { - Thread.Sleep(50); - ReadEncoder(); -// stubManager.Write("position_32bit " + position_32bit +"\t"); - - if (Math.Abs(position_32bit)> (50*0x4000)) - temp3=1; - if ((position_32bit-temp)>20) - temp3=2; -// stubManager.Write("Temp " + temp +"\n"); - temp=position_32bit; -// stubManager.Write("Temp3 " + temp3 +"\n"); - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,5, 3); - - DialogResult result1 = MessageBox.Show("Arm Motor rotate ?", "Warning",MessageBoxButtons.YesNo); - if(result1 == DialogResult.No) - { - Units_status[5,1]="Fail"; - stubManager.Write("Arm Motor Not rotate\n"); - return 0; - } - Units_status[5,1]="Pass"; - - DialogResult result2 = MessageBox.Show("Did Arm Motor arrive to mecahnicl stopper ?", "Warning",MessageBoxButtons.YesNo); - if(result2 == DialogResult.No) - { - Units_status[4,1]="Fail"; - stubManager.Write("Arm Motor arrive to mecahnicl stopper \n"); - return 0; - } - - position_32bit=0; - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,5, true, 60); - Thread.Sleep(50); - i=0; - while ((Math.Abs(ReadEncoder())< (30*0x4000))&& (i<4500)) - - { - Thread.Sleep(50); - i++; -// stubManager.Write("position_32bit " + position_32bit +"\t" + i + "\n" ); - - - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,5, 3); - - DialogResult result3 = MessageBox.Show("Did Arm Motor make 30 rounds?", "Warning",MessageBoxButtons.YesNo); - if(result3 == DialogResult.No) - { - Units_status[4,1]="Fail"; - stubManager.Write("Arm Motor not make 30 rounds\n"); - return 0; - } - Units_status[4,1]="Pass"; - return 1; -} - -Int32 ReadEncoder() -{ - Int32 temp; - Int32 temp1; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190); - var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192); - - temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff)); - if (temp>last_14bit_position) - { - temp1=temp-last_14bit_position; - position_32bit=position_32bit+temp1; - if (temp1>0x2000) - position_32bit=position_32bit-0x4000; - } - else if (temp<last_14bit_position) - - { - temp1=last_14bit_position-temp; - position_32bit=position_32bit-temp1; - if (temp1>0x2000) - position_32bit=position_32bit+0x4000; - } - - last_14bit_position=temp; - - return position_32bit; -} -//----------------------------------- -int Test_LId () -{ - Int32 Bit = 1; - int i = 0; - - stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,4, false, 0x800000+2); //mov Dryer Lid motor down - Thread.Sleep(2000); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,4, 2); //Hard stop hiZ motor - Thread.Sleep(1000); - - stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,4, false, 0x800000+0); //mov Dryer Lid motor up - - while ((Bit != 0x0) && (i<200)) //wait until Limit Switch or timeout 200*50msec=10sec - { - Bit = GetBit(FPGA1, F1_LS_01_Direct,4); - Thread.Sleep(50); - i++; - } - stubManager.Write("\n--------1-Lid Open--------"); - - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,4, 2); //Hard stop hiZ motor - DialogResult result1 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo); - if(result1 == DialogResult.No) - { - Units_status[1,1]="Fail"; - stubManager.Write("LS_Lid_Open Not calibrate\n"); - return 0; - } - Units_status[1,1]="Pass"; - - stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,4, false, 0x800000+2); //mov Dryer Lid motor down - - Bit = 1; - i=0; - while ((Bit != 0x0) && (i<200)) //wait until Limit Switch or timeout 200*50msec=10sec - { - Bit = GetBit(FPGA1, F1_LS_01_Direct,5); - Thread.Sleep(50); - i++; - } - stubManager.Write("\n--------2-Lid Close--------"); - - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,4, 2); //Hard stop hiZ motor - DialogResult result2 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo); - if(result2 == DialogResult.No) - { - Units_status[2,1]="Fail"; - stubManager.Write("LS_Lid_Close Not calibrate\n"); - return 0; - } - Units_status[2,1]="Pass"; - Units_status[0,1]="Pass"; - return 1; - -} - - //------------------------------------ -string write_to_file() -{ - stubManager.Write("write_to_file\n"); - -string Stemp="Pass"; - for (int i=0;i<UNIT_UNDER_TEST;i++) - { - stubManager.AppendToFile(File_Name1,Units_status[i,0]+"\t" + Units_status[i,1] ); - stubManager.Write(Units_status[i,0]+"\t" + Units_status[i,1]+"\n" ); - - if ((Units_status[i,1]=="Fail")||(Units_status[i,1]=="Not Test")) - Stemp="Fail"; - } - if (Stemp=="Fail") - { - stubManager.AppendToFile(File_Name1,"-------------Dryer Fail ------------ "); - stubManager.Write("-------------Dryer Fail ------------ "); - } - else - { - stubManager.AppendToFile(File_Name1,"-------------Dryer Pass ------------ )"); - stubManager.Write("-------------Dryer Pass ------------ "); - } - - return Stemp; - -} - diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_LimitSwitch.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_LimitSwitch.cs index d3cc0b43c..46849f051 100644 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_LimitSwitch.cs +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_LimitSwitch.cs @@ -21,18 +21,14 @@ public void OnExecute(StubManager stubManager) Int32 Bit = 1; uint Temp = 0; int counter = 0; - UInt32 PowerStep_driver=0; - if (Get_Driver_Type(4)>0x14) - PowerStep_driver=1; - for (int i=0;i<1;i++) - { - stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,4, false, 0x800000+2*PowerStep_driver); //mov Dryer Lid motor up - Bit=1; + + stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,4, false, 2); //mov Dryer Lid motor up + while (Bit != 0x0) //wait until Dryer Lid open { - Bit = GetBit(FPGA1, F1_LS_01_Direct,4); - Thread.Sleep(100); + Bit = GetBit(FPGA1, F1_LS_01_Direct,5); + Thread.Sleep(10); } stubManager.Write("\n--------1-Lid Open--------"); @@ -42,34 +38,19 @@ stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,4, 2); //Hard st - stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,4, false, 0x800000+2*(1-PowerStep_driver)); //mov Dryer Lid motor up +stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,4, true, 2); //mov Dryer Lid motor down Bit = 1; while (Bit != 0x0) //wait until Dryer Lid open { - Bit = GetBit(FPGA1, F1_LS_01_Direct,5); - Thread.Sleep(100); + Bit = GetBit(FPGA1, F1_LS_01_Direct,4); + Thread.Sleep(10); } - stubManager.Write("\n--------2-Lid Close--------\nCycle \t"+i); + stubManager.Write("\n--------2-Lid Close--------"); stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,4, 2); //Hard stop hiZ motor -} - -} - -UInt32 Get_Driver_Type(UInt32 i) -{ - Int32 x_GET_PARAM = 0x20; - Int32 x_ADC_OUT = 0x12; - UInt32 ADC_out ; - - - var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ADC_OUT)<<8, 0, 0); - ADC_out= (response.RecivedData) & 0x001F; - stubManager.WriteHex(ADC_out,2) ; - return ADC_out ; -} +}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_SSR.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_SSR.cs index d0ecd2125..da391cfb2 100644 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_SSR.cs +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_SSR.cs @@ -18,63 +18,22 @@ include "Tango_Defines_SSR.cs" public void OnExecute(StubManager stubManager) { -float temp=0; -float temp1=4096*95*5; - - //Write GPO_DRYER_SSR1_CTRL SSR/SSR no. 1 - var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,6); // - stubManager.WriteHex(response.TemperatureCMultBy100,4); + //Write GPO_DRYER_SSR1_CTRL SSR/SSR no. 1 SetBit (FPGA2, F2_CTRL, 10, 1); - stubManager.Write("\tTesting SSR no. 1\t"); - Thread.Sleep(3000); - -var response1 = stubManager.Run<StubIntADCReadResponse>("StubIntADCReadRequest" ,16); - - temp=Convert.ToUInt32 (response1.SamplingInBits); - - stubManager.Write("Current = "+ temp*100/6 + "mA/n"); - - temp=temp*800*3*100; - temp=temp/(4096*95*50); - stubManager.Write("Current = "+ temp + "A\t"); - stubManager.Write("Voltage = "+ (temp*60) + "V\n"); - -// temp=temp*2400*60*100; -// temp=temp/(4096*95*50); -// stubManager.Write("Voltage = "+ temp + "Volt/n"); -// stubManager.Write("Current = "+ temp*100/6 + "mA/n"); - - + stubManager.Write("\nTesting SSR no. 1"); + Thread.Sleep(4000); SetBit (FPGA2, F2_CTRL, 10, 0); - response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,6); // - stubManager.WriteHex(response.TemperatureCMultBy100,4); - stubManager.Write("\n"); - //Write GPO_DRYER_SSR2_CTRL SSR/SSR no. 2 - response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,7); // - stubManager.WriteHex(response.TemperatureCMultBy100,4); SetBit (FPGA2, F2_CTRL, 9, 1); - stubManager.Write("\tTesting SSR no. 2\t"); - Thread.Sleep(3000); - - response1 = stubManager.Run<StubIntADCReadResponse>("StubIntADCReadRequest" ,17); - - temp=Convert.ToUInt32 (response1.SamplingInBits); - -// temp=temp*2400*1000; -// temp=temp/(4096*95*100); -// stubManager.Write("Current = "+ temp*100/6 + "mA/n"); - - temp=temp*800*3*100; - temp=temp/(4096*95*100); - stubManager.Write("Current = "+ temp + "A\n"); - - + stubManager.Write("\nTesting SSR no. 2"); + Thread.Sleep(4000); SetBit (FPGA2, F2_CTRL, 9, 0); - response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,7); // - stubManager.WriteHex(response.TemperatureCMultBy100,4); - stubManager.Write("\n"); - + + //Write GPO_DRYER_SSR3_CTRL SSR/SSR no. 3 + SetBit (FPGA2, F2_CTRL, 8, 1); + stubManager.Write("\nTesting SSR no. 3"); + Thread.Sleep(4000); + SetBit (FPGA2, F2_CTRL, 8, 0); }
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset.CSV b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset.CSV deleted file mode 100644 index 3b00533c7..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset.CSV +++ /dev/null @@ -1,499 +0,0 @@ -01/10/2020 13:37:37 -Heating to 190 -01/10/2020 13:37:37 - 55 - 55 - 56 - 56 - 57 - 57 - 57 - 58 - 58 - 59 - 59 - 59 - 60 - 60 - 60 - 61 - 61 - 61 - 62 - 62 - 62 - 63 - 63 - 64 - 64 - 64 - 65 - 65 - 65 - 66 - 66 - 66 - 67 - 67 - 67 - 68 - 68 - 68 - 69 - 69 - 69 - 69 - 70 - 70 - 70 - 71 - 71 - 71 - 72 - 72 - 72 - 73 - 73 - 73 - 74 - 74 - 74 - 74 - 75 - 75 - 75 - 76 - 76 - 76 - 76 - 77 - 77 - 78 - 78 - 78 - 78 - 79 - 79 - 79 - 80 - 80 - 80 - 80 - 81 - 81 - 81 - 81 - 82 - 82 - 82 - 82 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 82 - 82 - 82 - 82 - 81 - 81 - 81 - 81 - 81 - 80 - 80 - 80 - 80 - 79 - 79 - 79 - 79 - 79 - 79 - 78 - 78 - 78 - 78 - 78 - 78 - 79 - 79 - 79 - 79 - 79 - 80 - 80 - 80 - 80 - 81 - 81 - 81 - 81 - 82 - 82 - 82 - 82 - 83 - 83 - 83 - 83 - 84 - 84 - 84 - 85 - 85 - 85 - 86 - 86 - 86 - 86 - 87 - 87 - 87 - 87 - 88 - 88 - 88 - 88 - 89 - 89 - 89 - 89 - 90 - 90 - 90 - 90 - 91 - 91 - 91 - 91 - 92 - 92 - 92 - 92 - 93 - 93 - 93 - 93 - 94 - 94 - 94 - 94 - 95 - 95 - 95 - 95 - 96 - 96 - 96 - 96 - 96 - 97 - 97 - 97 - 97 - 98 - 98 - 98 - 98 - 98 - 98 - 97 - 97 - 97 - 97 - 96 - 96 - 96 - 95 - 95 - 94 - 94 - 94 - 93 - 93 - 93 - 92 - 92 - 92 - 91 - 91 - 91 - 90 - 90 - 90 - 89 - 89 - 89 - 88 - 88 - 88 - 87 - 87 - 87 - 87 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 87 - 87 - 87 - 87 - 88 - 88 - 88 - 89 - 89 - 89 - 89 - 90 - 90 - 90 - 90 - 91 - 91 - 91 - 92 - 92 - 92 - 92 - 93 - 93 - 93 - 93 - 94 - 94 - 94 - 95 - 95 - 95 - 95 - 96 - 96 - 96 - 96 - 97 - 97 - 97 - 97 - 98 - 98 - 98 - 98 - 99 - 99 - 99 - 99 - 100 - 100 - 100 - 100 - 101 - 101 - 101 - 101 - 101 - 102 - 102 - 102 - 102 - 103 - 103 - 103 - 103 - 104 - 104 - 104 - 104 - 104 - 105 - 105 - 105 - 105 - 106 - 106 - 106 - 106 - 106 - 107 - 107 - 107 - 107 - 108 - 108 - 108 - 108 - 109 - 109 - 109 - 109 - 109 - 110 - 110 - 110 - 110 - 110 - 111 - 111 - 111 - 111 - 111 - 112 - 112 - 112 - 112 - 112 - 113 - 113 - 113 - 113 - 113 - 114 - 114 - 114 - 114 - 114 - 115 - 115 - 115 - 115 - 115 - 116 - 116 - 116 - 116 - 116 - 117 - 117 - 117 - 117 - 117 - 118 - 118 - 118 - 118 - 118 - 119 - 119 - 119 - 119 - 119 - 119 - 120 - 120 - 120 - 120 - 120 - 120 - 121 - 121 - 121 - 121 - 121 - 122 - 122 - 122 - 122 - 122 - 122 - 123 - 123 - 123 - 123 - 123 - 124 - 124 - 124 - 124 - 124 - 124 - 125 - 125 - 125 - 125 - 125 - 125 - 126 - 126 - 126 - 126 - 126 - 126 - 127 - 127 - 127 - 127 - 127 - 128 - 128 - 128 - 128 - 128 - 128 - 129 - 129 - 129 - 129 - 129 - 129 - 130 - 130 - 130 - 130 - 130 - 130 - 131 - 131 - 131 - 131 - 131 - 131 - 132 - 132 - 132 - 132 - 132 - 132 - 132 - 133 - 133 - 133 - 133 - 133 - 133 - 134 - 134 - 134 - 134 - 134 - 134 - 134 - 134 - 134 - 134 - 134 - 133 - 133 - 132 - 132 - 131 - 131 - 130 - 130 - 129 - 128 - 128 - 127 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset1.CSV b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset1.CSV deleted file mode 100644 index 6d1a7862c..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset1.CSV +++ /dev/null @@ -1,1600 +0,0 @@ -06/07/2020 9:43:12 -Heating to 190 -06/07/2020 9:43:12 - 23 - 23 - 23 - 23 - 23 - 23 - 23 - 23 - 23 - 23 - 23 - 23 - 23 - 23 - 23 - 23 - 23 - 23 - 23 - 23 - 23 - 23 - 23 - 23 - 23 - 23 - 24 - 24 - 24 - 24 - 24 - 24 - 25 - 25 - 25 - 26 - 26 - 26 - 27 - 27 - 28 - 28 - 29 - 29 - 30 - 30 - 31 - 31 - 32 - 32 - 33 - 33 - 34 - 34 - 35 - 35 - 36 - 37 - 37 - 38 - 38 - 39 - 39 - 40 - 41 - 41 - 42 - 42 - 43 - 43 - 44 - 44 - 45 - 46 - 46 - 47 - 47 - 48 - 48 - 49 - 49 - 50 - 50 - 51 - 52 - 52 - 53 - 53 - 54 - 54 - 55 - 55 - 56 - 56 - 56 - 57 - 57 - 58 - 58 - 59 - 59 - 60 - 60 - 60 - 61 - 61 - 62 - 62 - 63 - 63 - 63 - 64 - 64 - 65 - 65 - 65 - 66 - 66 - 66 - 67 - 67 - 68 - 68 - 68 - 69 - 69 - 69 - 70 - 70 - 71 - 71 - 71 - 72 - 72 - 72 - 73 - 73 - 73 - 74 - 74 - 74 - 75 - 75 - 75 - 76 - 76 - 76 - 77 - 77 - 77 - 78 - 78 - 78 - 79 - 79 - 79 - 79 - 80 - 80 - 80 - 81 - 81 - 81 - 82 - 82 - 82 - 82 - 83 - 83 - 83 - 84 - 84 - 84 - 84 - 85 - 85 - 85 - 86 - 86 - 86 - 86 - 87 - 87 - 87 - 88 - 88 - 88 - 88 - 89 - 89 - 89 - 89 - 90 - 90 - 90 - 91 - 91 - 91 - 92 - 92 - 92 - 92 - 93 - 93 - 93 - 93 - 94 - 94 - 94 - 94 - 95 - 95 - 95 - 95 - 96 - 96 - 96 - 96 - 97 - 97 - 97 - 97 - 98 - 98 - 98 - 98 - 98 - 99 - 99 - 99 - 99 - 100 - 100 - 100 - 100 - 101 - 101 - 101 - 101 - 102 - 102 - 102 - 102 - 102 - 103 - 103 - 103 - 103 - 104 - 104 - 104 - 104 - 105 - 105 - 105 - 105 - 105 - 106 - 106 - 106 - 106 - 106 - 107 - 107 - 107 - 107 - 107 - 108 - 108 - 108 - 108 - 108 - 109 - 109 - 109 - 109 - 110 - 110 - 110 - 110 - 110 - 111 - 111 - 111 - 111 - 111 - 112 - 112 - 112 - 112 - 112 - 113 - 113 - 113 - 113 - 113 - 114 - 114 - 114 - 114 - 114 - 115 - 115 - 115 - 115 - 115 - 116 - 116 - 116 - 116 - 116 - 117 - 117 - 117 - 117 - 117 - 118 - 118 - 118 - 118 - 119 - 119 - 119 - 119 - 119 - 119 - 120 - 120 - 120 - 120 - 120 - 121 - 121 - 121 - 121 - 121 - 122 - 122 - 122 - 122 - 122 - 123 - 123 - 123 - 123 - 123 - 123 - 124 - 124 - 124 - 124 - 124 - 125 - 125 - 125 - 125 - 125 - 125 - 126 - 126 - 126 - 126 - 126 - 127 - 127 - 127 - 127 - 127 - 128 - 128 - 128 - 128 - 128 - 128 - 129 - 129 - 129 - 129 - 129 - 130 - 130 - 130 - 130 - 130 - 130 - 131 - 131 - 131 - 131 - 131 - 131 - 132 - 132 - 132 - 132 - 132 - 132 - 133 - 133 - 133 - 133 - 133 - 134 - 134 - 134 - 134 - 134 - 134 - 135 - 135 - 135 - 135 - 135 - 135 - 136 - 136 - 136 - 136 - 136 - 136 - 137 - 137 - 137 - 137 - 137 - 137 - 138 - 138 - 138 - 138 - 138 - 138 - 139 - 139 - 139 - 139 - 139 - 139 - 140 - 140 - 140 - 140 - 140 - 140 - 141 - 141 - 141 - 141 - 141 - 141 - 142 - 142 - 142 - 142 - 142 - 142 - 143 - 143 - 143 - 143 - 143 - 143 - 144 - 144 - 144 - 144 - 144 - 144 - 145 - 145 - 145 - 145 - 145 - 145 - 145 - 146 - 146 - 146 - 146 - 146 - 146 - 147 - 147 - 147 - 147 - 147 - 147 - 147 - 148 - 148 - 148 - 148 - 148 - 148 - 149 - 149 - 149 - 149 - 149 - 149 - 150 - 150 - 150 - 150 - 150 - 150 - 150 - 151 - 151 - 151 - 151 - 151 - 151 - 151 - 152 - 152 - 152 - 152 - 152 - 152 - 152 - 153 - 153 - 153 - 153 - 153 - 153 - 153 - 154 - 154 - 154 - 154 - 154 - 154 - 155 - 155 - 155 - 155 - 155 - 155 - 155 - 156 - 156 - 156 - 156 - 156 - 156 - 156 - 157 - 157 - 157 - 157 - 157 - 157 - 157 - 158 - 158 - 158 - 158 - 158 - 158 - 158 - 159 - 159 - 159 - 159 - 159 - 159 - 160 - 160 - 160 - 160 - 160 - 160 - 160 - 161 - 161 - 161 - 161 - 161 - 161 - 161 - 162 - 162 - 162 - 162 - 162 - 162 - 162 - 163 - 163 - 163 - 163 - 163 - 163 - 163 - 164 - 164 - 164 - 164 - 164 - 164 - 164 - 165 - 165 - 165 - 165 - 165 - 165 - 165 - 166 - 166 - 166 - 166 - 166 - 166 - 166 - 166 - 167 - 167 - 167 - 167 - 167 - 167 - 167 - 167 - 168 - 168 - 168 - 168 - 168 - 168 - 168 - 169 - 169 - 169 - 169 - 169 - 169 - 169 - 170 - 170 - 170 - 170 - 170 - 170 - 170 - 170 - 171 - 171 - 171 - 171 - 171 - 171 - 171 - 172 - 172 - 172 - 172 - 172 - 172 - 172 - 172 - 173 - 173 - 173 - 173 - 173 - 173 - 173 - 174 - 174 - 174 - 174 - 174 - 174 - 174 - 175 - 175 - 175 - 175 - 175 - 175 - 175 - 175 - 176 - 176 - 176 - 176 - 176 - 176 - 176 - 176 - 176 - 177 - 177 - 177 - 177 - 177 - 177 - 177 - 177 - 177 - 177 - 177 - 178 - 178 - 178 - 178 - 178 - 178 - 178 - 178 - 178 - 178 - 178 - 179 - 179 - 179 - 179 - 179 - 179 - 179 - 179 - 179 - 179 - 180 - 180 - 180 - 180 - 180 - 180 - 180 - 180 - 180 - 180 - 181 - 181 - 181 - 181 - 181 - 181 - 181 - 181 - 181 - 181 - 182 - 182 - 182 - 182 - 182 - 182 - 182 - 182 - 182 - 182 - 183 - 183 - 183 - 183 - 183 - 183 - 183 - 183 - 183 - 183 - 184 - 184 - 184 - 184 - 184 - 184 - 184 - 184 - 184 - 185 - 185 - 185 - 185 - 185 - 185 - 185 - 185 - 185 - 185 - 186 - 186 - 186 - 186 - 186 - 186 - 186 - 186 - 186 - 187 - 187 - 187 - 187 - 187 - 187 - 187 - 187 - 187 - 188 - 188 - 188 - 188 - 188 - 188 - 188 - 188 - 188 - 188 - 189 -06/07/2020 9:56:54 -cooling down -06/07/2020 9:58:54 - 191 - 191 - 191 - 191 - 191 - 191 - 191 - 191 - 191 - 191 - 191 - 190 - 190 - 190 - 190 - 190 - 190 - 190 - 189 - 189 - 189 - 189 - 188 - 188 - 188 - 188 - 187 - 187 - 186 - 186 - 186 - 185 - 185 - 185 - 184 - 184 - 184 - 183 - 183 - 183 - 182 - 182 - 182 - 181 - 181 - 181 - 180 - 180 - 179 - 179 - 179 - 178 - 178 - 178 - 177 - 177 - 177 - 176 - 176 - 175 - 175 - 175 - 174 - 174 - 174 - 173 - 173 - 173 - 172 - 172 - 172 - 171 - 171 - 171 - 170 - 170 - 170 - 169 - 169 - 169 - 168 - 168 - 168 - 167 - 167 - 167 - 167 - 166 - 166 - 166 - 165 - 165 - 165 - 164 - 164 - 164 - 164 - 163 - 163 - 163 - 162 - 162 - 162 - 161 - 161 - 161 - 161 - 160 - 160 - 160 - 160 - 159 - 159 - 159 - 159 - 158 - 158 - 158 - 158 - 157 - 157 - 157 - 157 - 157 - 156 - 156 - 156 - 156 - 155 - 155 - 155 - 155 - 155 - 154 - 154 - 154 - 154 - 153 - 153 - 153 - 153 - 153 - 152 - 152 - 152 - 152 - 152 - 152 - 151 - 151 - 151 - 151 - 151 - 150 - 150 - 150 - 150 - 150 - 149 - 149 - 149 - 149 - 149 - 149 - 148 - 148 - 148 - 148 - 148 - 148 - 147 - 147 - 147 - 147 - 147 - 147 - 146 - 146 - 146 - 146 - 146 - 146 - 145 - 145 - 145 - 145 - 145 - 145 - 145 - 144 - 144 - 144 - 144 - 144 - 144 - 144 - 143 - 143 - 143 - 143 - 143 - 143 - 143 - 142 - 142 - 142 - 142 - 142 - 142 - 142 - 142 - 141 - 141 - 141 - 141 - 141 - 141 - 141 - 141 - 141 - 140 - 140 - 140 - 140 - 140 - 140 - 140 - 140 - 139 - 139 - 139 - 139 - 139 - 139 - 139 - 139 - 139 - 138 - 138 - 138 - 138 - 138 - 138 - 138 - 138 - 138 - 137 - 137 - 137 - 137 - 137 - 137 - 137 - 137 - 137 - 136 - 136 - 136 - 136 - 136 - 136 - 136 - 136 - 136 - 136 - 135 - 135 - 135 - 135 - 135 - 135 - 135 - 135 - 135 - 135 - 134 - 134 - 134 - 134 - 134 - 134 - 134 - 134 - 134 - 134 - 134 - 133 - 133 - 133 - 133 - 133 - 133 - 133 - 133 - 133 - 133 - 133 - 132 - 132 - 132 - 132 - 132 - 132 - 132 - 132 - 132 - 132 - 132 - 132 - 132 - 131 - 131 - 131 - 131 - 131 - 131 - 131 - 131 - 131 - 131 - 131 - 131 - 130 - 130 - 130 - 130 - 130 - 130 - 130 - 130 - 130 - 130 - 130 - 130 - 129 - 129 - 129 - 129 - 129 - 129 - 129 - 129 - 129 - 129 - 129 - 129 - 129 - 128 - 128 - 128 - 128 - 128 - 128 - 128 - 128 - 128 - 128 - 128 - 128 - 128 - 128 - 128 - 127 - 127 - 127 - 127 - 127 - 127 - 127 - 127 - 127 - 127 - 127 - 127 - 127 - 127 - 126 - 126 - 126 - 126 - 126 - 126 - 126 - 126 - 126 - 126 - 126 - 126 - 126 - 126 - 126 - 126 - 125 - 125 - 125 - 125 - 125 - 125 - 125 - 125 - 125 - 125 - 125 - 125 - 125 - 125 - 125 - 125 - 124 - 124 - 124 - 124 - 124 - 124 - 124 - 124 - 124 - 124 - 124 - 124 - 124 - 124 - 124 - 123 - 123 - 123 - 123 - 123 - 123 - 123 - 123 - 123 - 123 - 123 - 123 - 123 - 123 - 123 - 123 - 123 - 123 - 122 - 122 - 122 - 122 - 122 - 122 - 122 - 122 - 122 - 122 - 122 - 122 - 122 - 122 - 122 - 122 - 122 - 122 - 121 - 121 - 121 - 121 - 121 - 121 - 121 - 121 - 121 - 121 - 121 - 121 - 121 - 121 - 121 - 121 - 121 - 121 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset111.CSV b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset111.CSV deleted file mode 100644 index 4ab057b1c..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset111.CSV +++ /dev/null @@ -1,29654 +0,0 @@ -16/08/2020 18:49:18 -Heating to 190 -16/08/2020 18:49:18 - 24 - 24 - 24 - 24 - 24 - 24 - 24 - 24 - 24 - 24 - 24 - 24 - 24 - 25 - 25 - 25 - 25 - 25 - 26 - 26 - 26 - 26 - 27 - 27 - 27 - 28 - 28 - 29 - 29 - 29 - 30 - 30 - 31 - 31 - 32 - 32 - 33 - 33 - 33 - 34 - 34 - 35 - 36 - 36 - 37 - 38 - 38 - 39 - 39 - 40 - 40 - 41 - 41 - 42 - 42 - 43 - 43 - 44 - 44 - 45 - 45 - 46 - 46 - 47 - 47 - 48 - 48 - 49 - 49 - 50 - 50 - 51 - 51 - 52 - 52 - 53 - 53 - 53 - 54 - 54 - 55 - 55 - 56 - 56 - 57 - 57 - 57 - 58 - 58 - 59 - 59 - 60 - 60 - 60 - 61 - 61 - 62 - 62 - 63 - 63 - 63 - 64 - 64 - 65 - 65 - 66 - 66 - 66 - 67 - 67 - 67 - 68 - 68 - 69 - 69 - 69 - 70 - 70 - 70 - 71 - 71 - 71 - 72 - 72 - 72 - 73 - 73 - 73 - 74 - 74 - 74 - 75 - 75 - 75 - 76 - 76 - 76 - 77 - 77 - 77 - 78 - 78 - 78 - 79 - 79 - 79 - 79 - 80 - 80 - 80 - 81 - 81 - 81 - 81 - 82 - 82 - 82 - 83 - 83 - 83 - 84 - 84 - 84 - 84 - 85 - 85 - 85 - 85 - 86 - 86 - 86 - 87 - 87 - 87 - 87 - 88 - 88 - 88 - 88 - 89 - 89 - 89 - 89 - 90 - 90 - 90 - 91 - 91 - 91 - 91 - 92 - 92 - 92 - 92 - 93 - 93 - 93 - 93 - 94 - 94 - 94 - 94 - 95 - 95 - 95 - 95 - 95 - 96 - 96 - 96 - 96 - 97 - 97 - 97 - 97 - 98 - 98 - 98 - 98 - 98 - 99 - 99 - 99 - 99 - 100 - 100 - 100 - 100 - 100 - 101 - 101 - 101 - 101 - 102 - 102 - 102 - 102 - 102 - 103 - 103 - 103 - 103 - 104 - 104 - 104 - 104 - 104 - 105 - 105 - 105 - 105 - 105 - 106 - 106 - 106 - 106 - 106 - 107 - 107 - 107 - 107 - 107 - 108 - 108 - 108 - 108 - 108 - 109 - 109 - 109 - 109 - 110 - 110 - 110 - 110 - 110 - 111 - 111 - 111 - 111 - 111 - 112 - 112 - 112 - 112 - 112 - 112 - 113 - 113 - 113 - 113 - 113 - 114 - 114 - 114 - 114 - 114 - 115 - 115 - 115 - 115 - 115 - 115 - 116 - 116 - 116 - 116 - 116 - 117 - 117 - 117 - 117 - 117 - 117 - 118 - 118 - 118 - 118 - 118 - 119 - 119 - 119 - 119 - 119 - 119 - 120 - 120 - 120 - 120 - 120 - 120 - 121 - 121 - 121 - 121 - 121 - 122 - 122 - 122 - 122 - 122 - 122 - 123 - 123 - 123 - 123 - 123 - 123 - 124 - 124 - 124 - 124 - 124 - 124 - 125 - 125 - 125 - 125 - 125 - 125 - 126 - 126 - 126 - 126 - 126 - 126 - 127 - 127 - 127 - 127 - 127 - 127 - 128 - 128 - 128 - 128 - 128 - 128 - 128 - 129 - 129 - 129 - 129 - 129 - 129 - 130 - 130 - 130 - 130 - 130 - 130 - 131 - 131 - 131 - 131 - 131 - 131 - 131 - 132 - 132 - 132 - 132 - 132 - 133 - 133 - 133 - 133 - 133 - 133 - 133 - 134 - 134 - 134 - 134 - 134 - 134 - 135 - 135 - 135 - 135 - 135 - 135 - 135 - 136 - 136 - 136 - 136 - 136 - 136 - 136 - 137 - 137 - 137 - 137 - 137 - 137 - 138 - 138 - 138 - 138 - 138 - 138 - 138 - 139 - 139 - 139 - 139 - 139 - 139 - 139 - 140 - 140 - 140 - 140 - 140 - 140 - 140 - 141 - 141 - 141 - 141 - 141 - 141 - 141 - 142 - 142 - 142 - 142 - 142 - 142 - 142 - 143 - 143 - 143 - 143 - 143 - 143 - 143 - 143 - 144 - 144 - 144 - 144 - 144 - 144 - 144 - 145 - 145 - 145 - 145 - 145 - 145 - 146 - 146 - 146 - 146 - 146 - 146 - 146 - 147 - 147 - 147 - 147 - 147 - 147 - 147 - 147 - 148 - 148 - 148 - 148 - 148 - 148 - 148 - 148 - 149 - 149 - 149 - 149 - 149 - 149 - 149 - 150 - 150 - 150 - 150 - 150 - 150 - 150 - 150 - 151 - 151 - 151 - 151 - 151 - 151 - 151 - 151 - 152 - 152 - 152 - 152 - 152 - 152 - 152 - 152 - 153 - 153 - 153 - 153 - 153 - 153 - 154 - 154 - 154 - 154 - 154 - 154 - 154 - 154 - 155 - 155 - 155 - 155 - 155 - 155 - 155 - 155 - 155 - 156 - 156 - 156 - 156 - 156 - 156 - 156 - 156 - 156 - 157 - 157 - 157 - 157 - 157 - 157 - 157 - 157 - 157 - 158 - 158 - 158 - 158 - 158 - 158 - 158 - 158 - 158 - 159 - 159 - 159 - 159 - 159 - 159 - 159 - 159 - 159 - 160 - 160 - 160 - 160 - 160 - 160 - 160 - 160 - 160 - 161 - 161 - 161 - 161 - 161 - 161 - 161 - 161 - 161 - 162 - 162 - 162 - 162 - 162 - 162 - 162 - 162 - 163 - 163 - 163 - 163 - 163 - 163 - 163 - 163 - 164 - 164 - 164 - 164 - 164 - 164 - 164 - 164 - 164 - 165 - 165 - 165 - 165 - 165 - 165 - 165 - 165 - 165 - 166 - 166 - 166 - 166 - 166 - 166 - 166 - 166 - 167 - 167 - 167 - 167 - 167 - 167 - 167 - 167 - 167 - 168 - 168 - 168 - 168 - 168 - 168 - 168 - 168 - 168 - 169 - 169 - 169 - 169 - 169 - 169 - 169 - 169 - 169 - 170 - 170 - 170 - 170 - 170 - 170 - 170 - 170 - 170 - 171 - 171 - 171 - 171 - 171 - 171 - 171 - 171 - 171 - 172 - 172 - 172 - 172 - 172 - 172 - 172 - 172 - 172 - 173 - 173 - 173 - 173 - 173 - 173 - 173 - 173 - 173 - 174 - 174 - 174 - 174 - 174 - 174 - 174 - 174 - 174 - 174 - 175 - 175 - 175 - 175 - 175 - 175 - 175 - 175 - 175 - 175 - 176 - 176 - 176 - 176 - 176 - 176 - 176 - 176 - 176 - 176 - 177 - 177 - 177 - 177 - 177 - 177 - 177 - 177 - 177 - 177 - 177 - 177 - 178 - 178 - 178 - 178 - 178 - 178 - 178 - 178 - 178 - 178 - 179 - 179 - 179 - 179 - 179 - 179 - 179 - 179 - 179 - 180 - 180 - 180 - 180 - 180 - 180 - 180 - 180 - 180 - 180 - 181 - 181 - 181 - 181 - 181 - 181 - 181 - 181 - 181 - 182 - 182 - 182 - 182 - 182 - 182 - 182 - 182 - 182 - 183 - 183 - 183 - 183 - 183 - 183 - 183 - 183 - 183 - 183 - 184 - 184 - 184 - 184 - 184 - 184 - 184 - 184 - 184 - 185 - 185 - 185 - 185 - 185 - 185 - 185 - 185 - 185 - 185 - 186 - 186 - 186 - 186 - 186 - 186 - 186 - 186 - 186 - 186 - 187 - 187 - 187 - 187 - 187 - 187 - 187 - 187 - 187 - 188 - 188 - 188 - 188 - 188 - 188 - 188 - 188 - 188 - 188 - 189 -16/08/2020 19:04:08 -cooling down -16/08/2020 19:06:08 - 193 - 193 - 193 - 193 - 193 - 193 - 192 - 192 - 192 - 192 - 192 - 192 - 192 - 192 - 191 - 191 - 191 - 191 - 191 - 191 - 190 - 190 - 190 - 190 - 190 - 189 - 189 - 189 - 189 - 188 - 188 - 188 - 188 - 187 - 187 - 187 - 186 - 186 - 186 - 185 - 185 - 185 - 185 - 184 - 184 - 184 - 183 - 183 - 183 - 182 - 182 - 182 - 181 - 181 - 181 - 180 - 180 - 180 - 179 - 179 - 179 - 178 - 178 - 178 - 178 - 177 - 177 - 176 - 176 - 176 - 175 - 175 - 175 - 174 - 174 - 174 - 174 - 173 - 173 - 173 - 172 - 172 - 172 - 171 - 171 - 171 - 171 - 170 - 170 - 170 - 169 - 169 - 169 - 169 - 168 - 168 - 168 - 167 - 167 - 167 - 167 - 166 - 166 - 166 - 166 - 165 - 165 - 165 - 165 - 164 - 164 - 164 - 164 - 163 - 163 - 163 - 163 - 162 - 162 - 162 - 162 - 161 - 161 - 161 - 161 - 160 - 160 - 160 - 160 - 159 - 159 - 159 - 159 - 158 - 158 - 158 - 158 - 158 - 157 - 157 - 157 - 157 - 157 - 156 - 156 - 156 - 156 - 156 - 155 - 155 - 155 - 155 - 155 - 154 - 154 - 154 - 154 - 154 - 153 - 153 - 153 - 153 - 153 - 153 - 152 - 152 - 152 - 152 - 152 - 151 - 151 - 151 - 151 - 151 - 151 - 150 - 150 - 150 - 150 - 150 - 150 - 149 - 149 - 149 - 149 - 149 - 149 - 149 - 148 - 148 - 148 - 148 - 148 - 148 - 147 - 147 - 147 - 147 - 147 - 147 - 146 - 146 - 146 - 146 - 146 - 146 - 146 - 146 - 145 - 145 - 145 - 145 - 145 - 145 - 145 - 144 - 144 - 144 - 144 - 144 - 144 - 144 - 144 - 143 - 143 - 143 - 143 - 143 - 143 - 143 - 143 - 142 - 142 - 142 - 142 - 142 - 142 - 142 - 142 - 141 - 141 - 141 - 141 - 141 - 141 - 141 - 141 - 141 - 140 - 140 - 140 - 140 - 140 - 140 - 140 - 140 - 140 - 139 - 139 - 139 - 139 - 139 - 139 - 139 - 139 - 139 - 138 - 138 - 138 - 138 - 138 - 138 - 138 - 138 - 138 - 137 - 137 - 137 - 137 - 137 - 137 - 137 - 137 - 137 - 137 - 136 - 136 - 136 - 136 - 136 - 136 - 136 - 136 - 136 - 136 - 136 - 135 - 135 - 135 - 135 - 135 - 135 - 135 - 135 - 135 - 135 - 135 - 134 - 134 - 134 - 134 - 134 - 134 - 134 - 134 - 134 - 134 - 134 - 133 - 133 - 133 - 133 - 133 - 133 - 133 - 133 - 133 - 133 - 133 - 133 - 133 - 132 - 132 - 132 - 132 - 132 - 132 - 132 - 132 - 132 - 132 - 132 - 132 - 131 - 131 - 131 - 131 - 131 - 131 - 131 - 131 - 131 - 131 - 131 - 131 - 130 - 130 - 130 - 130 - 130 - 130 - 130 - 130 - 130 - 130 - 130 - 130 - 130 - 130 - 129 - 129 - 129 - 129 - 129 - 129 - 129 - 129 - 129 - 129 - 129 - 129 - 129 - 129 - 128 - 128 - 128 - 128 - 128 - 128 - 128 - 128 - 128 - 128 - 128 - 128 - 128 - 128 - 128 - 127 - 127 - 127 - 127 - 127 - 127 - 127 - 127 - 127 - 127 - 127 - 127 - 127 - 127 - 127 - 126 - 126 - 126 - 126 - 126 - 126 - 126 - 126 - 126 - 126 - 126 - 126 - 126 - 126 - 126 - 125 - 125 - 125 - 125 - 125 - 125 - 125 - 125 - 125 - 125 - 125 - 125 - 125 - 125 - 125 - 125 - 125 - 124 - 124 - 124 - 124 - 124 - 124 - 124 - 124 - 124 - 124 - 124 - 124 - 124 - 124 - 124 - 124 - 124 - 123 - 123 - 123 - 123 - 123 - 123 - 123 - 123 - 123 - 123 - 123 - 123 - 123 - 123 - 123 - 123 - 123 - 122 - 122 - 122 - 122 - 122 - 122 - 122 - 122 - 122 - 122 - 122 - 122 - 122 - 122 - 122 - 122 - 122 - 122 - 122 - 121 - 121 - 121 - 121 - 121 - 121 - 121 - 121 - 121 - 121 - 121 - 121 - 121 - 121 - 121 - 121 - 121 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 120 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 119 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 118 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 117 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 116 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 115 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 114 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 113 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 112 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 111 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 110 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 109 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 108 - 107 - 107 - 107 - 107 - 107 - 107 - 107 - 107 - 107 - 107 - 107 - 107 - 107 - 107 - 107 - 107 - 107 - 107 - 107 - 107 - 107 - 107 - 107 - 107 - 107 - 107 - 107 - 107 - 107 - 106 - 106 - 106 - 106 - 106 - 106 - 106 - 106 - 106 - 106 - 106 - 106 - 106 - 106 - 106 - 106 - 106 - 106 - 106 - 106 - 106 - 106 - 106 - 106 - 106 - 106 - 106 - 106 - 106 - 105 - 105 - 105 - 105 - 105 - 105 - 105 - 105 - 105 - 105 - 105 - 105 - 105 - 105 - 105 - 105 - 105 - 105 - 105 - 105 - 105 - 105 - 105 - 105 - 105 - 105 - 105 - 105 - 105 - 105 - 104 - 104 - 104 - 104 - 104 - 104 - 104 - 104 - 104 - 104 - 104 - 104 - 104 - 104 - 104 - 104 - 104 - 104 - 104 - 104 - 104 - 104 - 104 - 104 - 104 - 104 - 104 - 104 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 103 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 102 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 101 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 100 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 99 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 98 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 97 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 96 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 95 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 94 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 93 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 92 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 91 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 90 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 89 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 88 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 87 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 86 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 85 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 84 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 83 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 82 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 81 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 80 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 79 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 78 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 77 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 76 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 75 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 74 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 73 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 72 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 71 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 70 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 69 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 68 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 67 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 66 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 65 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 64 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 63 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 62 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 61 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 59 -16/08/2020 20:12:40 -Heating to 190 -16/08/2020 20:12:40 - 59 - 59 - 59 - 59 - 59 - 59 - 59 - 59 - 59 - 59 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 60 - 61 - 61 - 61 - 61 - 62 - 62 - 62 - 62 - 63 - 63 - 64 - 64 - 64 - 65 - 65 - 66 - 66 - 66 - 67 - 67 - 68 - 68 - 69 - 69 - 70 - 70 - 71 - 71 - 71 - 72 - 72 - 73 - 73 - 74 - 74 - 75 - 75 - 76 - 76 - 77 - 77 - 78 - 78 - 79 - 80 - 80 - 81 - 81 - 82 - 82 - 82 - 83 - 83 - 84 - 84 - 85 - 85 - 86 - 86 - 87 - 87 - 87 - 88 - 88 - 89 - 89 - 90 - 90 - 90 - 91 - 91 - 92 - 92 - 93 - 93 - 93 - 94 - 94 - 95 - 95 - 95 - 96 - 96 - 97 - 97 - 97 - 98 - 98 - 98 - 99 - 99 - 99 - 100 - 100 - 101 - 101 - 101 - 102 - 102 - 102 - 103 - 103 - 103 - 104 - 104 - 104 - 105 - 105 - 105 - 106 - 106 - 106 - 107 - 107 - 107 - 108 - 108 - 108 - 109 - 109 - 109 - 109 - 110 - 110 - 110 - 111 - 111 - 111 - 112 - 112 - 113 - 113 - 113 - 113 - 114 - 114 - 114 - 115 - 115 - 115 - 115 - 116 - 116 - 116 - 116 - 117 - 117 - 117 - 118 - 118 - 118 - 118 - 119 - 119 - 119 - 119 - 120 - 120 - 120 - 120 - 121 - 121 - 121 - 121 - 122 - 122 - 122 - 122 - 123 - 123 - 123 - 123 - 124 - 124 - 124 - 124 - 125 - 125 - 125 - 125 - 126 - 126 - 126 - 126 - 126 - 127 - 127 - 127 - 127 - 128 - 128 - 128 - 128 - 129 - 129 - 129 - 129 - 129 - 130 - 130 - 130 - 130 - 131 - 131 - 131 - 131 - 131 - 132 - 132 - 132 - 132 - 133 - 133 - 133 - 133 - 134 - 134 - 134 - 134 - 134 - 135 - 135 - 135 - 135 - 135 - 136 - 136 - 136 - 136 - 136 - 137 - 137 - 137 - 137 - 137 - 138 - 138 - 138 - 138 - 138 - 139 - 139 - 139 - 139 - 139 - 140 - 140 - 140 - 140 - 140 - 140 - 141 - 141 - 141 - 141 - 141 - 142 - 142 - 142 - 142 - 142 - 142 - 143 - 143 - 143 - 143 - 143 - 144 - 144 - 144 - 144 - 144 - 144 - 145 - 145 - 145 - 145 - 145 - 145 - 146 - 146 - 146 - 146 - 146 - 146 - 147 - 147 - 147 - 147 - 147 - 147 - 148 - 148 - 148 - 148 - 148 - 148 - 149 - 149 - 149 - 149 - 149 - 149 - 150 - 150 - 150 - 150 - 150 - 150 - 151 - 151 - 151 - 151 - 151 - 151 - 151 - 152 - 152 - 152 - 152 - 152 - 152 - 153 - 153 - 153 - 153 - 153 - 153 - 154 - 154 - 154 - 154 - 154 - 154 - 155 - 155 - 155 - 155 - 155 - 155 - 156 - 156 - 156 - 156 - 156 - 156 - 156 - 157 - 157 - 157 - 157 - 157 - 157 - 157 - 158 - 158 - 158 - 158 - 158 - 158 - 159 - 159 - 159 - 159 - 159 - 159 - 159 - 160 - 160 - 160 - 160 - 160 - 160 - 160 - 161 - 161 - 161 - 161 - 161 - 161 - 161 - 162 - 162 - 162 - 162 - 162 - 162 - 162 - 163 - 163 - 163 - 163 - 163 - 163 - 163 - 164 - 164 - 164 - 164 - 164 - 164 - 164 - 164 - 165 - 165 - 165 - 165 - 165 - 165 - 165 - 166 - 166 - 166 - 166 - 166 - 166 - 166 - 166 - 167 - 167 - 167 - 167 - 167 - 167 - 167 - 168 - 168 - 168 - 168 - 168 - 168 - 168 - 169 - 169 - 169 - 169 - 169 - 169 - 169 - 169 - 170 - 170 - 170 - 170 - 170 - 170 - 170 - 171 - 171 - 171 - 171 - 171 - 171 - 171 - 171 - 172 - 172 - 172 - 172 - 172 - 172 - 172 - 173 - 173 - 173 - 173 - 173 - 173 - 173 - 173 - 173 - 174 - 174 - 174 - 174 - 174 - 174 - 174 - 174 - 175 - 175 - 175 - 175 - 175 - 175 - 175 - 175 - 176 - 176 - 176 - 176 - 176 - 176 - 176 - 176 - 176 - 177 - 177 - 177 - 177 - 177 - 177 - 177 - 177 - 177 - 177 - 178 - 178 - 178 - 178 - 178 - 178 - 178 - 178 - 178 - 178 - 178 - 179 - 179 - 179 - 179 - 179 - 179 - 179 - 179 - 179 - 180 - 180 - 180 - 180 - 180 - 180 - 180 - 180 - 180 - 181 - 181 - 181 - 181 - 181 - 181 - 181 - 181 - 181 - 182 - 182 - 182 - 182 - 182 - 182 - 182 - 182 - 182 - 183 - 183 - 183 - 183 - 183 - 183 - 183 - 183 - 184 - 184 - 184 - 184 - 184 - 184 - 184 - 184 - 185 - 185 - 185 - 185 - 185 - 185 - 185 - 185 - 185 - 186 - 186 - 186 - 186 - 186 - 186 - 186 - 186 - 187 - 187 - 187 - 187 - 187 - 187 - 187 - 187 - 187 - 188 - 188 - 188 - 188 - 188 - 188 - 188 - 189 -16/08/2020 20:23:12 -cooling down -17/08/2020 0:35:05 - 42 -17/08/2020 0:35:06 -Heating to 190 -17/08/2020 0:35:06 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 42 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 41 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 40 - 39 - 40 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 39 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 38 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 37 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 36 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 35 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 34 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 33 - 32 - 33 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 32 - 31 - 32 - 32 - 32 - 31 - 31 - 31 - 32 - 31 - 31 - 31 - 31 - 32 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 31 - 30 - 30 - 31 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 30 - 29 - 30 - 30 - 30 - 30 - 30 - 30 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 - 29 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Encoder.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_ssi.cs index d2eb00cb6..0e6c5c7f0 100644 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Encoder.cs +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_ssi.cs @@ -31,25 +31,18 @@ public void OnExecute(StubManager stubManager) for (int i = 0; i < 1000; i++) { + + SSI_Read_Write(FPGA1, F1_LSPARE_ROTENC_MSB, F1_LSPARE_ROTENC_LSB, F1_LSPARE_ROTENC_TX); +// SSI_Read_Write(FPGA1, F1_LDANCER2_ROTENC_MSB, F1_LDANCER2_ROTENC_LSB, F1_LDANCER2_ROTENC_TX); + stubManager.Write("\n"); + k++; + if ( (k & 0x8) == 0x08 ) { + k = 0; + stubManager.Write(" LDANCER1 LDANCER2 \n"); + } - stubManager.Write(ReadEncoder_Dryer() +"\n"); - - Thread.Sleep(100); + Thread.Sleep(10); } } - -Int32 ReadEncoder_Dryer() -{ - Int32 temp; - Int32 temp1; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190); - var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192); - - temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff)); - - return temp; -} diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/GPO_Blower_PWM.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/GPO_Blower_PWM.cs index de04260fa..d7c4894c6 100644 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/GPO_Blower_PWM.cs +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/GPO_Blower_PWM.cs @@ -12,48 +12,26 @@ using Tango.Stubs; include "..\..\Defines\Tango_Defines_Basic.cs" include "Tango_Defines_SSR.cs" -include "Tango_Defines_Tacho.cs" -const int Time_Test_On_Second= 60*30*3 ; //1.5 hour -const string File_Name = @"P:\Scripts\Assemblies\Dryer\Blowe_RMO_LOG.CSV"; //3 hour + public void OnExecute(StubManager stubManager) { - - var RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg8, 0); - UInt32 temp; - SetBit(FPGA1,0x3d2,5,0); //turn on Blower - SetBit(FPGA1,0x3d2,4,1); //Dir + SetBit(FPGA1,0x3d2,4,0); //Dir SetBit(FPGA1,0x3d2,3,1); //Torqer High - const int LOW = 70;//0 - 100% + const int LOW = 50;//0 - 100% var response = stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000400 | 0x112, 0xFF);//Freq 8 bit var response1 = stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000400 | 0x3EC, LOW+1);//Low 8 bit var response2 = stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000400 | 0x3EE, 101 - LOW);//High 8 bit - - - stubManager.WriteToFile(File_Name,",RPM "); - - - for (int i=0;i<Time_Test_On_Second;i++) - - { - Thread.Sleep(1000); - RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg8, 0); - temp=60/12; //60 sec - temp=temp *29166667; - temp=temp/RetVal.Value; - temp=temp/250; - stubManager.AppendToFile(File_Name,i+ ","+ temp ); - - stubManager.Write("Fan5 Speed- \t"+temp + "\n"); -// stubManager.WriteHex(RetVal.Value,4); - - } + Thread.Sleep(4000); SetBit(FPGA1,0x3d2,5,1); //turn off Blower + + // low + high = 100 % in order use the same freq + // there is option to change only the high (low + freq constasnt) this will chnga the freq }
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Load_Dryer_Arm.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Load_Dryer_Arm.cs deleted file mode 100644 index 1ce0a515f..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Load_Dryer_Arm.cs +++ /dev/null @@ -1,224 +0,0 @@ -//------------------------------------------- -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -include "..\..\Defines\Tango_Defines_Basic.cs" -include "..\Defines\Tango_Defines_Motors.cs" - - //-------------------------------------------------------------------------------- - -//-------------------------------------------------------------------------------- -Int32 last_14bit_position; -Int32 position_32bit; - - -public void OnExecute(StubManager stubManager) -{ - - - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190); - var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192); - last_14bit_position = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff)); - position_32bit=0; - - -//Create form - Form form1 = new Form(); - -//-------------------------------------------------------------------------------- - -// Create buttons to use as the accept and cancel buttons. - Button button1 = new Button () - { - Width = 100, - Height = 100, - }; - - Button button2 = new Button () - { - Width = 100, - Height = 100, - }; -//-------------------------------------------------------------------------------- -// Set the text of button - - button1.Text = "ARM HOME"; - - button2.Text = "ARM STRART"; - -//-------------------------------------------------------------------------------- -// Set the position of the button on the form. - - button1.Location = new Point (40, 100); - - button2.Location - = new Point (button1.Left + button1.Width + 10, 100); - -//-------------------------------------------------------------------------------- - // Add button to the form. - - form1.Controls.Add(button1); - - form1.Controls.Add(button2); - -//-------------------------------------------------------------------------------- - -// Set the caption bar text of the form. - - form1.Text = "Load Dryer Arm"; - -//-------------------------------------------------------------------------------- - - // Define the border style of the form to a dialog box. - - form1.FormBorderStyle = FormBorderStyle.FixedDialog; - - // Set the MaximizeBox to false to remove the maximize box. - - form1.MaximizeBox = false; - - // Set the MinimizeBox to false to remove the minimize box. - - form1.MinimizeBox = false; - - // Set the start position of the form to the center of the screen. - - form1.StartPosition = FormStartPosition.CenterScreen; - - - form1.AutoSize = true; - form1.AutoSizeMode = AutoSizeMode.GrowAndShrink; -//-------------------------------------------------------------------------------- - - TextBox TextBox1 = new TextBox () - { - Width = 100, - Height = 10, - Text ="20" - }; -TextBox1.Location = new Point (40, 40); - form1.Controls.Add(TextBox1); -Label Label1 = new Label () - { - Width = 150, - Height = 100, - Text ="Number round" - }; -Label1.Location = new Point (20, 10); - form1.Controls.Add(Label1); - - - -//-------------------------------------------------------------------------------- - - - - button2.Click += (_,__) => - - { - position_32bit=0; - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,5, true, 40); - Thread.Sleep(200); - - while (Math.Abs(ReadEncoder())< (UInt32.Parse(TextBox1.Text)*0x4000)) - - { - Thread.Sleep(200); - - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,5, 3); - - }; - - - -//-------------------------------------------------------------------------------- - - button1.Click += (_,__) => - { - Int32 temp3=0; - Int32 j=0; - position_32bit=0; - Int32 temp=position_32bit; - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,5, false, 40); - Thread.Sleep(200); - - while (temp3==0) - - { - Thread.Sleep(200); - ReadEncoder(); - stubManager.Write("position_32bit " + position_32bit +"\t"); - - if (Math.Abs(position_32bit)> (UInt32.Parse(TextBox1.Text)*0x4000)) - temp3=1; - if (Math.Abs(position_32bit-temp)<0x40) - j=j+1; - else - j=0; - temp=position_32bit; - if (j>3) - temp3=2; - - stubManager.Write("Temp3 " + temp3 +"\n"); - - - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,5, 3); - - }; - -//-------------------------------------------------------------------------------- - -// Display the form as a modal dialog box. - form1.ShowDialog(); - - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,5, 3); - - - return; -} - -Int32 ReadEncoder() -{ - Int32 temp; - Int32 temp1; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190); - var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192); - - temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff)); - if (temp>last_14bit_position) - { - temp1=temp-last_14bit_position; - position_32bit=position_32bit+temp1; - if (temp1>0x2000) - position_32bit=position_32bit-0x4000; - } - else if (temp<last_14bit_position) - - { - temp1=last_14bit_position-temp; - position_32bit=position_32bit-temp1; - if (temp1>0x2000) - position_32bit=position_32bit+0x4000; - } - - last_14bit_position=temp; - - return position_32bit; -} - - - diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Loading_arm_center_calibration.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Loading_arm_center_calibration.cs deleted file mode 100644 index bb502309e..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Loading_arm_center_calibration.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - - -ProgressRequest progressRequest = new ProgressRequest(); -progressRequest.Amount = 0xB1; - -var response = stubManager.Run<ProgressResponse>(progressRequest); - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/blower_rpm.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/blower_rpm.cs deleted file mode 100644 index 13e6af513..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/blower_rpm.cs +++ /dev/null @@ -1,62 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -include "..\..\Defines\Tango_Defines_Basic.cs" -include "Tango_Defines_SSR.cs" -include "Tango_Defines_Tacho.cs" - -const int Time_Test_On_Second= 60*30*3 ; //1.5 hour -const string File_Name = @"P:\Scripts\Assemblies\Dryer\Blowe_RMO_LOG.CSV"; //3 hour - - -public void OnExecute(StubManager stubManager) -{ - - -/* - const int LOW = 75;//0 - 100% - var response = stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000400 | 0x112, 0xFF);//Freq 8 bit - var response1 = stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000400 | 0x3EC, LOW+1);//Low 8 bit - var response2 = stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000400 | 0x3EE, 101 - LOW);//High 8 bit -*/ - - - - - - - - var RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg8, 0); - UInt32 temp; - - -// stubManager.WriteToFile(File_Name,",RPM "); - - - for (int i=0;i<Time_Test_On_Second;i++) - - { - - Thread.Sleep(1000); - RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg8, 0); - temp=60/12; //60 sec - temp=temp *29166667; - temp=temp/RetVal.Value; - temp=temp/250; -// stubManager.AppendToFile(File_Name,i+ ","+ temp ); - - stubManager.Write("Fan5 Speed- \t"+temp + "\n"); -// stubManager.WriteHex(RetVal.Value,4); - - } - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test.csv deleted file mode 100644 index a31cc8341..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test.csv +++ /dev/null @@ -1,1795 +0,0 @@ -24/05/2020 13:21:48 -0,0 -58,0 -75,0 -92,-2 -111,53 -132,36 -151,-53 -172,-14 -192,-117 -212,-100 -248,-149 -268,-309 -289,-377 -309,-453 -328,-462 -350,-539 -369,-687 -388,-747 -410,-829 -431,-842 -451,-922 -464,-991 -494,-1044 -515,-1221 -535,-1237 -557,-1312 -578,-1459 -599,-1538 -619,-1552 -639,-1626 -660,-1701 -685,-1846 -704,-1873 -720,-1940 -733,-2000 -749,-2113 -765,-2172 -783,-2231 -802,-2298 -820,-2369 -836,-2435 -861,-2494 -878,-2525 -899,-2593 -919,-2735 -933,-2809 -952,-2861 -966,-2932 -982,-2986 -996,-2982 -1014,-3033 -1035,-3101 -1052,-3242 -1078,-3239 -1101,-3341 -1124,-3425 -1146,-3570 -1181,-3595 -1203,-3783 -1216,-3799 -1235,-3850 -1250,-3921 -1277,-3984 -1298,-4147 -1318,-4223 -1336,-4294 -1355,-4298 -1374,-4365 -1396,-4444 -1427,-4591 -1458,-4713 -1484,-4751 -1505,-4914 -1533,-4960 -1555,-5028 -1574,-5172 -1596,-5244 -1619,-5268 -1642,-5419 -1664,-5499 -1686,-5520 -1706,-5606 -1733,-5740 -1757,-5783 -1776,-5935 -1793,-6007 -1811,-6065 -1830,-6133 -1849,-6207 -1870,-6276 -1891,-6285 -1912,-6366 -1940,-6511 -1962,-6546 -1977,-6627 -1992,-6683 -2012,-6739 -2032,-6815 -2055,-6963 -2077,-6996 -2093,-7053 -2119,-7114 -2142,-7283 -2164,-7362 -2187,-7380 -2210,-7531 -2235,-7615 -2254,-7642 -2276,-7714 -2302,-7874 -2322,-7900 -2342,-7972 -2373,-8107 -2396,-8161 -2416,-8310 -2442,-8383 -2465,-8413 -2490,-8566 -2512,-8591 -2536,-8677 -2562,-8785 -2581,-8858 -2612,-8929 -2653,-9040 -2681,-9265 -2700,-9302 -2720,-9370 -2741,-9446 -2760,-9591 -2782,-9659 -2805,-9679 -2829,-9834 -2848,-9917 -2866,-9988 -2888,-10052 -2907,-10069 -2925,-10142 -2939,-10213 -2961,-10260 -2997,-10379 -3021,-10549 -3041,-10570 -3062,-10646 -3081,-10717 -3102,-10790 -3124,-10934 -3146,-11013 -3165,-11031 -3183,-11105 -3203,-11176 -3229,-11309 -3251,-11341 -3271,-11427 -3291,-11562 -3309,-11635 -3331,-11704 -3349,-11783 -3367,-11800 -3388,-11860 -3405,-11927 -3434,-11996 -3450,-12165 -3465,-12226 -3484,-12284 -3503,-12351 -3519,-12424 -3532,-12485 -3554,-12535 -3578,-12558 -3600,-12638 -3626,-12784 -3648,-12819 -3670,-12898 -3683,-13042 -3705,-13028 -3728,-13181 -3746,-13196 -3761,-13260 -3780,-13332 -3800,-13399 -3817,-13546 -3837,-13532 -3871,-13699 -3887,-13736 -3906,-13799 -3923,-13929 -3943,-13927 -3963,-14067 -3982,-14138 -3998,-14214 -4017,-14271 -4043,-14281 -4062,-14375 -4078,-14512 -4100,-14570 -4122,-14650 -4143,-14668 -4165,-14750 -4188,-14912 -4205,-14982 -4234,-15015 -4255,-15158 -4268,-15231 -4286,-15282 -4309,-15353 -4323,-15375 -4344,-15488 -4362,-15511 -4381,-15579 -4401,-15647 -4422,-15718 -4444,-15860 -4470,-15888 -4493,-16044 -4515,-16130 -4536,-16147 -4558,-16220 -4575,-16366 -4596,-16434 -4622,-16458 -4644,-16543 -4674,-16690 -4697,-16742 -4714,-16887 -4733,-16945 -4749,-17019 -4772,-17084 -4786,-17104 -4803,-17219 -4820,-17281 -4834,-17347 -4847,-17398 -4878,-17453 -4895,-17500 -4915,-17567 -4935,-17706 -4952,-17778 -4967,-17844 -4985,-17831 -5004,-17962 -5021,-18035 -5037,-18099 -5056,-18159 -5094,-18189 -5113,-18369 -5131,-18440 -5150,-18442 -5169,-18512 -5189,-18582 -5205,-18658 -5220,-18719 -5241,-18775 -5266,-18922 -5287,-19012 -5306,-19028 -5326,-19100 -5349,-19244 -5374,-19335 -5393,-19353 -5410,-19424 -5424,-19486 -5444,-19536 -5471,-19705 -5491,-19721 -5511,-19789 -5529,-19869 -5551,-19944 -5564,-20076 -5586,-20060 -5608,-20205 -5633,-20234 -5652,-20317 -5684,-20387 -5706,-20507 -5722,-20652 -5741,-20713 -5758,-20789 -5774,-20843 -5789,-20839 -5805,-20901 -5827,-20964 -5845,-21104 -5866,-21173 -5886,-21250 -5914,-21265 -5937,-21434 -5952,-21454 -5984,-21572 -6002,-21693 -6022,-21759 -6035,-21827 -6055,-21880 -6074,-21952 -6096,-21963 -6124,-22044 -6139,-22210 -6161,-22270 -6183,-22287 -6201,-22367 -6223,-22432 -6236,-22578 -6255,-22567 -6272,-22706 -6288,-22696 -6333,-22837 -6356,-22935 -6370,-23012 -6392,-23067 -6408,-23144 -6429,-23276 -6446,-23350 -6467,-23413 -6486,-23488 -6507,-23559 -6521,-23575 -6542,-23627 -6562,-23707 -6583,-23777 -6604,-23924 -6628,-24003 -6647,-24020 -6669,-24103 -6696,-24238 -6724,-24362 -6741,-24445 -6760,-24507 -6780,-24579 -6805,-24595 -6829,-24754 -6848,-24777 -6872,-24847 -6890,-24936 -6918,-25083 -6939,-25111 -6956,-25181 -6971,-25240 -6990,-25300 -7007,-25366 -7024,-25432 -7045,-25497 -7064,-25648 -7086,-25710 -7108,-25787 -7137,-25898 -7156,-25978 -7184,-26052 -7202,-26158 -7224,-26220 -7238,-26306 -7255,-26354 -7275,-26415 -7296,-26493 -7310,-26509 -7336,-26584 -7351,-26654 -7370,-26712 -7392,-26779 -7405,-26926 -7426,-26916 -7446,-27058 -7464,-27130 -7483,-27193 -7507,-27270 -7541,-27400 -7555,-27417 -7573,-27468 -7593,-27538 -7616,-27613 -7636,-27759 -7660,-27839 -7677,-27865 -7701,-27933 -7724,-28080 -7743,-28161 -7777,-28174 -7798,-28359 -7821,-28381 -7837,-28533 -7856,-28585 -7875,-28655 -7889,-28723 -7907,-28712 -7934,-28851 -7957,-28890 -7974,-29033 -7989,-29098 -8003,-29087 -8024,-29140 -8048,-29224 -8100,-29328 -8117,-29567 -8146,-29633 -8169,-29672 -8192,-29823 -8209,-29846 -8226,-29909 -8245,-29966 -8258,-30037 -8284,-30092 -8306,-30261 -8329,-30336 -8348,-30355 -8378,-30432 -8402,-30552 -8425,-30632 -8439,-30779 -8459,-30833 -8490,-30859 -8505,-31025 -8519,-31011 -8545,-31067 -8570,-31177 -8592,-31257 -8622,-31430 -8643,-31449 -8662,-31595 -8683,-31670 -8701,-31742 -8721,-31815 -8747,-31838 -8765,-31984 -8786,-32053 -8813,-32076 -8835,-32236 -8854,-32311 -8869,-32381 -8890,-32442 -8904,-32458 -8925,-32575 -8939,-32587 -8952,-32700 -8972,-32751 -9004,-32783 -9026,-32946 -9043,-33020 -9063,-33084 -9081,-33099 -9098,-33168 -9117,-33226 -9139,-33298 -9160,-33382 -9180,-33528 -9202,-33599 -9224,-33614 -9252,-33700 -9274,-33808 -9292,-33884 -9304,-33949 -9326,-34004 -9342,-34154 -9360,-34142 -9377,-34203 -9395,-34272 -9415,-34341 -9445,-34481 -9467,-34531 -9485,-34671 -9505,-34744 -9527,-34761 -9541,-34837 -9556,-34892 -9576,-35011 -9591,-35017 -9610,-35137 -9640,-35168 -9659,-35321 -9682,-35337 -9707,-35423 -9728,-35574 -9750,-35594 -9767,-35681 -9781,-35733 -9797,-35848 -9818,-35909 -9838,-35921 -9867,-36005 -9889,-36110 -9907,-36191 -9931,-36258 -9950,-36410 -9971,-36485 -9989,-36497 -10010,-36562 -10031,-36641 -10057,-36777 -10081,-36820 -10101,-36901 -10123,-37038 -10145,-37121 -10161,-37135 -10180,-37193 -10206,-37285 -10227,-37432 -10248,-37509 -10270,-37525 -10291,-37673 -10313,-37751 -10330,-37830 -10344,-37894 -10368,-37947 -10387,-37972 -10407,-38047 -10425,-38120 -10439,-38183 -10459,-38236 -10486,-38377 -10507,-38415 -10523,-38488 -10541,-38553 -10561,-38620 -10578,-38696 -10592,-38758 -10610,-38810 -10630,-38869 -10652,-38952 -10679,-39094 -10702,-39132 -10724,-39289 -10746,-39361 -10763,-39383 -10792,-39464 -10809,-39617 -10823,-39679 -10837,-39731 -10854,-39716 -10884,-39853 -10901,-39893 -10918,-39957 -10939,-40021 -10959,-40171 -10977,-40241 -10991,-40305 -11007,-40362 -11020,-40350 -11035,-40403 -11051,-40518 -11081,-40576 -11113,-40661 -11132,-40739 -11151,-40873 -11172,-40952 -11194,-41027 -11213,-41043 -11227,-41116 -11248,-41163 -11283,-41294 -11308,-41450 -11329,-41537 -11352,-41553 -11370,-41638 -11391,-41702 -11408,-41850 -11428,-41906 -11448,-41982 -11473,-42053 -11493,-42082 -11512,-42221 -11535,-42291 -11559,-42322 -11579,-42404 -11598,-42538 -11622,-42618 -11644,-42636 -11663,-42718 -11701,-42790 -11718,-42997 -11741,-43062 -11760,-43141 -11778,-43156 -11804,-43232 -11829,-43388 -11849,-43411 -11871,-43482 -11894,-43629 -11919,-43715 -11947,-43746 -11974,-43853 -12021,-44016 -12040,-44123 -12083,-44198 -12103,-44417 -12125,-44487 -12147,-44507 -12178,-44624 -12198,-44707 -12219,-44850 -12241,-44919 -12266,-44937 -12286,-45032 -12309,-45174 -12331,-45195 -12351,-45280 -12384,-45423 -12405,-45472 -12428,-45622 -12447,-45704 -12469,-45707 -12491,-45794 -12508,-45940 -12523,-46004 -12538,-46059 -12553,-46050 -12567,-46104 -12580,-46216 -12605,-46267 -12624,-46295 -12640,-46365 -12659,-46425 -12681,-46498 -12694,-46643 -12716,-46628 -12731,-46772 -12750,-46833 -12775,-46905 -12798,-46942 -12820,-47084 -12846,-47120 -12859,-47197 -12876,-47246 -12895,-47312 -12908,-47378 -12928,-47490 -12942,-47507 -12960,-47562 -12989,-47650 -13009,-47797 -13031,-47876 -13049,-47891 -13069,-47958 -13085,-48034 -13107,-48096 -13126,-48241 -13147,-48314 -13168,-48388 -13195,-48402 -13230,-48571 -13249,-48698 -13263,-48772 -13284,-48821 -13298,-48841 -13316,-48955 -13332,-49021 -13346,-49084 -13359,-49132 -13387,-49123 -13409,-49227 -13432,-49309 -13453,-49458 -13470,-49542 -13490,-49601 -13506,-49672 -13526,-49732 -13544,-49739 -13564,-49809 -13592,-49977 -13615,-49994 -13634,-50072 -13653,-50144 -13669,-50281 -13683,-50276 -13695,-50325 -13711,-50385 -13727,-50499 -13747,-50565 -13767,-50571 -13799,-50650 -13822,-50774 -13841,-50921 -13867,-51000 -13880,-51017 -13914,-51134 -13938,-51268 -13960,-51290 -13980,-51364 -13995,-51508 -14010,-51564 -14028,-51551 -14056,-51710 -14078,-51734 -14112,-51885 -14134,-51931 -14153,-52077 -14175,-52149 -14190,-52230 -14209,-52284 -14231,-52353 -14244,-52374 -14272,-52452 -14291,-52595 -14310,-52661 -14343,-52737 -14364,-52861 -14377,-52933 -14400,-52984 -14413,-53004 -14427,-53122 -14453,-53137 -14470,-53204 -14485,-53263 -14499,-53324 -14521,-53442 -14558,-53478 -14580,-53602 -14602,-53743 -14622,-53826 -14642,-53833 -14665,-53905 -14693,-54058 -14716,-54100 -14735,-54182 -14748,-54247 -14771,-54305 -14791,-54458 -14811,-54528 -14829,-54599 -14856,-54610 -14871,-54775 -14899,-54853 -14913,-54865 -14932,-54981 -14952,-54992 -14970,-55074 -14995,-55136 -15023,-55254 -15042,-55329 -15070,-55470 -15092,-55505 -15115,-55582 -15133,-55729 -15151,-55801 -15170,-55869 -15189,-55934 -15209,-55946 -15228,-56019 -15247,-56088 -15268,-56157 -15295,-56303 -15313,-56343 -15331,-56406 -15344,-56470 -15364,-56581 -15377,-56591 -15395,-56710 -15415,-56715 -15433,-56782 -15454,-56853 -15486,-56935 -15508,-57055 -15528,-57197 -15548,-57271 -15569,-57346 -15588,-57360 -15608,-57429 -15627,-57497 -15648,-57568 -15675,-57713 -15695,-57752 -15718,-57824 -15738,-57978 -15760,-58050 -15779,-58064 -15793,-58136 -15808,-58186 -15826,-58305 -15846,-58374 -15864,-58388 -15890,-58453 -15911,-58611 -15935,-58639 -15949,-58720 -15967,-58768 -15980,-58834 -15998,-58951 -16017,-58954 -16038,-59022 -16059,-59104 -16089,-59245 -16111,-59292 -16133,-59435 -16152,-59518 -16169,-59592 -16192,-59656 -16223,-59674 -16242,-59791 -16260,-59860 -16288,-59930 -16308,-60097 -16328,-60114 -16355,-60185 -16379,-60355 -16398,-60380 -16412,-60442 -16431,-60495 -16445,-60565 -16467,-60619 -16481,-60700 -16506,-60748 -16527,-60918 -16547,-60995 -16565,-61063 -16588,-61069 -16620,-61225 -16641,-61272 -16663,-61342 -16682,-61488 -16702,-61561 -16718,-61634 -16744,-61693 -16766,-61722 -16784,-61874 -16806,-61943 -16827,-61965 -16844,-62041 -16867,-62185 -16887,-62253 -16908,-62329 -16929,-62402 -16951,-62422 -16973,-62581 -16994,-62653 -17014,-62666 -17031,-62736 -17050,-62804 -17064,-62875 -17083,-62926 -17108,-62994 -17144,-63114 -17165,-63287 -17185,-63305 -17204,-63374 -17223,-63446 -17236,-63517 -17253,-63571 -17269,-63630 -17288,-63693 -17310,-63766 -17330,-63846 -17349,-63995 -17375,-64015 -17394,-64086 -17416,-64158 -17432,-64310 -17449,-64380 -17465,-64430 -17479,-64490 -17499,-64484 -17513,-64621 -17539,-64610 -17560,-64771 -17579,-64778 -17593,-64856 -17612,-64905 -17634,-64976 -17653,-65056 -17676,-65193 -17698,-65281 -17715,-65299 -17741,-65361 -17764,-65524 -17785,-65605 -17805,-65622 -17825,-65699 -17849,-65844 -17867,-65866 -17887,-65930 -17907,-66003 -17927,-66079 -17946,-66218 -17965,-66291 -17992,-66358 -18027,-66474 -18051,-66534 -18072,-66683 -18088,-66758 -18110,-66763 -18132,-66837 -18155,-66920 -18172,-67068 -18202,-67131 -18225,-67246 -18245,-67329 -18265,-67339 -18284,-67417 -18307,-67491 -18331,-67647 -18351,-67665 -18370,-67736 -18387,-67806 -18414,-67878 -18433,-68039 -18455,-68042 -18479,-68131 -18500,-68287 -18521,-68358 -18538,-68372 -18552,-68434 -18566,-68489 -18589,-68604 -18609,-68624 -18637,-68784 -18658,-68868 -18679,-68881 -18702,-68961 -18715,-69108 -18737,-69093 -18759,-69239 -18779,-69319 -18802,-69337 -18818,-69484 -18846,-69479 -18870,-69590 -18892,-69738 -18915,-69821 -18931,-69850 -18945,-69900 -18965,-70016 -18979,-70027 -18995,-70150 -19014,-70201 -19049,-70231 -19072,-70345 -19091,-70423 -19106,-70493 -19126,-70547 -19145,-70620 -19163,-70692 -19185,-70760 -19205,-70908 -19242,-70978 -19264,-71059 -19283,-71140 -19297,-71273 -19317,-71258 -19335,-71333 -19353,-71467 -19368,-71534 -19386,-71524 -19404,-71590 -19420,-71722 -19446,-71719 -19468,-71827 -19485,-71896 -19503,-71960 -19521,-72027 -19539,-72097 -19557,-72165 -19579,-72303 -19600,-72377 -19626,-72455 -19647,-72487 -19669,-72627 -19687,-72708 -19703,-72713 -19720,-72778 -19738,-72899 -19759,-72964 -19779,-72979 -19798,-73056 -19830,-73197 -19849,-73242 -19871,-73320 -19889,-73466 -19906,-73528 -19922,-73597 -19937,-73653 -19954,-73717 -19970,-73771 -19988,-73766 -20001,-73831 -20027,-73883 -20049,-74053 -20069,-74069 -20085,-74135 -20099,-74193 -20132,-74250 -20152,-74433 -20172,-74444 -20191,-74517 -20206,-74584 -20234,-74641 -20256,-74814 -20274,-74826 -20296,-74900 -20313,-74979 -20335,-75114 -20352,-75191 -20375,-75250 -20394,-75336 -20413,-75342 -20440,-75504 -20460,-75581 -20482,-75593 -20499,-75676 -20521,-75740 -20540,-75881 -20561,-75956 -20583,-76031 -20602,-76049 -20624,-76119 -20646,-76198 -20673,-76308 -20695,-76379 -20719,-76524 -20738,-76612 -20760,-76620 -20775,-76702 -20793,-76757 -20814,-76827 -20835,-76903 -20858,-77049 -20880,-77071 -20900,-77147 -20912,-77221 -20933,-77275 -20955,-77350 -20975,-77498 -20997,-77567 -21030,-77602 -21064,-77802 -21084,-77847 -21103,-77909 -21121,-77980 -21141,-78050 -21159,-78119 -21176,-78253 -21200,-78323 -21219,-78406 -21235,-78409 -21248,-78532 -21270,-78580 -21299,-78606 -21322,-78781 -21336,-78800 -21354,-78912 -21369,-78984 -21385,-79035 -21400,-79102 -21419,-79164 -21433,-79224 -21459,-79273 -21478,-79314 -21492,-79383 -21509,-79436 -21526,-79499 -21546,-79565 -21566,-79639 -21586,-79718 -21601,-79855 -21623,-79841 -21641,-79987 -21670,-80019 -21690,-80101 -21711,-80242 -21730,-80316 -21749,-80388 -21771,-80394 -21790,-80473 -21811,-80545 -21830,-80690 -21849,-80760 -21874,-80829 -21900,-80954 -21924,-81022 -21941,-81054 -21968,-81218 -21988,-81283 -22008,-81295 -22032,-81372 -22052,-81519 -22073,-81597 -22087,-81610 -22118,-81731 -22146,-81860 -22168,-81881 -22187,-82026 -22210,-82099 -22258,-82180 -22283,-82370 -22333,-82463 -22355,-82578 -22379,-82729 -22401,-82771 -22418,-82836 -22440,-82899 -22457,-82982 -22472,-83048 -22495,-83112 -22521,-83251 -22542,-83288 -22570,-83362 -22586,-83466 -22607,-83590 -22628,-83609 -22648,-83683 -22667,-83821 -22686,-83891 -22706,-83968 -22726,-83978 -22742,-84049 -22762,-84110 -22778,-84181 -22803,-84244 -22823,-84402 -22844,-84478 -22865,-84494 -22882,-84569 -22896,-84632 -22914,-84684 -22934,-84748 -22951,-84832 -22980,-84891 -23001,-85006 -23024,-85078 -23043,-85227 -23060,-85299 -23083,-85366 -23105,-85446 -23129,-85461 -23164,-85600 -23193,-85747 -23214,-85794 -23233,-85930 -23254,-86001 -23274,-86078 -23288,-86093 -23307,-86210 -23327,-86280 -23344,-86292 -23361,-86356 -23385,-86437 -23402,-86582 -23430,-86635 -23451,-86678 -23468,-86756 -23489,-86820 -23503,-86959 -23516,-86943 -23533,-86995 -23553,-87058 -23569,-87131 -23593,-87193 -23615,-87346 -23634,-87423 -23650,-87434 -23672,-87558 -23691,-87575 -23713,-87644 -23738,-87792 -23760,-87822 -23783,-87902 -23805,-88053 -23818,-88132 -23838,-88183 -23851,-88259 -23871,-88313 -23887,-88382 -23900,-88437 -23918,-88423 -23938,-88561 -23959,-88637 -23987,-88649 -24008,-88817 -24032,-88890 -24055,-88928 -24075,-89066 -24088,-89138 -24105,-89123 -24127,-89257 -24150,-89336 -24177,-89353 -24201,-89532 -24224,-89548 -24241,-89632 -24264,-89696 -24280,-89847 -24300,-89910 -24321,-89982 -24343,-89993 -24364,-90076 -24396,-90226 -24413,-90269 -24430,-90333 -24449,-90393 -24470,-90537 -24489,-90617 -24505,-90674 -24519,-90738 -24536,-90728 -24556,-90791 -24580,-90932 -24611,-90957 -24636,-91143 -24658,-91162 -24678,-91307 -24699,-91378 -24721,-91458 -24737,-91477 -24758,-91536 -24777,-91614 -24801,-91754 -24825,-91846 -24846,-91866 -24864,-92013 -24880,-92073 -24899,-92071 -24917,-92206 -24941,-92279 -24963,-92301 -24982,-92381 -25006,-92453 -25028,-92613 -25045,-92625 -25066,-92686 -25084,-92771 -25101,-92828 -25122,-92893 -25141,-93033 -25160,-93105 -25179,-93174 -25199,-93245 -25223,-93263 -25258,-93438 -25278,-93478 -25299,-93620 -25326,-93694 -25350,-93802 -25373,-93889 -25395,-93903 -25417,-94059 -25439,-94137 -25470,-94182 -25483,-94326 -25500,-94380 -25517,-94446 -25539,-94516 -25553,-94585 -25566,-94633 -25582,-94619 -25595,-94680 -25618,-94730 -25640,-94817 -25660,-94962 -25678,-95036 -25697,-95104 -25716,-95173 -25735,-95177 -25754,-95247 -25770,-95326 -25786,-95388 -25803,-95442 -25823,-95507 -25851,-95577 -25869,-95693 -25892,-95755 -25913,-95839 -25933,-95986 -25954,-96065 -25974,-96078 -25993,-96143 -26007,-96217 -26036,-96274 -26056,-96449 -26070,-96517 -26088,-96570 -26109,-96635 -26132,-96654 -26163,-96736 -26185,-96847 -26207,-96933 -26233,-97084 -26256,-97116 -26277,-97261 -26296,-97345 -26311,-97416 -26329,-97471 -26341,-97534 -26358,-97585 -26376,-97651 -26392,-97712 -26411,-97775 -26440,-97846 -26461,-97892 -26480,-98033 -26501,-98112 -26525,-98124 -26549,-98212 -26586,-98329 -26603,-98446 -26619,-98558 -26635,-98619 -26656,-98679 -26681,-98759 -26704,-98792 -26724,-98944 -26747,-98955 -26770,-99039 -26785,-99191 -26801,-99245 -26820,-99307 -26837,-99389 -26866,-99447 -26890,-99493 -26910,-99638 -26927,-99712 -26949,-99780 -26983,-99800 -27010,-99941 -27026,-100094 -27055,-100148 -27083,-100198 -27101,-100358 -27123,-100369 -27139,-100441 -27155,-100500 -27176,-100567 -27190,-100643 -27208,-100697 -27232,-100768 -27252,-100913 -27273,-100994 -27287,-101005 -27309,-101117 -27324,-101137 -27346,-101207 -27368,-101283 -27391,-101428 -27407,-101505 -27421,-101571 -27440,-101623 -27459,-101641 -27478,-101712 -27499,-101774 -27526,-101849 -27541,-102017 -27560,-102067 -27579,-102144 -27593,-102206 -27606,-102258 -27622,-102245 -27648,-102393 -27661,-102463 -27674,-102511 -27693,-102497 -27723,-102642 -27740,-102681 -27759,-102740 -27778,-102812 -27798,-102887 -27814,-103025 -27833,-103016 -27852,-103155 -27873,-103228 -27889,-103243 -27909,-103366 -27929,-103375 -27959,-103450 -27981,-103566 -28000,-103650 -28023,-103789 -28037,-103865 -28057,-103927 -28076,-103993 -28096,-104062 -28116,-104136 -28137,-104144 -28166,-104227 -28189,-104334 -28207,-104422 -28230,-104487 -28260,-104637 -28276,-104752 -28303,-104827 -28325,-104848 -28339,-104926 -28368,-104978 -28384,-105154 -28407,-105215 -28429,-105238 -28447,-105317 -28468,-105374 -28490,-105524 -28511,-105548 -28532,-105617 -28551,-105691 -28582,-105843 -28602,-105885 -28624,-105958 -28639,-106093 -28654,-106153 -28676,-106148 -28698,-106294 -28720,-106372 -28742,-106389 -28762,-106542 -28784,-106612 -28801,-106690 -28834,-106760 -28856,-106883 -28876,-106900 -28894,-107049 -28914,-107042 -28931,-107182 -28949,-107245 -28968,-107309 -28987,-107378 -29008,-107448 -29036,-107466 -29062,-107645 -29084,-107663 -29106,-107742 -29129,-107895 -29150,-107975 -29173,-108080 -29195,-108138 -29221,-108226 -29243,-108255 -29262,-108397 -29276,-108473 -29296,-108522 -29323,-108560 -29346,-108715 -29379,-108786 -29394,-108913 -29415,-108969 -29434,-109041 -29461,-109116 -29478,-109151 -29501,-109218 -29525,-109370 -29546,-109388 -29564,-109472 -29584,-109534 -29604,-109607 -29625,-109740 -29641,-109821 -29657,-109891 -29685,-109942 -29705,-109980 -29724,-110052 -29747,-110193 -29770,-110277 -29789,-110297 -29811,-110368 -29834,-110519 -29856,-110537 -29876,-110614 -29899,-110762 -29925,-110813 -29939,-110875 -29954,-110930 -29971,-111046 -29988,-111112 -30007,-111124 -30021,-111182 -30035,-111297 -30065,-111352 -30091,-111468 -30109,-111560 -30131,-111623 -30145,-111642 -30160,-111691 -30179,-111816 -30202,-111827 -30223,-111907 -30245,-112050 -30266,-112133 -30286,-112154 -30304,-112220 -30332,-112288 -30355,-112411 -30369,-112486 -30389,-112537 -30402,-112608 -30418,-112655 -30434,-112717 -30449,-112778 -30467,-112904 -30480,-112960 -30502,-113018 -30531,-113035 -30554,-113213 -30574,-113228 -30593,-113301 -30612,-113374 -30631,-113442 -30654,-113580 -30682,-113661 -30704,-113771 -30723,-113850 -30748,-113867 -30762,-113953 -30789,-114009 -30814,-114179 -30836,-114199 -30857,-114348 -30871,-114425 -30890,-114479 -30909,-114551 -30931,-114618 -30952,-114639 -30969,-114717 -30990,-114784 -31005,-114922 -31025,-114911 -31050,-115059 -31073,-115144 -31095,-115160 -31114,-115311 -31149,-115366 -31167,-115512 -31193,-115582 -31207,-115617 -31221,-115670 -31244,-115721 -31288,-115805 -31311,-116036 -31331,-116058 -31354,-116131 -31386,-116264 -31410,-116405 -31433,-116425 -31459,-116511 -31481,-116672 -31521,-116700 -31547,-116917 -31567,-116940 -31587,-117015 -31615,-117084 -31634,-117252 -31652,-117261 -31674,-117329 -31689,-117409 -31708,-117464 -31730,-117611 -31746,-117682 -31768,-117742 -31788,-117825 -31805,-117835 -31825,-117900 -31853,-117979 -31873,-118147 -31892,-118171 -31909,-118229 -31923,-118289 -31937,-118405 -31954,-118456 -31976,-118520 -32004,-118537 -32020,-118714 -32033,-118766 -32056,-118753 -32076,-118903 -32096,-118977 -32119,-118992 -32137,-119066 -32159,-119134 -32197,-119261 -32219,-119428 -32238,-119441 -32255,-119514 -32271,-119578 -32289,-119635 -32305,-119700 -32323,-119764 -32338,-119836 -32353,-119886 -32367,-119947 -32381,-120062 -32412,-120135 -32447,-120253 -32469,-120361 -32488,-120442 -32510,-120514 -32524,-120531 -32546,-120648 -32566,-120661 -32581,-120742 -32594,-120791 -32607,-120903 -32639,-120956 -32662,-121074 -32684,-121153 -32707,-121176 -32729,-121326 -32750,-121416 -32773,-121422 -32795,-121508 -32820,-121663 -32844,-121682 -32864,-121836 -32881,-121911 -32896,-121980 -32910,-122031 -32927,-122018 -32948,-122159 -32962,-122224 -32979,-122282 -32994,-122280 -33015,-122336 -33040,-122407 -33077,-122520 -33099,-122639 -33118,-122714 -33134,-122785 -33150,-122847 -33163,-122907 -33182,-122954 -33204,-123027 -33224,-123108 -33251,-123246 -33275,-123289 -33294,-123435 -33318,-123522 -33335,-123536 -33357,-123607 -33378,-123680 -33400,-123825 -33417,-123908 -33438,-123921 -33467,-123977 -33490,-124154 -33511,-124178 -33531,-124253 -33547,-124326 -33563,-124390 -33586,-124443 -33607,-124596 -33626,-124676 -33648,-124740 -33677,-124761 -33699,-124934 -33712,-124951 -33726,-125064 -33743,-125115 -33766,-125180 -33790,-125207 -33813,-125360 -33838,-125448 -33864,-125545 -33890,-125632 -33912,-125666 -33934,-125812 -33960,-125891 -33975,-125927 -33992,-125982 -34011,-126044 -34027,-126114 -34042,-126178 -34063,-126235 -34089,-126306 -34109,-126465 -34131,-126482 -34144,-126559 -34168,-126613 -34188,-126761 -34206,-126833 -34226,-126905 -34246,-126978 -34277,-127046 -34306,-127172 -34328,-127280 -34348,-127359 -34368,-127371 -34391,-127449 -34411,-127597 -34431,-127673 -34453,-127740 -34473,-127775 -34496,-127839 -34515,-127987 -34541,-128059 -34566,-128093 -34590,-128256 -34608,-128269 -34632,-128342 -34653,-128492 -34674,-128569 -34695,-128646 -34717,-128661 -34748,-128816 -34769,-128866 -34783,-129005 -34803,-128988 -34819,-129131 -34843,-129204 -34870,-129232 -34891,-129320 -34912,-129463 -34927,-129482 -34955,-129599 -34977,-129710 -34995,-129788 -35011,-129852 -35028,-129913 -35046,-129975 -35065,-130038 -35085,-130115 -35098,-130124 -35114,-130247 -35131,-130298 -35155,-130364 -35197,-130489 -35214,-130608 -35234,-130669 -35250,-130745 -35272,-130806 -35292,-130888 -35306,-130899 -35321,-130954 -35337,-131070 -35368,-131140 -35391,-131252 -35411,-131335 -35426,-131348 -35442,-131406 -35465,-131527 -35479,-131542 -35493,-131594 -35519,-131685 -35545,-131751 -35565,-131854 -35579,-131919 -35593,-132035 -35608,-132085 -35636,-132165 -35656,-132185 -35677,-132262 -35699,-132410 -35722,-132487 -35741,-132504 -35760,-132572 -35788,-132736 -35805,-132758 -35823,-132821 -35839,-132882 -35862,-132947 -35883,-133102 -35903,-133178 -35925,-133248 -35946,-133268 -35961,-133348 -35979,-133415 -36006,-133467 -36026,-133577 -36047,-133644 -36071,-133727 -36098,-133894 -36116,-133913 -36133,-133978 -36153,-134041 -36181,-134112 -36204,-134220 -36226,-134303 -36245,-134453 -36268,-134524 -36287,-134541 -36305,-134611 -36326,-134684 -36360,-134760 -36384,-134958 -36411,-135044 -36429,-135156 -36443,-135143 -36461,-135193 -36482,-135265 -36498,-135416 -36516,-135468 -36544,-135550 -36563,-135570 -36585,-135645 -36607,-135790 -36629,-135865 -36657,-135883 -36682,-136058 -36703,-136087 -36726,-136160 -36746,-136314 -36768,-136389 -36788,-136407 -36806,-136475 -36821,-136544 -36846,-136602 -36866,-136765 -36886,-136840 -36905,-136845 -36921,-136914 -36941,-136980 -36958,-137055 -36980,-137114 -37003,-137264 -37022,-137349 -37048,-137357 -37070,-137515 -37089,-141224 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test1.cs deleted file mode 100644 index 9be6f1ec6..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test1.cs +++ /dev/null @@ -1,78 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - - -Int32 last_14bit_position; -Int32 position_32bit=0; -const Int32 DrierLoadingArm_Motor = 5; -public void OnExecute(StubManager stubManager) -{ - string FileName="test.csv"; - var stopwatch = new Stopwatch(); - stopwatch.Start(); - - long elapsed_time = stopwatch.ElapsedMilliseconds; - - ReadEncoder_Dryer(); - position_32bit=0; - ReadEncoder_Dryer(); - Int32 temp=position_32bit; - - stubManager.WriteToFile(FileName,DateTime.Now +" " ); -//stubManager.AppendToFile("test.csv",elapsed_time+ ","+ position_32bit ); - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, false, 100);//40 - elapsed_time = stopwatch.ElapsedMilliseconds; - stubManager.AppendToFile(FileName,elapsed_time+ ","+ position_32bit ); - while (true) - { - ReadEncoder_Dryer(); - elapsed_time = stopwatch.ElapsedMilliseconds; -stubManager.AppendToFile(FileName,elapsed_time+ ","+ position_32bit ); - Thread.Sleep(1); - } - -} - - - -void ReadEncoder_Dryer() -{ - Int32 temp; - Int32 temp1; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190); - var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192); - - temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff)); - if (temp>last_14bit_position) - { - temp1=temp-last_14bit_position; - position_32bit=position_32bit+temp1; - if (temp1>0x2000) - position_32bit=position_32bit-0x4000; - } - else if (temp<last_14bit_position) - - { - temp1=last_14bit_position-temp; - position_32bit=position_32bit-temp1; - if (temp1>0x2000) - position_32bit=position_32bit+0x4000; - } - - last_14bit_position=temp; - - return ; -} - diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test1.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test1.csv deleted file mode 100644 index ed306d345..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test1.csv +++ /dev/null @@ -1,345 +0,0 @@ -24/05/2020 14:15:24 -0,0 -0,-8 -0,27 -0,32 -0,34 -0,-18 -0,32 -0,36 -0,-20 -0,30 -0,41 -0,35 -0,36 -0,41 -0,36 -0,36 -0,-21 -0,31 -0,-21 -0,30 -0,-21 -0,31 -0,-20 -0,31 -0,-20 -0,31 -0,-21 -0,35 -0,38 -0,30 -0,-21 -0,30 -0,-20 -0,30 -0,-21 -0,31 -0,38 -0,31 -0,-20 -0,30 -0,-20 -0,31 -0,-21 -0,31 -0,-21 -0,30 -0,-22 -0,37 -0,36 -0,38 -0,39 -0,33 -0,-22 -0,30 -0,-21 -0,30 -0,-21 -0,30 -0,-20 -0,31 -0,41 -0,34 -0,40 -0,37 -0,30 -0,-22 -0,34 -0,41 -0,35 -0,37 -0,39 -0,37 -0,40 -0,33 -0,38 -0,33 -0,-20 -0,36 -0,37 -0,39 -0,39 -0,38 -0,37 -0,39 -0,35 -0,36 -0,-21 -0,38 -0,40 -0,32 -0,-22 -0,33 -0,41 -0,31 -0,-22 -0,36 -0,35 -0,32 -0,-17 -0,-22 -0,7 -0,43 -0,122 -0,287 -0,302 -0,374 -0,452 -0,582 -0,725 -0,779 -0,803 -0,799 -0,716 -0,557 -0,454 -0,473 -0,381 -0,349 -0,216 -0,66 -0,96 -0,-62 -0,-157 -0,-231 -0,-327 -0,-310 -0,-463 -0,-542 -0,-600 -0,-712 -0,-789 -0,-807 -0,-957 -0,-1015 -0,-1013 -0,-1172 -0,-1175 -0,-1269 -0,-1400 -0,-1434 -0,-1496 -0,-1573 -0,-1683 -0,-1750 -0,-1781 -0,-1914 -0,-1998 -0,-2131 -0,-2150 -0,-2225 -0,-2269 -0,-2328 -0,-2420 -0,-2553 -0,-2626 -0,-2692 -0,-2768 -0,-2888 -0,-2963 -0,-2969 -0,-3054 -0,-3215 -0,-3229 -0,-3304 -0,-3448 -0,-3526 -0,-3605 -0,-3709 -0,-3780 -0,-3806 -0,-3865 -0,-3984 -0,-3992 -0,-4074 -0,-4222 -0,-4204 -0,-4269 -0,-4407 -0,-4445 -0,-4512 -0,-4586 -0,-4728 -0,-4814 -0,-4875 -0,-4890 -0,-4967 -0,-5038 -0,-5109 -0,-5216 -0,-5297 -0,-5447 -0,-5496 -0,-5566 -0,-5637 -0,-5718 -0,-5724 -0,-5806 -0,-5962 -0,-6037 -0,-6145 -0,-6222 -0,-6235 -0,-6320 -0,-6467 -0,-6490 -0,-6576 -0,-6636 -0,-6784 -0,-7020 -0,-7175 -0,-7206 -0,-7271 -0,-7334 -0,-7405 -0,-7465 -0,-7611 -0,-7684 -0,-7726 -0,-7882 -0,-7909 -0,-7984 -0,-8052 -0,-8183 -0,-8249 -0,-8333 -0,-8383 -0,-8461 -0,-8488 -0,-8553 -0,-8625 -0,-8693 -0,-8831 -0,-8904 -0,-8920 -0,-8998 -0,-9109 -0,-9167 -0,-9195 -0,-9360 -0,-9374 -0,-9433 -0,-9517 -0,-9657 -0,-9721 -0,-9718 -0,-9862 -0,-9934 -0,-9946 -0,-10025 -0,-10191 -0,-10262 -0,-10325 -0,-10379 -0,-10438 -0,-10490 -0,-10559 -0,-10544 -0,-10687 -0,-10757 -0,-10873 -0,-10953 -0,-11008 -0,-11063 -0,-11062 -0,-11215 -0,-11230 -0,-11303 -0,-11378 -0,-11523 -0,-11560 -0,-11706 -0,-11794 -0,-11816 -0,-11868 -0,-11990 -0,-11991 -0,-12065 -0,-12136 -0,-12189 -0,-12350 -0,-12376 -0,-12459 -0,-12527 -0,-12595 -0,-12658 -0,-12798 -0,-12790 -0,-12925 -0,-12999 -0,-13076 -0,-13100 -0,-13259 -0,-13277 -0,-13358 -0,-13505 -0,-13586 -0,-13654 -0,-13676 -0,-13739 -0,-13806 -0,-13958 -0,-14016 -0,-14049 -0,-14118 -0,-14187 -0,-14244 -0,-14297 -0,-14365 -0,-14453 -0,-14595 -0,-14618 -0,-14698 -0,-14754 -0,-14837 -0,-14973 -0,-15045 -0,-15116 -0,-15187 -0,-15235 -0,-15287 -0,-15353 -0,-15386 -0,-15499 -0,-15565 -0,-15616 -0,-15701 -0,-15764 -0,-15787 -0,-15856 -0,-15994 -0,-16074 -0,-16097 -0,-16271 -0,-16340 -0,-16359 -0,-16504 -0,-16502 -0,-16565 -0,-16617 -0,-16692 -0,-16830 -0,-16905 -0,-16944 -0,-17014 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test12.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test12.csv deleted file mode 100644 index 756c780f4..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test12.csv +++ /dev/null @@ -1,283 +0,0 @@ -24/05/2020 14:47:25 -41,0 -63,7 -77,-31 -91,-29 -117,18 -131,-77 -162,-86 -175,-131 -195,-105 -212,-219 -226,-189 -244,-283 -265,-341 -286,-357 -300,-430 -323,-543 -345,-561 -366,-712 -386,-795 -403,-803 -425,-926 -459,-944 -480,-1076 -502,-1145 -524,-1289 -544,-1319 -563,-1389 -585,-1458 -605,-1537 -627,-1681 -649,-1703 -672,-1781 -695,-1925 -723,-2014 -744,-2124 -764,-2190 -789,-2274 -809,-2306 -824,-2441 -841,-2430 -864,-2490 -882,-2636 -904,-2711 -927,-2732 -949,-2809 -973,-2960 -996,-2980 -1010,-3068 -1024,-3117 -1047,-3232 -1071,-3260 -1090,-3409 -1109,-3476 -1131,-3545 -1150,-3563 -1166,-3636 -1180,-3699 -1196,-3749 -1219,-3872 -1243,-3902 -1266,-4051 -1280,-4071 -1293,-4181 -1315,-4230 -1339,-4322 -1356,-4343 -1375,-4400 -1395,-4474 -1412,-4618 -1432,-4683 -1457,-4765 -1486,-4784 -1510,-4961 -1524,-4984 -1547,-5035 -1560,-5115 -1580,-5168 -1597,-5246 -1612,-5312 -1633,-5361 -1653,-5440 -1672,-5577 -1685,-5649 -1709,-5634 -1728,-5788 -1744,-5855 -1758,-5919 -1777,-5969 -1792,-6041 -1808,-6100 -1831,-6160 -1847,-6179 -1866,-6304 -1885,-6312 -1904,-6381 -1930,-6451 -1953,-6620 -1972,-6637 -1994,-6707 -2010,-6851 -2032,-6849 -2054,-6997 -2073,-7014 -2091,-7083 -2121,-7159 -2143,-7267 -2165,-7345 -2181,-7424 -2195,-7556 -2209,-7547 -2229,-7607 -2245,-7669 -2262,-7732 -2276,-7795 -2296,-7847 -2310,-7924 -2329,-7971 -2355,-8048 -2376,-8209 -2398,-8285 -2411,-8299 -2434,-8415 -2457,-8435 -2479,-8582 -2501,-8612 -2519,-8690 -2539,-8753 -2557,-8824 -2576,-8891 -2607,-9028 -2629,-9082 -2645,-9227 -2659,-9290 -2681,-9279 -2698,-9424 -2720,-9487 -2741,-9509 -2761,-9583 -2796,-9738 -2815,-9793 -2834,-9858 -2859,-9996 -2876,-10039 -2890,-10089 -2909,-10148 -2923,-10212 -2945,-10330 -2963,-10344 -2979,-10411 -2994,-10476 -3015,-10533 -3046,-10612 -3069,-10727 -3082,-10804 -3107,-10853 -3122,-10945 -3137,-11001 -3152,-11056 -3170,-11120 -3189,-11187 -3208,-11256 -3229,-11327 -3248,-11473 -3266,-11536 -3283,-11607 -3296,-11664 -3319,-11648 -3341,-11799 -3354,-11817 -3374,-11932 -3390,-12002 -3405,-12061 -3427,-12121 -3440,-12139 -3458,-12251 -3473,-12260 -3490,-12374 -3512,-12438 -3546,-12457 -3565,-12580 -3588,-12657 -3611,-12809 -3631,-12894 -3653,-12902 -3677,-12986 -3696,-13139 -3716,-13210 -3739,-13225 -3757,-13306 -3777,-13372 -3807,-13512 -3830,-13560 -3847,-13707 -3863,-13771 -3885,-13831 -3908,-13917 -3924,-13944 -3947,-13997 -3967,-14147 -4025,-14263 -4060,-14374 -4083,-14502 -4106,-14586 -4129,-14735 -4143,-14759 -4162,-14875 -4180,-14945 -4199,-15010 -4222,-15017 -4240,-15175 -4258,-15243 -4278,-15305 -4292,-15377 -4318,-15431 -4342,-15476 -4361,-15622 -4380,-15690 -4395,-15758 -4410,-15817 -4427,-15808 -4443,-15863 -4462,-15925 -4476,-15996 -4496,-16050 -4513,-16126 -4534,-16187 -4568,-16345 -4587,-16454 -4603,-16526 -4619,-16582 -4641,-16645 -4663,-16728 -4676,-16740 -4689,-16854 -4702,-16901 -4720,-16884 -4734,-16954 -4753,-17004 -4774,-17075 -4795,-17230 -4812,-17304 -4828,-17365 -4842,-17425 -4863,-17481 -4877,-17556 -4891,-17608 -4911,-17594 -4926,-17738 -4946,-17724 -4973,-17877 -4996,-17905 -5020,-17982 -5043,-18144 -5063,-18160 -5078,-18236 -5097,-18286 -5110,-18359 -5126,-18407 -5146,-18474 -5161,-18539 -5174,-18658 -5192,-18708 -5205,-18773 -5220,-18823 -5249,-18813 -5270,-18926 -5287,-19001 -5303,-19069 -5324,-19129 -5344,-19202 -5360,-19341 -5383,-19409 -5401,-19431 -5415,-19493 -5430,-19607 -5443,-19660 -5464,-19716 -5554,-20053 -5575,-20128 -5592,-20147 -5612,-20199 -5631,-20274 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test13.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test13.csv deleted file mode 100644 index 7344cf879..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test13.csv +++ /dev/null @@ -1,290 +0,0 @@ -24/05/2020 14:47:49 -41,0 -56,0 -71,0 -90,-1 -104,-9 -122,-19 -155,-104 -176,-162 -197,-137 -216,-184 -235,-295 -257,-352 -279,-425 -300,-496 -321,-510 -342,-592 -356,-736 -371,-722 -387,-772 -405,-829 -426,-907 -445,-1049 -476,-1115 -497,-1171 -516,-1318 -534,-1335 -555,-1450 -576,-1462 -594,-1542 -613,-1609 -627,-1680 -645,-1727 -666,-1795 -689,-1944 -710,-2032 -738,-2045 -758,-2209 -779,-2291 -797,-2301 -811,-2367 -827,-2478 -843,-2537 -859,-2598 -874,-2660 -893,-2721 -914,-2789 -934,-2866 -956,-2879 -982,-2962 -999,-3121 -1019,-3185 -1039,-3194 -1057,-3274 -1082,-3420 -1102,-3494 -1122,-3567 -1136,-3578 -1149,-3690 -1164,-3743 -1178,-3797 -1199,-3790 -1228,-3950 -1249,-3977 -1267,-4119 -1289,-4183 -1306,-4263 -1329,-4332 -1350,-4351 -1363,-4425 -1400,-4481 -1422,-4620 -1436,-4764 -1450,-4750 -1475,-4805 -1491,-4961 -1508,-5022 -1525,-5084 -1543,-5150 -1569,-5234 -1585,-5243 -1605,-5304 -1622,-5379 -1639,-5441 -1659,-5502 -1681,-5581 -1701,-5726 -1729,-5801 -1743,-5838 -1778,-5901 -1802,-6033 -1817,-6174 -1839,-6236 -1853,-6310 -1867,-6364 -1881,-6353 -1897,-6406 -1912,-6467 -1930,-6519 -1953,-6589 -1975,-6741 -1995,-6823 -2014,-6847 -2030,-6906 -2052,-6966 -2065,-7038 -2085,-7155 -2104,-7159 -2117,-7229 -2131,-7346 -2147,-7395 -2174,-7456 -2211,-7505 -2232,-7630 -2247,-7777 -2263,-7763 -2282,-7824 -2305,-7959 -2320,-8049 -2333,-8098 -2350,-8149 -2367,-8216 -2385,-8211 -2407,-8342 -2432,-8429 -2453,-8453 -2470,-8596 -2493,-8661 -2513,-8747 -2532,-8815 -2552,-8873 -2574,-8924 -2590,-8913 -2605,-8955 -2627,-9053 -2647,-9020 -2675,-9031 -2698,-9022 -2719,-9025 -2734,-9025 -2752,-9025 -2768,-9025 -2782,-9025 -2802,-9025 -2821,-9025 -2843,-9025 -2863,-9025 -2881,-9025 -2904,-9025 -2931,-9025 -2948,-9025 -2967,-9025 -2982,-9025 -2997,-9025 -3021,-9025 -3057,-9025 -3080,-9025 -3102,-9025 -3117,-9025 -3133,-9025 -3150,-9025 -3178,-9025 -3203,-9025 -3217,-9025 -3231,-9025 -3249,-9025 -3265,-9025 -3285,-9025 -3300,-9025 -3319,-9025 -3336,-9025 -3350,-9025 -3370,-9025 -3385,-9025 -3411,-9025 -3433,-9025 -3449,-9025 -3464,-9025 -3478,-9025 -3498,-9025 -3518,-9025 -3532,-9025 -3552,-9025 -3567,-9025 -3585,-9025 -3604,-9025 -3633,-9025 -3654,-9025 -3676,-9025 -3697,-9025 -3718,-9025 -3737,-9025 -3757,-9025 -3773,-9025 -3786,-9025 -3806,-9025 -3821,-9025 -3835,-9025 -3853,-9025 -3880,-9025 -3902,-9025 -3920,-9025 -3938,-9025 -3952,-9025 -3966,-9025 -3986,-9025 -4007,-9025 -4027,-9025 -4047,-9025 -4061,-9025 -4082,-9025 -4106,-9025 -4134,-9025 -4148,-9025 -4164,-9025 -4177,-9025 -4194,-9025 -4207,-9025 -4220,-9025 -4232,-9025 -4248,-9025 -4269,-9025 -4288,-9025 -4308,-9025 -4324,-9025 -4352,-9025 -4374,-9025 -4388,-9025 -4411,-9025 -4427,-9025 -4444,-9025 -4463,-9025 -4478,-9025 -4499,-9025 -4521,-9025 -4541,-9025 -4559,-9025 -4572,-9025 -4602,-9025 -4624,-9025 -4640,-9025 -4653,-9025 -4670,-9025 -4684,-9025 -4702,-9025 -4720,-9025 -4733,-9025 -4748,-9025 -4766,-9025 -4780,-9025 -4803,-9025 -4822,-9025 -4837,-9025 -4860,-9025 -4883,-9025 -4906,-9025 -4920,-9025 -4933,-9025 -4956,-9025 -4973,-9025 -4993,-9025 -5013,-9025 -5030,-9025 -5062,-9025 -5085,-9025 -5104,-9025 -5126,-9025 -5140,-9025 -5156,-9025 -5172,-9025 -5189,-9025 -5205,-9025 -5225,-9025 -5245,-9025 -5263,-9025 -5280,-9025 -5310,-9025 -5323,-9025 -5372,-9025 -5401,-9025 -5421,-9025 -5435,-9025 -5450,-9025 -5467,-9025 -5489,-9025 -5513,-9025 -5533,-9025 -5554,-9025 -5584,-9025 -5605,-9025 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test14.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test14.csv deleted file mode 100644 index 82a9b98c3..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test14.csv +++ /dev/null @@ -1,224 +0,0 @@ -24/05/2020 14:48:02 -40,0 -59,0 -80,0 -116,-3 -138,-99 -159,-72 -180,-172 -203,-146 -224,-203 -243,-262 -264,-315 -282,-379 -301,-438 -324,-525 -346,-674 -364,-752 -393,-814 -415,-929 -434,-948 -454,-1015 -474,-1086 -496,-1165 -515,-1315 -537,-1381 -558,-1400 -578,-1477 -597,-1553 -618,-1685 -639,-1765 -660,-1840 -680,-1856 -703,-1936 -725,-2078 -751,-2113 -794,-2297 -816,-2356 -836,-2431 -857,-2510 -886,-2660 -907,-2696 -921,-2836 -946,-2907 -967,-2987 -988,-2997 -1010,-3077 -1029,-3223 -1045,-3295 -1064,-3354 -1082,-3423 -1105,-3491 -1127,-3519 -1148,-3601 -1170,-3738 -1184,-3817 -1199,-3868 -1216,-3930 -1232,-3989 -1247,-3983 -1266,-4043 -1282,-4114 -1309,-4244 -1334,-4286 -1348,-4368 -1363,-4416 -1382,-4485 -1400,-4551 -1415,-4621 -1431,-4669 -1450,-4736 -1470,-4804 -1492,-4882 -1518,-5027 -1540,-5060 -1560,-5212 -1579,-5279 -1593,-5352 -1612,-5400 -1633,-5470 -1650,-5548 -1671,-5616 -1691,-5637 -1710,-5702 -1727,-5774 -1755,-5907 -1777,-5950 -1793,-6030 -1814,-6086 -1833,-6231 -1854,-6298 -1868,-6378 -1887,-6426 -1908,-6454 -1931,-6526 -1949,-6600 -1985,-6758 -2007,-6873 -2026,-6957 -2046,-7021 -2066,-7031 -2082,-7104 -2095,-7165 -2115,-7280 -2132,-7285 -2149,-7354 -2164,-7414 -2182,-7538 -2212,-7542 -2231,-7725 -2250,-7787 -2266,-7796 -2284,-7915 -2304,-7929 -2326,-8015 -2348,-8148 -2372,-8233 -2392,-8259 -2411,-8326 -2439,-8391 -2462,-8507 -2485,-8587 -2498,-8649 -2519,-8751 -2538,-8801 -2551,-8781 -2564,-8872 -2585,-8835 -2599,-8925 -2625,-8929 -2647,-8919 -2667,-8921 -2687,-8921 -2702,-8921 -2724,-8921 -2745,-8921 -2763,-8921 -2785,-8921 -2806,-8921 -2819,-8921 -2842,-8921 -2865,-8921 -2887,-8921 -2908,-8921 -2922,-8921 -2935,-8921 -2956,-8921 -2977,-8921 -3004,-8921 -3029,-8921 -3046,-8921 -3063,-8921 -3092,-8921 -3107,-8921 -3124,-8921 -3140,-8921 -3159,-8921 -3180,-8921 -3201,-8921 -3222,-8921 -3241,-8921 -3261,-8921 -3281,-8921 -3307,-8921 -3330,-8921 -3348,-8921 -3366,-8921 -3381,-8921 -3399,-8921 -3418,-8921 -3433,-8921 -3455,-8921 -3474,-8921 -3493,-8921 -3515,-8921 -3543,-8921 -3565,-8921 -3587,-8921 -3607,-8921 -3620,-8922 -3634,-8922 -3647,-8922 -3666,-8922 -3684,-8922 -3704,-8922 -3717,-8922 -3735,-8922 -3764,-8922 -3785,-8922 -3805,-8922 -3826,-8922 -3845,-8922 -3861,-8922 -3879,-8922 -3896,-8922 -3911,-8922 -3928,-8922 -3945,-8922 -3966,-8922 -3997,-8922 -4021,-8922 -4041,-8922 -4062,-8922 -4080,-8922 -4099,-8921 -4115,-8921 -4135,-8921 -4156,-8921 -4177,-8921 -4199,-8921 -4226,-8921 -4249,-8921 -4273,-8921 -4286,-8921 -4301,-8921 -4317,-8921 -4338,-8921 -4360,-8921 -4381,-8921 -4405,-8921 -4428,-8921 -4448,-8921 -4477,-8921 -4497,-8921 -4521,-8921 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test15.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test15.csv deleted file mode 100644 index 7099494c8..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test15.csv +++ /dev/null @@ -1,181 +0,0 @@ -24/05/2020 14:48:15 -55,0 -74,0 -88,-1 -102,-5 -123,-18 -146,22 -168,-82 -191,-121 -215,-103 -238,-166 -260,-233 -281,-298 -299,-375 -322,-506 -353,-598 -375,-710 -392,-782 -417,-849 -439,-884 -461,-1026 -477,-1102 -500,-1169 -522,-1195 -545,-1340 -567,-1421 -596,-1449 -619,-1620 -637,-1636 -658,-1698 -678,-1782 -701,-1928 -726,-1951 -746,-2029 -768,-2175 -791,-2201 -813,-2277 -841,-2358 -862,-2468 -883,-2544 -906,-2682 -925,-2766 -939,-2837 -953,-2891 -968,-2943 -984,-2929 -999,-2991 -1019,-3044 -1055,-3205 -1088,-3337 -1112,-3382 -1137,-3482 -1156,-3559 -1181,-3705 -1202,-3784 -1219,-3805 -1235,-3867 -1258,-3929 -1277,-4008 -1291,-4085 -1323,-4135 -1343,-4255 -1359,-4325 -1372,-4386 -1394,-4500 -1415,-4523 -1435,-4597 -1455,-4733 -1475,-4810 -1492,-4887 -1512,-4948 -1531,-4957 -1560,-5027 -1575,-5204 -1591,-5251 -1610,-5310 -1623,-5380 -1638,-5435 -1654,-5422 -1672,-5481 -1694,-5550 -1713,-5696 -1735,-5765 -1762,-5788 -1782,-5951 -1802,-6024 -1821,-6099 -1844,-6108 -1866,-6188 -1886,-6335 -1906,-6410 -1928,-6484 -1944,-6500 -1958,-6563 -1972,-6677 -1996,-6725 -2019,-6756 -2041,-6905 -2061,-6986 -2081,-7062 -2102,-7075 -2126,-7155 -2149,-7303 -2171,-7384 -2193,-7411 -2212,-7554 -2242,-7623 -2261,-7670 -2285,-7825 -2305,-7834 -2327,-7903 -2344,-7989 -2364,-8053 -2383,-8188 -2402,-8258 -2425,-8331 -2447,-8361 -2482,-8435 -2504,-8558 -2529,-8624 -2551,-8694 -2571,-8745 -2593,-8850 -2615,-8822 -2662,-8898 -2684,-8890 -2719,-8890 -2741,-8890 -2761,-8890 -2780,-8891 -2802,-8891 -2822,-8891 -2841,-8891 -2864,-8891 -2878,-8891 -2895,-8891 -2909,-8891 -2935,-8891 -2960,-8891 -2977,-8891 -2993,-8891 -3008,-8891 -3027,-8891 -3044,-8891 -3064,-8891 -3085,-8891 -3104,-8891 -3122,-8891 -3148,-8891 -3172,-8891 -3193,-8891 -3208,-8891 -3222,-8891 -3240,-8891 -3264,-8891 -3282,-8891 -3304,-8891 -3326,-8891 -3343,-8891 -3360,-8891 -3384,-8891 -3407,-8891 -3433,-8891 -3450,-8891 -3470,-8891 -3484,-8891 -3499,-8891 -3513,-8891 -3527,-8891 -3547,-8891 -3569,-8891 -3593,-8891 -3616,-8890 -3629,-8890 -3652,-8890 -3670,-8890 -3691,-8890 -3706,-8890 -3726,-8890 -3744,-8890 -3762,-8890 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test16.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test16.csv deleted file mode 100644 index a5743e552..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test16.csv +++ /dev/null @@ -1,231 +0,0 @@ -24/05/2020 14:48:26 -44,0 -61,0 -82,0 -102,-5 -123,-17 -136,25 -150,4 -180,-83 -201,-141 -218,-125 -236,-166 -258,-282 -279,-287 -301,-362 -323,-443 -342,-587 -359,-663 -381,-725 -399,-739 -421,-805 -444,-959 -474,-1007 -497,-1159 -513,-1244 -534,-1297 -548,-1371 -562,-1423 -581,-1477 -602,-1553 -622,-1625 -646,-1642 -664,-1719 -691,-1860 -711,-1891 -732,-1967 -752,-2042 -771,-2185 -790,-2261 -809,-2329 -829,-2394 -852,-2408 -886,-2563 -911,-2694 -931,-2718 -960,-2797 -982,-2969 -999,-2982 -1019,-3046 -1041,-3126 -1062,-3274 -1081,-3346 -1101,-3417 -1115,-3430 -1135,-3548 -1149,-3556 -1177,-3676 -1199,-3778 -1220,-3863 -1242,-3878 -1259,-3957 -1276,-4097 -1291,-4091 -1305,-4144 -1328,-4199 -1343,-4283 -1363,-4336 -1388,-4412 -1402,-4569 -1416,-4618 -1430,-4605 -1448,-4663 -1470,-4729 -1492,-4876 -1507,-4896 -1521,-5013 -1552,-5028 -1572,-5116 -1602,-5250 -1619,-5300 -1635,-5361 -1655,-5421 -1670,-5496 -1690,-5554 -1717,-5697 -1743,-5745 -1759,-5901 -1780,-5957 -1802,-6035 -1820,-6054 -1846,-6118 -1869,-6281 -1884,-6303 -1903,-6424 -1924,-6432 -1939,-6509 -1957,-6562 -1970,-6626 -1984,-6744 -2004,-6797 -2018,-6869 -2036,-6921 -2062,-6986 -2084,-7019 -2103,-7100 -2119,-7232 -2140,-7228 -2163,-7373 -2186,-7404 -2207,-7551 -2227,-7626 -2247,-7702 -2268,-7718 -2283,-7794 -2311,-7849 -2331,-8015 -2350,-8087 -2367,-8150 -2386,-8193 -2405,-8177 -2423,-8227 -2436,-8325 -2456,-8288 -2473,-8313 -2487,-8316 -2516,-8310 -2534,-8311 -2550,-8311 -2579,-8311 -2593,-8311 -2615,-8311 -2635,-8311 -2651,-8311 -2674,-8311 -2695,-8311 -2712,-8311 -2739,-8311 -2763,-8311 -2784,-8311 -2806,-8311 -2822,-8311 -2838,-8311 -2859,-8311 -2876,-8311 -2891,-8311 -2908,-8311 -2922,-8311 -2940,-8311 -2964,-8311 -2996,-8311 -3029,-8311 -3043,-8311 -3065,-8311 -3087,-8311 -3101,-8311 -3120,-8311 -3133,-8311 -3149,-8311 -3166,-8311 -3179,-8311 -3195,-8311 -3222,-8311 -3237,-8311 -3256,-8311 -3275,-8311 -3288,-8311 -3301,-8311 -3316,-8311 -3335,-8311 -3348,-8311 -3370,-8311 -3383,-8311 -3404,-8311 -3425,-8311 -3441,-8311 -3457,-8311 -3474,-8311 -3491,-8311 -3505,-8311 -3518,-8311 -3535,-8311 -3549,-8311 -3565,-8311 -3589,-8311 -3617,-8311 -3640,-8311 -3669,-8311 -3688,-8311 -3703,-8311 -3725,-8311 -3739,-8311 -3756,-8311 -3773,-8311 -3793,-8311 -3810,-8311 -3823,-8311 -3851,-8311 -3867,-8311 -3887,-8311 -3908,-8311 -3922,-8311 -3942,-8311 -3963,-8311 -3986,-8311 -4005,-8311 -4027,-8311 -4041,-8311 -4074,-8311 -4097,-8311 -4119,-8311 -4142,-8311 -4159,-8311 -4176,-8311 -4193,-8311 -4206,-8311 -4219,-8311 -4238,-8311 -4252,-8311 -4277,-8311 -4303,-8311 -4321,-8311 -4340,-8311 -4362,-8311 -4382,-8311 -4406,-8311 -4423,-8311 -4438,-8312 -4456,-8312 -4473,-8312 -4490,-8312 -4518,-8312 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test2.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test2.csv deleted file mode 100644 index ba03e113f..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test2.csv +++ /dev/null @@ -1,271 +0,0 @@ -24/05/2020 14:16:54 -0,0 -0,8 -0,80 -0,-7 -0,-34 -0,-163 -0,-239 -0,-342 -0,-385 -0,-457 -0,-479 -0,-630 -0,-672 -0,-752 -0,-856 -0,-1017 -0,-989 -0,-1092 -0,-1160 -0,-1179 -0,-1350 -0,-1424 -0,-1433 -0,-1507 -0,-1580 -0,-1630 -0,-1732 -0,-1717 -0,-1850 -0,-1932 -0,-1995 -0,-2042 -0,-2125 -0,-2151 -0,-2230 -0,-2375 -0,-2439 -0,-2467 -0,-2618 -0,-2700 -0,-2711 -0,-2785 -0,-2906 -0,-2969 -0,-3038 -0,-3121 -0,-3265 -0,-3339 -0,-3412 -0,-3467 -0,-3481 -0,-3545 -0,-3719 -0,-3738 -0,-3802 -0,-3890 -0,-4028 -0,-4107 -0,-4120 -0,-4192 -0,-4277 -0,-4424 -0,-4489 -0,-4522 -0,-4672 -0,-4741 -0,-4795 -0,-4788 -0,-4926 -0,-4987 -0,-5060 -0,-5130 -0,-5204 -0,-5305 -0,-5386 -0,-5458 -0,-5520 -0,-5539 -0,-5617 -0,-5771 -0,-5790 -0,-5873 -0,-6011 -0,-6076 -0,-6119 -0,-6188 -0,-6259 -0,-6407 -0,-6476 -0,-6548 -0,-6611 -0,-6675 -0,-6739 -0,-6749 -0,-6925 -0,-6941 -0,-7023 -0,-7165 -0,-7227 -0,-7298 -0,-7372 -0,-7424 -0,-7498 -0,-7520 -0,-7583 -0,-7751 -0,-7815 -0,-7892 -0,-7902 -0,-7977 -0,-8029 -0,-8146 -0,-8199 -0,-8217 -0,-8340 -0,-8397 -0,-8436 -0,-8578 -0,-8650 -0,-8702 -0,-8776 -0,-8850 -0,-8872 -0,-8931 -0,-9002 -0,-9123 -0,-9194 -0,-9266 -0,-9411 -0,-9491 -0,-9498 -0,-9559 -0,-9719 -0,-9789 -0,-9858 -0,-9881 -0,-9963 -0,-10084 -0,-10233 -0,-10309 -0,-10373 -0,-10438 -0,-10500 -0,-10684 -0,-10769 -0,-10785 -0,-10897 -0,-11015 -0,-10998 -0,-11132 -0,-11206 -0,-11242 -0,-11399 -0,-11466 -0,-11531 -0,-11603 -0,-11608 -0,-11779 -0,-11860 -0,-11925 -0,-11943 -0,-12093 -0,-12163 -0,-12216 -0,-12213 -0,-12348 -0,-12430 -0,-12444 -0,-12511 -0,-12681 -0,-12702 -0,-12784 -0,-12854 -0,-12909 -0,-12980 -0,-13118 -0,-13180 -0,-13261 -0,-13322 -0,-13374 -0,-13411 -0,-13467 -0,-13543 -0,-13619 -0,-13756 -0,-13833 -0,-13848 -0,-13929 -0,-13985 -0,-14039 -0,-14162 -0,-14176 -0,-14351 -0,-14359 -0,-14473 -0,-14522 -0,-14590 -0,-14673 -0,-14741 -0,-14793 -0,-14844 -0,-14829 -0,-14888 -0,-15033 -0,-15076 -0,-15190 -0,-15202 -0,-15273 -0,-15422 -0,-15493 -0,-15572 -0,-15636 -0,-15649 -0,-15732 -0,-15888 -0,-15967 -0,-16038 -0,-16107 -0,-16258 -0,-16281 -0,-16397 -0,-16422 -0,-16501 -0,-16561 -0,-16619 -0,-16678 -0,-16829 -0,-16857 -0,-16933 -0,-16992 -0,-17106 -0,-17157 -0,-17224 -0,-17276 -0,-17349 -0,-17422 -0,-17477 -0,-17545 -0,-17659 -0,-17731 -0,-17802 -0,-17821 -0,-17904 -0,-18048 -0,-18124 -0,-18152 -0,-18230 -0,-18282 -0,-18354 -0,-18511 -0,-18532 -0,-18606 -0,-18752 -0,-18817 -0,-18805 -0,-18954 -0,-19003 -0,-19070 -0,-19096 -0,-19185 -0,-19347 -0,-19369 -0,-19444 -0,-19580 -0,-19566 -0,-19709 -0,-19780 -0,-19853 -0,-19904 -0,-19983 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test3.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test3.csv deleted file mode 100644 index 91ae72e87..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test3.csv +++ /dev/null @@ -1,127 +0,0 @@ -24/05/2020 14:17:18 -0,0 -0,0 -0,51 -0,-62 -0,-97 -0,-19 -0,-15 -0,-64 -0,-15 -0,-8 -0,-16 -0,-4 -0,-13 -0,-5 -0,-17 -0,-5 -0,-16 -0,-5 -0,-16 -0,-4 -0,-17 -0,-7 -0,-15 -0,-14 -0,-7 -0,-14 -0,-6 -0,-15 -0,-10 -0,-11 -0,-11 -0,-8 -0,-11 -0,-7 -0,-13 -0,-17 -0,-16 -0,-5 -0,-17 -0,-4 -0,-16 -0,-5 -0,-17 -0,-5 -0,-17 -0,-5 -0,-18 -0,-5 -0,-17 -0,-9 -0,-13 -0,-5 -0,-16 -0,-8 -0,-13 -0,-15 -0,-10 -0,-15 -0,-5 -0,-17 -0,-5 -0,-17 -0,-6 -0,-15 -0,-6 -0,-17 -0,-6 -0,-17 -0,-5 -0,-17 -0,-9 -0,-14 -0,-11 -0,-5 -0,-18 -0,-5 -0,-16 -0,-5 -0,-11 -0,-14 -0,-5 -0,-17 -0,-5 -0,-17 -0,-5 -0,-17 -0,-13 -0,-8 -0,-12 -0,-7 -0,-18 -0,-6 -0,-17 -0,-7 -0,-14 -0,-10 -0,-12 -0,-10 -0,-9 -0,-15 -0,-5 -0,-13 -0,-10 -0,-15 -0,-8 -0,-17 -0,-6 -0,-13 -0,-11 -0,-12 -0,-11 -0,-13 -0,-10 -0,-13 -0,-5 -0,-18 -0,-5 -0,-14 -0,-11 -0,-17 -0,-5 -0,-17 -0,-6 -0,-13 -0,-13 -0,-6 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test_dryer_heater.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test_dryer_heater.cs deleted file mode 100644 index 1977c13a6..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test_dryer_heater.cs +++ /dev/null @@ -1,174 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Printing; -using Tango.Stubs; -using Tango.PMR.Stubs; - -const string File_Name = @"P:\Scripts\Assemblies\Dryer\Dryer_Tset.CSV"; //3 hour - -public void OnExecute(StubManager stubManager) -{ - int j; - - stubManager.WriteToFile(File_Name,DateTime.Now +" " ); - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,3,true, 2200); - - for (int i=0;i<10;i++) - - { - stubManager.WriteLine("--------------------loop number " + i +" ---------------------" ); - - Blower_190(); - stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan1*/0x3E7, /*Head_Q=*/5); - stubManager.WriteLine("Heating to 190 " ); - stubManager.AppendToFile(File_Name,"Heating to 190 " ); - - stubManager.AppendToFile(File_Name,DateTime.Now +" " ); - - j=0; - - while (j==0) - { - var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,6); //read air temp - - stubManager.WriteLine(response.TemperatureCMultBy100/100); - stubManager.AppendToFile(File_Name," " + response.TemperatureCMultBy100/100); - stubManager.Write("\n"); - if (response.TemperatureCMultBy100>(18900)) //18900 - j=1; - Thread.Sleep(1000); - - } -// stubManager.WriteLine("start motor " ); - -// stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,3, true, 2200); //rotate Dryer Motor. -// Thread.Sleep(1000*20);// - stubManager.AppendToFile(File_Name,DateTime.Now +" " ); - - Thread.Sleep(1000*60*2);//2 minits - -// stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,3,3); //stop motor -// stubManager.WriteLine("stop motor " ); - - Blower_0(); - stubManager.WriteLine("cooling down " ); - stubManager.AppendToFile(File_Name,"cooling down " ); - stubManager.AppendToFile(File_Name,DateTime.Now +" "); - - j=0; - while (j==0) - { - var response1 = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,6); //read air temp - stubManager.WriteLine(response1.TemperatureCMultBy100/100); - stubManager.AppendToFile(File_Name, " " + (response1.TemperatureCMultBy100/100)); -stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan1*/0x3E7, /*Head_Q=*/5); - stubManager.Write("\n"); - if (response1.TemperatureCMultBy100<6000)// - j=1; - Thread.Sleep(1000); - - } - stubManager.AppendToFile(File_Name,DateTime.Now +" " ); - - - } - -} - -void Blower_190() - - { -UploadProcessParametersRequest uploadProcessParametersRequest = new UploadProcessParametersRequest(); - -ProcessParameters processParameters = new ProcessParameters(); -processParameters.DyeingSpeed = 0; -processParameters.MinInkUptake = 0; -processParameters.MaxInkUptake = 0; -processParameters.FeederTension = 0; -processParameters.PullerTension = 0; -processParameters.WinderTension = 0; -processParameters.MixerTemp = 0; -processParameters.HeadZone1Temp = 0; -processParameters.HeadZone2Temp = 0; -processParameters.HeadZone3Temp = 0; -processParameters.HeadZone4Temp = 0; -processParameters.HeadZone5Temp = 0; -processParameters.HeadZone6Temp = 0; -processParameters.DryerAirFlow = 5; -processParameters.DryerZone1Temp = 190; -processParameters.DryerZone2Temp = 0; -processParameters.DryerZone3Temp = 0; -processParameters.DryerBufferLength = 0; -processParameters.HeadAirFlow = 0; -processParameters.TableIndex = 0; -processParameters.HeadZone7Temp = 0; -processParameters.HeadZone8Temp = 0; -processParameters.HeadZone9Temp = 0; -processParameters.HeadZone10Temp = 0; -processParameters.HeadZone11Temp = 0; -processParameters.HeadZone12Temp = 0; -processParameters.RBlowerFlow = 0; -processParameters.RBlowerTemp = 0; -processParameters.LBlowerFlow = 0; -processParameters.LBlowerTemp = 0; -processParameters.PressureBuildUp = 0; - -uploadProcessParametersRequest.ProcessParameters = processParameters; - - - - var response = stubManager.Run<UploadProcessParametersResponse>(uploadProcessParametersRequest); -} - -void Blower_0() - - { -UploadProcessParametersRequest uploadProcessParametersRequest = new UploadProcessParametersRequest(); - -ProcessParameters processParameters = new ProcessParameters(); -processParameters.DyeingSpeed = 0; -processParameters.MinInkUptake = 0; -processParameters.MaxInkUptake = 0; -processParameters.FeederTension = 0; -processParameters.PullerTension = 0; -processParameters.WinderTension = 0; -processParameters.MixerTemp = 0; -processParameters.HeadZone1Temp = 0; -processParameters.HeadZone2Temp = 0; -processParameters.HeadZone3Temp = 0; -processParameters.HeadZone4Temp = 0; -processParameters.HeadZone5Temp = 0; -processParameters.HeadZone6Temp = 0; -processParameters.DryerAirFlow = 5; -processParameters.DryerZone1Temp = 00; -processParameters.DryerZone2Temp = 0; -processParameters.DryerZone3Temp = 0; -processParameters.DryerBufferLength = 0; -processParameters.HeadAirFlow = 0; -processParameters.TableIndex = 0; -processParameters.HeadZone7Temp = 0; -processParameters.HeadZone8Temp = 0; -processParameters.HeadZone9Temp = 0; -processParameters.HeadZone10Temp = 0; -processParameters.HeadZone11Temp = 0; -processParameters.HeadZone12Temp = 0; -processParameters.RBlowerFlow = 0; -processParameters.RBlowerTemp = 0; -processParameters.LBlowerFlow = 0; -processParameters.LBlowerTemp = 0; -processParameters.PressureBuildUp = 0; - -uploadProcessParametersRequest.ProcessParameters = processParameters; - - - - var response = stubManager.Run<UploadProcessParametersResponse>(uploadProcessParametersRequest); -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test_dryer_heater1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test_dryer_heater1.cs deleted file mode 100644 index 3d06c1e79..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test_dryer_heater1.cs +++ /dev/null @@ -1,186 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Printing; -using Tango.Stubs; -using Tango.PMR.Stubs; - -//const string File_Name = @"P:\Scripts\Assemblies\Dryer\Dryer_Tset.CSV"; //3 hour -string File_Name; -const string Path=@"P:\Operations\Log\Dryer\"; -public void OnExecute(StubManager stubManager) -{ - - - var response8 = stubManager.ShowResponseWindow("Enter Serial number of Dryer ", ""); - - File_Name =Path +"SN_" + response8 + "DryerHeaterTest_" + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".csv" ; - - //stubManager.WriteLine(response); -// stubManager.Write("\n"); -// midtankno = int.Parse(response); - - - int j; - - stubManager.WriteToFile(File_Name,DateTime.Now +" " ); - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,3,true, 2200); - - for (int i=0;i<10;i++) - - { - stubManager.WriteLine("--------------------loop number " + i +" ---------------------" ); - - Blower_190(); - stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan1*/0x3E7, /*Head_Q=*/5); - stubManager.WriteLine("Heating to 190 " ); - stubManager.AppendToFile(File_Name,"Heating to 190 " ); - - stubManager.AppendToFile(File_Name,DateTime.Now +" " ); - - j=0; - - while (j==0) - { - var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,6); //read air temp - - stubManager.WriteLine(response.TemperatureCMultBy100/100); - stubManager.AppendToFile(File_Name," " + response.TemperatureCMultBy100/100); - stubManager.Write("\n"); - if (response.TemperatureCMultBy100>(18900)) //18900 - j=1; - Thread.Sleep(1000); - - } -// stubManager.WriteLine("start motor " ); - -// stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,3, true, 2200); //rotate Dryer Motor. -// Thread.Sleep(1000*20);// - stubManager.AppendToFile(File_Name,DateTime.Now +" " ); - - Thread.Sleep(1000*60*2);//2 minits - -// stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,3,3); //stop motor -// stubManager.WriteLine("stop motor " ); - - Blower_0(); - stubManager.WriteLine("cooling down " ); - stubManager.AppendToFile(File_Name,"cooling down " ); - stubManager.AppendToFile(File_Name,DateTime.Now +" "); - - j=0; - while (j==0) - { - var response1 = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,6); //read air temp - stubManager.WriteLine(response1.TemperatureCMultBy100/100); - stubManager.AppendToFile(File_Name, " " + (response1.TemperatureCMultBy100/100)); -stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan1*/0x3E7, /*Head_Q=*/5); - stubManager.Write("\n"); - if (response1.TemperatureCMultBy100<6000)// - j=1; - Thread.Sleep(1000); - - } - stubManager.AppendToFile(File_Name,DateTime.Now +" " ); - - - } - -} - -void Blower_190() - - { -UploadProcessParametersRequest uploadProcessParametersRequest = new UploadProcessParametersRequest(); - -ProcessParameters processParameters = new ProcessParameters(); -processParameters.DyeingSpeed = 0; -processParameters.MinInkUptake = 0; -processParameters.MaxInkUptake = 0; -processParameters.FeederTension = 0; -processParameters.PullerTension = 0; -processParameters.WinderTension = 0; -processParameters.MixerTemp = 0; -processParameters.HeadZone1Temp = 0; -processParameters.HeadZone2Temp = 0; -processParameters.HeadZone3Temp = 0; -processParameters.HeadZone4Temp = 0; -processParameters.HeadZone5Temp = 0; -processParameters.HeadZone6Temp = 0; -processParameters.DryerAirFlow = 5; -processParameters.DryerZone1Temp = 190; -processParameters.DryerZone2Temp = 0; -processParameters.DryerZone3Temp = 0; -processParameters.DryerBufferLength = 0; -processParameters.HeadAirFlow = 0; -processParameters.TableIndex = 0; -processParameters.HeadZone7Temp = 0; -processParameters.HeadZone8Temp = 0; -processParameters.HeadZone9Temp = 0; -processParameters.HeadZone10Temp = 0; -processParameters.HeadZone11Temp = 0; -processParameters.HeadZone12Temp = 0; -processParameters.RBlowerFlow = 0; -processParameters.RBlowerTemp = 0; -processParameters.LBlowerFlow = 0; -processParameters.LBlowerTemp = 0; -processParameters.PressureBuildUp = 0; - -uploadProcessParametersRequest.ProcessParameters = processParameters; - - - - var response = stubManager.Run<UploadProcessParametersResponse>(uploadProcessParametersRequest); -} - -void Blower_0() - - { -UploadProcessParametersRequest uploadProcessParametersRequest = new UploadProcessParametersRequest(); - -ProcessParameters processParameters = new ProcessParameters(); -processParameters.DyeingSpeed = 0; -processParameters.MinInkUptake = 0; -processParameters.MaxInkUptake = 0; -processParameters.FeederTension = 0; -processParameters.PullerTension = 0; -processParameters.WinderTension = 0; -processParameters.MixerTemp = 0; -processParameters.HeadZone1Temp = 0; -processParameters.HeadZone2Temp = 0; -processParameters.HeadZone3Temp = 0; -processParameters.HeadZone4Temp = 0; -processParameters.HeadZone5Temp = 0; -processParameters.HeadZone6Temp = 0; -processParameters.DryerAirFlow = 5; -processParameters.DryerZone1Temp = 00; -processParameters.DryerZone2Temp = 0; -processParameters.DryerZone3Temp = 0; -processParameters.DryerBufferLength = 0; -processParameters.HeadAirFlow = 0; -processParameters.TableIndex = 0; -processParameters.HeadZone7Temp = 0; -processParameters.HeadZone8Temp = 0; -processParameters.HeadZone9Temp = 0; -processParameters.HeadZone10Temp = 0; -processParameters.HeadZone11Temp = 0; -processParameters.HeadZone12Temp = 0; -processParameters.RBlowerFlow = 0; -processParameters.RBlowerTemp = 0; -processParameters.LBlowerFlow = 0; -processParameters.LBlowerTemp = 0; -processParameters.PressureBuildUp = 0; - -uploadProcessParametersRequest.ProcessParameters = processParameters; - - - - var response = stubManager.Run<UploadProcessParametersResponse>(uploadProcessParametersRequest); -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_In_Test.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_In_Test.cs deleted file mode 100644 index 92c50a57e..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_In_Test.cs +++ /dev/null @@ -1,34 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -int Delay_UP=200; //msec -int Delay_stop=500; -int Delay_limit=1000; - - stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf000); //mov ACTUATOR-IN down up to limit switch - Thread.Sleep(1000); - while (true) - { - - stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf003); //mov ACTUATOR-IN down up - Thread.Sleep(Delay_UP); - stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf008); //stop ACTUATOR-IN - Thread.Sleep(Delay_stop); - stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf000); //mov ACTUATOR-IN down up to limit switch - Thread.Sleep(Delay_limit); - - } - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_In_new set point.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_In_new set point.cs deleted file mode 100644 index dc5d5af07..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_In_new set point.cs +++ /dev/null @@ -1,34 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -int Delay_UP=200; //msec -int Delay_stop=500; -int Delay_limit=1000; - - stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf000); //mov ACTUATOR-IN down up to limit switch - Thread.Sleep(2000); -// while (true) -// { - - stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf003); //mov ACTUATOR-IN up - Thread.Sleep(Delay_UP); - stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf008); //stop ACTUATOR-IN - Thread.Sleep(Delay_stop); - // stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf000); //mov ACTUATOR-IN down up to limit switch -// Thread.Sleep(Delay_limit); - - // } - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_test.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_test.cs deleted file mode 100644 index 6d71a9ac3..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_test.cs +++ /dev/null @@ -1,32 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - int sleep_up=4000;//2 second - int sleep_dn=1000;//2 second - while (true) - { - stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf000); //mov ACTUATOR-IN down - Thread.Sleep(sleep_dn); - stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf001); //mov ACTUATOR-IN up - Thread.Sleep(sleep_up); - - } - // stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf100); //mov ACTUATOR-OUTdown - // stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf101); //mov ACTUATOR-OUT up - - - - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/DyeHeadJig.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/DyeHeadJig.cs deleted file mode 100644 index 2baedf7c2..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/DyeHeadJig.cs +++ /dev/null @@ -1,548 +0,0 @@ -using System; -using System.Text; -using System.IO; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - - -include "..\..\Defines\Tango_Defines_Basic.cs" -include "Tango_Defines_SSR.cs" -include "Tango_Defines_LimitSwitch.cs" - - -//-------------------------------------------------------------------------------- - const Int32 I2C_ID = 2; - -//-------------------------------------------------------------------------------- -//-------------------------------------------------------------------------------- -//string path1=@"P:\Scripts\Assemblies\Dye head\DyeHeadLog\"; -string path1="P:\\Scripts\\Assemblies\\Dye head\\DyeHeadLog\\"; -string path2=@"C:\DyeHeadLog"; - -string File_Name1 ; -string Status; -//--------------------------- - -float [] DyeHeadTemp = new float[6] ; - -string [,] Units_status = new string[16,2] { - {"Pt100_Zone_1","Not Test"}, - {"Pt100_Zone_2","Not Test"}, - {"Pt100_Zone_3","Not Test"}, - {"Pt100_Zone_4","Not Test"}, - {"Pt100_Zone_5","Not Test"}, - {"Pt100_Zone_6","Not Test"}, - {"Heater_Zone_1","Not Test"}, - {"Heater_Zone_2","Not Test"}, - {"Heater_Zone_3","Not Test"}, - {"Heater_Zone_4","Not Test"}, - {"Heater_Zone_5","Not Test"}, - {"Heater_Zone_6","Not Test"}, - {"Magnet","Not Test"}, - {"LS_DH_LID_Open","Not Test"}, - {"LS_DH_LID_Close","Not Test"}, - {"DH_LID_Motor","Not Test"}, - }; - - - -//----------------------------------------------------- -string DyeHead_Sn; -//-------------------------------------------------------------------------------- - -public void OnExecute(StubManager stubManager) -{ -string path=""; - Form form1 = new Form(); - -// Set the caption bar text of the form. - - form1.Text = "DyeHead Test"; - form1.FormBorderStyle = FormBorderStyle.FixedDialog; - form1.MaximizeBox = false; - form1.MinimizeBox = false; - form1.StartPosition = FormStartPosition.CenterScreen; - form1.AutoSize = true; - form1.AutoSizeMode = AutoSizeMode.GrowAndShrink; -// Create buttons to Run. - Button button1 = new Button () - { - Width = 100, - Height = 100, - }; - button1.Text = "Run"; - button1.Location = new Point (40, 100); - form1.Controls.Add(button1); -//-----DyeHead Serial Number ----------- - - Label Label1 = new Label () - { - Width = 150, - Height = 20, - Text =" DyeHead S/N" - }; - Label1.Location = new Point (30, 10); - form1.Controls.Add(Label1); - TextBox TextBox1 = new TextBox () - { - Width = 100, - Height = 10, - Text ="" - }; - TextBox1.Location = new Point (40, 40); - form1.Controls.Add(TextBox1); - //----------LOCATION---------- - - Label Label3 = new Label () - { - Width = 150, - Height = 20, - Text ="LOCATION" - }; -Label3.Location = new Point (350, 10); - form1.Controls.Add(Label3); - - - -TextBox TextBox3 = new TextBox () - { - Width = 100, - Height = 10, - Text ="" - }; -TextBox3.Location = new Point (360, 40); - form1.Controls.Add(TextBox3); - -//-------------------------------------------------------------------------------- - - stubManager.Write("Counter is 2 \n"); - - button1.Click += (_,__) => - - { -if (!Directory.Exists(path1)) - { - path=path2; - if (!Directory.Exists(path2)) - Directory.CreateDirectory(path2); - } -else -path=path1; - - -File_Name1=path + TextBox1.Text +"_DyeHead_" + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".log" ; - - -stubManager.Write(File_Name1 +"\n"); -stubManager.WriteToFile(File_Name1,DateTime.Now +" " ); -stubManager.Write(DateTime.Now +"\n" ); - -stubManager.AppendToFile(File_Name1,"DyeHead Test Report" ); -stubManager.Write("DyeHead Test Report\n" ); - -stubManager.AppendToFile(File_Name1,"RTFU S/N: \t" + TextBox1.Text ); -stubManager.Write("DyeHead S/N:" + TextBox1.Text +"\n" ); - - -stubManager.AppendToFile(File_Name1,"Location:\t" + TextBox3.Text ); -stubManager.Write("Location:" + TextBox3.Text +"\n" ); - - - -Label Label5 = new Label () - { - Width = 120, - Height =100, - Text = "" - }; -Label5.Location = new Point (300, 100); -Label5.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; - -Label5.Text="Pros"; -Label5.Font = new Font("Arial", 24,FontStyle.Bold); -form1.Controls.Add(Label5); - - -//------------------------------- start test ----------- - - DialogResult result = MessageBox.Show("Make shure, Dyehead is not hot", "Warning",MessageBoxButtons.OKCancel); - if(result == DialogResult.Cancel) - { - stubManager.AppendToFile(File_Name1,"Dyehead is too hot \tFail"); - stubManager.Write("Dyehead is too hot \tFail\n"); - return ; - } - Test_Magnet_Motor_LS_DyeHead(); - Test_heaters_pt100 (); - Status=write_to_file(); - - Label5.Text=Status; - TextBox1.Text=""; -}; - - form1.ShowDialog(); - - stubManager.Write("Counter is \n"); - - - return; - } - -//-------------------------------------------- - int Test_Magnet_Motor_LS_DyeHead() -{ - Int32 Bit = 1; - - stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,23, false,0x800000+0); - stubManager.Write("\nTesting SSR no. 13 of magnet or motor driver"); - - DialogResult result = MessageBox.Show("Make shure, Magnet is open", "Warning",MessageBoxButtons.OKCancel); - if(result == DialogResult.Cancel) - { - Units_status[12,1]="Fail"; - stubManager.Write("Magnet Not Open\n"); - return 0; - } - Units_status[12,1]="Pass"; - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,2, true, 250); - stubManager.Write("\n*** Open Lid Head "); - - Bit = 1; - int i=0; - while ((Bit != 0x0)&& (i<200)) //wait until Limit Switch or timeout 200*50msec=10sec - { - Bit = GetBit(FPGA1, F1_LS_01_Direct,7); - Thread.Sleep(50); - i++; - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,23,3); //stop motor - - DialogResult result1 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.OKCancel); - if(result1 == DialogResult.Cancel) - { - Units_status[15,1]="Fail"; - Units_status[13,1]="Fail"; - stubManager.Write("LS_DH_LID_Open Not calibrate\n"); - return 0; - } - Units_status[13,1]="Pass"; - stubManager.Write("\n*** Close Lid Head "); - Bit = 1; - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,2, false, 250); - i=0; - while ((Bit != 0x0)&& (i<200)) //wait until Limit Switch or timeout 200*50msec=10sec - { - Bit = GetBit(FPGA1, F1_LS_01_Direct,8); - Thread.Sleep(50); - i++; - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,23,3); //stop motor - - DialogResult result2 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.OKCancel); - if(result2 == DialogResult.Cancel) - { - Units_status[14,1]="Fail"; - Units_status[15,1]="Fail"; - stubManager.Write("LS_DH_LID_Close Not calibrate\n"); - return 0; - } - Units_status[14,1]="Pass"; - stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,23, false,0x800000+2); - DialogResult result3 = MessageBox.Show("Make shure, Magnet is open", "Warning",MessageBoxButtons.OKCancel); - if(result3 == DialogResult.Cancel) - { - Units_status[12,1]="Fail"; - stubManager.Write("Magnet Not Open\n"); - return 0; - } - Units_status[12,1]="Pass"; - Units_status[15,1]="Pass"; - - return 0; -} - - //------------------------------------ -string write_to_file() -{ - stubManager.Write("write_to_file\n"); - -string Stemp="Pass"; - for (int i=0;i<16;i++) - { - stubManager.AppendToFile(File_Name1,Units_status[i,0]+"\t" + Units_status[i,1] ); - stubManager.Write(Units_status[i,0]+"\t" + Units_status[i,1]+"\n" ); - - if ((Units_status[i,1]=="Fail")||(Units_status[i,1]=="Not Test")) - Stemp="Fail"; - } - return Stemp; -} -//------------------------------------ -int Test_heaters_pt100() -{ -// uint utemp=0; - uint temp=0; - float ftemp=0; - float ftemp1=0; - - stubManager.Write("\nTemp Befor heating \n"); - if (test_pt100()!=0) - return 0; - -//------------Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 8 - SetBit (FPGA2, F2_CTRL, 3, 1); - stubManager.Write("Testing SSR no. 8\tHeadZone-1\t"); - Thread.Sleep(10000); - adc_configuration(0x40,0x10); //a2d_address 0x40 channel 3 - adc_set_for_read_ch(0x40); - temp=adc_read_ch(0x40); - SetBit (FPGA2, F2_CTRL, 3, 0); - ftemp=Read_pt100(0); - stubManager.Write("After heating " + ftemp +"c\tCurrent is "+ temp + "\n"); - ftemp = ftemp - DyeHeadTemp[0]; - if ((temp>0x860)|| (temp<0x7e0)||(ftemp<5)||(ftemp>20)) - Units_status[6,1]="Fail"; - else - Units_status[6,1]="Pass"; - - //Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 7 - ftemp=Read_pt100(1); - ftemp1 = ftemp - DyeHeadTemp[1]; - if ( ftemp1>4) - Units_status[7,1]="Fail"; - else - { - SetBit (FPGA2, F2_CTRL, 4, 1); - stubManager.Write("Testing SSR no. 7\tHeadZone-2\t"); - Thread.Sleep(10000); - adc_configuration(0x40,0x08); //a2d_address 0x40 channel 4 - adc_set_for_read_ch(0x40); - temp=adc_read_ch(0x40); - SetBit (FPGA2, F2_CTRL, 4, 0); - ftemp=Read_pt100(1); - stubManager.Write("After heating " + ftemp +"c\tCurrent is "+temp + "\n"); - ftemp = ftemp - DyeHeadTemp[1]; - if ((temp>0x660)|| (temp<0x600)||(ftemp<5)||(ftemp>20)) - Units_status[7,1]="Fail"; - else - Units_status[7,1]="Pass"; - } - - //Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 6 - - ftemp=Read_pt100(2); - ftemp1 = ftemp - DyeHeadTemp[2]; - if ( ftemp1>4) - Units_status[7,1]="Fail"; - else - { - SetBit (FPGA2, F2_CTRL, 5, 1); - stubManager.Write("Testing SSR no. 6\tHeadZone-3\t"); - Thread.Sleep(10000); - adc_configuration(0x40,0x04); //a2d_address 0x40 channel 5 - adc_set_for_read_ch(0x40); - temp=adc_read_ch(0x40); - SetBit (FPGA2, F2_CTRL, 5, 0); - ftemp=Read_pt100(2); - stubManager.Write("After heating " + ftemp +"c\tCurrent is "+temp +"\n"); - ftemp = ftemp - DyeHeadTemp[2]; - if ((temp>0x660)|| (temp<0x600)||(ftemp<5)||(ftemp>20)) - Units_status[8,1]="Fail"; - else - Units_status[8,1]="Pass"; - } - - //Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 5 - ftemp=Read_pt100(3); - ftemp1 = ftemp - DyeHeadTemp[3]; - if ( ftemp1>4) - Units_status[9,1]="Fail"; - else - { - SetBit (FPGA2, F2_CTRL, 6, 1); - stubManager.Write("Testing SSR no. 5\tHeadZone-4\t"); - Thread.Sleep(10000); - adc_configuration(0x44,0x80); //a2d_address 0x44 channel 0 - adc_set_for_read_ch(0x44); - temp=adc_read_ch(0x44); - SetBit (FPGA2, F2_CTRL, 6, 0); - ftemp=Read_pt100(3); - stubManager.Write("After heating " + ftemp +"c\tCurrent is "+temp + "\n"); - ftemp = ftemp - DyeHeadTemp[3]; - if ((temp>0x1100)|| (temp<0xf90)||(ftemp<5)||(ftemp>20)) - Units_status[9,1]="Fail"; - else - Units_status[9,1]="Pass"; - } - - //Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 10 - ftemp=Read_pt100(4); - ftemp1 = ftemp - DyeHeadTemp[4]; - if ( ftemp1>4) - Units_status[10,1]="Fail"; - else - { - SetBit (FPGA1, F1_gpo_01, 2, 1); - stubManager.Write("Testing SSR no. 10\tHeadZone-5\t"); - Thread.Sleep(10000); - adc_configuration(0x44,0x40); //a2d_address 0x44 channel 1 - adc_set_for_read_ch(0x44); - temp=adc_read_ch(0x44); - SetBit (FPGA1, F1_gpo_01, 2, 0); - ftemp=Read_pt100(4); - stubManager.Write("After heating " + ftemp +"c\tCurrent is "+temp + "\n"); - ftemp = ftemp - DyeHeadTemp[4]; - if ((temp>0xa80)|| (temp<0xa20)||(ftemp<5)||(ftemp>20)) - Units_status[10,1]="Fail"; - else - Units_status[10,1]="Pass"; - } - - //Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 11 - ftemp=Read_pt100(5); - ftemp1 = ftemp - DyeHeadTemp[5]; - if ( ftemp1>4) - Units_status[11,1]="Fail"; - else - { - SetBit (FPGA3, F3_GPO_01_bus, 4, 1); - stubManager.Write("Testing SSR no. 11\tHeadZone-6\t"); - Thread.Sleep(10000); - adc_configuration(0x44,0x40); //a2d_address 0x44 channel 1 - adc_set_for_read_ch(0x44); - temp=adc_read_ch(0x44); - SetBit (FPGA3, F3_GPO_01_bus, 4, 0); - ftemp=Read_pt100(5); - stubManager.Write("After heating " + ftemp +"c\tCurrent is "+temp + "\n"); - ftemp = ftemp - DyeHeadTemp[5]; - if ((temp>0x660)|| (temp<0x600)||(ftemp<5)||(ftemp>20)) - Units_status[11,1]="Fail"; - else - Units_status[11,1]="Pass"; - } - return 0; -} -//------------------------------------------------ - int test_pt100() - { - float ftemp=0; - int temp=0; - int j=0; - for (int i = 0; i < 6; i++) - { - DyeHeadTemp[i]=Read_pt100(i); - ftemp=DyeHeadTemp[i]; - if ((ftemp>100)|| (ftemp<10)) - { - Units_status[i,1]="Fail"; - } - else - { - Units_status[i,1]="Pass"; - } - stubManager.Write("Zone-"+(i+1)+ "\t" + ftemp.ToString("F2")); - stubManager.Write("°C\n"); - - } - return 0; - } -//------------------------------------------------ -float Read_pt100(int i) -{ - int j= i+1; - if (i==5) - j=11; - var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,j); // - float ftemp = (float)response.TemperatureCMultBy100; - ftemp = ftemp / 100; - return (ftemp); -} -//--------------------------- -int adc_configuration(uint I2C_Slave_Add,uint channel ) - { - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0x00);//Byte 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(channel);//Byte 1 to Write, must be 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02 or 0x01 for different channels - stubI2CWriteBytesRequest.BytesTWrite.Add(0x80);//Byte 2 to Write - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; - } -//----------------------------------- -int adc_set_for_read_temp(uint I2C_Slave_Add) - { - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0x02);//Byte 0 to write - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; - } -//----------------------------------- -int adc_read_temp(uint I2C_Slave_Add) - { - - StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest(); - stubI2CReadBytesRequest.I2CId = I2C_ID; - stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add; - stubI2CReadBytesRequest.NumberOfBytesToRead = 2; // Number of bytes to read - - var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest); - - for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++) - { - stubManager.WriteLineHex(response1.ReadBytes[i],2); - } - - - return 1; - } -//----------------------------------- -int adc_set_for_read_ch(uint I2C_Slave_Add) - { - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0x01);//Byte 0 to write - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; - } -//----------------------------------- -uint adc_read_ch(uint I2C_Slave_Add) - { - StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest(); - stubI2CReadBytesRequest.I2CId = I2C_ID; - stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add; - stubI2CReadBytesRequest.NumberOfBytesToRead = 2; // Number of bytes to read - - var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest); - uint temph=0; - uint templ=0; - uint temp=0; - temph=response1.ReadBytes[0]; - templ=response1.ReadBytes[1]; - temp = (temph << 8) | templ; - temp=temp & 0x0fff; - return temp; - } diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/DyeHeadJig1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/DyeHeadJig1.cs deleted file mode 100644 index b3513ac55..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/DyeHeadJig1.cs +++ /dev/null @@ -1,575 +0,0 @@ -using System; -using System.Text; -using System.IO; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - - -include "..\..\Defines\Tango_Defines_Basic.cs" -include "Tango_Defines_SSR.cs" -include "Tango_Defines_LimitSwitch.cs" - - -//-------------------------------------------------------------------------------- - const Int32 I2C_ID = 2; - -//-------------------------------------------------------------------------------- -//-------------------------------------------------------------------------------- -//string path1=@"P:\Scripts\Assemblies\Dye head\DyeHeadLog\"; -string path1="P:\\Scripts\\Assemblies\\Dye head\\DyeHeadLog\\"; -string path2="C:\\DyeHeadLog\\"; - -string File_Name1 ; -string Status; -//--------------------------- - -float [] DyeHeadTemp = new float[6] ; - -string [,] Units_status = new string[16,2] { - {"Pt100_Zone_1","Not Test"}, - {"Pt100_Zone_2","Not Test"}, - {"Pt100_Zone_3","Not Test"}, - {"Pt100_Zone_4","Not Test"}, - {"Pt100_Zone_5","Not Test"}, - {"Pt100_Zone_6","Not Test"}, - {"Heater_Zone_1","Not Test"}, - {"Heater_Zone_2","Not Test"}, - {"Heater_Zone_3","Not Test"}, - {"Heater_Zone_4","Not Test"}, - {"Heater_Zone_5","Not Test"}, - {"Heater_Zone_6","Not Test"}, - {"Magnet ","Not Test"}, - {"LS_DH_LID_Open","Not Test"}, - {"LS_DH_LID_Close","Not Test"}, - {"DH_LID_Motor","Not Test"}, - }; - - - -//----------------------------------------------------- -string DyeHead_Sn; -//-------------------------------------------------------------------------------- - -public void OnExecute(StubManager stubManager) -{ -string path=""; - Form form1 = new Form(); - -// Set the caption bar text of the form. - - form1.Text = "DyeHead Test"; - form1.FormBorderStyle = FormBorderStyle.FixedDialog; - form1.MaximizeBox = false; - form1.MinimizeBox = false; - form1.StartPosition = FormStartPosition.CenterScreen; - form1.AutoSize = true; - form1.AutoSizeMode = AutoSizeMode.GrowAndShrink; -// Create buttons to Run. - Button button1 = new Button () - { - Width = 100, - Height = 100, - }; - button1.Text = "Run"; - button1.Location = new Point (40, 100); - form1.Controls.Add(button1); -//-----DyeHead Serial Number ----------- - - Label Label1 = new Label () - { - Width = 150, - Height = 20, - Text =" DyeHead S/N" - }; - Label1.Location = new Point (30, 10); - form1.Controls.Add(Label1); - TextBox TextBox1 = new TextBox () - { - Width = 100, - Height = 10, - Text ="" - }; - TextBox1.Location = new Point (40, 40); - form1.Controls.Add(TextBox1); - //----------LOCATION---------- - - Label Label3 = new Label () - { - Width = 150, - Height = 20, - Text ="LOCATION" - }; -Label3.Location = new Point (350, 10); - form1.Controls.Add(Label3); - - - -TextBox TextBox3 = new TextBox () - { - Width = 100, - Height = 10, - Text ="" - }; -TextBox3.Location = new Point (360, 40); - form1.Controls.Add(TextBox3); - -//-------------------------------------------------------------------------------- - - stubManager.Write("Counter is 2 \n"); - - button1.Click += (_,__) => - - { -if (!Directory.Exists(path1)) - { - path=path2; - if (!Directory.Exists(path2)) - Directory.CreateDirectory(path2); - } -else -path=path1; - - -File_Name1=path + TextBox1.Text +"_DyeHead_" + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".log" ; - - -stubManager.Write(File_Name1 +"\n"); -stubManager.WriteToFile(File_Name1,DateTime.Now +" " ); -stubManager.Write(DateTime.Now +"\n" ); - -stubManager.AppendToFile(File_Name1,"DyeHead Test Report" ); -stubManager.Write("DyeHead Test Report\n" ); - -stubManager.AppendToFile(File_Name1,"DyeHead S/N: \t" + TextBox1.Text ); -stubManager.Write("DyeHead S/N:" + TextBox1.Text +"\n" ); - - -stubManager.AppendToFile(File_Name1,"Location:\t" + TextBox3.Text ); -stubManager.Write("Location:" + TextBox3.Text +"\n" ); - - - -Label Label5 = new Label () - { - Width = 120, - Height =100, - Text = "" - }; -Label5.Location = new Point (300, 100); -Label5.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; - -Label5.Text="Pros"; -Label5.Font = new Font("Arial", 24,FontStyle.Bold); -form1.Controls.Add(Label5); - - -//------------------------------- start test ----------- - - DialogResult result = MessageBox.Show("Make shure, Dyehead is not hot", "Warning",MessageBoxButtons.OKCancel); - if(result == DialogResult.Cancel) - { - stubManager.AppendToFile(File_Name1,"Dyehead is too hot \tFail"); - stubManager.Write("Dyehead is too hot \tFail\n"); - return ; - } - Test_Magnet_Motor_LS_DyeHead(); - Test_heaters_pt100 (); - Status=write_to_file(); - - Label5.Text=Status; - TextBox1.Text=""; -}; - - form1.ShowDialog(); - -// stubManager.Write("Counter is \n"); - - - return; - } - -//-------------------------------------------- - int Test_Magnet_Motor_LS_DyeHead() -{ - Int32 Bit = 1; - - stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,23, false,0x800000+0); - stubManager.Write("\nTesting SSR no. 13 of magnet or motor driver"); - - DialogResult result = MessageBox.Show("Make shure, Magnet is open", "Warning",MessageBoxButtons.OKCancel); - if(result == DialogResult.Cancel) - { - Units_status[12,1]="Fail"; - stubManager.Write("Magnet Not Open\n"); - return 0; - } - Units_status[12,1]="Pass"; - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,2, true, 250); - stubManager.Write("\n*** Open Lid Head "); - - Bit = 1; - int i=0; - while ((Bit != 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec - { - Bit = GetBit(FPGA1, F1_LS_01_Direct,7); - Thread.Sleep(50); - i++; - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,2,3); //stop motor - - DialogResult result1 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.OKCancel); - if(result1 == DialogResult.Cancel) - { - Units_status[15,1]="Fail"; - Units_status[13,1]="Fail"; - stubManager.Write("LS_DH_LID_Open Not calibrate\n"); - return 0; - } - Units_status[13,1]="Pass"; - stubManager.Write("\n*** Close Lid Head "); - Bit = 1; - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,2, false, 250); - i=0; - while ((Bit != 0x0) && (i<200)) //wait until Limit Switch or timeout 200*50msec=10sec - { - Bit = GetBit(FPGA1, F1_LS_01_Direct,8); - Thread.Sleep(50); - i++; - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,2,3); //stop motor - - DialogResult result2 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.OKCancel); - if(result2 == DialogResult.Cancel) - { - Units_status[14,1]="Fail"; - Units_status[15,1]="Fail"; - stubManager.Write("LS_DH_LID_Close Not calibrate\n"); - return 0; - } - Units_status[14,1]="Pass"; - stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,23, false,0x800000+2); - DialogResult result3 = MessageBox.Show("Make shure, Magnet is close", "Warning",MessageBoxButtons.OKCancel); - if(result3 == DialogResult.Cancel) - { - Units_status[12,1]="Fail"; - stubManager.Write("Magnet Not close\n"); - return 0; - } - Units_status[12,1]="Pass"; - Units_status[15,1]="Pass"; - - return 0; -} - - //------------------------------------ -string write_to_file() -{ - stubManager.Write("write_to_file\n"); - -string Stemp="Pass"; - for (int i=0;i<16;i++) - { - stubManager.AppendToFile(File_Name1,Units_status[i,0]+"\t" + Units_status[i,1] ); - stubManager.Write(Units_status[i,0]+"\t" + Units_status[i,1]+"\n" ); - - if ((Units_status[i,1]=="Fail")||(Units_status[i,1]=="Not Test")) - Stemp="Fail"; - } - if (Stemp=="Fail") - { - stubManager.AppendToFile(File_Name1,"-------------Dye Head Fail ------------ )"); - stubManager.Write("-------------Dye Head Fail ------------ "); - } - else - { - stubManager.AppendToFile(File_Name1,"-------------Dye Head Pass ------------ )"); - stubManager.Write("-------------Dye Head Pass ------------ "); - } - - return Stemp; -} -//------------------------------------ -int Test_heaters_pt100() -{ - -// uint utemp=0; - uint temp=0; - float ftemp=0; - float ftemp1=0; - float current=0; - - stubManager.Write("\nTemp Befor heating \n"); - if (test_pt100()!=0) - return 0; - -//------------Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 8 - SetBit (FPGA2, F2_CTRL, 3, 1); - stubManager.Write("Testing SSR no. 8\tHeadZone-1\t"); - Thread.Sleep(10000); - adc_configuration(0x40,0x10); //a2d_address 0x40 channel 3 - adc_set_for_read_ch(0x40); - temp=adc_read_ch(0x40); - current= (float)(temp); - current=( float) (0.001221) * current; - SetBit (FPGA2, F2_CTRL, 3, 0); - ftemp=Read_pt100(0); - stubManager.Write("After heating " + ftemp +"c\tCurrent is "+ current + "\n"); - ftemp = ftemp - DyeHeadTemp[0]; - - if ((current>1.5)|| (current<0.9)||(ftemp<5)||(ftemp>25)) - Units_status[6,1]="Fail"; - else - Units_status[6,1]="Pass"; - - //Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 7 - ftemp=Read_pt100(1); - ftemp1 = ftemp - DyeHeadTemp[1]; - if ( ftemp1>4) - Units_status[7,1]="Fail"; - else - { - SetBit (FPGA2, F2_CTRL, 4, 1); - stubManager.Write("Testing SSR no. 7\tHeadZone-2\t"); - Thread.Sleep(10000); - adc_configuration(0x40,0x08); //a2d_address 0x40 channel 4 - adc_set_for_read_ch(0x40); - temp=adc_read_ch(0x40); - current= (float)(temp); - current=( float) (0.001221) * current; - SetBit (FPGA2, F2_CTRL, 4, 0); - ftemp=Read_pt100(1); - stubManager.Write("After heating " + ftemp +"c\tCurrent is "+ current + "\n"); - ftemp = ftemp - DyeHeadTemp[1]; - if ((current<1.6)|| (current>2.1)||(ftemp<5)||(ftemp>25)) - Units_status[7,1]="Fail"; - else - Units_status[7,1]="Pass"; - } - - //Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 6 - - ftemp=Read_pt100(2); - ftemp1 = ftemp - DyeHeadTemp[2]; - if ( ftemp1>4) - Units_status[8,1]="Fail"; - else - { - SetBit (FPGA2, F2_CTRL, 5, 1); - stubManager.Write("Testing SSR no. 6\tHeadZone-3\t"); - Thread.Sleep(10000); - adc_configuration(0x40,0x04); //a2d_address 0x40 channel 5 - adc_set_for_read_ch(0x40); - temp=adc_read_ch(0x40); - current= (float)(temp); - current=( float) (0.001221) * current; - SetBit (FPGA2, F2_CTRL, 5, 0); - ftemp=Read_pt100(2); - stubManager.Write("After heating " + ftemp +"c\tCurrent is "+current +"\n"); - ftemp = ftemp - DyeHeadTemp[2]; - if ((current<1.6)|| (current>2.1)||(ftemp<5)||(ftemp>25)) - Units_status[8,1]="Fail"; - else - Units_status[8,1]="Pass"; - } - - //Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 5 - ftemp=Read_pt100(3); - ftemp1 = ftemp - DyeHeadTemp[3]; - if ( ftemp1>4) - Units_status[9,1]="Fail"; - else - { - SetBit (FPGA2, F2_CTRL, 6, 1); - stubManager.Write("Testing SSR no. 5\tHeadZone-4\t"); - Thread.Sleep(10000); - adc_configuration(0x44,0x80); //a2d_address 0x44 channel 0 - adc_set_for_read_ch(0x44); - temp=adc_read_ch(0x44); - current= (float)(temp); - current=( float) (0.001221) * current; - - SetBit (FPGA2, F2_CTRL, 6, 0); - ftemp=Read_pt100(3); - stubManager.Write("After heating " + ftemp +"c\tCurrent is "+current + "\n"); - ftemp = ftemp - DyeHeadTemp[3]; - if ((current<2.9)|| (current>3.4)||(ftemp<5)||(ftemp>25)) - Units_status[9,1]="Fail"; - else - Units_status[9,1]="Pass"; - } - - //Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 10 - ftemp=Read_pt100(4); - ftemp1 = ftemp - DyeHeadTemp[4]; - if ( ftemp1>4) - Units_status[10,1]="Fail"; - else - { - SetBit (FPGA1, F1_gpo_01, 2, 1); - stubManager.Write("Testing SSR no. 10\tHeadZone-5\t"); - Thread.Sleep(10000); - adc_configuration(0x44,0x40); //a2d_address 0x44 channel 1 - adc_set_for_read_ch(0x44); - temp=adc_read_ch(0x44); - current= (float)(temp); - current=( float) (0.001526) * current; - SetBit (FPGA1, F1_gpo_01, 2, 0); - ftemp=Read_pt100(4); - stubManager.Write("After heating " + ftemp +"c\tCurrent is "+current + "\n"); - ftemp = ftemp - DyeHeadTemp[4]; - if ((current<2.9)|| (current>3.4)||(ftemp<5)||(ftemp>25)) - Units_status[10,1]="Fail"; - else - Units_status[10,1]="Pass"; - } - - //Write GPO_DYEINGH_SSR1_CTRL SSR/SSR no. 11 - ftemp=Read_pt100(5); - ftemp1 = ftemp - DyeHeadTemp[5]; - if ( ftemp1>4) - Units_status[11,1]="Fail"; - else - { - SetBit (FPGA3, F3_GPO_01_bus, 4, 1); - stubManager.Write("Testing SSR no. 11\tHeadZone-6\t"); - Thread.Sleep(10000); - adc_configuration(0x44,0x40); //a2d_address 0x44 channel 1 - adc_set_for_read_ch(0x44); - temp=adc_read_ch(0x44); - current= (float)(temp); - current=( float) (0.001526) * current; - SetBit (FPGA3, F3_GPO_01_bus, 4, 0); - ftemp=Read_pt100(5); - stubManager.Write("After heating " + ftemp +"c\tCurrent is "+current + "\n"); - ftemp = ftemp - DyeHeadTemp[5]; - if ((current<1.6)|| (current>2.1)||(ftemp<5)||(ftemp>20)) - Units_status[11,1]="Fail"; - else - Units_status[11,1]="Pass"; - } - return 0; -} -//------------------------------------------------ - int test_pt100() - { - float ftemp=0; - int temp=0; - int j=0; - for (int i = 0; i < 6; i++) - { - DyeHeadTemp[i]=Read_pt100(i); - ftemp=DyeHeadTemp[i]; - if ((ftemp>100)|| (ftemp<10)) - { - Units_status[i,1]="Fail"; - } - else - { - Units_status[i,1]="Pass"; - } - stubManager.Write("Zone-"+(i+1)+ "\t" + ftemp.ToString("F2")); - stubManager.Write("°C\n"); - - } - return 0; - } -//------------------------------------------------ -float Read_pt100(int i) -{ - int j= i+1; - if (i==5) - j=11; - var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,j); // - float ftemp = (float)response.TemperatureCMultBy100; - ftemp = ftemp / 100; - return (ftemp); -} -//--------------------------- -int adc_configuration(uint I2C_Slave_Add,uint channel ) - { - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0x00);//Byte 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(channel);//Byte 1 to Write, must be 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02 or 0x01 for different channels - stubI2CWriteBytesRequest.BytesTWrite.Add(0x80);//Byte 2 to Write - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; - } -//----------------------------------- -int adc_set_for_read_temp(uint I2C_Slave_Add) - { - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0x02);//Byte 0 to write - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; - } -//----------------------------------- -int adc_read_temp(uint I2C_Slave_Add) - { - - StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest(); - stubI2CReadBytesRequest.I2CId = I2C_ID; - stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add; - stubI2CReadBytesRequest.NumberOfBytesToRead = 2; // Number of bytes to read - - var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest); - - for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++) - { - stubManager.WriteLineHex(response1.ReadBytes[i],2); - } - - - return 1; - } -//----------------------------------- -int adc_set_for_read_ch(uint I2C_Slave_Add) - { - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0x01);//Byte 0 to write - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; - } -//----------------------------------- -uint adc_read_ch(uint I2C_Slave_Add) - { - StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest(); - stubI2CReadBytesRequest.I2CId = I2C_ID; - stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add; - stubI2CReadBytesRequest.NumberOfBytesToRead = 2; // Number of bytes to read - - var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest); - uint temph=0; - uint templ=0; - uint temp=0; - temph=response1.ReadBytes[0]; - templ=response1.ReadBytes[1]; - temp = (temph << 8) | templ; - temp=temp & 0x0fff; - return temp; - } diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Jig/DyeHeadJig.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Jig/DyeHeadJig.cs deleted file mode 100644 index 3e5ccf085..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Jig/DyeHeadJig.cs +++ /dev/null @@ -1,384 +0,0 @@ -//-------------------------------------------------------------------------------- - -//include "Dispenser_setup_mbar1.cs" -//include "C:\Dispenser_setup\Dispenser_setup_seal_test.cs" - -//-------------------------------------------------------------------------------- -//include "Dispenser_Motor_stop.cs" -//include "Dispenser_setup_form_valve close_1.cs" -//include "Dispenser_setup_form_valve open_1.cs" -//include "Dispenser_Motor_run.cs" -//include "Dispenser_Motor_Up.cs" -//include "Dispenser_Motor_Down.cs" -//-------------------------------------------------------------------------------- -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -//-------------------------------------------------------------------------------- -const Int32 RDANCER_Motor = 21; -const Int32 RDRIVING_Motor = 22; -const Int32 RLOADING_Motor = 24; - -//-------- - -const Int32 F1_LS_RLOADMOTOR_UP = 0x0040 ; -const Int32 F1_LS_RLOADMOTOR_DN = 0x0080 ; - - - - - - -const Int32 F1_MOTO_RLOADING_TX1 = 0x60000202; -const Int32 F1_MOTO_RLOADING_TX0 = 0x60000200; -const Int32 F1_MOTO_RLOADING_RX1 = 0x60000206; -const Int32 F1_MOTO_RLOADING_RX0 = 0x60000204; - - -const Int32 F1_LS_03_Direct =0x60000040; -//-------------------------------------------------------------------------------- -string path1="M:\\RTFU\\Reports\\"; -string File_Name1 ; -string Status; - - - -//----------------------------------------------------- - -//int SealTest=0; -//int Characterization; -string RTFU_Sn; -//int dispenserNumber=1; -//string Dtype=""; -//int Table=0; -///string shortDateString; - -//UInt32 Type_card; -//-------------------------------------------------------------------------------- - -public void OnExecute(StubManager stubManager) -{ - stubManager.Write("Counter is 1 \n"); - -//----------------------------------------------------------------------------------------------------------------------------------------------------- -//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0X60000522, 0X128);//0X128 EQULE 50 MSEC - - //-----------------------------detect card ---------------------------- - - -//--------------------------------------------------------------------------------------------------------------------------------------------------------- - - -//Create form - Form form1 = new Form(); - -//-------------------------------------------------------------------------------- - -// Create buttons to use as the accept and cancel buttons. - Button button1 = new Button () - { - Width = 100, - Height = 100, - }; - -//-------------------------------------------------------------------------------- -// Set the text of button - - button1.Text = "Run"; - - -//-------------------------------------------------------------------------------- -// Set the position of the button on the form. - - button1.Location = new Point (40, 100); - - - - -//-------------------------------------------------------------------------------- - // Add button to the form. - - form1.Controls.Add(button1); - - - -//-------------------------------------------------------------------------------- - -// Set the caption bar text of the form. - - form1.Text = "RTFU Test"; - -//-------------------------------------------------------------------------------- - - // Define the border style of the form to a dialog box. - - form1.FormBorderStyle = FormBorderStyle.FixedDialog; - - // Set the MaximizeBox to false to remove the maximize box. - - form1.MaximizeBox = false; - - // Set the MinimizeBox to false to remove the minimize box. - - form1.MinimizeBox = false; - - // Set the start position of the form to the center of the screen. - - form1.StartPosition = FormStartPosition.CenterScreen; - - - form1.AutoSize = true; - form1.AutoSizeMode = AutoSizeMode.GrowAndShrink; - -//-----RTFU Serial Number ----------- - -Label Label1 = new Label () - { - Width = 150, - Height = 20, - Text =" RTFU S/N" - }; -Label1.Location = new Point (30, 10); - form1.Controls.Add(Label1); - - -TextBox TextBox1 = new TextBox () - { - Width = 100, - Height = 10, - Text ="" - }; -TextBox1.Location = new Point (40, 40); - form1.Controls.Add(TextBox1); - -//-----USER NAME ----------- - -Label Label2 = new Label () - { - Width = 150, - Height = 20, - Text ="USER NAME" - }; -Label2.Location = new Point (190, 10); - form1.Controls.Add(Label2); - - -TextBox TextBox2 = new TextBox () - { - Width = 100, - Height = 10, - Text ="" - }; -TextBox2.Location = new Point (200, 40); - form1.Controls.Add(TextBox2); - -//----------LOCATION---------- - - Label Label3 = new Label () - { - Width = 150, - Height = 20, - Text ="LOCATION" - }; -Label3.Location = new Point (350, 10); - form1.Controls.Add(Label3); - - - -TextBox TextBox3 = new TextBox () - { - Width = 100, - Height = 10, - Text ="" - }; -TextBox3.Location = new Point (360, 40); - form1.Controls.Add(TextBox3); - -//-------------------------------------------------------------------------------- - - stubManager.Write("Counter is 2 \n"); - - button1.Click += (_,__) => - - { - -//File_Name1=path1 +"RTFU.log" ; -File_Name1=path1 + TextBox1.Text +"_RTFU_" + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".log" ; -//File_Name1=path1 + DateTime.Now+"RTFU.log" ; - -stubManager.Write(File_Name1 +"\n"); -stubManager.WriteToFile(File_Name1,DateTime.Now +"\n" ); -stubManager.Write(DateTime.Now +"\n" ); - -stubManager.AppendToFile(File_Name1,"RTFU Test Report\n" ); -stubManager.Write("RTFU Test Report\n" ); - -stubManager.AppendToFile(File_Name1,"RTFU S/N: \t" + TextBox1.Text +"\n" ); -stubManager.Write("RTFU S/N:" + TextBox1.Text +"\n" ); - -stubManager.AppendToFile(File_Name1,"User Name:\t" + TextBox2.Text +"\n" ); -stubManager.Write("User Name:" + TextBox2.Text +"\n" ); - - -stubManager.AppendToFile(File_Name1,"Location:\t" + TextBox3.Text +"\n" ); -stubManager.Write("Location:" + TextBox3.Text +"\n" ); - - - - - - -Label Label5 = new Label () - { - Width = 120, - Height =100, - Text = "" - }; -Label5.Location = new Point (300, 100); -Label5.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; - -Label5.Text="Pros"; -Label5.Font = new Font("Arial", 24,FontStyle.Bold); -form1.Controls.Add(Label5); - -Status=Test_RLOADING_RTFU (); - Label5.Text=Status; - TextBox1.Text=""; -}; - - form1.ShowDialog(); - - stubManager.Write("Counter is \n"); - - - return; - } - //------------------------------------ -string Test_RLOADING_RTFU() -{ - int temp=1; - int counter; - Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x2c000000); //set kval ran to 0x2c - Thread.Sleep(100); - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RLOADING_Motor, true,100); //move Rloading down - Thread.Sleep(3000); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading - Thread.Sleep(1000); - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RLOADING_Motor,false,100); //move Rloading up - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //read LS - if ((response.Value & F1_LS_RLOADMOTOR_UP) !=F1_LS_RLOADMOTOR_UP ) //if LS_RLOADMOTOR_UP is up then error - { - stubManager.AppendToFile(File_Name1,"LS_RLOADMOTOR_UP\tFail"); - stubManager.Write("LS_RLOADMOTOR_UP\tFail\n"); - return "Fail"; - } - counter =0; - while ( counter < 150) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if LS_RLOADMOTOR_UP is up then move down - if ((response.Value & F1_LS_RLOADMOTOR_UP) != F1_LS_RLOADMOTOR_UP ) - counter=150; - Thread.Sleep(100); - } - if (counter >= 150) - { - stubManager.AppendToFile(File_Name1,"LS_RLOADMOTOR_UP or Motors RLOADING \tFail"); - stubManager.Write("LS_RLOADMOTOR_UP or Motors RLOADING \tFail\n"); - return "Fail"; - } - stubManager.AppendToFile(File_Name1,"LS_RLOADMOTOR_UP\tPass"); - stubManager.Write("LS_RLOADMOTOR_UP or Motors RLOADING \tPass\n"); -//----------------------------------------------------------------------------------------------------- - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RLOADING_Motor, true,100); //move Rloading down - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //read LS - - if ((response.Value & F1_LS_RLOADMOTOR_DN) !=F1_LS_RLOADMOTOR_DN ) //if LS_RLOADMOTOR_DN is up then error - { - stubManager.AppendToFile(File_Name1,"LS_RLOADMOTOR_DN\tFail"); - stubManager.Write("LS_RLOADMOTOR_DN\tFail\n"); - return "Fail"; - } - counter =0; - while ( counter < 150) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if LS_RLOADMOTOR_UP is up then move down - if ((response.Value & F1_LS_RLOADMOTOR_DN) != F1_LS_RLOADMOTOR_DN ) - counter=150; - Thread.Sleep(100); - } - if (counter >= 150) - { - stubManager.AppendToFile(File_Name1,"LS_RLOADMOTOR_DN \tFail"); - stubManager.Write("LS_RLOADMOTOR_UP RLOADING \tFail\n"); - return "Fail"; - } - Thread.Sleep(1000); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading - Thread.Sleep(1000); - Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x14000000); //set kval ran to 0x14 - - return "Pass";; - -} -//------------------------------------------------------------- -int Test_RDRIVING_RTFU() -{ - int temp=1; - int counter; - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RDRIVING_Motor, true,200); //move Rdriving clockwise - - DialogResult result1 = MessageBox.Show("Are RDRIVING_Motor move clockwise ?","Important Question",MessageBoxButtons.YesNo); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RDRIVING_Motor, 3); //hold Rloading - if (result1==DialogResult.Yes) - { - stubManager.AppendToFile(File_Name1,"RDRIVING_RTFU\tPass"); - stubManager.Write("RDRIVING_RTFU\tPass\n"); - return 1; - } - else - { - stubManager.AppendToFile(File_Name1,"RDRIVING_RTFU\tFail"); - stubManager.Write("RDRIVING_RTFU\tFail\n"); - return 0; - } -} -//-------------------------------------------------------------------------------- - - -//-------------------------------------------------------------------------------- - -//-------------------------------------------------------------------------------- - - -//-------------------------------------------------------------------------------- - -// Display the form as a modal dialog box. - -// ParaData1 shall be left justified i.e. <cmd><Byte0><Byte1><Byte2> -int Motor_SetParam(Int32 HighAdr, Int32 LowAdr, Int32 ParaAddr, uint ParaData1) -{ - - Int32 Temp = 0; - Temp = (ParaAddr << 8 ) + ( (Int32) ParaData1 >> 24); - - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,HighAdr, (Temp & 0xffff)); - Temp = ((Int32)ParaData1 >> 8) & 0xffff; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,LowAdr, (Temp)); - //Fpga_Read_Reg(Fpga, HighAdr+4, 1); - //Fpga_Read_Reg(Fpga, LowAdr+4, 1); - - return 1; -} diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Write Flate head eeprom.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Write Flate head eeprom.cs deleted file mode 100644 index 0d01c7dbe..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Write Flate head eeprom.cs +++ /dev/null @@ -1,146 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -//---------------------- -const Int32 I2C_ID = 3; //MCU_I2C3 -const Int32 TCA9548A_address = 0xE2; -const Int32 I2C_Slave_Add = 0xA0; // //eeprom address - 32kByte -int Head_Mux_Channel_ID = 4; //Head MUX channel -//---------------------- - -const Int32 SerialNum = 0x01; - - -int enable_channel(int Channel_ID) -{ - uint Const_temp = 0x01; - - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = TCA9548A_address; - - Const_temp = Const_temp << Channel_ID; - stubI2CWriteBytesRequest.BytesTWrite.Add(Const_temp); - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; -} - - -int WriteFlatEpprom(uint I2C_Slave_Add) -{ - uint Page=0; - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write - //-------------------------------------------------------------- - - stubI2CWriteBytesRequest.BytesTWrite.Add(0x33); //header - stubI2CWriteBytesRequest.BytesTWrite.Add(0xcc); - stubI2CWriteBytesRequest.BytesTWrite.Add(0xaa); - stubI2CWriteBytesRequest.BytesTWrite.Add(0x55); - - //stubI2CWriteBytesRequest.BytesTWrite.Add(0x04);//HEAD_TYPE_STAPLE_SPUN - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - Thread.Sleep(100); - - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(92);//Byte 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write - //-------------------------------------------------------------- - - stubI2CWriteBytesRequest.BytesTWrite.Add(0x10); //flat - stubI2CWriteBytesRequest.BytesTWrite.Add(0x00); - stubI2CWriteBytesRequest.BytesTWrite.Add(0x00); - stubI2CWriteBytesRequest.BytesTWrite.Add(0x00); - - //stubI2CWriteBytesRequest.BytesTWrite.Add(0x04);//HEAD_TYPE_STAPLE_SPUN - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - Thread.Sleep(100); - - - - - - return 1; -} - -int adc_set_for_read_ch(uint I2C_Slave_Add, uint Page) -{ - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; -} - -int adc_read_ch(uint I2C_Slave_Add) -{ - StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest(); - stubI2CReadBytesRequest.I2CId = I2C_ID; - stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add + 1; - stubI2CReadBytesRequest.NumberOfBytesToRead = 10; // Number of bytes to read - - var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest); - uint temph=0; - - for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++) - { - temph=response1.ReadBytes[i]; - stubManager.WriteHex(temph,2); - } - - return 1; -} - - -public void OnExecute(StubManager stubManager) -{ - - //enable_all_channel(); - enable_channel(Head_Mux_Channel_ID); // Chanel 0-7 => Disp0enser 0-7 - - for (int i = 0; i<1; i++) - { - - WriteFlatEpprom(I2C_Slave_Add); - Thread.Sleep(10); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet ) - - stubManager.Write("\nPage 0x00 #"); - stubManager.Write(i); - stubManager.Write("\t- The Buffer is: "); - adc_set_for_read_ch(I2C_Slave_Add, 0x00); - //Thread.Sleep(1); //Sleep for 10 milli. - adc_read_ch(I2C_Slave_Add); - - Thread.Sleep(1000); - - } -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Write SYLKO to head eeprom.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Write SYLKO to head eeprom.cs deleted file mode 100644 index d7729ca2f..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Write SYLKO to head eeprom.cs +++ /dev/null @@ -1,118 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -//---------------------- -const Int32 I2C_ID = 3; //MCU_I2C3 -const Int32 TCA9548A_address = 0xE2; -const Int32 I2C_Slave_Add = 0xA0; // //eeprom address - 32kByte -int Head_Mux_Channel_ID = 4; //Head MUX channel -//---------------------- - -const Int32 SerialNum = 0x01; - - -int enable_channel(int Channel_ID) -{ - uint Const_temp = 0x01; - - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = TCA9548A_address; - - Const_temp = Const_temp << Channel_ID; - stubI2CWriteBytesRequest.BytesTWrite.Add(Const_temp); - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; -} - - -int adc_write(uint I2C_Slave_Add, uint Page) -{ - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write - //-------------------------------------------------------------- - - stubI2CWriteBytesRequest.BytesTWrite.Add(SerialNum);//S/N - stubI2CWriteBytesRequest.BytesTWrite.Add(0x03);//HEAD_TYPE_SYLKO - //stubI2CWriteBytesRequest.BytesTWrite.Add(0x04);//HEAD_TYPE_STAPLE_SPUN - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; -} - -int adc_set_for_read_ch(uint I2C_Slave_Add, uint Page) -{ - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; -} - -int adc_read_ch(uint I2C_Slave_Add) -{ - StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest(); - stubI2CReadBytesRequest.I2CId = I2C_ID; - stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add + 1; - stubI2CReadBytesRequest.NumberOfBytesToRead = 10; // Number of bytes to read - - var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest); - uint temph=0; - - for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++) - { - temph=response1.ReadBytes[i]; - stubManager.WriteHex(temph,2); - } - - return 1; -} - - -public void OnExecute(StubManager stubManager) -{ - - //enable_all_channel(); - enable_channel(Head_Mux_Channel_ID); // Chanel 0-7 => Disp0enser 0-7 - - for (int i = 0; i<1; i++) - { - - adc_write(I2C_Slave_Add,0x00); - Thread.Sleep(10); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet ) - - stubManager.Write("\nPage 0x00 #"); - stubManager.Write(i); - stubManager.Write("\t- The Buffer is: "); - adc_set_for_read_ch(I2C_Slave_Add, 0x00); - //Thread.Sleep(1); //Sleep for 10 milli. - adc_read_ch(I2C_Slave_Add); - - Thread.Sleep(1000); - - } -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/magnet_motor_limit_switch1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/magnet_motor_limit_switch1.cs deleted file mode 100644 index a5a43f137..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/magnet_motor_limit_switch1.cs +++ /dev/null @@ -1,75 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -include "..\..\Defines\Tango_Defines_Basic.cs" -include "Tango_Defines_SSR.cs" -include "Tango_Defines_LimitSwitch.cs" - -//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\Software\Stub_scripts\Tango_Defines_Basic.cs" -//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\Software\Stub_scripts\Interfaces\Tango_Defines_SSR.cs" - - -public void OnExecute(StubManager stubManager) -{ -Int32 Bit = 1; - - //Write GPO_DRYER_SSR1_CTRL SSR/SSR no. 1 - SetBit (FPGA2, F2_CTRL, 0, 1); - stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,23, false,0x800000+0); - - stubManager.Write("\nTesting SSR no. 13 of magnet or motor driver"); - Thread.Sleep(1000); - -var response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,2, true, 150); - - - stubManager.Write("\n*** Open Lid Head "); - Bit = 1; - - while (Bit != 0x0) //wait until LTFU LOADRAM Down - { - Bit = GetBit(FPGA1, F1_LS_01_Direct,7); - Thread.Sleep(50); - } - Thread.Sleep(2000); - stubManager.Write("\n--------1--------"); - - - stubManager.Write("\n*** Close Lid Head "); - Bit = 1; - response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,2, false, 150); - - while (Bit != 0x0) //wait until LTFU LOADRAM Down - { - Bit = GetBit(FPGA1, F1_LS_01_Direct,8); - Thread.Sleep(50); - } - Thread.Sleep(100); - stubManager.Write("\n--------2--------"); - - response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,2, true, 0); - - SetBit (FPGA2, F2_CTRL, 0, 0); - - stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,23, false,0x800000+2); - Thread.Sleep(1000); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,23,3); - - -// var response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,0, true, 50); motor clean - -//response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,1, true, 50); motor clean - - - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/ElectricalEnclosure/ElectricalEnclosure_Fans1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/ElectricalEnclosure/ElectricalEnclosure_Fans1.cs index ba39cb2b0..264400e64 100644 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/ElectricalEnclosure/ElectricalEnclosure_Fans1.cs +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/ElectricalEnclosure/ElectricalEnclosure_Fans1.cs @@ -73,7 +73,7 @@ public void OnExecute(StubManager stubManager) for (int i = 0; i<1000; i++) { - stubManager.Write("\n----------------------------------------\n"); + stubManager.Write("----------------------------------------\n"); // Fpga_Read_Reg(FPGA1, F1_Tacho_reg0, 0); stubManager.Write("\n"); // Fpga_Read_Reg(FPGA1, F1_Tacho_reg1, 1); stubManager.Write("\n"); // Fpga_Read_Reg(FPGA1, F1_Tacho_reg2, 1); stubManager.Write("\n"); @@ -83,85 +83,37 @@ public void OnExecute(StubManager stubManager) var RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg0, 0); stubManager.Write("\nFan5 Speed-"); stubManager.WriteHex(RetVal.Value,4); - if (RetVal.Value>0x440 && RetVal.Value<0x4d0) - stubManager.Write("\t Pass"); - else - stubManager.Write("\t Fail"); + RetVal = Fpga_Read_Reg(FPGA1, F1_gpi_FANS, 0); + Temp1=RetVal.Value & 0x0001; + if (Temp1 !=0x0001) + stubManager.Write("\nFan1 Running "); + else + stubManager.Write("\nFan1 Stop"); - RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg1, 0); - stubManager.Write("\nFan1 Speed-"); - stubManager.WriteHex(RetVal.Value,4); - if (RetVal.Value>0x220 && RetVal.Value<0x300) - stubManager.Write("\t Pass"); - else - stubManager.Write("\t Fail"); - - - - -// RetVal = Fpga_Read_Reg(FPGA1, F1_gpi_FANS, 0); -// Temp1=RetVal.Value & 0x0001; -// if (Temp1 !=0x0001) -// stubManager.Write("\tFan1 Running "); -// else -// stubManager.Write("\tFan1 Stop"); - - - - RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg2, 0); - stubManager.Write("\nFan2 Speed-"); - stubManager.WriteHex(RetVal.Value,4); - if (RetVal.Value>0x220 && RetVal.Value<0x300) - stubManager.Write("\t Pass"); - else - stubManager.Write("\t Fail"); - - -// Temp1=RetVal.Value & 0x0002; -// if (Temp1 !=0x0002) -// stubManager.Write("\tFan2 Running "); -// else -// stubManager.Write("\tFan2 Stop"); - - - RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg3, 0); - stubManager.Write("\nFan3 Speed-"); - stubManager.WriteHex(RetVal.Value,4); - if (RetVal.Value>0x220 && RetVal.Value<0x300) - stubManager.Write("\t Pass"); - else - stubManager.Write("\t Fail"); - - -// Temp1=RetVal.Value & 0x0004; -// if (Temp1 !=0x0004) -// stubManager.Write("\tFan3 Running "); -// else -// stubManager.Write("\tFan3 Stop"); + Temp1=RetVal.Value & 0x0002; + if (Temp1 !=0x0002) + stubManager.Write("\nFan2 Running "); + else + stubManager.Write("\nFan2 Stop"); - - - RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg4, 0); - stubManager.Write("\nFan4 Speed-"); - stubManager.WriteHex(RetVal.Value,4); - if (RetVal.Value>0x220 && RetVal.Value<0x300) - stubManager.Write("\t Pass"); - else - stubManager.Write("\t Fail"); + Temp1=RetVal.Value & 0x0004; + if (Temp1 !=0x0004) + stubManager.Write("\nFan3 Running "); + else + stubManager.Write("\nFan3 Stop"); - -// Temp1=RetVal.Value & 0x0008; -// if (Temp1 !=0x0008) -// stubManager.Write("\tFan4 Running "); -// else -// stubManager.Write("\tFan4 Stop"); + Temp1=RetVal.Value & 0x0008; + if (Temp1 !=0x0008) + stubManager.Write("\nFan4 Running "); + else + stubManager.Write("\nFan4 Stop"); -// Fpga_Read_Reg(FPGA1, F1_Tacho_reg5, 1); stubManager.Write("\n"); -// Fpga_Read_Reg(FPGA1, F1_Tacho_reg6, 1); stubManager.Write("\n"); -// Fpga_Read_Reg(FPGA1, F1_Tacho_reg7, 1); stubManager.Write("\n"); -// Fpga_Read_Reg(FPGA2, F2_Tacho_reg0, 1); stubManager.Write("\n"); + Fpga_Read_Reg(FPGA1, F1_Tacho_reg5, 1); stubManager.Write("\n"); + Fpga_Read_Reg(FPGA1, F1_Tacho_reg6, 1); stubManager.Write("\n"); + Fpga_Read_Reg(FPGA1, F1_Tacho_reg7, 1); stubManager.Write("\n"); + Fpga_Read_Reg(FPGA2, F2_Tacho_reg0, 1); stubManager.Write("\n"); //stubManager.Write("\n\n"); Thread.Sleep(1000); diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Header/1.cs index 4100a770c..4100a770c 100644 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/1.cs +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Header/1.cs diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/DyeHead_SSR.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Header/DyeHead_SSR.cs index cb01a86c4..cb01a86c4 100644 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/DyeHead_SSR.cs +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Header/DyeHead_SSR.cs diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/DyeHead_SSR_CURRENT_SENSE.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Header/DyeHead_SSR_CURRENT_SENSE.cs index b9793a336..b9793a336 100644 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/DyeHead_SSR_CURRENT_SENSE.cs +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Header/DyeHead_SSR_CURRENT_SENSE.cs diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/header_LimitSwitch.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Header/header_LimitSwitch.cs index 4454e9c63..4454e9c63 100644 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/header_LimitSwitch.cs +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Header/header_LimitSwitch.cs diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/magnet_motor_limit_switch.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Header/magner_motor_limit_switch.cs index 0dcf29853..0dcf29853 100644 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/magnet_motor_limit_switch.cs +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Header/magner_motor_limit_switch.cs diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/magner_ssr.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Header/magner_ssr.cs index 54e3f4844..54e3f4844 100644 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/magner_ssr.cs +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Header/magner_ssr.cs diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_JIG.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_JIG.cs deleted file mode 100644 index f961158e9..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_JIG.cs +++ /dev/null @@ -1,574 +0,0 @@ -using System; -using System.Text; -using System.IO; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; -//-------------------------------------------------------------------------------- - -//-------------------DEFINE Motors------------------ -const Int32 LDANCER_Motor = 16; -const Int32 LDRIVING_Motor = 18; -const Int32 LLOADING_Motor = 19; - -//-------------------DEFINE Motors Parameters------------------ - -const Int32 F1_MOTO_LLOADING_TX1 = 0x60000232; -const Int32 F1_MOTO_LLOADING_TX0 = 0x60000230; - - -//-------------------DEFINE Limit Switch--------------- -const Int32 F1_LS_02_Direct =0x60000030; - -const Int32 F1_LS_LLOADMOTOR_UP = 0x0100 ; -const Int32 F1_LS_LLOADMOTOR_DN = 0x0200 ; -const Int32 F1_LS_LDANCER1_UP = 0x1000; -const Int32 F1_LS_LDANCER1_DN = 0x2000; -const Int32 F1_LS_LDANCER2_UP = 0x0400; -const Int32 F1_LS_LDANCER2_DN = 0x0800; -const Int32 F1_LS_LLOADRAM_LF = 0x0080; -const Int32 F1_LS_LLOADRAM_RT = 0x0040; - - -const Int32 F1_LDANCER1_ROTENC_MSB = 0x600001c2; -const Int32 F1_LDANCER1_ROTENC_LSB = 0x600001c0; -const Int32 F1_LDANCER1_ROTENC_TX = 0x600001ce; - -const Int32 F1_LDANCER2_ROTENC_MSB = 0x600001b2; -const Int32 F1_LDANCER2_ROTENC_LSB = 0x600001b0; -const Int32 F1_LDANCER2_ROTENC_TX = 0x600001be; - -const int UNIT_UNDER_TEST=3+1+5; -//-------------------------------------------------------------------------------- -string path1="P:\\Scripts\\Assemblies\\LTFU\\LTFULog\\"; -string path2="C:\\LTFULog\\"; - -string File_Name1 ; -string Status; -//--------------------------- - -string [,] Units_status = new string[UNIT_UNDER_TEST,2] { - {"LS_LLOADMOTOR_Up","Not Test"}, //0 - {"LS_LLOADMOTOR_DOWN","Not Test"}, //1 - {"LLOADING_Motor","Not Test"}, //2 - {"LDRIVING_Motor","Not Test"}, //3 - {"LS_LDANCER1_DOWN","Not Test"}, //4 - {"LS_LDANCER1_UP","Not Test"}, //5 - {"LDANCER_Motor","Not Test"}, //6 - {"LDANCER1_ROTENC","Not Test"}, //7 - {"LDANCER1_ROTENC","Not Test"}, //8 - }; -//----------------------------------------------------- -string LTFU_Sn; -//-------------------------------------------------------------------------------- - -public void OnExecute(StubManager stubManager) -{ -string path=""; - Form form1 = new Form(); - Motor_SetParam(F1_MOTO_LLOADING_TX1,F1_MOTO_LLOADING_TX0,0x0a,0x14000000); //set kval ran to 0x14,0.65A - -// Set the caption bar text of the form. - form1.TopMost = true; - form1.Text = "LTFU Test"; - form1.FormBorderStyle = FormBorderStyle.FixedDialog; - form1.MaximizeBox = false; - form1.MinimizeBox = false; - form1.StartPosition = FormStartPosition.CenterScreen; - form1.AutoSize = true; - form1.AutoSizeMode = AutoSizeMode.GrowAndShrink; -// Create buttons to Run. - Button button1 = new Button () - { - Width = 100, - Height = 100, - }; - button1.Text = "Run"; - button1.Location = new Point (40, 100); - form1.Controls.Add(button1); -//-----LTFU Serial Number ----------- - - Label Label1 = new Label () - { - Width = 150, - Height = 20, - Text =" LTFU S/N" - }; - Label1.Location = new Point (30, 10); - form1.Controls.Add(Label1); - TextBox TextBox1 = new TextBox () - { - Width = 100, - Height = 10, - Text ="" - }; - TextBox1.Location = new Point (40, 40); - form1.Controls.Add(TextBox1); - //----------LOCATION---------- - - Label Label3 = new Label () - { - Width = 150, - Height = 20, - Text ="LOCATION" - }; -Label3.Location = new Point (350, 10); - form1.Controls.Add(Label3); - - - -TextBox TextBox3 = new TextBox () - { - Width = 100, - Height = 10, - Text ="" - }; -TextBox3.Location = new Point (360, 40); - form1.Controls.Add(TextBox3); - - - - - Label Label5 = new Label () - { - Width = 120, - Height =100, - Text = "" - }; - Label5.Location = new Point (300, 100); - Label5.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; - - Label5.Text=""; - Label5.Font = new Font("Arial", 24,FontStyle.Bold); - form1.Controls.Add(Label5); - - - - -//-------------------------------------------------------------------------------- - - button1.Click += (_,__) => - - { - - Label5.Text="Pros"; - - if (!Directory.Exists(path1)) - { - path=path2; - if (!Directory.Exists(path2)) - Directory.CreateDirectory(path2); - } - else - path=path1; - - File_Name1=path + TextBox1.Text +"_LTFU_" + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".log" ; - - - stubManager.Write(File_Name1 +"\n"); - stubManager.WriteToFile(File_Name1,DateTime.Now +" " ); - stubManager.Write(DateTime.Now +"\n" ); - - stubManager.AppendToFile(File_Name1,"LTFU Test Report" ); - stubManager.Write("LTFU Test Report\n" ); - - stubManager.AppendToFile(File_Name1,"LTFU S/N: \t" + TextBox1.Text ); - stubManager.Write("LTFU S/N:" + TextBox1.Text +"\n" ); - - - stubManager.AppendToFile(File_Name1,"Location:\t" + TextBox3.Text ); - stubManager.Write("Location:" + TextBox3.Text +"\n" ); - - - -//------------------------------- start test ----------- - Test_LLOADING_LTFU(); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LLOADING_Motor, 3); //hold LRoading high z - Thread.Sleep(100); - Motor_SetParam(F1_MOTO_LLOADING_TX1,F1_MOTO_LLOADING_TX0,0x0a,0x14000000); //set kval ran to 0x14,0.65A - - Test_LDRIVING_LTFU(); - - Test_DANCER_LTFU(); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LDANCER_Motor, 3); //hold Lloading high z - - Status=write_to_file(); - stubManager.Write(Status +"\n"); - - Label5.Text=Status; - TextBox1.Text=""; - }; - - form1.ShowDialog(); - - return ; - } - - //------------------------------------ -int Test_LLOADING_LTFU() -{ - int temp=1; - int counter; - - Motor_SetParam(F1_MOTO_LLOADING_TX1,F1_MOTO_LLOADING_TX0,0x0a,0x2c000000); //set kval ran to 0x2c- 1.3A - Thread.Sleep(100); - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,LLOADING_Motor, false,200); //move Rloading down - Thread.Sleep(3000); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LLOADING_Motor, 3); //hold Rloading high z - Thread.Sleep(1000); -//------------------------------------------ check F1_LS_LLOADMOTOR_UP------------------------------------------------ - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //read LS - if ((response.Value & F1_LS_LLOADMOTOR_UP) !=F1_LS_LLOADMOTOR_UP ) //if LS_RLOADMOTOR_UP is up then error - { - DialogResult result = MessageBox.Show("Did LLOADIN MOTOR Move?", "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.Yes) - { - Units_status[0,1]="Fail"; - stubManager.Write("LS_LLOADMOTOR_UP\tFail\n"); - return 0; - } - else - { - Units_status[2,1]="Fail"; - stubManager.Write("LLOADMOTOR\tFail\n"); - return 0; - } - } -//----------------------------------------- mov LLOADING up ------------------------------------------------- - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,LLOADING_Motor,true,200); //move Lloading up - counter =0; - while ( counter < 150) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //if LS_LLOADMOTOR_UP is up then move down - if ((response.Value & F1_LS_LLOADMOTOR_UP) != F1_LS_LLOADMOTOR_UP ) - counter=250; - - Thread.Sleep(100); - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LLOADING_Motor, 3); //hold Lloading high z - - if (counter == 150) - { - Units_status[0,1]="Fail"; - stubManager.Write("LS_LLOADMOTOR_UP\tFail\n"); - return 0; - } - DialogResult result1 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo); - if(result1 == DialogResult.No) - { - Units_status[0,1]="Fail"; - stubManager.Write("LS_LLOADMOTOR_UP Not calibrate\n"); - return 0; - } - Units_status[0,1]="Pass"; - Units_status[2,1]="Pass"; - -//------------------------------------------ check F1_LS_LLOADMOTOR_DN------------------------------------------------ - - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //read LS - - if ((response.Value & F1_LS_LLOADMOTOR_DN) !=F1_LS_LLOADMOTOR_DN ) //if LS_LLOADMOTOR_DN is up then error - { - Units_status[1,1]="Fail"; - stubManager.Write("LS_LLOADMOTOR_DN\tFail\n"); - return 0; - } -//------------------------------------------ mov LLOADING dn ------------------------------------------------ - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,LLOADING_Motor, false,200); //move Lloading down - counter =0; - while ( counter < 150) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //if LS_LLOADMOTOR_UP is up then move down - if ((response.Value & F1_LS_LLOADMOTOR_DN) != F1_LS_LLOADMOTOR_DN ) - counter=250; - - Thread.Sleep(100); - } - - if (counter == 150) - { - Units_status[1,1]="Fail"; - stubManager.Write("LS_LLOADMOTOR_DN\tFail\n"); - return 0; - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LLOADING_Motor, 3); //hold Lloading high z - - DialogResult result4 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo); - if(result4 == DialogResult.No) - { - Units_status[1,1]="Fail"; - stubManager.Write("LS_LLOADMOTOR_DN Not calibrate\n"); - return 0; - } - Units_status[1,1]="Pass"; - stubManager.Write("LLOADMOTOR\tPass\n"); - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,LLOADING_Motor, false,200); //move Lloading down - Thread.Sleep(2000); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LLOADING_Motor, 3); //hold Lloading high z - - return 1 ; - -} - - -Int32 ReadEncoder(int i) -{ - Int32 temp; - - if (i==0) //LDANCER1_ROTENC - { - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F1_LDANCER1_ROTENC_TX, 0x0000); //triggers a TX transmission - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LDANCER1_ROTENC_LSB); - var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LDANCER1_ROTENC_MSB); - - temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff)); - - - return temp; - } - //LDANCER2_ROTENC - - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F1_LDANCER2_ROTENC_TX, 0x0000); //triggers a TX transmission - var response2 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LDANCER2_ROTENC_LSB); - var response3 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LDANCER2_ROTENC_MSB); - - temp = Convert.ToInt32 (((((response3.Value <<16) + response2.Value)>>10 ) & 0x3fff)); - - - return temp; -} -//-------------------------------------------------------------------------------- -int Test_DANCER_LTFU() -{ - int counter; - Int32 temp; - Int32 temp1; - Int32 temp2; - Int32 temp3; - - -//------------------------------------------ check F1_LS_LDANCER1_DN ------------------------------------------------ - - MessageBox.Show("Make sure LDANCER Doun"); - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //read LS - - - if ((response.Value & F1_LS_LDANCER1_UP) !=F1_LS_LDANCER1_UP ) //if F1_LS_LDANCER1_UP is up then error - { - Units_status[5,1]="Fail"; - stubManager.Write("LS_LDANCER_UP\tFail\n"); - return 0; - } - -//----------------------------------------- check F1_LS_LDANCER1_UP ------------------------------------------------- - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,LDANCER_Motor,false,400); //move Lloading up - counter =0; - while ( counter < 250) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //if F1_LS_LDANCER1_UP is up then move down - if ((response.Value & F1_LS_LDANCER1_UP) != F1_LS_LDANCER1_UP ) - counter=350; - - Thread.Sleep(100); - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LDANCER_Motor, 3); //hold Ldancer high z - - - if (counter == 250) - { - Units_status[5,1]="Fail"; - stubManager.Write("LS_LDANCER1_UP\tFail\n"); - return 0; - } - - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //read LS - if ((response.Value & F1_LS_LDANCER1_DN) !=F1_LS_LDANCER1_DN ) //if F1_LS_LDANCER1_DN is up then error - { - Units_status[4,1]="Fail"; - stubManager.Write("LS_LDANCER1_DOWN\tFail\n"); - return 0; - } - - DialogResult result5= MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo); - - if(result5== DialogResult.No) - { - Units_status[5,1]="Fail"; - stubManager.Write("LS_LDANCER1_UP Not calibrate\n"); - return 0; - } - - Units_status[5,1]="Pass"; - stubManager.Write("LS_LDANCER1_UP\tPass\n"); - -//----------------------------------------- mov LDANCER_Motor down and check Ldancer encoder ------------------------------------------------- - temp= ReadEncoder(0); - temp2= ReadEncoder(1); - - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,LDANCER_Motor,true,400); //move Rloading down - counter =0; - while ( counter < 250) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //if LS_LDANCER1_DN is dn then move stop - if ((response.Value & F1_LS_LDANCER1_DN) != F1_LS_LDANCER1_DN ) - counter=350; - - Thread.Sleep(100); - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LDANCER_Motor, 3); //hold Rloading high z - if (counter == 250) - { - Units_status[4,1]="Fail"; - stubManager.Write("LS_LDANCER1_DOWN\tFail\n"); - return 0; - } - DialogResult result2 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo); - - if(result2 == DialogResult.No) - { - Units_status[4,1]="Fail"; - stubManager.Write("LS_LDANCER1_DN Not calibrate\n"); - return 0; - } - - Units_status[4,1]="Pass"; - stubManager.Write("LS_LDANCER1_DN\tPass\n"); - - Units_status[6,1]="Pass"; - stubManager.Write("LDANCER_Motor\tPass\n"); - - temp1= ReadEncoder(0); - temp3= ReadEncoder(1); - - stubManager.Write("temp="+temp + "\temp1="+temp1 +"\n"); - - DialogResult result = MessageBox.Show("SSI Dancer1 led is Green(not blinking)?", "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.No) - { - Units_status[7,1]="Fail"; - stubManager.Write("LDANCER1_SSI\tFail\n"); - } - else - { - if (temp>temp1) - temp1=temp1+0x4000; - temp1=temp1-temp; - if ((temp1> 4000) || (temp1 <200)) - { - Units_status[7,1]="Fail"; - stubManager.Write("LDANCER1_SSI\tFail\n"); - } - else - { - Units_status[7,1]="Pass"; - stubManager.Write("LDANCER1_SSI\tPass\n"); - } - } - stubManager.Write("temp2="+temp2 + "\temp3="+temp3 +"\n"); - - DialogResult result3 = MessageBox.Show("SSI Dancer2 led is Green(not blinking)?", "Warning",MessageBoxButtons.YesNo); - if(result3 == DialogResult.No) - { - Units_status[8,1]="Fail"; - stubManager.Write("LDANCER2_SSI\tFail\n"); - } - else - { - if (temp3>temp2) - temp2=temp2+0x4000; - temp2=temp2-temp3; - if ((temp1> 4000) || (temp1 <2000)) - { - Units_status[8,1]="Fail"; - stubManager.Write("LDANCER2_SSI\tFail\n"); - } - else - { - Units_status[8,1]="Pass"; - stubManager.Write("LDANCER2_SSI\tPass\n"); - } - } - return 1; -} - - -//------------------------------------------------------------- -int Test_LDRIVING_LTFU() -{ - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,LDRIVING_Motor, true,200); //move Ldriving clockwise - stubManager.Write("LDRIVING_Motor Motor rotate \n "); - - DialogResult result = MessageBox.Show("Are LDRIVING Motor rotate?", "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.No) - { - Units_status[3,1]="Fail"; - stubManager.Write("LDRIVING Motor not rotate\n"); - } - else - { - Units_status[3,1]="Pass"; - stubManager.Write("LDRIVING Motor rotate\n"); - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LDRIVING_Motor,3); //stop motor - - return 0; -} - - - -//-------------------------------------------------------------------------------- -int Motor_SetParam(Int32 HighAdr, Int32 LowAdr, Int32 ParaAddr, uint ParaData1) -{ - - Int32 Temp = 0; - Temp = (ParaAddr << 8 ) + ( (Int32) ParaData1 >> 24); - - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,HighAdr, (Temp & 0xffff)); - Temp = ((Int32)ParaData1 >> 8) & 0xffff; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,LowAdr, (Temp)); - - return 1; -} - //------------------------------------ -string write_to_file() -{ - stubManager.Write("write_to_file\n"); - -string Stemp="Pass"; - for (int i=0;i<UNIT_UNDER_TEST;i++) - { - stubManager.AppendToFile(File_Name1,Units_status[i,0]+"\t" + Units_status[i,1] ); - stubManager.Write(Units_status[i,0]+"\t" + Units_status[i,1]+"\n" ); - - if ((Units_status[i,1]=="Fail")||(Units_status[i,1]=="Not Test")) - Stemp="Fail"; - } - if (Stemp=="Fail") - { - stubManager.AppendToFile(File_Name1,"-------------LTFU Fail ------------ "); - stubManager.Write("-------------LTFU Fail ------------ "); - } - else - { - stubManager.AppendToFile(File_Name1,"-------------LTFU Pass ------------ )"); - stubManager.Write("-------------LTFU Pass ------------ "); - } - - return Stemp; - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Motors_Switch.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Motors_Switch.cs index 9955e0e5d..7578e825d 100644 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Motors_Switch.cs +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Motors_Switch.cs @@ -14,8 +14,6 @@ using Tango.Stubs; include "..\..\Defines\Tango_Defines_Basic.cs" include "Tango_Defines_Motors.cs" -include "Tango_Defines_LimitSwitch.cs" - //include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_Basic.cs" //include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_Motors.cs" @@ -23,108 +21,15 @@ include "Tango_Defines_LimitSwitch.cs" public void OnExecute(StubManager stubManager) { -Int32 Bit = 1; + stubManager.Write("\n*** LTFU Motor + limit switch Test ***"); +// stubManager.Write("\n*** Pulling motor drivers out of reset"); SetBit(FPGA1, F1_Moto_Driver_NSTBYRST1, 0, 1); SetBit(FPGA1, F1_Moto_Driver_NSTBYRST1, 1, 1); SetBit(FPGA1, F1_Moto_Driver_NSTBYRST1, 2, 1); SetBit(FPGA1, F1_Moto_Driver_NSTBYRST1, 4, 1); - stubManager.Write("\n*** Moving motor F1_MOTO_LLOADING back and for"); - Bit = 1; - - var response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,19,true , 500); - while (Bit != 0x0) //wait until LTFU LOADRAM Down - { - Bit = GetBit(FPGA1, F1_LS_02_Direct,8); - Thread.Sleep(10); - } - Thread.Sleep(100); - stubManager.Write("\n--------1--------"); - - -response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,19, false, 500); - Bit = 1; - while (Bit != 0x0) //wait until LTFU LOADRAM Down - { - Bit = GetBit(FPGA1, F1_LS_02_Direct,9); - Thread.Sleep(10); - } - stubManager.Write("\n--------2--------"); - response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,19, false, 0); - - Thread.Sleep(100); - var response1 = stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,19, false, 5000); - Thread.Sleep(1000); - Motor_HighZ(FPGA1, F1_MOTO_LLOADING_TX1, F1_MOTO_LLOADING_TX0); - stubManager.Write("\n*** Stopped motor F1_MOTO_LLOADING"); - - - //mov ldriving - - stubManager.Write("\n*** Running motor F1_MOTO_LDRIVING for 4 seconds... "); - Motor_Run(FPGA1, F1_MOTO_LDRIVING_TX1, F1_MOTO_LDRIVING_TX0, 0xffff, 0x1); - Thread.Sleep(4000); - Motor_HighZ(FPGA1, F1_MOTO_LDRIVING_TX1, F1_MOTO_LDRIVING_TX0); - - - - - - - - - stubManager.Write("\n\n*** Moving motor F1_MOTO_LDANCER1 back and for ..."); - - Bit = 1; - response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,16,false ,500); - while (Bit != 0x0) //wait until LTFU LOADRAM Down - { - Bit = GetBit(FPGA1, F1_LS_02_Direct,12); - Thread.Sleep(10); - } - Thread.Sleep(100); - stubManager.Write("\n--------1--------"); - - -response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,16, true, 500); - Bit = 1; - while (Bit != 0x0) //wait until LTFU LOADRAM Down - { - Bit = GetBit(FPGA1, F1_LS_02_Direct,13); - Thread.Sleep(10); - } - - Thread.Sleep(1000); - Motor_HighZ(FPGA1, F1_MOTO_LDANCER1_TX1, F1_MOTO_LDANCER1_TX0); - - - - - -/* - - - - - - - - - - - - - - - - - - - - - - - + stubManager.Write("\n*** F1_MOTO_LPIVOT1 is moving back and forth "); @@ -202,7 +107,7 @@ response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,16, true // Thread.Sleep(4000); stubManager.Write("\n\n*** RTFU Motor Test Ended ***"); - */ + } diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Motors_Switch1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Motors_Switch1.cs new file mode 100644 index 000000000..9955e0e5d --- /dev/null +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Motors_Switch1.cs @@ -0,0 +1,208 @@ +using System; +using System.Text; +using System.Linq; +using System.Drawing; +using System.Diagnostics; +using System.Windows.Forms; +using System.Threading; +using System.Threading.Tasks; +using System.Collections.Generic; +using Tango.PMR.Diagnostics; +using Tango.PMR.Stubs; +using Tango.Stubs; + + +include "..\..\Defines\Tango_Defines_Basic.cs" +include "Tango_Defines_Motors.cs" +include "Tango_Defines_LimitSwitch.cs" + +//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_Basic.cs" +//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_Motors.cs" + + + +public void OnExecute(StubManager stubManager) +{ +Int32 Bit = 1; + stubManager.Write("\n*** LTFU Motor + limit switch Test ***"); + SetBit(FPGA1, F1_Moto_Driver_NSTBYRST1, 0, 1); + SetBit(FPGA1, F1_Moto_Driver_NSTBYRST1, 1, 1); + SetBit(FPGA1, F1_Moto_Driver_NSTBYRST1, 2, 1); + SetBit(FPGA1, F1_Moto_Driver_NSTBYRST1, 4, 1); + + stubManager.Write("\n*** Moving motor F1_MOTO_LLOADING back and for"); + Bit = 1; + + var response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,19,true , 500); + while (Bit != 0x0) //wait until LTFU LOADRAM Down + { + Bit = GetBit(FPGA1, F1_LS_02_Direct,8); + Thread.Sleep(10); + } + Thread.Sleep(100); + stubManager.Write("\n--------1--------"); + + +response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,19, false, 500); + Bit = 1; + while (Bit != 0x0) //wait until LTFU LOADRAM Down + { + Bit = GetBit(FPGA1, F1_LS_02_Direct,9); + Thread.Sleep(10); + } + stubManager.Write("\n--------2--------"); + response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,19, false, 0); + + Thread.Sleep(100); + var response1 = stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,19, false, 5000); + Thread.Sleep(1000); + Motor_HighZ(FPGA1, F1_MOTO_LLOADING_TX1, F1_MOTO_LLOADING_TX0); + stubManager.Write("\n*** Stopped motor F1_MOTO_LLOADING"); + + + //mov ldriving - + stubManager.Write("\n*** Running motor F1_MOTO_LDRIVING for 4 seconds... "); + Motor_Run(FPGA1, F1_MOTO_LDRIVING_TX1, F1_MOTO_LDRIVING_TX0, 0xffff, 0x1); + Thread.Sleep(4000); + Motor_HighZ(FPGA1, F1_MOTO_LDRIVING_TX1, F1_MOTO_LDRIVING_TX0); + + + + + + + + + stubManager.Write("\n\n*** Moving motor F1_MOTO_LDANCER1 back and for ..."); + + Bit = 1; + response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,16,false ,500); + while (Bit != 0x0) //wait until LTFU LOADRAM Down + { + Bit = GetBit(FPGA1, F1_LS_02_Direct,12); + Thread.Sleep(10); + } + Thread.Sleep(100); + stubManager.Write("\n--------1--------"); + + +response = stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,16, true, 500); + Bit = 1; + while (Bit != 0x0) //wait until LTFU LOADRAM Down + { + Bit = GetBit(FPGA1, F1_LS_02_Direct,13); + Thread.Sleep(10); + } + + Thread.Sleep(1000); + Motor_HighZ(FPGA1, F1_MOTO_LDANCER1_TX1, F1_MOTO_LDANCER1_TX0); + + + + + +/* + + + + + + + + + + + + + + + + + + + + + + + + + + + //mov LLOAD - up + stubManager.Write("\n*** Moving motor F1_MOTO_LLOADING back and for"); + MotorHomingRequest motorHomingRequest = new MotorHomingRequest(); + motorHomingRequest.MotorType = (Tango.PMR.Hardware.HardwareMotorType) 19; + motorHomingRequest.Speed = 500; + motorHomingRequest.Direction = Tango.PMR.Diagnostics.MotorDirection.Forward; //Forward + stubManager.Run(motorHomingRequest); + Thread.Sleep(6000); + //mov lLOAD - dn + motorHomingRequest.MotorType = (Tango.PMR.Hardware.HardwareMotorType) 19; + motorHomingRequest.Speed = 500; + motorHomingRequest.Direction = Tango.PMR.Diagnostics.MotorDirection.Backward; //Forward + stubManager.Run(motorHomingRequest); + Thread.Sleep(5000); + var response = stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,19, false, 1000); + Thread.Sleep(1000); + + + //mov ldriving - + stubManager.Write("\n*** Running motor F1_MOTO_LDRIVING for 4 seconds... "); + Motor_Run(FPGA1, F1_MOTO_LDRIVING_TX1, F1_MOTO_LDRIVING_TX0, 0xffff, 0x1); +// Thread.Sleep(4000); + Motor_HighZ(FPGA1, F1_MOTO_LDRIVING_TX1, F1_MOTO_LDRIVING_TX0); + + + //mov Ldancer - + stubManager.Write("\n*** F1_MOTO_LDANCER1 is moving back and forth "); + motorHomingRequest.MotorType = (Tango.PMR.Hardware.HardwareMotorType) 16; + motorHomingRequest.Speed = 500; + motorHomingRequest.Direction = Tango.PMR.Diagnostics.MotorDirection.Forward; //Forward + stubManager.Run(motorHomingRequest); + Thread.Sleep(20000); + motorHomingRequest.MotorType = (Tango.PMR.Hardware.HardwareMotorType) 16; + motorHomingRequest.Speed = 500; + motorHomingRequest.Direction = Tango.PMR.Diagnostics.MotorDirection.Backward; //Backard + stubManager.Run(motorHomingRequest); + Thread.Sleep(20000); + + + + //mov Lpivot - + stubManager.Write("\n*** F1_MOTO_LPIVOT1 is moving back and forth "); + motorHomingRequest.MotorType = (Tango.PMR.Hardware.HardwareMotorType) 20; + motorHomingRequest.Speed = 500; + motorHomingRequest.Direction = Tango.PMR.Diagnostics.MotorDirection.Forward; //Forward + stubManager.Run(motorHomingRequest); + Thread.Sleep(20000); + motorHomingRequest.MotorType = (Tango.PMR.Hardware.HardwareMotorType) 20; + motorHomingRequest.Speed = 500; + motorHomingRequest.Direction = Tango.PMR.Diagnostics.MotorDirection.Backward; //Backard + stubManager.Run(motorHomingRequest); + Thread.Sleep(20000); + + + + + + + + + + stubManager.Write("\n*** F1_MOTO_RDANCER is moving back and forth "); + motorHomingRequest.MotorType = (Tango.PMR.Hardware.HardwareMotorType) 21; + motorHomingRequest.Speed = 10; +// motorHomingRequest.Direction = Tango.PMR.Diagnostics.MotorDirection.Forward; //Forward +// stubManager.Run(motorHomingRequest); +// Thread.Sleep(5000); + motorHomingRequest.MotorType = (Tango.PMR.Hardware.HardwareMotorType) 21; + motorHomingRequest.Speed = 10; +// motorHomingRequest.Direction = Tango.PMR.Diagnostics.MotorDirection.Backward; //Backard +// stubManager.Run(motorHomingRequest); +// Thread.Sleep(4000); + + stubManager.Write("\n\n*** RTFU Motor Test Ended ***"); + */ + + +} diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Right_Position.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Right_Position.cs deleted file mode 100644 index ebd2cf414..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Right_Position.cs +++ /dev/null @@ -1,145 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - - - - -const Int32 x_ABS_POS = 0x01; -const Int32 x_EL_POS = 0x02; -const Int32 x_MARK = 0x03; -const Int32 x_SPEED = 0x04; -const Int32 x_ACC = 0x05; -const Int32 x_DEC = 0x06; -const Int32 x_MAX_SPEED = 0x07; -const Int32 x_MIN_SPEED = 0x08; -const Int32 x_FS_SPD = 0x15; -const Int32 x_KVAL_HOLD = 0x09; -const Int32 x_KVAL_RUN = 0x0A; -const Int32 x_KVAL_ACC = 0x0B; -const Int32 x_KVAL_DEC = 0x0C; -const Int32 x_INT_SPD = 0x0D; -const Int32 x_ST_SLP = 0x0E; -const Int32 x_FN_SLP_ACC = 0x0F; -const Int32 x_FN_SLP_DEC = 0x10; -const Int32 x_K_THERM = 0x11; -const Int32 x_ADC_OUT = 0x12; -const Int32 x_OCD_TH = 0x13; -const Int32 x_STALL_TH = 0x14; -const Int32 x_STEP_MODE = 0x16; -const Int32 x_ALARM_EN = 0x17; -const Int32 x_CONFIG = 0x18; -const Int32 x_STATUS = 0x19; -//------------------------------- -const Int32 x_GET_PARAM = 0x20; -//------------------------------- -const Int32 F1_LS_02_Direct = 0x60000030 ; -const Int32 F1_LS_LSPARE2 = 0x0004; //up -const Int32 F1_LS_LDANCER1_UP = 0x1000; - - - - - - - - - - - - - -public void OnExecute(StubManager stubManager) -{ - int counter; - - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,17, 3); //hold Ldancer high z - - var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,17, (x_GET_PARAM | x_ABS_POS)<<24, 0, 0); - response.RecivedData=response.RecivedData & 0x00ffffff; - stubManager.WriteHex(response.RecivedData,8); - stubManager.Write("\n"); - - var response3 = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,17, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0); - response3.RecivedData=response3.RecivedData & 0x00007; - - stubManager.WriteHex(response3.RecivedData,4); - stubManager.Write("\nNober uStep is - "); - if (response3.RecivedData>4) - response3.RecivedData=4; - stubManager.WriteLine(Math.Pow(2,response3.RecivedData)); - - -//----------------------------------------- check F1_LS_LDANCER2_UP ------------------------------------------------- - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,17,false,100); //move Lloading up - counter =0; - while ( counter < 800) - { - counter = counter + 1; -var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //if F1_LS_LSPARE2 is up then move down - if ((response1.Value & F1_LS_LSPARE2) != F1_LS_LSPARE2 ) - counter=900; - - Thread.Sleep(100); - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,17, 3); //hold Ldancer high z - -var response2 = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,17, (x_GET_PARAM | x_ABS_POS)<<24, 0, 0); - response2.RecivedData=response2.RecivedData & 0x00ffffff; - stubManager.WriteHex(response2.RecivedData,8); - stubManager.Write("\n"); - - stubManager.Write("Motor Puller positon is - "+ (response2.RecivedData-response.RecivedData)/(Math.Pow(2,response3.RecivedData))); -//--------------------------------------------------------------------------------------------------------------------- - - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,16, 3); //hold Ldancer high z - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,16, (x_GET_PARAM | x_ABS_POS)<<24, 0, 0); - response.RecivedData=response.RecivedData & 0x00ffffff; - stubManager.WriteHex(response.RecivedData,8); - stubManager.Write("\n"); - - response3 = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,16, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0); - response3.RecivedData=response3.RecivedData & 0x00007; - - stubManager.WriteHex(response3.RecivedData,4); - stubManager.Write("\nNober uStep is - "); - if (response3.RecivedData>4) - response3.RecivedData=4; - stubManager.WriteLine(Math.Pow(2,response3.RecivedData)); - - -//----------------------------------------- check F1_LS_LDANCER2_UP ------------------------------------------------- - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,16,false,100); //move Lloading up - counter =0; - while ( counter < 800) - { - counter = counter + 1; - var response8 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //if F1_LS_LSPARE2 is up then move up - if ((response8.Value & F1_LS_LDANCER1_UP) !=F1_LS_LDANCER1_UP ) //if F1_LS_LDANCER1_UP is up then error - counter=900; - - Thread.Sleep(100); - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,16, 3); //hold Ldancer high z - - response2 = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,16, (x_GET_PARAM | x_ABS_POS)<<24, 0, 0); - response2.RecivedData=response2.RecivedData & 0x00ffffff; - stubManager.WriteHex(response2.RecivedData,8); - stubManager.Write("\n"); - - stubManager.Write("Motor Winder positon is - "+ (response2.RecivedData-response.RecivedData)/(Math.Pow(2,response3.RecivedData))); - - - - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_SSI.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_SSI.cs index 94873f9f4..3218dbd83 100644 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_SSI.cs +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_SSI.cs @@ -31,64 +31,18 @@ public void OnExecute(StubManager stubManager) for (int i = 0; i < 100; i++) { - - stubManager.Write("LDANCER1 - "+ ReadEncoder(0)+ "\t\t LDANCER2 - " + ReadEncoder(1) + "\n" ); - - - + + SSI_Read_Write(FPGA1, F1_LDANCER1_ROTENC_MSB, F1_LDANCER1_ROTENC_LSB, F1_LDANCER1_ROTENC_TX); + SSI_Read_Write(FPGA1, F1_LDANCER2_ROTENC_MSB, F1_LDANCER2_ROTENC_LSB, F1_LDANCER2_ROTENC_TX); + stubManager.Write("\n"); + k++; + if ( (k & 0x8) == 0x08 ) { + k = 0; + stubManager.Write(" LDANCER1 LDANCER2 \n"); + } Thread.Sleep(400); } } - - -Int32 ReadEncoder(int i) -{ - Int32 temp; - - if (i==0) //LDANCER1_ROTENC - { - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x600001ce, 0x0000); //triggers a TX transmission - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x600001c0); - var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x600001c2); - - temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff)); - - - return temp; - } - //LDANCER2_ROTENC - - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x600001be, 0x0000); //triggers a TX transmission - var response2 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x600001b0); - var response3 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x600001b2); - - temp = Convert.ToInt32 (((((response3.Value <<16) + response2.Value)>>10 ) & 0x3fff)); - - - return temp; -} - - - - - - - - - - - - - - - - - - - - - diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/Test_Loading_TFU.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/Test_Loading_TFU.cs deleted file mode 100644 index de14d455f..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/Test_Loading_TFU.cs +++ /dev/null @@ -1,155 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - - - - -//-------------------DEFINE Motors------------------ -//const Int32 LDANCER_Motor = 16; -//const Int32 LDRIVING_Motor = 18; -//const Int32 LLOADING_Motor = 19; -//const Int32 LDANCER_Motor = 16; -//const Int32 LDRIVING_Motor = 18; -//const Int32 LLOADING_Motor = 19; - -const Int32 LDANCER1_Motor = 16; -const Int32 LDANCER2_Motor = 17; -const Int32 LDRIVING_Motor = 18; -const Int32 LLOADING_Motor = 19; - -const Int32 RDANCER_Motor = 21; -//const Int32 RDRIVING_Motor = 22; -//const Int32 MAGNET_Driver = 23; //replace RLOADARM -const Int32 RLOADING_Motor = 24; - -//-------------------DEFINE Motors Parameters------------------ - -const Int32 F1_MOTO_LLOADING_TX1 = 0x60000232; -const Int32 F1_MOTO_LLOADING_TX0 = 0x60000230; -const Int32 F1_MOTO_RLOADING_TX1 = 0x60000202; -const Int32 F1_MOTO_RLOADING_TX0 = 0x60000200; - - -//-------------------DEFINE Limit Switch--------------- -const Int32 F1_LS_02_Direct =0x60000030; -const Int32 F1_LS_03_Direct =0x60000040; -const Int32 F1_LS_RLOADMOTOR_UP = 0x0040 ; -const Int32 F1_LS_RLOADMOTOR_DN = 0x0080 ; - -const Int32 F1_LS_LLOADMOTOR_UP = 0x0100 ; -const Int32 F1_LS_LLOADMOTOR_DN = 0x0200 ; -const Int32 F1_LS_LDANCER1_UP = 0x1000; -const Int32 F1_LS_LDANCER1_DN = 0x2000; -const Int32 F1_LS_LDANCER2_UP = 0x0400; -const Int32 F1_LS_LDANCER2_DN = 0x0800; -const Int32 F1_LS_LLOADRAM_LF = 0x0080; -const Int32 F1_LS_LLOADRAM_RT = 0x0040; -const Int32 F1_LS_LSPARE2 = 0x0004; //up -//const Int32 F1_LS_LLOADMOTOR_UP = 0x0100 ; -const Int32 F1_LS_RDANCER_DN = 0x0200; -const Int32 F1_LS_RLOADRAM_DN = 0x0020; -const Int32 F1_LS_LSPARE1 = 0x0008; //dn - -//include "..\..\Defines\Tango_Defines_Basic.cs" -//include "Tango_Defines_LimitSwitch.cs" -//include "Tango_Defines_Motors.cs" -//include "Tango_Defines_SSI.cs" -//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_Basic.cs" -//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_SSI.cs" - - -void OnExecute(StubManager stubManager) -{ - for (int i=0;i<1;i++) - { - - Move_Motor(LDANCER1_Motor,false,F1_LS_02_Direct,F1_LS_LDANCER1_UP,450); - - Move_Motor(LDANCER2_Motor,false,F1_LS_02_Direct,F1_LS_LSPARE2,450); - - Motor_SetParam(F1_MOTO_LLOADING_TX1,F1_MOTO_LLOADING_TX0,0x0a,0x0a000000); //set kval ran to 0x2c- 0.9A - Thread.Sleep(200); - Move_Motor(LLOADING_Motor,true,F1_LS_02_Direct,F1_LS_LLOADMOTOR_UP,300); - Motor_SetParam(F1_MOTO_LLOADING_TX1,F1_MOTO_LLOADING_TX0,0x0a,0x07000000); //set kval ran to 0x2c- 0.6A - Thread.Sleep(200); - - Move_Motor(RDANCER_Motor,true,F1_LS_03_Direct,F1_LS_RLOADRAM_DN,10); - - Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x0a000000); //set kval ran to 0x14,0.65A - Thread.Sleep(200); - Move_Motor(RLOADING_Motor,false,F1_LS_03_Direct,F1_LS_RLOADMOTOR_UP,200); - Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x07000000); //set kval ran to 0x14,0.65A - Thread.Sleep(200); - - - - Thread.Sleep(2000); - - Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x0a000000); //set kval ran to 0x14,0.65A - Thread.Sleep(200); - Move_Motor(RLOADING_Motor,true,F1_LS_03_Direct,F1_LS_RLOADMOTOR_DN,200); - Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x07000000); //set kval ran to 0x14,0.65A - Thread.Sleep(200); - - Move_Motor(RDANCER_Motor,false,F1_LS_03_Direct,F1_LS_RDANCER_DN,10); - - Motor_SetParam(F1_MOTO_LLOADING_TX1,F1_MOTO_LLOADING_TX0,0x0a,0x0a000000); //set kval ran to 0x2c- 0.9A - Thread.Sleep(200); - Move_Motor(LLOADING_Motor,false,F1_LS_02_Direct,F1_LS_LLOADMOTOR_DN,300); - Motor_SetParam(F1_MOTO_LLOADING_TX1,F1_MOTO_LLOADING_TX0,0x0a,0x0a000000); //set kval ran to 0x2c- 0.9A - Thread.Sleep(200); - - Move_Motor(LDANCER2_Motor,true,F1_LS_02_Direct,F1_LS_LSPARE1,450); - - Move_Motor(LDANCER1_Motor,true,F1_LS_02_Direct,F1_LS_LDANCER1_DN,450); - - Thread.Sleep(2000); - } - - - -} - - void Move_Motor(UInt32 MotorID, bool Direction, UInt32 Register , UInt32 Bits, Double speed) -{ -int counter ; - - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,MotorID,Direction,speed); //move Lloading up - counter =0; - while ( counter < 1500) - { - counter = counter + 1; - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,Register); //if LS_LLOADMOTOR_UP is up then move down - if ((response.Value & Bits) != Bits ) - counter=1650; - - Thread.Sleep(20); - - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,MotorID, 1); //hold motor - - -} - - int Motor_SetParam(Int32 HighAdr, Int32 LowAdr, Int32 ParaAddr, uint ParaData1) -{ - - Int32 Temp = 0; - Temp = (ParaAddr << 8 ) + ( (Int32) ParaData1 >> 24); - - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,HighAdr, (Temp & 0xffff)); - Temp = ((Int32)ParaData1 >> 8) & 0xffff; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,LowAdr, (Temp)); - - return 1; -} diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_motor_test.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/test.cs index bd92ea498..397c6fbd4 100644 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_motor_test.cs +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/test.cs @@ -10,20 +10,16 @@ using System.Collections.Generic; using Tango.PMR.Stubs; using Tango.Stubs; + +include "..\..\Defines\Tango_Defines_Basic.cs" +include "Tango_Defines_LimitSwitch.cs" + public void OnExecute(StubManager stubManager) { - - -stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,3,true, 2200); - - - - - - - - - - + Int32 Bit = 1; + //Write GPO_DRYER_SSR1_CTRL SSR/SSR no. 1 + SetBit (FPGA2, F2_CTRL, 0, 1); + stubManager.Write("\nTesting SSR no. 13 of magnet"); + Thread.Sleep(4000); }
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Calibrate_Midtank_pressure_sensors_old.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Calibrate_Midtank_pressure_sensors_old.cs deleted file mode 100644 index 7c0243c49..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Calibrate_Midtank_pressure_sensors_old.cs +++ /dev/null @@ -1,347 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.PMR.EmbeddedParameters; -using Tango.Stubs; - -//---------------------- -const double MIN_SLOP=0.7; -const double MAX_SLOP=1.4; -const double ERROR_SLOP=-1; -const double MIN_50cc_on_volt=2.3; -const double MAX_50cc_on_volt=3.2; -const double ERROR_50cc_on_volt=-1; - - - -const Int32 F3_VALVE_OUT = 0x600008E2 ; -string Machine_SN ; -private const string FILE_PATH = "P:\\Operations\\Log\\Midtanlk\\"; -string File_name; -double [,] voltage_array = new double[9,9]; -string [] Parameter = new string[5] {"\t","Empty [V]","100cc [V]","800cc [V]"," b [L/V] "}; - -//---------------------- -const Int32 I2C_ID = 2; -//const Int32 I2C_Slave_Add = 0x46; //must be 0x40, 0x44 or 0x46 -//---------------------- - - - - - -public void OnExecute(StubManager stubManager) -{ - - - voltage_array[1,0]=1; - voltage_array[2,0]=2; - voltage_array[3,0]=3; - voltage_array[4,0]=4; - voltage_array[5,0]=5; - voltage_array[6,0]=6; - voltage_array[7,0]=7; - voltage_array[8,0]=8; - - var response = stubManager.ShowResponseWindow("Enter Machine S/N: ", ""); - stubManager.Write("\n"); - Machine_SN = response; - stubManager.Write(Machine_SN); - File_name= FILE_PATH +Machine_SN + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".LOG"; - stubManager.Write(File_name); - stubManager.WriteToFile(File_name,"Machine S/N:" + Machine_SN); - - string box_msg = "Make Sure all Midatnk empty"; - // string box_title = "Midatnk empty"; -// MessageBox.Show(box_msg, box_title); - MessageBox.Show(box_msg); - - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_VALVE_OUT, 0x000f); // open all valve air of midtank and close all ink of midtank - Thread.Sleep(500); - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_VALVE_OUT, 0x00ff); // open all valve air of midtank and close all ink of midtank - Thread.Sleep(500); - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_VALVE_OUT, 0x0fff); // open all valve air of midtank and close all ink of midtank - Thread.Sleep(500); - stubManager.Run<StubFpgaWriteRegResponse>("stubFpgaWriteRegRequest" ,F3_VALVE_OUT, 0xffff); // open all valve air and ink of midtank - - Thread.Sleep(2500); - - Thread.Sleep(1000); - - read_pressure_sensor(1); - - box_msg ="Insert 100cc of appropriate ink/lube to each midtank\n\t1.black ink\n\t2. Magenta ink\n\t3. Transparent ink\n\t4. Cleaner\n\t5. Cyan ink\n\t6. Yellow ink\n\t7. Spot color\n\t8. Lubricant/n"; - MessageBox.Show(box_msg); - - read_pressure_sensor(2); - - // voltage_array[3,2]=2.5; - - box_msg = "Add another 700cc for ink and TI \nFor Lubbricant add 500cc only."; - MessageBox.Show(box_msg); - read_pressure_sensor(3); - stubManager.Run<StubFpgaWriteRegResponse>("stubFpgaWriteRegRequest" ,F3_VALVE_OUT, 0x0000); // close all valve air and ink of midtank - // voltage_array[3,3]=4.5; - - calc_slop(); - print_table(); - - insert_slop_t_eeprom(); - box_msg ="Turn Power Off and On to finish the calibration."; - MessageBox.Show(box_msg); - - } - -int calc_slop() - { - stubManager.Write("\n "); - - double delta; - for (uint i=1;i<9;i++) - { - delta=voltage_array[i,3]-voltage_array[i,2]; - - stubManager.Write("\nMidtank No:"+i +"="+delta); - if (i==8) - delta=0.5/delta; //0.5 litter on lubricant - else - delta=0.7/delta; //0.7 litter - - if ((delta<MIN_SLOP) || (delta >MAX_SLOP)) - { - voltage_array[i,4]=ERROR_SLOP; - // stubManager.Write("123"); - } - else if ((voltage_array[i,2]<MIN_50cc_on_volt) || (voltage_array[i,2]>MAX_50cc_on_volt )) - voltage_array[i,4]=ERROR_SLOP; - else - voltage_array[i,4]=delta; - } - return 1; - } - - - int insert_slop_t_eeprom() -{ - stubManager.Write("\n "); - - MidTankDataSetupRequest midTankDataSetupRequest = new MidTankDataSetupRequest(); - - - for (uint i=1;i<9;i++) - { - if (voltage_array[i,4]!= ERROR_SLOP) - { - MidTankData midTankData = new MidTankData(); - midTankData.MidTankId = i-1; - midTankData.InitialOffsetA = voltage_array[i,2]; - midTankData.SlopeB = voltage_array[i,4]; - - stubManager.Write("\nMidtank No:" + i+ "=\tA="+voltage_array[i,2]+"\tSlop="+voltage_array[i,4]); - - - midTankDataSetupRequest.MidTankInfo.Add(midTankData); - - } -var response = stubManager.Run<MidTankDataSetupResponse>(midTankDataSetupRequest); - - - - } - - - - -/* -MidTankData midTankData = new MidTankData(); -midTankData.MidTankId = 0; -midTankData.InitialOffsetA = 0.1; -midTankData.SlopeB = 0.1; - -MidTankData midTankData1 = new MidTankData(); -midTankData1.MidTankId = 1; -midTankData1.InitialOffsetA = 0.11; -midTankData1.SlopeB = 0.11; - -MidTankData midTankData2 = new MidTankData(); -midTankData2.MidTankId = 2; -midTankData2.InitialOffsetA = 0.2; -midTankData2.SlopeB = 0.2; - -MidTankData midTankData3 = new MidTankData(); -midTankData3.MidTankId = 3; -midTankData3.InitialOffsetA = 0.3; -midTankData3.SlopeB = 0.3; - -MidTankData midTankData4 = new MidTankData(); -midTankData4.MidTankId = 4; -midTankData4.InitialOffsetA = 0.4; -midTankData4.SlopeB = 0.4; - -MidTankData midTankData5 = new MidTankData(); -midTankData5.MidTankId = 5; -midTankData5.InitialOffsetA = 0.5; -midTankData5.SlopeB = 0.5; - -MidTankData midTankData6 = new MidTankData(); -midTankData6.MidTankId = 6; -midTankData6.InitialOffsetA = 0.6; -midTankData6.SlopeB = 0.6; - - -MidTankData midTankData7 = new MidTankData(); -midTankData6.MidTankId = 7; -midTankData6.InitialOffsetA = 0.7; -midTankData6.SlopeB = 0.7; - - -midTankDataSetupRequest.MidTankInfo.Add(midTankData); -midTankDataSetupRequest.MidTankInfo.Add(midTankData1); -midTankDataSetupRequest.MidTankInfo.Add(midTankData2); -midTankDataSetupRequest.MidTankInfo.Add(midTankData3); -midTankDataSetupRequest.MidTankInfo.Add(midTankData4); -midTankDataSetupRequest.MidTankInfo.Add(midTankData5); -midTankDataSetupRequest.MidTankInfo.Add(midTankData6); -midTankDataSetupRequest.MidTankInfo.Add(midTankData7); -*/ -return 1; -} - - - -int print_table() - { - - for (uint i=0;i<5;i++) - { - stubManager.AppendToFile(File_name,Parameter[i]+"\t"+voltage_array[1,i]+"\t"+voltage_array[2,i]+"\t"+voltage_array[3,i]+"\t"+voltage_array[4,i]+"\t"+voltage_array[5,i]+"\t"+voltage_array[6,i]+"\t"+voltage_array[7,i]+"\t"+voltage_array[8,i]) ; - } - - - return 1; - - } - - - -int adc_configuration(uint I2C_Slave_Add,uint channel ) - { - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0x00);//Byte 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(channel);//Byte 1 to Write, must be 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02 or 0x01 for different channels - stubI2CWriteBytesRequest.BytesTWrite.Add(0x80);//Byte 2 to Write - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; - } - - -int adc_set_for_read_ch(uint I2C_Slave_Add) - { - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0x01);//Byte 0 to write - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; - } - - - - -int adc_read_ch(uint I2C_Slave_Add,uint table_index_x,uint table_index_y) - { - StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest(); - stubI2CReadBytesRequest.I2CId = I2C_ID; - stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add; - stubI2CReadBytesRequest.NumberOfBytesToRead = 2; // Number of bytes to read - - var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest); - uint temph=0; - uint templ=0; - uint temp; - double calc; - double calc1; - double calc2; - temph=response1.ReadBytes[0]; - templ=response1.ReadBytes[1]; - temp = (temph << 8) | templ; - temp=temp & 0x0fff; - - calc = (double)temp *2.5 / 4096.0; - stubManager.Write("ADC [volts]:\t"); - stubManager.Write(calc+"\t"); - - calc1 = (1.96- calc) * 4.64 + 1.96; - stubManager.Write("Vsensor [volts]:\t"); - stubManager.Write(calc1); - - voltage_array[table_index_x,table_index_y]=calc1; - - return 1; - } - -int read_pressure_sensor(uint i ) - { - - stubManager.Write("\n-----------MIDTANK_PRESSESENS-------test_no= "+i); - - stubManager.Write("\n1_1= "); - - adc_configuration(0x44,0x20); //a2d_address 0x44 channel channel 2 - adc_set_for_read_ch(0x44); - adc_read_ch(0x44,1,i); - - stubManager.Write("\n2_1= "); - adc_configuration(0x44,0x08); //a2d_address 0x44 channel channel 4 - adc_set_for_read_ch(0x44); - adc_read_ch(0x44,2,i); - - stubManager.Write("\n3_1= "); - adc_configuration(0x46,0x80); //a2d_address 0x46 channel channel 0 - adc_set_for_read_ch(0x46); - adc_read_ch(0x46,3,i); - - stubManager.Write("\n4_1= "); - adc_configuration(0x46,0x20); //a2d_address 0x46 channel channel 2 - adc_set_for_read_ch(0x46); - adc_read_ch(0x46,4,i); - - stubManager.Write("\n1_2= "); - adc_configuration(0x44,0x10); //a2d_address 0x44 channel channel 3 - adc_set_for_read_ch(0x44); - adc_read_ch(0x44,5,i); - - stubManager.Write("\n2_2= "); - adc_configuration(0x44,0x04); //a2d_address 0x44 channel channel 5 - adc_set_for_read_ch(0x44); - adc_read_ch(0x44,6,i); - - stubManager.Write("\n3_2= "); - adc_configuration(0x46,0x40); //a2d_address 0x46 channel channel 1 - adc_set_for_read_ch(0x46); - adc_read_ch(0x46,7,i); - - stubManager.Write("\n4_2= "); - adc_configuration(0x46,0x10); //a2d_address 0x46 channel channel 3 - adc_set_for_read_ch(0x46); - adc_read_ch(0x46,8,i); - - return 1; - } diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 1 Motor Frequency.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 1 Motor Frequency.csv deleted file mode 100644 index 4b9e73f00..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 1 Motor Frequency.csv +++ /dev/null @@ -1,19 +0,0 @@ -Time,Dispenser 1 Motor Frequency -13:39:54.945,0 -13:39:55.245,0 -13:39:55.545,0 -13:39:55.845,0 -13:39:56.145,0 -13:39:56.445,0 -13:39:56.745,0 -13:39:57.045,0 -13:39:57.345,0 -13:39:57.645,0 -13:39:57.945,0 -13:39:58.245,0 -13:39:58.545,0 -13:39:58.845,0 -13:39:59.145,0 -13:39:59.445,0 -13:39:59.745,0 -13:40:00.045,0 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 1 Pressure.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 1 Pressure.csv deleted file mode 100644 index 2ff983a1b..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 1 Pressure.csv +++ /dev/null @@ -1,55 +0,0 @@ -Time,Dispenser 1 Pressure -13:39:54.945,0.0458705425262451 -13:39:55.045,0.0317853689193726 -13:39:55.145,0.0388279557228088 -13:39:55.245,0.0353068113327026 -13:39:55.345,0.0353068113327026 -13:39:55.445,0.0353068113327026 -13:39:55.545,0.0353068113327026 -13:39:55.645,0.0282642245292664 -13:39:55.745,0.0353068113327026 -13:39:55.845,0.0353068113327026 -13:39:55.945,0.0353068113327026 -13:39:56.045,0.0388279557228088 -13:39:56.145,0.0388279557228088 -13:39:56.245,0.0317853689193726 -13:39:56.345,0.0353068113327026 -13:39:56.445,0.0353068113327026 -13:39:56.545,0.0353068113327026 -13:39:56.645,0.0388279557228088 -13:39:56.745,0.0388279557228088 -13:39:56.845,0.0353068113327026 -13:39:56.945,0.0388279557228088 -13:39:57.045,0.0388279557228088 -13:39:57.145,0.0317853689193726 -13:39:57.245,0.0388279557228088 -13:39:57.345,0.0388279557228088 -13:39:57.445,0.0282642245292664 -13:39:57.545,0.0353068113327026 -13:39:57.645,0.0388279557228088 -13:39:57.745,0.0353068113327026 -13:39:57.845,0.0388279557228088 -13:39:57.945,0.0317853689193726 -13:39:58.045,0.0388279557228088 -13:39:58.145,0.0353068113327026 -13:39:58.245,0.0317853689193726 -13:39:58.345,0.0423493981361389 -13:39:58.445,0.0317853689193726 -13:39:58.545,0.0423493981361389 -13:39:58.645,0.0353068113327026 -13:39:58.745,0.0353068113327026 -13:39:58.845,0.0282642245292664 -13:39:58.945,0.0353068113327026 -13:39:59.045,0.0317853689193726 -13:39:59.145,0.0317853689193726 -13:39:59.245,0.0353068113327026 -13:39:59.345,0.0388279557228088 -13:39:59.445,0.0388279557228088 -13:39:59.545,0.0458705425262451 -13:39:59.645,0.0353068113327026 -13:39:59.745,0.0353068113327026 -13:39:59.845,0.0317853689193726 -13:39:59.945,0.0317853689193726 -13:40:00.045,0.0353068113327026 -13:40:00.145,0.0388279557228088 -13:40:00.245,0.0388279557228088 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 2 Motor Frequency.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 2 Motor Frequency.csv deleted file mode 100644 index 1bf9584f3..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 2 Motor Frequency.csv +++ /dev/null @@ -1,19 +0,0 @@ -Time,Dispenser 2 Motor Frequency -13:39:54.945,0 -13:39:55.245,0 -13:39:55.545,0 -13:39:55.845,0 -13:39:56.145,0 -13:39:56.445,0 -13:39:56.745,0 -13:39:57.045,0 -13:39:57.345,0 -13:39:57.645,0 -13:39:57.945,0 -13:39:58.245,0 -13:39:58.545,0 -13:39:58.845,0 -13:39:59.145,0 -13:39:59.445,0 -13:39:59.745,0 -13:40:00.045,0 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 2 Pressure.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 2 Pressure.csv deleted file mode 100644 index 88c664efe..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 2 Pressure.csv +++ /dev/null @@ -1,55 +0,0 @@ -Time,Dispenser 2 Pressure -13:39:54.945,0.119816958904266 -13:39:55.045,0.11277437210083 -13:39:55.145,0.119816958904266 -13:39:55.245,0.11629581451416 -13:39:55.345,0.11277437210083 -13:39:55.445,0.119816958904266 -13:39:55.545,0.119816958904266 -13:39:55.645,0.119816958904266 -13:39:55.745,0.11629581451416 -13:39:55.845,0.11629581451416 -13:39:55.945,0.11629581451416 -13:39:56.045,0.126859545707703 -13:39:56.145,0.119816958904266 -13:39:56.245,0.119816958904266 -13:39:56.345,0.11629581451416 -13:39:56.445,0.11629581451416 -13:39:56.545,0.119816958904266 -13:39:56.645,0.11629581451416 -13:39:56.745,0.119816958904266 -13:39:56.845,0.11277437210083 -13:39:56.945,0.119816958904266 -13:39:57.045,0.123338103294373 -13:39:57.145,0.11629581451416 -13:39:57.245,0.11277437210083 -13:39:57.345,0.119816958904266 -13:39:57.445,0.123338103294373 -13:39:57.545,0.119816958904266 -13:39:57.645,0.11629581451416 -13:39:57.745,0.123338103294373 -13:39:57.845,0.11629581451416 -13:39:57.945,0.11629581451416 -13:39:58.045,0.119816958904266 -13:39:58.145,0.11277437210083 -13:39:58.245,0.123338103294373 -13:39:58.345,0.119816958904266 -13:39:58.445,0.119816958904266 -13:39:58.545,0.119816958904266 -13:39:58.645,0.11629581451416 -13:39:58.745,0.119816958904266 -13:39:58.845,0.109253227710724 -13:39:58.945,0.123338103294373 -13:39:59.045,0.123338103294373 -13:39:59.145,0.123338103294373 -13:39:59.245,0.11629581451416 -13:39:59.345,0.119816958904266 -13:39:59.445,0.123338103294373 -13:39:59.545,0.109253227710724 -13:39:59.645,0.119816958904266 -13:39:59.745,0.119816958904266 -13:39:59.845,0.11277437210083 -13:39:59.945,0.11629581451416 -13:40:00.045,0.11629581451416 -13:40:00.145,0.119816958904266 -13:40:00.245,0.11277437210083 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 3 Motor Frequency.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 3 Motor Frequency.csv deleted file mode 100644 index bdc3c7c8d..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 3 Motor Frequency.csv +++ /dev/null @@ -1,19 +0,0 @@ -Time,Dispenser 3 Motor Frequency -13:39:54.945,0 -13:39:55.245,0 -13:39:55.545,0 -13:39:55.845,0 -13:39:56.145,0 -13:39:56.445,0 -13:39:56.745,0 -13:39:57.045,0 -13:39:57.345,0 -13:39:57.645,0 -13:39:57.945,0 -13:39:58.245,0 -13:39:58.545,0 -13:39:58.845,0 -13:39:59.145,0 -13:39:59.445,0 -13:39:59.745,0 -13:40:00.045,0 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 3 Pressure.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 3 Pressure.csv deleted file mode 100644 index 8f0a93237..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Dispenser 3 Pressure.csv +++ /dev/null @@ -1,55 +0,0 @@ -Time,Dispenser 3 Pressure -13:39:54.945,-0.00342711806297302 -13:39:55.045,-0.00342711806297302 -13:39:55.145,-0.00342711806297302 -13:39:55.245,-0.00342711806297302 -13:39:55.345,-0.00342711806297302 -13:39:55.445,-0.00342711806297302 -13:39:55.545,-0.00342711806297302 -13:39:55.645,-0.00342711806297302 -13:39:55.745,-0.00342711806297302 -13:39:55.845,-0.00342711806297302 -13:39:55.945,-0.00342711806297302 -13:39:56.045,-0.00342711806297302 -13:39:56.145,-0.00342711806297302 -13:39:56.245,-0.00342711806297302 -13:39:56.345,-0.00342711806297302 -13:39:56.445,-0.00342711806297302 -13:39:56.545,-0.00342711806297302 -13:39:56.645,-0.00342711806297302 -13:39:56.745,-0.00342711806297302 -13:39:56.845,-0.00342711806297302 -13:39:56.945,-0.00342711806297302 -13:39:57.045,-0.00342711806297302 -13:39:57.145,-0.00342711806297302 -13:39:57.245,-0.00342711806297302 -13:39:57.345,-0.00342711806297302 -13:39:57.445,-0.00342711806297302 -13:39:57.545,-0.00342711806297302 -13:39:57.645,-0.00342711806297302 -13:39:57.745,-0.00342711806297302 -13:39:57.845,-0.00342711806297302 -13:39:57.945,-0.00342711806297302 -13:39:58.045,-0.00342711806297302 -13:39:58.145,-0.00342711806297302 -13:39:58.245,-0.00342711806297302 -13:39:58.345,-0.00342711806297302 -13:39:58.445,-0.00342711806297302 -13:39:58.545,-0.00342711806297302 -13:39:58.645,-0.00342711806297302 -13:39:58.745,-0.00342711806297302 -13:39:58.845,-0.00342711806297302 -13:39:58.945,-0.00342711806297302 -13:39:59.045,-0.00342711806297302 -13:39:59.145,-0.00342711806297302 -13:39:59.245,-0.00342711806297302 -13:39:59.345,-0.00342711806297302 -13:39:59.445,-0.00342711806297302 -13:39:59.545,-0.00342711806297302 -13:39:59.645,-0.00342711806297302 -13:39:59.745,-0.00342711806297302 -13:39:59.845,-0.00342711806297302 -13:39:59.945,-0.00342711806297302 -13:40:00.045,-0.00342711806297302 -13:40:00.145,-0.00342711806297302 -13:40:00.245,-0.00342711806297302 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Feeder Motor.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Feeder Motor.csv deleted file mode 100644 index 5080effe1..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Feeder Motor.csv +++ /dev/null @@ -1,55 +0,0 @@ -Time,Feeder Motor -13:39:54.945,0 -13:39:55.045,0 -13:39:55.145,0 -13:39:55.245,0 -13:39:55.345,0 -13:39:55.445,0 -13:39:55.545,0 -13:39:55.645,0 -13:39:55.745,0 -13:39:55.845,0 -13:39:55.945,0 -13:39:56.045,0 -13:39:56.145,0 -13:39:56.245,0 -13:39:56.345,0 -13:39:56.445,0 -13:39:56.545,0 -13:39:56.645,0 -13:39:56.745,0 -13:39:56.845,0 -13:39:56.945,0 -13:39:57.045,0 -13:39:57.145,0 -13:39:57.245,0 -13:39:57.345,0 -13:39:57.445,0 -13:39:57.545,0 -13:39:57.645,0 -13:39:57.745,0 -13:39:57.845,0 -13:39:57.945,0 -13:39:58.045,0 -13:39:58.145,0 -13:39:58.245,0 -13:39:58.345,0 -13:39:58.445,0 -13:39:58.545,0 -13:39:58.645,0 -13:39:58.745,0 -13:39:58.845,0 -13:39:58.945,0 -13:39:59.045,0 -13:39:59.145,0 -13:39:59.245,0 -13:39:59.345,0 -13:39:59.445,0 -13:39:59.545,0 -13:39:59.645,0 -13:39:59.745,0 -13:39:59.845,0 -13:39:59.945,0 -13:40:00.045,0 -13:40:00.145,0 -13:40:00.245,0 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/MIDTANK_JIG.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/MIDTANK_JIG.cs deleted file mode 100644 index 6b864dfee..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/MIDTANK_JIG.cs +++ /dev/null @@ -1,480 +0,0 @@ -using System; -using System.Text; -using System.IO; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; -using System.Timers; - - -// private static System.Timers.Timer aTimer; - -//-------------------------------------------------------------------------------- -const Int32 I2C_ID = 2; -const int UNIT_UNDER_TEST =3*8; -const Int32 F3_VALVE_OUT = 0x600008e2; -//-------------------------------------------------------------------------------- -string path1="P:\\Scripts\\Assemblies\\MidTank\\MidTankLog\\"; -string path2="C:\\MidTankLog\\"; - -string File_Name1 ; -string Status; -//--------------------------- -int [] Convert_Midtank_No = new Int32 [8] {1,3,5,7,2,4,6,8}; -uint [,] ADC_Add_Chnl = new uint [8,2] { - {0x44,0x20}, - {0x44,0x08}, - {0x46,0x80}, - {0x46,0x20}, - {0x44,0x10}, - {0x44,0x04}, - {0x46,0x40}, - {0x46,0x10}, - }; - - -string [,] Units_status = new string[UNIT_UNDER_TEST,2] { - {"Midtank1_Valve_Air","Not Test"}, //0 - {"Midtank1_Valve_Ink","Not Test"}, //1 - {"Midtank1_Pressure_Sensor","Not Test"}, //2 - {"Midtank2_Valve_Air","Not Test"}, //3 - {"Midtank2_Valve_Ink","Not Test"}, //4 - {"Midtank2_Pressure_Sensor","Not Test"}, //5 - {"Midtank3_Valve_Air","Not Test"}, //6 - {"Midtank3_Valve_Ink","Not Test"}, //7 - {"Midtank3_Pressure_Sensor","Not Test"}, //8 - {"Midtank4_Valve_Air","Not Test"}, //9 - {"Midtank4_Valve_Ink","Not Test"}, //10 - {"Midtank4_Pressure_Sensor","Not Test"}, //11 - {"Midtank5_Valve_Air","Not Test"}, //12 - {"Midtank5_Valve_Ink","Not Test"}, //13 - {"Midtank5_Pressure_Sensor","Not Test"}, //14 - {"Midtank6_Valve_Air","Not Test"}, //15 - {"Midtank6_Valve_Ink","Not Test"}, //16 - {"Midtank6_Pressure_Sensor","Not Test"}, //17 - {"Midtank7_Valve_Air","Not Test"}, //18 - {"Midtank7_Valve_Ink","Not Test"}, //19 - {"Midtank7_Pressure_Sensor","Not Test"}, //20 - {"Midtank8_Valve_Air","Not Test"}, //21 - {"Midtank8_Valve_Ink","Not Test"}, //22 - {"Midtank8_Pressure_Sensor","Not Test"}, //23 - }; -//----------------------------------------------------- -string MIDTANK_Sn; -//-------------------------------------------------------------------------------- - // private static void SetTimer() - // { - // // Create a timer with a one second interval. - // aTimer = new System.Timers.Timer(1000); -// // Hook up the Elapsed event for the timer. -// aTimer.Elapsed += OnTimedEvent; -// aTimer.AutoReset = true; -// aTimer.Enabled = true; -// } - -// private static void OnTimedEvent(Object source, ElapsedEventArgs e) - // { -// bool x=0; -// if (x==true) -// Label5.Text="Pros"; -// else -//// Label5.Text=" "; -// x = !x ; -// -// } - - - - - - - - - -public void OnExecute(StubManager stubManager) -{ -string path=""; - Form form1 = new Form(); - -// Set the caption bar text of the form. - form1.TopMost = true; - form1.Text = "MIDTANK Test"; - form1.FormBorderStyle = FormBorderStyle.FixedDialog; - form1.MaximizeBox = false; - form1.MinimizeBox = false; - form1.StartPosition = FormStartPosition.CenterScreen; - form1.AutoSize = true; - form1.AutoSizeMode = AutoSizeMode.GrowAndShrink; -// Create buttons to Run. - Button button1 = new Button () - { - Width = 100, - Height = 100, - }; - button1.Text = "Run"; - button1.Location = new Point (40, 100); - form1.Controls.Add(button1); -//-----MIDTANK Serial Number ----------- - - Label Label1 = new Label () - { - Width = 150, - Height = 20, - Text =" MIDTANK S/N" - }; - Label1.Location = new Point (30, 10); - form1.Controls.Add(Label1); - TextBox TextBox1 = new TextBox () - { - Width = 100, - Height = 10, - Text ="" - }; - TextBox1.Location = new Point (40, 40); - form1.Controls.Add(TextBox1); - //----------LOCATION---------- - - Label Label3 = new Label () - { - Width = 150, - Height = 20, - Text ="LOCATION" - }; -Label3.Location = new Point (350, 10); - form1.Controls.Add(Label3); - - - -TextBox TextBox3 = new TextBox () - { - Width = 100, - Height = 10, - Text ="" - }; -TextBox3.Location = new Point (360, 40); - form1.Controls.Add(TextBox3); - - - - - Label Label5 = new Label () - { - Width = 120, - Height =100, - Text = "" - }; - Label5.Location = new Point (300, 100); - Label5.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; - - Label5.Text=""; - Label5.Font = new Font("Arial", 24,FontStyle.Bold); - form1.Controls.Add(Label5); - -//---------------------------- - -bool BlinkOn = false; - - - -//-------------------------------------------------------------------------------- - - button1.Click += (_,__) => - - { -// SetTimer(); - -// Label5.Text="Pros"; - - - - -//-------------------------------------------------------------------------------- - - - - - Label5.Text = "Pros"; - // if (_click) - // _show_text.Text = "Fail"; - // else - // _show_text.Text = "Pass"; - - // _click = !_click; - // TextBox1.Text = ""; - - - -//-------------------------------------------------------------------------------- - - - - if (!Directory.Exists(path1)) - { - path=path2; - if (!Directory.Exists(path2)) - Directory.CreateDirectory(path2); - } - else - path=path1; - - File_Name1=path + TextBox1.Text +"_MIDTANK_" + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".log" ; - - - stubManager.Write(File_Name1 +"\n"); - stubManager.WriteToFile(File_Name1,DateTime.Now +" " ); - stubManager.Write(DateTime.Now +"\n" ); - - stubManager.AppendToFile(File_Name1,"MIDTANK Test Report" ); - stubManager.Write("MIDTANK Test Report\n" ); - - stubManager.AppendToFile(File_Name1,"MIDTANK S/N: \t" + TextBox1.Text ); - stubManager.Write("MIDTANK S/N:" + TextBox1.Text +"\n" ); - - - stubManager.AppendToFile(File_Name1,"Location:\t" + TextBox3.Text ); - stubManager.Write("Location:" + TextBox3.Text +"\n" ); - - - -//------------------------------- start test ----------- - Test_MIDTANK(); - - Status=write_to_file(); - stubManager.Write(Status +"\n"); - - Label5.Text=Status; - - // _show_text.Text =Status; - - TextBox1.Text=""; - }; - - form1.ShowDialog(); - - return ; - } - - //------------------------------------ -int Test_MIDTANK() -{ - double Pressur_Volt; - double temp; - for (Int32 i=1;i<9;i++) - { - open_valve(i,0,1) ; //open Air valve - open_valve(i,1,1) ; //open Ink valve - Thread.Sleep(2000); - Pressur_Volt=read_pressuere_sense(i); - if ((Pressur_Volt>3 )||(Pressur_Volt<2)) - { - Units_status[(i-1)*3+2,1]="Fail"; - stubManager.Write("pressuere_sense of midtank" + i +"\tFail\n"); - } - else - { - close_valve(i,1,0) ; //close Ink valve - DialogResult result = MessageBox.Show("ADD 20cc air thru Air valve of Midtank"+ i, "Warning"); - close_valve(i,0,0) ; //close Air valve - Thread.Sleep(2000); - - temp=read_pressuere_sense(i); - temp=temp-Pressur_Volt; - if ((temp>0.5) && ( temp <2)) - Units_status[(i-1)*3+2,1]="Pass"; - else - Units_status[(i-1)*3+2,1]="Fail"; - } - - close_valve(i,0,0) ; //close Air valve - close_valve(i,1,0) ; //close Ink valve - } - return 1; -} - -double read_pressuere_sense(Int32 Midtank_Nm) -{ -double Pressur_Volt; - adc_configuration((ADC_Add_Chnl[Midtank_Nm-1,0]),(ADC_Add_Chnl[Midtank_Nm-1,1]) ); //configure address and channel of midtank - adc_set_for_read_ch(ADC_Add_Chnl[Midtank_Nm-1,0]); - Pressur_Volt =adc_read_ch(ADC_Add_Chnl[Midtank_Nm-1,0]); - - stubManager.Write("pressure sense of midtank " + Midtank_Nm + "is " + Pressur_Volt+ "Volt\n"); - return Pressur_Volt; -} - - -//-------------------------------- -int adc_configuration(uint I2C_Slave_Add,uint channel ) - { - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0x00);//Byte 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(channel);//Byte 1 to Write, must be 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02 or 0x01 for different channels - stubI2CWriteBytesRequest.BytesTWrite.Add(0x80);//Byte 2 to Write - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; - } -//-------------------------------- -int adc_set_for_read_ch(uint I2C_Slave_Add) - { - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0x01);//Byte 0 to write - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; - } -//-------------------------------- - -double adc_read_ch(uint I2C_Slave_Add) - { - StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest(); - stubI2CReadBytesRequest.I2CId = I2C_ID; - stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add; - stubI2CReadBytesRequest.NumberOfBytesToRead = 2; // Number of bytes to read - - var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest); - uint temph=0; - uint templ=0; - uint temp; - double calc; - double calc1; - temph=response1.ReadBytes[0]; - templ=response1.ReadBytes[1]; - temp = (temph << 8) | templ; - temp=temp & 0x0fff; - - calc = (double)temp *2.5 / 4096.0; - calc1 = (1.96- calc) * 4.64 + 1.96; - return calc1; - } -//-------------------------------- -int open_valve (int valve_nm,int valve_type,int check_valve) //valve_type=0 is Air ,1 is Ink ; check_valve=1 send feedbak -{ - int temp1=Convert_Midtank_No[valve_nm-1] ; - - string temp; - SetBit (F3_VALVE_OUT,((valve_type+1)*8)- temp1, 1); - if (check_valve!=0) - { - temp="Air"; - if (valve_type==1) - temp="Ink"; - - DialogResult result = MessageBox.Show("Did " + temp + "Valve of Midtank " + valve_nm +" open?", "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.No) - { - Units_status[(valve_nm-1)*3+valve_type,1]="Fail"; - stubManager.Write(temp +"Valve\tFail\n"); - return 0; - } - else - { - Units_status[(valve_nm-1)*3+valve_type,1]="Pass"; - stubManager.Write(temp +"Valve\tOpen\n"); - return 1; - } - - } - return 1; - -} -//-------------------------------- -int close_valve (int valve_nm,int valve_type,int check_valve) -{ - int temp1=Convert_Midtank_No[valve_nm-1]; - - string temp; - SetBit (F3_VALVE_OUT,((valve_type+1)*8)- temp1, 0); - if (check_valve!=0) - { - temp="Air"; - if (valve_type==1) - temp="Ink"; - - DialogResult result = MessageBox.Show("Did " + temp +" Valve of Midtank " + valve_nm +" close?", "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.No) - { - Units_status[(valve_nm-1)*3+valve_type,1]="Fail"; - stubManager.Write(temp +"Valve\tFail\n"); - return 0; - } - else - { - Units_status[(valve_nm-1)*3+valve_type,1]="Pass"; - stubManager.Write(temp +"Valve\tclose\n"); - return 1; - } - } - return 1; - - - - -} -//-------------------------------- -Int32 SetBit(Int32 Adr, Int32 BitNo, Int32 Bit) -{ - Int32 BitMask; - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" , F3_VALVE_OUT); - Int32 RV = (Int32) response.Value & 0xffff; - - - if (Bit == 0x1) - { - BitMask = 0x1 << BitNo; - RV = RV | BitMask; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_VALVE_OUT , RV); - } - else if (Bit == 0x0) - { - BitMask = ~(0x1 << BitNo); - RV = RV & BitMask; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_VALVE_OUT , RV); - } - return 1; -} - //------------------------------------ -string write_to_file() -{ - stubManager.Write("write_to_file\n"); - -string Stemp="Pass"; - for (int i=0;i<UNIT_UNDER_TEST;i++) - { - stubManager.AppendToFile(File_Name1,Units_status[i,0]+"\t" + Units_status[i,1] ); - stubManager.Write(Units_status[i,0]+"\t" + Units_status[i,1]+"\n" ); - - if ((Units_status[i,1]=="Fail")||(Units_status[i,1]=="Not Test")) - Stemp="Fail"; - } - if (Stemp=="Fail") - { - stubManager.AppendToFile(File_Name1,"-------------MidTank Fail ------------ "); - stubManager.Write("-------------MidTank Fail ------------ "); - } - else - { - stubManager.AppendToFile(File_Name1,"-------------MidTank Pass ------------ )"); - stubManager.Write("-------------MidTank Pass ------------ "); - } - - return Stemp; - -} diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Midtank_Valves_test.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Midtank_Valves_test.cs deleted file mode 100644 index bacbfdcc1..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Midtank_Valves_test.cs +++ /dev/null @@ -1,65 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -include "..\..\Defines\Tango_Defines_Basic.cs" -include "..\Defines\Tango_Defines_GPO.cs" -//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_Basic.cs" -//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_GPO.cs" - - -public void OnExecute(StubManager stubManager) -{ -int i=0; -int midtankno = 0; -while(midtankno!=99) - { - var response = stubManager.ShowResponseWindow("Enter 1-16 to open Midtank, 101-116 to close , 0 - open all midtank ,100-close all midtank: press 99 to quit ", ""); - //stubManager.WriteLine(response); - stubManager.Write("\n"); - midtankno = int.Parse(response); - - - if(midtankno==0 ) - { - for (i=0;i<16;i++) - { - SetBit (FPGA3, F3_VALVE_OUT,15-i, 1); - stubManager.Write("Setting GPO F3_VALVE_OUT, bit " + (15-i) + " On\n"); - Thread.Sleep(1000); - } - } - else if(midtankno==100 ) - { - for (i=0;i<16;i++) - { - SetBit (FPGA3, F3_VALVE_OUT,15- i, 0); - stubManager.Write("Setting GPO F3_VALVE_OUT, bit " + (15-i) + " Off\n"); - Thread.Sleep(1000); - } - } - - else if(midtankno<17 ) - { - midtankno=midtankno-1; //start from 0 to 15 - SetBit (FPGA3, F3_VALVE_OUT,15- i, 1); - stubManager.Write("Setting GPO F3_VALVE_OUT, bit " + (15-i) + " On\n"); - } - - else if(midtankno>100 ) - { - midtankno=midtankno-101; //start from 0 to 15 - SetBit (FPGA3, F3_VALVE_OUT,15- i, 0); - stubManager.Write("Setting GPO F3_VALVE_OUT, bit " + (15-i) + " Off\n"); - } - } - -} diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Midtank_pressure_sensors.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Midtank_pressure_sensors.cs index e2bacf5f4..682ef322d 100644 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Midtank_pressure_sensors.cs +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Midtank_pressure_sensors.cs @@ -90,7 +90,6 @@ int adc_set_for_read_ch(uint I2C_Slave_Add) } - int adc_read_ch(uint I2C_Slave_Add) { StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest(); @@ -99,27 +98,16 @@ int adc_read_ch(uint I2C_Slave_Add) stubI2CReadBytesRequest.NumberOfBytesToRead = 2; // Number of bytes to read var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest); - UInt32 temph=0; - UInt32 templ=0; - UInt32 temp; - double calc; - double calc1; + uint temph=0; + uint templ=0; + uint temp; for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i=i+2) { temph=response1.ReadBytes[i]; templ=response1.ReadBytes[i+1]; temp = (temph << 8) | templ; temp=temp & 0x0fff; - - calc = (double)temp *2.5 / 4096.0; - calc1 = (1.96- calc) * 4.64 + 1.96; - - - // temp=temp*3300; - // temp=temp/4096; - - stubManager.Write(calc1); - stubManager.Write("mV\n"); + stubManager.WriteHex(temp,4); } @@ -133,49 +121,47 @@ public void OnExecute(StubManager stubManager) { - stubManager.Write("-----------MIDTANK_PRESSESENS-----------\n "); + stubManager.Write("\n-----------MIDTANK_PRESSESENS----------- "); - stubManager.Write("Midtank-1= "); + stubManager.Write("\n1_1= "); adc_configuration(0x44,0x20); //a2d_address 0x44 channel channel 2 +// adc_set_for_read_temp(0x44); +// adc_read_temp(0x44); + adc_set_for_read_ch(0x44); + adc_read_ch(0x44); + + stubManager.Write("\n1_2= "); + adc_configuration(0x44,0x10); //a2d_address 0x44 channel channel 3 adc_set_for_read_ch(0x44); adc_read_ch(0x44); - - stubManager.Write("Midtank-2= "); + stubManager.Write("\n2_1= "); adc_configuration(0x44,0x08); //a2d_address 0x44 channel channel 4 adc_set_for_read_ch(0x44); adc_read_ch(0x44); + stubManager.Write("\n2_2= "); + adc_configuration(0x44,0x04); //a2d_address 0x44 channel channel 5 + adc_set_for_read_ch(0x44); + adc_read_ch(0x44); - stubManager.Write("Midtank-3= "); + stubManager.Write("\n3_1= "); adc_configuration(0x46,0x80); //a2d_address 0x46 channel channel 0 adc_set_for_read_ch(0x46); adc_read_ch(0x46); - - stubManager.Write("Midtank-4= "); - adc_configuration(0x46,0x20); //a2d_address 0x46 channel channel 2 + + stubManager.Write("\n3_2= "); + adc_configuration(0x46,0x40); //a2d_address 0x46 channel channel 1 adc_set_for_read_ch(0x46); adc_read_ch(0x46); - - - stubManager.Write("Midtank-5= "); - adc_configuration(0x44,0x10); //a2d_address 0x44 channel channel 3 - adc_set_for_read_ch(0x44); - adc_read_ch(0x44); - - stubManager.Write("Midtank-6= "); - adc_configuration(0x44,0x04); //a2d_address 0x44 channel channel 5 - adc_set_for_read_ch(0x44); - adc_read_ch(0x44); - - stubManager.Write("Midtank-7= "); - adc_configuration(0x46,0x40); //a2d_address 0x46 channel channel 1 + stubManager.Write("\n4_1= "); + adc_configuration(0x46,0x20); //a2d_address 0x46 channel channel 2 adc_set_for_read_ch(0x46); adc_read_ch(0x46); - stubManager.Write("Midtank-8= "); + stubManager.Write("\n4_2= "); adc_configuration(0x46,0x10); //a2d_address 0x46 channel channel 3 adc_set_for_read_ch(0x46); adc_read_ch(0x46); diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/New_Calibrate_Midtank_pressure_sensors.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/New_Calibrate_Midtank_pressure_sensors.cs deleted file mode 100644 index 00ca4e8eb..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/New_Calibrate_Midtank_pressure_sensors.cs +++ /dev/null @@ -1,451 +0,0 @@ -using System; -using System.IO; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.PMR.EmbeddedParameters; -using Tango.Stubs; - -//---------------------- -const double MIN_SLOP=0.7; -const double MAX_SLOP=1.4; -const double ERROR_SLOP=-1; -const double MIN_50cc_on_volt=2.3; -const double MAX_50cc_on_volt=3.2; -const double ERROR_50cc_on_volt=-1; - -int [] Convert_Midtank_No = new Int32 [8] {1,3,5,7,2,4,6,8}; -uint [,] ADC_Add_Chnl = new uint [8,2] { - {0x44,0x20}, - {0x44,0x08}, - {0x46,0x80}, - {0x46,0x20}, - {0x44,0x10}, - {0x44,0x04}, - {0x46,0x40}, - {0x46,0x10}, - }; - - -const Int32 F3_VALVE_OUT = 0x600008E2 ; -string Machine_SN ; -private const string FILE_PATH = @"C:\MidTankLog\"; -string File_name; -double Full_Cartridge=1000; // on CC -double Slop=0.92; -//---------------------- -const Int32 I2C_ID = 2; -//const Int32 I2C_Slave_Add = 0x46; //must be 0x40, 0x44 or 0x46 -//---------------------- - - -public void OnExecute(StubManager stubManager) -{ - Int32 Timout ; - Int32 Interval; - Int32 midtankno = 0; - double Full_Point=0; //on Voltage - double resualt; - double Sum=0 ; - double Old_Sum=0 ; - double Start_Point=0; - - - if (!Directory.Exists(FILE_PATH)) - { - Directory.CreateDirectory(FILE_PATH); - } - - - - var response = stubManager.ShowResponseWindow("Enter Midtank S/N: ", ""); - stubManager.Write("\n"); - Machine_SN = response; - stubManager.WriteLine(Machine_SN); - File_name= FILE_PATH +Machine_SN + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".csv"; - stubManager.Write(File_name); - stubManager.WriteToFile(File_name,"MidTank S/N:," + Machine_SN); - - - var response1 = stubManager.ShowResponseWindow("Enter Midtank number to calibrate (1-8):", ""); - stubManager.WriteLine(response1); - midtankno = Int32.Parse(response1); - stubManager.AppendToFile(File_name,"MidTank Number:\t" + response1); - if (midtankno==8) - { - Slop=1; - Timout=60; //60 minutes - Interval=60; //60 second - } - else - { - Slop=0.92; - Timout=10*2; //10 minutes - Interval=30; //30 second - - } - var response10 = stubManager.ShowResponseWindow("Enter Cartridge Valume on CC (500-1500):", ""); - stubManager.WriteLine(response10); - Full_Cartridge = double.Parse(response10); - stubManager.AppendToFile(File_name,"Cartridge Valume:\t" + response10); - stubManager.AppendToFile(File_name,"Slop value:\t" + Slop); - - - DialogResult result = MessageBox.Show("Are you sure to calibrate Midtank No: "+ midtankno + " with "+ Full_Cartridge +" CC" , "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.Yes) - { - - - - string box_msg = "Please Insert cartridge "; - - MessageBox.Show(box_msg); - - open_valve(midtankno,1,1) ; //open Air valve - open_valve(midtankno,0,1) ; //open Ink valve - Int32 i=0; - while (i<Timout) //check for 15 minitus - { - Sum=0; - for (Int32 j=0;j<Interval;j++) - { - resualt=read_pressure_sensor(midtankno); - stubManager.AppendToFile(File_name,resualt+",V"); - Sum=Sum+resualt; - Thread.Sleep(1000); - } - - - if (i==0) - Start_Point=Sum/Interval; - - if (Sum>Old_Sum) - Old_Sum=Sum-Old_Sum; - else - Old_Sum=Old_Sum-Sum; - - - if ((check_valve(midtankno,1) != 0) && (check_valve(midtankno,0) != 0)) - { - i++; - if ( Old_Sum <0.02) - i=Timout+1; //end - Old_Sum=Sum; - } - else - { - open_valve(midtankno,1,0) ; //open Air valve - open_valve(midtankno,0,0) ; //open Ink valve - Old_Sum=0; - - } - } - Full_Point=Sum/Interval; - - - close_valve(midtankno,1,1) ; //close Air valve - close_valve(midtankno,0,1) ; //close Ink valve - - - if (insert_slop_t_eeprom(Full_Point, midtankno,Start_Point)==0) - { - box_msg ="Turn Power Off and On to finish the calibration."; - MessageBox.Show(box_msg); - } - else - { - box_msg ="Calibration error"; - MessageBox.Show(box_msg); - - } - } - -} - - - int insert_slop_t_eeprom( double FullPoint,Int32 midtankno, double StartPoint) -{ - stubManager.Write("\n StartPoint = "+ StartPoint +" \n"); - stubManager.Write("\n FullPoint = "+ FullPoint +" \n"); - - StartPoint=FullPoint-StartPoint; - StartPoint=1000*StartPoint/Full_Cartridge; - - stubManager.Write("\n slop = "+ StartPoint +" \n"); - - if ((StartPoint>0.7 ) && (StartPoint<1.6 )) - { - MidTankDataSetupRequest midTankDataSetupRequest = new MidTankDataSetupRequest(); - - MidTankData midTankData = new MidTankData(); - midTankData.MidTankId = Convert.ToUInt32 (midtankno-1); - midTankData.InitialOffsetA =FullPoint - (Full_Cartridge/1000-0.1)/Slop; - midTankData.SlopeB = Slop; - - stubManager.Write("\nMidtank No:" + midtankno + "=\tVoltage Zero is ="+(FullPoint - (Full_Cartridge/1000-0.1)/Slop)+"\tSlop="+ Slop); - stubManager.AppendToFile(File_name,"\nMidtank No:" + midtankno + "=\tVoltage Zero is ="+(FullPoint - (Full_Cartridge/1000-0.1)/Slop)+"\tSlop="+ Slop); - - - midTankDataSetupRequest.MidTankInfo.Add(midTankData); - - - var response = stubManager.Run<MidTankDataSetupResponse>(midTankDataSetupRequest); - - return 0; - } - else - stubManager.Write("\nError"); - stubManager.AppendToFile(File_name,"\n Slop Error"); - return 1; - -} - - -int adc_configuration(uint I2C_Slave_Add,uint channel ) - { - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0x00);//Byte 0 to write - stubI2CWriteBytesRequest.BytesTWrite.Add(channel);//Byte 1 to Write, must be 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02 or 0x01 for different channels - stubI2CWriteBytesRequest.BytesTWrite.Add(0x80);//Byte 2 to Write - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; - } - - -int adc_set_for_read_ch(uint I2C_Slave_Add) - { - StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); - stubI2CWriteBytesRequest.I2CId = I2C_ID; - stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; - - UInt32 uInt32 = new UInt32(); - stubI2CWriteBytesRequest.BytesTWrite.Add(0x01);//Byte 0 to write - - var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); - - return 1; - } - - - - -double adc_read_ch(uint I2C_Slave_Add) - { - StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest(); - stubI2CReadBytesRequest.I2CId = I2C_ID; - stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add; - stubI2CReadBytesRequest.NumberOfBytesToRead = 2; // Number of bytes to read - - var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest); - uint temph=0; - uint templ=0; - uint temp; - double calc; - double calc1; - double calc2; - temph=response1.ReadBytes[0]; - templ=response1.ReadBytes[1]; - temp = (temph << 8) | templ; - temp=temp & 0x0fff; - - calc = (double)temp *2.5 / 4096.0; - - calc1 = (1.96- calc) * 4.64 + 1.96; - stubManager.Write("Vsensor [volts]:\t"); - stubManager.Write(calc1 + "\n"); - - - return calc1; - } - -double read_pressure_sensor(Int32 i ) - { -double resualt =0 ; - switch (i) - { - case 1: - adc_configuration(0x44,0x20); //a2d_address 0x44 channel channel 2 - adc_set_for_read_ch(0x44); - resualt=adc_read_ch(0x44); - break; - - case 2: - adc_configuration(0x44,0x08); //a2d_address 0x44 channel channel 4 - adc_set_for_read_ch(0x44); - resualt=adc_read_ch(0x44); - break; - - case 3: - adc_configuration(0x46,0x80); //a2d_address 0x46 channel channel 0 - adc_set_for_read_ch(0x46); - resualt=adc_read_ch(0x46); - break; - - case 4: - adc_configuration(0x46,0x20); //a2d_address 0x46 channel channel 2 - adc_set_for_read_ch(0x46); - resualt=adc_read_ch(0x46); - break; - - case 5: - adc_configuration(0x44,0x10); //a2d_address 0x44 channel channel 3 - adc_set_for_read_ch(0x44); - resualt=adc_read_ch(0x44); - break; - - case 6: - adc_configuration(0x44,0x04); //a2d_address 0x44 channel channel 5 - adc_set_for_read_ch(0x44); - resualt=adc_read_ch(0x44); - break; - - case 7: - adc_configuration(0x46,0x40); //a2d_address 0x46 channel channel 1 - adc_set_for_read_ch(0x46); - resualt=adc_read_ch(0x46); - break; - - case 8: - adc_configuration(0x46,0x10); //a2d_address 0x46 channel channel 3 - adc_set_for_read_ch(0x46); - resualt=adc_read_ch(0x46); - break; - - default: - stubManager.Write("Error"); - - break; - } - - return resualt; - } - - -//-------------------------------- -int open_valve (int valve_nm,int valve_type,int check_valve) //valve_type=0 is Air ,1 is Ink ; check_valve=1 send feedbak -{ - int temp1=Convert_Midtank_No[valve_nm-1] ; - - string temp; - SetBit (F3_VALVE_OUT,(((valve_type+1)*8)- temp1), 1); - - if (check_valve!=0) - { - temp="Air"; - if (valve_type==1) - temp="Ink"; - - DialogResult result = MessageBox.Show("Did " + temp + "Valve of Midtank " + valve_nm +" open?", "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.No) - { -// Units_status[(valve_nm-1)*3+valve_type,1]="Fail"; - stubManager.Write(temp +"Valve\tFail\n"); - return 0; - } - else - { -// Units_status[(valve_nm-1)*3+valve_type,1]="Pass"; - stubManager.Write(temp +"Valve\tOpen\n"); - return 1; - } - - } - return 1; - -} -//-------------------------------- -int close_valve (int valve_nm,int valve_type,int check_valve) -{ - int temp1=Convert_Midtank_No[valve_nm-1]; - - string temp; - SetBit (F3_VALVE_OUT,(((valve_type+1)*8)- temp1), 0); - if (check_valve!=0) - { - temp="Air"; - if (valve_type==1) - temp="Ink"; - - DialogResult result = MessageBox.Show("Did " + temp +" Valve of Midtank " + valve_nm +" close?", "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.No) - { -// Units_status[(valve_nm-1)*3+valve_type,1]="Fail"; - stubManager.Write(temp +"Valve\tFail\n"); - return 0; - } - else - { -// Units_status[(valve_nm-1)*3+valve_type,1]="Pass"; - stubManager.Write(temp +"Valve\tclose\n"); - return 1; - } - } - return 1; - -} - -public Int32 SetBit(Int32 Adr, Int32 BitNo, Int32 Bit) -{ - Int32 BitMask; - var RetVal = Fpga_Read_Reg(Adr); - Int32 RV = (Int32) RetVal.Value; - - if (Bit == 0x1) - { - BitMask = 0x1 << BitNo; - RV = RV | BitMask; - Fpga_Write_Reg( Adr, RV ); - } - else if (Bit == 0x0) - { - BitMask = ~(0x1 << BitNo); - RV = RV & BitMask; - Fpga_Write_Reg(Adr, RV ); - } - return 1; -} - -int Fpga_Write_Reg(Int32 Addr, Int32 Data) -{ - var response = stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,Addr, Data); - - return 1; -} - - -Int32 check_valve (Int32 valve_nm,int valve_type) -{ - Int32 temp1=Convert_Midtank_No[valve_nm-1]; - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F3_VALVE_OUT); - Int32 RV =(Int32) response.Value & 0xffff ; - RV = RV & ( 0x1 << (((valve_type+1)*8)- temp1)); - return RV; - -} - - -StubFpgaReadRegResponse Fpga_Read_Reg(Int32 Addr) -{ - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,Addr); - response.Value = response.Value & 0xffff; - - return response; -} - - - - -//end mati
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Poller Motor.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Poller Motor.csv deleted file mode 100644 index e42f3c309..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Poller Motor.csv +++ /dev/null @@ -1,55 +0,0 @@ -Time,Poller Motor -13:39:54.945,0 -13:39:55.045,0 -13:39:55.145,0 -13:39:55.245,0 -13:39:55.345,0 -13:39:55.445,0 -13:39:55.545,0 -13:39:55.645,0 -13:39:55.745,0 -13:39:55.845,0 -13:39:55.945,0 -13:39:56.045,0 -13:39:56.145,0 -13:39:56.245,0 -13:39:56.345,0 -13:39:56.445,0 -13:39:56.545,0 -13:39:56.645,0 -13:39:56.745,0 -13:39:56.845,0 -13:39:56.945,0 -13:39:57.045,0 -13:39:57.145,0 -13:39:57.245,0 -13:39:57.345,0 -13:39:57.445,0 -13:39:57.545,0 -13:39:57.645,0 -13:39:57.745,0 -13:39:57.845,0 -13:39:57.945,0 -13:39:58.045,0 -13:39:58.145,0 -13:39:58.245,0 -13:39:58.345,0 -13:39:58.445,0 -13:39:58.545,0 -13:39:58.645,0 -13:39:58.745,0 -13:39:58.845,0 -13:39:58.945,0 -13:39:59.045,0 -13:39:59.145,0 -13:39:59.245,0 -13:39:59.345,0 -13:39:59.445,0 -13:39:59.545,0 -13:39:59.645,0 -13:39:59.745,0 -13:39:59.845,0 -13:39:59.945,0 -13:40:00.045,0 -13:40:00.145,0 -13:40:00.245,0 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Right Dancer.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Right Dancer.csv deleted file mode 100644 index 9efc47b7e..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Right Dancer.csv +++ /dev/null @@ -1,541 +0,0 @@ -Time,Right Dancer -13:39:54.945,12900 -13:39:54.955,12900 -13:39:54.965,12900 -13:39:54.975,12900 -13:39:54.985,12900 -13:39:54.995,12900 -13:39:55.005,12900 -13:39:55.015,12900 -13:39:55.025,12900 -13:39:55.035,12900 -13:39:55.045,12900 -13:39:55.055,12900 -13:39:55.065,12900 -13:39:55.075,12900 -13:39:55.085,12900 -13:39:55.095,12900 -13:39:55.105,12900 -13:39:55.115,12900 -13:39:55.125,12900 -13:39:55.135,12900 -13:39:55.145,12900 -13:39:55.155,12900 -13:39:55.165,12900 -13:39:55.175,12900 -13:39:55.185,12900 -13:39:55.195,12900 -13:39:55.205,12900 -13:39:55.215,12900 -13:39:55.225,12900 -13:39:55.235,12900 -13:39:55.245,12900 -13:39:55.255,12900 -13:39:55.265,12900 -13:39:55.275,12900 -13:39:55.285,12900 -13:39:55.295,12900 -13:39:55.305,12900 -13:39:55.315,12900 -13:39:55.325,12900 -13:39:55.335,12900 -13:39:55.345,12900 -13:39:55.355,12900 -13:39:55.365,12900 -13:39:55.375,12900 -13:39:55.385,12900 -13:39:55.395,12900 -13:39:55.405,12900 -13:39:55.415,12900 -13:39:55.425,12900 -13:39:55.435,12900 -13:39:55.445,12900 -13:39:55.455,12900 -13:39:55.465,12900 -13:39:55.475,12900 -13:39:55.485,12900 -13:39:55.495,12900 -13:39:55.505,12900 -13:39:55.515,12900 -13:39:55.525,12900 -13:39:55.535,12900 -13:39:55.545,12900 -13:39:55.555,12900 -13:39:55.565,12900 -13:39:55.575,12900 -13:39:55.585,12900 -13:39:55.595,12900 -13:39:55.605,12900 -13:39:55.615,12900 -13:39:55.625,12900 -13:39:55.635,12900 -13:39:55.645,12900 -13:39:55.655,12900 -13:39:55.665,12900 -13:39:55.675,12900 -13:39:55.685,12900 -13:39:55.695,12900 -13:39:55.705,12900 -13:39:55.715,12900 -13:39:55.725,12900 -13:39:55.735,12900 -13:39:55.745,12900 -13:39:55.755,12900 -13:39:55.765,12900 -13:39:55.775,12900 -13:39:55.785,12900 -13:39:55.795,12900 -13:39:55.805,12900 -13:39:55.815,12900 -13:39:55.825,12900 -13:39:55.835,12900 -13:39:55.845,12900 -13:39:55.855,12900 -13:39:55.865,12900 -13:39:55.875,12900 -13:39:55.885,12900 -13:39:55.895,12900 -13:39:55.905,12900 -13:39:55.915,12900 -13:39:55.925,12900 -13:39:55.935,12900 -13:39:55.945,12900 -13:39:55.955,12900 -13:39:55.965,12900 -13:39:55.975,12900 -13:39:55.985,12900 -13:39:55.995,12900 -13:39:56.005,12900 -13:39:56.015,12900 -13:39:56.025,12900 -13:39:56.035,12900 -13:39:56.045,12900 -13:39:56.055,12900 -13:39:56.065,12900 -13:39:56.075,12900 -13:39:56.085,12900 -13:39:56.095,12900 -13:39:56.105,12900 -13:39:56.115,12900 -13:39:56.125,12900 -13:39:56.135,12900 -13:39:56.145,12900 -13:39:56.155,12900 -13:39:56.165,12900 -13:39:56.175,12900 -13:39:56.185,12900 -13:39:56.195,12900 -13:39:56.205,12900 -13:39:56.215,12900 -13:39:56.225,12900 -13:39:56.235,12900 -13:39:56.245,12900 -13:39:56.255,12900 -13:39:56.265,12900 -13:39:56.275,12900 -13:39:56.285,12900 -13:39:56.295,12900 -13:39:56.305,12900 -13:39:56.315,12900 -13:39:56.325,12900 -13:39:56.335,12900 -13:39:56.345,12900 -13:39:56.355,12900 -13:39:56.365,12900 -13:39:56.375,12900 -13:39:56.385,12900 -13:39:56.395,12900 -13:39:56.405,12900 -13:39:56.415,12900 -13:39:56.425,12900 -13:39:56.435,12900 -13:39:56.445,12900 -13:39:56.455,12900 -13:39:56.465,12900 -13:39:56.475,12900 -13:39:56.485,12900 -13:39:56.495,12900 -13:39:56.505,12900 -13:39:56.515,12900 -13:39:56.525,12900 -13:39:56.535,12900 -13:39:56.545,12900 -13:39:56.555,12900 -13:39:56.565,12900 -13:39:56.575,12900 -13:39:56.585,12900 -13:39:56.595,12900 -13:39:56.605,12900 -13:39:56.615,12900 -13:39:56.625,12900 -13:39:56.635,12900 -13:39:56.645,12900 -13:39:56.655,12900 -13:39:56.665,12900 -13:39:56.675,12900 -13:39:56.685,12900 -13:39:56.695,12900 -13:39:56.705,12900 -13:39:56.715,12900 -13:39:56.725,12900 -13:39:56.735,12900 -13:39:56.745,12900 -13:39:56.755,12900 -13:39:56.765,12900 -13:39:56.775,12900 -13:39:56.785,12900 -13:39:56.795,12900 -13:39:56.805,12900 -13:39:56.815,12900 -13:39:56.825,12900 -13:39:56.835,12900 -13:39:56.845,12900 -13:39:56.855,12900 -13:39:56.865,12900 -13:39:56.875,12900 -13:39:56.885,12900 -13:39:56.895,12900 -13:39:56.905,12900 -13:39:56.915,12900 -13:39:56.925,12900 -13:39:56.935,12900 -13:39:56.945,12900 -13:39:56.955,12900 -13:39:56.965,12900 -13:39:56.975,12900 -13:39:56.985,12900 -13:39:56.995,12900 -13:39:57.005,12900 -13:39:57.015,12900 -13:39:57.025,12900 -13:39:57.035,12900 -13:39:57.045,12900 -13:39:57.055,12900 -13:39:57.065,12900 -13:39:57.075,12900 -13:39:57.085,12900 -13:39:57.095,12900 -13:39:57.105,12900 -13:39:57.115,12900 -13:39:57.125,12900 -13:39:57.135,12900 -13:39:57.145,12900 -13:39:57.155,12900 -13:39:57.165,12900 -13:39:57.175,12900 -13:39:57.185,12900 -13:39:57.195,12900 -13:39:57.205,12900 -13:39:57.215,12900 -13:39:57.225,12900 -13:39:57.235,12900 -13:39:57.245,12900 -13:39:57.255,12900 -13:39:57.265,12900 -13:39:57.275,12900 -13:39:57.285,12900 -13:39:57.295,12900 -13:39:57.305,12900 -13:39:57.315,12900 -13:39:57.325,12900 -13:39:57.335,12900 -13:39:57.345,12900 -13:39:57.355,12900 -13:39:57.365,12900 -13:39:57.375,12900 -13:39:57.385,12900 -13:39:57.395,12900 -13:39:57.405,12900 -13:39:57.415,12900 -13:39:57.425,12900 -13:39:57.435,12900 -13:39:57.445,12900 -13:39:57.455,12900 -13:39:57.465,12900 -13:39:57.475,12900 -13:39:57.485,12900 -13:39:57.495,12900 -13:39:57.505,12900 -13:39:57.515,12900 -13:39:57.525,12900 -13:39:57.535,12900 -13:39:57.545,12900 -13:39:57.555,12900 -13:39:57.565,12900 -13:39:57.575,12900 -13:39:57.585,12900 -13:39:57.595,12900 -13:39:57.605,12900 -13:39:57.615,12900 -13:39:57.625,12900 -13:39:57.635,12900 -13:39:57.645,12900 -13:39:57.655,12900 -13:39:57.665,12900 -13:39:57.675,12900 -13:39:57.685,12900 -13:39:57.695,12900 -13:39:57.705,12900 -13:39:57.715,12900 -13:39:57.725,12900 -13:39:57.735,12900 -13:39:57.745,12900 -13:39:57.755,12900 -13:39:57.765,12900 -13:39:57.775,12900 -13:39:57.785,12900 -13:39:57.795,12900 -13:39:57.805,12900 -13:39:57.815,12900 -13:39:57.825,12900 -13:39:57.835,12900 -13:39:57.845,12900 -13:39:57.855,12900 -13:39:57.865,12900 -13:39:57.875,12900 -13:39:57.885,12900 -13:39:57.895,12900 -13:39:57.905,12900 -13:39:57.915,12900 -13:39:57.925,12900 -13:39:57.935,12900 -13:39:57.945,12900 -13:39:57.955,12900 -13:39:57.965,12900 -13:39:57.975,12900 -13:39:57.985,12900 -13:39:57.995,12900 -13:39:58.005,12900 -13:39:58.015,12900 -13:39:58.025,12900 -13:39:58.035,12900 -13:39:58.045,12900 -13:39:58.055,12900 -13:39:58.065,12900 -13:39:58.075,12900 -13:39:58.085,12900 -13:39:58.095,12900 -13:39:58.105,12900 -13:39:58.115,12900 -13:39:58.125,12900 -13:39:58.135,12900 -13:39:58.145,12900 -13:39:58.155,12900 -13:39:58.165,12900 -13:39:58.175,12900 -13:39:58.185,12900 -13:39:58.195,12900 -13:39:58.205,12900 -13:39:58.215,12900 -13:39:58.225,12900 -13:39:58.235,12900 -13:39:58.245,12900 -13:39:58.255,12900 -13:39:58.265,12900 -13:39:58.275,12900 -13:39:58.285,12900 -13:39:58.295,12900 -13:39:58.305,12900 -13:39:58.315,12900 -13:39:58.325,12900 -13:39:58.335,12900 -13:39:58.345,12900 -13:39:58.355,12900 -13:39:58.365,12900 -13:39:58.375,12900 -13:39:58.385,12900 -13:39:58.395,12900 -13:39:58.405,12900 -13:39:58.415,12900 -13:39:58.425,12900 -13:39:58.435,12900 -13:39:58.445,12900 -13:39:58.455,12900 -13:39:58.465,12900 -13:39:58.475,12900 -13:39:58.485,12900 -13:39:58.495,12900 -13:39:58.505,12900 -13:39:58.515,12900 -13:39:58.525,12900 -13:39:58.535,12900 -13:39:58.545,12900 -13:39:58.555,12900 -13:39:58.565,12900 -13:39:58.575,12900 -13:39:58.585,12900 -13:39:58.595,12900 -13:39:58.605,12900 -13:39:58.615,12900 -13:39:58.625,12900 -13:39:58.635,12900 -13:39:58.645,12900 -13:39:58.655,12900 -13:39:58.665,12900 -13:39:58.675,12900 -13:39:58.685,12900 -13:39:58.695,12900 -13:39:58.705,12900 -13:39:58.715,12900 -13:39:58.725,12900 -13:39:58.735,12900 -13:39:58.745,12900 -13:39:58.755,12900 -13:39:58.765,12900 -13:39:58.775,12900 -13:39:58.785,12900 -13:39:58.795,12900 -13:39:58.805,12900 -13:39:58.815,12900 -13:39:58.825,12900 -13:39:58.835,12900 -13:39:58.845,12900 -13:39:58.855,12900 -13:39:58.865,12900 -13:39:58.875,12900 -13:39:58.885,12900 -13:39:58.895,12900 -13:39:58.905,12900 -13:39:58.915,12900 -13:39:58.925,12900 -13:39:58.935,12900 -13:39:58.945,12900 -13:39:58.955,12900 -13:39:58.965,12900 -13:39:58.975,12900 -13:39:58.985,12900 -13:39:58.995,12900 -13:39:59.005,12900 -13:39:59.015,12900 -13:39:59.025,12900 -13:39:59.035,12900 -13:39:59.045,12900 -13:39:59.055,12900 -13:39:59.065,12900 -13:39:59.075,12900 -13:39:59.085,12900 -13:39:59.095,12900 -13:39:59.105,12900 -13:39:59.115,12900 -13:39:59.125,12900 -13:39:59.135,12900 -13:39:59.145,12900 -13:39:59.155,12900 -13:39:59.165,12900 -13:39:59.175,12900 -13:39:59.185,12900 -13:39:59.195,12900 -13:39:59.205,12900 -13:39:59.215,12900 -13:39:59.225,12900 -13:39:59.235,12900 -13:39:59.245,12900 -13:39:59.255,12900 -13:39:59.265,12900 -13:39:59.275,12900 -13:39:59.285,12900 -13:39:59.295,12900 -13:39:59.305,12900 -13:39:59.315,12900 -13:39:59.325,12900 -13:39:59.335,12900 -13:39:59.345,12900 -13:39:59.355,12900 -13:39:59.365,12900 -13:39:59.375,12900 -13:39:59.385,12900 -13:39:59.395,12900 -13:39:59.405,12900 -13:39:59.415,12900 -13:39:59.425,12900 -13:39:59.435,12900 -13:39:59.445,12900 -13:39:59.455,12900 -13:39:59.465,12900 -13:39:59.475,12900 -13:39:59.485,12900 -13:39:59.495,12900 -13:39:59.505,12900 -13:39:59.515,12900 -13:39:59.525,12900 -13:39:59.535,12900 -13:39:59.545,12900 -13:39:59.555,12900 -13:39:59.565,12900 -13:39:59.575,12900 -13:39:59.585,12900 -13:39:59.595,12900 -13:39:59.605,12900 -13:39:59.615,12900 -13:39:59.625,12900 -13:39:59.635,12900 -13:39:59.645,12900 -13:39:59.655,12900 -13:39:59.665,12900 -13:39:59.675,12900 -13:39:59.685,12900 -13:39:59.695,12900 -13:39:59.705,12900 -13:39:59.715,12900 -13:39:59.725,12900 -13:39:59.735,12900 -13:39:59.745,12900 -13:39:59.755,12900 -13:39:59.765,12900 -13:39:59.775,12900 -13:39:59.785,12900 -13:39:59.795,12900 -13:39:59.805,12900 -13:39:59.815,12900 -13:39:59.825,12900 -13:39:59.835,12900 -13:39:59.845,12900 -13:39:59.855,12900 -13:39:59.865,12900 -13:39:59.875,12900 -13:39:59.885,12900 -13:39:59.895,12900 -13:39:59.905,12900 -13:39:59.915,12900 -13:39:59.925,12900 -13:39:59.935,12900 -13:39:59.945,12900 -13:39:59.955,12900 -13:39:59.965,12900 -13:39:59.975,12900 -13:39:59.985,12900 -13:39:59.995,12900 -13:40:00.005,12900 -13:40:00.015,12900 -13:40:00.025,12900 -13:40:00.035,12900 -13:40:00.045,12900 -13:40:00.055,12900 -13:40:00.065,12900 -13:40:00.075,12900 -13:40:00.085,12900 -13:40:00.095,12900 -13:40:00.105,12900 -13:40:00.115,12900 -13:40:00.125,12900 -13:40:00.135,12900 -13:40:00.145,12900 -13:40:00.155,12900 -13:40:00.165,12900 -13:40:00.175,12900 -13:40:00.185,12900 -13:40:00.195,12900 -13:40:00.205,12900 -13:40:00.215,12900 -13:40:00.225,12900 -13:40:00.235,12900 -13:40:00.245,12900 -13:40:00.255,12900 -13:40:00.265,12900 -13:40:00.275,12900 -13:40:00.285,12900 -13:40:00.295,12900 -13:40:00.305,12900 -13:40:00.315,12900 -13:40:00.325,12900 -13:40:00.335,12900 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Screw Motor.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Screw Motor.csv deleted file mode 100644 index ac6f709b1..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Screw Motor.csv +++ /dev/null @@ -1 +0,0 @@ -Time,Screw Motor diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/midtanksetparams.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/midtanksetparams.cs deleted file mode 100644 index d3aa81e83..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/midtanksetparams.cs +++ /dev/null @@ -1,151 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; -using Tango.PMR.EmbeddedParameters; - -public void OnExecute(StubManager stubManager) -{ - uint midtankno = 0; - double Slop; - double Zero_Point; - -MidTankDataSetupRequest midTankDataSetupRequest = new MidTankDataSetupRequest(); - - var response = stubManager.ShowResponseWindow("Enter Midtank number to calibrate (1-8):", ""); - //stubManager.WriteLine(response); - stubManager.Write("\n"); - midtankno = uint.Parse(response); - - var response1 = stubManager.ShowResponseWindow("Enter Midtank Slop ", ""); - //stubManager.WriteLine(response); - stubManager.Write("\n"); - Slop = double.Parse(response1); - - var response2= stubManager.ShowResponseWindow("Enter Zero point (100cc)", ""); - //stubManager.WriteLine(response); - stubManager.Write("\n"); - Zero_Point = double.Parse(response2); - - DialogResult result = MessageBox.Show("Are you sure to calibrate Midtank No: "+ midtankno + "with Slop "+ Slop +" and Zero_Point " + Zero_Point , "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.Yes) - { - MidTankData midTankData = new MidTankData(); - midTankData.MidTankId = midtankno-1; - midTankData.InitialOffsetA = Zero_Point; - midTankData.SlopeB = Slop; - midTankDataSetupRequest.MidTankInfo.Add(midTankData); - var response3 = stubManager.Run<MidTankDataSetupResponse>(midTankDataSetupRequest); - string box_msg ="Turn Power Off and On to finish the calibration."; - MessageBox.Show(box_msg); - - } - -} - - - -//MidTankDataSetupRequest midTankDataSetupRequest = new MidTankDataSetupRequest(); - -//50cc [V] 1.93242734375 1.94375546875 1.9295953125 1.935259375 1.92109921875 2.8245171875 1.92676328125 1.92676328125 - //b [mL/V] -1 -1 -1 -1 -1 0.885922630082808 -1 -1 -/* -MidTankData midTankData = new MidTankData(); -midTankData.MidTankId = 0; -midTankData.InitialOffsetA = 2.64273428916931; -midTankData.SlopeB = 0.899999976158142; - -MidTankData midTankData1 = new MidTankData(); -midTankData1.MidTankId = 1; -midTankData1.InitialOffsetA = 2.63755464553833; -midTankData1.SlopeB = 0.899999976158142; - -MidTankData midTankData2 = new MidTankData(); -midTankData2.MidTankId = 2; -midTankData2.InitialOffsetA = 2.63525938987732; -midTankData2.SlopeB = 0.899999976158142; - -MidTankData midTankData3 = new MidTankData(); -midTankData3.MidTankId = 3; -midTankData3.InitialOffsetA = 1.4276158142; -midTankData3.SlopeB = 0.899999976158142; - - -MidTankData midTankData4 = new MidTankData(); -midTankData4.MidTankId = 4; -midTankData4.InitialOffsetA = 2.61099219322205; -midTankData4.SlopeB = 0.899999976158142; - - -MidTankData midTankData5 = new MidTankData(); -midTankData5.MidTankId = 5; -midTankData5.InitialOffsetA = 2.62451720237732; -midTankData5.SlopeB = 0.899999976158142; - - -MidTankData midTankData6 = new MidTankData(); -midTankData6.MidTankId = 6; -midTankData6.InitialOffsetA = 2.62676334381104; -midTankData6.SlopeB = 0.899999976158142; - -MidTankData midTankData7 = new MidTankData(); -midTankData7.MidTankId = 7; -midTankData7.InitialOffsetA = 2.62676334381104; -midTankData7.SlopeB = 0.899999976158142; - - - -midTankDataSetupRequest.MidTankInfo.Add(midTankData); -midTankDataSetupRequest.MidTankInfo.Add(midTankData1); -midTankDataSetupRequest.MidTankInfo.Add(midTankData2); -midTankDataSetupRequest.MidTankInfo.Add(midTankData3); -midTankDataSetupRequest.MidTankInfo.Add(midTankData4); -midTankDataSetupRequest.MidTankInfo.Add(midTankData5); -midTankDataSetupRequest.MidTankInfo.Add(midTankData6); -midTankDataSetupRequest.MidTankInfo.Add(midTankData7); - - -var response = stubManager.Run<MidTankDataSetupResponse>(midTankDataSetupRequest); - */ - -//} - -/* - int insert_slop_t_eeprom() -{ - stubManager.Write("\n "); - - MidTankDataSetupRequest midTankDataSetupRequest = new MidTankDataSetupRequest(); - - - for (uint i=1;i<9;i++) - { - if (voltage_array[i,4]!= ERROR_SLOP) - { - MidTankData midTankData = new MidTankData(); - midTankData.MidTankId = i-1; - midTankData.InitialOffsetA = voltage_array[i,2]; - midTankData.SlopeB = voltage_array[i,4]; - - stubManager.Write("\nMidtank No:" + i+ "=\tA="+voltage_array[i,2]+"\tSlop="+voltage_array[i,4]); - - - midTankDataSetupRequest.MidTankInfo.Add(midTankData); - - } -var response = stubManager.Run<MidTankDataSetupResponse>(midTankDataSetupRequest); - - - - } -} - -*/ - diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/read_midtank_calibration.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/read_midtank_calibration.cs deleted file mode 100644 index 469772888..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/read_midtank_calibration.cs +++ /dev/null @@ -1,37 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - int i; - - for(i=0;i<8;i++) - { - - var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xA, i); - stubManager.Write("\n Initial_Offset_A [#"); - stubManager.Write(i); - stubManager.Write("] = "); - stubManager.WriteLine(response.Progress); - } - - for(i=0;i<8;i++) - { - var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xB, i); - stubManager.Write("\n Slope_B [#"); - stubManager.Write(i); - stubManager.Write("] = "); - stubManager.WriteLine(response1.Progress); - } - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/New_DyeHead/Test_Actuator.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/New_DyeHead/Test_Actuator.cs deleted file mode 100644 index f9555a05b..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/New_DyeHead/Test_Actuator.cs +++ /dev/null @@ -1,42 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - int sleep_up=2000;//2 second - int sleep_dn=2000;//2 second - var response = stubManager.ShowResponseWindow("Enter Loop Number for Actuator.", ""); - //stubManager.WriteLine(response); - int Loop_Nm = int.Parse(response); - - for (int i=0;i<Loop_Nm;i++) - { - - - stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf000); //mov ACTUATOR-IN down - Thread.Sleep(sleep_dn); - stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf101); //mov ACTUATOR-OUT up - Thread.Sleep(sleep_dn); - stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf001); //mov ACTUATOR-IN up - Thread.Sleep(sleep_up); - stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf100); //mov ACTUATOR-OUT down - Thread.Sleep(sleep_up); - - } - // stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf100); //mov ACTUATOR-OUTdown - // stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf101); //mov ACTUATOR-OUT up - - - - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/New_DyeHead/Test_Lid.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/New_DyeHead/Test_Lid.cs deleted file mode 100644 index 110a0f09b..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/New_DyeHead/Test_Lid.cs +++ /dev/null @@ -1,145 +0,0 @@ -using System; -using System.Text; -using System.IO; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -const int New_DyeHead_UNDER_TEST=48; - -const Int32 MGNET_OPEN=0x42F801; -const Int32 MGNET_EN=0x42F701; -const Int32 MGNET_CLOSE=0x42F800; -const Int32 MGNET_DIS=0x42F700; - -const Int32 LS_FRONT=0X460110; -const Int32 LS_REAR=0X460120; -const Int32 LS_UPPER=0X460140; -const Int32 LS_SPARE=0X460180; - -const Int32 DyeingHeadLid_Motor = 2; - -//-------------------------------------------------------------------------------- - -public void OnExecute(StubManager stubManager) -{ - var response = stubManager.ShowResponseWindow("Enter Loop Number for Dye Head Lead.", ""); - //stubManager.WriteLine(response); - int Loop_Nm = int.Parse(response); - - for (int i=0;i<Loop_Nm;i++) - { - if (Test_Magnet_Motor_LS_New_DyeHead() != 0 ) - { - i=Loop_Nm; - stubManager.Write("Error"); - } - Thread.Sleep(2000); - } -} - -//------------------------------------------------------------- - -//-------------------------------------------- - int Test_Magnet_Motor_LS_New_DyeHead() -{ - Int32 temp; - int i=0; - -//---------------------- open Magnet ---------------------------- - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,MGNET_OPEN); // turn magnet on - Thread.Sleep(100); - - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,MGNET_EN); // magnet enable - Thread.Sleep(100); - - Thread.Sleep(1000); -//---------------------- chekc Magnet is open ---------------------------- -// DialogResult result = MessageBox.Show("Make shure, Magnet is open and DyeHead cover on front.", "Warning",MessageBoxButtons.YesNo); -// if(result == DialogResult.No) -// { -// stubManager.Write("Magnet is close\n"); -// return 0; -// } - temp=read_pio (LS_UPPER); // read LS_UPPER - if (temp != 0) - { - stubManager.Write("LS_UPPER of Magnet is close\n"); - return 1; - } - stubManager.Write("Magnet is Open\n"); - - -//---------------------- Move DyeingHead Lid Motor rear---------------------------- - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DyeingHeadLid_Motor, true, 250); - stubManager.Write("*** Open Lid Head ********* \n"); - - temp = 0; - i=0; - while ((temp == 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec - { - temp=read_pio (LS_REAR); // read LS_REAR - Thread.Sleep(50); - - i++; - } - - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor,3); //stop motor - if(i==200) - { - stubManager.Write("LS_REAR Not calibrate\n"); - return 1; - } - -//---------------------- Move DyeingHead Lid Motor front---------------------------- - stubManager.Write("*** Close Lid Head \n"); - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DyeingHeadLid_Motor, false, 250); - temp = 0; - i=0; - while ((temp == 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec - { - temp=read_pio (LS_FRONT); // read LS_FRONT - Thread.Sleep(50); - i++; - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor,3); //stop motor - if(i==200) - { - stubManager.Write("LS_FRONT Not calibrate\n"); - return 1; - } -//---------------------- Close Magnet ---------------------------- - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,MGNET_CLOSE); // turn magnet off - Thread.Sleep(2000); - stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,MGNET_DIS); // magnet Disable - - stubManager.Write("Magnet is Close\n"); - Thread.Sleep(1000); - - temp=read_pio (LS_UPPER); // read LS_UPPER - if (temp == 0) - { - stubManager.Write("LS_UPPER of Magnet is open\n"); - return 1; - } - stubManager.Write("LS_UPPER of Magnet is close\n"); - return 0; - } - -Int32 read_pio(Int32 i2c_input) -{ - Int32 temp=0; - var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,i2c_input); // read break - - temp = (Int32) (response.Progress); - temp =temp & (i2c_input& 0xff); //if break ok - - return temp; -} -//end mati diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/Read_Cartridge_Present.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/Read_Cartridge_Present.cs deleted file mode 100644 index 397999f12..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/Read_Cartridge_Present.cs +++ /dev/null @@ -1,97 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -include "..\..\Defines\Tango_Defines_Basic.cs" -include "Tango_Defines_LimitSwitch.cs" -//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_Basic.cs" -//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_LimitSwitch.cs" - -//MF 23092018 2 spare LS not include - -const Int32 F3_CARTx_PRES_02_Direct = 0x60000870; -const Int32 F3_LOW_Cart_Led1 = 0x60000ba4; -const Int32 F3_High_Cart_Led1 = 0x60000ba6; -const Int32 F3_LOW_Cart_Led2 = 0x60000ba8; -const Int32 F3_High_Cart_Led2 = 0x60000baa; -const Int32 F3_LOW_Cart_Led3 = 0x60000bac; -const Int32 F3_High_Cart_Led3 = 0x60000bae; - -const Int32 F3_PreScalar_Leds = 0x60000be8; - - -public void OnExecute(StubManager stubManager) -{ - - uint Temp = 0; - uint Temp1 = 0; - int counter = 0; - stubManager.Write("\nReading register F3_CARTx_PRES_02_Direct: "); - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_LOW_Cart_Led1,100);//Low 8 bit - -var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F3_PreScalar_Leds,250); - stubManager.WriteHex(response.Value,4); - Temp = response.Value; - stubManager.Write("\nActivate limit switches one-by-one"); - - while ( counter != 1000) - { - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F3_CARTx_PRES_02_Direct); - - - - if (response.Value != Temp) - { - stubManager.WriteHex(response.Value,4); - - - Temp1=response.Value & 0x080; - if (Temp1 ==0x0080) - { - stubManager.Write("\nCART1_PRES"); - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_LOW_Cart_Led1,255);//Low 8 bit - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_High_Cart_Led1,255);//High 8 bit - - - } - Temp1=response.Value & 0x0040; - if (Temp1 ==0x0040) - { - stubManager.Write("\nCART2_PRES"); - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_LOW_Cart_Led2,255);//Low 8 bit - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_High_Cart_Led2,255);//High 8 bit - } - - Temp1=response.Value & 0x0020; - if (Temp1 ==0x0020) - { - stubManager.Write("\nCART3_PRES"); - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_LOW_Cart_Led3,255);//Low 8 bit - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_High_Cart_Led3,255);//High 8 bit - } - - - counter = counter + 1; - } - Thread.Sleep(1000); - Temp = response.Value; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_LOW_Cart_Led1,10);//Low 8 bit - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_High_Cart_Led1,1);//High 8 bit - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_LOW_Cart_Led2,10);//Low 8 bit - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_High_Cart_Led2,1);//High 8 bit - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_LOW_Cart_Led3,10);//Low 8 bit - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_High_Cart_Led3,1);//High 8 bit - - } - - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/Tamper_sw.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/Tamper_sw.cs deleted file mode 100644 index 2c51aebe7..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/Tamper_sw.cs +++ /dev/null @@ -1,94 +0,0 @@ -sing System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -include "..\..\Defines\Tango_Defines_Basic.cs" -include "Tango_Defines_LimitSwitch.cs" -//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_Basic.cs" -//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_LimitSwitch.cs" - -//MF 23092018 2 spare LS not include - -const Int32 F3_GPI_01_Direct = 0x60000820; - -public void OnExecute(StubManager stubManager) -{ - - uint Temp = 0; - uint Temp1 = 0; - int counter = 0; - stubManager.Write("\nReading register F3_GPI_01_Direct: "); - -var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F3_GPI_01_Direct); - stubManager.WriteHex(response.Value,4); - Temp = response.Value; - stubManager.Write("\nActivate limit switches one-by-one"); - - while ( counter != 1000) - { - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F3_GPI_01_Direct); - - - - if (response.Value != Temp) - { - stubManager.WriteHex(response.Value,4); - - - Temp1=response.Value & 0x0008; - if (Temp1 ==0x0008) - { - stubManager.Write("\nF3_GPI_PANSW6"); - - } - Temp1=response.Value & 0x0010; - if (Temp1 ==0x0010) - { - stubManager.Write("\nF3_GPI_PANSW5"); - } - - Temp1=response.Value & 0x0020; - if (Temp1 ==0x0020) - { - stubManager.Write("\nF3_GPI_PANSW4"); - } - - Temp1=response.Value & 0x0040; - if (Temp1 ==0x0040) - { - stubManager.Write("\nF3_GPI_PANSW3"); - } - - Temp1=response.Value & 0x0080; - if (Temp1 ==0x0080) - { - stubManager.Write("\nF3_GPI_PANSW2"); - } - - - Temp1=response.Value & 0x0100; - if (Temp1 ==0x0100) - { - stubManager.Write("\nF3_GPI_PANSW1"); - } - - - - counter = counter + 1; - } - Thread.Sleep(1000); - Temp = response.Value; - - } - - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/Tamper_switch.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/Tamper_switch.cs deleted file mode 100644 index 9b741d981..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/Tamper_switch.cs +++ /dev/null @@ -1,72 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -include "..\..\Defines\Tango_Defines_Basic.cs" -include "Tango_Defines_LimitSwitch.cs" -//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_Basic.cs" -//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_LimitSwitch.cs" - - - -public void OnExecute(StubManager stubManager) -{ - uint Temp = 0; - uint Temp1 = 0; - int counter = 0; - stubManager.Write("\nReading register F3_GPI_01_Direct: "); - var RetVal = Fpga_Read_Reg(FPGA3, F3_GPI_01_Direct, 0); - stubManager.WriteHex(RetVal.Value,4); - Temp = RetVal.Value; - stubManager.Write("\nActivate Tamper switches one-by-one"); - - while ( counter != 100000) - { - RetVal = Fpga_Read_Reg(FPGA3, F3_GPI_01_Direct, 0); - if (RetVal.Value != Temp) - { - stubManager.Write("\nRegister F3_GPI_01_Direct new value: "); - stubManager.WriteHex(RetVal.Value, 4); - - Temp1=RetVal.Value & 0x0008; - if (Temp1 !=0x0008) - stubManager.Write("\nPANSW6"); - - - Temp1=RetVal.Value & 0x0010; - if (Temp1 !=0x0010) - stubManager.Write("\nPANSW5"); - - Temp1=RetVal.Value & 0x0020; - if (Temp1 !=0x0020) - stubManager.Write("\nPANSW4"); - - Temp1=RetVal.Value & 0x0040; - if (Temp1 !=0x0040) - stubManager.Write("\nPANSW3"); - - Temp1=RetVal.Value & 0x0080; - if (Temp1 !=0x0080) - stubManager.Write("\nPANSW2"); - - Temp1=RetVal.Value & 0x0100; - if (Temp1 !=0x0100) - stubManager.Write("\nPANSW1"); - - - counter = counter + 1; - } - Thread.Sleep(100); - Temp = RetVal.Value; - - } - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/ssr9-chiller.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/ssr9-chiller.cs deleted file mode 100644 index 28d6f69fc..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Other/ssr9-chiller.cs +++ /dev/null @@ -1,38 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -include "..\..\Defines\Tango_Defines_Basic.cs" -include "Tango_Defines_SSR.cs" -//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\Software\Stub_scripts\Tango_Defines_Basic.cs" -//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\Software\Stub_scripts\Interfaces\Tango_Defines_SSR.cs" - -//---------------------- -const Int32 I2C_ID = 2; -//const Int32 I2C_Slave_Add = 0x46; //must be 0x40, 0x44 or 0x46 -//---------------------- - - -public void OnExecute(StubManager stubManager) -{ - - - UInt32 temp=0; - - - //Write F2_GPO_CHILLER_SSR9_CTRL SSR/SSR no. 9 - SetBit (FPGA2, F2_CTRL, 2, 1); - stubManager.Write("\tTesting SSR no. 9\tCHILLER\t"); - Thread.Sleep(10000); - SetBit (FPGA2, F2_CTRL, 2, 0); - - -} diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Get_PowerStep01_Parameters.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Get_PowerStep01_Parameters.cs deleted file mode 100644 index ebe0dbf0f..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Get_PowerStep01_Parameters.cs +++ /dev/null @@ -1,227 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -//unmark Auto logging ! - -const Int32 x_POWERSTEP01_CONFIG = 0x1A; -const Int32 x_POWERSTEP01_STATUS = 0x1B; -const Int32 x_POWERSTEP01_GATECFG1 = 0x18; -const Int32 x_POWERSTEP01_GATECFG2 = 0x19; - -const Int32 x_ABS_POS = 0x01; -const Int32 x_EL_POS = 0x02; -const Int32 x_MARK = 0x03; -const Int32 x_SPEED = 0x04; -const Int32 x_ACC = 0x05; -const Int32 x_DEC = 0x06; -const Int32 x_MAX_SPEED = 0x07; -const Int32 x_MIN_SPEED = 0x08; -const Int32 x_FS_SPD = 0x15; -const Int32 x_KVAL_HOLD = 0x09; -const Int32 x_KVAL_RUN = 0x0A; -const Int32 x_KVAL_ACC = 0x0B; -const Int32 x_KVAL_DEC = 0x0C; -const Int32 x_INT_SPD = 0x0D; -const Int32 x_ST_SLP = 0x0E; -const Int32 x_FN_SLP_ACC = 0x0F; -const Int32 x_FN_SLP_DEC = 0x10; -const Int32 x_K_THERM = 0x11; -const Int32 x_ADC_OUT = 0x12; -const Int32 x_OCD_TH = 0x13; -const Int32 x_STALL_TH = 0x14; -const Int32 x_STEP_MODE = 0x16; -const Int32 x_ALARM_EN = 0x17; -const Int32 x_CONFIG = 0x18; -const Int32 x_STATUS = 0x19; -//------------------------------- -const Int32 x_GET_PARAM = 0x20; -//------------------------------- -const Int32 Max_Motor_ID = 25; - -string[] Motor_ID = new string[30]; - - -Motor_ID[0] ="DH_CLEANHEAD "; -Motor_ID[1] ="DH_CLEANMECH "; -Motor_ID[2] ="DH_LID "; -Motor_ID[3] ="DRYER_DRIVING"; -Motor_ID[4] ="DRYER_LID "; -Motor_ID[5] ="DRYER_LOADARM"; -Motor_ID[6] ="DISPENCER_1 "; -Motor_ID[7] ="DISPENCER_2 "; -Motor_ID[8] ="DISPENCER_3 "; -Motor_ID[9] ="DISPENCER_4 "; -Motor_ID[10]="DISPENCER_5 "; -Motor_ID[11]="DISPENCER_6 "; -Motor_ID[12]="DISPENCER_7 "; -Motor_ID[13]="DISPENCER_8 "; -Motor_ID[14]="SCREW "; -Motor_ID[15]="WINDER "; -Motor_ID[16]="LDANCER1 "; -Motor_ID[17]="LDANCER2 "; -Motor_ID[18]="LDRIVING "; -Motor_ID[19]="LLODING "; -Motor_ID[20]="LPIVOT "; -Motor_ID[21]="RDANCER "; -Motor_ID[22]="RDRIVING "; -Motor_ID[23]="RLOADARM "; -Motor_ID[24]="RLODING "; -Motor_ID[25]="SPARE1_1 "; -Motor_ID[26]="SPARE1_2 "; -Motor_ID[27]="SPARE2_1 "; -Motor_ID[28]="SPARE2_2 "; -Motor_ID[29]="SPARE3 "; - -public void OnExecute(StubManager stubManager) -{ - - var i = stubManager.ShowResponseWindow("Please Enter Motor ID:"); - - stubManager.Write("Motor_ID:\t\t "); - stubManager.Write(i); - stubManager.Write("\n"); - - stubManager.Write("ABS_POS:\t\t"); - var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ABS_POS)<<24, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("EL_POS:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_EL_POS)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("MARK:\t\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MARK)<<24, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("SPEED:\t\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_SPEED)<<24, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("ACC:\t\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ACC)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("DEC:\t\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_DEC)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("MAX_SPEED:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MAX_SPEED)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("MIN_SPEED:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MIN_SPEED)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("FS_SPD:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FS_SPD)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("KVAL\\TVAL_HOLD:\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_HOLD)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("KVAL\\TVAL_RUN:\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_RUN)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("KVAL\\TVAL_ACC:\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_ACC)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("KVAL\\TVAL_DEC:\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_DEC)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("INT_SPEED:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_INT_SPD)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("ST_SLP\\T_FAST:\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ST_SLP)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("FN_SLP_ACC\\TON_MIN:\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_ACC)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("FN_SLP_DEC\\TOFF_MIN:"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_DEC)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("K_THERM:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_K_THERM)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("ADC_OUT:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ADC_OUT)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("OCD_TH:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_OCD_TH)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("STALL_TH:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STALL_TH)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("STEP_MODE:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("ALARM_EN:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ALARM_EN)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("GATECFG1:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG1)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("GATECFG2:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG2)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("CONFIG:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_CONFIG)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("STATUS:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_STATUS)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Logger Temprature/Book4.xlsx b/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Logger Temprature/Book4.xlsx Binary files differdeleted file mode 100644 index ef3a94e64..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Logger Temprature/Book4.xlsx +++ /dev/null diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Logger Temprature/Copy of Book4.xlsx b/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Logger Temprature/Copy of Book4.xlsx Binary files differdeleted file mode 100644 index 6ea3df3ad..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Logger Temprature/Copy of Book4.xlsx +++ /dev/null diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Logger Temprature/Logger data.xlsx b/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Logger Temprature/Logger data.xlsx Binary files differdeleted file mode 100644 index 0d4bd4d8a..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Logger Temprature/Logger data.xlsx +++ /dev/null diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Motor_GMotor_Get_Param_Powerstep01_rev2.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Motor_GMotor_Get_Param_Powerstep01_rev2.cs deleted file mode 100644 index 505444080..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Motor_GMotor_Get_Param_Powerstep01_rev2.cs +++ /dev/null @@ -1,292 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -//unmark Auto logging ! - -//General Configuration -const Int32 x_ABS_POS = 0x01; -const Int32 x_EL_POS = 0x02; -const Int32 x_MARK = 0x03; -const Int32 x_SPEED = 0x04; -const Int32 x_ACC = 0x05; -const Int32 x_DEC = 0x06; -const Int32 x_MAX_SPEED = 0x07; -const Int32 x_MIN_SPEED = 0x08; -const Int32 x_ADC_OUT = 0x12; -const Int32 x_OCD_TH = 0x13; -const Int32 x_FS_SPD = 0x15; -const Int32 x_STEP_MODE = 0x16; -const Int32 x_ALARM_EN = 0x17; -const Int32 x_POWERSTEP01_GATECFG1 = 0x18; -const Int32 x_POWERSTEP01_GATECFG2 = 0x19; -const Int32 x_POWERSTEP01_CONFIG = 0x1A; -const Int32 x_POWERSTEP01_STATUS = 0x1B; -//VOLTAGE / CURRENT -const Int32 x_KTVAL_HOLD = 0x09; -const Int32 x_KTVAL_RUN = 0x0A; -const Int32 x_KTVAL_ACC = 0x0B; -const Int32 x_KTVAL_DEC = 0x0C; -const Int32 x_ST_SLP_T_FAST = 0x0E; -const Int32 x_FN_SLP_ACC_TON_MIN = 0x0F; -const Int32 x_FN_SLP_DEC_TOFF_MIN = 0x10; - -const Int32 x_INT_SPD = 0x0D;//voltage -const Int32 x_K_THERM = 0x11;//VOLTAGE -const Int32 x_STALL_TH = 0x14;//VOLTAGE - -//------------------------------- -const Int32 x_GET_PARAM = 0x20; -//------------------------------- -Int32 Start_index = 0; // start from motor - -const Int32 Max_Motor_ID = 25; - -string[] Motor_ID = new string[30]; - - -Motor_ID[0] ="DH_CLEANHEAD "; -Motor_ID[1] ="DH_CLEANMECH "; -Motor_ID[2] ="DH_LID "; -Motor_ID[3] ="DRYER_DRIVING"; -Motor_ID[4] ="DRYER_LID "; -Motor_ID[5] ="DRYER_LOADARM"; -Motor_ID[6] ="DISPENCER_1 "; -Motor_ID[7] ="DISPENCER_2 "; -Motor_ID[8] ="DISPENCER_3 "; -Motor_ID[9] ="DISPENCER_4 "; -Motor_ID[10]="DISPENCER_5 "; -Motor_ID[11]="DISPENCER_6 "; -Motor_ID[12]="DISPENCER_7 "; -Motor_ID[13]="DISPENCER_8 "; -Motor_ID[14]="SCREW "; -Motor_ID[15]="WINDER "; -Motor_ID[16]="LDANCER1 "; -Motor_ID[17]="LDANCER2 "; -Motor_ID[18]="LDRIVING "; -Motor_ID[19]="LLODING "; -Motor_ID[20]="LPIVOT "; -Motor_ID[21]="RDANCER "; -Motor_ID[22]="RDRIVING "; -Motor_ID[23]="RLOADARM "; -Motor_ID[24]="RLODING "; -Motor_ID[25]="SPARE1_1 "; -Motor_ID[26]="SPARE1_2 "; -Motor_ID[27]="SPARE2_1 "; -Motor_ID[28]="SPARE2_2 "; -Motor_ID[29]="SPARE3 "; - - - - -public void OnExecute(StubManager stubManager) -{ - Int32 i = 0; - - Int32 motname = 0; -//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000380 , 0x06b9); //7ff mati -//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000390 , 0x003f); -//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000550 , 0x0003); //ff mati -//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000b80 , 0x001f); - - for (i = Start_index; i < Max_Motor_ID; i++) - { - - if((i%8 ==0) ) - { - stubManager.Write("\n\n"); - stubManager.Write("MoTor\t\t\tMIN_SPEED\tMAX_SPEED\tSTEP_MODE\tACC\t\tDEC\t\tKTVAL_HOLD\tKTVAL_RUN\tTKVAL_ACC\tTKVAL_DEC\tOCD_TH\t\tSTALL_TH\tFS_SPD\n"); - stubManager.Write("------\t\t\t--------\t--------\t----------\t---\t\t---\t\t----------\t---------\t---------\t---------\t------\t\t--------\t------\n"); - } - //stubManager.Write(i); - - stubManager.Write(Motor_ID[i]); - stubManager.Write("\t\t"); - - var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MIN_SPEED)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MAX_SPEED)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ACC)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_DEC)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KTVAL_HOLD)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KTVAL_RUN)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KTVAL_ACC)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KTVAL_DEC)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_OCD_TH)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STALL_TH)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FS_SPD)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - stubManager.Write("\n\n"); - - } - - - - for (i = Start_index; i < Max_Motor_ID; i++) - { - - if((i%8 ==0) ) - { - stubManager.Write("\n\n"); - - stubManager.Write("MoTor\t\t\tINT_SPD\tST_SLP\t\tSLP_ACC_TON_MIN\tSLP_DEC_TOFF_MIN\n"); - stubManager.Write("-----\t\t\t-------\t------\t\t---------------\t----------------\n"); - } - - stubManager.Write(Motor_ID[i]); - -// stubManager.Write(i); - stubManager.Write("\t\t"); - - var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_INT_SPD)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ST_SLP_T_FAST)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_ACC_TON_MIN)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_DEC_TOFF_MIN)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - stubManager.Write("\n\n"); - - } - - - for (i = Start_index; i < Max_Motor_ID; i++) - { - - if((i%8 ==0) ) - { - stubManager.Write("\n\n"); - - stubManager.Write("MoTor\t\t\tPS01_CONFIG\t\tPS01_STATUS\t\tPS01_GATECFG1\t\tPS01_GATECFG2\n"); - stubManager.Write("-----\t\t\t------------\t\t-----------\t\t-------------\t\t------------\n"); - } - - stubManager.Write(Motor_ID[i]); - stubManager.Write("\t\t"); - - var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_CONFIG)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_STATUS)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG1)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG2)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n\n"); - - - } - - for (i = Start_index; i < Max_Motor_ID; i++) - { - - if((i%8 ==0) ) - { - stubManager.Write("\n\n"); - - stubManager.Write("MoTor\t\t\tABS_POS\tEL_POS\t\tMARK\t\tSPEED\t\tALARM_EN\tK_THERM\tADC_OUT\tDriver_Type\n"); - stubManager.Write("-----\t\t\t-------\t------\t\t----\t\t-----\t\t--------\t--------\t------\t\t---------\n"); - } - - stubManager.Write(Motor_ID[i]); - - stubManager.Write("\t\t"); - - var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ABS_POS)<<24, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_EL_POS)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MARK)<<24, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_SPEED)<<24, 0, 0); - stubManager.WriteHex((response.RecivedData * 1000.0 / 67108.0),4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ALARM_EN)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_K_THERM)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ADC_OUT)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - if( response.RecivedData > 0x15 && response.RecivedData < 0x1c ) - stubManager.Write("\t\tDual_Driver"); - else if ( response.RecivedData > 0x0b && response.RecivedData < 0x12 ) - stubManager.Write("\t\tVolage_Driver"); - else if ( response.RecivedData > 8 && response.RecivedData < 0x0a) - stubManager.Write("\t\tCurrent_Driver"); - else - stubManager.Write("\t\tNo_Driver"); - - stubManager.Write("\n\n"); - - } - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Motor_GMotor_Get_Param_Powerstep01_rev3.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Motor_GMotor_Get_Param_Powerstep01_rev3.cs deleted file mode 100644 index 384c079fa..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Motor_GMotor_Get_Param_Powerstep01_rev3.cs +++ /dev/null @@ -1,237 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -//unmark Auto logging ! - -//General Configuration -const Int32 x_ABS_POS = 0x01; -const Int32 x_EL_POS = 0x02; -const Int32 x_MARK = 0x03; -const Int32 x_SPEED = 0x04; -const Int32 x_ACC = 0x05; -const Int32 x_DEC = 0x06; -const Int32 x_MAX_SPEED = 0x07; -const Int32 x_MIN_SPEED = 0x08; -//VOLTAGE / CURRENT -const Int32 x_KTVAL_HOLD = 0x09; -const Int32 x_KTVAL_RUN = 0x0A; -const Int32 x_KTVAL_ACC = 0x0B; -const Int32 x_KTVAL_DEC = 0x0C; -const Int32 x_INT_SPD = 0x0D;//voltage -const Int32 x_ST_SLP_T_FAST = 0x0E; -const Int32 x_FN_SLP_ACC_TON_MIN = 0x0F; -const Int32 x_FN_SLP_DEC_TOFF_MIN = 0x10; -const Int32 x_K_THERM = 0x11;//VOLTAGE -const Int32 x_ADC_OUT = 0x12; -const Int32 x_OCD_TH = 0x13; -const Int32 x_STALL_TH = 0x14;//VOLTAGE -const Int32 x_FS_SPD = 0x15; -const Int32 x_STEP_MODE = 0x16; -const Int32 x_ALARM_EN = 0x17; -const Int32 x_POWERSTEP01_GATECFG1 = 0x18; -const Int32 x_POWERSTEP01_GATECFG2 = 0x19; -const Int32 x_POWERSTEP01_CONFIG = 0x1A; -const Int32 x_POWERSTEP01_STATUS = 0x1B; -//VOLTAGE / CURRENT - -//------------------------------- -const Int32 x_GET_PARAM = 0x20; -//------------------------------- -Int32 Start_index = 0; // start from motor - -const Int32 Max_Motor_ID = 25; - -string[] Motor_ID = new string[30]; - - -Motor_ID[0] ="DH_CLEANHEAD "; -Motor_ID[1] ="DH_CLEANMECH "; -Motor_ID[2] ="DH_LID "; -Motor_ID[3] ="DRYER_DRIVING"; -Motor_ID[4] ="DRYER_LID "; -Motor_ID[5] ="DRYER_LOADARM"; -Motor_ID[6] ="DISPENCER_1 "; -Motor_ID[7] ="DISPENCER_2 "; -Motor_ID[8] ="DISPENCER_3 "; -Motor_ID[9] ="DISPENCER_4 "; -Motor_ID[10]="DISPENCER_5 "; -Motor_ID[11]="DISPENCER_6 "; -Motor_ID[12]="DISPENCER_7 "; -Motor_ID[13]="DISPENCER_8 "; -Motor_ID[14]="SCREW "; -Motor_ID[15]="WINDER "; -Motor_ID[16]="LDANCER1 "; -Motor_ID[17]="LDANCER2 "; -Motor_ID[18]="LDRIVING "; -Motor_ID[19]="LLODING "; -Motor_ID[20]="LPIVOT "; -Motor_ID[21]="RDANCER "; -Motor_ID[22]="RDRIVING "; -Motor_ID[23]="RLOADARM "; -Motor_ID[24]="RLODING "; -Motor_ID[25]="SPARE1_1 "; -Motor_ID[26]="SPARE1_2 "; -Motor_ID[27]="SPARE2_1 "; -Motor_ID[28]="SPARE2_2 "; -Motor_ID[29]="SPARE3 "; - - - - -public void OnExecute(StubManager stubManager) -{ - Int32 i = 0; - - Int32 motname = 0; -//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000380 , 0x06b9); //7ff mati -//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000390 , 0x003f); -//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000550 , 0x0003); //ff mati -//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000b80 , 0x001f); - - -// stubManager.Write("\n\n"); - stubManager.Write("MoTor\tABS_POS\tEL_POS\tMARK\tSPEED\tACC\tDEC\tMAX_SPEED\tMIN_SPEED\tKTVAL_HOLD\tKTVAL_RUN\tTKVAL_ACC\tTKVAL_DEC\tINT_SPD\tT_FAST\t TON_MIN\tTOFF_MIN\tK_THERM\tADC_OUT\tOCD_TH\tSTALL_TH\tFS_SPD\tSTEP_MODE\tALARM_EN\tGATECFG1\tGATECFG2\tCONFIG\tSTATUS\n"); -// stubManager.Write("------\t\t\t--------\t--------\t----------\t---\t\t---\t\t----------\t---------\t---------\t---------\t------\t\t--------\t------\n"); - - - - for (i = Start_index; i < Max_Motor_ID; i++) - { - -// if((i%8 ==0) ) -// { -// } - //stubManager.Write(i); - - stubManager.Write(Motor_ID[i]); - stubManager.Write("\t\t"); - - var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ABS_POS)<<24, 0, 0); - stubManager.WriteHex(response.RecivedData,6); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_EL_POS)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t"); - - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MARK)<<24, 0, 0); - stubManager.WriteHex(response.RecivedData,6); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_SPEED)<<24, 0, 0); - stubManager.WriteHex(response.RecivedData,6); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ACC)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_DEC)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MAX_SPEED)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MIN_SPEED)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t"); - - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KTVAL_HOLD)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KTVAL_RUN)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KTVAL_ACC)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KTVAL_DEC)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_INT_SPD)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t"); - - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ST_SLP_T_FAST)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_ACC_TON_MIN)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_DEC_TOFF_MIN)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t"); - - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_K_THERM)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ADC_OUT)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_OCD_TH)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t"); - - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STALL_TH)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FS_SPD)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ALARM_EN)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG1)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG2)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_CONFIG)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\t"); - - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_STATUS)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - - - - } - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Set_PowerStep01_Parameters.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Set_PowerStep01_Parameters.cs deleted file mode 100644 index 9571deb9e..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Set_PowerStep01_Parameters.cs +++ /dev/null @@ -1,230 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -//unmark Auto logging ! - -const Int32 x_POWERSTEP01_CONFIG = 0x1A; -const Int32 x_POWERSTEP01_STATUS = 0x1B; -const Int32 x_POWERSTEP01_GATECFG1 = 0x18; -const Int32 x_POWERSTEP01_GATECFG2 = 0x19; - -const Int32 x_ABS_POS = 0x01; -const Int32 x_EL_POS = 0x02; -const Int32 x_MARK = 0x03; -const Int32 x_SPEED = 0x04; -const Int32 x_ACC = 0x05; -const Int32 x_DEC = 0x06; -const Int32 x_MAX_SPEED = 0x07; -const Int32 x_MIN_SPEED = 0x08; -const Int32 x_FS_SPD = 0x15; -const Int32 x_KVAL_HOLD = 0x09; -const Int32 x_KVAL_RUN = 0x0A; -const Int32 x_KVAL_ACC = 0x0B; -const Int32 x_KVAL_DEC = 0x0C; -const Int32 x_INT_SPD = 0x0D; -const Int32 x_ST_SLP = 0x0E; -const Int32 x_FN_SLP_ACC = 0x0F; -const Int32 x_FN_SLP_DEC = 0x10; -const Int32 x_K_THERM = 0x11; -const Int32 x_ADC_OUT = 0x12; -const Int32 x_OCD_TH = 0x13; -const Int32 x_STALL_TH = 0x14; -const Int32 x_STEP_MODE = 0x16; -const Int32 x_ALARM_EN = 0x17; -const Int32 x_CONFIG = 0x18; -const Int32 x_STATUS = 0x19; -//------------------------------- -const Int32 x_GET_PARAM = 0x20; -const Int32 x_SET_PARAM = 0x00; - -//------------------------------- -const Int32 Max_Motor_ID = 25; - -string[] Motor_ID = new string[30]; - - -Motor_ID[0] ="DH_CLEANHEAD "; -Motor_ID[1] ="DH_CLEANMECH "; -Motor_ID[2] ="DH_LID "; -Motor_ID[3] ="DRYER_DRIVING"; -Motor_ID[4] ="DRYER_LID "; -Motor_ID[5] ="DRYER_LOADARM"; -Motor_ID[6] ="DISPENCER_1 "; -Motor_ID[7] ="DISPENCER_2 "; -Motor_ID[8] ="DISPENCER_3 "; -Motor_ID[9] ="DISPENCER_4 "; -Motor_ID[10]="DISPENCER_5 "; -Motor_ID[11]="DISPENCER_6 "; -Motor_ID[12]="DISPENCER_7 "; -Motor_ID[13]="DISPENCER_8 "; -Motor_ID[14]="SCREW "; -Motor_ID[15]="WINDER "; -Motor_ID[16]="LDANCER1 "; -Motor_ID[17]="LDANCER2 "; -Motor_ID[18]="LDRIVING "; -Motor_ID[19]="LLODING "; -Motor_ID[20]="LPIVOT "; -Motor_ID[21]="RDANCER "; -Motor_ID[22]="RDRIVING "; -Motor_ID[23]="RLOADARM "; -Motor_ID[24]="RLODING "; -Motor_ID[25]="SPARE1_1 "; -Motor_ID[26]="SPARE1_2 "; -Motor_ID[27]="SPARE2_1 "; -Motor_ID[28]="SPARE2_2 "; -Motor_ID[29]="SPARE3 "; - -public void OnExecute(StubManager stubManager) -{ - - var i = stubManager.ShowResponseWindow("Please Enter Motor ID:"); - - stubManager.Write("Motor_ID:\t\t "); - stubManager.Write(i); - stubManager.Write("\n"); -/* - stubManager.Write("ABS_POS:\t\t"); - var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ABS_POS)<<24, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("EL_POS:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_EL_POS)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("MARK:\t\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MARK)<<24, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("SPEED:\t\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_SPEED)<<24, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("ACC:\t\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ACC)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("DEC:\t\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_DEC)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("MAX_SPEED:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MAX_SPEED)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("MIN_SPEED:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MIN_SPEED)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("FS_SPD:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FS_SPD)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("KVAL\\TVAL_HOLD:\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_HOLD)<<8+0x5, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); -*/ - stubManager.Write("KVAL\\TVAL_RUN:\t"); - var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_RUN)<<8+0x20 , 0, 0) ; //3v - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("KVAL\\TVAL_ACC:\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_ACC)<<8+0x20 , 0, 0); //3v - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("KVAL\\TVAL_DEC:\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_DEC)<<8+0x20 , 0, 0); //3v - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); -/* - stubManager.Write("INT_SPEED:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_INT_SPD)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); -*/ - stubManager.Write("ST_SLP\\T_FAST:\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ST_SLP)<<8, 0, 0); //0 - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("FN_SLP_ACC\\TON_MIN:\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_ACC)<<8, 0, 0); //0 - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("FN_SLP_DEC\\TOFF_MIN:"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_DEC)<<8, 0, 0); //00 - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); -/* - stubManager.Write("K_THERM:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_K_THERM)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("ADC_OUT:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ADC_OUT)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("OCD_TH:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_OCD_TH)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("STALL_TH:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STALL_TH)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); -*/ - stubManager.Write("STEP_MODE:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STEP_MODE)<<8+0x07, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); -/* - stubManager.Write("ALARM_EN:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ALARM_EN)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("GATECFG1:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG1)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("GATECFG2:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG2)<<8, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("CONFIG:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_CONFIG)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - - stubManager.Write("STATUS:\t\t"); - response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_STATUS)<<16, 0, 0); - stubManager.WriteHex(response.RecivedData,4); - stubManager.Write("\n"); - */ -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/RTFU/RTFU_JIG.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/RTFU/RTFU_JIG.cs deleted file mode 100644 index 9ffd0d9d5..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/RTFU/RTFU_JIG.cs +++ /dev/null @@ -1,537 +0,0 @@ -using System; -using System.Text; -using System.IO; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; -//-------------------------------------------------------------------------------- -//-------------------------------------------------------------------------------- -//string path1="P:\\Scripts\\Assemblies\\RTFU\\RTFULog\\"; -//string path2="C:\\RTFULog\\"; - -//string File_Name1 ; -//string Status; - -//-------------------DEFINE Motors------------------ -const Int32 RDANCER_Motor = 21; -const Int32 RDRIVING_Motor = 22; -const Int32 RLOADING_Motor = 24; - -//-------------------DEFINE Motors Parameters------------------ - -const Int32 F1_MOTO_RLOADING_TX1 = 0x60000202; -const Int32 F1_MOTO_RLOADING_TX0 = 0x60000200; -const Int32 F1_MOTO_RLOADING_RX1 = 0x60000206; -const Int32 F1_MOTO_RLOADING_RX0 = 0x60000204; - -//-------------------DEFINE Limit Switch--------------- -const Int32 F1_LS_03_Direct =0x60000040; - -const Int32 F1_LS_RLOADMOTOR_UP = 0x0040 ; -const Int32 F1_LS_RLOADMOTOR_DN = 0x0080 ; -const Int32 F1_LS_RDANCER_UP = 0x0100; -const Int32 F1_LS_RDANCER_DOWN = 0x0200; -const Int32 F1_LS_RLOADRAM_DOWN = 0x0020; - -const Int32 F1_RDANCER_ROTENC_DATA_p_RX_lsb = 0x600001a0; -const Int32 F1_RDANCER_ROTENC_DATA_p_RX_msb = 0x600001a2; -const Int32 F1_RDANCER_ROTENC_DATA_p_TX = 0x600001ae; - - -const int UNIT_UNDER_TEST=3+1+5; -//-------------------------------------------------------------------------------- -string path1="P:\\Scripts\\Assemblies\\RTFU\\RTFULog\\"; -string path2="C:\\RTFULog\\"; - -string File_Name1 ; -string Status; -//--------------------------- - -string [,] Units_status = new string[UNIT_UNDER_TEST,2] { - {"LS_RLOADMOTOR_Up","Not Test"}, //0 - {"LS_RLOADMOTOR_DOWN","Not Test"}, //1 - {"RLOADING_Motor","Not Test"}, //2 - {"DRIVING_Motor","Not Test"}, //3 - {"LS_RDANCER_DOWN","Not Test"}, //4 - {"LS_RDANCER_UP","Not Test"}, //5 - {"LS_RLOADRAM_DOWN","Not Test"}, //6 - {"RDANCER_Motor","Not Test"}, //7 - {"RDANCER_ROTENC","Not Test"}, //8 - }; - - - -//----------------------------------------------------- -string RTFU_Sn; -//-------------------------------------------------------------------------------- - -public void OnExecute(StubManager stubManager) -{ -string path=""; - Form form1 = new Form(); - -// Set the caption bar text of the form. - form1.TopMost = true; - form1.Text = "RTFU Test"; - form1.FormBorderStyle = FormBorderStyle.FixedDialog; - form1.MaximizeBox = false; - form1.MinimizeBox = false; - form1.StartPosition = FormStartPosition.CenterScreen; - form1.AutoSize = true; - form1.AutoSizeMode = AutoSizeMode.GrowAndShrink; -// Create buttons to Run. - Button button1 = new Button () - { - Width = 100, - Height = 100, - }; - button1.Text = "Run"; - button1.Location = new Point (40, 100); - form1.Controls.Add(button1); -//-----RTFU Serial Number ----------- - - Label Label1 = new Label () - { - Width = 150, - Height = 20, - Text =" RTFU S/N" - }; - Label1.Location = new Point (30, 10); - form1.Controls.Add(Label1); - TextBox TextBox1 = new TextBox () - { - Width = 100, - Height = 10, - Text ="" - }; - TextBox1.Location = new Point (40, 40); - form1.Controls.Add(TextBox1); - //----------LOCATION---------- - - Label Label3 = new Label () - { - Width = 150, - Height = 20, - Text ="LOCATION" - }; -Label3.Location = new Point (350, 10); - form1.Controls.Add(Label3); - - - -TextBox TextBox3 = new TextBox () - { - Width = 100, - Height = 10, - Text ="" - }; -TextBox3.Location = new Point (360, 40); - form1.Controls.Add(TextBox3); - -//-------------------------------------------------------------------------------- - - stubManager.Write("Counter is 2 \n"); - - button1.Click += (_,__) => - - { - if (!Directory.Exists(path1)) - { - path=path2; - if (!Directory.Exists(path2)) - Directory.CreateDirectory(path2); - } - else - path=path1; - - File_Name1=path + TextBox1.Text +"_RTFU_" + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".log" ; - - - stubManager.Write(File_Name1 +"\n"); - stubManager.WriteToFile(File_Name1,DateTime.Now +" " ); - stubManager.Write(DateTime.Now +"\n" ); - - stubManager.AppendToFile(File_Name1,"RTFU Test Report" ); - stubManager.Write("RTFU Test Report\n" ); - - stubManager.AppendToFile(File_Name1,"RTFU S/N: \t" + TextBox1.Text ); - stubManager.Write("RTFU S/N:" + TextBox1.Text +"\n" ); - - - stubManager.AppendToFile(File_Name1,"Location:\t" + TextBox3.Text ); - stubManager.Write("Location:" + TextBox3.Text +"\n" ); - - - - Label Label5 = new Label () - { - Width = 120, - Height =100, - Text = "" - }; - Label5.Location = new Point (300, 100); - Label5.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; - - Label5.Text="Pros"; - Label5.Font = new Font("Arial", 24,FontStyle.Bold); - form1.Controls.Add(Label5); - - -//------------------------------- start test ----------- - Test_RLOADING_RTFU(); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading high z - Thread.Sleep(100); - Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x14000000); //set kval ran to 0x14,0.65A - - Test_RDRIVING_RTFU(); - Test_DANCER_RTFU(); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RDANCER_Motor, 3); //hold Rloading high z - - Status=write_to_file(); - - Label5.Text=Status; - TextBox1.Text=""; - }; - - form1.ShowDialog(); - - return ; - } - //------------------------------------ -int Test_RLOADING_RTFU() -{ - int temp=1; - int counter; - - Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x2c000000); //set kval ran to 0x2c- 1.3A - Thread.Sleep(100); - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RLOADING_Motor, true,100); //move Rloading down - Thread.Sleep(3000); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading high z - Thread.Sleep(1000); -//------------------------------------------ check F1_LS_RLOADMOTOR_up------------------------------------------------ - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //read LS - if ((response.Value & F1_LS_RLOADMOTOR_UP) !=F1_LS_RLOADMOTOR_UP ) //if LS_RLOADMOTOR_UP is up then error - { - DialogResult result = MessageBox.Show("Did RLOADIN MOTOR Move?", "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.Yes) - { - Units_status[0,1]="Fail"; - stubManager.Write("LS_RLOADMOTOR_UP\tFail\n"); - return 0; - } - else - { - Units_status[2,1]="Fail"; - stubManager.Write("RLOADMOTOR\tFail\n"); - return 0; - } - } - -//----------------------------------------- mov RLOADING up ------------------------------------------------- - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RLOADING_Motor,false,100); //move Rloading up - counter =0; - while ( counter < 150) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if LS_RLOADMOTOR_UP is up then move down - if ((response.Value & F1_LS_RLOADMOTOR_UP) != F1_LS_RLOADMOTOR_UP ) - counter=250; - - Thread.Sleep(100); - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading high z - - if (counter == 150) - { - Units_status[0,1]="Fail"; - stubManager.Write("LS_RLOADMOTOR_UP\tFail\n"); - return 0; - } - DialogResult result1 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo); - if(result1 == DialogResult.No) - { - Units_status[0,1]="Fail"; - stubManager.Write("LS_RLOADMOTOR_UP Not calibrate\n"); - return 0; - } - Units_status[0,1]="Pass"; - Units_status[2,1]="Pass"; - -//------------------------------------------ check F1_LS_RLOADMOTOR_DN------------------------------------------------ - - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //read LS - - if ((response.Value & F1_LS_RLOADMOTOR_DN) !=F1_LS_RLOADMOTOR_DN ) //if LS_RLOADMOTOR_DN is up then error - { - Units_status[1,1]="Fail"; - stubManager.Write("LS_RLOADMOTOR_DN\tFail\n"); - return 0; - } -//------------------------------------------ mov RLOADING dn ------------------------------------------------ - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RLOADING_Motor, true,100); //move Rloading down - counter =0; - while ( counter < 150) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if LS_RLOADMOTOR_UP is up then move down - if ((response.Value & F1_LS_RLOADMOTOR_DN) != F1_LS_RLOADMOTOR_DN ) - counter=250; - - Thread.Sleep(100); - } - - if (counter == 150) - { - Units_status[1,1]="Fail"; - stubManager.Write("LS_RLOADMOTOR_DN\tFail\n"); - return 0; - } - DialogResult result2 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo); - if(result2 == DialogResult.No) - { - Units_status[1,1]="Fail"; - stubManager.Write("LS_RLOADMOTOR_DN Not calibrate\n"); - return 0; - } - Units_status[1,1]="Pass"; - stubManager.Write("RLOADMOTOR\tPass\n"); - - return 1 ; - -} - -//---------------------------------- - -Int32 ReadEncoder() -{ - Int32 temp; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F1_RDANCER_ROTENC_DATA_p_TX, 0x0000); //triggers a TX transmission - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_RDANCER_ROTENC_DATA_p_RX_lsb); - var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_RDANCER_ROTENC_DATA_p_RX_msb); - - temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff)); - - - return temp; -} -//-------------------------------------------------------------------------------- -int Test_DANCER_RTFU() -{ - int counter; - Int32 temp; - Int32 temp1; - -//------------------------------------------ check F1_LS_RDANCER_DOWN ------------------------------------------------ - - MessageBox.Show("Make sure RDANCER Doun"); - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //read LS - if ((response.Value & F1_LS_RDANCER_DOWN) !=F1_LS_RDANCER_DOWN ) //if F1_LS_RDANCER_DOWN is up then error - { - Units_status[4,1]="Fail"; - stubManager.Write("LS_RDANCER_DOWN\tFail\n"); - return 0; - } -//----------------------------------------- mov RDANCER_Motor up and check F1_LS_RDANCER_DOWN ------------------------------------------------- - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RDANCER_Motor,true,10); //move Rloading up - counter =0; - while ( counter < 150) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if LS_RLOADMOTOR_UP is up then move down - if ((response.Value & F1_LS_RDANCER_DOWN) != F1_LS_RDANCER_DOWN ) - counter=250; - - Thread.Sleep(100); - } - if (counter == 150) - { - Units_status[4,1]="Fail"; - stubManager.Write("LS_RDANCER_DOWN\tFail\n"); - return 0; - } - Units_status[4,1]="Pass"; - stubManager.Write("LS_RDANCER_DOWN\tPass\n"); - -//----------------------------------------- check F1_LS_RDANCER_UP ------------------------------------------------- - - if ((response.Value & F1_LS_RDANCER_UP) !=F1_LS_RDANCER_UP ) //if F1_LS_RDANCER_UP is up then error - { - Units_status[5,1]="Fail"; - stubManager.Write("LS_RDANCER_UP\tFail\n"); - return 0; - } - counter =0; - while ( counter < 150) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if F1_LS_RDANCER_UP is up then move down - if ((response.Value & F1_LS_RDANCER_UP) != F1_LS_RDANCER_UP ) - counter=250; - - Thread.Sleep(100); - } - if (counter == 150) - { - Units_status[5,1]="Fail"; - stubManager.Write("LS_RDANCER_UP\tFail\n"); - return 0; - } - Units_status[5,1]="Pass"; - stubManager.Write("LS_RDANCER_UP\tPass\n"); - -//----------------------------------------- check F1_LS_RLOADRAM_DOWN ------------------------------------------------- - - if ((response.Value & F1_LS_RLOADRAM_DOWN) !=F1_LS_RLOADRAM_DOWN ) //if F1_LS_RLOADRAM_DOWN is up then error - { - Units_status[6,1]="Fail"; - stubManager.Write("LS_RLOADRAM_DOWN\tFail\n"); - return 0; - } - counter =0; - while ( counter < 150) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if F1_LS_RLOADRAM_DOWN is up then move down - if ((response.Value & F1_LS_RLOADRAM_DOWN) != F1_LS_RLOADRAM_DOWN ) - counter=250; - - Thread.Sleep(100); - } - if (counter == 150) - { - Units_status[6,1]="Fail"; - stubManager.Write("LS_RLOADRAM_DOWN\tFail\n"); - return 0; - } - Units_status[6,1]="Pass"; - stubManager.Write("LS_RLOADRAM_DOWN\tPass\n"); - -//----------------------------------------- mov RDANCER_Motor down and check rdancer encoder ------------------------------------------------- - temp= ReadEncoder(); - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RDANCER_Motor,false,10); //move Rloading down - counter =0; - while ( counter < 150) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if LS_RLOADMOTOR_UP is up then move down - if ((response.Value & F1_LS_RDANCER_DOWN) != F1_LS_RDANCER_DOWN ) - counter=250; - - Thread.Sleep(100); - } - if (counter == 150) - { - Units_status[4,1]="Fail"; - stubManager.Write("LS_RDANCER_DOWN\tFail\n"); - return 0; - } - Units_status[7,1]="Pass"; - stubManager.Write("RDANCER_Motor\tPass\n"); - - temp1= ReadEncoder(); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RDANCER_Motor, 3); //hold Rloading high z - - stubManager.Write("temp="+temp + "\temp1="+temp1 +"\n"); - - DialogResult result = MessageBox.Show("SSI Dancer led is Green(not blinking)?", "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.No) - { - Units_status[8,1]="Fail"; - stubManager.Write("RDANCER_SSI\tFail\n"); - return 0; - } - - if (temp>temp1) - temp1=temp1+0x4000; - - temp1=temp1-temp; - if ((temp1> 15000) || (temp1 <1000)) - { - Units_status[8,1]="Fail"; - stubManager.Write("RDANCER_SSI\tFail\n"); - return 0; - } - Units_status[8,1]="Pass"; - stubManager.Write("RDANCER_SSI\tPass\n"); - - return 1; -} - - -//------------------------------------------------------------- -int Test_RDRIVING_RTFU() -{ - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RDRIVING_Motor, true,200); //move Rdriving clockwise - stubManager.Write("RDRIVING_Motor Motor rotate \n "); - - DialogResult result = MessageBox.Show("Are RDRIVING Motor rotate?", "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.No) - { - Units_status[3,1]="Fail"; - stubManager.Write("RDRIVING Motor not rotate\n"); - } - else - { - Units_status[3,1]="Pass"; - stubManager.Write("RDRIVING Motor rotate\n"); - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RDRIVING_Motor,3); //stop motor - - return 0; -} - - - -//-------------------------------------------------------------------------------- -int Motor_SetParam(Int32 HighAdr, Int32 LowAdr, Int32 ParaAddr, uint ParaData1) -{ - - Int32 Temp = 0; - Temp = (ParaAddr << 8 ) + ( (Int32) ParaData1 >> 24); - - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,HighAdr, (Temp & 0xffff)); - Temp = ((Int32)ParaData1 >> 8) & 0xffff; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,LowAdr, (Temp)); - - return 1; -} - //------------------------------------ -string write_to_file() -{ - stubManager.Write("write_to_file\n"); - -string Stemp="Pass"; - for (int i=0;i<UNIT_UNDER_TEST;i++) - { - stubManager.AppendToFile(File_Name1,Units_status[i,0]+"\t" + Units_status[i,1] ); - stubManager.Write(Units_status[i,0]+"\t" + Units_status[i,1]+"\n" ); - - if ((Units_status[i,1]=="Fail")||(Units_status[i,1]=="Not Test")) - Stemp="Fail"; - } - if (Stemp=="Fail") - { - stubManager.AppendToFile(File_Name1,"-------------RTFU Fail ------------ "); - stubManager.Write("-------------RTFU Fail ------------ "); - } - else - { - stubManager.AppendToFile(File_Name1,"-------------RTFU Pass ------------ )"); - stubManager.Write("-------------RTFU Pass ------------ "); - } - - return Stemp; - -} - diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/RTFU/RTFU_JIG1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/RTFU/RTFU_JIG1.cs deleted file mode 100644 index 500e153c4..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/RTFU/RTFU_JIG1.cs +++ /dev/null @@ -1,552 +0,0 @@ -using System; -using System.Text; -using System.IO; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; -//-------------------------------------------------------------------------------- -//-------------------------------------------------------------------------------- -//string path1="P:\\Scripts\\Assemblies\\RTFU\\RTFULog\\"; -//string path2="C:\\RTFULog\\"; - -//string File_Name1 ; -//string Status; - -//-------------------DEFINE Motors------------------ -const Int32 RDANCER_Motor = 21; -const Int32 RDRIVING_Motor = 22; -const Int32 RLOADING_Motor = 24; - -//-------------------DEFINE Motors Parameters------------------ - -const Int32 F1_MOTO_RLOADING_TX1 = 0x60000202; -const Int32 F1_MOTO_RLOADING_TX0 = 0x60000200; -const Int32 F1_MOTO_RLOADING_RX1 = 0x60000206; -const Int32 F1_MOTO_RLOADING_RX0 = 0x60000204; - -//-------------------DEFINE Limit Switch--------------- -const Int32 F1_LS_03_Direct =0x60000040; - -const Int32 F1_LS_RLOADMOTOR_UP = 0x0040 ; -const Int32 F1_LS_RLOADMOTOR_DN = 0x0080 ; -const Int32 F1_LS_RDANCER_UP = 0x0100; -const Int32 F1_LS_RDANCER_DOWN = 0x0200; -const Int32 F1_LS_RLOADRAM_DOWN = 0x0020; - -const Int32 F1_RDANCER_ROTENC_DATA_p_RX_lsb = 0x600001a0; -const Int32 F1_RDANCER_ROTENC_DATA_p_RX_msb = 0x600001a2; -const Int32 F1_RDANCER_ROTENC_DATA_p_TX = 0x600001ae; - - -const int UNIT_UNDER_TEST=3+1+5; -//-------------------------------------------------------------------------------- -string path1="P:\\Scripts\\Assemblies\\RTFU\\RTFULog\\"; -string path2="C:\\RTFULog\\"; - -string File_Name1 ; -string Status; -//--------------------------- - -string [,] Units_status = new string[UNIT_UNDER_TEST,2] { - {"LS_RLOADMOTOR_Up","Not Test"}, //0 - {"LS_RLOADMOTOR_DOWN","Not Test"}, //1 - {"RLOADING_Motor","Not Test"}, //2 - {"DRIVING_Motor","Not Test"}, //3 - {"LS_RDANCER_DOWN","Not Test"}, //4 - {"LS_RDANCER_UP","Not Test"}, //5 - {"LS_RLOADRAM_DOWN","Not Test"}, //6 - {"RDANCER_Motor","Not Test"}, //7 - {"RDANCER_ROTENC","Not Test"}, //8 - }; - - - -//----------------------------------------------------- -string RTFU_Sn; -//-------------------------------------------------------------------------------- - -public void OnExecute(StubManager stubManager) -{ -string path=""; - Form form1 = new Form(); - Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x14000000); //set kval ran to 0x14,0.65A - -// Set the caption bar text of the form. - form1.TopMost = true; - form1.Text = "RTFU Test"; - form1.FormBorderStyle = FormBorderStyle.FixedDialog; - form1.MaximizeBox = false; - form1.MinimizeBox = false; - form1.StartPosition = FormStartPosition.CenterScreen; - form1.AutoSize = true; - form1.AutoSizeMode = AutoSizeMode.GrowAndShrink; -// Create buttons to Run. - Button button1 = new Button () - { - Width = 100, - Height = 100, - }; - button1.Text = "Run"; - button1.Location = new Point (40, 100); - form1.Controls.Add(button1); -//-----RTFU Serial Number ----------- - - Label Label1 = new Label () - { - Width = 150, - Height = 20, - Text =" RTFU S/N" - }; - Label1.Location = new Point (30, 10); - form1.Controls.Add(Label1); - TextBox TextBox1 = new TextBox () - { - Width = 100, - Height = 10, - Text ="" - }; - TextBox1.Location = new Point (40, 40); - form1.Controls.Add(TextBox1); - //----------LOCATION---------- - - Label Label3 = new Label () - { - Width = 150, - Height = 20, - Text ="LOCATION" - }; -Label3.Location = new Point (350, 10); - form1.Controls.Add(Label3); - - - -TextBox TextBox3 = new TextBox () - { - Width = 100, - Height = 10, - Text ="" - }; -TextBox3.Location = new Point (360, 40); - form1.Controls.Add(TextBox3); - - - - - Label Label5 = new Label () - { - Width = 120, - Height =100, - Text = "" - }; - Label5.Location = new Point (300, 100); - Label5.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; - - Label5.Text=""; - Label5.Font = new Font("Arial", 24,FontStyle.Bold); - form1.Controls.Add(Label5); - - - - -//-------------------------------------------------------------------------------- - - stubManager.Write("Counter is 2 \n"); - - button1.Click += (_,__) => - - { - - Label5.Text="Pros"; - - if (!Directory.Exists(path1)) - { - path=path2; - if (!Directory.Exists(path2)) - Directory.CreateDirectory(path2); - } - else - path=path1; - - File_Name1=path + TextBox1.Text +"_RTFU_" + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".log" ; - - - stubManager.Write(File_Name1 +"\n"); - stubManager.WriteToFile(File_Name1,DateTime.Now +" " ); - stubManager.Write(DateTime.Now +"\n" ); - - stubManager.AppendToFile(File_Name1,"RTFU Test Report" ); - stubManager.Write("RTFU Test Report\n" ); - - stubManager.AppendToFile(File_Name1,"RTFU S/N: \t" + TextBox1.Text ); - stubManager.Write("RTFU S/N:" + TextBox1.Text +"\n" ); - - - stubManager.AppendToFile(File_Name1,"Location:\t" + TextBox3.Text ); - stubManager.Write("Location:" + TextBox3.Text +"\n" ); - - -//------------------------------- start test ----------- - Test_RLOADING_RTFU(); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading high z - Thread.Sleep(100); - Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x14000000); //set kval ran to 0x14,0.65A - - Test_RDRIVING_RTFU(); - Test_DANCER_RTFU(); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RDANCER_Motor, 3); //hold Rloading high z - - Status=write_to_file(); - stubManager.Write(Status +"\n"); - - Label5.Text=Status; - TextBox1.Text=""; - }; - - form1.ShowDialog(); - - return ; - } - //------------------------------------ -int Test_RLOADING_RTFU() -{ - int temp=1; - int counter; - - Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x2c000000); //set kval ran to 0x2c- 1.3A - Thread.Sleep(100); - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RLOADING_Motor, true,200); //move Rloading down - Thread.Sleep(3000); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading high z - Thread.Sleep(1000); -//------------------------------------------ check F1_LS_RLOADMOTOR_up------------------------------------------------ - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //read LS - if ((response.Value & F1_LS_RLOADMOTOR_UP) !=F1_LS_RLOADMOTOR_UP ) //if LS_RLOADMOTOR_UP is up then error - { - DialogResult result = MessageBox.Show("Did RLOADIN MOTOR Move?", "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.Yes) - { - Units_status[0,1]="Fail"; - stubManager.Write("LS_RLOADMOTOR_UP\tFail\n"); - return 0; - } - else - { - Units_status[2,1]="Fail"; - stubManager.Write("RLOADMOTOR\tFail\n"); - return 0; - } - } - -//----------------------------------------- mov RLOADING up ------------------------------------------------- - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RLOADING_Motor,false,200); //move Rloading up - counter =0; - while ( counter < 150) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if LS_RLOADMOTOR_UP is up then move down - if ((response.Value & F1_LS_RLOADMOTOR_UP) != F1_LS_RLOADMOTOR_UP ) - counter=250; - - Thread.Sleep(100); - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading high z - - if (counter == 150) - { - Units_status[0,1]="Fail"; - stubManager.Write("LS_RLOADMOTOR_UP\tFail\n"); - return 0; - } - DialogResult result1 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo); - if(result1 == DialogResult.No) - { - Units_status[0,1]="Fail"; - stubManager.Write("LS_RLOADMOTOR_UP Not calibrate\n"); - return 0; - } - Units_status[0,1]="Pass"; - Units_status[2,1]="Pass"; - -//------------------------------------------ check F1_LS_RLOADMOTOR_DN------------------------------------------------ - - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //read LS - - if ((response.Value & F1_LS_RLOADMOTOR_DN) !=F1_LS_RLOADMOTOR_DN ) //if LS_RLOADMOTOR_DN is up then error - { - Units_status[1,1]="Fail"; - stubManager.Write("LS_RLOADMOTOR_DN\tFail\n"); - return 0; - } -//------------------------------------------ mov RLOADING dn ------------------------------------------------ - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RLOADING_Motor, true,200); //move Rloading down - counter =0; - while ( counter < 150) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if LS_RLOADMOTOR_UP is up then move down - if ((response.Value & F1_LS_RLOADMOTOR_DN) != F1_LS_RLOADMOTOR_DN ) - counter=250; - - Thread.Sleep(100); - } - - if (counter == 150) - { - Units_status[1,1]="Fail"; - stubManager.Write("LS_RLOADMOTOR_DN\tFail\n"); - return 0; - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading high z - - DialogResult result2 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo); - if(result2 == DialogResult.No) - { - Units_status[1,1]="Fail"; - stubManager.Write("LS_RLOADMOTOR_DN Not calibrate\n"); - return 0; - } - Units_status[1,1]="Pass"; - stubManager.Write("RLOADMOTOR\tPass\n"); - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RLOADING_Motor, true,200); //move Rloading down - Thread.Sleep(2000); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading high z - - return 1 ; - -} - -//---------------------------------- - -Int32 ReadEncoder() -{ - Int32 temp; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F1_RDANCER_ROTENC_DATA_p_TX, 0x0000); //triggers a TX transmission - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_RDANCER_ROTENC_DATA_p_RX_lsb); - var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_RDANCER_ROTENC_DATA_p_RX_msb); - - temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff)); - - - return temp; -} -//-------------------------------------------------------------------------------- -int Test_DANCER_RTFU() -{ - int counter; - Int32 temp; - Int32 temp1; - -//------------------------------------------ check F1_LS_RDANCER_DOWN ------------------------------------------------ - - MessageBox.Show("Make sure RDANCER Doun"); - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //read LS - if ((response.Value & F1_LS_RDANCER_DOWN) !=F1_LS_RDANCER_DOWN ) //if F1_LS_RDANCER_DOWN is up then error - { - Units_status[4,1]="Fail"; - stubManager.Write("LS_RDANCER_DOWN\tFail\n"); - return 0; - } -//----------------------------------------- mov RDANCER_Motor up and check F1_LS_RDANCER_DOWN ------------------------------------------------- - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RDANCER_Motor,true,10); //move Rloading up - counter =0; - while ( counter < 150) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if LS_RLOADMOTOR_UP is up then move down - if ((response.Value & F1_LS_RDANCER_DOWN) != F1_LS_RDANCER_DOWN ) - counter=250; - - Thread.Sleep(100); - } - if (counter == 150) - { - Units_status[4,1]="Fail"; - stubManager.Write("LS_RDANCER_DOWN\tFail\n"); - return 0; - } - Units_status[4,1]="Pass"; - stubManager.Write("LS_RDANCER_DOWN\tPass\n"); - -//----------------------------------------- check F1_LS_RDANCER_UP ------------------------------------------------- - - if ((response.Value & F1_LS_RDANCER_UP) !=F1_LS_RDANCER_UP ) //if F1_LS_RDANCER_UP is up then error - { - Units_status[5,1]="Fail"; - stubManager.Write("LS_RDANCER_UP\tFail\n"); - return 0; - } - counter =0; - while ( counter < 150) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if F1_LS_RDANCER_UP is up then move down - if ((response.Value & F1_LS_RDANCER_UP) != F1_LS_RDANCER_UP ) - counter=250; - - Thread.Sleep(100); - } - if (counter == 150) - { - Units_status[5,1]="Fail"; - stubManager.Write("LS_RDANCER_UP\tFail\n"); - return 0; - } - Units_status[5,1]="Pass"; - stubManager.Write("LS_RDANCER_UP\tPass\n"); - -//----------------------------------------- check F1_LS_RLOADRAM_DOWN ------------------------------------------------- - - if ((response.Value & F1_LS_RLOADRAM_DOWN) !=F1_LS_RLOADRAM_DOWN ) //if F1_LS_RLOADRAM_DOWN is up then error - { - Units_status[6,1]="Fail"; - stubManager.Write("LS_RLOADRAM_DOWN\tFail\n"); - return 0; - } - counter =0; - while ( counter < 150) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if F1_LS_RLOADRAM_DOWN is up then move down - if ((response.Value & F1_LS_RLOADRAM_DOWN) != F1_LS_RLOADRAM_DOWN ) - counter=250; - - Thread.Sleep(100); - } - if (counter == 150) - { - Units_status[6,1]="Fail"; - stubManager.Write("LS_RLOADRAM_DOWN\tFail\n"); - return 0; - } - Units_status[6,1]="Pass"; - stubManager.Write("LS_RLOADRAM_DOWN\tPass\n"); - -//----------------------------------------- mov RDANCER_Motor down and check rdancer encoder ------------------------------------------------- - temp= ReadEncoder(); - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RDANCER_Motor,false,10); //move Rloading down - counter =0; - while ( counter < 150) - { - counter = counter + 1; - response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_03_Direct); //if LS_RLOADMOTOR_UP is up then move down - if ((response.Value & F1_LS_RDANCER_DOWN) != F1_LS_RDANCER_DOWN ) - counter=250; - - Thread.Sleep(100); - } - if (counter == 150) - { - Units_status[4,1]="Fail"; - stubManager.Write("LS_RDANCER_DOWN\tFail\n"); - return 0; - } - Units_status[7,1]="Pass"; - stubManager.Write("RDANCER_Motor\tPass\n"); - - temp1= ReadEncoder(); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RDANCER_Motor, 3); //hold Rloading high z - - stubManager.Write("temp="+temp + "\temp1="+temp1 +"\n"); - - DialogResult result = MessageBox.Show("SSI Dancer led is Green(not blinking)?", "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.No) - { - Units_status[8,1]="Fail"; - stubManager.Write("RDANCER_SSI\tFail\n"); - return 0; - } - - if (temp>temp1) - temp1=temp1+0x4000; - - temp1=temp1-temp; - if ((temp1> 15000) || (temp1 <1000)) - { - Units_status[8,1]="Fail"; - stubManager.Write("RDANCER_SSI\tFail\n"); - return 0; - } - Units_status[8,1]="Pass"; - stubManager.Write("RDANCER_SSI\tPass\n"); - - return 1; -} - - -//------------------------------------------------------------- -int Test_RDRIVING_RTFU() -{ - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RDRIVING_Motor, true,200); //move Rdriving clockwise - stubManager.Write("RDRIVING_Motor Motor rotate \n "); - - DialogResult result = MessageBox.Show("Are RDRIVING Motor rotate?", "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.No) - { - Units_status[3,1]="Fail"; - stubManager.Write("RDRIVING Motor not rotate\n"); - } - else - { - Units_status[3,1]="Pass"; - stubManager.Write("RDRIVING Motor rotate\n"); - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RDRIVING_Motor,3); //stop motor - - return 0; -} - - - -//-------------------------------------------------------------------------------- -int Motor_SetParam(Int32 HighAdr, Int32 LowAdr, Int32 ParaAddr, uint ParaData1) -{ - - Int32 Temp = 0; - Temp = (ParaAddr << 8 ) + ( (Int32) ParaData1 >> 24); - - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,HighAdr, (Temp & 0xffff)); - Temp = ((Int32)ParaData1 >> 8) & 0xffff; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,LowAdr, (Temp)); - - return 1; -} - //------------------------------------ -string write_to_file() -{ - stubManager.Write("write_to_file\n"); - -string Stemp="Pass"; - for (int i=0;i<UNIT_UNDER_TEST;i++) - { - stubManager.AppendToFile(File_Name1,Units_status[i,0]+"\t" + Units_status[i,1] ); - stubManager.Write(Units_status[i,0]+"\t" + Units_status[i,1]+"\n" ); - - if ((Units_status[i,1]=="Fail")||(Units_status[i,1]=="Not Test")) - Stemp="Fail"; - } - if (Stemp=="Fail") - { - stubManager.AppendToFile(File_Name1,"-------------RTFU Fail ------------ "); - stubManager.Write("-------------RTFU Fail ------------ "); - } - else - { - stubManager.AppendToFile(File_Name1,"-------------RTFU Pass ------------ )"); - stubManager.Write("-------------RTFU Pass ------------ "); - } - - return Stemp; - -} - diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/RTFU/RTFU_SSI1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/RTFU/RTFU_SSI1.cs deleted file mode 100644 index f448e0971..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/RTFU/RTFU_SSI1.cs +++ /dev/null @@ -1,93 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -include "..\..\Defines\Tango_Defines_Basic.cs" -include "Tango_Defines_SSI.cs" -//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_Basic.cs" -//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_SSI.cs" -const Int32 F1_RDANCER_ROTENC_DATA_p_RX_lsb = 0x600001a0; -const Int32 F1_RDANCER_ROTENC_DATA_p_RX_msb = 0x600001a2; -const Int32 F1_RDANCER_ROTENC_DATA_p_TX = 0x600001ae; - - - - - -public void OnExecute(StubManager stubManager) -{ - - int k = 0; - - Fpga_Read_Reg(FPGA1, F1_Prescaler1_reg1,0 ); - Fpga_Read_Reg(FPGA1, F1_Prescaler1_reg2,0 ); - - //Set output clock frequency to about 200 kHz - Fpga_Write_Reg(FPGA1, F1_Prescaler1_reg1, 0x0024, 0); - Fpga_Write_Reg(FPGA1, F1_Prescaler1_reg2, 0x0024, 0); - - Fpga_Read_Reg(FPGA1, F1_Prescaler1_reg1, 0); - Fpga_Read_Reg(FPGA1, F1_Prescaler1_reg2, 0); - - for (int i = 0; i < 100; i++) - { - - - stubManager.Write("RDANCER1 - "+ ReadEncoder()+ "\n" ); - - - - - Thread.Sleep(400); - - - - - - - - - - - - - - - - - -// SSI_Read_Write(FPGA1, F1_RDANCER_ROTENC_MSB, F1_RDANCER_ROTENC_LSB, F1_RDANCER_ROTENC_TX); -// SSI_Read_Write(FPGA1, F1_RSPARE_ROTENC_MSB, F1_RSPARE_ROTENC_LSB, F1_RSPARE_ROTENC_TX); -// stubManager.Write("\n"); -// k++; -// if ( (k & 0x8) == 0x08 ) { -// k = 0; -// stubManager.Write(" RDANCER RSpeed \n"); -// } -// Thread.Sleep(400); - } - - -} - -Int32 ReadEncoder() -{ - Int32 temp; - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F1_RDANCER_ROTENC_DATA_p_TX, 0x0000); //triggers a TX transmission - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_RDANCER_ROTENC_DATA_p_RX_lsb); - var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_RDANCER_ROTENC_DATA_p_RX_msb); - - temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff)); - - - return temp; -} diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/WHS/WHS_waste_Tank_Calibration_Save_V0.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/WHS/WHS_waste_Tank_Calibration_Save_V0.cs deleted file mode 100644 index c52424b2f..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/WHS/WHS_waste_Tank_Calibration_Save_V0.cs +++ /dev/null @@ -1,90 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -double V0_default_ml = 8.7433; - -public void OnExecute(StubManager stubManager) -{ - var response1 = stubManager.ShowResponseWindow("Warning - you are going to change the value of Vo in the eeprom !!!\nPlease Enter Password to confirme:"); - if (response1=="Aa123456") - { - stubManager.WriteLine(response1); - - //Write_0_Vo_in_ml_to_eeprom - stubManager.WriteLine("\nWrite_0_Vo_in_ml_to_eeprom"); - StubWhsEEpromRequest stubWhsEEpromRequest = new StubWhsEEpromRequest(); - stubWhsEEpromRequest.BurnRequest = true; //write - StubWhsEEpromData stubWhsEEpromData = new StubWhsEEpromData(); - stubWhsEEpromData.Orifice1Flow = 0; - stubWhsEEpromRequest.WhsEEprom = stubWhsEEpromData; - var response = stubManager.Run<StubWhsEEpromResponse>(stubWhsEEpromRequest); - - //wait_10mSec - stubManager.WriteLine("\nwait_10mSec"); - Thread.Sleep(100); //Sleep for 10 milli. - - //Read_Vo_in_ml_from_eeprom & verify it is 0 - stubManager.WriteLine("\nRead_Vo_in_ml_from_eeprom & verify it is 0"); - stubWhsEEpromRequest.BurnRequest = false; //write - stubWhsEEpromRequest.WhsEEprom = stubWhsEEpromData; - var response2 = stubManager.Run<StubWhsEEpromResponse>(stubWhsEEpromRequest); - - //Read_Vo_in_mV - stubManager.WriteLine("\nRead_Vo_in_mV"); - var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EC, 0x01); - //Print_Vo_in_mV - stubManager.WriteLine(response3.Progress); - - //check validity - stubManager.WriteLine("\ncheck validity"); - if((response3.Progress <= 800) || (response3.Progress >=1200)) - { - response3.Progress = 1076; //default - stubManager.Write("\nERROR ------ Vreading value outside the defined range !!! ------"); - } - else - { - //calculate_V0_in_ml - stubManager.WriteLine("\ncalculate_V0_in_ml"); - V0_default_ml = V0_default_ml * response3.Progress; - - //print_Vo_in_ml - stubManager.WriteLine("\nprint_Vo_in_ml"); - stubManager.WriteLine(V0_default_ml); - stubManager.WriteLine(""); - - //Write_Vo_in_ml_to_eeprom - stubManager.WriteLine("\nWrite_Vo_in_ml_to_eeprom"); - stubWhsEEpromRequest.BurnRequest = true; //write - - stubWhsEEpromData.Orifice1Flow = V0_default_ml; - stubWhsEEpromRequest.WhsEEprom = stubWhsEEpromData; - var response4 = stubManager.Run<StubWhsEEpromResponse>(stubWhsEEpromRequest); - - //wait_10mSec - stubManager.WriteLine("\nwait_10mSec"); - Thread.Sleep(100); //Sleep for 10 milli. - - //Read_Vo_in_ml_from_eeprom - stubManager.WriteLine("\nRead_Vo_in_ml_from_eeprom"); - stubWhsEEpromRequest.BurnRequest = false; //write - stubWhsEEpromRequest.WhsEEprom = stubWhsEEpromData; - var response5 = stubManager.Run<StubWhsEEpromResponse>(stubWhsEEpromRequest); - - //Check if we read the correct value - stubManager.WriteLine("\nVerify that we read the correct value of Orifice1Flow!!"); - } - - stubManager.WriteLine("\n -- END OF SCRIPT -- "); - - } -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/WHS/fan1-4.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/WHS/fan1-4.cs deleted file mode 100644 index 69f8e4d13..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/WHS/fan1-4.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - int x=0; - - // var response1 = stubManager.ShowResponseWindow("Please Enter fan value from 0 to 255:"); - // int x = Int32.Parse(response1); - - - stubManager.Run<ProgressResponse>("ProgressRequest" ,0xffac2, x); //whs fan1 full - stubManager.Run<ProgressResponse>("ProgressRequest" ,0xffac3, x); //whs fan2 full - stubManager.Run<ProgressResponse>("ProgressRequest" ,0xffac4, x); //whs fan3 full - stubManager.Run<ProgressResponse>("ProgressRequest" ,0xffac5, x); //whs fan4 full - - var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3ea, 6); //whs fan4 full - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/WHS/pump2.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/WHS/pump2.cs deleted file mode 100644 index c72a7cd33..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/WHS/pump2.cs +++ /dev/null @@ -1,32 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - Int32 i=0 ; - while (i==0) -{ - DialogResult result = MessageBox.Show("Do you want to open (Yes) or close (No) valve ?", "Warning", - MessageBoxButtons.YesNoCancel, MessageBoxIcon.Warning); - if(result == DialogResult.Yes) - - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x600000d2, 0x800); - - else if(result == DialogResult.No) - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x600000d2, 0x000); - else if(result == DialogResult.Cancel) - i=1; - -} - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Winder/Screw_Encoder.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Winder/Screw_Encoder.cs deleted file mode 100644 index 88a2e703a..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Winder/Screw_Encoder.cs +++ /dev/null @@ -1,44 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - -UInt32 temp ; - - - - - - // Request ---- -// UInt32 : Address - -// Response ---- -// UInt32 : Address -// UInt32 : Value -// String : Status -// UInt32 : StatusWord - -while (true) - { -var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000100); -var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000102); - -temp=(response.Value & 0xffff )+((response1.Value & 0xffff )<<16); -temp=temp&0x0fffffff; -stubManager.WriteHex(temp,8); -stubManager.Write("\n"); - - Thread.Sleep(100); - -} -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Winder/Winder_Jig.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Winder/Winder_Jig.cs deleted file mode 100644 index 518cd5be3..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Winder/Winder_Jig.cs +++ /dev/null @@ -1,370 +0,0 @@ -using System; -using System.Text; -using System.IO; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - - -//include "..\..\Defines\Tango_Defines_Basic.cs" -//include "Tango_Defines_LimitSwitch.cs" - -const Int32 FPGA1 = 0x60000000; -const Int32 FPGA2 = 0x60000400; -const Int32 FPGA3 = 0x60000800; -const Int32 F1_LS_03_Direct = 0x040 ; // Reads the direct values that are currently being sent to the fpga. rsv rsv rsv rsv F1_SW_SPOOL_EXISTS F1_SW_SPARE F1_LS_RDANCER_DOWN F1_LS_RDANCER_UP F1_LS_RLOADMOTOR_DOWN F1_LS_RLOADMOTOR_UP F1_LS_RLOADRAM_DOWN F1_LS_RLOADRAM_UP F1_LS_RSPARE1 F1_LS_RSPARE2 F1_LS_SCREW_LEFT F1_LS_SCREW_RIGHT - - - - -const int UNIT_UNDER_TEST=6; -//-------------------------------------------------------------------------------- -string path1="P:\\Scripts\\Assemblies\\Winder\\WinderLog\\"; -string path2="C:\\WinderLog\\"; - -string File_Name1 ; -string Status; -//--------------------------- - - -string [,] Units_status = new string[UNIT_UNDER_TEST,2] { - {"Winder_Motor","Not Test"}, - {"Screw_Motor","Not Test"}, - {"LS_Screw_Right","Not Test"}, - {"LS_Screw_Left","Not Test"}, - {"Screw_Encoder","Not Test"}, - {"SW_Spool_Exist","Not Test"}, - }; - - - -//----------------------------------------------------- -string Winder_Sn; -//-------------------------------------------------------------------------------- - -public void OnExecute(StubManager stubManager) -{ -string path=""; - Form form1 = new Form(); - -// Set the caption bar text of the form. - - form1.Text = "Winder Test"; - form1.FormBorderStyle = FormBorderStyle.FixedDialog; - form1.MaximizeBox = false; - form1.MinimizeBox = false; - form1.StartPosition = FormStartPosition.CenterScreen; - form1.AutoSize = true; - form1.AutoSizeMode = AutoSizeMode.GrowAndShrink; -// Create buttons to Run. - Button button1 = new Button () - { - Width = 100, - Height = 100, - }; - button1.Text = "Run"; - button1.Location = new Point (40, 100); - form1.Controls.Add(button1); -//-----Winder Serial Number ----------- - - Label Label1 = new Label () - { - Width = 150, - Height = 20, - Text =" Winder S/N" - }; - Label1.Location = new Point (30, 10); - form1.Controls.Add(Label1); - TextBox TextBox1 = new TextBox () - { - Width = 100, - Height = 10, - Text ="" - }; - TextBox1.Location = new Point (40, 40); - form1.Controls.Add(TextBox1); - //----------LOCATION---------- - - Label Label3 = new Label () - { - Width = 150, - Height = 20, - Text ="LOCATION" - }; -Label3.Location = new Point (350, 10); - form1.Controls.Add(Label3); - - - -TextBox TextBox3 = new TextBox () - { - Width = 100, - Height = 10, - Text ="" - }; -TextBox3.Location = new Point (360, 40); - form1.Controls.Add(TextBox3); - -//-------------------------------------------------------------------------------- - - stubManager.Write("Counter is 2 \n"); - - button1.Click += (_,__) => - - { -if (!Directory.Exists(path1)) - { - path=path2; - if (!Directory.Exists(path2)) - Directory.CreateDirectory(path2); - } -else -path=path1; - - -File_Name1=path + TextBox1.Text +"_Winder_" + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".log" ; - - -stubManager.Write(File_Name1 +"\n"); -stubManager.WriteToFile(File_Name1,DateTime.Now +" " ); -stubManager.Write(DateTime.Now +"\n" ); - -stubManager.AppendToFile(File_Name1,"Winder Test Report" ); -stubManager.Write("Winder Test Report\n" ); - -stubManager.AppendToFile(File_Name1,"Winder S/N: \t" + TextBox1.Text ); -stubManager.Write("Winder S/N:" + TextBox1.Text +"\n" ); - - -stubManager.AppendToFile(File_Name1,"Location:\t" + TextBox3.Text ); -stubManager.Write("Location:" + TextBox3.Text +"\n" ); - - - -Label Label5 = new Label () - { - Width = 120, - Height =100, - Text = "" - }; -Label5.Location = new Point (300, 100); -Label5.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; - -Label5.Text="Pros"; -Label5.Font = new Font("Arial", 24,FontStyle.Bold); -form1.Controls.Add(Label5); - - -//------------------------------- start test ----------- - Test_Winder_motor(); - Test_Screw_LS_Motor_Encoder (); - Test_Pooler_Exist (); - - - - Status=write_to_file(); - - Label5.Text=Status; - TextBox1.Text=""; -}; - - form1.ShowDialog(); - - return ; - } -//------------------------------------------ -int Test_Winder_motor () - -{ - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,15, true, 500); //rotate Winder Motor. - stubManager.Write("Winder Motor rotate \n "); - DialogResult result = MessageBox.Show("Are Winder Motor rotate?", "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.No) - { - Units_status[0,1]="Fail"; - stubManager.Write("Winder Motor not rotate\n"); - } - else - { - Units_status[0,1]="Pass"; - stubManager.Write("Winder Motor rotate\n"); - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,15,3); //stop motor - - return 0; -} - - -//-------------------------------------------- - int Test_Screw_LS_Motor_Encoder() -{ - UInt32 temp ; - Int32 Bit = 1; - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,14, false, 250); //rotate screw Motor out. - Thread.Sleep(1000); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,14,3); //stop motor - - DialogResult result2 = MessageBox.Show("Did screw Motor move ?", "Warning",MessageBoxButtons.YesNo); - if(result2 == DialogResult.No) - { - Units_status[1,1]="Fail"; - stubManager.Write("Screw Motor not move\n"); - return 0; - } - Units_status[1,1]="Pass"; - - stubManager.Write("Screw Motor rotate \n "); - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,14, true, 250); - stubManager.Write("\nMove screw in "); - - Bit = 1; - int i=0; - while ((Bit != 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec - { - Bit = GetBit(FPGA1, F1_LS_03_Direct,0); - Thread.Sleep(50); - i++; - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,14,3); //stop motor - - DialogResult result1 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo); - if(result1 == DialogResult.No) - { - Units_status[2,1]="Fail"; - stubManager.Write("LS_SCREW_RIGHT Not calibrate\n"); - return 0; - } - Units_status[2,1]="Pass"; - stubManager.Write("\nMove screw out \n"); - - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000100, 0x0000); //clear encoder - stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000102, 0x0000); //clear encoder - - Bit = 1; - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,14, false, 250); - i=0; - while ((Bit != 0x0) && (i<200)) //wait until Limit Switch or timeout 200*50msec=10sec - { - Bit = GetBit(FPGA1, F1_LS_03_Direct,1); - Thread.Sleep(50); - i++; - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,14,3); //stop motor - - DialogResult result3 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo); - if(result3 == DialogResult.No) - { - Units_status[3,1]="Fail"; - stubManager.Write("LS_SCREW_LEFT Not calibrate\n"); - return 0; - } - Units_status[3,1]="Pass"; - - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000100); - var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000102); - - temp=(response.Value & 0xffff )+((response1.Value & 0xffff )<<16); - temp=temp&0x0fffffff; - temp= 0x4000000-temp; - stubManager.Write("Encoder positio:" +temp+"\n"); - - if ((temp>20000) && temp<28000) - Units_status[4,1]="Pass"; - else - Units_status[4,1]="Fail"; - - return 1; -} - //--------------------------------------- -int Test_Pooler_Exist() -{ - if ( (GetBit(FPGA1, F1_LS_03_Direct,11))==0) - { - Units_status[5,1]="Fail"; - return 0; - } - - DialogResult result2 = MessageBox.Show("Remove Spool"); - if ( (GetBit(FPGA1, F1_LS_03_Direct,11))!=0) - Units_status[5,1]="Fail"; - else - Units_status[5,1]="Pass"; - - return 0 ; - - -} - //------------------------------------ -string write_to_file() -{ - stubManager.Write("write_to_file\n"); - -string Stemp="Pass"; - for (int i=0;i<UNIT_UNDER_TEST;i++) - { - stubManager.AppendToFile(File_Name1,Units_status[i,0]+"\t" + Units_status[i,1] ); - stubManager.Write(Units_status[i,0]+"\t" + Units_status[i,1]+"\n" ); - - if ((Units_status[i,1]=="Fail")||(Units_status[i,1]=="Not Test")) - Stemp="Fail"; - } - if (Stemp=="Fail") - { - stubManager.AppendToFile(File_Name1,"-------------Winder Fail ------------ "); - stubManager.Write("-------------Winder Fail ------------ "); - } - else - { - stubManager.AppendToFile(File_Name1,"-------------Winder Pass ------------ )"); - stubManager.Write("-------------Winder Pass ------------ "); - } - - return Stemp; - -} - - - -Int32 GetBit(Int32 Fpga, Int32 Adr, Int32 BitNo) -{ - Int32 BitMask; - var RetVal = Fpga_Read_Reg(Fpga, Adr, 0); - BitMask = 0x1 << BitNo; - if ( ( (Int32) RetVal.Value & BitMask) == BitMask ) - { - return 1; - } - else - { - return 0; - } - -} - - -StubFpgaReadRegResponse Fpga_Read_Reg(Int32 Fpga, Int32 Addr, Int32 Verbose) -{ - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" , Fpga + Addr); - response.Value = response.Value & 0xffff; - - if (Verbose == 1) { - stubManager.Write("FPGA Reg. Read (FPGA Base, Addr, Data): ("); - stubManager.WriteHex(Fpga,4); - stubManager.Write(", "); - stubManager.WriteHex(Addr,4); - stubManager.Write(", "); - stubManager.WriteHex(response.Value,4); - stubManager.Write(")"); - } - - return response; -} diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Winder/Winder_Zero.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Winder/Winder_Zero.cs deleted file mode 100644 index 46894812c..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Winder/Winder_Zero.cs +++ /dev/null @@ -1,90 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -const Int32 FPGA1 = 0x60000000; -const Int32 FPGA2 = 0x60000400; -const Int32 FPGA3 = 0x60000800; -const Int32 F1_LS_03_Direct = 0x040 ; // Reads the direct values that are currently being sent to the fpga. rsv rsv rsv rsv F1_SW_SPOOL_EXISTS F1_SW_SPARE F1_LS_RDANCER_DOWN F1_LS_RDANCER_UP F1_LS_RLOADMOTOR_DOWN F1_LS_RLOADMOTOR_UP F1_LS_RLOADRAM_DOWN F1_LS_RLOADRAM_UP F1_LS_RSPARE1 F1_LS_RSPARE2 F1_LS_SCREW_LEFT F1_LS_SCREW_RIGHT - -//include "..\..\Defines\Tango_Defines_Basic.cs" -//include "Tango_Defines_Motors.cs" - - -public void OnExecute(StubManager stubManager) -{ - Int32 position=30; - UInt32 temp ; - Int32 Bit = 1; - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,14, false, 250); //rotate screw Motor out. - Thread.Sleep(2000); - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,14,3); //stop motor - Thread.Sleep(1000); - - - stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,14, true, 50); - stubManager.Write("\nMove screw in "); - - Bit = 1; - int i=0; - while ((Bit != 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec - { - Bit = GetBit(FPGA1, F1_LS_03_Direct,0); - Thread.Sleep(10); - i++; - } - stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,14,3); //stop motor - Thread.Sleep(1000); - - - stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,14, true, position ); - Thread.Sleep(1000); - - -} - - - - -Int32 GetBit(Int32 Fpga, Int32 Adr, Int32 BitNo) -{ - Int32 BitMask; - var RetVal = Fpga_Read_Reg(Fpga, Adr, 0); - BitMask = 0x1 << BitNo; - if ( ( (Int32) RetVal.Value & BitMask) == BitMask ) - { - return 1; - } - else - { - return 0; - } - -} - -StubFpgaReadRegResponse Fpga_Read_Reg(Int32 Fpga, Int32 Addr, Int32 Verbose) -{ - var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" , Fpga + Addr); - response.Value = response.Value & 0xffff; - - if (Verbose == 1) { - stubManager.Write("FPGA Reg. Read (FPGA Base, Addr, Data): ("); - stubManager.WriteHex(Fpga,4); - stubManager.Write(", "); - stubManager.WriteHex(Addr,4); - stubManager.Write(", "); - stubManager.WriteHex(response.Value,4); - stubManager.Write(")"); - } - - return response; -} diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Winder/Winder_spoll_exist.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Winder/Winder_spoll_exist.cs deleted file mode 100644 index c0ada87e1..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Winder/Winder_spoll_exist.cs +++ /dev/null @@ -1,65 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -include "..\..\Defines\Tango_Defines_Basic.cs" -include "Tango_Defines_LimitSwitch.cs" -//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_Basic.cs" -//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_LimitSwitch.cs" - -public void OnExecute(StubManager stubManager) -{ - - uint Temp = 0; - int counter = 0; - stubManager.Write("\nReading register F1_LS_03_Direct: "); - var RetVal = Fpga_Read_Reg(FPGA1, F1_LS_03_Direct, 0); - Temp=RetVal.Value & 0x0800; - if (Temp==0x0800) - { - stubManager.Write("\nWinder Spoll Exist "); - } - else - { - stubManager.Write("\nWinder Spoll NOT Exist "); - } - Temp = RetVal.Value; - stubManager.Write("\nActivate limit switches one-by-one"); - - while ( counter != 100) - { - RetVal = Fpga_Read_Reg(FPGA1, F1_LS_03_Direct, 0); - if (RetVal.Value != Temp) - { -// stubManager.Write("\nRegister F1_LS_03_Direct new value: "); -// stubManager.WriteHex(RetVal.Value,4); - - Temp=RetVal.Value & 0x0800; - if (Temp==0x0800) - { - stubManager.Write("\nWinder Spoll Exist "); - } - else - { - stubManager.Write("\nWinder Spoll NOT Exist "); - } - - - - counter = counter + 1; - } - Thread.Sleep(50); - Temp=RetVal.Value; - } - - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Blower.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Blower.cs deleted file mode 100644 index c365c4884..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Blower.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - - //Blower speed - var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E8, /*disable control loop*/0x0000 + /* speed =*/0xFFF); //Blower speed - // to enable control loop send 0x1000 - // speed max voltage value is 0xFFF //12 bit (0xFFF) -> 5V - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Blower_Data.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Blower_Data.cs deleted file mode 100644 index 740f0778d..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Blower_Data.cs +++ /dev/null @@ -1,28 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -//show current data -/*var response1 =*/ stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan1*/0x3Ea, /*Head_Q=*/0x3000); // -//start/stop whs control and set value -int StopWhsControl = 0; -int RestartWhsControl = 0x1000; - stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan1*/0x3E8, /*Head_Q=*/StopWhsControl + 2700); // -// stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan1*/0x3E8, /*Head_Q=*/RestartWhsControl +2700); // - -//enable loop -/*var response1 =*/ //stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan1*/0x3E7, /*Head_Q=*/5); // -//500=1F4 -//250=FA - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Fan_speed.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Fan_speed.cs deleted file mode 100644 index 045db16fe..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Fan_speed.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -// Request ---- -// Int32 : Amount -// Int32 : Delay - -// Response ---- -// Double : Progress - - -//fan test -var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan1*/0xFAC2, /*speed=*/0xFF); // -//Thread.Sleep(5000); //Sleep for 10 milli. -var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan2*/0xFAC3, /*speed=*/0x80); // -//Thread.Sleep(5000); //Sleep for 10 milli. -var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan3*/0xFAC4, /*speed=*/0x80); // -//Thread.Sleep(5000); //Sleep for 10 milli. -var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan4*/0xFAC5, /*speed=*/0x80); // -//Thread.Sleep(5000); //Sleep for 10 milli. -stubManager.WriteLineHex(response1.Progress,4); -stubManager.WriteLineHex(response2.Progress,4); -stubManager.WriteLineHex(response3.Progress,4); -stubManager.WriteLineHex(response4.Progress,4); -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Fan_test.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Fan_test.cs deleted file mode 100644 index 166c1cd2a..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Fan_test.cs +++ /dev/null @@ -1,42 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -// Request ---- -// Int32 : Amount -// Int32 : Delay - -// Response ---- -// Double : Progress - - -//fan test -var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC2, 0x80); //valv1_en=1 -//Thread.Sleep(5000); //Sleep for 10 milli. -var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC3, 0x80); //valv1_en=1 -//Thread.Sleep(5000); //Sleep for 10 milli. -var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC4, 0x80); //valv1_en=1 -//Thread.Sleep(5000); //Sleep for 10 milli. -var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC5, 0x80); //valv1_en=1 -//Thread.Sleep(5000); //Sleep for 10 milli. - -/*var response5 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC2, 0x00); //valv1_en=1 -Thread.Sleep(5000); //Sleep for 10 milli. -var response6 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC3, 0x00; //valv1_en=1 -Thread.Sleep(5000); //Sleep for 10 milli. -var response7 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC4, 0x00); //valv1_en=1 -Thread.Sleep(5000); //Sleep for 10 milli. -var response8 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC5, 0x00); //valv1_en=1 -Thread.Sleep(5000); //Sleep for 10 milli. -*/ -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Rehostat.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Rehostat.cs deleted file mode 100644 index 142c1597d..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Rehostat.cs +++ /dev/null @@ -1,31 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -// Request ---- -// Int32 : Amount -// Int32 : Delay - -// Response ---- -// Double : Progress - - -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EB, 0x300); //set rehostat value=0x300 -stubManager.WriteLine("First response received"); -Thread.Sleep(1000); //Sleep for 1000 milli. -var response6 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 5); // get GAS_OUT -stubManager.WriteLine("Second response received"); - - stubManager.WriteLineHex(response6.Progress, 4); - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Set_Blower_Get_Q_Qavarege_Volt.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Set_Blower_Get_Q_Qavarege_Volt.cs deleted file mode 100644 index 13d0c3471..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Set_Blower_Get_Q_Qavarege_Volt.cs +++ /dev/null @@ -1,64 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -// Request ---- -// Int32 : Amount -// Int32 : Delay - -// Response ---- -// Double : Progress - - -//Blower speed -//stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E8, /* speed =*/2400); //set Blower speed -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E7, /* Q value =*/7); //set Blower speed - -Thread.Sleep(5000); -var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, /* speed =*/0); //get ORF1 -var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, /* speed =*/10); //get Q ORF1 -var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, /* speed =*/20); //get Q ORF1 average - -var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, /* speed =*/2); //get ORF3 -var response5 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, /* speed =*/12); //get Q ORF3 average -var response6 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, /* speed =*/22); //get Q ORF3 average - -var response7 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E6, /* speed =*/10); //Get Blower speed -//Thread.Sleep(5000); //Sleep for 10 milli. -stubManager.WriteLine("orf1 value:"); stubManager.WriteLine(response1.Progress); -stubManager.WriteLine("orf1 Q value:"); stubManager.WriteLine(response2.Progress); -stubManager.WriteLine("orf1 Q avarege value:"); stubManager.WriteLine(response3.Progress); -stubManager.WriteLine("orf3 value:"); stubManager.WriteLine(response4.Progress); -stubManager.WriteLine("orf3 Q value:"); stubManager.WriteLine(response5.Progress); -stubManager.WriteLine("orf3 Q avarege value:"); stubManager.WriteLine(response6.Progress); -stubManager.WriteLine("blower volt:"); stubManager.WriteLine(response7.Progress); - -Thread.Sleep(5000); - response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, /* speed =*/0); //get ORF1 - response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, /* speed =*/10); //get Q ORF1 - response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, /* speed =*/20); //get Q ORF1 average - - response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, /* speed =*/2); //get ORF3 - response5 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, /* speed =*/12); //get Q ORF3 average - response6 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, /* speed =*/22); //get Q ORF3 average - - response7 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E6, /* speed =*/10); //Get Blower speed -//Thread.Sleep(5000); //Sleep for 10 milli. -stubManager.WriteLine("orf1 value:"); stubManager.WriteLine(response1.Progress); -stubManager.WriteLine("orf1 Q value:"); stubManager.WriteLine(response2.Progress); -stubManager.WriteLine("orf1 Q avarege value:"); stubManager.WriteLine(response3.Progress); -stubManager.WriteLine("orf3 value:"); stubManager.WriteLine(response4.Progress); -stubManager.WriteLine("orf3 Q value:"); stubManager.WriteLine(response5.Progress); -stubManager.WriteLine("orf3 Q avarege value:"); stubManager.WriteLine(response6.Progress); -stubManager.WriteLine("blower volt:"); stubManager.WriteLine(response7.Progress); -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Shinko_Read_Temperature.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Shinko_Read_Temperature.cs deleted file mode 100644 index fc769f125..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Shinko_Read_Temperature.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - //read temerature value - var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xB05, 1); - var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xB05, 3); - stubManager.Write("\nShinko temerature value: "); - stubManager.WriteLine(response1.Progress); - //read setting temerature - var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xB05, 2); - var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xB05, 4); - stubManager.Write("\nShinko setting temerature : "); - stubManager.WriteLine(response3.Progress); - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Shinko_Read_Temperature_1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Shinko_Read_Temperature_1.cs deleted file mode 100644 index 235c1baa4..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Shinko_Read_Temperature_1.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - var response0 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xB05, 0); - if(response0.Progress == 0) - stubManager.Write("\nShinko Init Passed "); - - //read temerature value - var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xB05, 1); - if(response.Progress == 0) - stubManager.Write("\nShinko recieve ACQ for reading request of the temerature value"); - var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xB05, 3); - stubManager.Write("\nShinko temerature value: "); - stubManager.WriteLine(response1.Progress); - - //read setting temerature - var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xB05, 2); - if(response2.Progress == 0) - stubManager.Write("\nShinko recieve ACQ for reading request of the setting temerature"); - var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xB05, 4); - stubManager.Write("\nShinko setting temerature : "); - stubManager.WriteLine(response3.Progress); - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/fan.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/fan.cs deleted file mode 100644 index 7e68d62ef..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/fan.cs +++ /dev/null @@ -1,34 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - - - // Request ---- -// Int32 : Amount -// Int32 : Delay - -// Response ---- -// Double : Progress -//stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC2, 0x20); //WHS FAN 1 low seed -//stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC3, 0x20); //WHS FAN 2 low seed -//stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC4, 0x20); //WHS FAN 3 low seed -//stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC5, 0x20); //WHS FAN 4 low seed -//stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC6, 0x20); //WHS FAN 5 low seed -//stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC2, 0x20); //WHS FAN 6 low seed -var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC3, 0x20); - - - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/get_A2D_MAX11614.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/get_A2D_MAX11614.cs deleted file mode 100644 index 670732ae0..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/get_A2D_MAX11614.cs +++ /dev/null @@ -1,48 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -// Request ---- -// Int32 : Amount -// Int32 : Delay - -// Response ---- -// Double : Progress - -//valv1 -var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 0); //ORF1 -//Thread.Sleep(5000); //Sleep for 10 milli. -var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 1); // ORF2 -//Thread.Sleep(5000); //Sleep for 10 milli. -var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); // ORF3 -//Thread.Sleep(5000); //Sleep for 10 milli. -var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 3); // VLEV1 -//Thread.Sleep(5000); //Sleep for 10 milli. -var response5 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 4); // VLEV2 not connected -//Thread.Sleep(5000); //Sleep for 10 milli. -var response6 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 5); // GAS_OUT -//Thread.Sleep(5000); //Sleep for 10 milli. -var response7 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 6); // CUR_FAN -//Thread.Sleep(5000); //Sleep for 10 milli. -var response8 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 7); // CUR_VaLV1 -//Thread.Sleep(5000); //Sleep for 10 milli. - stubManager.WriteLineHex(response1.Progress,4); - stubManager.WriteLineHex(response2.Progress,4); - stubManager.WriteLineHex(response3.Progress,4); - stubManager.WriteLineHex(response4.Progress,4); - stubManager.WriteLineHex(response5.Progress,4); - stubManager.WriteLineHex(response6.Progress,4); - stubManager.WriteLineHex(response7.Progress,4); - stubManager.WriteLineHex(response8.Progress,4); - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/pump.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/pump.cs deleted file mode 100644 index 8999da126..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/pump.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -// Request ---- -// Int32 : Amount -// Int32 : Delay - -// Response ---- -// Double : Progress - - -//test pump -//Thread.Sleep(5000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0701);// pump on -//Thread.Sleep(5000); //Sleep for 10 milli. -//stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0700); // pump off - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/set_gas_get_A2D_MAX11614.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/set_gas_get_A2D_MAX11614.cs deleted file mode 100644 index fad4ac22a..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/set_gas_get_A2D_MAX11614.cs +++ /dev/null @@ -1,52 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -// Request ---- -// Int32 : Amount -// Int32 : Delay - -// Response ---- -// Double : Progress - -//valv1 -//var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 0); //ORF1 -//Thread.Sleep(5000); //Sleep for 10 milli. -//var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 1); // ORF2 -//Thread.Sleep(5000); //Sleep for 10 milli. -//var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); // ORF3 -//Thread.Sleep(5000); //Sleep for 10 milli. -//var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 3); // VLEV1 -//Thread.Sleep(5000); //Sleep for 10 milli. -//var response5 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 4); // VLEV2 not connected -//Thread.Sleep(5000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EB, 0x401); //ORF1 -stubManager.WriteLine("First response received"); -Thread.Sleep(1000); //Sleep for 1000 milli. -var response6 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 5); // GAS_OUT -stubManager.WriteLine("Second response received"); -//Thread.Sleep(5000); //Sleep for 10 milli. -//var response7 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 6); // CUR_FAN -//Thread.Sleep(5000); //Sleep for 10 milli. -//var response8 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 7); // CUR_VaLV1 -//Thread.Sleep(5000); //Sleep for 10 milli. -// stubManager.WriteLineHex(response1.Progress,4); -// stubManager.WriteLineHex(response2.Progress,4); -// stubManager.WriteLineHex(response3.Progress,4); -// stubManager.WriteLineHex(response4.Progress,4); -// stubManager.WriteLineHex(response5.Progress,4); - stubManager.WriteLineHex(response6.Progress, 4); -// stubManager.WriteLineHex(response7.Progress,4); -// stubManager.WriteLineHex(response8.Progress,4); - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_Blower.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_Blower.cs deleted file mode 100644 index 2e44d901d..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_Blower.cs +++ /dev/null @@ -1,60 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -// Request ---- -// Int32 : Amount -// Int32 : Delay - -// Response ---- -// Double : Progress - - -//Blower speed -/*var response1 =*/ stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E8, /* speed =*/0x800); //Blower speed -Thread.Sleep(1000); //Sleep for 1000 milli. -var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); //ORF3 -stubManager.WriteLine("First response received"); -Thread.Sleep(1000); //Sleep for 1000 milli. -//Thread.Sleep(5000); //Sleep for 10 milli. -stubManager.WriteLine(response1.Progress); -Thread.Sleep(1000); //Sleep for 1000 milli. -var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); //ORF3 -stubManager.WriteLine(response2.Progress); -Thread.Sleep(1000); //Sleep for 1000 milli. -var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); //ORF3 -stubManager.WriteLine(response3.Progress); -Thread.Sleep(1000); //Sleep for 1000 milli. -var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); //ORF3 -stubManager.WriteLine(response4.Progress); -Thread.Sleep(1000); //Sleep for 1000 milli. -var response5 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); //ORF3 -stubManager.WriteLine(response5.Progress); -Thread.Sleep(1000); //Sleep for 1000 milli. -var response6 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); //ORF3 -stubManager.WriteLine(response6.Progress); -Thread.Sleep(1000); //Sleep for 1000 milli. -var response7 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); //ORF3 -stubManager.WriteLine(response7.Progress); -Thread.Sleep(1000); //Sleep for 1000 milli. -var response8 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); //ORF3 -stubManager.WriteLine(response8.Progress); -Thread.Sleep(1000); //Sleep for 1000 milli. -var response9 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); //ORF3 -stubManager.WriteLine(response9.Progress); -Thread.Sleep(1000); //Sleep for 1000 milli. -var response10 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); //ORF3 -stubManager.WriteLine(response10.Progress); -//var response_av = (response1.Progress + response2.Progress +response3.Progress + response4.Progress + response5.Progress + response6.Progress + response7.Progress + response8.Progress +response9.Progress + response10.Progress)/10; -//stubManager.WriteLine(response_av.Progress); -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_Fan_speed.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_Fan_speed.cs deleted file mode 100644 index 582a7f7e7..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_Fan_speed.cs +++ /dev/null @@ -1,59 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -// Request ---- -// Int32 : Amount -// Int32 : Delay - -// Response ---- -// Double : Progress - -//valv1 -var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8501); //valv1_en=1 -Thread.Sleep(5000); //Sleep for 10 milli. -var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8401);// valv1_dir=1 -Thread.Sleep(5000); //Sleep for 10 milli. -var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8400);// valv1_dir=0 -Thread.Sleep(5000); //Sleep for 10 milli. -var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8500);// valv1_disable - - -// valve 2 -var response5 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8701); //valv2_en=1 -Thread.Sleep(5000); //Sleep for 10 milli. -var response6 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8601);// valv2_dir=1 -Thread.Sleep(5000); //Sleep for 10 milli. -var response7 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8600);// valv2_dir=0 -Thread.Sleep(5000); //Sleep for 10 milli. -var response8 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8700); //valv2_disable - -//test pump -Thread.Sleep(5000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0701);// pump on -Thread.Sleep(5000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0700); // pump off - -// test Blower -Thread.Sleep(5000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E8, 0x0000);// Blower OFF -Thread.Sleep(5000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E8, 0x0400);// Blower 1.25v -Thread.Sleep(5000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E8, 0x0800); // Blower 2.5v -Thread.Sleep(5000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E8, 0x0C00);// Blower 3.77v -Thread.Sleep(5000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E8, 0x0FFF); // Blower 5.0v - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_blower_and_ORF3.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_blower_and_ORF3.cs deleted file mode 100644 index 3eb47bc93..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_blower_and_ORF3.cs +++ /dev/null @@ -1,48 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -// Request ---- -// Int32 : Amount -// Int32 : Delay - -// Response ---- -// Double : Progress - -//Blower speed -var stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E8, /* speed =*/0xFFF); //Blower speed -var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); // ORF3 -//Thread.Sleep(5000); //Sleep for 10 milli. -//Blower speed -var stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E8, /* speed =*/0x800); //Blower speed -var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); // ORF3 -//Thread.Sleep(5000); //Sleep for 10 milli. -//Blower speed -var stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E8, /* speed =*/0x400); //Blower speed -var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); // ORF3 -//Thread.Sleep(5000); //Sleep for 10 milli. -//Blower speed -var stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E8, /* speed =*/0x200); //Blower speed -var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); // ORF3 -//Thread.Sleep(5000); //Sleep for 10 milli. -//Blower speed -var stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E8, /* speed =*/0x100); //Blower speed -var response5 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EA, 2); // ORF3 -//Thread.Sleep(5000); //Sleep for 10 milli. - stubManager.WriteLineHex(response1.Progress,4); - stubManager.WriteLineHex(response2.Progress,4); - stubManager.WriteLineHex(response3.Progress,4); - stubManager.WriteLineHex(response4.Progress,4); - stubManager.WriteLineHex(response5.Progress,4); - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_fan.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_fan.cs deleted file mode 100644 index acd5e3c50..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_fan.cs +++ /dev/null @@ -1,90 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -// Request ---- -// Int32 : Amount -// Int32 : Delay - -// Response ---- -// Double : Progress -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0001); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0101); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0201); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0301); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0401); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0501); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0601); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0701); -Thread.Sleep(1000); //Sleep for 10 milli. - -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4001); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4101); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4201); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4301); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4401); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4501); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4601); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4701); -Thread.Sleep(1000); //Sleep for 10 milli. - -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0001); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0101); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0201); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0301); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0401); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0501); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0601); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0701); -Thread.Sleep(1000); //Sleep for 10 milli. - -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4001); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4101); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4201); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4301); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4401); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4501); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4601); -Thread.Sleep(1000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x4701); -Thread.Sleep(1000); //Sleep for 10 milli. - -var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E8, 0); -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_valv1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_valv1.cs deleted file mode 100644 index c81bdaebd..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_valv1.cs +++ /dev/null @@ -1,47 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -// Request ---- -// Int32 : Amount -// Int32 : Delay - -// Response ---- -// Double : Progress - -//valv1 -var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8501); //valv1_en=1 -Thread.Sleep(5000); //Sleep for 10 milli. -var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8401);// valv1_dir=1 -Thread.Sleep(5000); //Sleep for 10 milli. -var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8400);// valv1_dir=0 -Thread.Sleep(5000); //Sleep for 10 milli. -var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8500);// valv1_disable - - -// valve 2 -var response5 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8701); //valv2_en=1 -Thread.Sleep(5000); //Sleep for 10 milli. -var response6 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8601);// valv2_dir=1 -Thread.Sleep(5000); //Sleep for 10 milli. -var response7 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8600);// valv2_dir=0 -Thread.Sleep(5000); //Sleep for 10 milli. -var response8 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8700); //valv2_disable - -//test pump -Thread.Sleep(5000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0701);// pump on -Thread.Sleep(5000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0700); // pump off - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_valv1_disable.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_valv1_disable.cs deleted file mode 100644 index 086063855..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_valv1_disable.cs +++ /dev/null @@ -1,40 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -// Request ---- -// Int32 : Amount -// Int32 : Delay - -// Response ---- -// Double : Progress -//stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8500); //valv1_en=0 -//Thread.Sleep(5000); //Sleep for 10 milli. -//stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8501); //valv1_en=0 -//Thread.Sleep(5000); //Sleep for 10 milli. - - - - int a = 0; - - while (a < 100) - { - a = a + 1; -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8500); //valv1_en=0 -Thread.Sleep(5000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8501); //valv1_en=0 -Thread.Sleep(5000); //Sleep for 10 milli. -//stubManager.WriteLine(a); - } - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_valv1_valv2_pump.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_valv1_valv2_pump.cs deleted file mode 100644 index c4435ab42..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_valv1_valv2_pump.cs +++ /dev/null @@ -1,47 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -// Request ---- -// Int32 : Amount -// Int32 : Delay - -// Response ---- -// Double : Progress - -//valv1 -var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8501); //valv1_en=1 -Thread.Sleep(5000); //Sleep for 10 milli. -var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8401);// valv1_dir=1 -Thread.Sleep(5000); //Sleep for 10 milli. -var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8400);// valv1_dir=0 -Thread.Sleep(5000); //Sleep for 10 milli. -var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8500);// valv1_disable - - -// valve 2 -var response5 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8701); //valv2_en=1 -Thread.Sleep(5000); //Sleep for 10 milli. -var response6 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8601);// valv2_dir=1 -Thread.Sleep(5000); //Sleep for 10 milli. -var response7 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8600);// valv2_dir=0 -Thread.Sleep(5000); //Sleep for 10 milli. -var response8 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8700); //valv2_disable - -//test pump -//Thread.Sleep(5000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0701);// pump on -Thread.Sleep(5000); //Sleep for 10 milli. -stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0700); // pump off - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_valv1_valv2_pump_Blower.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_valv1_valv2_pump_Blower.cs deleted file mode 100644 index f873ba057..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/test_valv1_valv2_pump_Blower.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -// Request ---- -// Int32 : Amount -// Int32 : Delay - -// Response ---- -// Double : Progress - - -//fan test -var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFAC1, 0xFF); //valv1_en=1 -Thread.Sleep(5000); //Sleep for 10 milli. - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/valv1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/valv1.cs deleted file mode 100644 index 47f5cdff5..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/valv1.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -// Request ---- -// Int32 : Amount -// Int32 : Delay - -// Response ---- -// Double : Progress - -//valv1 -var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8501); //valv1_en=1 -//Thread.Sleep(5000); //Sleep for 10 milli. -//var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8401);// valv1_dir=1 -//Thread.Sleep(5000); //Sleep for 10 milli. -//var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8400);// valv1_dir=0 -//Thread.Sleep(5000); //Sleep for 10 milli. -//var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8500);// valv1_disable - - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/valv2.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/valv2.cs deleted file mode 100644 index ce19f0d1e..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/valv2.cs +++ /dev/null @@ -1,34 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -// Request ---- -// Int32 : Amount -// Int32 : Delay - -// Response ---- -// Double : Progress - - - -// valve 2 -var response5 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8701); //valv2_en=1 -//Thread.Sleep(5000); //Sleep for 10 milli. -//var response6 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8601);// valv2_dir=1 -//Thread.Sleep(5000); //Sleep for 10 milli. -//var response7 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8600);// valv2_dir=0 -//Thread.Sleep(5000); //Sleep for 10 milli. -//var response8 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8700); //valv2_disable - - -}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/whs control loop disable.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/whs control loop disable.cs deleted file mode 100644 index 01bd67d0a..000000000 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/whs control loop disable.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ -//Loading Arm Calibration - this command writes the arm position to a non-volatile memory - -int ControlLoopEnable = 0x1000; -int ControlLoopDisable = 0x0000; - -ProgressRequest progressRequest = new ProgressRequest(); -progressRequest.Amount = 0x3e8; -progressRequest.Delay = ControlLoopDisable+2700; - - var response = stubManager.Run<ProgressResponse>(progressRequest); - -}
\ No newline at end of file |
