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 !");
}
}
|