using SunlightCentralizedControlManagement_SCCM_.ViewModel; using SunlightCentralizedControlManagement_SCCM_.WindowsView; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using System.Data; using System.Linq; using System.Net; using System.Reflection; using System.Text; 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.Navigation; using System.Windows.Shapes; using System.Windows.Threading; using System.Xml.Linq; using TouchSocket.Core; using TouchSocket.Sockets; using static SunlightCentralizedControlManagement_SCCM_.WindowsView.ViewStep; using static System.Net.WebRequestMethods; using static System.Windows.Forms.VisualStyles.VisualStyleElement.Rebar; namespace SunlightCentralizedControlManagement_SCCM_.View { /// /// MonitorView.xaml 的交互逻辑 /// public partial class MonitorView : UserControl { public MonitorView() { InitializeComponent(); CountDown(); } private string machine; private string workOrder; private string dyelot; private int machines_info=0; public static string Sys_log; private void Griddata_SelectionChanged(object sender, SelectionChangedEventArgs e)//设备列表 { Stop.IsEnabled = true; int rownum = Griddata.SelectedIndex;//获取鼠标选中行并定义变量 if (rownum != -1)//判断鼠标定位是否有效 { machine = (Griddata.Columns[1].GetCellContent(Griddata.Items[rownum]) as TextBlock).Text;//定位第1列, workOrder = (Griddata.Columns[2].GetCellContent(Griddata.Items[rownum]) as TextBlock).Text;//定位第列, dyelot = (Griddata.Columns[3].GetCellContent(Griddata.Items[rownum]) as TextBlock).Text;//定位第列, machin_LOG.Text = Properties.Resources.Machine+":"+machine+" "+Properties.Resources.WorkOrder+":"+workOrder; } } private void Gridstep_SelectionChanged(object sender, SelectionChangedEventArgs e) { int rownum = Gridstep.SelectedIndex;//获取鼠标选中行并定义变量 if (rownum != -1)//判断鼠标定位是否有效 { ID = (Gridstep.Columns[2].GetCellContent(Gridstep.Items[rownum]) as TextBlock).Text;//定位第0列, Numder = (Gridstep.Columns[3].GetCellContent(Gridstep.Items[rownum]) as TextBlock).Text;//定位第1列, P1 = (Gridstep.Columns[6].GetCellContent(Gridstep.Items[rownum]) as TextBlock).Text;//定位第6列, P2 = (Gridstep.Columns[7].GetCellContent(Gridstep.Items[rownum]) as TextBlock).Text;//定位第7列, P3 = (Gridstep.Columns[8].GetCellContent(Gridstep.Items[rownum]) as TextBlock).Text;//定位第8列, P4 = (Gridstep.Columns[9].GetCellContent(Gridstep.Items[rownum]) as TextBlock).Text;//定位第9列, P5 = (Gridstep.Columns[10].GetCellContent(Gridstep.Items[rownum]) as TextBlock).Text;//定位第10列, } Paused.IsEnabled = true; } private void ListViewItem_DyeingMachine(object sender, MouseButtonEventArgs e) { machines_info = 0; }//信息 private void ListViewItem_Conveyor(object sender, MouseButtonEventArgs e) { machines_info = 1; }//输送 private void ListViewItem_Receipt(object sender, MouseButtonEventArgs e) { machines_info = 2; }//单据 private void ListViewItem_Resume(object sender, MouseButtonEventArgs e) { if (!string.IsNullOrEmpty(machine)) { Dictionary dat_821 = new Dictionary(); dat_821.Clear(); dat_821.Add("INSTRUCTION", "CONTINUE"); DataRow drEmployee = MainWindowViewModel.Machines.Select("NAME='" + machine + "'").First(); int index = Convert.ToInt16(drEmployee.Field("ID")); MainWindowViewModel.stringQueue.Enqueue(new MainWindowViewModel.QueueString { ID = index, DAT = "SC821" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", index) + dat_821.ToJsonString() }); } Insert.IsEnabled = false; edit.IsEnabled = false; Paused.IsEnabled = false; Resume.IsEnabled = false; }//恢复 private void ListViewItem_Paused(object sender, MouseButtonEventArgs e) { if (!string.IsNullOrEmpty(machine)) { Dictionary dat_821 = new Dictionary(); dat_821.Clear(); dat_821.Add("INSTRUCTION", "PAUSE"); DataRow drEmployee = MainWindowViewModel.Machines.Select("NAME='" + machine + "'").First(); int index = Convert.ToInt16(drEmployee.Field("ID")); MainWindowViewModel.stringQueue.Enqueue(new MainWindowViewModel.QueueString { ID = index, DAT = "SC821" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", index) + dat_821.ToJsonString() }); } Insert.IsEnabled = true; edit.IsEnabled = true; Paused.IsEnabled = true; Resume.IsEnabled = true; Delete.IsEnabled = true; }//暂停 private void ListViewItem_Stop(object sender, MouseButtonEventArgs e) { if (!string.IsNullOrEmpty(machine)) { Dictionary dat_821 = new Dictionary(); dat_821.Clear(); dat_821.Add("INSTRUCTION", "STOP"); DataRow drEmployee = MainWindowViewModel.Machines.Select("NAME='" + machine + "'").First(); int index = Convert.ToInt16(drEmployee.Field("ID")); MainWindowViewModel.stringQueue.Enqueue(new MainWindowViewModel.QueueString { ID = index, DAT = "SC821" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", index) + dat_821.ToJsonString() }); } }//停止 private void ListViewItem_edit(object sender, MouseButtonEventArgs e) { if (string.IsNullOrEmpty(Numder)) { Numder = null; P1 = "0"; P2 = "0"; P3 = "0"; P4 = "0"; P5 = "0"; } ViewStep viewstop = new ViewStep(Numder, P1, P2, P3, P4, P5); viewstop.data = ID; viewstop.AddressUpdated += new ViewStep.AddressUpdateHandler(edit_ButtonClicked); viewstop.ShowDialog(); }//编辑 string Numder = null; string ID = null; string P1 = "0", P2 = "0", P3 = "0", P4 = "0", P5 = "0"; private void edit_ButtonClicked(object sender, AddressUpdateEventArgs e)//编辑返回结果 { Dictionary dat_821 = new Dictionary(); dat_821.Clear(); dat_821.Add("INSTRUCTION", "EDIT"); dat_821.Add("StepID", e.StepID); dat_821.Add("StepName", e.StepNAME); dat_821.Add("ParameterName", e.PNAME); dat_821.Add("Parameter1", e.P1); dat_821.Add("Parameter2", e.P2); dat_821.Add("Parameter3", e.P3); dat_821.Add("Parameter4", e.P4); dat_821.Add("Parameter5", e.P5); dat_821.Add("ID", ID); DataRow drEmployee = MainWindowViewModel.Machines.Select("NAME='" + machine + "'").First(); int index = Convert.ToInt16(drEmployee.Field("ID")); MainWindowViewModel.stringQueue.Enqueue(new MainWindowViewModel.QueueString { ID = index, DAT = "SC821" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", index) + dat_821.ToJsonString() }); } private void ListViewItem_Jump(object sender, MouseButtonEventArgs e) { }//跳步 private void ListViewItem_Insert(object sender, MouseButtonEventArgs e) { ViewStep viewstop = new ViewStep(null, "0", "0", "0", "0", "0"); viewstop.data = ID; viewstop.AddressUpdated += new ViewStep.AddressUpdateHandler(Insert_ButtonClicked); viewstop.ShowDialog(); }//插入 private void Insert_ButtonClicked(object sender, AddressUpdateEventArgs e)//编辑返回结果 { Dictionary dat_821 = new Dictionary(); dat_821.Clear(); dat_821.Add("INSTRUCTION", "INSERT"); dat_821.Add("StepID", e.StepID); dat_821.Add("StepName", e.StepNAME); dat_821.Add("ParameterName", e.PNAME); dat_821.Add("Parameter1", e.P1); dat_821.Add("Parameter2", e.P2); dat_821.Add("Parameter3", e.P3); dat_821.Add("Parameter4", e.P4); dat_821.Add("Parameter5", e.P5); dat_821.Add("ID", ID); DataRow drEmployee = MainWindowViewModel.Machines.Select("NAME='" + machine + "'").First(); int index = Convert.ToInt16(drEmployee.Field("ID")); MainWindowViewModel.stringQueue.Enqueue(new MainWindowViewModel.QueueString { ID = index, DAT = "SC821" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", index) + dat_821.ToJsonString() }); } private void ListViewItem_Delete(object sender, MouseButtonEventArgs e) { if (!string.IsNullOrEmpty(machine)) { Dictionary dat_821 = new Dictionary(); dat_821.Clear(); dat_821.Add("INSTRUCTION", "DELETE"); dat_821.Add("ID", ID); DataRow drEmployee = MainWindowViewModel.Machines.Select("NAME='" + machine + "'").First(); int index = Convert.ToInt16(drEmployee.Field("ID")); MainWindowViewModel.stringQueue.Enqueue(new MainWindowViewModel.QueueString { ID = index, DAT = "SC821" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", index) + dat_821.ToJsonString() }); } }//删除 public void CountDown() { DispatcherTimer timer1s = new DispatcherTimer//初始化循环,每1秒调用一次Tick { Interval = TimeSpan.FromSeconds(1.5)//秒 }; timer1s.Tick += Tick_Event_1S; timer1s.Start(); }//时间周期初始化 void Tick_Event_1S(object sender, EventArgs e)//Tick_Event周期执行事件1S { if (!string.IsNullOrEmpty(machine)) { try { DataRow drEmployee = MainWindowViewModel.Machines.Select("NAME='" + machine + "'").First(); int State_ = Convert.ToInt16(drEmployee.Field("State")); int index = Convert.ToInt16(drEmployee.Field("ID")); if ((State_ == 101) || (State_ == 201) || (State_ == 202) || (State_ == 309))//获得细节信息 { if (machines_info == 0) { MainWindowViewModel.stringQueue.Enqueue(new MainWindowViewModel.QueueString { ID=index, DAT= "SC832" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", index) }); }//信息 else if (machines_info == 1) { }//输送状态 else if (machines_info == 2) { MainWindowViewModel.stringQueue.Enqueue(new MainWindowViewModel.QueueString { ID = index, DAT = "SC833" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", index) }); }//单据 } else { MainWindowViewModel.MachineLOG = null; } if ((State_ == 101) || (State_ == 201) || (State_ == 202) || (State_ == 309))//获得细节信息 { MainWindowViewModel.stringQueue.Enqueue(new MainWindowViewModel.QueueString { ID = index, DAT = "SC831" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", index) }); } else { MainWindowViewModel.dt_TP.Clear(); } } catch (Exception ) { MainWindowViewModel.MachineLOG = null; MainWindowViewModel.dt_TP.Clear(); }//返回错误为空 } } } }