aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Stubs Collection/stubs/2Way_Valves_new.cs
blob: 22fa91ca1c91fbdfa5550c73cc0632a3c69fca78 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
using System;
using System.Text;
using System.Linq;
using System.Drawing;
using 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 FPGA3 =  0x60000800;
const Int32 F3_VALVE_OUT = 0x0E2;

/*

7	8
5	6
3	4
1	2
FRONT

*/

const Int32 MIDTANK2MANIF4_VALVE_2 = 1 << 0;//8
const Int32 MIDTANK2MANIF4_VALVE_1 = 1 << 1;//4
const Int32 MIDTANK2MANIF3_VALVE_2 = 1 << 2;//7
const Int32 MIDTANK2MANIF3_VALVE_1 = 1 << 3;//3
const Int32 MIDTANK2MANIF2_VALVE_2 = 1 << 4;//6
const Int32 MIDTANK2MANIF2_VALVE_1 = 1 << 5;//2
const Int32 MIDTANK2MANIF1_VALVE_2 = 1 << 6;//5
const Int32 MIDTANK2MANIF1_VALVE_1 = 1 << 7;//1

const Int32 CART2MIDTANK4_VALVE_2  = 1 << 8 ;//8
const Int32 CART2MIDTANK4_VALVE_1  = 1 << 9 ;//4
const Int32 CART2MIDTANK3_VALVE_2  = 1 << 10;//7
const Int32 CART2MIDTANK3_VALVE_1  = 1 << 11;//3
const Int32 CART2MIDTANK2_VALVE_2  = 1 << 12;//6
const Int32 CART2MIDTANK2_VALVE_1  = 1 << 13;//2
const Int32 CART2MIDTANK1_VALVE_2  = 1 << 14;//5
const Int32 CART2MIDTANK1_VALVE_1  = 1 << 15;//1


public void OnExecute(StubManager stubManager)
{
 	int MidTank_No = 0;

    var response = stubManager.ShowResponseWindow("Enter Midtank number to OPEN the 2Way valves (1-8), \nOr '0' to CLOSE all :", "");
	stubManager.Write("\n");
	MidTank_No = int.Parse(response);

	switch (MidTank_No)
    {
            case 1:
                	stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,FPGA3 | F3_VALVE_OUT, CART2MIDTANK1_VALVE_1); 
					stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,FPGA3 | F3_VALVE_OUT, MIDTANK2MANIF1_VALVE_1); 
                break;
             case 2:
                	stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,FPGA3 | F3_VALVE_OUT, CART2MIDTANK2_VALVE_1); 
					stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,FPGA3 | F3_VALVE_OUT, MIDTANK2MANIF2_VALVE_1); 
                break;
             case 3:
                	stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,FPGA3 | F3_VALVE_OUT, CART2MIDTANK3_VALVE_1); 
					stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,FPGA3 | F3_VALVE_OUT, MIDTANK2MANIF3_VALVE_1); 
                break;
             case 4:
                	stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,FPGA3 | F3_VALVE_OUT, CART2MIDTANK4_VALVE_1); 
					stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,FPGA3 | F3_VALVE_OUT, MIDTANK2MANIF4_VALVE_1); 
                break;
             case 5:
                	stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,FPGA3 | F3_VALVE_OUT, CART2MIDTANK1_VALVE_2); 
					stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,FPGA3 | F3_VALVE_OUT, MIDTANK2MANIF1_VALVE_2); 
                break;
             case 6:
                	stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,FPGA3 | F3_VALVE_OUT, CART2MIDTANK2_VALVE_2); 
					stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,FPGA3 | F3_VALVE_OUT, MIDTANK2MANIF2_VALVE_2); 
                break;
             case 7:
                	stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,FPGA3 | F3_VALVE_OUT, CART2MIDTANK3_VALVE_2); 
					stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,FPGA3 | F3_VALVE_OUT, MIDTANK2MANIF3_VALVE_2); 
                break;
             case 8:
                	stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,FPGA3 | F3_VALVE_OUT, CART2MIDTANK4_VALVE_2); 
					stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,FPGA3 | F3_VALVE_OUT, MIDTANK2MANIF4_VALVE_2); 
                break;
			 default:
					stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,FPGA3 + F3_VALVE_OUT, 0); // OFF
			 	break;
    }	
	
	if(MidTank_No > 0 && MidTank_No < 9)
	{
			stubManager.Write("Open Valves #"); 
			stubManager.Write(MidTank_No);
			stubManager.Write("\n");
	}
	else
	{
			stubManager.WriteLine("Close all Valves !"); 
	}
}