duheng
2025-03-14 a906f71640d9ba5cd9f8d689a51de3a557d8bbff
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
131
132
133
134
135
136
using DevExpress.Pdf.Native.BouncyCastle.Asn1.Tsp;
using DevExpress.XtraEditors.Controls;
using DevExpress.XtraEditors.Repository;
using NPOI.SS.Formula.Functions;
using NPOI.Util;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
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#"
            };
        }
 
        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();
        }
 
        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;
            }
        }
 
 
        private 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();
        }
    }
}