diff --git a/View/MonitorView.xaml.cs b/View/MonitorView.xaml.cs index ec32b2c..a0c125b 100644 --- a/View/MonitorView.xaml.cs +++ b/View/MonitorView.xaml.cs @@ -97,9 +97,8 @@ namespace SunlightCentralizedControlManagement_SCCM_.View dat_821.Add("INSTRUCTION", "CONTINUE"); DataRow drEmployee = MainWindowViewModel.Machines.Select("NAME='" + machine + "'").First(); int index = Convert.ToInt16(drEmployee.Field("ID")); - // MainWindowViewModel.MachiensTcpClient[index].SendAsync("SC821" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", index) + dat_821.ToJsonString()); - MainWindowViewModel.stringQueue.Enqueue(new MainWindowViewModel.QueueString { ID = index, DAT = "SC821" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", index) + dat_821.ToJsonString() }); - + MainWindowViewModel.stringQueue.Enqueue(new MainWindowViewModel.QueueString { ID = index, + DAT = "SC821" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", index) + dat_821.ToJsonString() }); } Insert.IsEnabled = false; @@ -116,9 +115,8 @@ namespace SunlightCentralizedControlManagement_SCCM_.View dat_821.Add("INSTRUCTION", "PAUSE"); DataRow drEmployee = MainWindowViewModel.Machines.Select("NAME='" + machine + "'").First(); int index = Convert.ToInt16(drEmployee.Field("ID")); - // MainWindowViewModel.MachiensTcpClient[index].SendAsync("SC821" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", index) + dat_821.ToJsonString()); - MainWindowViewModel.stringQueue.Enqueue(new MainWindowViewModel.QueueString { ID = index, DAT = "SC821" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", index) + dat_821.ToJsonString() }); - + 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; @@ -135,9 +133,8 @@ namespace SunlightCentralizedControlManagement_SCCM_.View 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() }); - - // MainWindowViewModel.MachiensTcpClient[index].SendAsync("SC821" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", index)+dat_821.ToJsonString()); + 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) @@ -168,9 +165,8 @@ namespace SunlightCentralizedControlManagement_SCCM_.View 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() }); - - // MainWindowViewModel.MachiensTcpClient[index].SendAsync("SC821" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", index) + dat_821.ToJsonString()); + 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) @@ -201,9 +197,8 @@ namespace SunlightCentralizedControlManagement_SCCM_.View 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() }); - - // MainWindowViewModel.MachiensTcpClient[index].SendAsync("SC821" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", index) + dat_821.ToJsonString()); + 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) { @@ -215,8 +210,8 @@ namespace SunlightCentralizedControlManagement_SCCM_.View dat_821.Add("ID", ID); DataRow drEmployee = MainWindowViewModel.Machines.Select("NAME='" + machine + "'").First(); int index = Convert.ToInt16(drEmployee.Field("ID")); - // MainWindowViewModel.MachiensTcpClient[index].SendAsync("SC821" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", index) + dat_821.ToJsonString()); - MainWindowViewModel.stringQueue.Enqueue(new MainWindowViewModel.QueueString { ID = index, DAT = "SC821" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", index) + dat_821.ToJsonString() }); + MainWindowViewModel.stringQueue.Enqueue(new MainWindowViewModel.QueueString { ID = index, + DAT = "SC821" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", index) + dat_821.ToJsonString() }); } }//删除 @@ -244,9 +239,8 @@ namespace SunlightCentralizedControlManagement_SCCM_.View { if (machines_info == 0) { - MainWindowViewModel.stringQueue.Enqueue(new MainWindowViewModel.QueueString { ID=index,DAT= "SC832" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", index) }); - - // MainWindowViewModel.MachiensTcpClient[index].SendAsync("SC832" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", index)); + MainWindowViewModel.stringQueue.Enqueue(new MainWindowViewModel.QueueString { ID=index, + DAT= "SC832" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", index) }); }//信息 else if (machines_info == 1) { @@ -254,9 +248,8 @@ namespace SunlightCentralizedControlManagement_SCCM_.View }//输送状态 else if (machines_info == 2) { - MainWindowViewModel.stringQueue.Enqueue(new MainWindowViewModel.QueueString { ID = index, DAT = "SC833" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", index) }); - - // MainWindowViewModel.MachiensTcpClient[index].SendAsync("SC833" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", index)); + MainWindowViewModel.stringQueue.Enqueue(new MainWindowViewModel.QueueString { ID = index, + DAT = "SC833" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", index) }); }//单据 } else @@ -266,9 +259,8 @@ namespace SunlightCentralizedControlManagement_SCCM_.View 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) }); - - // MainWindowViewModel.MachiensTcpClient[index].SendAsync("SC831" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", index)); + MainWindowViewModel.stringQueue.Enqueue(new MainWindowViewModel.QueueString { ID = index, + DAT = "SC831" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", index) }); } else { @@ -277,8 +269,8 @@ namespace SunlightCentralizedControlManagement_SCCM_.View } catch (Exception ) { - // MainWindowViewModel.MachineLOG = null; - // MainWindowViewModel.dt_TP.Clear(); + MainWindowViewModel.MachineLOG = null; + MainWindowViewModel.dt_TP.Clear(); }//返回错误为空 } } diff --git a/ViewModel/MainWindowViewModel.cs b/ViewModel/MainWindowViewModel.cs index 1b22ed0..68fd24e 100644 --- a/ViewModel/MainWindowViewModel.cs +++ b/ViewModel/MainWindowViewModel.cs @@ -87,13 +87,6 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel timer1s.Tick += Tick_Event_1S; timer1s.Start(); - DispatcherTimer timer5s = new DispatcherTimer//初始化循环,每1秒调用一次Tick - { - Interval = TimeSpan.FromSeconds(5)//秒 - }; - timer5s.Tick += Tick_Event_5S; - timer5s.Start(); - //设置定时器 DispatcherTimer disTimer = new DispatcherTimer { @@ -109,6 +102,18 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel dis50ms.Tick += new EventHandler(DisTimer_50MS);//每一秒执行的方法 dis50ms.Start();//计时开始 }//时间周期初始化 + void DisTimer_500MS(object sender, EventArgs e)//Tick_Event周期执行事件500MS + { + DATA_view(); + } + void DisTimer_50MS(object sender, EventArgs e)//Tick_Event周期执行事件50MS + { + if (stringQueue.Count > 0) //信息发送队列 + { + QueueString t = stringQueue.Dequeue(); + MachiensTcpClient[t.ID].SendAsync(t.DAT); + } + } void Tick_Event_1S(object sender, EventArgs e)//Tick_Event周期执行事件1S { Sys_Time = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"); @@ -119,46 +124,53 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel { MachiensTcpClient[i].SendAsync("SC830"+ Selet_Machines(Machines, "SYSKEY", i).ToString()); Updata_Machines(Machines, "State", i, "101"); - // DataRow dt = machinesdata[i]; - //Updata_Machines(Machines, Convert.ToInt16(dt["ID"]), "State", "800"); } } - for (int i = 0; i < Machinesdata_Count; i++) + for (int i = 0; i < Machinesdata_Count; i++) { string mac_s = Selet_Machines(Machines, "State", i).ToString(); if ((mac_s == "101") || (mac_s == "201") || (mac_s == "202") || (mac_s == "309"))//获取信息 { stringQueue.Enqueue(new QueueString { ID = i, DAT = "SC830" + Selet_Machines(Machines, "SYSKEY", i).ToString() });//信息插入队列 - - // MachiensTcpClient[i].SendAsync("SC830" + Selet_Machines(Machines, "SYSKEY", i).ToString()); } } + + if (Time5 > 5) + { + Tick_Event_5S(); + Time5 = 0; + } + else { Time5++; } + if (Time60 > 60) + { + Tick_Event_60S(); + Time60= 0; + } + else { Time60++; } } - void Tick_Event_5S(object sender, EventArgs e)//Tick_Event周期执行事件5S - { - + int Time5=0,Time60; + void Tick_Event_5S()//Tick_Event周期执行事件5S + { for (int i = 0; i < Machinesdata_Count; i++) { if (Selet_Machines(Machines, "State", i).ToString() == "801") { MachiensTcpClient[i].SendAsync("SC800:SCCM[" + MachiensTcpClient[i].IP + ";" + MachiensTcpClient[i].Port + "]"); - } + } } } - void DisTimer_500MS(object sender, EventArgs e)//Tick_Event周期执行事件500MS - { - DATA_view(); - - - } - void DisTimer_50MS(object sender, EventArgs e)//Tick_Event周期执行事件50MS + void Tick_Event_60S() { - if (stringQueue.Count > 0) //信息发送队列 + for (int i = 0; i < Machinesdata_Count; i++) { - QueueString t= stringQueue.Dequeue(); - MachiensTcpClient[t.ID].SendAsync(t.DAT); + MachiensTcpClient[i] = new TcpClient(); + DataRow dt = machinesdata[i]; + Updata_Machines(Machines, "State", Convert.ToInt16(dt["ID"]), "800"); + _ = AsyncTcpClient.TcpClient(MachiensTcpClient[i] //建立tcp连接 + , Selet_Machines(Machines, "IP", Convert.ToInt16(dt["ID"])).ToString() + , Selet_Machines(Machines, "PORT", Convert.ToInt16(dt["ID"])).ToString()); } - } + } private SQLiteHelper SQLiteHelpers = null; //定义数据库 private readonly string DBAddress = Environment.CurrentDirectory + "\\DataBase\\SCCM.db"; //数据库路径 @@ -173,16 +185,16 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel CountDown(); TcpClientNEW(); - SQL_LINK(); - + SQL_LINK(); } public static TcpClient[] MachiensTcpClient = new TcpClient[999]; + public DataRow[] machinesdata = new DataRow[999]; public int Machinesdata_Count; public void TcpClientNEW() { // bool Machine_ ; - DataRow[] machinesdata = Machines.Select("PORT>0 AND IP<>''", "id asc");//获取连接有效的组 + machinesdata = Machines.Select("PORT>0 AND IP<>''", "id asc");//获取连接有效的组 Machinesdata_Count = machinesdata.Count(); for (int i = 0; i < Machinesdata_Count; i++)