|
|
|
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
|
|
|
|
{
|
|
|
|
/// <summary>
|
|
|
|
/// MonitorView.xaml 的交互逻辑
|
|
|
|
/// </summary>
|
|
|
|
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<string, object> dat_821 = new Dictionary<string, object>();
|
|
|
|
dat_821.Clear();
|
|
|
|
dat_821.Add("INSTRUCTION", "CONTINUE");
|
|
|
|
DataRow drEmployee = MainWindowViewModel.Machines.Select("NAME='" + machine + "'").First();
|
|
|
|
int index = Convert.ToInt16(drEmployee.Field<object>("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<string, object> dat_821 = new Dictionary<string, object>();
|
|
|
|
dat_821.Clear();
|
|
|
|
dat_821.Add("INSTRUCTION", "PAUSE");
|
|
|
|
DataRow drEmployee = MainWindowViewModel.Machines.Select("NAME='" + machine + "'").First();
|
|
|
|
int index = Convert.ToInt16(drEmployee.Field<object>("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<string, object> dat_821 = new Dictionary<string, object>();
|
|
|
|
dat_821.Clear();
|
|
|
|
dat_821.Add("INSTRUCTION", "STOP");
|
|
|
|
DataRow drEmployee = MainWindowViewModel.Machines.Select("NAME='" + machine + "'").First();
|
|
|
|
int index = Convert.ToInt16(drEmployee.Field<object>("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<string, object> dat_821 = new Dictionary<string, object>();
|
|
|
|
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<object>("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<string, object> dat_821 = new Dictionary<string, object>();
|
|
|
|
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<object>("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<string, object> dat_821 = new Dictionary<string, object>();
|
|
|
|
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<object>("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<object>("State"));
|
|
|
|
int index = Convert.ToInt16(drEmployee.Field<object>("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();
|
|
|
|
}//返回错误为空
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|