duheng
2025-03-27 d2ccacb3317aa6310f1b1bb5eb19fbdecba39ff9
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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
namespace IBox.WinFrmUI
{
    public partial class SignalEditForm : Form
    {
        public SignalEditForm(List<GeneralViewModel> signalTypes, List<MonitorPointGroup> monitorPoints, Signal signal)
        {
            this.signalTypes = signalTypes;
            this.monitorPoints = monitorPoints;
            InitializeComponent();
            SetData();
            if (signal != null)
                BindData(signal);
        }
        private List<GeneralViewModel> signalTypes;
        private List<MonitorPointGroup> monitorPoints;
        public Signal signal;
        private void simpleButton2_Click(object sender, EventArgs e)
        {
            this.Close();
        }
 
        private List<string> GetFlags()
        {
            return new List<string>()
            {
                "控制流量","控制压力","泵后压力","控制功率","控制频率","控制水位","电耗","1#","2#","3#","4#","5#"
            };
        }
 
        /// <summary>
        /// 获取数据
        /// </summary>
        public void GetData()
        {
            if (signal == null)
                signal = new Signal();
 
            signal.Accuracy = int.Parse(textEdit8.EditValue.ToString());
            signal.Name = textEdit1.EditValue.ToString();
            signal.SignalTypeID = long.Parse(textEdit3.EditValue.ToString());
            signal.BusAddress = textEdit5.EditValue?.ToString();
            signal.GroupID = long.Parse(textEdit2.EditValue.ToString());
            signal.Operator = int.Parse(textEdit7.EditValue.ToString());
            signal.Operands = textEdit14.EditValue?.ToString();
            signal.AdcType = int.Parse(textEdit9.EditValue.ToString());
            signal.BusType = int.Parse(textEdit6.EditValue.ToString());
            signal.Description = textEdit13.EditValue?.ToString();
            signal.IsEnable = textEdit4.Checked;
            signal.LowerRange = decimal.Parse(textEdit11.EditValue.ToString());
            signal.UpperRange = decimal.Parse(textEdit10.EditValue.ToString());
            signal.Flags = textEdit12.EditValue?.ToString().Replace(", ", ",").Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToList();
        }
 
        /// <summary>
        /// 绑定数据
        /// </summary>
        /// <param name="signal"></param>
        public void BindData(Signal signal)
        {
            this.signal = signal;
            textEdit8.EditValue = signal.Accuracy;
            textEdit1.EditValue = signal.Name;
            textEdit3.EditValue = signal.SignalTypeID;
            textEdit5.EditValue = signal.BusAddress;
            textEdit2.EditValue = signal.GroupID;
            textEdit7.EditValue = signal.Operator;
            textEdit14.EditValue = signal.Operands;
            textEdit9.EditValue = signal.AdcType;
            textEdit6.EditValue = signal.BusType;
            textEdit13.EditValue = signal.Description;
            textEdit4.Checked = signal.IsEnable;
            textEdit11.EditValue = signal.LowerRange;
            textEdit10.EditValue = signal.UpperRange;
            //textEdit12.EditValue = signal.Flags;
 
            for (var i = 0; i < textEdit12.Properties.Items.Count; i++)
            {
                if (signal.Flags.Contains(textEdit12.Properties.Items[i].ToString()))
                    textEdit12.Properties.Items[i].CheckState = CheckState.Checked;
            }
        }
 
        /// <summary>
        /// 初始化数据
        /// </summary>
        public void SetData()
        {
            var dics = new dModbus().ModbusDataType();
            foreach (var d in dics)
            {
                textEdit6.Properties.Items.Add(d.Value, d.Key, -1);
            }
            textEdit6.EditValue = 4;
 
            var adcDics = new dModbus().AdcType();
            foreach (var adc in adcDics)
            {
                textEdit9.Properties.Items.Add(adc.Value, adc.Key, -1);
            }
            textEdit9.EditValue = 0;
            var operDics = new dModbus().OperType();
            foreach (var oper in operDics)
            {
                textEdit7.Properties.Items.Add(oper.Value, oper.Key, -1);
            }
            textEdit7.EditValue = 0;
            foreach (var item in signalTypes)
            {
                textEdit3.Properties.Items.Add(item.Name, item.ID, -1);
            }
 
            foreach (var item in monitorPoints)
            {
                textEdit2.Properties.Items.Add(item.Name, item.ID, -1);
            }
 
            foreach (var item in GetFlags())
            {
                textEdit12.Properties.Items.Add(item.ToString().Trim());
            }
        }
 
        private void simpleButton1_Click(object sender, EventArgs e)
        {
            GetData();
            DialogResult = DialogResult.OK;
            this.Close();
        }
    }
}