namespace IBox.WinFrmUI { public partial class SignalEditForm : Form { public SignalEditForm(List signalTypes, List monitorPoints, Signal signal) { this.signalTypes = signalTypes; this.monitorPoints = monitorPoints; InitializeComponent(); SetData(); if (signal != null) BindData(signal); } private List signalTypes; private List monitorPoints; public Signal signal; private void simpleButton2_Click(object sender, EventArgs e) { this.Close(); } private List GetFlags() { return new List() { "控制流量","控制压力","泵后压力","控制功率","控制频率","控制水位","电耗","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; } } /// /// 初始化数据 /// 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(); } } }