using SunlightCentralizedControlManagement_SCCM_.WindowsView; using ScottPlot.Palettes; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Shapes; using System.Windows.Forms; using System.Net.NetworkInformation; using System.Xml.Linq; namespace SunlightCentralizedControlManagement_SCCM_.WindowsView { /// /// ViewStep.xaml 的交互逻辑 /// public partial class ViewStep : Window { public string data { get; set; } //声明一个更新Address的委托 public delegate void AddressUpdateHandler(object sender, AddressUpdateEventArgs e); //声明一个更新Address的事件 public event AddressUpdateHandler AddressUpdated; bool m = false; public ViewStep(string Numder ,string P1D,string P2D,string P3D,string P4D,string P5D) { InitializeComponent(); this.DataContext = this; Form1_Load(); // FocusManager.SetFocusedElement(boxNAME, boxNAME); boxNAME.Focus(); if(!String.IsNullOrEmpty(Numder))m= true; boxNAME.Text = Numder; P1.Text = P1D; P2.Text = P2D; P3.Text = P3D; P4.Text = P4D; P5.Text = P5D; /* P1.Visibility = Visibility.Collapsed; P1N.Visibility = Visibility.Collapsed; P2.Visibility = Visibility.Collapsed; P2N.Visibility = Visibility.Collapsed; P3.Visibility = Visibility.Collapsed; P3N.Visibility = Visibility.Collapsed; P4.Visibility = Visibility.Collapsed; P4N.Visibility = Visibility.Collapsed; P5.Visibility = Visibility.Collapsed; P5N.Visibility = Visibility.Collapsed;*/ boxNAME.ToolTip = "001\t温度控制\r\n" + "007\t水位入水\r\n008\t流量入水\r\n" + "013\t水位水洗\r\n015\t溢流水洗\r\n" + "017\t降温水洗\r\n020\t排水\r\n" + "022\t动力排水\r\n031\t运转时间\r\n" + "035\t准备入布\r\n036\t准备出布\r\n" + "039\t呼叫人工\r\n040\t取样对色\r\n" + "041\t染程结束\r\n049\t等待\r\n" + "050\t主缸加压\r\n051\t主缸减压\r\n" + "054\t主泵速度\r\n055\t主泵启动\r\n" + "056\t主泵停止\r\n064\t药缸备药\r\n" + "065\t药缸加药\r\n066\t呼叫输送\r\n" + "067\t呼叫准备\r\n090\t快速加酸\r\n" + "091\tPH温度控制\r\n093\tPH检测\r\n" + "094\tPH控制\r\n"; } private void Tb_KeyPress(object sender, TextCompositionEventArgs e)//输入事件 { Regex re = new Regex(@"^[0-9.]+(.[0-9]{1,3})?$");// 非零的正整数 e.Handled = !re.IsMatch(e.Text); } private void Tb_KeyP1(object sender, TextCompositionEventArgs e)//输入事件P1 { Regex numbeRegex = new Regex("^[.][0-9]+$|^[0-9]*[.]{0,1}[0-9]*$"); e.Handled = !numbeRegex.IsMatch( P1.Text.Insert( P1.SelectionStart, e.Text)); P1.Text = P1.Text.Trim(); } private void Tb_KeyP2(object sender, TextCompositionEventArgs e)//输入事件P2 { Regex numbeRegex = new Regex("^[.][0-9]+$|^[0-9]*[.]{0,1}[0-9]*$"); e.Handled = !numbeRegex.IsMatch( P2.Text.Insert( P2.SelectionStart, e.Text)); P2.Text = P2.Text.Trim(); } private void Tb_KeyP3(object sender, TextCompositionEventArgs e)//输入事件P3 { Regex numbeRegex = new Regex("^[.][0-9]+$|^[0-9]*[.]{0,1}[0-9]*$"); e.Handled = !numbeRegex.IsMatch( P3.Text.Insert( P3.SelectionStart, e.Text)); P3.Text = P3.Text.Trim(); } private void Tb_KeyP4(object sender, TextCompositionEventArgs e)//输入事件P4 { Regex numbeRegex = new Regex("^[.][0-9]+$|^[0-9]*[.]{0,1}[0-9]*$"); e.Handled = !numbeRegex.IsMatch( P4.Text.Insert( P4.SelectionStart, e.Text)); P4.Text = P4.Text.Trim(); } private void Tb_KeyP5(object sender, TextCompositionEventArgs e)//输入事件P5 { Regex numbeRegex = new Regex("^[.][0-9]+$|^[0-9]*[.]{0,1}[0-9]*$"); e.Handled = !numbeRegex.IsMatch( P5.Text.Insert( P5.SelectionStart, e.Text)); P5.Text = P5.Text.Trim(); } private readonly string[] a = {"001","007","008","013","015" ,"017", "020", "022", "031", "035", "036", "039", "040", "041", "049", "050", "051", "054", "055", "056","064","065","066","067","090","091","093","094" }; private void Form1_Load() { this.boxID.Items.Add(Properties.Resources.TemperatureControl);//温度控制001 this.boxID.Items.Add(Properties.Resources.AddWater + "(" + Properties.Resources.WaterLevel + ")");//水位进水007 this.boxID.Items.Add(Properties.Resources.AddWater + "(" + Properties.Resources.Flowmeter + ")");//流量进水008 this.boxID.Items.Add(Properties.Resources.Washing + "(" + Properties.Resources.WaterLevel + ")");//水位水洗013 this.boxID.Items.Add(Properties.Resources.Washing + "(" + Properties.Resources.Overflow + ")");//溢流水洗015 this.boxID.Items.Add(Properties.Resources.Washing + "(" + Properties.Resources.Cooling + ")");//降温水洗017 this.boxID.Items.Add(Properties.Resources.Drainage);//排水020 this.boxID.Items.Add(Properties.Resources.PumpDrainage);//主泵排水022 this.boxID.Items.Add(Properties.Resources.RunningTime);//运转031 this.boxID.Items.Add(Properties.Resources.ClothIntake);//入布035 this.boxID.Items.Add(Properties.Resources.OutTheCloth);//出布036 this.boxID.Items.Add(Properties.Resources.CallWorkers);//呼叫操作员039 this.boxID.Items.Add(Properties.Resources.Sampling);//取样040 this.boxID.Items.Add(Properties.Resources.End);//程序结束041 this.boxID.Items.Add(Properties.Resources.Await);//等待049 this.boxID.Items.Add(Properties.Resources.Pressurized);//加压050 this.boxID.Items.Add(Properties.Resources.Depressurized);//减压051 this.boxID.Items.Add(Properties.Resources.Pump + "/"+Properties.Resources.Blower);//泵风机速度054 this.boxID.Items.Add(Properties.Resources.PumpStart);//泵启动055 this.boxID.Items.Add(Properties.Resources.PumpStops);//泵停止056 this.boxID.Items.Add(Properties.Resources.PrepareMedications);//备药064 this.boxID.Items.Add(Properties.Resources.AddTheMedicine);//加药065 this.boxID.Items.Add(Properties.Resources.CallDistribution);//呼叫输送066 this.boxID.Items.Add(Properties.Resources.CallPreparation);//呼叫准备067 this.boxID.Items.Add(Properties.Resources.RapidAcidAddition);//快速加酸090 this.boxID.Items.Add(Properties.Resources.PHTemperatureControl);//ph温度控制091 this.boxID.Items.Add(Properties.Resources.PHDetection);//ph检测093 this.boxID.Items.Add(Properties.Resources.PHControl);//ph控制094 // boxNAME.Text = datid; } private void TextBox_TextChanged(object sender, TextChangedEventArgs e)//输入事件 { int l = boxNAME.Text.Length; string text = boxNAME.Text.ToString(); if (l == 3) { int g = Array.IndexOf(a, text);//数组索引 if (g != -1) { boxID.SelectedIndex = g;//有效索引传入 Set(g); } else { boxID.SelectedIndex =-1; Set(-1); } } } private void BoxID_SelectionChanged(object sender, SelectionChangedEventArgs e)//下拉框选择事件 { if (boxID.SelectedIndex !=-1) { int i = boxID.SelectedIndex; boxNAME.Text = a.ElementAt(i); Set(i); } } private void YES_Click(object sender, RoutedEventArgs e)//确认 { if (boxNAME.Text == null) return; string name = " "; if (P1N.Visibility == Visibility.Visible) name = P1N.Text +":["+P1.Text+"]"; if (P2N.Visibility == Visibility.Visible) name += P2N.Text + ":[" + P2.Text + "]"; if (P3N.Visibility == Visibility.Visible) name += P3N.Text + ":[" + P3.Text + "]"; if (P4N.Visibility == Visibility.Visible) name += P4N.Text + ":[" + P4.Text + "]"; if (P5N.Visibility == Visibility.Visible) name += P5N.Text + ":[" + P5.Text + "]"; var args = new AddressUpdateEventArgs(true,data, boxNAME.Text, boxID.Text, name.ToString(), P1.Text, P2.Text, P3.Text, P4.Text, P5.Text); AddressUpdated(this, args); this.Close(); //关闭窗口 } private void NO_Click(object sender, RoutedEventArgs e)//关闭 { if (m) { this.Close(); } else { string name = " "; var args = new AddressUpdateEventArgs(false, data, boxNAME.Text, boxID.Text, name.ToString(), P1.Text, P2.Text, P3.Text, P4.Text, P5.Text); AddressUpdated(this, args); this.Close(); //关闭窗口 } } private void Set(int a) //参数显示 { switch (a) { case 0: P1N.Text = Properties.Resources.Target+Properties.Resources.Temperature; P2N.Text = Properties.Resources.Rate+ "(°C/min)"; P3N.Text = Properties.Resources.Time; P1.Visibility = Visibility.Visible; P1N.Visibility = Visibility.Visible; P2.Visibility = Visibility.Visible; P2N.Visibility = Visibility.Visible; P3.Visibility = Visibility.Visible; P3N.Visibility = Visibility.Visible; P4.Visibility = Visibility.Collapsed; P4N.Visibility = Visibility.Collapsed; P5.Visibility = Visibility.Collapsed; P5N.Visibility = Visibility.Collapsed; break; case 1: P1N.Text = Properties.Resources.Headwaters; P2N.Text = Properties.Resources.WaterLevel; P1.Visibility = Visibility.Visible; P1N.Visibility = Visibility.Visible; P2.Visibility = Visibility.Visible; P2N.Visibility = Visibility.Visible; P3.Visibility = Visibility.Collapsed; P3N.Visibility = Visibility.Collapsed; P4.Visibility = Visibility.Collapsed; P4N.Visibility = Visibility.Collapsed; P5.Visibility = Visibility.Collapsed; P5N.Visibility = Visibility.Collapsed; break; case 2: P1N.Text = Properties.Resources.Headwaters; P2N.Text = Properties.Resources.Flowmeter; P1.Visibility = Visibility.Visible; P1N.Visibility = Visibility.Visible; P2.Visibility = Visibility.Visible; P2N.Visibility = Visibility.Visible; P3.Visibility = Visibility.Collapsed; P3N.Visibility = Visibility.Collapsed; P4.Visibility = Visibility.Collapsed; P4N.Visibility = Visibility.Collapsed; P5.Visibility = Visibility.Collapsed; P5N.Visibility = Visibility.Collapsed; break; case 3: P1N.Text = Properties.Resources.Headwaters; P2N.Text = Properties.Resources.WaterLevel; P3N.Text = Properties.Resources.Time; P4N.Text = Properties.Resources.Number; P1.Visibility = Visibility.Visible; P1N.Visibility = Visibility.Visible; P2.Visibility = Visibility.Visible; P2N.Visibility = Visibility.Visible; P3.Visibility = Visibility.Visible; P3N.Visibility = Visibility.Visible; P4.Visibility = Visibility.Visible; P4N.Visibility = Visibility.Visible; P5.Visibility = Visibility.Collapsed; P5N.Visibility = Visibility.Collapsed; break; case 4: P1N.Text = Properties.Resources.Headwaters; P2N.Text = Properties.Resources.WaterLevel; P3N.Text = Properties.Resources.Time; P4N.Text = Properties.Resources.Flowmeter; P5N.Text = Properties.Resources.Target + Properties.Resources.Temperature; P1.Visibility = Visibility.Visible; P1N.Visibility = Visibility.Visible; P2.Visibility = Visibility.Visible; P2N.Visibility = Visibility.Visible; P3.Visibility = Visibility.Visible; P3N.Visibility = Visibility.Visible; P4.Visibility = Visibility.Visible; P4N.Visibility = Visibility.Visible; P5.Visibility = Visibility.Visible; P5N.Visibility = Visibility.Visible; break; case 5: P1N.Text = Properties.Resources.Headwaters; P2N.Text = Properties.Resources.WaterLevel; P3N.Text = Properties.Resources.Time; P4N.Text = Properties.Resources.Target + Properties.Resources.Temperature; P5N.Text = Properties.Resources.Rate; P1.Visibility = Visibility.Visible; P1N.Visibility = Visibility.Visible; P2.Visibility = Visibility.Visible; P2N.Visibility = Visibility.Visible; P3.Visibility = Visibility.Visible; P3N.Visibility = Visibility.Visible; P4.Visibility = Visibility.Visible; P4N.Visibility = Visibility.Visible; P5.Visibility = Visibility.Visible; P5N.Visibility = Visibility.Visible; break; case 6: P1N.Text = Properties.Resources.Drainage; P2N.Text = Properties.Resources.WaterLevel; P1.Visibility = Visibility.Visible; P1N.Visibility = Visibility.Visible; P2.Visibility = Visibility.Visible; P2N.Visibility = Visibility.Visible; P3.Visibility = Visibility.Collapsed; P3N.Visibility = Visibility.Collapsed; P4.Visibility = Visibility.Collapsed; P4N.Visibility = Visibility.Collapsed; P5.Visibility = Visibility.Collapsed; P5N.Visibility = Visibility.Collapsed; break; case 7: P1N.Text = Properties.Resources.Drainage; P2N.Text = Properties.Resources.WaterLevel; P1.Visibility = Visibility.Visible; P1N.Visibility = Visibility.Visible; P2.Visibility = Visibility.Visible; P2N.Visibility = Visibility.Visible; P3.Visibility = Visibility.Collapsed; P3N.Visibility = Visibility.Collapsed; P4.Visibility = Visibility.Collapsed; P4N.Visibility = Visibility.Collapsed; P5.Visibility = Visibility.Collapsed; P5N.Visibility = Visibility.Collapsed; break; case 8: P1N.Text = Properties.Resources.Time; P1.Visibility = Visibility.Visible; P1N.Visibility = Visibility.Visible; P2.Visibility = Visibility.Collapsed; P2N.Visibility = Visibility.Collapsed; P3.Visibility = Visibility.Collapsed; P3N.Visibility = Visibility.Collapsed; P4.Visibility = Visibility.Collapsed; P4N.Visibility = Visibility.Collapsed; P5.Visibility = Visibility.Collapsed; P5N.Visibility = Visibility.Collapsed; break; case 15: P1N.Text = Properties.Resources.Temperature; P2N.Text = Properties.Resources.Pressure; P1.Visibility = Visibility.Visible; P1N.Visibility = Visibility.Visible; P2.Visibility = Visibility.Visible; P2N.Visibility = Visibility.Visible; P3.Visibility = Visibility.Collapsed; P3N.Visibility = Visibility.Collapsed; P4.Visibility = Visibility.Collapsed; P4N.Visibility = Visibility.Collapsed; P5.Visibility = Visibility.Collapsed; P5N.Visibility = Visibility.Collapsed; break; case 16: P1N.Text = Properties.Resources.Temperature; P2N.Text = Properties.Resources.Pressure; P1.Visibility = Visibility.Visible; P1N.Visibility = Visibility.Visible; P2.Visibility = Visibility.Visible; P2N.Visibility = Visibility.Visible; P3.Visibility = Visibility.Collapsed; P3N.Visibility = Visibility.Collapsed; P4.Visibility = Visibility.Collapsed; P4N.Visibility = Visibility.Collapsed; P5.Visibility = Visibility.Collapsed; P5N.Visibility = Visibility.Collapsed; break; case 17: P1N.Text = Properties.Resources.PumpSpeed; P2N.Text = Properties.Resources.Blower; P3N.Text = Properties.Resources.Nozzle; P1.Visibility = Visibility.Visible; P1N.Visibility = Visibility.Visible; P2.Visibility = Visibility.Visible; P2N.Visibility = Visibility.Visible; P3.Visibility = Visibility.Visible; P3N.Visibility = Visibility.Visible; P4.Visibility = Visibility.Collapsed; P4N.Visibility = Visibility.Collapsed; P5.Visibility = Visibility.Collapsed; P5N.Visibility = Visibility.Collapsed; break; case 20: P1N.Text = Properties.Resources.Medicine + Properties.Resources.Tank; P2N.Text = Properties.Resources.Headwaters; P3N.Text = Properties.Resources.WaterLevel; P4N.Text = Properties.Resources.Temperature; P5N.Text = Properties.Resources.Mixing; P1.Visibility = Visibility.Visible; P1N.Visibility = Visibility.Visible; P2.Visibility = Visibility.Visible; P2N.Visibility = Visibility.Visible; P3.Visibility = Visibility.Visible; P3N.Visibility = Visibility.Visible; P4.Visibility = Visibility.Visible; P4N.Visibility = Visibility.Visible; P5.Visibility = Visibility.Visible; P5N.Visibility = Visibility.Visible; break; case 21: P1N.Text = Properties.Resources.Medicine + Properties.Resources.Tank; P2N.Text = Properties.Resources.Curve; P3N.Text = Properties.Resources.Time; P1.Visibility = Visibility.Visible; P1N.Visibility = Visibility.Visible; P2.Visibility = Visibility.Visible; P2N.Visibility = Visibility.Visible; P3.Visibility = Visibility.Visible; P3N.Visibility = Visibility.Visible; P4.Visibility = Visibility.Collapsed; P4N.Visibility = Visibility.Collapsed; P5.Visibility = Visibility.Collapsed; P5N.Visibility = Visibility.Collapsed; break; case 22: P1N.Text = Properties.Resources.Medicine + Properties.Resources.Tank; P2N.Text = Properties.Resources.Type; P3N.Text = Properties.Resources.Step; P1.Visibility = Visibility.Visible; P1N.Visibility = Visibility.Visible; P2.Visibility = Visibility.Visible; P2N.Visibility = Visibility.Visible; P3.Visibility = Visibility.Visible; P3N.Visibility = Visibility.Visible; P4.Visibility = Visibility.Collapsed; P4N.Visibility = Visibility.Collapsed; P5.Visibility = Visibility.Collapsed; P5N.Visibility = Visibility.Collapsed; break; case 23: P1N.Text = Properties.Resources.Medicine + Properties.Resources.Tank; P2N.Text = Properties.Resources.Type; P3N.Text = Properties.Resources.Function; P1.Visibility = Visibility.Visible; P1N.Visibility = Visibility.Visible; P2.Visibility = Visibility.Visible; P2N.Visibility = Visibility.Visible; P3.Visibility = Visibility.Visible; P3N.Visibility = Visibility.Visible; P4.Visibility = Visibility.Collapsed; P4N.Visibility = Visibility.Collapsed; P5.Visibility = Visibility.Collapsed; P5N.Visibility = Visibility.Collapsed; break; case 24: P1N.Text = Properties.Resources.Target + Properties.Resources.Temperature; P2N.Text = "PH"; P1.Visibility = Visibility.Visible; P1N.Visibility = Visibility.Visible; P2.Visibility = Visibility.Visible; P2N.Visibility = Visibility.Visible; P3.Visibility = Visibility.Collapsed; P3N.Visibility = Visibility.Collapsed; P4.Visibility = Visibility.Collapsed; P4N.Visibility = Visibility.Collapsed; P5.Visibility = Visibility.Collapsed; P5N.Visibility = Visibility.Collapsed; break; case 25: P1N.Text = Properties.Resources.Target + Properties.Resources.Temperature; P2N.Text = Properties.Resources.Rate; P3N.Text = "PH"; P1.Visibility = Visibility.Visible; P1N.Visibility = Visibility.Visible; P2.Visibility = Visibility.Visible; P2N.Visibility = Visibility.Visible; P3.Visibility = Visibility.Visible; P3N.Visibility = Visibility.Visible; P4.Visibility = Visibility.Collapsed; P4N.Visibility = Visibility.Collapsed; P5.Visibility = Visibility.Collapsed; P5N.Visibility = Visibility.Collapsed; break; case 26: P1N.Text = Properties.Resources.Time; P1.Visibility = Visibility.Visible; P1N.Visibility = Visibility.Visible; P2.Visibility = Visibility.Collapsed; P2N.Visibility = Visibility.Collapsed; P3.Visibility = Visibility.Collapsed; P3N.Visibility = Visibility.Collapsed; P4.Visibility = Visibility.Collapsed; P4N.Visibility = Visibility.Collapsed; P5.Visibility = Visibility.Collapsed; P5N.Visibility = Visibility.Collapsed; break; case 27: P1N.Text = Properties.Resources.Time; P2N.Text = "PH"; P1.Visibility = Visibility.Visible; P1N.Visibility = Visibility.Visible; P2.Visibility = Visibility.Visible; P2N.Visibility = Visibility.Visible; P3.Visibility = Visibility.Collapsed; P3N.Visibility = Visibility.Collapsed; P4.Visibility = Visibility.Collapsed; P4N.Visibility = Visibility.Collapsed; P5.Visibility = Visibility.Collapsed; P5N.Visibility = Visibility.Collapsed; break; default: P1.Visibility = Visibility.Collapsed; P1N.Visibility = Visibility.Collapsed; P2.Visibility = Visibility.Collapsed; P2N.Visibility = Visibility.Collapsed; P3.Visibility = Visibility.Collapsed; P3N.Visibility = Visibility.Collapsed; P4.Visibility = Visibility.Collapsed; P4N.Visibility = Visibility.Collapsed; P5.Visibility = Visibility.Collapsed; P5N.Visibility = Visibility.Collapsed; break; } } public class AddressUpdateEventArgs : System.EventArgs { public AddressUpdateEventArgs(bool M, string dStep, string dStepID, string dStepNAME, string dPNAME, string dP1, string dP2, string dP3, string dP4, string dP5) { this.Mode = M; this.StepID = dStepID; this.Step = dStep; this.StepNAME = dStepNAME; this.PNAME = dPNAME; this.P1 = dP1; this.P2 = dP2; this.P3 = dP3; this.P4 = dP4; this.P5 = dP5; } public bool Mode { get; set; } public string Step { get; set; } public string StepID { get; set; } public string StepNAME { get; set; } public string PNAME { get; set; } public string P1 { get; set; } public string P2 { get; set; } public string P3 { get; set; } public string P4 { get; set; } public string P5 { get; set; } } } }