aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Stubs Collection/Procedures/Priming1.pproj
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Stubs Collection/Procedures/Priming1.pproj')
-rw-r--r--Software/Stubs Collection/Procedures/Priming1.pproj1015
1 files changed, 0 insertions, 1015 deletions
diff --git a/Software/Stubs Collection/Procedures/Priming1.pproj b/Software/Stubs Collection/Procedures/Priming1.pproj
deleted file mode 100644
index adfed3f3e..000000000
--- a/Software/Stubs Collection/Procedures/Priming1.pproj
+++ /dev/null
@@ -1,1015 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
-using System.ComponentModel;
-using System.Linq;
-using System.Text;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Drawing;
-using Google.Protobuf;
-using Tango.BL.Entities;
-using Tango.BL.Enumerations;
-using Tango.PMR.Stubs;
-using Tango.PMR.Diagnostics;
-using Tango.FSE.Common.Connection;
-using Tango.FSE.Common.Diagnostics;
-using Tango.FSE.Procedures;
-using System.IO;
-using System.Diagnostics;
-using System.Windows.Forms;
-
-
-public class Program
-{
-
-
-private IProcedureContext context;
-
-//---------------------Start Command ----------------
-const Int32 CMD_RUN = 0; //Run on Pulse Per Secound .positive run Up and negative run Down b
-const Int32 CMD_STOP= 1; //0;Hard stop(Defualt);1-Soft stop;2-Hard Hiz;3-Soft Hiz
-const Int32 CMD_VALVE= 2; //0-to Midtank ,1-to head
-const Int32 CMD_DLY = 3; //delay in Seconds .
-const Int32 CMD_TIME= 4; //Print Time .
-const Int32 CMD_PRESS= 5; //return from Delay loop when pressure is high (on mBAR) .
-const Int32 CMD_LOOP_NM=6; //NUMBER OF counter
-const Int32 CMD_LOOP= 7; //jump up(+) or down(-) command u
-const Int32 CMD_MTV_OPEN = 8; //0 Air ; 1 Ink
-const Int32 CMD_MTV_CLOSE= 9; //0 Air ; 1 Ink
-const Int32 CMD_LBL= 10; //label for user
-const Int32 CMD_SMP= 11; //sample rate ,defualt 100msec (1); for 1 second is 10.
-const Int32 CMD_PRESL= 12; //return from Delay loop when pressure is low (on mBAR) .
-
-const Int32 CMD_END = 13; //end loop .
-
-
-Int32[] BuildUp_Table = new int []
-{
- CMD_VALVE,1,
- CMD_PRESL,200,
- CMD_DLY,200,
-
- CMD_LOOP_NM,3,
-
- CMD_VALVE,0,
- CMD_DLY,1,
- CMD_VALVE,1,
- CMD_DLY,1,
- CMD_LOOP,-4,
-
- CMD_VALVE,0,
- CMD_RUN,1068,
- CMD_PRESS,1000, //mbar --> 1000 = 100% work, 4000 = 200% work, 350 = 20% work
- CMD_DLY,150,
- CMD_LBL,1,
- CMD_PRESS,2000, //mbar --> 2000 = 100% work, 4000 = 200% work, 350 = 20% work
- CMD_DLY,60,
- CMD_LBL,2,
- CMD_PRESS,3000,
- CMD_DLY,60, // to limit
- CMD_STOP,0,
- CMD_VALVE,1,
- CMD_END,3,
-};
-
-
-Int32[] Up_Table = new int []
-{
- CMD_VALVE,1,
- CMD_PRESL,200,
- CMD_DLY,200,
-
- CMD_PRESS,3000, //mbar --> 1000 = 100% work, 4000 = 200% work, 350 = 20% work
- CMD_RUN,534, // 100%
- CMD_DLY,120,
- CMD_STOP,0,
- CMD_END,3,
-};
-Int32 Dispenser_sample_rate= 1;
-
- string path = @"C:\Dispenser_setup\Log\";
-//----------------------
-const UInt32 I2C_ID = 4; //MCU_I2C4
-const UInt32 TCA9548A_address = 0xE2;
-const UInt32 I2C_Slave_Low_Add = 0xA0; //eeprom address - 64k low
-const UInt32 I2C_Slave_High_Add = 0xA2; //eeprom address - 64k High
-//----------------------
-byte [] EEPROM_Data = new byte [128];
-
-
-//---------------------End Command ----------------
-
-const Int32 Dispenser_Motor1 = 6;
-const Int32 Dispenser_Motor2 = 7;
-const Int32 Dispenser_Motor3 = 8;
-const Int32 Dispenser_Motor4 = 9;
-const Int32 Dispenser_Motor5 = 10;
-const Int32 Dispenser_Motor6 = 11;
-const Int32 Dispenser_Motor7 = 12;
-const Int32 Dispenser_Motor8 = 13;
-
-const Int32 AN_IDS_PRESSENS_1 = 2;
-const Int32 AN_IDS_PRESSENS_2 = 3;
-const Int32 AN_IDS_PRESSENS_3 = 4;
-const Int32 AN_IDS_PRESSENS_4 = 5;
-const Int32 AN_IDS_PRESSENS_5 = 6;
-const Int32 AN_IDS_PRESSENS_6 = 7;
-const Int32 AN_IDS_PRESSENS_7 = 8;
-const Int32 AN_IDS_PRESSENS_8 = 9;
-
-const Int32 F2_LS_01_Direct = 0x60000420 ; // Reads the direct values that are currently being sent to the fpga. rsv rsv rsv rsv F2_LS_DISPENSER_UP_2 F2_LS_DISPENSER_25_2 F2_LS_DISPENSER_75_2 F2_LS_DISPENSER_DOWN_2 F2_LS_DISPENSER_50_2 F2_LS_DISPENSER_SPARE_2 F2_LS_DISPENSER_UP_1 F2_LS_DISPENSER_25_1 F2_LS_DISPENSER_75_1 F2_LS_DISPENSER_DOWN_1 F2_LS_DISPENSER_50_1 F2_LS_DISPENSER_SPARE_1
-const Int32 F2_LS_02_Direct = 0x60000430 ; // Reads the direct values that are currently being sent to the fpga. rsv rsv rsv rsv F2_LS_DISPENSER_UP_4 F2_LS_DISPENSER_25_4 F2_LS_DISPENSER_75_4 F2_LS_DISPENSER_DOWN_4 F2_LS_DISPENSER_50_4 F2_LS_DISPENSER_SPARE_4 F2_LS_DISPENSER_UP_3 F2_LS_DISPENSER_25_3 F2_LS_DISPENSER_75_3 F2_LS_DISPENSER_DOWN_3 F2_LS_DISPENSER_50_3 F2_LS_DISPENSER_SPARE_3
-const Int32 F2_LS_03_Direct = 0x60000440 ; // Reads the direct values that are currently being sent to the fpga. rsv rsv rsv rsv F2_LS_DISPENSER_UP_6 F2_LS_DISPENSER_25_6 F2_LS_DISPENSER_75_6 F2_LS_DISPENSER_DOWN_6 F2_LS_DISPENSER_50_6 F2_LS_DISPENSER_SPARE_6 F2_LS_DISPENSER_UP_5 F2_LS_DISPENSER_25_5 F2_LS_DISPENSER_75_5 F2_LS_DISPENSER_DOWN_5 F2_LS_DISPENSER_50_5 F2_LS_DISPENSER_SPARE_5
-const Int32 F2_LS_04_Direct = 0x60000480 ; // Reads the direct values that are currently being sent to the fpga. rsv rsv rsv rsv F2_LS_DISPENSER_UP_8 F2_LS_DISPENSER_25_8 F2_LS_DISPENSER_75_8 F2_LS_DISPENSER_DOWN_8 F2_LS_DISPENSER_50_8 F2_LS_DISPENSER_SPARE_8 F2_LS_DISPENSER_UP_7 F2_LS_DISPENSER_25_7 F2_LS_DISPENSER_75_7 F2_LS_DISPENSER_DOWN_7 F2_LS_DISPENSER_50_7 F2_LS_DISPENSER_SPARE_7
-
-const Int32 Dispenser_Valve1 = 0;
-const Int32 Dispenser_Valve2 = 1;
-const Int32 Dispenser_Valve3 = 2;
-const Int32 Dispenser_Valve4 = 3;
-const Int32 Dispenser_Valve5 = 4;
-const Int32 Dispenser_Valve6 = 5;
-const Int32 Dispenser_Valve7 = 6;
-const Int32 Dispenser_Valve8 = 7;
-
-const ushort MinPress_Mbar_Add =0x5c ;
-const ushort MaxPress_Mbar_Add =0x60 ;
-
-const Int32 F3_VALVE_OUT = 0x600000e2;
-
-//string path = "C:\\Dispenser_setup\\Log\\";
-
-
-//Int32[] Start_Table;
-
-Int32[] Start_Table = new Int32 [10000];
-
-UInt32 [] Motor_Dir=new UInt32 [8] {0,0,0,0,0,0,0,0};
-
-string Dispenser_Fname ;
-
-Int32 Dispenser_ptr =-1;
-
-Int32 [] Dispenser_press= new Int32[8]{0,0,0,0,0,0,0,0};
-Int32 max_pressure_level = 20000;
-Int32 min_pressure_level = -20000;
-
-Int32 [] A2D_Dispenser= new Int32[8]{0,0,0,0,0,0,0,0};
-Int32 Loop_cnt= 1;
-Int32 Loop_length=1;
-
-Int32 PressureSensorType= 1; //1- new -1up +10 . 0-old 0 to +10
-Int32 Temp_Delay=0;
-
-
-UInt32 RD_LS_01_Direct;
-UInt32 RD_LS_02_Direct;
-UInt32 RD_LS_03_Direct;
-UInt32 RD_LS_04_Direct;
-
-long Lebel1_time;
-long Lebel2_time;
-
-long time_Table;
-
-Int32 msec_index=0;
-
-Int32 MaxPress_Mbar;
-Int32 MinPress_Mbar;
-string state;
-
- public Int32 OnExecute(IProcedureContext context)
- {
- long Max_PBU;
- Int32 Index=0;
- Int32 speed=0;
- Int32 Dispenser_Nm;
- this.context = context;
-
- string box_msg = "Make sure Mixer Hot ";
- MessageBox.Show(box_msg);
-
- var response1 = context.RequestUserInputFor<String>("Dispenser Number", "Enter Dispenser number to make priming (1-8):");
- context.WriteLine(response1);
- Dispenser_Nm = Int32.Parse(response1);
-
- check_Min_Max_Mbar(Dispenser_Nm);
-
- if (Dispenser_Nm==8)
- Max_PBU=6000;
- else
- Max_PBU=4000;
-
-
- if (!Directory.Exists(path))
- {
- Directory.CreateDirectory(path);
- }
- context.WriteLine(path);
-
- context.Send<ProgressResponse>("ProgressRequest" ,0xe0, 1);
-
- Dispenser_Fname=path + "Dispenser_Nm_" + Dispenser_Nm+"_" + DateTime.Now.ToString("MM-dd-yy hh-mm")+ ".csv" ;
-
- context.WriteLine(Dispenser_Fname);
-
- context.WriteToFile(Dispenser_Fname,"Dispenser Nm," + Dispenser_Nm + "\n" );
- context.AppendToFile(Dispenser_Fname,"Pressure,Command,Value,DateTime,Remark\n" );
- for(int j=0; j<2;j++)
- {
- for(int i=0; i<4;i++)
- {
- state="PBU No. "+ (4*j+i+1 );
- Start_Table=BuildUp_Table;
- Table_Run(Dispenser_Nm );
- if (time_Table>300000)
- {
- context.AddResult(ResultType.Failed,"PBU", "PBU No."+ (4*j+i+1 ) + " Fail");
- return 0;
- }
- context.AddResult(ResultType.Passed,"PBU","PBU No."+ (4*j+i+1 ) + " Pass");
-
- }
- state="Flow No."+ (j+1 ) ;
- Start_Table=Up_Table;
- Table_Run(Dispenser_Nm );
- if (time_Table<115000)
- {
- context.WriteLine("time_Table= " +time_Table);
- context.AddResult(ResultType.Failed,"Flow", "Flow No."+ (j+1) + " Fail");
- return 0;
- }
- context.AddResult(ResultType.Passed,"Flow","Flow No."+ (j+1 ) + " Pass");
-
- }
- state="Last PBU " ;
- Start_Table=BuildUp_Table;
- Table_Run(Dispenser_Nm );
- long Time=Lebel2_time-Lebel1_time;
- if (Time>Max_PBU)
- {
- context.AddResult(ResultType.Failed,"PBU", "PBU = " +Time + "msec ");
- state="PBU = " +Time + "msec \tFail";
- }
- else
- {
- context.AddResult(ResultType.Passed,"PBU", "PBU = " +Time + "msec ");
- state="PBU = " +Time + "msec \tPass";
- }
- return 0;
-
- }
-
-/////////////////////////////////////////////
-void check_Min_Max_Mbar(Int32 i )
-{
- int k;
- string s ;
- i--;
-
- context.WriteLine("-------------- write Enable Channel ------------"); //debug
- enable_channel(i); // Chanel 0-7 => Disp0enser 0-7
- context.WriteLine("-------------- Read_header ------------"); //debug
-
- context.WriteLine("-------------- write_address_eeprom ------------"); //debug
- write_address_eeprom (I2C_Slave_Low_Add,MinPress_Mbar_Add);
- context.WriteLine("-------------- read_data_from_eeprom ------------"); //debug
- read_data_from_eeprom (I2C_Slave_Low_Add,1);
- if (EEPROM_Data[0]==0 )
- { PressureSensorType=0;
- context.WriteLine("PressureSensorType=0" ); //debug
- }
- else
- {
- PressureSensorType=1;
- context.WriteLine("PressureSensorType=1" ); //debug
- }
-
-}
-//----------------write address eeprom -------------------------
-public void write_address_eeprom (UInt32 I2C_Add, UInt32 Eeprom_Add)
-{
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = I2C_Add;
-
- UInt32 uInt32 = new UInt32();
- stubI2CWriteBytesRequest.BytesTWrite.Add(Convert.ToByte( (Eeprom_Add & 0xff00) >>8)); //Byte High add to write
- stubI2CWriteBytesRequest.BytesTWrite.Add(Convert.ToByte(Eeprom_Add & 0xff)); //Byte Low add to write
- context.WriteLine( (Eeprom_Add & 0xff00) >>8) ; //debug
- context.WriteLine( Eeprom_Add & 0xff); //debug
-
- context.Send<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-}
-//------------------- read Data from EEprom--------------------------
-
-public void read_data_from_eeprom ( UInt32 I2C_Add, UInt32 cnt )
-{
- StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();
- stubI2CReadBytesRequest.I2CId = I2C_ID;
- stubI2CReadBytesRequest.SlaveAddress = (I2C_Add + 1);
- stubI2CReadBytesRequest.NumberOfBytesToRead = cnt; // Number of bytes to read
-
- var response1 = context.Send<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);
-
- for(int i=0; i<cnt;i++)
- {
- EEPROM_Data[i]=Convert.ToByte(response1.ReadBytes[i]);
- context.WriteLine(EEPROM_Data[i] ); //debug
-
- }
-}
-
-
-///////////////////////////////////////////////
-//----------- enable I2c channel --------------
-public int enable_channel(Int32 Channel_ID)
-{
- uint Const_temp = 0x01;
-
- StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
- stubI2CWriteBytesRequest.I2CId = I2C_ID;
- stubI2CWriteBytesRequest.SlaveAddress = TCA9548A_address;
-
- Const_temp = Const_temp << Channel_ID;
- stubI2CWriteBytesRequest.BytesTWrite.Add(Const_temp);//enable i2c channel 0 Dispenser 1
-
- var response = context.Send<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
-
- return 1;
-}
-
-
-//////////////////////////////////////////////////////////////
-Int32 Table_Run(Int32 Dispenser )
-
-{
- Int32 COMMAND=0;
- Int32 Data=0;
- Int32 count=0;
-
- Dispenser--; //check from 0-7
-
- int j=0;
- var stopwatch = new Stopwatch();
- stopwatch.Start();
-
- long elapsed_time = stopwatch.ElapsedMilliseconds;
- context.WriteLine(elapsed_time);
-
- while (count!=-1)
- {
- msec_index=msec_index+1;
-
- if (Dispenser<2)
- {
- var response1 = context.Send<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F2_LS_01_Direct);
- RD_LS_01_Direct=response1.Value ;
- }
- else if ( (Dispenser<4) )
- {
- var response1 = context.Send<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F2_LS_02_Direct);
- RD_LS_02_Direct=response1.Value ;
- }
- else if ( (Dispenser<6) )
- {
- var response1 = context.Send<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F2_LS_03_Direct);
- RD_LS_03_Direct=response1.Value ;
- }
- else
- {
- var response1 = context.Send<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F2_LS_04_Direct);
- RD_LS_04_Direct=response1.Value ;
- }
- if (Dispenser<4)
- {
- var response2 = context.Send<StubIntADCReadResponse>("StubIntADCReadRequest" ,0x8000 + AN_IDS_PRESSENS_1);
- A2D_Dispenser[0]=(response2.SamplingInBits)>>16;
- A2D_Dispenser[1] =(response2.SamplingInBits) & 0x0000ffff;
- A2D_Dispenser[2] =(response2.VoltageSamplingMv)>>16;
- A2D_Dispenser[3] =(response2.VoltageSamplingMv) & 0x0000ffff;
- }
- else
- {
- var response3 = context.Send<StubIntADCReadResponse>("StubIntADCReadRequest" ,0x8000 + AN_IDS_PRESSENS_5);
- A2D_Dispenser[4] =(response3.SamplingInBits)>>16;
- A2D_Dispenser[5] =(response3.SamplingInBits)& 0x0000ffff;
- A2D_Dispenser[6] =(response3.VoltageSamplingMv)>>16;
- A2D_Dispenser[7] =(response3.VoltageSamplingMv)& 0x0000ffff;
- }
-
- COMMAND=Start_Table[count];
- Data=Start_Table[(count+1)];
- //Index=Index+2;
- switch (COMMAND)
- {
- case CMD_RUN:
- Motor_Run(Data,Dispenser);
- count = count+2;
- break;
-
- case CMD_VALVE:
- Valve_3W(Data,Dispenser);
- count = count+2;
- break;
-
- case CMD_STOP:
- Motor_Stop(Data,Dispenser);
- count = count+2;
- break;
-
- case CMD_DLY:
- Delay_on_second(Data,Dispenser);
- if (Temp_Delay ==0)
- {
- max_pressure_level=20000;
- min_pressure_level=-20000;
- count = count+2;
- }
- break;
-
- case CMD_TIME:
- Print_Time();
- count = count+2;
- break;
-
- case CMD_PRESS:
- max_pressure_level=Data;
- context.AppendToFile(Dispenser_Fname,",Max_pressure_level is, " + Data +","+DateTime.Now+"\n");
- count = count+2;
- break;
-
- case CMD_PRESL:
- min_pressure_level=Data;
- context.AppendToFile(Dispenser_Fname,",Min_pressure_level is, " + Data +","+DateTime.Now+"\n");
- count = count+2;
- break;
-
- case CMD_LBL:
- context.AppendToFile(Dispenser_Fname,",Label," + Data+","+DateTime.Now+"\n");
- if(Data==1)
- Lebel1_time=stopwatch.ElapsedMilliseconds;
- if(Data==2)
- Lebel2_time=stopwatch.ElapsedMilliseconds;
- count = count+2;
- break;
-
-
- case CMD_SMP:
- context.AppendToFile(Dispenser_Fname,",SampleRate," + Data+","+DateTime.Now+"\n");
- Dispenser_sample_rate =Data;
- count = count+2;
- break;
-
- case CMD_END:
- count=-1;
- context.AppendToFile(Dispenser_Fname,",End testing,,"+DateTime.Now+"\n");
- break;
-
- case CMD_MTV_OPEN:
- open_midtank_valve(Data,Dispenser);
- context.AppendToFile(Dispenser_Fname,",OPEN MIDTANK, " + Dispenser+","+DateTime.Now+"\n");
- count = count+2;
- break;
-
- case CMD_MTV_CLOSE:
- close_midtank_valve(Data,Dispenser);
- context.AppendToFile(Dispenser_Fname,",CLOSE MIDTANK, " + Dispenser+","+DateTime.Now+"\n");
- count = count+2;
- break;
-
- case CMD_LOOP_NM:
-
- Loop_cnt=Data-1;
- context.AppendToFile(Dispenser_Fname,",Counter Loop,"+ Data+","+DateTime.Now +"\n");
- count = count+2;
- break;
-
- case CMD_LOOP:
-
- if (Loop_cnt!=0)
- {
- context.AppendToFile(Dispenser_Fname,"Counter Loop,"+ Loop_cnt+","+DateTime.Now+"\n" );
- count = count+2*Data;
- Loop_cnt--;
-
- }
- else
- {
- context.AppendToFile(Dispenser_Fname,",End loop,,"+DateTime.Now +"\n");
- count = count+2;
- }
- break;
-
- default:
- break;
-
- }
-
- long elapsed_time1 = stopwatch.ElapsedMilliseconds;
- long elapsed_time2= elapsed_time1-elapsed_time;
- if (elapsed_time2>95)
- elapsed_time2=95; //minimum time
- Thread.Sleep(100-(int )(elapsed_time2));
-
- elapsed_time = stopwatch.ElapsedMilliseconds;
-
-
- j++;
- if (j==10)
- {
- j=0;
- context.WriteLine(Dispenser_press[Dispenser]+ " mBar\t"+state + "\tTime-" + (elapsed_time/1000));
- }
- }
- time_Table=elapsed_time;
- return 0;
-}
-
-///////////////////////////////////////////////////////////////////
-Int32 Motor_Run(Int32 speed,Int32 Dispenser)
-
-{
-
- switch (Dispenser)
- {
- case 0:
- if ( speed<0)
- {
- Motor_Dir[0]=2;
- if ((RD_LS_01_Direct & 0x04)!=0x04)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now +",Warning Motor on Limit\n");
- return 0;
- }
-
- context.Send<StubMotorRunResponse>("StubMotorRunRequest" ,Dispenser_Motor1, false, (-speed));
- }
- else
- {
- Motor_Dir[0]=1;
- if ((RD_LS_01_Direct & 0x20)!=0x20)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now +",Warning Motor on Limit\n");
- return 0;
- }
- context.Send<StubMotorRunResponse>("StubMotorRunRequest" ,Dispenser_Motor1, true, (speed));
- }
- break;
-
- case 1:
- if ( speed<0)
- {
- Motor_Dir[1]=2;
- if ((RD_LS_01_Direct & 0x100)!=0x100)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now +",Warning Motor on Limit\n");
- return 0;
- }
- context.Send<StubMotorRunResponse>("StubMotorRunRequest" ,Dispenser_Motor2, false, (-speed));
- }
- else
- {
- Motor_Dir[1]=1;
- if ((RD_LS_01_Direct & 0x800)!=0x800)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now +",Warning Motor on Limit\n");
- return 0;
- }
- context.Send<StubMotorRunResponse>("StubMotorRunRequest" ,Dispenser_Motor2, true, (speed));
- }
- break;
-
- case 2:
- if ( speed<0)
- {
- Motor_Dir[2]=2;
- if ((RD_LS_02_Direct & 0x04)!=0x04)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now +",Warning Motor on Limit\n");
- return 0;
- }
- context.Send<StubMotorRunResponse>("StubMotorRunRequest" ,Dispenser_Motor3, false, (-speed));
- }
- else
- {
- Motor_Dir[2]=1;
- if ((RD_LS_02_Direct & 0x20)!=0x20)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now+ ",Warning Motor on Limit\n");
- return 0;
- }
- context.Send<StubMotorRunResponse>("StubMotorRunRequest" ,Dispenser_Motor3, true, (speed));
- }
- break;
-
- case 3:
- if ( speed<0)
- {
- Motor_Dir[3]=2;
-
- if ((RD_LS_02_Direct & 0x100)!=0x100)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now+ ",Warning Motor on Limit\n");
- return 0;
- }
- context.Send<StubMotorRunResponse>("StubMotorRunRequest" ,Dispenser_Motor4, false, (-speed));
- }
- else
- {
- Motor_Dir[3]=1;
-
- if ((RD_LS_02_Direct & 0x800)!=0x800)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now +",Warning Motor on Limit\n");
- return 0;
- }
- context.Send<StubMotorRunResponse>("StubMotorRunRequest" ,Dispenser_Motor4, true, (speed));
- }
- break;
-
- case 4:
- if ( speed<0)
- {
- Motor_Dir[4]=2;
- if ((RD_LS_03_Direct & 0x04)!=0x04)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now+ ",Warning Motor on Limit\n");
- return 0;
- }
-
- context.Send<StubMotorRunResponse>("StubMotorRunRequest" ,Dispenser_Motor5, false, (-speed));
- }
- else
- {
- Motor_Dir[4]=1;
- if ((RD_LS_03_Direct & 0x20)!=0x20)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now+ ",Warning Motor on Limit\n");
- return 0;
- }
- context.Send<StubMotorRunResponse>("StubMotorRunRequest" ,Dispenser_Motor5, true, (speed));
- }
- break;
-
- case 5:
- if ( speed<0)
- {
- Motor_Dir[5]=2;
- if ((RD_LS_03_Direct & 0x100)!=0x100)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now +",Warning Motor on Limit\n");
- return 0;
- }
- context.Send<StubMotorRunResponse>("StubMotorRunRequest" ,Dispenser_Motor6, false, (-speed));
- }
- else
- {
- Motor_Dir[5]=1;
- if ((RD_LS_03_Direct & 0x800)!=0x800)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now+ ",Warning Motor on Limit\n");
- return 0;
- }
- context.Send<StubMotorRunResponse>("StubMotorRunRequest" ,Dispenser_Motor6, true, (speed));
- }
- break;
-
- case 6:
- if ( speed<0)
- {
- Motor_Dir[6]=2;
- if ((RD_LS_04_Direct & 0x04)!=0x04)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now +",Warning Motor on Limit\n");
- return 0;
- }
- context.Send<StubMotorRunResponse>("StubMotorRunRequest" ,Dispenser_Motor7, false, (-speed));
- }
- else
- {
- Motor_Dir[6]=1;
- if ((RD_LS_04_Direct & 0x20)!=0x20)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now +",Warning Motor on Limit\n");
- return 0;
- }
- context.Send<StubMotorRunResponse>("StubMotorRunRequest" ,Dispenser_Motor7, true, (speed));
- }
- break;
-
- case 7:
- if ( speed<0)
- {
- Motor_Dir[7]=2;
-
- if ((RD_LS_04_Direct & 0x100)!=0x100)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now +",Warning Motor on Limit\n");
- return 0;
- }
- context.Send<StubMotorRunResponse>("StubMotorRunRequest" ,Dispenser_Motor8, false, (-speed));
- }
- else
- {
- Motor_Dir[7]=1;
-
- if ((RD_LS_04_Direct & 0x800)!=0x800)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now +",Warning Motor on Limit\n");
- return 0;
- }
- context.Send<StubMotorRunResponse>("StubMotorRunRequest" ,Dispenser_Motor8, true, (speed));
- }
- break;
-
- default:
- break;
-
- }
- context.AppendToFile(Dispenser_Fname,",Run," +speed+","+DateTime.Now +"\n" );
-
- return 1;
-}
-
-
- Int32 Valve_3W(Int32 Valve_Value,Int32 Dispenser)
-{
- if ( Valve_Value==1)
- context.Send<StubValveResponse>("StubValveRequest" ,Dispenser_Valve1+Dispenser, 3, true); //3 3Way
- else
- context.Send<StubValveResponse>("StubValveRequest" ,Dispenser_Valve1+Dispenser, 3, false); //3 3Way
-
- context.AppendToFile(Dispenser_Fname,",Dispenser Valve position is, " + Valve_Value+","+DateTime.Now +"\n" );
-
- return 1;
-}
-//---------------------------------------
-
- Int32 Motor_Stop(Int32 Stop_Value,Int32 Dispenser )
-{
- context.Send<StubMotorStopResponse>("StubMotorStopRequest" ,Dispenser_Motor1+Dispenser, Stop_Value);
-
- context.AppendToFile(Dispenser_Fname,",Motor Stop," + Stop_Value+","+DateTime.Now +"\n");
- Motor_Dir[Dispenser]=0;
- return 1;
-}
-
-//---------------------------------------
-
- Int32 Delay_on_second(Int32 Delay,Int32 Dispenser )
-{
-//Int32 temp1;
-Int32 pressure_om_mBAR=0;
- if (Temp_Delay ==0)
- {
- context.AppendToFile(Dispenser_Fname,",DLY, " + Delay +","+DateTime.Now+"\n");
- Temp_Delay = Delay *10 -1;
-// context.Write("A"); //debug
- }
- else
- Temp_Delay--;
-
- if ( LimitSW_Dispenser(Dispenser)==0)
- {
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now+",Warning Motor on Limit\n");
- MotorStop(Dispenser);
- Temp_Delay =0; //end delay
-// context.Write("C"); //debug
-
- return 0 ;
- }
-
- pressure_om_mBAR=Calc_mBAR(Dispenser,true);
- if (pressure_om_mBAR > max_pressure_level)
- {
- // MotorStop(Dispenser);
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now +",Warning Pressure too high\n");
- Temp_Delay =0; //end delay
-// context.Write("D"); //debug
-
- return 0;
- }
- if (pressure_om_mBAR < min_pressure_level)
- {
- // MotorStop(Dispenser);
- context.AppendToFile(Dispenser_Fname,",,,"+DateTime.Now +",Warning Pressure too low\n");
- Temp_Delay =0; //end delay
-// context.Write("D"); //debug
-
- return 0;
- }
-
-
- return 1;
-}
-
-Int32 LimitSW_Dispenser(Int32 Dispenser)
-{
-
- if (Dispenser==0)
-
- {
-
-// var response1 = context.Send<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F2_LS_01_Direct);
-
- if (((RD_LS_01_Direct & 0x04)!=0x04) && (Motor_Dir[0]==2))
- return 0;
- else
- if (((RD_LS_01_Direct & 0x20)!=0x20) && (Motor_Dir[0]==1))
- return 0;
- else
- return 1;
- }
-
- if (Dispenser==1)
-
- {
-// var response2 = context.Send<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F2_LS_01_Direct);
- if (((RD_LS_01_Direct & 0x100)!=0x100) && (Motor_Dir[1]==2))
- return 0;
- else
- if (((RD_LS_01_Direct & 0x800)!=0x800) && (Motor_Dir[1]==1))
- return 0;
- else
- return 1;
- }
-
-
- if (Dispenser==2)
-
- {
-
- //var response3 = context.Send<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F2_LS_02_Direct);
- if (((RD_LS_02_Direct & 0x04)!=0x04) && (Motor_Dir[2]==2))
- return 0;
- else
- if (((RD_LS_02_Direct & 0x20)!=0x20) && (Motor_Dir[2]==1))
- return 0;
- else
- return 1;
-
- }
-
- if (Dispenser==3)
-
- {
- var response4 = context.Send<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F2_LS_02_Direct);
- if (((RD_LS_02_Direct & 0x100)!=0x100) && (Motor_Dir[3]==2))
- return 0;
- else
- if (((RD_LS_02_Direct & 0x800)!=0x800) && (Motor_Dir[3]==1))
- return 0;
- else
- return 1;
- }
-
-
-
-
- if (Dispenser==4)
-
- {
-
-// var response1 = context.Send<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F2_LS_01_Direct);
- if (((RD_LS_03_Direct & 0x04)!=0x04) && (Motor_Dir[4]==2))
- return 0;
- else
- if (((RD_LS_03_Direct & 0x20)!=0x20) && (Motor_Dir[4]==1))
- return 0;
- else
- return 1;
- }
-
- if (Dispenser==5)
-
- {
-// var response2 = context.Send<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F2_LS_01_Direct);
- if (((RD_LS_03_Direct & 0x100)!=0x100) && (Motor_Dir[5]==2))
- return 0;
- else
- if (((RD_LS_03_Direct & 0x800)!=0x800) && (Motor_Dir[5]==1))
- return 0;
- else
- return 1;
- }
-
-
- if (Dispenser==6)
-
- {
-
- //var response3 = context.Send<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F2_LS_02_Direct);
- if (((RD_LS_04_Direct & 0x04)!=0x04) && (Motor_Dir[6]==2))
- return 0;
- else
- if (((RD_LS_04_Direct & 0x20)!=0x20) && (Motor_Dir[6]==1))
- return 0;
- else
- return 1;
-
- }
-
- if (Dispenser==7)
-
- {
-// var response4 = context.Send<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F2_LS_02_Direct);
- if (((RD_LS_04_Direct & 0x100)!=0x100) && (Motor_Dir[7]==2))
- return 0;
- else
- if (((RD_LS_04_Direct & 0x800)!=0x800) && (Motor_Dir[7]==1))
- return 0;
- else
- return 1;
- }
-
-
- return 0;
-}
-
-
-Int32 Print_Time()
-{
- context.AppendToFile(Dispenser_Fname,",Time is\t,,"+ DateTime.Now +"\n" );
-
- return 1;
-}
-
-
-
-Int32 Calc_mBAR(Int32 Dispenser, bool save_press)
-{
-Int32 Data;
-Int32 Sense1;
-Int32 temp=0;
-
- Data =A2D_Dispenser[Dispenser];
- if (Data<100)
- temp=-1;
- Data=Data-710;
- if (Data<0)
- Data=0;
-
- Data=Data*(10000+PressureSensorType*1000)/2840; // for -1 to 10 bar Press_Sensor_Type=1 else 0
- Data=Data-1000*PressureSensorType; // for -1 to 10 bar
-
- if (temp==-1) //if SamplingInBits <100 then No pressure sensor exist
- Sense1=-9999 ;
- else
- Sense1=Data ;
- if ( ((msec_index) % (Dispenser_sample_rate)) == 0)
- {
- context.AppendToFile(Dispenser_Fname,"" + Sense1+"\n");
- }
- Dispenser_press[Dispenser]=Sense1;
- return Sense1;
-
- }
-
-
-//--------------------------------
-int open_midtank_valve (Int32 valve_type,Int32 valve_nm) //valve_type=0 is Air ,1 is Ink ; valve_nm 0-7
-{
- SetBit (F3_VALVE_OUT,((valve_type+1)*8)- valve_nm-1, 1);
- return 1;
-
-}
-//--------------------------------
-int close_midtank_valve (Int32 valve_type,Int32 valve_nm) //valve_type=0 is Air ,1 is Ink ; valve_nm 0-7
-{
- SetBit (F3_VALVE_OUT,((valve_type+1)*8)- valve_nm-1, 0);
- return 1;
-}
-//--------------------------------
-Int32 SetBit(Int32 Adr, Int32 BitNo, Int32 Bit)
-{
- Int32 BitMask;
-
- var response = context.Send<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" , F3_VALVE_OUT);
- Int32 RV = (Int32) response.Value & 0xffff;
-
-
- if (Bit == 0x1)
- {
- BitMask = 0x1 << BitNo;
- RV = RV | BitMask;
- context.Send<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_VALVE_OUT , RV);
- }
- else if (Bit == 0x0)
- {
- BitMask = ~(0x1 << BitNo);
- RV = RV & BitMask;
- context.Send<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_VALVE_OUT , RV);
- }
- return 1;
-}
-//----------------------------------
- void MotorStop(Int32 i)
-{
-
-context.Send<StubMotorStopResponse>("StubMotorStopRequest" ,Dispenser_Motor1+i, 2);
-Motor_Dir[i]=0; //0 stop 1- up 2-dn
-
-}
-
-} \ No newline at end of file