Browse Source

添加扫描重连功能周期1分钟

master
sc 11 months ago
parent
commit
549700ee2d
  1. 48
      View/MonitorView.xaml.cs
  2. 60
      ViewModel/MainWindowViewModel.cs

48
View/MonitorView.xaml.cs

@ -97,9 +97,8 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
dat_821.Add("INSTRUCTION", "CONTINUE"); dat_821.Add("INSTRUCTION", "CONTINUE");
DataRow drEmployee = MainWindowViewModel.Machines.Select("NAME='" + machine + "'").First(); DataRow drEmployee = MainWindowViewModel.Machines.Select("NAME='" + machine + "'").First();
int index = Convert.ToInt16(drEmployee.Field<object>("ID")); int index = Convert.ToInt16(drEmployee.Field<object>("ID"));
// MainWindowViewModel.MachiensTcpClient[index].SendAsync("SC821" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", index) + dat_821.ToJsonString()); MainWindowViewModel.stringQueue.Enqueue(new MainWindowViewModel.QueueString { ID = index,
MainWindowViewModel.stringQueue.Enqueue(new MainWindowViewModel.QueueString { ID = index, DAT = "SC821" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", index) + dat_821.ToJsonString() }); DAT = "SC821" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", index) + dat_821.ToJsonString() });
} }
Insert.IsEnabled = false; Insert.IsEnabled = false;
@ -116,9 +115,8 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
dat_821.Add("INSTRUCTION", "PAUSE"); dat_821.Add("INSTRUCTION", "PAUSE");
DataRow drEmployee = MainWindowViewModel.Machines.Select("NAME='" + machine + "'").First(); DataRow drEmployee = MainWindowViewModel.Machines.Select("NAME='" + machine + "'").First();
int index = Convert.ToInt16(drEmployee.Field<object>("ID")); int index = Convert.ToInt16(drEmployee.Field<object>("ID"));
// MainWindowViewModel.MachiensTcpClient[index].SendAsync("SC821" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", index) + dat_821.ToJsonString()); MainWindowViewModel.stringQueue.Enqueue(new MainWindowViewModel.QueueString { ID = index,
MainWindowViewModel.stringQueue.Enqueue(new MainWindowViewModel.QueueString { ID = index, DAT = "SC821" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", index) + dat_821.ToJsonString() }); DAT = "SC821" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", index) + dat_821.ToJsonString() });
} }
Insert.IsEnabled = true; Insert.IsEnabled = true;
edit.IsEnabled = true; edit.IsEnabled = true;
@ -135,9 +133,8 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
dat_821.Add("INSTRUCTION", "STOP"); dat_821.Add("INSTRUCTION", "STOP");
DataRow drEmployee = MainWindowViewModel.Machines.Select("NAME='" + machine + "'").First(); DataRow drEmployee = MainWindowViewModel.Machines.Select("NAME='" + machine + "'").First();
int index = Convert.ToInt16(drEmployee.Field<object>("ID")); 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() }); 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());
} }
}//停止 }//停止
private void ListViewItem_edit(object sender, MouseButtonEventArgs e) private void ListViewItem_edit(object sender, MouseButtonEventArgs e)
@ -168,9 +165,8 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
DataRow drEmployee = MainWindowViewModel.Machines.Select("NAME='" + machine + "'").First(); DataRow drEmployee = MainWindowViewModel.Machines.Select("NAME='" + machine + "'").First();
int index = Convert.ToInt16(drEmployee.Field<object>("ID")); 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() }); 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());
} }
private void ListViewItem_Jump(object sender, MouseButtonEventArgs e) private void ListViewItem_Jump(object sender, MouseButtonEventArgs e)
@ -201,9 +197,8 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
DataRow drEmployee = MainWindowViewModel.Machines.Select("NAME='" + machine + "'").First(); DataRow drEmployee = MainWindowViewModel.Machines.Select("NAME='" + machine + "'").First();
int index = Convert.ToInt16(drEmployee.Field<object>("ID")); 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() }); 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());
} }
private void ListViewItem_Delete(object sender, MouseButtonEventArgs e) private void ListViewItem_Delete(object sender, MouseButtonEventArgs e)
{ {
@ -215,8 +210,8 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
dat_821.Add("ID", ID); dat_821.Add("ID", ID);
DataRow drEmployee = MainWindowViewModel.Machines.Select("NAME='" + machine + "'").First(); DataRow drEmployee = MainWindowViewModel.Machines.Select("NAME='" + machine + "'").First();
int index = Convert.ToInt16(drEmployee.Field<object>("ID")); int index = Convert.ToInt16(drEmployee.Field<object>("ID"));
// MainWindowViewModel.MachiensTcpClient[index].SendAsync("SC821" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", index) + dat_821.ToJsonString()); MainWindowViewModel.stringQueue.Enqueue(new MainWindowViewModel.QueueString { ID = index,
MainWindowViewModel.stringQueue.Enqueue(new MainWindowViewModel.QueueString { ID = index, DAT = "SC821" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", index) + dat_821.ToJsonString() }); DAT = "SC821" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", index) + dat_821.ToJsonString() });
} }
}//删除 }//删除
@ -244,9 +239,8 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
{ {
if (machines_info == 0) if (machines_info == 0)
{ {
MainWindowViewModel.stringQueue.Enqueue(new MainWindowViewModel.QueueString { ID=index,DAT= "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) });
// MainWindowViewModel.MachiensTcpClient[index].SendAsync("SC832" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", index));
}//信息 }//信息
else if (machines_info == 1) else if (machines_info == 1)
{ {
@ -254,9 +248,8 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
}//输送状态 }//输送状态
else if (machines_info == 2) else if (machines_info == 2)
{ {
MainWindowViewModel.stringQueue.Enqueue(new MainWindowViewModel.QueueString { ID = index, DAT = "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) });
// MainWindowViewModel.MachiensTcpClient[index].SendAsync("SC833" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", index));
}//单据 }//单据
} }
else else
@ -266,9 +259,8 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
if ((State_ == 101) || (State_ == 201) || (State_ == 202) || (State_ == 309))//获得细节信息 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.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));
} }
else else
{ {
@ -277,8 +269,8 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
} }
catch (Exception ) catch (Exception )
{ {
// MainWindowViewModel.MachineLOG = null; MainWindowViewModel.MachineLOG = null;
// MainWindowViewModel.dt_TP.Clear(); MainWindowViewModel.dt_TP.Clear();
}//返回错误为空 }//返回错误为空
} }
} }

60
ViewModel/MainWindowViewModel.cs

@ -87,13 +87,6 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel
timer1s.Tick += Tick_Event_1S; timer1s.Tick += Tick_Event_1S;
timer1s.Start(); timer1s.Start();
DispatcherTimer timer5s = new DispatcherTimer//初始化循环,每1秒调用一次Tick
{
Interval = TimeSpan.FromSeconds(5)//秒
};
timer5s.Tick += Tick_Event_5S;
timer5s.Start();
//设置定时器 //设置定时器
DispatcherTimer disTimer = new DispatcherTimer DispatcherTimer disTimer = new DispatcherTimer
{ {
@ -109,6 +102,18 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel
dis50ms.Tick += new EventHandler(DisTimer_50MS);//每一秒执行的方法 dis50ms.Tick += new EventHandler(DisTimer_50MS);//每一秒执行的方法
dis50ms.Start();//计时开始 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 void Tick_Event_1S(object sender, EventArgs e)//Tick_Event周期执行事件1S
{ {
Sys_Time = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"); Sys_Time = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
@ -119,8 +124,6 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel
{ {
MachiensTcpClient[i].SendAsync("SC830"+ Selet_Machines(Machines, "SYSKEY", i).ToString()); MachiensTcpClient[i].SendAsync("SC830"+ Selet_Machines(Machines, "SYSKEY", i).ToString());
Updata_Machines(Machines, "State", i, "101"); 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++)
@ -129,14 +132,25 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel
if ((mac_s == "101") || (mac_s == "201") || (mac_s == "202") || (mac_s == "309"))//获取信息 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() });//信息插入队列 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++) for (int i = 0; i < Machinesdata_Count; i++)
{ {
if (Selet_Machines(Machines, "State", i).ToString() == "801") if (Selet_Machines(Machines, "State", i).ToString() == "801")
@ -145,18 +159,16 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel
} }
} }
} }
void DisTimer_500MS(object sender, EventArgs e)//Tick_Event周期执行事件500MS void Tick_Event_60S()
{ {
DATA_view(); for (int i = 0; i < Machinesdata_Count; i++)
}
void DisTimer_50MS(object sender, EventArgs e)//Tick_Event周期执行事件50MS
{
if (stringQueue.Count > 0) //信息发送队列
{ {
QueueString t= stringQueue.Dequeue(); MachiensTcpClient[i] = new TcpClient();
MachiensTcpClient[t.ID].SendAsync(t.DAT); 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());
} }
} }
@ -174,15 +186,15 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel
CountDown(); CountDown();
TcpClientNEW(); TcpClientNEW();
SQL_LINK(); SQL_LINK();
} }
public static TcpClient[] MachiensTcpClient = new TcpClient[999]; public static TcpClient[] MachiensTcpClient = new TcpClient[999];
public DataRow[] machinesdata = new DataRow[999];
public int Machinesdata_Count; public int Machinesdata_Count;
public void TcpClientNEW() public void TcpClientNEW()
{ {
// bool Machine_ ; // 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(); Machinesdata_Count = machinesdata.Count();
for (int i = 0; i < Machinesdata_Count; i++) for (int i = 0; i < Machinesdata_Count; i++)

Loading…
Cancel
Save